Transmitum

Descripción del contenido de la página

Programa escrito en SuperBASIC para la Sinclair QL, para transmitir ficheros a una Sinclair ZX Spectrum.

Etiquetas:

Escribí este pequeño programa en SuperBASIC para enviar ficheros por el cable serial desde la Sinclair QL a la Sinclair ZX Spectrum. Con él enviaba el código objeto compilado por el ensamblador QL80.

Este programa hace uso del complemento Turbo Toolkit.

Código fuente

100 REMark TRANSMITUM v0.21
110 REMark Copyright (C) 1988 Marcos Cruz (http://programandala.net)
120 REMark Licencia/Permesilo/License: http://programandala.net/license
130 :
140 REMark TURBO Toolkit v1.32
150 :
160 REPeat bucle_principal
170 :
180 CLEAR
190 :
200 REMark Constantes y variables inicializadas --------------------------
210 :
220 lon_nombre%=32
230 ventana%=4
240 fichero_objeto%=5
250 fichero_spectrum%=6
260 :
270 REMark Cadenas -------------------------------------------------------
280 :
290 DIM fichero_objeto$(lon_nombre%):fichero_objeto$=OPTION_CMD$
300 DIM fichero_spectrum$(lon_nombre%):fichero_spectrum$="ser2"
310 DIM byte_objeto$(1)
320 DIM letra$(1)
330 :
340 REMark Pantalla -----------------------------------------------------
350 :
360 OPEN#ventana%,con_512x14a0x225
370 PAPER#ventana%,4
380 INK#ventana%,0
390 CLS#ventana%
400 BORDER#ventana%,2,7,0
410 :
420 REMark Presentación ------------------------------------------------
430 :
440   AT#ventana%,0,25
450   PRINT#ventana%,"TRANSMITUM v0.21 Copyright (C) 1988 Marcos Cruz (http://programandala.net)"
460   AT#ventana%,0,82
470   letra$=EDIT$(#ventana%,"",0)
480 :
490 REMark Pedir ficheros ------------------------------------------------
500 :
510   REMark pedir nombre de fichero objeto a transmitir:
520   REPeat pide_fichero
530     CLS#ventana%
540     PRINT#ventana%," Fichero objeto a transmitir: ";
550     fichero_objeto$=EDIT$(#ventana%,fichero_objeto$,lon_nombre%)
560     IF fichero_objeto$="":NEXT bucle_principal
570     REMark detectar errores:
580     flag_fichero=DEVICE_STATUS(fichero_objeto$)
590     IF flag_fichero>-1:NEXT pide_fichero
600     SELect ON flag_fichero=-3,-6,-7,-9,-12,-16:NEXT pide_fichero
610     EXIT pide_fichero
620   END REPeat pide_fichero
630   REMark abrir fichero fuente:
640   OPEN_IN#fichero_objeto%,fichero_objeto$
650 :
660   CLS#ventana%
670   REMark detectar errores:
680   flag_fichero=DEVICE_STATUS(fichero_spectrum$)
690   SELect ON flag_fichero=0,-3,-6,-7,-9,-11,-12,-16,-20:NEXT bucle_principal
700   REMark abrir fichero de comunicación con Spectrum:
710   OPEN#fichero_spectrum%,fichero_spectrum$
720 :
730 REMark Transmitir ---------------------------------------------------
740 :
750   TRA 0
760   CLS#ventana%
770   PRINT#ventana%," Transmitiendo"!fichero_objeto$!"al Spectrum"
780 :
790   REPeat transmite_bytes
800     IF EOF(#fichero_objeto%):EXIT transmite_bytes
810     byte_objeto$=INPUT$(#fichero_objeto%,1)
820     REPeat repite_byte_objeto
830       PRINT#fichero_spectrum%,byte_objeto$;byte_objeto$;
840       IF INPUT$(#fichero_spectrum%,1)=CHR$(0):EXIT repite_byte_objeto
850     END REPeat repite_byte_objeto
860   END REPeat transmite_bytes
870 :
880   REMark enviar marca de final:
890   PRINT#fichero_spectrum%,CHR$(0);CHR$(255);
900 :
910   CLOSE#fichero_objeto%
920   CLOSE#fichero_spectrum%
930   TRA 1
940 :
950 END REPeat bucle_principal
960 :

Descargas

transmitum_bas (2.84 KiB)