(perdón por el off-topic)
La verdad es que sí que recuerdo que entre mi círculo de amigos de la facultad la asignatura era un hueso. Sin embargo, mi compañero de piso Phobeous (con quien hice Phantomas Uprising) y yo, que veníamos de frikear bien en nuestros años mozos con los 8 bits (él en CPC, yo en Spectrum) la disfrutamos bastante porque por aquellos entonces nos flipaban las demos de MSDOS y hacíamos nuestros pinitos con los plasmas y los rotozoomers e intentábamos meternos de cabeza a hacerlos en ensamblador. Nos gustaban las cosas a bajo nivel y la asignatura le daba bastante caña al ensamblador. Además, las prácticas de microcontroladores nos parecían muy interesantes.
Al final terminamos la asignatura con un sobresaliente y nos hartamos de trastear... Pero entiendo que para un alumno que llegue a la carrera sin saber qué es un número hexadecimal le resulte dura.
ZX-Uno - kit de programación modo Radastaniano
- Haplo
- MSX Turbo R
- Mensajes: 278
- Registrado: 14 Abr 2014, 22:24
- Sistema Favorito: PC
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Nintendo NES/Clónica
- Ubicación: Ciudad Real
- Gracias dadas: 33 veces
- Gracias recibidas: 5 veces
Re: ZX-Uno - kit de programación modo Radastaniano
Sí, si ya digo que leí lo que había sobre el tema y lo busqué en los foros, pero se conoce que soy más torpe de lo que pensaba y no funciona como pienso yo que tiene que hacerlo. Así que nada, esta noche si puedo voy a ver si me aclaro haciendo un programita que me revele la organización de la pila y los registros cuando se llama a una function, sub, sea fastcall o no. (si alguien se atreve le estaría agradecido
)
Por cierto, no sé si es porque me acabo de registrar en el foro de boriel, pero los mensajes que envío no se muestran, me aparecen como "pendientes de aprobación" desde hace días, así que poca ayuda puedo pedir allí.

