Carat-Prog

Descripción del contenido de la página

Programa para crear carátulas de cintas de programas, escrito para Sinclair ZX Spectrum.

Etiquetas:

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:

Carátulas

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: