Logo Atari


Desarrollado por: Logo Computer Systems, Inc.
Publicado en: 1983
Traducido por: MultiSoft
Distribuido por: Coelsa
Medio: Cartucho y Disco


1. Introducción


Logo es un lenguaje de programación de alto nivel, de muy fácil aprendizaje, razón por la cual suele ser el lenguaje de programación preferido para trabajar con niños y jóvenes. Fue diseñado con fines didácticos por Danny Bobrow, Wally Feurzeig y Seymour Papert. A pesar de que Logo no fue creado con la finalidad de usarlo para enseñar programación, puede usarse para enseñar la mayoría de los principales conceptos de la programación, ya que proporciona soporte para manejo de listas, archivos y entrada/salida. Logo es uno de los pocos lenguajes de programación con instrucciones en español en algunas de sus versiones.


El Logo Atari que comprende:


  • 45 instrucciones para manejo de la geometría LOGO Incluye 4 tortugas con manejo de 16 formas, 126 colores y movimiento dinámico
  • 19 instrucciones para un poderoso manejo de listados
  • 3 instrucciones para manejo de variables
  • 17 instrucciones para operaciones aritméticas
  • 4 instrucciones de edición de procedimientos, variables y tareas
  • 11 instrucciones de condicionalidad y control de flujo
  • 3 instrucciones para operaciones lógicas
  • 17 instrucciones para comunicación
  • 15 instrucciones para manejo de memorias
  • 8 instrucciones para manejo de archivo
  • 5 instrucciones especiales para bajar a nivel de lenguaje de máquina

2. Equipamiento


El equipamiento mínimo para comenzar es un computador ATARI 600 XL o superior. Puede grabar y cargar archivos en casete usando la ATARI 1010 o también puede usar la disquetera ATARI 1050.

3. Forma de Trabajar


En el lenguaje Logo existen dos formas de trabajar para lograr los resultados deseados, es decir, para lograr que la tortuga haga lo que deseamos:


La primera es ingresar las primitivas o instrucciones a través de la línea de comandos.

La segunda es crear un procedimiento o pequeño programa en donde digitamos las instrucciones necesarias.

4. Instrucciones


A continuación un listado con los comandos en español y su símil en ingles con la descripción de que función realiza :


EspañolInglesDescripción
⋕YL pred1 pred2⋕ANDLas salidas son verdaderas si todas sus entradas son verdaderas
COD? carASCIIResponde con el código ASCII del caracter
PI ntortuga listaASKPide el número de tortuga para que ejecute las instrucciones en la lista
RT distanciaBACK, BK Mueve la distancia de la tortuga hacia atrás
FDBGMuestra un número que representa el color de fondo
SINPRIME, SP objBUTFIRST, BFEnvía todos los elementos de obj menos el primero
SINULTI objBUTLAST, BLEnvía todos los elementos de obj menos el último
LLAMA n.CALLTransfiere el control a una subrutina de lenguaje de máquina que comienza en la dirección n (decimal)
CATA unidad:CATALOGMuestra los nombres de todos los archivos en el disquete. En el casete, imprime las definiciones de los procedimientos y los nombres del archivo
CAR? nCHARDa salida al carácter cuyo código ASCII es n
BORRACLEANElimina la pantalla de gráficos sin afectar el estado de la tortuga
COLORCOLORMuestra un número que representa el color de la tortuga
COND ncondCONDDa como resultado verdadero si la condición condnumber está ocurriendo
COS nCOSDa como resultado el coseno de n grados
CUENT objCOUNTMuestra el número de elementos en objecto
LMCSBorra la pantalla, mueve la tortuga a la posición [0 0]. Establece el rumbo a 0
LTCTBorra la pantalla de texto
COLOCA n byte.DEPOSITEscribe un byte en la dirección n (decimal)
CADA listaEACHHace que cada tortuga ejecute por separado los comandos de la lista
ED nombre(s)EDIT, EDInicia el logo editor con procedimientos nombrados
EMONEDNSInicia el logo editor con todas las variables del área de trabajo
EFOR número de formaEDSHInicia el editor de formas del logo, mostrando el número de la forma.
NADA? objEMPTYPDa como resultado verdadero si obj está vacío
FINENDTermina la definición del procedimiento iniciado por CR
IGUAL? obj1 obj2EQUALPDa como resultado verdadero si sus entradas son iguales
ELTODERALLBorra todo del espacio de trabajo
EL nombre(s)ERASE, ERBorra todos los procedimientos nombrados
DES unidad:archivoERFBorra el nombre del archivo del dispositivo
ELN nombre(s)ERNBorra todas las variables con nombre
ELNSERNSBorra las variables del espacio de trabajo
ELTAERPSBorra todos los procedimientos del área de trabajo
EXAMINA n.EXAMINEMuesta el contenido de la dirección n (decimal)
FALSOFALSEEntrada especial para y, si, no y o
PRIM objFIRST objDa salida al primer elemento de objecto
AV distanciaFORWARD, FDMueve a la tortuga pasos de distancia hacia adelante
POMP obj listaFPUTSale una lista formada por la colocación de obj en el frente de la lista
GR (CTRL+F)FSDedica toda la pantalla a los gráficos
LEFF número de formaGETSHDevuelve una lista de 16 números; estos números corresponden a los bits de la forma
RUMBO?HEADINGMuestra el rumbo de la tortuga
CONHOMEMueve la tortuga a [0 0] y establece el rumbo a 0
STHTHace que la tortuga sea invisible
SI pred lista1 (lista2)IFSi pred es verdadero, ejecuta lista1, de lo contrario lista2
ENT nINTPone la parte entera de n
BA? njoyJOYMuestra la posición actual del número del joystick
BBA? bjoyJOYBDa como resultado verdadero si se pulsa el botón del número del joystick
TEC?KEYPDa como resultado verdadero si una tecla ha sido tecleada pero aún no ha sido leída
ULTILAST ObjDa salida al último elemento del objeto
IZ gradosLEFT, LTGira la tortuga grados a la izquierda (en sentido contrario a las agujas del reloj)
LIST obj1 obj2LISTSale la lista de sus entradas
LISTP objLISTPDa como resultado verdadero si obj es una lista
CARG unidad:archivoLOADCarga el archivo llamado filename desde el dispositivo en el ordenador
PONU obj listaLPUTSale una lista formada por la colocación de obj al final de la lista.
HAZ nombre objMAKE Hace que el nombre se refiera al objeto
ELEM? obj listaMEMBERPDa como resultado verdadero si el objeto está incluido en la lista
VAL? nombreNAMEPDa como resultado verdadero si el nombre tiene un valor
NUDOSNODESMuestra el número de nodos libres
NOT predNOTDa como resultado verdadero si pred es FALSE
NUMERO? objNUMBERPDa como resultado verdadero si el objeto es un número
⋕OL predl pred2#ORDa como resultado TRUE si alguna de sus entradas es verdadera
SALIDA objOUTPUT, OPDevuelve el control a la persona que llama, con el objeto como salida
SOB? ntorguta npenOVERMuestra un número que simboliza la colisión entre el número de la tortuga y el número del lápiz
PER? npaddlePADDLEDa salida a la rotación en el dial del número de paddle
BPER? bpaddlePADDLEBEmite verdadero si se presiona el botón en el número de paddle
CL npenPCMuestra un número que representa el color de la pluma del número del lápiz
LGPEDeja el borrador del bolígrafo
LA?PENSalidas del estado del lápiz (LA, SL, LG o PI)
LAPIZ, LAPENDOWN, PDBaja el lápiz a la tortuga
SINLA, SLPENUP, PULevanta el lápiz de la tortuga
LNPNMuestra el número del lápiz (0, 1 o 2) que se está utilizando
LI nombrePOImprime las definiciones de los procedimientos con nombre
LITOPOALLImprime las definiciones de los procedimientos y los nombres (variables)
LID ncondPODImprime cuando el demonio ncond actualmente en acción
LIDSPODSImprime todos los activos cuando los demonios
LNSPONSImprime los nombres y valores de todas las variables
LITAPOPSImprime las definiciones de todos los procedimientos
POSPOSMuestra las coordenadas de la posición de la tortuga
LITIPOTSImprime las líneas de título de los procedimientos
PRIMITIVAS.PRIMITIVESImprime la lista de primitivas de Logo
⋕IM obj⋕PRINT, PRImprime objeto seguido de retorno de carro (elimina los paréntesis exteriores de las listas)
⋕PRODUC a b⋕PRODUCTSalidas producto de sus entradas
HAZF nshape sshapePUTSHDa a nshape la forma de sshape, la red de bits
LOPXDeja el lapiz reversible
AZAR nRANDOM Produce un número entero aleatorio entre 0 y n -1
LCRCPemite el carácter leído por el dispositivo actual (por defecto es el teclado). Espera si es necesario
RECICLARECYCLERealiza una recogida de basura
REMANENTE d bREMAINDERMuestra el resto de a dividido por b
REPITE n listaREPEATEjecuta la lista n veces
REAZARRERANDOMMaker random se comportan de forma reproducible
DE gradosRIGHT, RTGira la tortuga grados a la derecha (en el sentido de las agujas del reloj)
LLRLDa salida a la línea leída por el dispositivo actual (por defecto es el teclado). Espera si es necesario
REDOM nROUNDLa salida de n se redondea al número entero más cercano
EJE listaRUNEjecuta la lista, produce lo que produce la lista
GRA unidad:archivoSAVEGuarda el espacio de trabajo en el dispositivo
⋕FR obj1 obj2⋕SESale la lista de sus entradas
PONFD ncolorSETBGEstablece el fondo como un número de color
PONC ncolorSETCEstablece el número de color de la tortuga
PONCURSOR posSETCURSORPone el cursor en la posición
REDUCE voz duracionSETENVEstablece la envolvente de la voz para el toot de modo que el volumen se reduce en una unidad cada duración
PONR gradosSETHEstablece el rumbo de la tortuga en grados
PONLC npen ncolorSETPCEstablece el número de lápiz (0, 1 o 2) en el número de columna
PONNL npenSETPNEstablece la lápiz como número de lápiz (0,1 o 2)
PONXY posSETPOSMueve la tortuga a su posición
PARALE unidad:archivoSETREADEstablece el nombre del dispositivo del que se leerá la salida de LC y LL
PARALE [ ] SETREADCierra el archivo que se abrió con PARALE
PONFAC m.SETSCREstablece la relación de aspecto a n
PONFR nshapeSETSHEstablece la forma de la tortuga en el número de forma
PONV speedSETSPEstablece la velocidad de la tortuga
PARAES unidad:archivoSETWRITEInicia el proceso de envío de una copia de todos los caracteres mostrados en la pantalla a unidad:archivo
PARAES [ ]SETWRITECierra el archivo que se abrió con PARAES
PONX xSETXMueve la tortuga horizontalmente a la coordenada x en x
PONY ySETYMueve la tortuga verticalmente a la coordenada y en y
FORMASHAPEMuestra un número que representa la forma de la tortuga actual
MUES objSHOWImprime el objeto seguido de un retorno con paréntesis para la lista
TG?SHOWNPDa como resultado verdadero si se muestra la tortuga
SEN nSINProduce un seno de n grados
VELOCSPEEDMuestra la velocidad actual de la tortuga
RAIZ nSORTProduce la raíz cuadrada de n
MX (CTRL+S)SSDivide la pantalla: arriba para los gráficos, abajo para el texto
TGSTHace que la(s) tortuga(s) sea(n) visible(s).
PARASTOPDetiene el procedimiento y devuelve el control a la persona que llama
SUM a bSUMHace la suma de sus entradas.
DILE ntortugaTELLDirige todos los comandos siguientes al número de tortuga
VALOR nombreTHINGMuesta el objeto referido por el nombre
CR nombreTOComienza a definir el nombre del procedimiento
SON voz freq vol duraciónTOOTProduce sonido en la voz de la frecuencia y el volumen de la duración
TOCA? ntortuga1 ntortuga2TOUCHINGMuestra un número que simboliza la colisión entre el número de tortuga 1 y el número de tortuga 2
VERTRUEEntrada especial para y, si, no y o
TE (CTRL+T)TSDedica toda la pantalla al texto
⋕ES obj⋕TYPEImprime el objeto dejando el cursor al final de la línea impresa
ALTO nWAITHace una pausa de n/60 de segundo
CUAN ncond listaWHENEstablece cuando el demonio para que cada vez que la condición ncond ocurre, la lista se ejecuta
CUAN ncord [ ]WHENSe borra (se detiene) cuando el demonio para el ncond
QT?WHOMuestra el número de la tortuga actual.
SALEWINDOWHace que la pantalla de gráficos sea una ventana de un campo de tortuga expandido. Borra la pantalla
⋕PLBR palabra1 palabra2⋕WORDLa palabra de salida se compone de sus entradas
PLBR? objWORDPDa como resultado verdadero si el objeto es una palabra
VUELWRAPHace que el campo de la tortuga envuelva los bordes de la pantalla. Borra la pantalla
XCO?XCORMuestra la coordenada x de la posición de la tortuga
XYO?YCORMuestra la coordenada y de la posición de la tortuga

5. Aritmética


OperaciónDescripción
a + bResponde con a más b
a – bResponde con a menos b
a * bResponde con a multiplicado por b
a / bResponde con a dividido por b
a < bResponde con VER si a es menor que b
a > bResponde con VER si a es mayor que b
obj1 = obj2Responde con un VER si a es igual a b

6. Glosario


Palabra Significado
byteUnidad de datos utilizada por el ordenador. Un número entero de 0 a 255
carLetras del alfabeto, números y signos de puntuación
ncolorUn número entero de 0 a 127
ncondUn número entero de 0 a 21
archivoUn nombre de archivo
gradosGrados de un ángulo. Un número real entre -9999.9999 y 9999.9999. Se puede utilizar el comando repetir para superar este límite
unidadUn nombre de dispositivo. «C: es Cassette. «D: es Disco, y «P: es Impresora. Los símbolos " (comillas) y : (dos puntos) son necesarios en todo momento
distanciaUn número desde -9999.9999 hasta 9999.9999. Se puede utilizar el comando repetir para superar este límite
duraciónUn número entero de 0 a 255
freqUn número entero de 14 a 64.000 en Hz
entradaPalabras con dos puntos delante. Se utiliza junto con CR
instlistaUna lista de procedimientos que Logo puede ejecutar
njoyUn entero de 0 a 3
listaInformación encerrada entre corchetes []
n, a, b, x, yUn número
nombreUna palabra que nombra un procedimiento o una variable
nomlistaUna lista de nombres
objectoUn objeto Logo (una palabra, una lista o un número)
npaddleUn número entero de 0 a 7
npenUn número entero de 0 a 2
posUna lista de dos números que dan las coordenadas de la tortuga o del cursor
predUn predicado, que es una operación que produce la palabra verdadera o la palabra falsa
nshapeUn número entero de 0 a 15
sshapeUna lista de 16 números que representan la cuadrícula de la forma
ntortugaUn número entero de 0 a 3
vozUn número entero, ya sea 0 o 1
volumeUn número entero de 0 a 15
secuenUna secuencia de caracteres (sin incluir un espacio)

