DB>> hace no mucho que he descubierto por ahi un buen IDE simulador para
DB>> Z80 extremadamente facil de usar.
DB>> ¿Que que tiene este de especial? pues un COMPILADOR Basic integrado,
DB>> con muchas cosas mas, ensamblador, desensamblador, creacion de fichero
DB>> objeto (o sea, la ROM), puedes ver paso a paso los estados de
DB>> cualquier registro, simula dispositivos para depurar el programa,
DB>> etc...
H> La verdad es que es muy bonito. Lo único malo es que no tienes
H> disponibles por ejemplo los registros del VDP, y el basic no usará por
H> supuesto las capacidades del MSX. Hice en su día una máquina
H> recreativa basada en Z80 y si hubiera tenido esto hubiera dado saltos
H> de alegría (por cierto, la programé usando un 8245 :)
H> SAludOS!
Pero con el MSXredBook por delante podras hacer lo que quieras sin
exprimirte el coco, miras en que puertos del Z80 estan los registros del
VDP y ya está.
Con decirte que en 10 minutillos, sin haber hecho nada en ensamblador
antes, he hecho el "Hola mundo!!" en screen 0
Mirad que chorra de codigo:
' - para que el vdp apunte a la direccion 0000h de la vram -
Put 99h, 0
Put 99h, 01000000b
' - comienza a escribir el texto "Hola mundo!!" -
Put 98h, "H"
Put 98h, "o"
Put 98h, "l"
Put 98h, "a"
Put 98h, 32
Put 98h, "m"
Put 98h, "u"
Put 98h, "n"
Put 98h, "d"
Put 98h, "o"
Put 98h, 32
Put 98h, "!"
Put 98h, "!"
End
------------------
Y genera el siguiente codigo ensamblador:
; Begin
LD IX,0FF00H
LD SP,0FF00H
; 1: ' - para que el vdp apunte a la direccion 0000h de la vram -
; 2:
; 3: Put 99h, 0
LD A,00H
OUT (99H),A
; 4: Put 99h, 01000000b
LD A,40H
OUT (99H),A
; 5:
; 6: ' - comienza a escribir el texto "Hola mundo!!" -
; 7:
; 8: Put 98h, "H"
LD A,48H
OUT (98H),A
; 9: Put 98h, "o"
LD A,6FH
OUT (98H),A
; 10: Put 98h, "l"
LD A,6CH
OUT (98H),A
; 11: Put 98h, "a"
LD A,61H
OUT (98H),A
; 12: Put 98h, 32
LD A,20H
OUT (98H),A
; 13: Put 98h, "m"
LD A,6DH
OUT (98H),A
; 14: Put 98h, "u"
LD A,75H
OUT (98H),A
; 15: Put 98h, "n"
LD A,6EH
OUT (98H),A
; 16: Put 98h, "d"
LD A,64H
OUT (98H),A
; 17: Put 98h, "o"
LD A,6FH
OUT (98H),A
; 18: Put 98h, 32
LD A,20H
OUT (98H),A
; 19: Put 98h, "!"
LD A,21H
OUT (98H),A
; 20: Put 98h, "!"
LD A,21H
OUT (98H),A
; 21:
; 22: End
HALT
; End of program
HALT
; End of listing
.END
Y lo mas importante, ojea el codigo ensamblador que te genera y para
los que estan un poco pegados como yo, es perfecto para aprender el
ensamblador.
Para empezar sin preocuparte de como distribuir el uso de los registros
internos, crear estructuras iterativas, etc...
Llamas a rutinas de la BIOS y lo tienes casi todo hecho.
Parece bastante potente teniendo en cuenta como tu dices que es
para Z80, pero puedes simular un dispositivo conectado a un puerto y
ver que es lo que se esta esribiendo en él, estos serán los registros
del VDP, teclado, PSG, etc...
Puedes poner puntos de ruptura en el codigo y ver el estado de la CPU,
puertos IO, toda la memoria, etc... en cualquier punto del codigo.
Ejecutar paso a paso...
Bueno, a ver si me da tiempo de adaptar un código que en BASIC me va
demasiado lento, y lo presento al MSXDev'04.
Corre corre!!
-Daniel Berdugo-