Estoy dandole vueltas a una rutina para poder hacer un PRINT de un string ASCIIZ en modo HiRes. La primera duda es si sabéis si hay algo ya hecho con licencia libre que pueda usar, y no reinvento la rueda. Si no existiera, imprimir en HiRes se puede hacer de dos maneras:
1) Te montas la rutina entera de PRINT
2) Aprovechas la de la ROM
En el segundo caso, no es más que imprimir alternativamente en Screen 0 y Screen 1 pero...
- Cuando imprimes con la de la ROM la posición de escritura avanza al siguiente caracter (o lo que ella cree que es el siguiente caracter)
- Andar cambiando de banco todo el rato no se si es lento
Por lo que vuelve a haber dos maneras de hacerlo:
1) Ir recorriendo el String normalmente, cambiando de banco a cada caracter, y retrasando el cursor cada vez que el caracter sea par, es decir hariamos algo (en pseudodigo):
Código: Seleccionar todo
:bucle
Si caracter=0 salir de bucle
escribe caracter
apunta al siguiente
cambiabanco()
si la posicion es par, retrasa cursor
salta a bucle
2) Imprimir primero todas las impares y luego todas las pares.
Código: Seleccionar todo
:bucle
Si caracter=0 salir de bucle
escribe caracter
apunta dos mas adelante
salta a bucle
apunta al segundo caracter de la cadena
cambiabanco()
:bucle2
Si caracter=0 salir de bucle2
escribe caracter
apunta dos mas adelante
salta a bucle2
¿Cual de las dos va a ser más rápida? ¿Se os ocurre otra opción? ¿Es una mala idea usar RST 10h y sería mejor hacerse la rutina a mano?
Por cierto Antonio, si has llegado a leer hasta aquí ¿por que si el problema de la BIOS es el espacio en pantalla no usas HiRes?