Por cierto, no sé si es porque me acabo de registrar en el foro de boriel, pero los mensajes que envío no se muestran, me aparecen como "pendientes de aprobación" desde hace días, así que poca ayuda puedo pedir allí.
- na_th_an
- Amiga 1200
- Mensajes: 1273
- Registrado: 10 Oct 2012, 11:17
- Sistema Favorito: (Otro)
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Sega Master System
- Gracias dadas: 18 veces
- Gracias recibidas: 15 veces
Re: ZX-Uno - kit de programación modo Radastaniano
Lo tienes, más o menos, en mi post, pero es algo así, por ejemplo:
O, por ejemplo:
Funciona así, para el parámetro "iésimo" (con i = 1, 2, 3...)
- Si es de 8 bits (uByte, Byte), está en (ix + 3 + 2 * i)
- Si es de 16 bits (uInteger, Integer), el LSB está en (ix + 2 + 2 * i) y el MSB en (ix + 3 + 2 * i)
O, más sencillo:
O bien
Asín es, no tiene mucho más.
Código: Seleccionar todo
Sub prueba (uByte x, uByte y, uByte color)
Asm
ld a, (ix + 5) ; x
ld b, (ix + 7) ; y
ld c, (ix + 9) ; color
End Asm
End Sub
O, por ejemplo:
Código: Seleccionar todo
Sub prueba2 (uByte a, uInteger b)
Asm
ld b, (ix + 5) ; a
ld l, (ix + 6)
ld h, (ix + 7) ; b (LSB, MSB)
End Asm
End Sub
Funciona así, para el parámetro "iésimo" (con i = 1, 2, 3...)
- Si es de 8 bits (uByte, Byte), está en (ix + 3 + 2 * i)
- Si es de 16 bits (uInteger, Integer), el LSB está en (ix + 2 + 2 * i) y el MSB en (ix + 3 + 2 * i)
O, más sencillo:
Código: Seleccionar todo
Sub Fastcall prueba3 (uByte p1, uByte p2, uByte p3)
Asm
; p1 está en el registro "A" porque ponemos "Fastcall"
; Ahora, en orden:
pop bc ; dirección de retorno
pop hl ; parámetro p2
pop de ; parámetro p3
push bc ; hay que poner la dirección de retorno de nuevo en la pila
End Asm
End Sub
O bien
Código: Seleccionar todo
Sub Fastcall prueba3 (uInteger p1, uByte p2)
Asm
; p1 está en el registro "HL" porque ponemos "Fastcall" y p1 es de 16 bits
; Ahora, en orden:
pop bc ; dirección de retorno
pop de ; parámetro p2
push bc ; hay que poner la dirección de retorno de nuevo en la pila
End Asm
End Sub
Asín es, no tiene mucho más.
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: ZX-Uno - kit de programación modo Radastaniano
Exacto. Yo tengo algunos ejemplos en FASE. Lo mejor es hacer todas las funciones FASTCALL, ya que si sólo tienen un parámetro no tienes que manipular la pila, y si tienen más de uno te ahorras un POP. Te pongo un par de funciones del engine por si te valen, pero con lo que te ha explicado na_th_an es suficiente:
Por cierto el ret del final no lo pongas nunca, lo hace el compilador automáticamente.
Código: Seleccionar todo
sub FASTCALL pausa( time as uinteger )
asm
loop1: ld bc, 21
loop2: djnz loop2
dec c
jr nz, loop2
dec hl
ld a, l
or h
jr nz, loop1
end asm
end sub
Código: Seleccionar todo
sub FASTCALL PrintStr( source as uinteger, xy as uinteger )
asm
pop af
pop de
push af
push hl
pop ix
ld hl, ($5c00)
print: ld a, e
and $18
or $40
or h
ld h, a
ld a, e
rrca
rrca
rrca
and $e0
add a, d
ld l, a
print1: ex de, hl
ld a, (ix+0)
inc ix
add a, a
ret z
ld l, a
ld h, $0f
add hl, hl
add hl, hl
ld b, 4
print2: ld a, (hl)
ld (de), a
inc l
inc d
ld a, (hl)
ld (de), a
inc l
inc d
djnz print2
ld hl, $f801
add hl, de
jr print1
end asm
end sub
Por cierto el ret del final no lo pongas nunca, lo hace el compilador automáticamente.
- Haplo
- MSX Turbo R
- Mensajes: 278
- Registrado: 14 Abr 2014, 22:24
- Sistema Favorito: PC
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Nintendo NES/Clónica
- Ubicación: Ciudad Real
- Gracias dadas: 33 veces
- Gracias recibidas: 5 veces
Re: ZX-Uno - kit de programación modo Radastaniano
Me he tenido que pelear de lo lindo con varias cosillas aparte de los push, pop y non stop pero al final funciona:
Mañana limpiaré el guarreo de código que tengo de hacer pruebas y lo subo para que le echéis un ojito.
A dormir!
Mañana limpiaré el guarreo de código que tengo de hacer pruebas y lo subo para que le echéis un ojito.
A dormir!
- radastan
- Amiga 2500
- Mensajes: 4542
- Registrado: 11 Jun 2007, 19:29
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Sega Genesis/Megadrive
- Primera consola: TV Games/Pong Clone
- Ubicación: Córdoba
- Gracias dadas: 9 veces
- Gracias recibidas: 40 veces
- Contactar:
Re: ZX-Uno - kit de programación modo Radastaniano
¡Oleeeeeee!
Pues no olvides poner las rutinas definitivas en otro hilo al efecto, uno que se llame "Kit ZX Basic para ZX Uno" o similar. Hay que promocionar esto para que empiece a coger carrerilla.
A mi me han puteado esta semana y estoy de sol a sol modificando el funcionamiento de una planta de biocombustible, una putada porque ya tengo todo lo necesario para hacer algún juego chorra. A ver si mañana, que tengo el día libre, puedo sentarme y hacer aunque sea un mojoncillo para los que van a Retromadrid Days dentro de una semana.
Pues no olvides poner las rutinas definitivas en otro hilo al efecto, uno que se llame "Kit ZX Basic para ZX Uno" o similar. Hay que promocionar esto para que empiece a coger carrerilla.
A mi me han puteado esta semana y estoy de sol a sol modificando el funcionamiento de una planta de biocombustible, una putada porque ya tengo todo lo necesario para hacer algún juego chorra. A ver si mañana, que tengo el día libre, puedo sentarme y hacer aunque sea un mojoncillo para los que van a Retromadrid Days dentro de una semana.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
- na_th_an
- Amiga 1200
- Mensajes: 1273
- Registrado: 10 Oct 2012, 11:17
- Sistema Favorito: (Otro)
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Sega Master System
- Gracias dadas: 18 veces
- Gracias recibidas: 15 veces
Re: ZX-Uno - kit de programación modo Radastaniano
¿Qué emuladores que funcionen en Windows soportan esto? ¿Los de A. Villena, por ejemplo?
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: ZX-Uno - kit de programación modo Radastaniano
Yo estoy intentando portar a Windows el ZEsaurUX de César, que tiene soporte de ULAplus y modo Radastaniano
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- Haplo
- MSX Turbo R
- Mensajes: 278
- Registrado: 14 Abr 2014, 22:24
- Sistema Favorito: PC
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Nintendo NES/Clónica
- Ubicación: Ciudad Real
- Gracias dadas: 33 veces
- Gracias recibidas: 5 veces
Re: ZX-Uno - kit de programación modo Radastaniano
mcleod_ideafix escribió:Yo estoy intentando portar a Windows el ZEsaurUX de César, que tiene soporte de ULAplus y modo Radastaniano
Ufff, si lo consigues tienes una cerveza tamaño familiar pagada en Retromadrid!
No te imaginas cómo tengo el dedo de sacar/meter la SD entre el portátil y el ZXuno para hacer pruebas...
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados