Dr Beep PC-ZX interface



Introducción

    En la actualidad, el usuario de Spectrum tiene el PC como un aliado. Emuladores, programas para manejar cintas, discos, ficheros, etc, etc. Solemos albergar una gran cantidad de juegos en formato TAP o Z80 ¿Porque no usar el PC como un servidor de ficheros para el Spectrum?

    El interface que se estudia a continuación ha sido diseñado por Dr Beep ( www.ZXSPECTRUM.00FREEHOST.COM ) y permite a cualquier modelo de Spectrum cargar  ficheros .TAP ( 48K y 128K), .Z80 ( 48K), .SNA ( 48K) situados en el disco duro de nuestro PC. También permite salvar datos en el PC con format .TAP. El interface implementa un puerto paralelo para poder realizar la comunicación entre ambos ordenadores y una EPROM para no tener la necesidad de abrir el Spectrum.

Esquema interface PC-ZX

    En la documentación que Dr Beep anexa al interface vienen 3 esquemas para fabricar el interface. Todos ellos cumplen la misma función y en el fondo son similares Solo cambia algún integrado por otro de similares características.

    El esquema y la placa a realizar viene reflejados de una forma muy gráfica. Una hoja de calculo donde se indica la posición de los integrados y la conexión a realizar.

    Uno de los tres esquemas es el siguiente:



    El interface PC-ZX de Dr Beep se divide en en las siguientes partes:
Placa física

    La placa ( 100x 65 mm) está realizada con placa perforada y cables. Para este interface es muy buena opción dado que con placa insolada no es suficiente con una cara.

    En cuanto a la caja, se recurre a una solución original. La placa entra perfectamente en una caja de una cinta de cassette.

  
   

Software

    La EPROM contiene una ROM de un 48K al que se ha alterado las rutinas LOAD y SAVE. Además contiene una nueva rutina en la zona donde la ROM original está vacía (dirección 14500). Las nuevas rutinas LOAD y SAVE no intentan leer del cassette sino que lo hacen del puerto paralelo.

    Por la parte del PC tenemos un programa escrito en Pascal (compilado con turbo Pascal para DOS). El programa recibe el comando del Spectrum y reenvía los datos requeridos. Un dato importante es que el programa del PC está abierto a la introducción de nuevos comandos. El Spectrum no interpreta el comando que envía sino que lo hace el PC.

    Solo es necesario  introducir en el función principal la nueva letra. En el programa en Pascal podemos encontrar las siguientes lineas:
   
        repeat
         choice := upcase(chr(spectrum2pc(0)));
         {* D = DIR to Spectrum       *}
         {* E = ERASE FILE            *}
         {* S = SAVE                  *}
         {* L = LOAD                  *}
         {* O = OPEN FILE             *}
         {* X = eXit PC-PROGRAM       *}
         {* C = DOS DIR COMMANDS      *}
      until choice in ['C','D','E','S','L','O','X'];

    En esta parte del programa introduciamos las nueva letra y creariamos una rutina con las nueva función.

    En la documentación adjunta al interface, Dr Beep proporciona el ejecutable y el código fuente del programa PC-ZX.EXE

Funcionamiento

    La puesta en marcha es sencilla. Se conecta el interface al Spectrum, se selecciona con el jumper en la posición correcta según el modelo de Spectrum, se conecta el cable paralelo 'transparente'  al puerto paralelo del PC y se enciende el Spectrum.


Dr Beep recomienda ejecutar en el Spectrum " OUT 14,0 " antes de arrancar el programa PC-ZX.EXE para mejorar la comunicación inicial entre el Spectrum y el PC

Arranque inicial

Al arrancar el Spectrum con la ROM PC-ZX activa nos muestra el mensaje:

1982 Sinclair, 2002 ZXPC YRS

Dir

Para hacer un dir del directorio del PC se dispone del comando "d"

PRINT USR 14500;d
PRINT USR 14500;d;"*.z80"
PRINT USR 14500;d;"A*.*"

Si no se introduce ninguna cadena después del comando "d", el programa busca por defecto "*.tap"

En el programa original PC-ZX el directorio de búsqueda por defecto era el que tiene por defecto el PC (C:\windows) y era necesario recurrir al comando C (Ver más abajo) para ir hasta el directorio deseado. He modificado el programa PC-ZX para que el nuevo directorio de búsqueda sea " C:.\ "  y así arranque directamente desde donde está  el programa  (en este ejemplo C:\SOFTZX)

Las dos versiones se pueden encontrar en el apartado " Documentación "

Abrir un fichero

Para abrir un fichero, bien para leer o escribir, se dispone del comando "o"

PRINT USR 14500;o;"PANG128"
PRINT USR 14500;o;"DIZZY.Z80"
PRINT USR 14500;o;"COBRA.SNA"

Como en el caso anterior, la extensión por defecto es "tap".

Una vez seleccionado un fichero, si se hace un dir aparecerá seleccionado el fichero abierto

Load ""

Para cargar el fichero seleccionado ( Bien sea .tap o .z80 o .sna ) simplemente deberemos hacer load"".

El tiempo de carga de un juegos se reduce a unos pocos segundos

Ejemplo: Carga PANG128K.TAP sobre un Spectrum +2E

Save ""

Si deseamos salvar información del spectrum sobre el PC, deberemos primero abrir un fichero. Este fichero puede ser nuevo o uno existente y será siempre un fichero .TAP .

En este ejemplo:

PRINT USR 14500;o;"PANTALLA"     ( abrimos un fichero nuevo pantalla.tap)

Un simple programa

10 PRINT USR 14500;d
20 SAVE "pantalla" screen$

Cuando pulsemos una tecla, se salvará la pantalla al fichero pantalla.tap situado en el PC
Otros comandos

PRINT USR 14500;c;"cd a:"
PRINT USR 14500;c;"CD juegos"
PRINT USR 14500;c;" MD juegos"
PRINT USR 14500;c;" RD juegos"

PRINT USR 14500;x


Ordena al PC a pasar a la unidad A:
Ordena al PC a pasar al directorio "juegos"
Se crea en el PC un directorio llamado "juegos"
Se borra en el PC el directorio "juegos"

Finaliza el programa PC-ZX.exe


Problemas Encontrados

    El puerto paralelo del PC se cuelga

    Algunas veces, el puerto paralelo desde la parte del PC tiende a colgarse.  Jugando con la configuración del puerto paralelo  (en mi caso EPP/ECP funciona bien) y con la familia de chip 74xx (Originales son 74LSxx. Los 74HCxx han dado buen resultado)

    Problemas con un +2E

    Tanto en un 48K como en un +128K, el interface ha funcionado a la perfección pero con un +2E han aparecido varios problema adicionales.


    Esta modificaciones son también válida para el resto de modelos de Spectrum.


Documentación

Originales Dr Beep

Modificados


Thank to

    Many thank to Dr Beep ( www.ZXSPECTRUM.00FREEHOST.COM ) to allow me put all the information, schemes and software. Also many thank to help me with the few problem that I have. I 'll expect someday He'll put all the information about PC-ZX interface in his own web

2006. Artículo escrito por  José Leandro Novellón.