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 :