Revistas en papel
 Commodore Amiga World Nº3 - Octubre 1989
Anterior
MenĂº
Logotipo

El Amiga Me Encanta ha conseguido el permiso por escrito de IDG Comunications España
para ofrecer los artículos de la revista Amiga World España.

Amiga World
  LISTADOS
    sin
  ERRORES


COMO TECLEAR LOS LISTADOS DE LA REVISTA

La mayoría de los listados de los listados para Amiga que se publican en Commodore World incluyen un sistema de comprobación de errores para que después de teclearlos te funcionen a la primera sin ningún problema. Para realizar el chequeo se utiliza el programa corrector "AMIGA-Checksum", cuya nueva versión tienes en estas páginas. Este programa está diseñado para comprobar programas BASIC, pero también puede utilizarse con los listados de C, Pascal, Ensamblador u otros lenguajes, siempre que puedan grabarse en un fichero ASCII.

Los listados de la revista aparecen con una serie de números precedidos de un punto en la parte derecha del listado. Este número es la "suma de control" de cada línea del programa y no debe teclearse cuando se está introduciendo el listado. Si alguna de las líneas del listado tiene más caracteres que el ancho de la columna, los caracteres sobrantes pasarán a la línea siguiente. Para evitar confusiones, estos caracteres o líneas sobrantes aparecen desplazados tres espacios hacia la derecha para distinguirlos de una posible nueva línea.

Para teclear y comprobar los listados de la revista puedes elegir cualquiera de las dos opciones.

1. Cargar el AmigaBasic, cargar el programa "Amiga Checksum", situarte al final de listado (ALT-cursor abajo) y comenzar a teclear, o bien:

2. Cargar el AmigaBasic y comenzar a teclear.

En la primera opción, cuando termines, tendrás en la memoria del ordenador dos listados en uno, primero el "Amiga Checksum" y a continuación el que tú hayas tecleado. Como medida de precaución, conviene que grabes el listado de cuando en cuando. Para comprobar las sumas de control de listado, ejecuta el programa tecleando RUN.

En el segundo caso, debes grabar el programa que hayas elegido en formato ASCII, utilizando la opción ",a" (Ejemplo: SAVE"miprograma",a) y después cargar (LOAD) y ejecutar (RUN) el programa corrector Checksum.

Cualquiera que sea el sistema que hayas elegido el corrector te preguntará el tipo de checksum que deseas, a lo que debes contestar "1", el programa en memoria si tienes los dos programas en uno, o "2" si el programa está grabado en el disco. Después has de indicar por dónde quieres la salida: pantalla, impresora o fichero. Normalmente, elige la pantalla o la impresora. finalmente, se calcularán todas las sumas de control del programa y aparecerá el listado más o menos como está en la revista. Cuando termines tu programa quedará listo para funcionar.

Para evitar problemas a la hora de teclear conviene que introduzcas los listados exactamente como aparecen en la revista, excepto los números de las sumas de control. Esto significa respetar los espacios, las mayúsculas y minúsculas (aunque esto es opcional), los REMs, los nombres de las variables y todo lo demás. Si no consigues la suma de control de alguna línea, no desesperes: borra la línea completamente y prueba otra vez. En última instancia sigue con las demás líneas y vuelve más adelante a ella.

El artículo completo con las explicaciones detalladas sobre el funcionamiento de la primera versión de este programa y junto con el programa que se utiliza para obtener los listados con sumas de control fue publicado en el número 47 de Commodore World.

Notas Encanta: La mayorías de los listados que aparecen en esta versión en línea de las Amiga World, han sido escritos a mano, pueden contener algún error. Si detecta algún error, escribanos por email. Por otra parte, los listados que aparecen aquí tienen las líneas completas, en la versión impresa, por diferentes motivos eran recortadas poniendo lo restante en la siguiente línea pero con 3 espacios por delante. En Encanta respetamos la línea completa, a no ser que esta sea extremadamente larga y no permita una lectura cómoda. Los códigos de control que aparecen a la derecha no son desplazados solamente 3 caracteres por este motivo. Además las líneas vacías, a menudo incluidas para una lectura mejor del listado, contienen un espacio, tengalo en cuenta si va a utilizar el programa corrector que aparece en este artículo.


