Carat-Prog
Descripción del contenido de la página
Programa para crear carátulas de cintas de programas, escrito para Sinclair ZX Spectrum.
Escribí Carat-Prog en 1984 para hacer carátulas de papel para mis cintas de programas de la ZX Spectrum: un solo programa por cinta (entonces aún conservaba programas en una cinta propia de corta duración, por ejemplo C-10). Poco después vi que aquello no era muy práctico y guardé los programas en cintas de longitud estándar, tantos como cabieran, y escribí las carátulas a mano... mucho más fácil. Sólo conservé en cintas individuales los programas más utilizados. La llegada de la interfaz de disco Beta Disk, y posteriormente de la DISCiPLE, relegó las cintas al último cajón.
No recuerdo si este pequeño programa dio lugar posteriormente al más complejo Carat-Musi, o es una versión simplificada de éste. Las fechas de los listados no lo aclaran. Más probable me parece haber escrito Carat-Prog primero y después hacer una versión más elaborada para las carátulas de música.
En cualquier caso, ambos comparten dos características interesantes: el volcado de pantalla y el uso de 64 caracteres por línea para los textos principales.
Pantallazo
Ejemplo de carátula para el programa La pulga:
Código fuente
10 REM Carat-Prog
20 REM Caratulas de cintas para programas
30 :
40 REM Copyright (C) 1984,1987,2010 Marcos Cruz (http://programandala.net)
50 REM Licencia: http://programandala.net/lp
60 :
70 REM 1984-12 Primera version.
75 REM 1987-02-24 Version para interfaz Beta Disk.
80 REM 1987 Version para interfaz DISCiPLE.
90 REM 2010-08-30 Retoques y comentarios en el codigo fuente para su publicacion.
100 :
110 REM Preparacion
120 :
130 PAPER 7: BORDER 7: INK 0
140 CLEAR 31063
150 LOAD d*"letrs64cpl"CODE 31064
160 GO SUB 570
170 CLS : PRINT INVERSE 1;AT 0,22;"Carat-Prog"''
180 :
190 REM Datos de la cinta
200 :
210 PRINT "NUMERO DE CINTA:";: INPUT N$: LET N$=" "+N$: LET N$=" "(LEN N$ TO )+N$: PRINT N$
220 PRINT "PROGRAMA: ";: INPUT P$: PRINT P$
230 :
240 REM Imprimir
250 :
260 PRINT "PULSA 0 PARA IMPRIMIR"
270 PAUSE 0: IF INKEY$<>"0" THEN GO TO 170
280 :
290 REM Imprimir en pantalla
300 :
310 CLS : PLOT 0,175: DRAW 119,0: PLOT 0,136: DRAW 119,0: PLOT 0,118: DRAW 119,0: PLOT 0,24: DRAW 119,0
320 PLOT 0,175: DRAW 0,-151: PLOT 119,175: DRAW 0,-151
330 FOR Y=94 TO 166 STEP 72
340 PLOT 126,Y: DRAW 6,6: DRAW 95,0: DRAW 6,-6: DRAW 0,-54: DRAW -107,0: DRAW 0,54
350 PLOT 157,Y-40: DRAW 0,22,-PI: DRAW 45,0: DRAW 0,-22,-PI: DRAW -45,0
360 NEXT Y
370 PRINT AT 5,27;"I";AT 6,27;"J";AT 14,27;"K";AT 15,27;"L"
380 LET LD=INT (LEN P$/2): LET T1=INT ((15-LD)/2): LET T2=INT ((13-LD)/2+16)
390 POKE 23606,88: OVER 1
400 FOR N=1 TO LEN P$ STEP 2
410 POKE 23607,120
420 PRINT AT 6,T1;P$(N);AT 2,T2;P$(N);AT 11,T2;P$(N)
430 IF N>=LEN P$ THEN GO TO 470
440 POKE 23607,123
450 PRINT AT 6,T1;P$(N+1);AT 2,T2;P$(N+1);AT 11,T2;P$(N+1)
460 LET T1=T1+1: LET T2=T2+1
470 NEXT N
480 POKE 23606,0: POKE 23607,60
490 PRINT AT 5,0;N$;AT 1,16;N$;AT 10,16;N$: OVER 0
500 :
510 REM Imprimir en impresora
520 :
530 COPY SCREEN$ : REM Interfaz DISCiPLE
540 :
550 GO TO 170
560 :
570 REM Graficos
580 :
590 FOR N=1 TO 4: READ A$: FOR M=USR A$ TO USR A$+7: READ F: POKE M,F: NEXT M: NEXT N: RETURN
600 DATA "I",120,120,216,216,24,24,24,24,"J",24,24,24,24,24,24,255,255,"K",60,60,195,195,3,3,3,3,"L",3,60,60,192,192,192,255,255
610 :
620 REM Grabar el programa
630 :
640 CLEAR : SAVE d*"carat-prog" LINE 10
650 SAVE d*"letrs64cpl"CODE 31064,1536
Descargas
El programa puede descargarse en una imagen de disco MGT (de DISCiPLE o Plus D), que también contiene el programa Carat-Musi:
- carat.mgt.gz (19.05 KiB) Imagen de disquete de DISCiPLE y Plus D, comprimida con gzip.
- carat.mgt.zip (19.14 KiB) Imagen de disquete de DISCiPLE y Plus D, comprimida con zip.