Buen comienzo tengo yo.
He conseguido imprimir un caracter en la pantalla usando las rutinas BIOS. Bien, hasta aquí perfecto.
Pero hay madre de todos los corderos, yo siempre voy a mas. Ahora quiero imprimir una cadena definida. Lo he intentado todo, pero como soy Lerdosky, lo unico que me hace es sacar basura y bloquearse (estoy con el BlueMSX). Veamos la rutina de marras:
; Rutina para imprimpir una cadena de texto en la pantalla (Screen 0)
; recogiendola de una cadena definida (DATOS:)
CHPUT: EQU &H00A2
CHGMOD: EQU &H008C
LD A, 0 ; Seleccionamos el modo de pantalla (0=Screen 0)
CALL CHGMOD ; Cambio a Screen 0
LD HL, DATOS ; Cargo en HL la cadena de texto
BUCLE: LD A, (HL) ; Se coge el siguiente caracter de la cadena
CP "$" ; Se compara el caracter de A con $
JR Z, FIN ; Si es $, salta a FIN
PUSH HL ; Sino...: GUARGO HL
CALL CHPUT ; El caracter de A se imprime
POP HL ; Se recupera la cadena
INC HL ; Coge el siguiente caracter de la cadena
JR BUCLE ; Repite el Bucle
FIN: END ; Fin de programa
DATOS: DEFM "Esta es la cadena de texto que quiero imprimir"
DEFB &H07, &H07, &H07, "$"
; El "$" es el último caracter de la cadena
; El &H07 no tengo ni idea de que es...
Despues de examinar la rutina 100 veces, me rindo, me veo incapaz de arreglarlo. Entiendo la rutina, ese no es el problema, pero no se porque no funciona
Bueno, almas caritativas. Dadme un poco de tregua y dedidme... ¿dónde está el fallo?
Agradecido como para invitar a unas cervezas