Programa: Checksum 2.1          Amiga 500/1000/2000
' AMIGA-Checksum  Version 2.1        26/4/89                                   .995
'                                                                              .273
' (c)1989 by Alvaro F. Mingo & Alvaro Ibanez                                   .541
' (c)1988,1989 by Commodore World                                              .604
' Control de errores                                                           .550
ON ERROR GOTO CHECKSUM                                                         .694
' Abrir una ventana al maximo tamano                                           .584
WINDOW 1,"AMIGA-Checksum 2.0",(0,0)-(617,186)                                  . 75
' Inicializar Variables                                                        .833
CHECKSUM:                                                                      .578
CLS:K%=7:P%=0:D%=0:LI%=0:A$="RAM:CHECKLIST"                                    .788
MAY%=1:MAY$(1)="ON ":MAY$(0)="OFF"                                             .843
PRINT "AMIGA-Checksum Versión 2.1"                                             .788
PRINT "(c)1989 by Alvaro F. Mingo & Alvaro Ibanez"                             .628
PRINT "(c)1989 by Commodore World"                                             .813
PRINT                                                                          .463
PRINT "CHECKSUM: 1. Programa en memoria"                                       .152
PRINT "          2. Fichero"                                                   .707
PRINT "          3. Mayúsculas ";                                              .813
COLOR 0,1:PRINT MAY$(MAY%):COLOR 1,0                                           .875
' Recoge la seleccion del teclado y activa                                     .820
' o desactiva las mayusculas                                                   .214
WHILE D%<1 OR D%>2                                                             .792
P$=INKEY$:D%=VAL(P$)                                                           .136
IF D%=3 THEN MAY%=-(MAY%=0):LOCATE 7,25:COLOR 0,1:PRINT MAY$(MAY%):COLOR 1,0   .493
WEND                                                                           . 89
PRINT  D%                                                                      .266
IF D%=1 THEN SAVE A$,A ELSE INPUT "Nombre del fichero:",A$                     .660
PRINT                                                                          .463
PRINT "Salida por:  1. Pantalla"                                               .361
PRINT "             2. Impresora"                                              .262
PRINT "             3. Fichero"                                                .474
' Recoge la seleccion del teclado                                              .624
WHILE P%<1 OR P%>3                                                             .760
P$=INKEY$:P%=VAL(P$)                                                           .240
WEND                                                                           . 89
PRINT P%                                                                       .138
' Asigna dispositivo de salida                                                 .134
PRINT                                                                          .463
IF P%=2 THEN                                                                   .597
WI$="PRT:"                                                                     .647
ELSEIF P%=1 THEN                                                               .665
WI$="SCRN:"                                                                    .951
ELSE                                                                           .483
INPUT "Nombre del fichero :",WI$:PRINT                                         .854
END IF                                                                         .654
' Apertura de dispositivos de entrada/salida                                   .554
OPEN A$ FOR INPUT AS 1                                                         .417
OPEN WI$ FOR OUTPUT AS 2                                                       .418
' Este primer bloque hace pasar el checksum                                    . 15
' sin convertirlo para ir mas deprisa                                          . 64
WHILE B$<>"9999 REM Checker-END" AND D%=1                                      .918
LINE INPUT#1,B$                                                                .286
WEND                                                                           . 89
WHILE NOT EOF(1)                                                               .271
LINE INPUT#1,B$                                                                .286
' Este bloque suprime espacios innecesarios                                    .976
WHILE LEFT$(B$,1)=" "                                                          .671
B$=MID$(B$,2)                                                                  . 94
WEND                                                                           . 89
WHILE RIGHT$(B$,1)=" "                                                         . 55
B$=LEFT$(B$,LEN(B$)-1)                                                         .970
WEND                                                                           . 89
' Imprime las lineas de separacion                                             .167
' sin calcular su checksum                                                     .423
IF B$="" THEN PRINT #2,"":GOTO LOOP                                            .901
' Convierte todo a mayusculas (opcional)                                       .640
IF MAY%=1 THEN B$=UCASE$(B$)                                                   .270
' Inicializacion del Checksum                                                  .912
SUM%=0                                                                         .760
FOR I=1 TO LEN(B$)                                                             .917
' Calculo                                                                      .475
SUM%=(SUM%+ASC(MID$(B$,I,1)))*K%                                               .652
SUM%=SUM%-INT(SUM%/999)*999                                                    .526
NEXT                                                                           . 61
' Impresion del resultado                                                      .438
PRINT #2,B$;TAB(70);".";SUM%                                                   .960
LI%=LI%+1                                                                      .381
LOOP:                                                                          .933
WEND                                                                           . 89
PRINT #2,"":PRINT #2,"Numero de lineas: ";LI%                                  .269
' Cierra todos los ficheros                                                    .787
CLOSE                                                                          .533
' Borra el programa de RAM:                                                    .294
IF D%=1 THEN KILL "RAM:CHECKLIST"                                              .446
PRINT :PRINT "Quieres hacer otro Checksum (s/n)?"                              .919
WHILE P$<>"S" AND P$<>"N"                                                      .308
P$=UCASE$(INKEY$)                                                              .405
WEND                                                                           . 89
IF P$="S" THEN CHECKSUM                                                        .838
IF D%=1 THEN DELETE -9999                                                      .954
END                                                                            .992
9999 REM Checker-END                                                           .870
Numero de lineas: 93

Envía esta página web a un amigo:
Esta opción está desactivada temporalmente, rogamos disculpen las molestias

Volver a la página anterior

Al menú principal