Proyecto O.T.L.A.
Otla es una herramienta que sirve para cargar programas en computadoras ZX Spectrum, CPC Amstrad y MSX por la entrada de cassette tal y como se hacía en la década de los 80 pero a una velocidad considerabelmente mayor aprovechando la tecnología moderna de los sitemas de audio digital. Vea aquí una demostración:
|
ZX |
CPC |
MSX |
|---|---|---|
Descargar: ultima versión de otla . .
otlaPlayer.exe .
OtlaPlayer.exe covierte un fichero .sbb , que contiene la información del programa original, a un fichero wav que representa una señal de audio que la vieja computadora será capaz de interpretar.
Típicamente la señal de audio tiene la siguiente estructura.
Una primera parte es un programa que se carga según la norma de la rutina de carga standard de cada maquina.
El programa no es otra cosa que un cargador con rutina de carga especial. Además de la propia rutina de carga se pueden modificar algunos parametros (CLEAR , SP, POKE-1 ,..)
Una vez la rutina de carga está en memoria comienza la carga de uno o varios bloques de datos. Es una carga a alta velocidad. No hay silencios.
Es un programa para converitir ficheros propios (.tap, .tzx, .bin ,... ) de cada sistema a un formato .sbb (stream of binary blocks)
Convierte los ficheros .sbb a una señal de audio (especificación.) que cargará el programa en la maquina real.
Cable de conexión
Cada maquina utiliza un cable diferente para conectar el cassette. Actualmente puede ser complicado encontrar el cable original pero construirse uno es sencillo
|
ZX |
CPC |
MSX |
|---|---|---|
|
Un cable simple con dos jack macho a cada extremo |
Conector canon concertas pines 2 GND ,4 input |
Conector canon concertas pines 2 GND ,5 input |
Truco: Se puede aprovechar un cable de teclado de PC antiguo para hacer cable que sirva para CPC y MSX a la vez
Comando de carga
Una vez conectada la computadora al dispositivo reproductor de audio y antes de empezar a reproducir la señal audio hay que teclear el correspondiente comando de carga.
|
ZX |
CPC |
MSX |
|---|---|---|
|
|
|
|
Truco: Se puede aprovechar un cable de teclado de PC antiguo para hacer cable que sirva para CPC y MSX a la vez
Probar en emuladores
Para probar que la conversion de los ficheros para la carga rápida es correcta (las protecciones anticopia pueden complicar la conversión) es muy recomendable usar un emulador sencillo, gratuito y que permita abrir y cargar ficheros wav. Y a ser posible que incluya un debuger integrado.
|
ZX |
CPC |
MSX |
|---|---|---|
|
WinApe |
openMsx |
|
|
Nota: desactivar load tapes automatically,Start/stop tapes automatically Acceleration =None |
|
|
Ficheros de ejemplo para hacer pruebas
El manic miner
|
ZX |
CPC |
MSX |
|---|---|---|
|
Manic Miner (.TAP) |
Manic Miner (.DSK) |
Manic Miner (.DSK) |
|
.TAP .TZX .SNA .Z80 .SBB .dsk |
.BIN .SNA .SBB .cdt .dsk |
.BIN .SBB .cas .rom .dsk |
Código para el muestreo de la entrada de cassette.
La rutina de carga funciona utilizando la instrucción no documentada del Z80 IN F,(C). El puerto de entrada del cassette y el bit que representa la señal de audio de entrada difiere en cada sistema.
|
ZX |
CPC |
MSX |
|---|---|---|
|
|
|
|
Rutinas de carga velozloader
Asi quedan las rutinas de carga
|
ZX |
CPC |
MSX |
|---|---|---|
|
Ubicacion $ff58 velozloader_zx48k |
Ubicacion $ff10 (memoria de video)velozloader_cpc |
Ubicacion $f440 (buffer teclado) velozloader_msx |
Prueba y ajuste de la rutina de carga. Pantallas de test
Para ajustar las Rutina de carga es muy útil visualizar que es lo que está llegando por la entrada de cassete. O por mejor decir nosotros sabemos que es lo que está entrando con una serie de partrones de prueba y hay que ver que es lo que realmete la rutina de carga interpreta. Las pantalla de prueba están en ficheros HST (Hexadeciimal Screen Text) que se pueden editar facilmento con el notepad.
Por ejemplo el fichero “screen_a.hst” representa tonos de 4 frecuencias que escritos directamente sobre la memoria de video del Spectrum se ven así:
|
ZX |
CPC |
MSX |
|---|---|---|
|
|
|
|
|
|
|
|
