Por cierto, el programa rula en modo Z80 o R800? Y si rula en
R800, cambia a Z80 antes de ejecutar lo cargado?
El programa deja el Z80 activado, y las rutinas de cassete no
cambian de procesador para nada. El CALL &H180 sigue funcionando,
pero sólo cambia el procesador (el modo va a ser siempre DRAM).
Soporta solo carga "estandar" utilizando los puntos de entrada de
la BIOS, cierto?
Exacto, los programas con turbo (que cargan leyendo directamente el
puerto &HA2) se quedarán a dos velas esperando oir algo del
cassete...
Datos, datos, detalles, please.
Lo que hace el programilla es restablecer las rutinas estándar del
bios, cambiando los IN A,(&HA2) por IN A,(&HA5) y poco más. El bit 7
del puerto &HA5 dice si la señal de entrada es mayor o menor que la
del DAC (puerto &HA4), así que poniendole ahí el valor medio del
rango (128), ese bit se comporta prácticamente igual que la entrada
de cassete del puerto &HA2. Y como está en la misma posición, ni
siquiera hace falta desplazarlo ^_^
Ah, por supuesto el programa también restablece las rutinas del
basic que reconocen y procesan las instrucciones de cassete, si no
el turbo R seguiría dando "Syntax error" cuando se las mencionas.
Para dejar parcheado el bios y el basic, lo que hace es poner el
modo ROM y así acceder a las últimas páginas del mapeador, donde
están las copias en ram que el sistema usa para el modo DRAM. Además
de las rutinas del cassete, modifica ahí también ciertos bits en los
valores usados por la propia llamada &H180, de manera que una vez
que entra en modo R800+DRAM y esas copias "sustituyen" a las roms
auténticas, mantiene siempre el modo DRAM (y por tanto los parches
de cassete funcionando) incluso cuando se activa el Z80.