Discípulo

Descripción del contenido de la página

Programa escrito en SuperBASIC para la Sinclair QL, para grabar ficheros en discos de la interfaz DISCiPLE de la Sinclair ZX Spectrum.

Etiquetas:

En 1987 compré una interfaz multifunción DISCiPLE para mi ZX Spectrum, más versátil que la interfaz de disco Beta que usaba anteriormente (aunque seguí usando ambas). Cuando por las mismas fechas compré mi primera QL, de segunda mano, empecé a investigar todas las posibilidades de conectar ambas máquinas: por red local (animado por el mito entonces sin confirmar de que la red de la QL era compatible con la red de la famosa Interfaz 1 de la ZX Spectrum), por cable serial, con disquetes e incluso creo que (por supuesto sin éxito) con microductoras (los famosos cartuchos de cinta en bucle, «microdrives», devoción de Clive Sinclair, que eran físicamente iguales para ambas computadoras pero incompatibles por su formato. Como era de esperar, lo que mejor funcionó fue la conexión serial.

El programa Discípulo que muestro aquí permitía grabar, con la QL, un fichero en un disquete de la Spectrum formateado con la interfaz DISCiPLE. Conservo dos versiones sucesivas del programa. Lo que no puedo recordar es cómo recomponía el fichero después en la Spectrum, pues la grabación se hacía en bruto sobre los sectores del disco. Imagino que usaría un programa similar en Sinclair BASIC; si es así estará en mi archivo y lo enlazaré desde aquí cuando lo publique.

Código fuente

Versión 0.00

100 REMark Discípulo versión 0.00 (1989-12)
110 REMark Copyright (C) 1989 Marcos Cruz (http://programandala.net)
120 REMark Licencia/Permesilo/License: http://programandala.net/licencia
130 :
140 CLS
150 dispositivo$="FLP1"
160 dispositivo%=4
170 fichero%=5
180 última_pista_disciple=39
190 :
200 PRINT "Situar en"!dispositivo$!"el disco del Disciple"
210 INPUT "¿Fichero del Spectrum?"!fichero$
220 CLS
230 :
240 OPEN#dispositivo%,dispositivo$&"_*d2d"
250 OPEN_IN#fichero%,fichero$
260 :
270 fin%=0
280 FOR cara=0 TO 1
290   FOR pista=0 TO última_pista_disciple
300     FOR sector=1 TO 10
310       sector$=""
320       FOR byte=0 TO 511
330         IF EOF(#fichero%)
350           fin%=1
360           EXIT byte
370         ELSE
380           sector$=sector$&INKEY$(#fichero%)
390         END IF
400       END FOR byte
410       CLS
420       PRINT "Cara",cara
430       PRINT "Pista",pista
440       PRINT "Sector",sector;" "
460       PUT#dispositivo%\sector+cara*256+pista*65536,sector$
470       IF fin%:EXIT cara
480     END FOR sector
490   END FOR pista
500 END FOR cara
510 CLOSE#fichero%
515 CLOSE#dispositivo%
520 :

Versión 1.00

100 título$="Discípulo Versión 1.00 (1989-12-26)"
110 REMark Copyright (C) 1989 Marcos Cruz (http://programandala.net)
120 REMark Licencia/Permesilo/License: http://programandala.net/licencia
125 :
130 MODE 4
140 WTV
150 CLS
160 PRINT título$
170 PRINT
180 PRINT "Este programa graba un fichero en los sectores de un disco formateado por la interface Disciple del Spectrum."
190 PRINT
200 dispositivo$="FLP1"
210 dispositivo%=4
220 fichero%=5
230 :
240 PRINT "Situar en"!dispositivo$!"el disco del Disciple"
250 INPUT "¿Ultima pista del disco del Disciple? (39/79)"!última_pista_disciple
260 PRINT
270 INPUT "¿Fichero del Spectrum a grabar en él?"!fichero$
280 CLS
290 :
300 OPEN#dispositivo%,dispositivo$&"_*d2d"
310 longitud=FLEN(\fichero$)
320 dirección_inicial=ALCHP(longitud)
330 dirección_sector=dirección_inicial
340 LBYTES fichero$,dirección_inicial
350 :
360 FOR cara=0 TO 1
370   FOR pista=0 TO última_pista_disciple
380     FOR sector=1 TO 10
390       sector$=PEEK$(dirección_sector,512)
400       AT 0,0
410       PRINT "Cara",cara
420       PRINT "Pista",pista
430       PRINT "Sector",sector;" "
440       PUT#dispositivo%\sector+cara*256+pista*65536,sector$
450       dirección_sector=dirección_sector+512
460       IF dirección_sector>=(dirección_inicial+longitud)
470         EXIT cara
480       END IF
490     END FOR sector
500   END FOR pista
510 END FOR cara
520 CLOSE#fichero%
530 CLOSE#dispositivo%
540 PRINT "Grabación completa."
550 :

Descargas