7. Demostraciones


Bandera Chilena
Publicado en revista MundoAtari numero 5 octubre del 1987, página 29.



Atrape la tortuga
Publicado en boletín informativo centro Atari volumen 3 y numero 2, Febrero/Marzo 1985, página 8.



Dragón
Publicado en boletín informativo centro Atari volumen 3, numero 3 de Abril del 1985, página 6.



Carrera de autos
Publicado en el libro Atari LOGO Introduction To Programing Through Turtle Graphics, Apéndice C página 147.
Adaptado por mi usando este artículo.

8. Descarga


Este ATR incluye los archivos fuentes de la demostración que se presentaron :


  • BANDERA.LOG : Dibuja la bandera Chilena, tipea BANDERA y presiona RETURN para ejecutar.
  • ATRAPE.LOG : Juego Atrape la tortuga debes ubicar las coordinadas X e Y para atrapar a la tortuga, tipea ATRAPE y presiona RETURN para ejecutar.
  • DRAGON.LOG : Dibujo de un dragón con animación que escupe fuego, tipea DRAGON y presiona RETURN para ejecutar.
  • CARRERA.LOG : Juego de carrera de autos de dos player use los joystick para automentar la velocidad y el botón para volver a empezar. Tipea CARRERA y presiona RETURN para ejecutar.

También compartimos el cartucho para descarga.

9. Agradecimientos


  • Guillermo Fuenzalida por facilitar una foto de este cartucho de Multisoft.