Skip to main content

Full text of "Amstrad Semanal Issue 018"

See other formats


 
o 
i 
-- 
,
 j 


· I m@m
w 
, 


j 



- -
-, 
J 
I C>H)
J1I¡) 
 
)¡¡ ar 
. , ¡" "1t"t'DIENTEPARA' SUARIOSDE , RDENADORES · MSTRAD (? ep )C:, /
 'fI
' -,) /' /- · ÑO N. D 18 



¡ fjO Ptas. 


Canarias 160 ptas, 


" 
1 \ 


CALCULUS: 
LA CALCULADORA 
MAS POTENTE 
DEL MUNDO 
ES UN AMSTRAD 
LENGUAJES DE 
INTELIGENCIA 
ARTIFICIAL 
Y QUINTA 
ENERACION 
I CONTABILIDAD 
GENERAL 
CON PLACON 
BAJO CPIM 


'0 ". 


ti' r' 


( I 


" 


\ 


, 


r 


\ 


.............. 


) 


, . -, 
t 


'') 


, 
. 


. ( .
 

 
 
 


t 


r- . 



 . 
, .... 


r 
I 


. 


OFTW ARE 
La batalla 
de 
 rnhem. 
Las fuerzas 
alemanas 
defienden el 
último puente 


., 


J' 


¡' 


r \ 


HOBBY PBESS,S.A. 




 


Este mes: 


fJ!f!Ji2 
 


Te ofrece algo realmente sabroso: 


MUSICA 


Este magnífico programa escrito en código 
máquina te permitirá manejar el sonido y 
la música en tu Amstrad desde Basic, 
mediante un nuevo juego de comandos 
creados especialmente para ello, 


CROSS 


Tienes cuatro revólveres para destruir a 
tus enemigos en el mínimo tiempo posible, 
Necesitarás toda tu habilidad, rapidez de 
reflejos y suerte, mucha suerte, 


JUMPER 


Debes alcanzar la cima del Valle de las 
Cintas Deslizantes, Tienes que saltar por 
los huecos de las vallas, que se 
desplazarán a derecha e izquierda con 
una rapidez de vértigo, 


MAGGOT 


Te encuentras en la amable tierra de las 
setas gigantes, Tu misión es guardarla del 
--.... ataque y la invasión de una peligrosísima 
, - serpiente polimórfica que las ataca sin 
piedad, 


TIMEBOMB 


Una organizac
ón terronsta de Oriente 
Medio ha colocado una bomba de tiempo 
en el laberinto de G8fensa del Laboratorio 
de investigación bacteriológica de 
Lexington, 


RSX 


Your Computer ha pensado en los usuarios 
del Amstrad CPC464 y ha creado un 
nuevo juego de comandos completo para 
tu ordenador, de forma que el Basic así 
ampliado no tenga nada que envidiar al de 
los otros modelos de la serie, 


f'1

 
:?'%'.-;::n 
J< 

.
 




,%
 W 
/
 
 
 
 
 ff4 g, 
U@fh 
 @:0:
:0 
 
 
j 


. 


. 


. 


, 


\ 


I 
IJ 


EL CORAZON DE LA PRIMERA REVISTA EUROPEA DE ORDENADORES 
AMSTRAD 


¡ 
I 464-664-6118 
La mejor selea:íón de programas 695 
l de juegos y utílidades, publicad05 . 
t en la revista de mayor ótfusm I 
[de
 
=: 
 1 PTAS. 
cassetm. en auténtica 'Y /\ 
r erdJswa mundial O -r 
 / \ 
"f" 
 ,
 ," 
\!;) ",_
!tCP 
O 
tJjO"'- 

¡t

a.. S, t.JJ 
a. fIIo,*P 



 A 
,,/.1 /. /-: 


Si no lo encontrara en su kiosco, puede solicitarlo directamente a nuestra editorial: 
Paseo de la Castellana, 268. Te!.: (91) 733 25 99. 28046 Madrid. 



Director Editorial 
José 1. Gómez-Centurión 
Director Ejecutivo 
Victor Prieto 
5ubdirector 
José María Díaz 
Redactora Jefe 
Marta Gordo 
Diseño 
José Flores 
Colaboradores 
Francisco Portalo, Pedro Sudón 
Miguel Sepúlveda, 
Francisco Mortín, 
Jesús Alanso, Pedro S, Pérez 
Amolio Gómez 
Juan J, Mortínez, 
David Sapuerta, Alberto Suñer, 
Eduardo R, Velasco 
Secretaria Redacción 
Carmen Santamoría 
Fotografía 
Carlos Condel 
Javier Mortínez 
Portada 
M, Barco 
lIustradores 
Javier Igual, J, Pons, F, L. 
Frontón. J, Septien, Pejo, J, J, 
Moro, Luigi Pérez 


Edita 
HOBBY PRESS S,A, 


Presidente 
María Andrino 
Consejero Delegado 
José 1. Gómez-Cenlurión 


Jefe de Publicidad 
Concha Gutiérrez 
Publicidad Barcelona 
José Galán Cortes 
Tel: (93) 3031022/3137162 


Secretaria de Dirección 
Mariso Cogorro 
Suscripclones 
M, a Rosa Gonzólez 
M,a del Mar Calzada 


Redacción, Administración 
y Publicidad 
Lo Gronja, 39 
Polígono Industrial de Alcobendos 
Te!.: 65432 11 
Telex: 49 4BO HOPR 


Oto. Circulación 
Carlos Peropadre 
Distribución 
Coedis, S, A, Valencia, 245 
Barcelona 


Imprime 
ROTEDIC, S, A, Crta, de Irún, 
Km, 12,450 (MADRID) 
Fotocomposición 
Navacomp. S,A, 
Nicolás Morales, 3B-40 
Fotomecánica 
GROF 
Ezequiel Solano, 16 
Depósito Legal: 
M-2B46B-19B5 


Derechos exclusivos 
de lo revisto 
COMPUTING with 
the AMSTRAD . 


Representante para Argentino, Chile, 
Uruguay y Paraguay, Cio 
Americana de Ediciones, S.R.L. Sud 
América 1.532, Tel.: 21 2464, 1209 
BUENOS AIRES (Argentina), 
M, H, AMSTRAD na se hace 
necesorlamento solidario de las 
opiniones vertidos por sus 
colaboradores en los arltculos 
firmados. Reservados todos los 
derechos. 
Se solicitara control OJD 


,- I 
" 


, 


, 
u 


. 


IOO@OOrIDW 


j , 
t 
 

';¿ti j))/t 4:fJ
t) 


Año 1 . Número 18 . 31 de Diciembre de 1985 01 6 de Enero de 1986 
150 ptas, (sobretosa Canarios, 10 ptas,) 


5 Primera 
Plana 


Semiconductores japoneses de 64 megabytes. Nueva 
in/
rface RS232 para nuestros Amstrads. 


Primeros 'pasos 6 
Los ordenadores no sólo sirven para jugar, como 
muy bien saben todos nuestros lectores. También 
Funcionan, y muy bien, a la hora de resolver 
aplicaciones que involucran una serie de cálculos 
complejos. El uso de las funciones trigonométricas 
servirá para complementar nuestero estudio de cómo 
el Amstrad trata los números, aparte de revelarse 
extremadamente útiles para los que vosotros mismos 
creeís. 


..' .. 


Serio oro 


El programa de Serie oro de esta semana presenta 
una aplicación de los ordenadores muy clásica y útil, 
pero que normalmente se olvida, porque se piensa que 
va implícitamente unida a una computadora: usar el 
Amstrad como una potentísima calculadora, Si 
alguien piensa que esto no es nado del otro mundo, 
que espere a ver la belleza con que el autor ha 
tratado la presentación de su obra y la sorprendente 
sencillez con que se maneja. 


Análisis - 


Nunca estó de mós saber cómo el Amstrad 
organiza las coordenadas de la pantalla de texto. Por 
eso, Análisis ha preparado un programa que nos 
informa de ello sin ningún esfuerzo por nuestra parte. 
Sólo mueva el cursar. 


- II';;-
 
'- . 
j \/ 
> 

 :> 
.;> ) ,
'}\ 


; 


if 


'r 
1, 


Arnhem: 


18 


l7 de septiembre de 1944. El primer war game en 
España para todos los modelos de Amstrad. 


, 


Lenguajes (y 111) 


En esta tercera y última parte de nuestra panorómica 
de los lenguajes de programación, tratamos de dar al 
lector una visión de conjunto, necesariamente 
superficial, de lo que que son los lenguajes declarativos 
de Inteligencia Artificial, y de qué se cuece en la 
Quinta Generación de ordenadores. 


23 Banco de pruebas 
Placon es un programa de contabilidad muy potente, 
adaptado al Plan Contable EspQñol, y su anólisis aquí 
se justifica debido a la gran parte de usuarios a los 
que puede interesar/es una aplicación tan 
especializada, 


. 
Código Máquina e 
Esta vez no hablamos de rutinas, sino de 
herramientas imprescindibles para crearlas. Al lector le 
sonará el concepto de programa ensamblador, pero 
cuando vea el ensamblador de HisoFt, que probamos 
esta semana, comprenderá por qué programar en 
máquina puede llegar a ser muy fácil. 


MIOOH088yAMSTRAD 3 



m-u 
 u 


90 0 "os. 
64. f 
d 464 ' 
\ Art1stra d 
ver e 
l 


m[u]
ITillillm 
 
GARANTIA E B P A Ñ A 


/) 


, 


{\
.; I I
 AM;
A
I 'j I .'¡.,.- . #ufJA"
r
 :"1 
, . ,
F'1 I -.- 
, 1 ', '/-- -
 
l. , " 
 '
< 
I 
 :.
 II
,
 1" J I .
 . , 
 
.Ji' 
'
1 

. t t"'
..
 f......... l' t 
1 1 .11 1 '"''II.
''' 1:lr 


I I E IJ ::, I I 
J _,..1 . 
:'
 



 ' 
I =" .' \;;0/'_ " _ 


.


b 


'/'r, 



., 
, ' 
I ,.\,", / 
,¡)¡. " 


l' 


:' 


J ; ; r 


...I.J("I 


.. ....:!- 


......n. 


'1 


.' l., 


':; .. 
v
... 

P'
«'''''<2>''''
 
"
 <;)«. 


 .... 

 .......... 
 
... '- __.0- 


/ '\,
,\
, '\
';\ 


I 


, I 

 ." t 


.. I . 

.<\
"'t
 _ 


Basic 
pere ni
os 


I 


, . 
1 


" 


. "'
. 



 
«'\: 


l l
' 
, I 
/ 
<¡i\') ) 


, , 


VENTA A PLAZOS HASTA 36 MESES 


01 ." 11..1' 
 f.. 


.L.:r.:rtnTrr( I'I'HI'I'.rNrirm 
, 


.:!..IIII 


i 
! , 
: t IL . I '. l , 
I " ,,
 
rT 
T y u I,or. 
I I 
 - t. f. 
 
¡ , t ( _: H J 
_ l : . f 
 : « -1 fl
 '.....' ti r 
! - \ lB" : ; . I - ", I! I 
, :.... '¡::.' I ' - 1 
I , 


- 


I '" ," 
l' I .. 


.
 


;: :- ,::., 


Nuevo Amstrad CPC6128: 109,500 ptas, (F, Verde) 


rnm.-' 


. 


Servimos a tiendas 
Abrimos sábados por la tarde 


Embajadores, 90 Tfno. 2210980 
28012 Madrid 



Semiconduttores 
de 64 megas 


n Japón, en esto de 
la microelectrónica, 
no se duermen en los laureles en ab- 
soluto. No les basta con ser el país 
puntero, sino que sus esfuerzos de in- 
vestigación no cesan en ningún mo- 
mento (probablemente por eso son 
105 primeros). 
Un minúsculo sincroton, de 5 me- 
tros de diámetro, permitirá fabricar 
semiconductores de 64 megaoctetos 
(64.000 Kbytes) a partir de 1988. 
Por otra parte, conectando con 
otra noticia publicada'no hace mu- 
cho en AMSTRAD Semanal, el profe- 
sor Isao Karube, de la Universidad 
de Tokio, acaba de reivindicar la pa- 
ternidad de la idea de fabricar (bio- 
semiconductores», usando materia- 
les bilógicos más que inorgánicos, 
con lo que la capacidad de integra- 
ción superaría en mil millones de ve- 
ces a la conseguida actualmente. 
............. 


ORDENADORES 
y. IBLIOTECAS 


esde hace algún tiempo 
e; ¡sten en Cataluñ. unas cuantas bi- 
b iotecas que utili an ordenadores 
C' mo herramienta cultural interacti- 
VI con sus consult"rJntes. 
Las llamadas «wicrotecas» cuen- 
tan con unos cua tos ordenadores 
ir tegrados en una ed local, esto es, 
e .isle una e
tación central dotada de 
disco duro a la qu 
 acceden el resto 
d - las máquinas pa 'a encontrar la in- 
formación solicita. a. 
Esto libera al consultante de tener 
que andar sacando y metiendo dis- 
kettes, optimiza los recursos totales 
de la biblioteca y hoce la interven- 
ción del bibliotecario necesaria sola- 
mente en los casos verdaderamente 
importantes. 
Felicitaciones por una iniciativa 
que, si se dirige racionalmente, faci- 
litará el acceso personalizado a la in- 
formación sin incómodos estados de 
espera y liberará a unas cuantas per- 
sonas de trabajos mecánicos y, por 
tanto, inhumanos. 


::.>- 
 
- -
,- 
_.

,.;.- r.... C"" !. - ;.. 
--:-..,- ,- .. 


,..,,, 
 -" '1 

I'j¡, " " 
, , 
,.
 "., { 
.' , 
'... , 
r. '. '" . '\ '{ \' 
. 


r 



 .// I 
j 



 
',; '\1 
i 
¡r/ ,,1,. 


j 
7 r 
'. ,,
 E= == 


, - 


, . 


'o' 
" 


\' 
lO, 
_," . \Ir 

 I


 .. 
'
 


.. 


. 


o", '..
. . " 


Hogar por 
ordenador 


os ordenadores amena- 
zan con introducirse muy profunda- 
mente no sólo en nuestro trabajo, si- 
no también en nuestros hogares, to- 
mando control de muchas funciones 
hasta ahora reservadas a nosotros. 
En Japón, cómo no, usted puede 
agenciarse un aspirador del tamaño 
de un paquete de Ducados para lim- 
piar las migas de la mesa antes de 
tomar el postre. Sí, sí, como suena. 
Esto en sí mismo no es muy preo- 
cupante, pero en Francia se ha idea- 
do un tipo de habitación pensada ini- 
cialmente para ayuda a los paraplé- 
jicos, que permite controlar median- 
te la voz cosas tales como bajar y su- 
bir persianas, descolgar un teléfono 
o hacer que un robot le acerque a 
uno un vasito de agua. 
En este sentido, tal vez lo más es- 
pectacular sea la comercialización 
de una columna compuesta por un 
televisor y un teléfono: por ejemplo, 
llega un visitante a casa y el ordena- 
dor pasa la imagen al televisor. Us- 
ted, mediante el teléfono, o habla 
con el visitante o le ordena a la com- 
putadora que abra la puerta. El pro- 
grama incluido en la máquina es ca- 
paz de detectar fugas de gas, incen- 
dios o la presencia de intrusos, yac- 
tuar en consecuencia. 
En Silicon Valley, una investigado- 
ra francesa ha creado KA TALA VOX, 
un sistema que permite controlar 
cualquier proceso que un ordenador 
sea capaz de hacer mediante la voz 
humana. 
Será posible ir dictándole al orde- 
nador un escrito mientras uno pasea 
por su casa, y en mitad de la narra- 
ción, ordenarle cualquier otra cosa 
que se nos ocurra. 
Los ordenadores estarán muy 
pronto en nuestra casa, para ayu- 
darnos, como mayordomos según 
unos, y para deshumanizarnos e in- 
cordiur en general, según otros. Ve- 
remos. .. 


Primera 
.I.na 


. ,2'!.2 

a:,;
 
p,.' 


, --=-" 
-4- 


'.w."'''\
\'''O'' . 


,.0 \
', ,.\
 


t 


l.'" I JI J, 
....
 


t"Á
:.j.. 


i. ;. 
',,..k 


Nu v
 
RS232 
P
R
 

 MST. 
 , 


M.H.T. Ingenieros ha lanzado una 
interface serie RS232 que permite a 
cualquier modelo de la serie CPC co- 
municar con plotters, impresoras y 
otros ordenadores remotos o no a 
través de modems. 
La interface se conecta en el bus de 
expansión del Amstrad, y nos facul- 
ta para conectar más periféricos a 
través suyo, como un controlador de 
disco. 
Viene con su propio software en 
una E,PROM; no ocupa memoria del 
usuario y crea unos nuevos coman- 
dos Basic a través de RSX para ges- 
tionar la interface sin problemas. 
El manual señala que la RS232 fun- 
cionará también a bajo CP/M 2.2 y 
CP/M 3.0 normalmente, después de 
un proceso de instalación. Por últi- 
mo, como detalle interesante, el ma- 
nual explica un poco por encima có- 
mo conectar con un Sine/a ir QL y un 
Spectrum. 


MICROH088Y AMSTRAD 5 



HA LLEGADO 
LA TRIGONOMETRIA 


La Trigonometría ha sido y será uno de los 
«huesos» más grandes que nos ha tocado 
«roer» al estudiar Matemáticas. Nos ha 
llenado la cabeza de fórmulas, teoremas, 
hipótesis, tesis... En fin, una locura. 
Seguro que si Pitágoras y cía hubieran 
tenido un ordenador a mano, la cosa 
hubiera sido más divertida y menos árida. 


in más preámbulos vamos 
a entrar en materia habland6 de los 
ángulos, como siempre se ha hecho. 
Original idea, ¿verdad? 
Lo primero que nos encontramos 
al hablar de ángulos son sus unida- 
des de medida: radianes y grados. 


Radíanes y grados 
¿Sería conveniente recor- 
dar la definición de radián? 
Seguramente que a todos nos ven- 
dría bien refrescar la memoria: Ra- 
dián es el ángulo cuyo arco de cir- 
cunferencia tiene la misma longitud 
que el radio de ésta. 
Si haciendo un esfuerzo decimos 
que la longitud de la circunferencia 
es: 


long = 2 * PI * radio 
dividiendo por el radio obtendremos 
el número de rodianes que hay en 
una circunferencia (2*PI*radio). 
Como ésta tiene 360 grados, si que- 
remos encontrar el valor exacto en 
grados de un radián bastaría que te- 
cleáramos: 
radiá-n = 360/(2 * PI) 
y después 


PRINT radián 
No es nuestra intención montar 
aquí toda una teoría sobre el cálcu- 
lo de radianes y otras zarandajas. 
Solamente intentamos refrescarle un 
poco la memoria. 
Para t
abaiar con cualquiera de 


6 M/ceOH088Y AMSTRAD 


las funciones trigonométricas que va- 
mos a ver a continuación es necesa- 
rio que le digamos al Amstrad qué 
unidades vamos a manejar. Como 
sólo hay dos tipos no nos resultará 
muy difícil. 


Ordenes DEG Y RAD 
Mediante el comando DEG le de- 
cimos que las unidades de todas las 
funciones trigonométricas que van a 
continuación están expresadas en 
grados. Sin embargo, si utilizamos 
RAD le estamos indicando que las to- 
me como radianes. 
Por si no se cree lo que le decimos, 
vamos a proponerle un ejemplo 
práctico. Escriba: 
RAD 


seguido de 
PRINT SIN (30) 
En la pantalla aparecerá el valor 
-0.988031625. A continuación pon- 
ga: 


DEG 


y como antes 
PRINT SIN (30) 
El resultado será ahora un valor di- 
ferente al de antes. El número de uni- 
dades es el mismo -treinto- pero, 
en un caso son radianes y en el otro 
grados. ¡Curioso! 
Advertencia. Si no le indicamos na- 
da, el ordenador toma implícitamen- 
te como unidades los radianes. No 
se olvide de ello. 
Podemos intentar hacer un peque- 
ño programa que nos convierta ra- 
dianes en grados. Antes de continuar 
inténtelo usted mismo. 


-gl 
11 
I 
I 
I 


,- 
/ 


n 


. 



<' 


El método es muy sencillo. Prime- 
ro calculamos los grados que corres- 
ponden a los radianes del dato (lí- 
neas 40 y 50). Utilizamos para ello 
la función INT. A continuación cal- 
culamos el resto de esta división. 
Multiplicamos este valor por 60 y cal- 
culamos los minutos (línea 70). De un 
modo análogo podemos calcular los 
segundos. 
Pero entremos de lleno dentro del 
mundo de la Trigonometría. 


Función SIN 


La primera función que vamos o 
ver es el seno de un ángulo: SIN -ya 
la hemos utilizado para el primer 
ejemplo de este artículo. 
Su misión es calcular el seno del nú- 
mero o de lo expresión numérica que 
va entre paréntesis. 
Pruebe obtener los valores de 45 
grados y de PI/2 radianes. 
¿Ya lo ha intentado? Confiamos 
que lo hoya hecho de la siguiente 
forma: 


DEG 
PRINT SIN (45) 
para obtener el primer valor, y: 
RAD 
PRINT SIN (PI/2) 
para obtener el segundo. Fácil, ¿no? 
Problemos emplear esta función 
también en sentencias de asignación. 
Podíamos repetir el ejemplo anterior 
de la siguiente forma. Teclee: 
DEG 
seno=SIN (45) 
PRINT seno 


o 


RAD 
seno=SIN (PI/2) 
PRINT seno 
y en ambos casos obtendremos los 
mismos valores que yo teníamos. 
Con el Programa II podemos ver 
los diferentes valores que nos devuel- 
ve esta función para distintos ángu- 
los con un intervalo de 30 grados. 
Vemos que en el intervalo de O a 
180 grados, el valor del seno es po- 
sitivo, mientras en el resto de los án- 
gulos de uno circunferencia es nega- 
tivo. 


Función COS 


Otra de las funciones trigonomé- 
tricas de las que está provisto nues- 
tro Amstrad es COSo Con ella pode- 
mos calcular el valor del coseno de 


· rim eroS 
pase 


la expresión numérica o del número 
que figura entre paréntesis. 
Como ya se vio para la función 
SIN, también en este caso hay que 
decirle previamente en qué tipo de 
unidades vamos a darle el ángulo. 
Pruebe a teclear: 
DEG 


seguido de 
PRINT COS (45) 
y obtendremos el mismo valor que 
haciendo: 


RAD 
PRINT COS (PI/4) 
ya que los ángulos de 45 grados y 
PI/4 radianes son iguales. 
En el programa 3 podemos ver los 
diferentes valores que va tomando la 
función COS para ángulos compren- 
didos entre O y 360 grados toman- 
dos en intervalos de 30 en 30. 
Observa que estos valores son po- 
sitivos entre O y 90 grados, negati- 
vos entre 90 y 270, y nuevamente 
positivos en el intervalo de 270 a 360 
grados. 
A semejanza de SIN, podemos uti- 
lizar también la función COS en sen- 
tencias de asignación. Compruebe 
que es válido teclear: 
RAD 
coseno=COS (PI/2) 
seguido de 
PRINT coseno 
La tangente de un ángulo es la ra- 
zón existente entre el seno y el cose- 
no del mismo. i Bonita y tradicional 
definición! Si los clásicos hubiesen te- 
nido un ordenador hubieran realiza- 
do el cálculo de la tangente de, por 
ejemplo 60 grados, del modo si- 
guiente: 


DEG 
seno=SIN (60) 
coseno=COS (60) 
tangente = seno/coseno 
y de haber querido conocer su valor 
harían: 


PRINT tangente 
MICROHOBBY AMSTRAD 7 



Función TAN 
Con el Amstrad y nuestra menta- 
lidad informática, la cosa es más sen- 
cilla. Esta maravillosa máquina está 
dotada de una función que nos aho- 
rra hacer las operaciones matemáti- 
cas. La forma de calcular la tangen- 
te sería: 


DEG 
PRINT TAN (60) 
y asunto terminado. En la pantalla 
tendremos el flamante valor de la 
tangente de 60 grados. 
Podemos preparar un programita 
para conocer los valores por los que 
va pasando la tangente al recorrer 
el ángulo una circunferencia comple- 
ta (360 grados o 2
dl radianes). 
Le invitamos a que se atreva a fa- 
bricarse este programita antes de ver 
la solución que nosotros le propon- 
dremos. También nos atrevemos a 
sugerirle que estudie ciertos casos 
concretos que se le van a dar con al- 
guno de los valores obtenidos. ¿Có- 
mo lo ve? 
Si después de intentarlo quiere co- 
nocer nuestra solución, basta con 
que eche una ojeada al programa 4. 
No le será difícil entenderlo. 
La única novedad que tiene es el 
tratamiento que hacemos a los casos 
de error en las líneas 120 y 130. En 
los puntos en los que hemos detec- 
tado error éste se ha producido de- 
bido a que el valor de la tangente es 
o muy grande o muy pequeño. No- 
sotros hemos generalizado y deter- 
minado, mediante el tratamiento de 
error, que este valor sea INFINITO. 
Observe que estos casos se dan en 
ángulos muy próximos a PI/2 ó 
3 * PI/2 radianes. 
Solamente nos queda por ver la 
función encargada de calcular el ar- 
co cuya tangente es la expresión nu- 
mérica que está encerrada entre pa- 
réntesis. Su forma general es: 
arctg = A TN (expresión) 
En este caso, ¡cómo no!, podemos 
hacer también que la función nos de- 
vuelva el arco en grados o en radia- 
nes. 


Compruébelo con: 
DEG 
PRINT ATN (1) 
seguido de 


RAD 
PRINT ATN (1) 
¿Verdad que comprende el porqué 
de la diferencia de los dos valores 
obtenidos? 
Intente encontrar los valores del 
arco para tangentes de muy distin- 
tos rangos. Generalmente los casos 
límites son los que no hemos previs- 
to y los que nos dan muchos proble- 
mas inesperados. 
Nos va a volver a llamar pesados: 
Analice si el valor numérico devuel- 
to por todas estas funciones está den- 
tro de los límites correctos. Si no es 
así, trataremos el error y daremos el 
mensaje correspondiente. 
Bueno, ya hemos visto todas las 
funciones trigo no métricas que nos 
ofrece nuestro ordenador. Conocien- 
do el manejo de las mismas y las fór- 
mulas y teoremas de los antiguos po- 
demos ser capaces de resolver cual- 
quier triángulo que nos pongan de- 
lante. 
Más interesante que el manejo teó- 
rico de estas funciones es su aplica- 
ción concreta a problemas prácticos 
que encontramos en la vida corrien- 
te. Por ejemplo, un topógrafo sería 
feliz teniendo un programa que usa- 
ra estas funciones y le resolviera el 
problema de calcular alturas de edi- 
ficios o elevaciones de terreno. 
A nuestro topógrafo le bastaría 
con medir la distancia que hay des- 
de el punto donde se encuentra has- 
ta el edificio y el ángulo comprendi- 
do entre la horizontal y la línea que 
une dicho punto y la azotea (parte 
más alta de la casa). Si sigue el pro- 
grama V verá por qué. 
Se trata de un algoritmo de andar 
por casa que nos realiza este cálculo. 
Con las líneas 40 a 100 tomamos 
los datos que nos proporciona el to- 
pógrafo y los colocamos en sus va- 
riables correspondientes. 
En la línea 110 realizamos el cál- 
culo de la altura. Si no hay cosas ex- 
trañas en los datos, imprimimos el re- 
sultado (línea 720). 
Si no va bien la cosa, sacamos el 
mensaje de error (haga caso de la 
sugerencia) y le pedimos nuevos da- 
tos para calcular la altura. 
De momento vale por hoy. La pró- 
xima semana seguiremos nuestro pa- 
seo por el mundo de los números. 
LAh!, preparese para ser MILLONA- 
RIO. 


PROGR · MAS 


lO RE
I PROGRAMA I 
20 CLS 
30 INPUT "RAOIANES, "....ad1..nes 
40 tot..l-.....dl..nes*360/(2*PI) 
50 g.....dos INT(tot..l) 
60 restol=(tot..l-g.....dos)*60 
70 minutos INT(restol) 
80 ...esto2 (restol-m1nutos)*60 
90 segundos INT(resto2) 
100 PRINT 
110 PRINT"GR(4DOS: ..g.....dos. "MINUTOS:" 
m1nutos, "SEGUNDOS, "segundos 


10 REM F'ROGRAMA I I 

O CLS ' 
30 OEG 
40 PRINT"ANGULO"."SENO" 
50 F'RINT u ------II."----" 
60 FOR ..nge.lo O TO 360 STEP 30 
70 seno SIN(..ngulo) 
80 PRINT ..ngulo.seno 
90 NEXT ..nge,lo 


10 REM PROGRAMA III 
20 CLS 
30 DEG 
40 F'RINT"ANGULO", "COSENO" 
50 PRINT..------"...------" 
60 FOR ..ngulo O TO 360 STEP 30 
70 coseno COS(..ngulo) 
80 PRINT ..ngulo.coseno 
90 NEXT ..ngulo 


10 REM PROGRAMA IV 
20 ON ERROR GOTO 120 
30 CLS 
40 DEG 
50 PRINT"ANGULO"."TANGENTE" 
60 PRINT..------.....--------.. 
70 FOR ..ngulo-O TO 360 STEF' 30 
80 t..ngente=TAN(..nyulo) 
90 PRINT ..ngulo.tangente 
100 NEXT ..ngulo 
110 END 
120 PRINT ..ngulo." INFINITO" 
130 RESUME 100 


10 REM PROGRA
IA V 
20 ON ERROR GOTO 140 
30 CLS 
40 INPUT"DISTANCIA HORIZONTAL, ".d1 
stanc18 
50 IF dlst..nc1"=0 THEN ERR 11 
60 PRINT 
70 INPUT"GRADOS O RADIANES (g/r). 
lI.unidad$ 
80 IF un1d..d$ "g" THEN DEG ELSE IF 
unid..d$ "..." THEN RAD ELSE GOTO 70 
90 PRINT 
100 INPUT"ANGULO: .....ngulo 
110 ..ltu.....-d1st..nc1..*TAN(..ngulo) 
120 PRINT ..Itur.. 
130 END 
140 REM TRATAMIENTO DE ERROR 
150 PRINT 
160 PRINT"ESTAS DEBAJO DEL EDIFICIO 
SAL CORRIENDO POR SI ACASO 
SE DERRUMBA." 
170 FOR 1=0 TO 3000:NEXT 1 
180 RESUME 30 



MICIO
I 


Duque de Sexto, 50. 28012 Madrid 
Tels. (91) 274 53 80-276 9616 




-:- 
 _.
 
j[ 

, ) 
" 't(
- 
/;, ( ,1 , . 
'/' A ( 1.\ Q'.t.

tt1l«& 
JJ.:- '-: IV" "7 
- --..- 


SOFTWARE: iíGRATIS 1 BOLlGRAFO DE ACERO CON RELOJ INCORPORADO!! 


Bounty Bob 
Fighting Warrior 
Foupack 
Combat Lynx 
Dummy Run 
Raid 
Match Day 
Map Game 
Hypersports 


Ptas. 
2.300 
2.100 
3.890 
2.100 
2.100 
2.300 
2.300 
2.750 
2.300 


Bruce Lee 
Yier Kung Fu 
Exploding Fist 
Southern Belle 
Dragontorc 
Rocky 
World Series Baseball 
Dambusters 
Ajedrez Tridimensional 


Ptas. 
2.300 
2.300 
2.300 
2.300 
2.300 
2.100 
2.100 
2.300 
1.975 


IMPRESORAS: ii20% DE DESCUENTO SOBRE P.V.P.!! 


Lápiz óptico DK'Tronics 
Tapa metacrilato AMSTRAD 
Toshiba MSX 64 K 


4.850 
1.975 
39.900 


Diskette 3" 
Cinta C-15 (especial) 
Cassette Especial 


1.050 
85 
5.295 


Joystick Quick Shot 11 
2.495 ptas. 


Joystick Quick Shot I 
1.995 ptas. 


Joystick Quick Shot V 
2.995 ptas. 


Increíbles precios para tu AMSTRAD 
464 y 6128 (verde y color). 
(Llámanos y te asombrarás) 


Sabrewulf + Decathlon + Beach 
Head + Jet Set Willy 
2.500 ptas. 


PC Compatible IBM 256 K 
Monitor Fósforo Verde 
2 Bocas DiskeUe 360 K 
279.000 ptas. 


Commodore 64: 42.900 ptas. 
Commodore 128: 74.900 ptas. 


El pedido te lo enviamos URGENTEMENTE contra-reembolso SIN NINGUN GASTO DE ENVIO, LLA- 
MANDO a los teléfonos: (91) 276 9616-2745380 o escribiendo a MICRO-1. Duque de Sexto, 50.28012 Madrid. 




 
.. 4 
(
 .1, 
 
t 
) 
 
, 
) I ' 
., 
'- 


" . ,.,,=-
 
lú]


ljj 
 
 !J]
 


'-, 
--'1 
-." 


/' I 
;,) (.J __ . 

 
 


1) 
, 
- - ,\ J , 
- 
 

..-<: /':'""';

 

 /# r _J '
, -1' 



 


. . ..S 
- l',"," -.-
t7rr;;¡ 
"1 I 'J 11 '>-
, -il.:2./ U 


HE . I THE 
fl!J!!()O(IJ'!ypJt 
-" 
f-
 "J@ 



 
1 


..i 



'" 

\'I>\\ '" 
, \\'
'\
\

()"'\ 

()"';\\"'
() \ 
4
' 
I 
"'k ,l' '
f¡", '\; " 


. 
. 



 


Á 


d' 
....1':. 
I 
'') 
: I , .., 
. . .. - - 
or T I 48K 1L 
"{ -N .. 111' n 
. l. 
- 
. :" 


- 


,1 


1IIIIIIIIii 


. 
 -.J- 


¡, 
--==::;..:::;?-
 :5: 
--- 
- 


..} 



 


.... 


. H ' 
.i:W 
.,I"'
..,
. I -,f,;" 


Ir 04 # 


I \ 


, 
" 


r ,¿Jf 1l
!1U11, 
j /". 
,,/
 

.¿.' 
 l
 ...: ' I ,;-- l - ., 
\ ',
" '
;';
 O '" . 
 

\ 
'
 ,..' 'tfl 

I 1
 
 
 U 
"If,¡ ,,)"'IEAD

 "'- 
. P' .. - /......... 
;'1l- 
I 


./ 
\
 . 
\
 \ . ) 

 
,ol:,.o, 
." 
.. 


'..' I j , 


j"'J
 


o ME! 


. 


flGH'TlnG 
W,,' 'l t IOR 


-" 


....-¡ 
.. 


-.;;, 
-- '::' 


\ 
.
 


"" 


J 


)r 
 _\ ______ ./ 
.,. r' 
 P?£\ lit< !"" ./" 
1" 1, I 
I\ 
 
"".......,., , '74./ ) ........ 

\ ".,..-..: 
, .. - ¥ \. ' . 1:1; t i)-' 
f -t\ '" 
7 
-... , /:t 
OA¡ ;f- \ 

" 


, 
 / \. 
, 
d 
J
 .... ,"" .. 
- . , 
'. 
I1JlJ .'1 
1- . 
uu VI.! 


[, ",- 


u- 
 ',. 
r '? / 

 __ ,4 



 ...._..; 
.., . 
" 
 '" 
. . 
( O O) 


 
Da
 


S
t
u LO 


_.10.... " 


, , 


..:, 


" 


. . 
. 


, I 
p
Yrt . ,41 
.0 '1'01110, : T 


.r... e 

, _
A
 
 


'I{' 


'l 


r 
I . 
.boJ." : 
'fI!;
 / 
,}'. t 


j: 



" 


J,
s 



 
 ":' 

 
, , 
'
t I 



 
.. 
", . 

 '. " 11 

. I " 
 I 
':,. ,,1, . 1 '_ 
i{\' '.....,........ , . 
".,' :
" 
Ñ:. 

).i 
,",' .........
' 
. .1, 8 -" Af'CESS 
'., Wlr-::'. 


I 
': '1 't 1; 

 \.
. ", 
 ' 
I : '-\'J '., 


1..... - 


ti 
/ " 
,'. . j" 
1 ,'---"'" ........ 
:-.... . 
I , '-;. 1 
... ..-' 1/ 

 .( 
'r 


'1 \," 


, l : ,
 
1 ' - -, ,
'- n 
"'-111( , , 
r ' J] J
, '< · 
.. . 7' ,:" \- ' \::::::j 
-/ 
\: ;
 T 
 \ _ 
I \ .) -. I ..... 
\ \ J :
 ;.;.
) I , ' 
l \ , I · , ( !t ' 

 -:1 1 \ 
 ;- 
\ , ' 
. . l.' 
,-. C. -, \'" ........j 
- \. .-....- ... I 
.:. 


:- J I ! 


. J': ,- . 
. . /, " " .' . 
. .y I Y;/ . . 
J " ',... '_v ! 
¡I . .
:I';'!J'I.' i 
L - -' //'f\., - ""',,' 
j. '_' ,,__o . . 
AI 
- 
 
. 
 

J -'
 '
 ,
'
, 
-, 
: 
. ,./h/' ,. . 
I ...- -- 11/ 
t -' ,"- t, I 
i.
 : 
- ** I 
" - ..... . I 


......., - R' .....u....... 
- 
 / 
)-' 

 .. = - !'
 .. 
 



 


- - 
=- - -- 
- 
- 

 


- 
- - 
-- 
-== .; 
- - 


- - - 
- - 
- - 


-- 
- - - 


..." V ." 
, ' 
COMO LO OYES. EN CA. ¿ 
UNO DE NUESTRO JU. 
GOS ENCONTRARAS UN 
CUPON. MANDANO LO D · 
BIDAMENTE RELL NADO Y 
PARTICIPARA N L'.. 
TEO QUE ENTRE YO. · 
LOS CUPONES R CI: l. · 
HAREMOS 15 · E EN · O. 
¡IMAGINATE! N ¿ DA M NO, 
QUE VIAJ y TANCI' 
PA. ¿ .. ONAS DURAN. 
1 SEMANA EN 
IAMI, EN 
DISNEY WORLD. 


, 
STA. ENCRACIA, 1 · 28010 MADRID. TEL. 447 34 10 



CALCULADORA CPC 464 


Cabe preguntarse, ¿por qué limitar un ordenador a operar 
como una calculadora, cuando podemos realizar operaciones 
de forma directa con un resultado inmediato? (ejemplo: 
PRINT 3-5). La respuesta es muy sencilla, siempre que nos 
limitemos a operar ton ciertos valores y olvidarlos, no hay 
problema, Pero cuando deseamos guardar esos valores y 
operar con ellos de forma estadística necesitamos ya de un 
pequeño programa para lIevarlo a cabo, Con esta 
calculadora podemos realizar todo esto y más. 


Programa realizado por el lector: 
JUAN RAMON AS CASO AGUADO (Zaragoza) 



 


I funcie namiento 
está basado en las calculadoras 
HEWLETf-PACKARD que utilizan pa- 
ra operar dos registros 'x' e- 'y', en los 
cuales se introducen los valores y a 
continuación se opera con ellos. Se 
- .te. de . mejor con un ejemplo. 
En una calculadora convencional 
sería: 
5 03 I = I pantalla 8 
en la calcula dora HP: 
5 I ENTER 1 3 0 pantalla 8 
y e n la calcu ladora CPC 464: 
5 1 ENTER 1 3 [6] pantalla 8 
La tecla rn sería la que realiza- 
ría la suma de los registros, véase el 
menú de opciones. 
En los dos últimos casos lo que se 
ejecuta es lo ,siguiente: 
- introducimos el número 5 en el 
registro 'x',. 
- pulsamos ENTER, hace una co- 
pia del registro 'x' en el registro 'y'. 
- introducimos el número 3 en el 
registro 'x' borrando el número an- 
terio (5). 
- opera los registros con la ope- 
ración indicada y deja el resultado 
en el registro 'x'. 


12 MlaOH088Y AMSTRAD 


MANEJO 


Comprendido cómo funciona el 
ejemplo anterior el resto de opera- 
ciones no resulta nada complicado, 
al contrario es de muy fácil manejo. 
Al 'encender' la calculadora 
(RUN), aparecen en la pantalla tres 
ventanas informativas, un menú de 
opciones y un indicador intermitente 
del sistema de gradoso 
La ventana superior izquierda, a la 
que llamaremos pantalla 1, es la que 
nos muestra el número que estamos 
entrando en el registro 'x' o el resul- 
tado de las operaciones. 
La ventana más grande, que lla- 
maremos pantalla 2, nos muestra las 
memorias almacenadas o la posibi- 
lidad de visualizar los datos estadís- 
ticos. Y la ventana derecha, que se- 
rá la pantalla 3, nos aparecen los 
mensajes informativos o de error. 
Tenga en cuenta que siempre que 
opere con dos números, debe de se- 
pararlos con la tecla ENTER y para 
finalizar la operación a realizar, que 
puede ser una suma, un producto, la 
potenciación, etc. 
y para operaciones que sólo nece- 
siten un operando, se introduce el 
número y seguidamente la tecla de 
la función, como son la raíz, la inver- 
sa, factorial, seno, etc. 
Siempre que deseemos operar con 
una constante deberá encontrarse en 
el registro 'y', ya que ésta no se bo- 
rra hasta que volvamos a pulsar EN- 
TER, que copiará en el registro 'y' lo 
que contenga el registro 'x', 


l. 


A A ' -RA 
I I f A :o ,- - - _ ( 
 
 l W u_- ;!l,
 1 
643a3J u ___ ( 't 


 
:: I
n
 
5 1::
,?, ,::¥¡H. 
.- 
 ).- E 

:: y/:: 
; }
¡¡)Y 
J. ""1'9 DF1..CJ.......n 

.: f
 CLJI.<'LX 
A:' 
" r'."l 
0.- e....x 
1'.- , 
ft::. 
A
 
¥:- 

 
U.- cos 


..._AlAS 



3


 
e. ?34S6 
7tJb
;J.,.' 

,¡t;

"64 I 
'¡ m


 
11 1r'.G15 
I 71..!14SJ 


"n . 


.0 


eA 11. ,. A L 
I 
 A.- O) 

4J¿J3_____ 
:: 
;
 
D.- (:) 
1..- It.x 
F.- ni 
c.- SON 

:: y;:: 
J. - STO 
K.- II<.L 
L.- LOC 
M.- UV")( 
N.- LIt 
0.- ".A)C 
P.- 'a 
n.- DF.C: 
R..- RAD 
So- SIN 
y_ - YIIH 
U. - co
 


U.- 
 (H 1 '". 
....- 05-1 
>1.- AN 
 

 .- IIOHA5 
. .- H."", 
o: 

 
,;-.>I(
)y 
£.I'1.CW; 
D}.J..C.I.J.:AR 
CUlo CW< 


HI:JIOH 1 AS 


LCG"I: 
.
.J4.U9 
e.2:]
SG 
'86S]4,' 
tl.4
lOHG41 
h43;>J"} 
" 11:)1J
6" 
, 1?'4JS', 
I 

¿
¡
1 


u 


,. .-.....n '. l1li SO 


STRucrURA 
10- 50 Presentación autor 
60 Detección de errores 
70- 80 Define colores 
90 Define caracter 
100- 130 Programa teclas 
140 Dimensionar e inicializar 
variables 
150- 360 Presentación de 
pantalla 
370 Define ventano 
mensales 
380- 400 Desvío a subrutinas 
410- 470 Bucle principal de 
entrado de dotas 
480- 680 Subrutinas varias (7) 
690-1.690 Subrutinas de 
operaciones (2) 


SUBR U TINA S 
VARIAS 


510- 560 
570- 580 
590- 600 
61 0- 630 
640- 660 
670- 680 


Compone número 
Avisa error 
Borra registro 'x' 
Borra todas las 
variables 
Saludo 
Imprime resultado en 
registro 'x' 



Por ejemplo, si deseamos sumar la 
misma cantidad (25) a una serie de 
números lo haremos así: 


25 1 ENTER I 71A] 
25 ENTER 91A] 
25 lA] 


pantalla 132 
pantalla 134 
pantalla 150 


MEMORIAS 
En la memoria sólo podemos al- 
macenar el número que contenga el 
registro 'x'. Si queremos almacenar 
el número del registro 'y' deberemos 
intercambiar el contenido de los re- 
gistros y a continuación almacenar el 
dato. 
Si deseamos almacenar el 32.570 
en la memoria 6 lo haremos así: 


32.570 m 

 
32.570 


pantalla 
pantalla 3 
pantalla 2 


Guardar en memoria n. o ? 
lugar correspondiente a la memoria 
6 tendremos el 32.570. 
Para almacenar un dato del regis- 
tro 'y', e195.237 en la memoria 2 se 
realizará: 


95.237 1 ENTER 11 CLR I pantalla 1 
6 pantalla 1 
m pantalla 3 
[1] pantalla 2 
95.237 


Guardar en memoria n. o ? 
Lugar correspondiente a la memoria 
2 tendremos el 95.237. 
y para obtener un dato almacena- 
do de la memoria, pulsaremos la op- 
ción [K] y el número de memoria en 
que se encuentre el dato que desea- 
mos, el cual será copiado en el re- 
gistro 'x'. 


ESTADISTICA 
La calculadora CPC 464 nos per- 
mite también introducir una serie de 
datos para obtener la media aritmé- 
tica o la desviación estándar. 
Supongamos que"hemos obtenido 
en un problema unos valores corres- 
pondientes a los meses del año 1984 
y otros del año 1985. Deseamos 
comparar la media de cada año y la 
desviación estándar. 
Valores de 1984: (80, 27, 75, 42, 
65, 73, 92, 32, 52, 54, 77, 30) 
valores de 1985: (73, 32, 57, 37, 
66, 84, 95, 50, 89, 77, 49, 57) 


Ahora debemos decidir en qué re- 
gistro va a ir cada año. Supongamos 
que el año 1984 lo introducimos en 
el registro 'y' y el año 1985 en el re- 
gistro 'x'. Se introduciría así: 


80 I ENTER 1 
21 I ENTER 
75 1 ENTER 
42 I ENTER 
65 I ENTER 
73 1 ENTER 
92 1 ENTER 
32 1 ENTER 
52 1 ENTER 
54 1 ENTER 
77 1 ENTER 
30 1 ENTER 


73 m 
32 m 
51 m 
37 m 
66 m 
84 m 
95 m 
50 m 
89 m 
11m 
49 rn 
57 m 


o 12 
1 754 
2 51872 
3 62.8333333 
4 20.2162551 
5 693 
6 45721 
7 57.75 
8 22.7641065 
9 46598 


pantalla 1 
pantalla 2 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 1 
pantalla 2 


NOTA: Cuando se emplea la memoria para 
datos estadísticos no se pueden sacar los re- 
sultados de la memoria, si no que deberá co- 
piar/os por teclado paro después olmacenar- 
los si lo desea. 


Habrá observado que en lo pan- 
talla 2 se nos muestran unos datos 
correspondientes a los valores que 
hemos introducido. La interpretación 
es la siguiente: . 


MEMORIAS 
O 
1 
2 
3 
4 


5 
6 
7 
8 


9 


erie Oro 


Si cualquiera de los valores intro- 
ducidos los deseamos modificar sin 
tener que meter todos de nuevo, lo 
haríamos como sigue: 
Supongamos que desamos modifi- 
car el penúltimo dato de entrada que 
era n 77 y 49 por los nuevos 55 y 72. 
77 \ ENTER 1 49 rn pantalla 1 O 
55 I ENTER 1 72 rn pantalla 1 O 
Si ha terminado de trabajar con 
datos estadísticos y desea que apa- 
rezcan en la pantalla 2 los datos que 
había almacenado en la memoria, 
basta con pulsar [K] o [D tenga cui- 
dado con esta última ya que le pedi- 
rá el número de memoria a guardar, 
imprimiendo lo que contenga en es- 
te momento el registro 'y' y le borra- 
ría el dato que contuviera anterior- 
mente. 
Por el contrario si lo que desea es 
poder ver en cualquier momento el 
contenido de la memoria estadística, 
asegúrese de que los dos registros 'x' 
e 'y' estén a ce ro, para ello pulse: 
I CLR I1 ENTER I rn 
y POR ULTIMO... 
También permite la calculadora 
pasar horas, minutos, y segundos a 
horas. Para ello debemos de sepa- 
rar las horas de los minutos y segun- 
dos con el punto decimal. Por ejem- 
plo si deseamos pasar 20 h., 35 m., 
9 seg. a horas introducimos: 
20.3509 [Y] pantalla 1 20.5848333 
Las últimas líneas de programa nos 
permiten elegir el color de nuestra 
calculadora tan sólo con pulsar la 
BARRA DE ESPACIO con unos colo- 
res ya fijados, que podrá modificar 
a su gusto. 


RESULTADO 
números de datos introducidos en cada registro. (re) 
suma los registros 'x'. ( Ex) 
suma los cuadrados de los registros 'x' (Ex 2 ) 
media aritmética de los registros 'x' (Ex/re) 
desviación estándar de los registros 
, , (S _ re' xe 2 _Xe 2 
x x- 
re . (re-l) 
suma los registros 'y'. (Ey). 
suma de los cuadrados de los registros 'y' (E/). 
media artimética de los registros 'y' (Eylre) 
desviación estándar de los registros 'y' 
re . ye 2 _ye 2 ) 
(S,= 
re . (re-l) 
suma de los productos del registro 'x' por el registro 'y'. (Exy). 



10 'Calculadora Cientifica 
20 de Juan R.Ascaso 
30 Jun10 de 1.985 
40 


50 ,. 


60 ON ERROR GOTO 580 
70 MODE 1 
80 BORDER O: INI': 0,16: I NI< 1.3: I NI-.: 2. 
26:INK 3.3.16:PEN I:PAPER ° 
90 SYMBOL 
40,0,O,O,0,0.0,&7E,&7E 
100 KEY DEF 79.0.124 
110 KEY DEF 16,0,64 
120 "I-.:EY DEF 66,0,0,0,0:'lgnora tec 
la ESC. 
130 
EY DEF 26.0.0,0 
140 DIM x$(II),m$II0):w=I:1=0:re=0: 
xe=0:ye=0:xe2=6: y e2=0:xy=0:xmed1a=0 
:ymedia=O:Sx=O:Sy=O 
150 '****************************** 
******** 
160 '****** PRESENTACION DE PANTALL 
A ****** 
170 '****************************** 
u****** 
180 PRINT STRING$(40,143),:FOR a=1 
TO 24:PRINT CHR$(8);CHR$(IO);CHR$(1 
43,,:NEXT a 
190'FOR a=40 TO 1 STEP -1:LOCATE a, 
25:PRINT CHR$(143),:NEXT a 
200 FOR a=1 TO 
4:PRINT CHR$(II),CH 
R$(8),CHR$(143),:NEXT a 
210 PRINT CHR$(24);,LOCATE 10,I:PRI 
NT"CALCULADORA CPC 464":LOCATE 1 
2.25:PRINT CHR$(164)+" de Juan R.As 
casol! 
220 PAPER 2:PEN I:LOCATE 4,3:PRINT 
STRING$(13,131':LOCATE 4.5:PRINT ST 
RING$(13,140):PAPER O 
230 LOCA
E 3,3:PRINT CHR$(138);CHR$ 
(8),CHR$(10),CHR$(138),CHR$(8):CHR$ 
Cl0),CHR$(1381:LOCATE 17,3:PRINT CH 
R$(133),CHR$(8),CHR$(10),CHR$(133): 
CHR$(8),CHR$(10),CHR$(133) 
240 WINDOW #1,4,16,4,4:PAPER #1,7:C 
LS #1:REM ** ventana de calculo ** 
250 LOCATE 4.B:PRINT STRING$(14.I:l 
):LOCATE 7,9:PRINT"MEMORIAS" 
260 PAPER 
:PEN I:LOCATE 4,11:PRINT 
STRING$(14. 131):LOCATE 4.22:PRINT 
STRING$(14.140):PAPER O:LOCATE 3,8: 
FOR a-I TO 15:PRINT CHR$(138) ,CHR$( 
8';CHR$(10),:NEXT a 
270 LOCATE 18,8:FOR a=1 TO 15:PRINT 
CHR$(133),CHR$(8"CHR$(10),:NEXT a 
280 WINDOW #2,6,17, 12,21:PAPER #2.2 
:PEN #2,I:CLS #7:REM ** v""tilna de 
memoria. ** 
290 PAPER 
:FOR a-O TO 9:1 OCATE 4,1 
2+a:PRINT RIGHT$(STR$(a),I):CHR$(14 
9) :NEXT a 
300 PAPER O:PEN 1:¡OCATE 7n.3:PRINT 
"A.- (+) ":l.OCr¡TE '20,4:PRHH"B. - (-) 
":LOUHE ?O,5:PRINr"C.- (>.)":I.OCATE 
7('.6: PRINT"D. - (" ,CHR$ (1721,")": LO 
CATE :'0.7:PRINT"E.- EEX":LOCATE 20, 
8:PRINT"F.- n!" 
310 LOCATE 
0,9:PRINT"G.- SQR":LOCA 
TE 20,10:PRINT"H.- y":CHR$(160),"x" 
: LOCATE 20.11: PRINT" l. - 1 h:": LOCATE 
20,1
:PRINT"J.- STO":LOCATE 20,13: 
PRINT',!,:.- RCL":LOCATE 20.14:PRINT"L 
- LOG" 
320 LOCATE :0.15:PRINT"M.- 10";CHR$ 
(16<"):"x": LOCATE 20,16: PRINT"N. - LN 
": LOCATE 20,17: PRINT"O. - e", CHR$ (16 
O),"x":LOCATE 20.18:PRINT"P.- ",CHR 
$(184):LOCATE 20.19:PRINT"Q.- DEG": 
LOCATE 20,20:PRINT"R.- RAD":LOCATE 
20,21:PRINT"S.- SIN" 
330 LOCA TE 20,22:PRINT"T.- TAN":LOC 
ATE 20.23:PRINT"U.- COS":LOCATE 30, 
3:PRINT"V.- SIN-l":LOCATE 30.4:PRIN 
T"W.- COS-l":LOCATE 30.5:PRINT"X.- 
TAN-l": 1.0CATE 30.6: F'RINT"Y. - HORAS" 
:LOCATE ::',O,7:PRINT"l.- H.MS":LOCATE 
30.8:PRINT"(.- "+CHR$(190)+"+" 
::'.40 LOCATE 30.9:PRINT"J.- "+CHR$(19 
O) +"-": LOCATE :;,0, 10: PR INT "=1-. X<='>Y 
": LOCATE 30, 11: F'R INT"#/"'. CHS", LOCAT 


14 MICROHOBBY AMSTRAD 


E 30. 12:PRINT"DEL.CLEAR":LOCATE 30, 
13:PRINT"CLR.CLX" 
350 LOCATE 30,15:PRINT STRING$(8,13 
II:LOCATE 38,15:FOR a=1 TO 9:PRINT 
CHR$(133);CHR$(8),CHR$(10);:NEXT a: 
PRINT CHR$(II"CHR$(8),:PAPER 2:FOR 
a=1 TO 8:PRINT CHR$(140);STRING$(2 
,8';:NEXT a:PAPER O:FOR a=1 TO 9:PR 
INT CHR$(138);CHR$(8);CHR$(II);:NEX 
T a 
360 LOCA TE 30,17:PRINT STRING$C8,14 
O):LOCATE 30, 16:PRINT"MENSAJES" 
370 WINDOW 30.37, 18.22:PAPER 2:PEN 
3:CLS:REM ** ventana de mensajes ** 
380 GOSUE 650:REM ** saludo ** 
390 GOSUB 600:REM ** situar cifras 
** 
400 GOSUB 1110:REM ** grados ** 
410 '****************************** 
** 
420 '****** ENTRADA DE TECLADO **** 
** 
430 '****************************** 
** 
440 tecla$=UPPER$(IN
EY$):IF tecla$ 
- GOTO 440 ELSE IF NOT IN
EY(18) 
OR NOT 1 NI':EY (6) THEN y=x: GOSUB 680 
45n ON INSTRC"ABCDEFGHIJKLMNOPQRSTU 
VWXYUJ -# ,iJ: ",tecla$) GOSUB 730.7 
50.770,790,810.820,850.870,890,910, 
96(" 1 O 1 (¡. 1030, 1 05(). 1070, 1090, 1110, 1 
130; 1150, 1170, 1190, 1210, 1230, 1250, 1 
270,129n. 1300, 1350, 1400.1400.1420,1 
420,600,620.1440 
460 IF (ASClte
la$)147 AND ASC(tecl 
a$) 58) OR ASCCtecla$)=46 THEN IF w 
=0 TH
N GOSUB 600:w=I:GOSUB 
20 ELS 
E GOSLJB 
20 
47(; GnTn 440 


A.- (-) 
B.- (-) 
c.- (x) 
0,- (-) 
E.- EEX 
F.- n! 
G.- SOR 
H.- y:X 
1.- l/x 
1. - STO 
K.- RCL 
l.-LaG 
M.- 10:x 
N.-lN 
0.- ex 
P.- 1r 


0.- OEG 
R.- RAO 
S,- SIN 
T.- TAN 
U.- COS 
V.- SIN-1 
W.- COS.1 
X.- TAN-1 
Y.- HORAS 
Z.- H. M S 
[.- 
+ 


MENU 


Sumo 
Diferencio 
Producto 
División 
Exponente 
Factoríal 
Raíz 
Potenciación 
Inverso 
Almaceno en memoria 
Recupero de memoria 
Logaritmo decimal 
Antilogaritmo 
Logaritmo natural 
Antilogaritmo natural 
Valor de Pí 
< espacIo> .- 


Grados 
Radianes 
Seno 
Tangente 
Coseno 
Inversa seno 
Inversa coseno 
Inversa tangente 
Convierte o horas 
Convierte a h, m y s. 
Acumula datos 
estadísticos 
Anula datos estadísticos 


] -"- 
. 
 
=/ -.- x 
 
y 
/ .- CHS 
DEl.- ClEAR 
ClR.- ClX Borra registro 'x' 
Cambio color 


Intercambia registros 
Cambio de signo 
Restaura calculadora 


480 
490 
500 
'510 


'**************************** 
'****** RUTINAS VARIAS ****** 
'**************************** 
,===-----= COMPONER NUMERO 


520 IF LENlxx$)=11 THEN RETURN 
530 l=i+l:x$(í)=tecla$ 
540 IF x$(I)="." THEN PRINT CHR$(7) 
;:GOSUe 600:RETURN 
550 IF x$(i) " " AND coma-O THEN co 
ma=1 ELSE IF x$(i)="." AND coma=1 T 
HEN PRINT CHR$(7)::i=i-l:RETURN 
560 xX$=xx$+x$(i):x=VALlxx$):LOCATE 
#1,1+1, I:PRINT#I,x$(l) :RETURN 
570 ,-- -- ERRORES. 


580 CLS:PRINT:PRINT:PRINT"*ERROR*": 
PRINT CHR$(7);:FOR a-O TO 2000:NEXT 
a:CLS:RESUME NEXT 
590 ' ---- BORRA REGISTRO 'X' = 


600 CLS#l:x$(i)-"":xx$=I"':i-O:x-O:e 
=O:chs=O:coma=O:PRINT#I," ";STRING$ 
(11,240) : RETURN 
610 '========= BORRA TODAS VARIABLE 
S -- 
620 CLS:PRINT:PRINT:PRINT"BORRADO": 
PRINT CHR$(7);:FOR a O TO 500:NEXT 
a 
630 CLS#I:CLS#2:CLS:PRINT#I," ";STR 
ING$ (11,240) : CLEAR: DIM x$ I 11), m$ (10 
):GOSUB 1110:GOTO 440 
640 ,-======== SALUDO 


650 PRINT:PRINT:PRINT'" !HOLA! !":FOR 
a=1 TO 10:READ nota,duracíon:SOUND 
7,nota,durac10n/2:NEXT:FOR a=O TO 
1000:NEXT a:CLS:RETURN 
660 DATA 319,40,0,1,319,20.0,1,319, 
20,0,1,284,40,319,80,253,40,239,40 
670 ,-------- IMPRIME RESULTADO EN 
REGISTRO 'X' -- 
680 CLS#I:xx$ STR$lx):PRINT#I,xx$+S 
TRING$(12-LENlxx$),240):w-0:e=0:RET 
URN 
690 "****************************** 
****** 
700 '****** RUTINAS DE OPERACIONES 
****** 
710 '****************************** 
****** 
720 '- - --- A.- SUMA = 


730 x=y+x:GOSUB 680:RETURN 
740 '===========- B.- DIFEERENCIA - 


750 x=y-x:GOSUB 680:RETURN 
760 '============ C.- PRODUCTO 


770 x=y*x:GOSUB 680:RETURN 
780 ,-- ------ D.- DIVISION = 


790 x=y/x:GOSUB 680:RETURN 
800 ---- ----- E.- EEX 


810 IF LEN(,,,,!I>1<8 ilND ..=0 THEt
 GOS 
UB 520:e=l:coma l:tecla$=" ":GOSUe 
520:RETURN ELSE PRINT CHR$(7);:RETU 
RN 
820 '=========-- F.- FACTORIAL 


830 IF x)34 THEN P
INT CHR$(7)::RET 
URN ELSE fac=I:FOR f 1 TO x:fac-fac 
*f:NEXT f:x=fac:GOSUB 680:RETURN 
840 '=====-==---- G.- RAIZ CUADRADA 


850 IF x<o THEN P
INT CHR$(71;:RETU 
RN ELSE x =SDR (x ) : GC . lB 680: RETURN 


860 '============ H.- POTENCIACION 


870 "-y'
x: GOSUB 680: RETURN 
880 '=--=-======= 1.- INVERSA = 


890 x=l/x:GOSUB 680:RETURN 
900 '- - -- J.- STO 


910 CLS:CLS#2:LOCATE 1,2:PRINT"GUAR 
DAR EN MEMORIA No.?":FOR a-O 



- 


SUBR U TINAS 
DE OPERACIONES 


720- 730 Suma 
740- 750 Diferencia 
760, 770 Producla 
780- 790 División 
800, 810 Exponente 
820. 830 Factoriol 
840. 850 Raíz cuodrado 
860. 870 Potenciación 
880- 890 Inverso 
900- 940 Almoceno en memorio 
950- 990 Recupero de memorio 
1.000-1.010 logoritmo decimal 
1,020.1.030 Anlilogorilma 
1.040 1,050 logaritmo natural 
1.060,1,070 Antilogaritmo natural 
1.080,1.090 Valor de PI 
1.100,1.110 Grados (DEG) 
1.120,1.130 Rodianes (RAD) 
1.140,1.150 Seno 
1.160-1.170 Tangente 
1.180-1.190 Coseno 
1.200-1.210 Inverso seno 
1,220,1.230 Inversa coseno 
1.240,1.250 Inversa tangente 
1.260,1.270 Convierte o horos 
1.280,1.290 Convierte o horas, minutos y segundos 
1.300-1.340 Acumula datos estodísticos 
1,350-1,380 Anulo datos estadisticos 
1.390,1.400 Intercambio registros 
1.410.1.430 Cambio de signo 
1.440,1.690 Cambio de color 


TO 9:LOCATE #2,l,1+a:PRINT#2,m$la) 
; :NEXT a 
920 tecla$;INKEY$:IF tecla$;"" GOTO 
920 
930 IF ASCltecla$)(48 OR ASCltecla$ 
»57 GOTO 920 . 
940 GOSUB 680:j-VALCtecla$):m$lj)-x 
x$:LOCATE #2,1,1+j:PRINT#2, 
"¡:LOCATE #2,1,1+j:PRINT#2,m$C 
j)¡:CLS:tecla$;" ":RETURN 
950 ,--- - -- - K.- RCL ; 


960 CLS:CLS#2:LOCATE 1,2:PRINT"OATO 
DE MEMORIA No.?":FOR a-O TO 9:LO 
CATE #2,1.1+a:PRINT#2,m$la);:NEXT a 
970 tecla$ INKEY$:IF tecla$;"" GOTO 
970 
980 IF Ascetecla$)(48 OR ASCetecla$ 
»57 GOTO 970 
990 j VALCtecla$):x;VALem$lj»:GOSU 
B 680:CLS:tecla$ " ":RETURN 
1000 ';-;;-;;;;;;; L.- LOGI0 


1010 x;LOGI0Cx):GOSUB 680:RETURN 


1020 


M.- 10 A X 


1030 x;10 A x:GOSUB 680:RETURN 
1040 ';;;;;;;;;;;; N.- LN 


1050 x;LOGlx):GOSUB 680:RETURN 
1060 -;;;;----; 0.- EA X 


1070 x;EXPlx):GOSUB 680:RETURN 
1080 .------- --- P.- PI 


1090 x;PI:GOSUB 680:RETURN 
1100 ';;;;;------; Q.- OEG 


1110 DEG:LOCATE#3,4,b:PEN#3,3:PRINT 
#3" "OE'G": RETURN 


. 
 "\I 
\ .. 
, 


" 


b ' Paroqlltllldedos 
no ""k", ti lroixJ¡'o d"a,l.< H Ai.!S, 
lRAn J., bnrl' Dóf Ir TM(H ltw./il./ndfJ,\ .
r)il iN/JJ,VfJft t-- 
I t1lelogolipo$eefl{IJI1'I'/(J(JOlll&f/XJSl(lOfltfI@CO
' 
1
rtf fflMwoJ, SQ¡r(Jro
slo. 


Almacena n.O S de entrada 
Guarda tecla pulsada 
Cuenta los números de entrada 
Almacena el número detenido de todas las variables x$(i) 
Detecta si pulsamos el punto decimal 
Controla RETURN o ENTER 
Detecta si cambiamos de signo al exponente 
Almacena n. o del registro 'x' 
Almacena n. o del registro 'y' 
Controla el exponente 
Almacena registro 'x' 
Almacena la suma estadística de los registros 'x' 
Almacena la suma estadística de los cuadrados de los registros 'x' 
Obtiene la media de xe 
Almacena la suma estadística de los registros 'y' 
Almacena la suma estadística de los cuadrados de los registros 'y' 
Obtiene la media de ye 
Contador de registros estadísticos 
Almacena la suma del producto de los registros 'x' e 'y' 
Almacena la desviación estándar de los registros 'x' 
Almacena la desviación estándar de los registros 'y' 


1120 ---- ----- R.- RAO 


1130 RAD:LOCA1E#3,4.6:
EN#3,3:
HINl 
#3,"RAD":RETURN 
1140 ';-;;;;;;--;; S.- SIN 


1150 x;SINlx):GOSUB 680:RETURN 
1160 .- ;;;;;--;;; T.- TAN 


=========-== 


1170 x-TANlxl:GOSUB 680:RETURN 
1180 ,- ;;;;;- ; U.- COS 


1190 x;COSlx):GOSUB 680:RETURN 
1200 ';;;;-;;;;;;; V.- SIN-l 


1210 x;ATNCx/SQRll-x A 2»:GOSUB 680: 
RETURN 
1220 ';;;;;;;;;;;; W.- COS-l 


======-===== 


1230 x;ATNISQRll-x A 2)/x):GOSUB 680: 
RETURN 
1240 .--- -------- X.- TAN-l 


1250 x-ATNlx):GOSUB 680:RETURN 
1260 ';;-;;;;;;;- Y.- HORAS 


1270 xl;x-INTex):xl-xl/60*100:x;INT 
Ix)+xl:GOSUB 680:RETURN 
1280 ';;;;;;;;;;;; Z.- H.MS 


1290 xl;x-INTex):xl;xl*60:x2;xl-INT 
Ixl):x2;x2*60:x;INTex)+INTlxl)/100+ 
INTex2)/10000:GOSUB 680:RETURN 
1300 ';;;-;;;;;;=; ESTADISTICA + 


1310 IF u o ANO y-O THEN 1320 ELSE 
re-re+l 
1320 xe=xe+x:>:e2=xe2+xA2:xmedia-
e/ 
re:ye-ye+y:ye2-ye2+y A 2:xy xy+x*y:ym 
edla;ye/re:IF re>l THEN Sx;SQR(ere* 
xe2-xe
2)/Cre*lre-l»):Sy;SQRe(re*y 
e2-ye A 2)/lre*lre-l») 
1330 CLS#2:LOCATE #2,1,1:PRINT#2,ST 
R$lre);:LOCATE #2,l,2:PRINT#2,STR$1 
xe)::LOCATE #2.1,3:PRINT#2,STR$(xe2 
)::
OCATE #2.1,4:PRINT#2,STR$(xmedl 
a)::LOCATE #2,l,5:PRINT#2,STR$(Sx): 
13
0 LOCATE #2.1,6:PRINT#2,STR$eye) 
::LOCATE #2,1,7:PRINT#2,STR$Cye2):: 
LOCATE #2.1,8:PRINT#2,STR$eymedia): 
:LOCATE #
, 1,9:PRINT#2,STR$(Sy)::LO 
CATE #2.1,10:PRINT#2.STR$Cxy)::x;0: 
y;O:GOSUB 680:RETURN 
1350 ,--;;;;;;;;;; ESTADISTICA - 


1360 IF Ix o ANO y-O) OR re<l THEN 
PRINT CHR$(7)::RETlJRN 
1370 re=re-l:::e :{e-:{::<e2-:<e2-(
{'''"2): 
xmedia-xe/re:ye ye-y:ye2;ye2-(yA
): 
xy;xy-x*y:ymedia;ye/re:IF re>l THEN 


i 


x$(i) 
tecla $ 
I 
xx$ 
coma 
w 
chs 
x 


y 
e 
m$(a) 
xe 
xe 2 
x media 
ye 
ye 2 
y media 
rE: 
xy 
Sx 
Sy 


. 
erl .. 


Ore 


S,,;SQR I Ire*xe2-xe
21 / Cre* (re-I»): 
Sy;SQRllre*ye2-ye A 2)/lre*lre-l») E 
LSE Sx -el: Sy o 
1380 GOSUB 1330:RETURN 
1390 .----- ---- X <;, y 


1400 yl;y:xl;x:y;xl:x;yt:GOSUB 680: 
RETLJRN 
1410 .-;;;;;;;;;;; CHS 


1420 IF e;O THEN x;-x:GOSUB 680:w;1 
:RETURN 
1430 IF X$(l);" " ANO chs;O THEN te 
cla$;"-":GOSUB 520:chs;1:RETURN ELS 
E PRINT CHR$(7)::RETURN 
1440' -;;;;;;-; COLOR 


1450 INK 0,26:INV 1,0:INK 2,13:INK 
3.0.26 
146(, A$ 1 NI
EY$: 1 F A$;"" GOTO 1460 
1470 IF A$<>" " THEN RETURN 
1480 INK 0,25:INK 1,0:INK 2,26:IN
 
3.0.25 
1490 A$-IN.
EY$: IF A$;'''' GOTO 1490 
1500 IF A$<>" " THEN RETURN 
1510 INI< 0,20: INI: 1,2: INK 2,26: INK 
3.20,2 
1520 A$;INf':EY$: IF A$;.... GOTO 1520 
1530 IF A$<>" .. THEN RETURN 
1540 INK O,ll:INI< 1.1:INK 2,26: 1 Nf': 
3,11.1 
1550 A$;INI':EY$: IF A$;'''' GOTO 1550 
1560 IF A$(>" .. THEN RETURN 
1570 INK 0.19:INK 1,9:INK 2,26:INK 
3,19,9 
1580'A$;INKEY$:IF A$ "" GOTO 1580 
1590 IF A$(>" " THEN RETURN 
1600 INK 0,16: INI: 1,3: INI< 2,26: INK 
3,16,3 
1610'A$;IN
EY$:IF A$-"" GOTO 1610 
1620 IF A$<>" " THEN RETURN 
1630 INK O.O:INK 1,26:INK 2,13:INK 
3,0,26 
164(, A$;INVEY$:IF A$;"" GOTO 1640 
1650 IF A$<>" .. THEN RETURN 
1660 IN"- 0,17: 1 Nf': l,4:INI': 2,26:INK 
3,4,17 
1670 A$-INKEY$:IF A$-"" GOTO 1670 
1680 IF A$<>" .. THEN RETURN 
1690 RETURN 


,. 


1- 



j 


nálisis 


· o ICIONES 
, · ANT j tLA 


A la hora de estribir mensajes en pantalla y realizar distintas operaciones con ella, es 
muy importante saber qué coordenadas tiene cada posición de caracter en ella, 
Análisis con posiciones de pantalla, pretende facilitar la comprensión de éstas con un 
claro ejemplo gráfico, que dibuja las coordenadas y la posición en pantalla. 
El movimiento del caracter representado, se realiza por medio de las teclas de cursor, 


1(1 r, 
1 rOe.')t Im{g n 't"INTtlllI't 
211 ni N .J:uu.....UJu..o..Jt 
(1 [l 
 
10 [u
o
n 14 
";(1 nrM .., nrr IrIJ rr UN vrNr/\IIA 
4:011 
IHIDOW+lI. H", -l...........'" 
"10 pnCl='mI1.....rrN..I.? 
el Cl 'tll 
0(1 IdM f. c('I[....n rll'tuc. INH"IlII="C:: 
Ir \ ?,' '1 1) 
1J(1 rn'" IUC, 
12') F.OI ... AJU..:oU PQSICrmrt:¡ 
1
(I Ir 1(1 n ¡ r
 I 
1-") 1 r I 2 I n
 N v 1 
J....f'I IF I 
II N lo( 4('1 
16..... IV (' I 111 ti Y II 
1]0 r, M . 
U.¡"'IMI
 IN 'JHITAW\ 
"He ¡:: t..p' l. rt.¡ . J. .'f. r <.J . ( 
IY 
I , 
.. 
'F"'" tt t: 
1(:\ I ( ¡.... r I 
 ,.,."'. I 
I Fl J ('r I 
"',) 1 r'1 1:t It-' I ..J ' ..... 
2""11 ItJ 
(''') I 11ft' 'l." j 
':""'
 11 INLE'{("') I HI'(N } yd 
#}M' Ir Ir 'f,{<lJ I I II ..1 
77fl Ir 1"lrVeA) l 11 
I I 
2P(1 Ir: 7 (1" \ 
 11 11 I f'f'n.! 
r 1.W
r'rd
lT" ":rnrn I
' 
2q(1 [.(11" ;-40 


10 1 20 Mensajes habituales. 
30 Limpia la basura de la pantalla. 
40 Cambia el color del borde de la pan- 
talla a azul pastel. 
60 Define una ventana en la parte inferior 
de la pantalla, de una extensión de 21 carac- 
teres. 
70 Fija el color del fondo de la ventana en 
rojo brillante, el equivalente a la tinta núm. 
3, y el de la escritura en la misma, en azul bri- 
llante, tinta núm. 2. 


l' 


I A 
 STRAD I 


76 MlaOHOBBY AMSTRAD 


80 Provoca que se haga visible el color de 
la ventana. 
100 Establece las coordenadas iniciales de 
X e Y. 
110 Salto a la línea 180, que hace que 
aparezca en la ventana el texto Coro X 20 Coro 
y 12. 
120.160 Controla los límites máximos y 
mínimos de las coordenadas de pantalla, de 
forma que las líneas 240-270 no produzcan 
valores fuera de la misma. 


1 
., 


I 
I 
J 


r 


Tr 


180 Escribe en la ventana, el mensaje Coro 
X Coro Y. colocando en su lugar correspon- 
diente los valores de X e Y. 
190 Crea las variables Z y W, dándoles 
el mismo valor que a X e Y, paro utilizadas 
convenientemente, en el borrado de la flecha 
que marca la posición en pantalla. 
210 Imprime en la posición de coordena- 
das X e Y, el caracter cuyo código es el 242, 
es decir, la flecha apuntando hacia la izquier- 
da. 
220 Un ciclo de retardo para evitar el par- 
padeo. 
240 Comprueba si se ha pulsado la tecla 
de cursor hacia arriba, en cuyo caso decre- 
menta la coordenada y en una unidad. 
250 Realiza la misma operación, ahora 
con la tecla de cursor hacia abajo, incremen- 
tando en caso de que ésta sea pulsada la coor- 
denada y en una unidad. 
260 Si se ha pulsado la tecla de cursar ha- 
cia la derecha, incremento en uno la coorde- 
nada X. 
270 Decrementa en uno la coordenada X, 
cuando se pulsa la tecla de cursor hacia la iz- 
quierda. 
280 Efectúa el borrado de la flecha en 
pantalla. Para lo cual comprueba si las coor- 
denadas X e Y se han alterado, comparándo- 
las con Z y W, en cuyo caso realiza el borra- 
do de la posición anterior de la flecha, pro- 
cediendo después con la llamada a la línea 
130 a la impresió
 de las nuevas coordena- 
das en la ventana y la flecha en su nueva po- 
sición. 
290 Evita que se detenga el programa, 
volviendo a chequear el teclado, en busca de 
una tecla de cursar pulsada. 


..
 , f 

 .- 
.. - 


í, I 
l. I 
/ 
, 


"- 
\. 


P",oqwllndt<kn 
IV) ,""''"" /rabajo drHo. M H, AMS 
rv.o /o ¡"", pOI' Tad" kx 
lodoJ qve indvya, 


 logo
pb
 HrlutrltrtNJ o lu&j(IO
óII t(l1HJ (OJ" 
Slffe mt'lIjuol, JCk IfJJ'I(Hlo, 



_____ I _ ______ _____ I I ______ 
.........j: I TT
l

I
f

.

.. 1 ..... 1 
.......... ., r- J \
l Il "\. " 1. 
 , ti.. ..... 
......P..--=====-= 
==
 ..... ..... 1 
....r: r: ; r;"':-"IT'
':'"I. · r 

r
 ... ..... 
....... 
 :
I 
LII !..l:.. 1 1& ...,1 '1 l1.' J..' .... 
....
_.... [ ---- ¡¡ ;¡!!! 1 
 --- .. I I ...... 
...r: r;, r:"
 · TZ, r ¡ 
 I ' 3
?: O 
"" 11 · r :l

: ... 
....... l 
1 
1 I .., 41 I 
 I l J 
_ ' ......... 
l .. ...=-=-- =----------- --


- --- ... 
I _ _.......1.................... ...... 
· I 
ar
I
:..t'..IIIIIIIIIII.I.1111111111111 
, I 
.,....-.,...

.,-
 
 .. I I ,....... 
r Ii.. 
r ,1 , I j 11 . .,' 

 ' j .,... _
... ,1_ [. ..:-'" '_ .... 
.,. J' JI , " .: , jl .., .' J': .f", . ! ..........!
 " .. 
........ .... ..,.. r 
.........' 1 . 
.

 [; £ III;'= 
 



.......
 . E




....

 
.
iI . ....w..iiWil........IIIII.:. ..
Ii
;J.i'
m
 
fJ.a, 
11r
 I
 'A' 

:
 ,

, 1 A :M':!rn.
rn U :, .......... I .....

y..1 
.1
1!!lmml
I
I

=J

.IIIIII_..


....
. 
.....






 .........




"

. .


...... 
I ......

.
W ............. 
.. .M........ 
1C


tJiE
m.g¡
Ci
l:aa
....' 1- 1, I ...... 
.1If1jl

ltlZ%l1:J2t:1
m:.clSCIlIIiI.. "1 ..... iN ...... 
.E

m l ...... .........




 






...... 
..... ................" '! .......... 
............ .........' Id I 1'.. 
............ ........ , ,. , , I ,
 . 
..

¡¡iB: I Ii'II;Ua¡iiI!ii¡¡¡¡¡IIiIll:lIllll'l
. , 
 ,. 
...MlIi. . MliliI. .r' .1 
...I@.. · : 
_li""
 '. '.. dt S- ,'. fstraligica .. 
1 ."P!!IIIIIIIII.r pIIrD potIt, a 
 su 'gencio Aquí le presentam l . 
. - . ; . 11 . ..,,- ym/c ,,,.: dt' .:, " WAR
eJrclusirael os J 1 . . . 

a.ijiiil r m: XITO ::',
 
e mayor 
......., tt;'"u..
. (Opo:t de sodo en Un 
 a
erra, ... 
del G el re/ello de la Segunda ec G o real 
........ :::
ii::% y , . Mundial. uerra ... 
.... de uno b estrotegio' ,.. 
j l --..... , . :'u Udo (01716:::;0 7 ue ope'Oc' , r 

 rso de lo H' e ¡)../d IOn «Morke, G 
Istor;o 
., ...
 I ordenJf 
.- 
" . l :r:'í'2i" .... Ir I 
J9 E1 ' 
 .,
 
D. "o
 .; 
E>oS' ElO ' 
éll E>O" "O I 
1 A,.o/'E> E>c' :O/El ,..' 
, 'Va
 c lO 16 / ;, EI,s-t. 
01;" 
/'E> O'E> .9E>1) I'J} El c(¡ 
(E>CC¡ :9$ 10'O :0 0 " ... . 
0c O .o 'IJ]' .J- 
 
C. éI/¡.' 1) E>,s- ICIi.' ElI) ... , 
00:' O'élO' E>féloS' IC! !'/ EI /.... 
(él <9 0 ' oS"l) o¿¡ ". " I!' v, 
o '0/,,,, 9¿¡,s-t. 
06 
 ,;1 , 'I,,
.'. 
G¡ "'éI 0.s-
.J- J 
II ''''.
,', 
"\? /'0;::" O'E> O'EI ,o" ....,I
 '<' \ ,: ' 
;::: oS'oS' 0oS'.oél ElI)",
.s-.s' " t
l"., , 
E>c . & léll!;lO 10 '.$ , ,. 
i)éI '-1, I}. o E>//SI , ¿¡
 . 4. <4 .... 
% c 0 !;l/O'éI (¡l)o :00'0 '- 
élO'v 'l'éI/" E>oS' 1. .o" .0 0 " . O'EI .... 
C/(z J/SIt. él r> O¡,¡ "'1 C o ... ' J' , 
élO' él V: 'IVE> "CI .oil "'''EI .... 
O'/SI " loS'éI oS'/SI/j 'l'/SIj. él 1::; '1'
 1. 0.s- oS: 
F/SI él félr¡,?' o Oél l o ;'or¡o %0' él c l i}t.'l.o 6 ...... " 
C
 /SIfél 1; Or¡ 
 A <: 

 
él .Y éllo Vr, 'J9J\(''''iI« '"' 
1:;;., r¡ r, él C 
I::; ""0- ' 

éI: O
¡I/V
 4f, , " 
éI/¡j" 
°él I 
1t0 6 I 

.y 


. : " 
.

. .
.. · 
 , J', 
. .,. ...,. .....
. - '¥. 
,:., 
. .,' t... 
' ... t -......: . 
. 
 ...... .... '\ .....
 ..;
', . J' J 
-c. :.... -
.. -,. 
\..;
.. '\.. \ 
...
, ,..' I - ... 
 - . . .... 
 !} 
..' l. ,"'-..-' . 
._
,
 
 .- I ; 
 e 
',"\ ':::( J
 
... "...,",::!
' 
 


" 


, J' 


I 
I 



,,' 
I/
 


... 

',,' 


/ 
, 
HOBBY PRESS,S.A. Editamos para gente inquieta. 



J 


. 


Los War Game, son una rara especie de 
programas, que las casas de software y los 
usuarios de ordenadores, centrados en presentar 
juegos en los cuales el uso del Joystick es 
obligado, tienen un tanto abandonados. 
Nos referimos a ese tipo de programas en los que 
el uso de la inteligencia y la planificación a largo 
plazo, con una serie de recursos limitados, ocupan 
un lugar predominante. 


r
J . 

 n War Game, tiene por ob- 
jeto reproducir lo más exactamente 
posible, aquellas batallas cuyo de- 
senlace ha sido de ir Iportancia capi- 
tal para el transcurso de la Historia. 
Antes de llegar al mundo del or- 
denador, los War Game eran juegos 
de mesa, en los cuales era imprescin- 
dible la presencia de dos jugadores, 
y que debido a las dimensiones de los 
mapas y la gran cantidad de fichas 
que deben manejarse, obligaban a 
los amantes de estos juegos a reali- 
zar en un solo día una maratoniana 
partida de seis u ocho horas. 
Con la llegada de estos programas 
al mundo del ordenador, tenemos la 
posibilidad de elegir entre jugar con- 
tra un amigo o desafiar al ordena- 
dor, faceta muy interesante porque 
no siempre encontramos a alguien 
que sea entusiasta de estos juegos. 
También evitamos el problema de 
tener que jugar la partida de un ti- 
rón, porque basta con grabarla y 
proseguir el juego otro día. Pero la 


.A.R 


l. 


, 
I 
I 


CIQ 

 
- 

 
\..1 

 

 
"'1- 
'<:1 

 
\,.j 

 

 
'<:1 

 
\,.j 

 


_ Th 'M
rke
 G;' 
.
 . ,9perati. n 
_.' 


:
 _

.,.,

 ' :lo 
¡ '" - . ,
.. + -

 .. "',.. 
'
':Y':--;'-. {(f' --;....,.." 
";- -o:- · 
.. J-;



.
 
 
 ! 
 -- . 
.. I-'
 .. . 
,. 
 - --"-'..' '4.- - 
 ,,
 
., t 



 



 1 
,
L \:", 
, , A 



 

 
ti 

 

 


A. ; 'J664 


18 MICROH088Y AMSTRAD 



 


,?:?"" 


"- 
tP JL"
!..
?-" ... 
."., e> 
;.,..- 
81 .. 
<,....ro 
__ 1:. :.do:A '}:!J¡;'" ' -;- 

d 
.' NF6" 

 nBd
E'IP' 


E
itR 
siiui F i 11 


a G
 .!
':' CIIU.. . '1"-9G 


__ 1 '" " 
./ -.....- 
t:-" 



. 




 '
 
"".:(

 
't
"'It::..... 


:




 
;.. I :'-It"'P" 
(.'\
_ 



.

 



Ú



¡
II
I;I: A 


1 


... 


ventaja más grande que aporta el 
ordenador a estos juegos, es que 
además de los clásicos factores de 
combate y de movimiento, propios 
de cada unidad. En el comporta- 
miento en combate de las mismas, in- 
fluyen otros detalles mucho más so- 
fisticados. 
Los nuevos factores son: 
La moral de las tropas, muy impor- 
tante en las batallas de verdad y las 
bajas que sufre una unidad en com- 
bate. 
En los juegos de mesa, estas face- 
tas eran inexistentes y cuando una 
determinada unidad combatía; o era 
aniquilada; o seguía intacta con to- 
do su poderío y capacidad de lucha, 
cosa que no se ajusta a la realidad. 
Gracias a los ordenadores, se ha 
conseguido en este tipo de juegos 
una aproximación mucho más gran- 
de a una batalla de verdad, 


..... 


i
 


. 


\ 



 


> 


') 



 



 
r 
I .... 
I . - 
(" 


r' 
 


I 
'. 


, 
1 1 1 


)r , 



: 


". 
", 
". 
'" 'r- 
[ 1 * 1 .....
¡¡:.....c ' 1; 
..e_1I .. ........ 
...... 
y ttAAIEIrSI tí.. ..."(1*,,;.:.... sr 

 -..... 
 ....- 
'H 1 "-.
..:#-
:.... 
/
 ::¡-- .
 r OOSTUWEEX ;

;i
 
-.,,'.;t' 
 1'
 . 
....... ,. 
 ,
 i ' 
,; 



c -l L 



\ 
'., 
, 
A 

 
! 
") ")o 

 ') 
 
-.\ 


\ 


}, 


f 


f"O...S/VllLAGES 


.



: 


AAllWAYS 


RH_ 


¿1j} 
 eJ $:Ji fife. 
8>R' ,,_.- 
 
- '=:
:i0 h..
 
J.-, . -..,&
...,'r

 
 

 ) 

?

 
_ ,,-' , -:,.-- K:}) , 


 ." 
" - O',,-:,
::-"'.r;.=;_ -I o ' :,,:: r_ 
".. j;!;:;'
;


.!
..:
-:-4
fiR; 
'lkf1I

b ". 
 



;m: 
II
 
 ................ 






¡:li
lv.A A 



!
9

 KI
.. Royat H ..ar. 



 - [ :-::- 
 

 '" :

 NI"";"" . 
....-,:,. .¿:
r
.,.. .,tl <.t¿"'¿ l-' 


-
- 
[.,;.'L_,",
*.- 

. J.:- ;r'" .{ij' 
",,-:
/j' _...,.1 
r(....... ",.....
 
", ."" HttPI: 
i



L::I'
'
IALA 


, Ii ,.", 


Al enfrentarnos con uno de estos 
War Games, debemos utilizar al má- 
ximo nuestros recursos intelectuales, 
la moral de las tropas, capacidad de 
combate, terreno sobre el que nos 
encontramos, posición de las unida- 
des enemigas más cercanas, factor 
de combate de las mismas, etc., son 
algunos de los detalles que hemos de 
considerar a la hora de entrar en 
combate. 
La batalla del Arnhem, tuvo lugar 
en el mes de septiembre de 1944, en 
ella los aliados pretendían flanquear 
la línea defensiva alemana Sigfrido 
por Holanda y de este modo ocupar 
el corazón de la zona industrial ale- 
m'ana del Rhur. 
Ante este marco histórico, fatal pa- 
ra el destino de Alemania, tomamos 
el mando de las fuerzas nazis y nos' 
preparamos para la defensa de 
nuestras líneas. 


r.J .,ystick 


En la confección del programa se 
han estudiado detenidamente la 
composición de los ejércitos y el po- 
derío de las distintas unidades, de 
manera que al principio de la bata- 
lla, los dos oponentes tengan los mis- 
mos efectivos. 
Para ello, aunque las unidades 
sean totalmente diferentes, los facto- 
res de combate y movimiento se han 
calculado de forma que los de un 
ejército equilibren a los de otro. 
La victoria está en nuestras manos, 
solamente hemos de dirigir las ope- 
raciones desde el estado mayor de 
nuestros ejércitos, en la pantalla de 
nuestro ordenador, donde los distin- 
tos informes de movimiento de tro- 
pas y zonas de batalla, llegarán pun- 
tualmente. 
Solamente nuestra habilidad tácti- 
ca y el sentido de la estrategia nos 
llevarán al triunfo. 
El juego se realiza de manera en- 
teramente gráfica, sobre el mapa de 
la zona de combate y no requiere la 
introducción de ninguna línec de tex- 
to, lo que simplifica extraordinaria- 
mente nuestra labor, permitiéndonos 
concentramos al máximo en el trans- 
curso de la batalla. 
Los amantes de los War Games, 
encontrarán la horma de su zapato, 
los que no hayan tenido la posibili- 
dad de enfrentarse a uno de estos 
juegos, tendrán oportunidad de uti- 
lizar su astucia e inteligencia para 
vencer a las fuerzas comandadas 
por el ordenador. 


"l., 
,?...¡ 

t
 "f::r 

!
 
t::r 

 
.llll 
"
;:y "<0' 
,2t '-'<,1 
..tr -! J
 -t J
 


HORRIBLE 
UN ROLLO 
PASABLE 
BUENO 
MUY BUENO 
OBRA 
MAESTRA 


$/ 







.¡ 


MIOOHOBBY AMSTRAD 19 



I 
,1 


NGU
JES DE 
PROGR J M J " 1 
(Y 111) 


A lo largo de este artículo, tercero y último de lo 
serie de introducción o los lenguajes de 
programación, vamos o trotar de analizar tal vez 
lo porte más apasionante de los mismos. 
Los lectores que hayan seguido los dos artículos 
anteriores recordarán que en el segundo 
establecimos uno e/osificación, un poco o priori y 
harto discutible, de los lenguajes por «categorías 
de aplicación". 
meros, estructuras de dotas y las propias ins- 
trucciones de intérprete IISP pueden ser tra- 
tados y manipulados por el propio IISP de la 
misma forma, pues coda lista posee un signi- 
ficado simbólico, que depende exclusivamente 
del contexto en que la «expresión simbólica» 
se encuentre. 
Además, IISP, como muchos lenguajes mo- 
dernos, es un idioma orientado a funciones 
(procedura/), de modo que nuevas extensio- 
nes delllSP están escritos en IISP. 
Por otra parte, McArthy, cuondo diseñó el 
lenguaje, trotó de adecuarlo a la resolución 
de problemas que intereso n o la Inteligencio 
Artificial, más que nada, por lo que implemen- 
tó en IISP una particularidad que hasta enton- 
ces nunca se había visto antes en tan gran es- 
cala: la recursividad. 


os quedabo por hablar de 
dos de ellos: los lenguajes dedicados 01 apren- 
dizoje y la computación «simbólica», Co- 
mo ambos están íntimamente relacionados, 
podemos comenzar por lo que m.' nos gus- 
te; elegimos lo seounda, 
A primero visto, el hecho de que los orde- 
nadores procesen números parece algo com- 
pletamente normal y no hocen más que res- 
ponder o uno ideo de diseño que pretende re- 
solver lo moyoría de los problemos computa- 
bles, 
En esto de lo mayoría está lo clave, por- 
que hoy uno gran cantidad de toreos que re- 
visten codo vez más importancia e implican 
trotar con símbolos más que con números, con 
palabras y reglas de conocimiento más que 
con cifras. 
Los lenguajes existentes poro los computa- 
dores no estaban muy preparados que dijé- 
ramos poro trotar estos temas, hasta que en 
1960 mister John McArthy desarrolló IISP (de 
lISt Processing, procesamiento de listos). 


La llegada de LISP 


L1SP es un intérprete, pero presento unos ca- 
racterísticos revolucionarios en cuanto 01 tro- 
tomiento de lo información, que hasto cierto 
punto echan por tierro lo arquitectura Van 
Neuman de los ordenadores clásicos. 
En efecto, poro IISP todo son listos de ob- 
jetos y no existe diferencio alguno entre pro- 
grama y dotas, coso que el resto de los len- 
guajes distinguen claromente, por hipótesis po- 
dríomos decir. 
Esto implico que cadenas de carocteres, nú- 
20 M/OOH088Y AMSTRAD 


Recursividad e 
Inteligencia 


Esto significo que una función IISP, que re- 
quiero uno serie de parámetros, puede llamar- 
se a sí mismo uno y otro vez mientras en el 
cuerpo de lo función los parámetros se alte- 
ran, consiguiendo alcanzar 01 final uno con- 
dición límite en lo cual lo recursión termino y 
el problema se resuelve «sumando» los resul- 
tados de codo llamado que lo función se ha 
hecho o sí misma. 
Esto, que sueno rarísimo, realmente es uno 
formo muy humona de resolver un problema, 
esto es, describiéndolo en términos de sí mis- 
mo, pero con un grado de complejidod me- 
nor, hasta que dicha complejidad seo nulo, 
Un ejemplo. Supongamos que yo tengo lo 
listo (o b c d), y quiero hollar su longitud, o 
seo, el número de objetos que lo integran. Lo 
manera más simple de resolver mí problema 
es decirle 01 ordenador que los vaya contan- 
do de uno en uno y sumondo 1 a ese conto- 
dar hasta que el fin de lo listo se encuentre. 



 .¥

: . I'. o
 :;
::
 
 : ':
 o.: 'c'; 

 .- 
 .., 1 .

; 
 
 

 
 .;.; 
 
J' .(. .... 
,: 1,0'-' 
u: ;.
'} ir -'; '.::' ".";
 
: rt
::.:j..; .:,r\


 
","-. -.t"\ 1 ,.., J ,1'" . 
.:; ':
f
 
..:.o 1',:, .
.J
.: 

; 
 :
j:- ,:
;. -. j';--,.. 
 : 
.) l-.,..:, . ":)1.1"- ":
14 ;1....
 


¡..1'1.:._ .. _ ,'X,. 
. ....' ,!.,. '"",¡. ..
.... 
:.....
 : .....:." ..!
 t1
... 


:
;z;,;. o
 ';:: 
 .. 
.,

.lI"'j.. ,t 
.:,
 ;0:" :. 
;',..; .' \ ¡ 
- '1 o,: f :v
 
.. . 
. ....... ,. '." _ ;. #o,u 
. .... ; 01" .",
 ¡ 
2' '. 2: 
 po ,- ", Jo,!.ll'.
 . " 
,';: ,
.
:
;..; _.r ..¡ 
 
 ' 
"l.:
... .. ;,. ,
...-:
 ¿ (..., 
1
..1; . :;"¡
..I .' 't.. ,
 1. 
.. ""--'.
'."''' 'r 


, )o . 
.Io. J 'A" '" .. .. 4.... 1'1. ... 1&., .t- "A 

,1 "A. 
 . :.r:.. :1
' :
:
 
'..
 

 

.
 '.'; 
:.
. .... .... 
: 

"-".) ,.2: ;'1,"Yt;
'.\".(..;'j,:"".","/ ."'.
 ....
.. .;1.. ¿I,. 
-t. '. . i ..... :..._ '" '
 
.<: 
 '.'" ':
'''.! . .!'-..!." !................., ;
, 
 
'
. 
 .... ;:V!'":'.,:-:j
51..:.
j""::.t-:!"
,,
,,.:'

'7"'t
 
:;..""'
 _.. 

 :.. 

,.... , .."'{...
o,:::: .-\ .,.............-' .)
 
v.'., 
'" ..;.... .
/','- 
'''''(
'
''' (,. t. __.. 
.::.:
.,..'";.
:.'" ;
':;""'I' ....._ 
... .
;. '/,.' . . ,..-" "'.. '
 
. .,
:
':'.... ...Ja ....
.J. 
.;'I:;'.:-:"
4{.','./.. .
 "'r\
'-\
 :r! , 'r4
;'- . 1 ....: 
Lo .f¡". "'." ;.' . )'. . .) _" / ;. 



 


... ..,. ....' .... ..
 r 


t ' \
:', '-. '.
 
. 

.' .. 
'.., t' 
. " 
,t- .' . 

: ."..... 
'1. 
oI,,¡, I 
Vi,,' 
I'\, 


.,,; 
,",1 .\t "'
 
.' I 't 
, " 
\ ;. .. 

 
\ ( " 
\. 
I Jo' .1 .. 
., 

, , 
"- lO 
, \ 
"J/' -.-,;; 
' 
"1:" " 

. 1/'" ......1" t;,... 

:'.y
,;:.

;

 !:, 
Í'-'

.A

}, 


 
= 
'\W*:
." ' 


" ... 


-" 


'jt 
...., 


.. e .,.. , 
:,-;J.-.. .lo 
;...
 I....'
.,.... '. 
¡


\ ..
. :.......l t.
:. 
 ., 

....t1- 
..'-
'o" o"',, .... 
..l" :«
...,P.Jq! . 
J r" ".- 
 ''\...,..... 
o , 


.' ;
 


':t ,., 
A, . 
. t 
:,.>J 


.... 


,. 


-. 



:.- 
.... . 
 ; ,:}..-
. .. 

....'" ./ .
.

.. 
.J.t."':. _: ,.': 
. ...'
 ! 1.. {.. . 
: :-
. 
 
. ,i 
 . : 
 


..... 



 ..... .. 
"tí. .(.1 )", 
.. 

'. 4'
 :
.. 

 
, ....
 I 
-,.. .&"t "I
"J .... 
, .1.-.., \ " 
. , t
;.... :111, .-'. . .. 
L '
: ':.,':
":
', , 
 
.....'/,pt"'. :
J tt.
... 
" ./.('" . " 
, '1 <:.<.' }:
: '. , 
'. :.; If ,,;,.,. J 


_ , ti". _. 
"" .' í tf;f .:r
. 

,:.,
:. . J ::
, '\;: 
 
 
"I'
 
 ... J ti ','Ir' '... "'. ... ¡,'..... 
,,}' .I
"''). ;.... . .(.: ,-'0,0.. ¡
'. 
 . 
 
 

 '
t
 . .l' ¡. '
1: . ..r!.:- .oI '..
: \ 
..,.. ..,,' 
.!. 
','>;7,
,;é';;
:;<
 ; ':; 
i'.J.t
".\..
 '
"" . '; 
, .,.......: . .... 


': . .¡
:.
 \ -"6 ,

:. ( . 


, ,"l. 
. f. <! 


..

,. . 


, 
':o\ 
'''
. 


..\ ..i-' 


'. < 
.\ . 


<" 


> ' 
" 


'., 
, . 


. '....1 ..,i 
:,<
:::. "' 


.' 
.'.... .' 


, ..¿:! 


, " 
:
 


r.,
 t:

: :',


 ",
. 
. 

 ..' .:...,.; 
t'to (t . .... ",. 
. ..
} 
."..' . 
'. 
,l. '.1 "'.. . 
j(!
 .;'..... I ,:J, 
1 .\.: ..... .: ,r.}oo' ,: . 1'..f '," 


,. ''I
.' :',¡, ,'" ,.... 1-.. 



", !" ,,'.' , 
 " ..' 

 V, :..
:.
,.,.. , .'.. 
.. ' 

::
;".':::{:',;
 '\-.1
:.; 
,.J..,.' ,.. 
 , :. .' 
, . 
"1
" lA...' ,'
 
;-:1

:¿ "
 I t.


t; 
,'" ,"" ,. I .,f: 

" '> 
:f(;i!t
,,: 
;,1\
:;';
, 



;;


H
? 
\,1'1 ... ..... .
. 
 ..... 



.:..' 
...'" .
r.
:- . I.

 1j. 



...
\',
; .;' 
'I'.
 ....1: 41 
.. ,!o,.' 
 . ,1.'\1 ..... -, .::.}' 1"'
"" 
';:
;' Jl A " r...c, .,1 ,..:.,
; 
t...\ ...;.
.,. "".',""" 


.
'. ;,J;.:
. : -:.
 I 
 ¡ .:.: 



 .. .'," .. J 
:.:. . 

."'
 ,....

 
¿t1 ..
. {J 
 
:\;..4:
! 1 
. 't:. <. .......'\'.,'..I...(
 _
.
..t j.
I
...(I
.{ 

J",,'
I"

:t¡.;,..;...: :..(
: \ 

.. r 
\'1,>\'

\"i..!..r 
'. í',.... r ," 74t.A ..1....__ ..........-:} r
'\I
'.f "t .... ' t 

.}. ," v
:j"" 1, 
,r: 2? r 
.
..,., 1 .";
4 
.' . .......,.. .:
 
 ..:....tI':......I

.t ...,1.....
f 
,: 
.
' 1 ,. , '\' 
. .:-
)


...,..,< r 
1, ".. ""'.... J ".,
, '. '. ", ,.1 
1, /,.
 h' ... "..: 

t\".. }, '" . I 
,..
 .:,., .;:... .* 
".r(". .
i.' . ( <1\,' l......,. .., ..1" 
:t
?:, 
" I 
t
f;
i:
K;k:.:;: t( .: 11. 11 .. 
, --- 
 l., 


".,.
" 
Ir, ..
=

...

{).
 ,I
, 
, 
 
"I. .}'::'.
l 'i 
,
, ....' .
 J< ,
, 

"j 
 
4 
.
». ..
, 
 
 '\.

. 
';:'i:j(' 
-:,;

,"
;:: ....:;.". y 1' , " 
.._......'_
.... 
,_t') . ; . ;; . ¡ (1:"" 

, 
-. .. - . -...1' 
 (" h ..
 
\ .' "" J ¡ --::, ''f¡ ...
 .. 
 
...,.

:r , ' '
 ' : ; , ,
 'j 1,,' ....., 
.... 
.1,. - . . "'4 # ". ! } 
.£"1 .
'" 4 t.. '':I..
' ," :::) ..t 
.. " 
'}';o I f:i 
";\:'f" <r;' , ,;, .?; 
, ....1 ( ¡, ,.-, ,', 
 .
. , . " 
1 1 . ,¡ 

 ":"1,
).."t"",4J
-"..'''. 
? ....t .:. 
I(J;-:, '
l'


)"':,,( ......" l. . 
, .. ,,": a,:
 '...' 
J ", "\ .;.,...I'.,:
 .. 
] 1. . . 1;"'" ..-:
.t 
." ' ; , (,.¡ó 
," 
' ;.:, 

I Vr .t '" 
:. '
'
:'I:;;';?
 ¡" 
"...f . .........' ."/'. . 
.....'" .¡\., -J


':fJ>..4
.,' 

 ,r:!-.
 
 
( "/<, --
' . ' , ¡'C', 
. 
.
...:j,
 '11.. '" 11 
, 
 


l,.",.
".,,,,.. ' 
J;"'; 
., 

 .
,.: 
 
<$
:



'

 



...:: 
 .
"
:;:.
 ;t 
',.J{ t...:

.. 
" '7-'4.':
 
,.;" 
,{ 



 


.. ....'"J"'.... '" :' ,.. 
, , 


l 


-1" 
.' -.:"': 
" 


" 


''\. 


...," 


.c 
, ""J-' 
,,
 
 -... 1- 
'. . 


- .. 


, ( 


(' 


(, J ' ) 
" 
":-'".. ' 
I .' J' _ 

 >,' . .;. 
,- 


(

/ 


I
' 


/ 
I 


.; 


, 
. .' . 


, , 


.. . . 
I,¡.'.. , 
;1 .
, ,'.J' 
. ... ... t 


"'
 if.., 


. 
 

 
 ....
 
, . .. 
'¡. ,." 
(- . 
, 
.i;
. J 
1 
. ¡ 


l' _ . . _ :-!
.... 

. . ' . 


'. 


,:
 f 
.' 
. 

 \ !< 
 
' I ( 
.. 
 
.. 
.\ 


Para conseguir esto, yo puedo decir: 
1) La longitud de la lista, sin ningún ele- 
mento, esto es, vacía, es obviamente O. 
2) Sea cual sea la longitud de la lista, siem- 
pre será cierto que valdrá la suma de la lon- 
gitud del primer elemento, o sea, 1, más la lon- 
gitud del resto de la lista. 
Aquí aparece la recursividad, porque estoy 
describiendo la longitud de una lista en fun- 
ción de la longitud de una lista, pero con un 
elemento menos. La condición límite que po- 
ne fin a la recursión es la uno, porque al ir di- 
vidiendo la lista sucesivamente en dos trozos 
una y otra vez, tarde o temprano alcanzará 
la lista vacía. 
En LlSP, el programa sería el siguiente: 
(defun long (lista) 
(cond ((nul/ lista) O) 
(t (add 1 (long (cdr lista}))) 
Una llamada a esta función de la forma: 
(long (a b e d}) 
dará como resultado 4. 


. '- 
,- , 


Programas no 
jerárquicos 
Obsérvese que esta manera de construir 
programas permite crear estructuras de datos 
ramificadas más que jerárquicas. 
Por ejemplo, en PASCAL suele haber un pro- 
cedimiento principal que maneja y llama a los 
demás en el momento adecuado, dando al 
programa final una estructur
 claramente je- 
rárquica, 
LlSP proporciona una flexibilidad mucho ma- 
yor, porque cada función puede llamarse a sí 
misma o a otras, que a su vez se llaman a sí 
mismas, desde cualquier parte del programa. 
Yo podría escribir tres funciones llamadas fl, 
f2 y f3, por ejemplo, y hacer que cada una 
entrara en la definición de la otra: 
(defun fl (parámetros 1) 
(haz-cosas) 
(f2 (haz-cosas))) 
(defun f2 (parámetros2) 
(fl (haz-más-cosas)) 
(f3 (parámetros3))) 
(defun f3 (parámetros3}) 
(fl (f2 (parámetros 3}))) 
Si las condiciones de salida de recursividad 
se eligen adecuadamente, este programa fun- 
cionará y no puede decirse que sea muy je- 
rárquico, más bien parece bastante «arbóreo». 
Un follón, vamos. 
Este lío permitió resolver una serie de pro- 
blemas inabordables hasta ese momento acer- 
ca de cómo tratar el conocimiento, porque, se- 
gún parece, nuestra mente lo hace de una ma- 
nera relativamente parecida, salvando las dis- 
tancias. 
Resulta un poco difícil explicar cómo funcio- 
na un lenguaje dedicado al tratamiento sim- 
bólico de la información, pero espero que se 
me crea que LlSP supuso una auténtica revo- 


". 


lución en el campo de la Inteligencia Artificial 
y de los lenguajes en general, porque permi- 
tió a los investigadores materializar y probar 
sus ideas el contar con la herramienta de tra- 
bajo adecuada. 


En busca de una 
sintaxis más sencilla 


Los lectores que no estén familiarizados con 
el lenguaje habrán observado que su sintaxis 
es muy extraña y sobre todo, está llena de pa- 
réntesis por todas partes (los que conocen IISP, 
también lo han observado en su propia car- 
ne), no resulta especialmente amigable. 
Esto y otro asunto muy importante del que 
vamos a hablar ahora mismo, hizo que se de- 
sarrollaran multitud de lenguajes-hijo del LlSP 
especializados en manipular información sim- 
bólica, pero con una sintaxis y un modo de 
programar mucho más sencillo (¿menos poten- 
te?). 
El asunto muy importante resulta ser algo 
obvio y triste: para que un programa funcio- 
ne, yo tengo que saber antes que el ordena- 
dor exactamente, cómo va ha hacerla, es de- 
cir, debo conocer por anticipado el flujo del 
programa, las variables, constantes yestruc- 
turas de datos necesarias para resolver mi pro- 
blema. 
Por esto, a la mayoría de los lenguajes se 
les denomina «imperativos» (lISP es me- 
dio imperativo), porque me limito a ordenar 
a la máquina paso a paso lo que debe hacer 
y cómo. 
Resulta que soy YO el que hace el trabajo 
del ordenador, y encima me creo que lo es- 
toy programando. 


Los lenguajes 
dedarativos 


Algún tipo listo pensó que no estaría de más 
que el ordenador trabajara un poquito; al fin 
y al cabo, a mí personalmente me importa un 
bledo todo lo relativo al mecanismo compu- 
tacional concreto de una máquina. Me da 
igual cómo se resuelva mi problema, siempre 
que se resuelva. 
En este sentido, analicemo
 lo que el pro- 
gramador hace normalmente cuando crea un 
programa, Primero, se describe a sí mismo el 
problema en función básicamente de 2 cosas: 
unos hechos, de los que se parte y unas reglas, 
que los relacionan. Así, en un programa Ba- 
sic, por ejemplo, yo parto de la incontroverti- 
ble realidad de que la variable X vale cero, 
más que nada porque la pongo yo y luego, 
en alguna parte perdida del programa, voy 
y digo: 


IF X=O THEN haz-tal 
El problema empieza en que si la variable 
X se altera a lo largo del programa por lo que 
sea, yo tengo que saberlo a la hora de escri- 
bir la sentencia condicional, es decir, debo co- 


M/CROH088Y AMSTRAD 21 



. ::t _ .;. .., t" ".. 
. 
, . ..f '" .. , ;
. - 

..... I .., 
...'! 
.t . 10 
t' .. 1 \ 
" "1 "t\;..
.. 
 
. .' ," 
,;"

 ' 1 1 ". 
 
...t:"_ ':'
;:" ! "j!._
" .\ y...:
.t.;


...6,
":,. 
.
... 
)..,.,1_.. _....... ,

..¡ .'fi..J: 'I.,.''''
I_'':<JI¡'f. .... .. 
. "" ........:-............
,.,.:\...i I ....
 tJ\/
 ,...f,.

,."":........
f f: 
 
'1 4 ....... t",
..., . ¡: 
,\"" :...-..l(

..'.J 
. ," " ' } , ,.,.;"'" .
 ',., .
! . , ,1 
.' . '.. ," "" 1 '" '.. 1 . 
11,0))':"-.' '¡/;'. 

 ..L.....
 , 
:;} . :4 " , . 
/'.f. . ; , l' . ." 

.. . ,' "': .4......:'. . . - :
. 
.. t. ,l . . .. 
 'f 
 '",k'1.. ". 
, , I "" ,,?, 
".; ..... 
", ',
':' , ' , .. ' J ....., 
 i'
' , .! 
,,<;'!..".
 , ' II:
 ,l¡t': :"," } '(;::I:
t..: 
. ., ') f 
 /
.. :, ('.. ,,' 
.:.
 .
..'
> l.; 
 1''' ,. . 
.' "'
 
1 ...'.
" _, , 
,.
.:::
:
:
)
: ;:

 

.. . ao-:r:t- 1Ir ':. '.. 
.., 
 '... . .9( ," )o: . '.' " 


r I 


nocer perfectamente cómo se computa la va- 
riable X; estoy metido hasta el cuello en un len- 
guaje imperativo. 
Para evitar esto, debe existir un lenguaje que 
le baste recibir una descripción del problema 
en términos de hechos y reglas y, partiendo 
de ellos, realice él solito el trabajo vp.rdade- 
ramente duro. Existe, se llama PROLOG y es 
la base de la Quinta Generación de Ordena- 
dores. 


Programación lógica 


I 
1, 


No sé si los lectores se percatarán de la re- 
volución que representa el hecho de que la 
descripción lógica de un programa sea ya el 
programa, sin más. 
Por fin, tenemos que limitarnos sólo a plan- 
tear un problema a la máquina en lugar de 
resolverlo nosotros pasito a pasito, y dejarle 
al ordenador sólo los cálculos matemáticos 
pertinentes. 
Para tratar de comprender un poco esto, va- 
mos a escribir en PROLOG el programa que 
permitía hallar la longitud de una lista. Primero 
de todo, vamos a describir el problema en cas- 
tellano: 
1) La lista vacía tiene una longitud O. 
2) La lista no vacía tiene una longitud Z si 
podemos dividirla en dos partes, un miembros 
y el resto, y el resto tiene una longitud Y tal 
que sumada a 1 da Z. 


.. 
....' 
f" 
.... 
. 
, \ 
t . 
! 
, ( 


.1" .... 


.' 


. " f 


\ 
.:i\ 



 , 


. \ 


, . 
" 


. -:'; ..
. 
 


. \
 
, 


,,' 


"o. 


,1 't' .',' 
f >, ..;. . 
I ..." 
l .'\, lo 
,,' .¡' " .... 
. ,,' .'..,.,
..., . 
. \ 
...: I . 
 
i 
 ." .. '" .' , 
I "....\ '.. '1 . l. '.\ t 
l i ,> t....:: /:
¡<

' .' 
..'t :.- ::-.t,' ',
: 


CÍ/ 


.
:' 


11 MICROH088Y AMSTRAD 


Léase esto con atención y, cuando por fin 
no se entienda, mírese atentamente lo siguien- 
te: 
La lista (a b c d) puede dividirse en dos: (a) 
y (b cd). 
Podemos decir que la longitud de toda la lis- 
ta es 4 porque la longitud de la segunda par- 
te es 3 y 3 más 1 es igual a 4. 
¿A que resulta obvio? 
Ahora en PROLOG: 
O longitud-es O 
(xiX) longitud-es Z IF X longitud-es y ANO 
SUM (Y 1 Z). 
En donde () representa la lista vacía e I F, 
ANO y SUM son primitivas del PROLOG, 
mientras que (xiX) es la forma de decirle al 
ordenador que nos habemos con una lista di- 
vidida en su primer miembro y el resto. 
Insisto en el detalle de que nosotros en nin- 
gún momento le hemos indicado al ordenador 
el mecanismo exacto para hallar la longitud 
de una lista. Nos hemos limitado a describirle 
a la máquina el significado del concepto 
10ngitud_de_una_lista usando el sentido co- 
mún. Obsérvese también que hemos emplea- 
do, encima, la forma más cómoda, esto es, 
describir 10ngitud_de_una_lista en términos 
de 10ngitud_de_una_lista, Recursividad al 
canto. 
En BASIC, P ASCAL o cualquier otro lenguaje 
imperativo usted tendría que saber cómo se 
. halla exactamente la longitud de una lista 
computadora mente hablando. 


\'::_
?' 


. :
;:'
:.
; ;':,:
:, 
. 
 
 't, .
.,.:... 
; j , 
-, , 
" .' 
 .:

 .. ..
 . , a 
"
 


, .;¡I
 :
 I 
{:
 r 
,:.. '. 


.' , 


¡;, , , 


., 


-
)); 
/ /. .: 

<, 
/, 
:.".' r' 
'" " 
. 
" 


. " /, 
',;t ',' ' ,,', ' 
,r--: ... 
', '1 
. 
 .,)\. .. 
'('.: 
)'j 
 
,"'"" . 'Io...
 .
 
,', "\.11
.,' 
. ," 
 


-, 


,./ 


1" t (It 


) 


,.I.t 


6,1 
".1 
.. " 

,..J 
-"1 
, i 
i 
I 

 ,
,I 
. .i 


'\ i ".,. ," 
 "':. .1 


..;1 . 
 
 
".' \:' r 


Bien, espero que quede claro porque se di- 
ce que PROLOG es un lenguaje declarati- 
vo, y porque se usa en Inteligencia Artificial 
para la construcción de sistemas expertos ba- 
sados en reglas lógicas, en la descripción de 
situaciones. 


La Quinta Generación 


. " 
1 , 

¡ 
, '. 


Los lenguajes declarativos tienen, por aho- 
ra, una serie de limitaciones, fundamentalmen- 
te que son muy lentos y consumen gran canti- 
dad de memoria, 
Sin embargo, estos puntos negros de PRO- 
LOG y otros no son completamente achaca- 
bles al lenguaje en sí. El problema estriba en 
que todavía no disponemos de un hardware 
adecuado para los lenguajes declarativos. 
PROLOG posee una característica que, en 
palabras técnicas, se llama transparencia 
referencial, y se puede definir diciendo: un 
lenguaje es referencialmente trans- 
parente si prohibe asignar a una 
misma variable diferentes valores 
durante la ejecución del programa. 
Esto, en palabras sencillas, indica que una 
parte de un programa PROLOG o de cual- 
quier lenguaje declarativo es completamente 
independiente de las otras y, por tanto, una 
aplicación declarativo puede ser procesada en 
paralelo, computando a la vez la mayor can- 
tidad de trozos posible del programa. 
Esta idea del procesamiento paralelo, que 
implica que un ordenador posee más de un mi- 
croprocesador trabajando conjuntamente con 
otros en la resolución de un problema, es la 
base, junto con el PROLOG, de la Quinta Ge- 
neración de Ordenadores, el famoso proyec- 
to japonés, 
Japón pretende dotarnos, para los años 90 
más o menos, de ordenadores que se progra- 
men en gran parte a sí mismos, a los que po- 
damos dirigirnos mediante la palabra habla- 
do e incorporen, como diseño de base, una 
serie de sistemas expertos capaces de enten- 
dérselas con bases de conocimientos. 
Los problemas son de muy difícil solución, 
pues en realidad se trata de dotar de inteli- 
gencia a las máquinas, o al menos de que la 
simulen tan convincentemente que no seamos 
capaces de distinguirla de la humana. 
Por razones económicas y políticas, además 
de operacionales, PROLOG ha sido escogido 
para ser ellenguaie de los ordenadores pen- 
santes de finales del siglo XX. Hemos dado un 
gran paso desde los tiempos del ENIAC, las 
máquinas regidas por válvulas y el uso exclu- 
sivo del código máquina. Sólo la tecnología 
física nos separa de crear la primera forma de 
vida inteligente conocida aparte del hombre 
mismo. 
Los lenguajes que lo harán posible ya exis- 
ten, y el mayor desafío tecnológico y filosófi- 
co del siglo está a punto de nacer y explotar 
en nuestras vidas. 



. 


. 


Placon es un programa de compatibilidad completamente adaptado al Plan Contable Español 
y de lo más potente que hemos visto, 
Como está dirigido a un sector muy concreto de usuarios de Amstrad, hemos pensado que lo 
mejor es pasar a la descripción detallada del programa sin más preámbulos, 
Unicamente una aclaración antes de continuar: Placon requiere para poder funcionar dos 
unidades de disco. Incluso está prevista su utilización con disco rígido, 
Las funciones del programa están numeradas y se ha mantenido esta clasificación para ser 
coherentes con la estructura del mismo, 


I 
. 
I 


OPCION 10: Mantenimiento del Plan 
de Cuentas 
A. OBJETO DE LA OPCION 
Esta opción permite dar de alta, modificar, 
dar de baja y listar las cuentas. 
B. CUANDO SE UTILIZA 
Cuando se necesite. 
C. COMO SE UTILIZA 
Se llega a ella desde el menú principal pul- 
sando 10 y ENTER (o bien situándose con el 
cursor y ENTER). 
Tiene dos formas de elegir opciones: 
- Con las teclas de flechas hacia arriba y 
hacia abaio, 
- Pulsando el número elegido. 
A continuación de ambas opciones hay que 
teclear ENTER. 
D. TERMINAR 
Con la opción O se vuelve al menú principal. 



 


OPCION 10 - 1: Altas 
A. OBJETO DE LA OPCION: 
Introducir cuentas en el maestro, tanto cuen- 
tas de agrupación como de detalle, 
B. CUANDO SE UTILIZA 
Cuando se quiera introducir una cuenta, 
C. COMO SE UTILIZA 
Eligiendo la opción 10 (MANTENIMIENTO 
DE FICHEROS DEL PLAN DE CUENTAS) en 
el menú principal y luego la opción 1 (ALTAS) 
en el menú secundario. 
Al teclear el número de cuenta, observe que 
se admiten caracteres alfanuméricos y el 
signo- (signo menos), 
D. TERMINAR 
Para TERMINAR teclee escape a número de 
cuenta. 
Las entradas de cuentas se graban en un fi- 
chero auxilar que luego sE! clasifica y mezcla 
con el del plan contable. 


OPCION 10 - 2: Modificar 
A. OBJETO DE LA OPClON 
Modificar: 
- La descripción de las cuentas. 
- La asignación a masa patrimonial. 
- La asignación a activo o a pasivo. 
B. CUANDO SE UTILIZA 


Cuando se desee realizar lo anteriormente 
señalado. 
C. COMO SE UTILIZA 
Teclee 10 en el menú principal y 2 en el se- 
cundario, 
Se le preguntará por el código de la cuenta 
a modificar. 
Teclee la cuenta, el sistema la buscará y le 
mostrará en pantalla los valores actuales pa- 
ra que proceda a su modificación. 
Si no la encuentra, le mostrará la más pró- 
xima. 
D, PARA TERMINAR 
Teclee ESCAPE en cualquier momento. 


OPCION 10 - 3: Bajas 
A. OBJETO DE LA OPCION 
Anular cuentas. 
B. CUANDO SE UTILIZA: 
Puede utilizarse en cualquier momento pa- 
ra anular cuentas que no tengan ni saldo ni 
movimiento. 
Normalmente después de cerrar el ejercicio. 
C. COMO SE UTILIZA 
Se le preguntará por el código de cuenta a 
anular y si no la encuentra tomará la más cer- 
cana, a continuación le pedirá conformidad 
para anularla definitivamente. 


OPCION 10 - 4: Listado 
A. OBJETO DE LA OPCION 
Tener un listado del plan de cuentas, tanto 
por pantalla, como por impresora. 
B. CUANDO SE UTILIZA 
Cuando se necesite. 
C. COMO SE UTILIZA 
Tiene opción a seleccionar en qué cuenta 
empieza y termina el listado y el periférico 
(pantalla o impresora) de salida. 


OPCION 11: Mantenimiento del Fi. 
chero de Masas Patrimoniales 
A. OBJETO DE LA OPCION 
Las masas patrimoniales se usan para agru- 
par cuentas de mayor, según el grado de li- 
quidez, al imprimir el balance de situación. 
B. CUANDO SE UTILIZA: 
- Cuando se necesite, normalmente al ini- 
ciar la aplicación. 


C. COMO SE UTILIZA: 
Dispone de tres opciones: 
- Si teclea un número entre 1 y 20 el cur- 
sar se posicionará en la masa referenciada y 
lo que teclee será el nuevo contenido. 
- Si teclea (L) se imprimirá un listado de las 
masas. 
- Si teclea (O) se grabará el fichero de ma- 
sas con las nuevos contenidos y el programa 
volverá al menú anterior. 
- Si teclea un número mayar de 20 volve- 
rá a escribir la pantalla. 
D. PARA TERMINAR 
- Si teclea (O) se grabará el fichero de ma- 
sas con los nuevas contenidos y el programa 
volverá al menú anterior. 


OPCION 12: Mantenimiento del Fi. 
chero de Conceptos 
A. OBJETO DE LA OPCION 
El fichero de conceptos contiene 45 descrip- 
ciones de 20 caracteres cada una que utiliza- 
remos para facilitar y ahorrar espacio al in- 
troducir los asientos. 
B. CUANDO SE UTILIZA 
- Cuando se necesite, normalmente al ini- 
ciar la aplicación. 
C. COMO SE UTILIZA 
Dispone de tres opciones. 
- Si teclea un número entre 1 y 45 el cur- 
sor se posicionará en el concepto referencia- 
do y lo que teclee será el nuevo contenido. 
- Si teclea (L) se imprimirá un listado de los 
conceptos. .. 
- Si teclea (O) se grabará el fichero de con- 
ceptos con los nuevos contenidos y el progra- 
ma volverá al menú anterior. 
- Si teclea un número mayor de 45 volve- 
rá a escribir la pantalla. 
D. PARA TERMINAR 
- Teclee (O), se grabará el fichero de con- 
ceptos con los nuevos contenidos y el progra- 
ma volverá al menú anterior. 


OPCION 20: Anotación de Asientos 
A. OBJETO DE LA OPCION 
Anotar los movimientos de la contabilidad, 
B, CUANDO SE UTILIZA 


MICkOH088Y AMSTRAD 23 



En principio cuando se quiera con las si- 
guientes restricciones: 
l. Si es el primer asiento después del de 
apertura asegúrese de haber realizado el pro- 
ceso de fin de apertura. 
2. Si es el primer asiento del mes, asegúre- 
se de haber realizado pl proceso fin de mes. 
3. En cualquier caso es necesario haber 
realizado la inicia/ización del disco. 
C. COMO SE UTILIZA 
La entrada de datos es del tipo de filas y co- 
lumnas, además de las teclas especiales de 
anotación de asientos: (VER SU ORDENA- 
DOR, PUES SON DISTINTAS PARA CADA 
MODELO.) 


OPCION 30: Modificación de Apuntes 
A. OBJETO DE LA OPCION 
Esta opciór permite la modificación de cual- 
quier campo, de cualquier apunte, de cual- 
quier asiento ya actualizado. 
B. CUANDO SE 
TlLlZA 
- Cuando se necesite. 
C. COMO SE UTILIZA 
Seleccione MODIFICACION DE APUNTES 
(opción 30) en el menú principal. 
Tiene tres opciones: 
l. Pulsando un número de referencia apa- 
rece el apunte correspondiente. 
Pulsando un número dell a18, el cursar se 
posiciona en el campo correspondiente y una 
vez en ese campo se puede modificar. 
En el campo 1 con poner una A (anulado) 
o una N (no anulado) el programa escribe lo 
demás. 
D. TERMINAR 
Se sale pulsando una F en la primera pan- 
talla de la opción. 
E. OBSERVACIONES 
No se le permitirá modificar apuntes que no 
existen. 


OPCION 31: Incorporación de Asien- 
tos Externos 
A. OBJETO DE LA OPCION 
Esta opción lee ficheros realizados por otras 
aplicaciones (Nómina, Facturación -ALFA-, 
e incluso Contabilidad General) y los incorpora 
a la contabilidad en curso. 
El proceso es parecido al de introducción de 
asientos. La diferencia es que, en vez de leer 
el teclado, se leen los datos del fichero gra- 
bado por otra aplicación. 
Los apuntes se incorporan al fichero auxi- 
liar de entradá de apuntes. Puede modificar- 
los con la opción de anotación de asientos 
exactamente igual que si lo hubiera tecleado. 
Hasta que no lo actualice no se considera en 
los listados. 
B. CUANDO SE UTILIZA 
Se puede utilizar cuando se quiera. 
Puede serie de mucha utilidad si usted tiene 
un negocio con varias sucursales, tiendas o de- 
partamentos, así usted puede llevar una con- 
24 MICNOH088Y AMSTRAD 


Ult. 


. "':":.. . 
J
 ,r-' 
 J:f j- 
.r. . 
 '. "'l. 
IIDI.... 11 _ . Iá SI 
....... '1 ' ':. ... iI 
-_l. 
,o) 
01 
1_.. 


... 


lO 


I rrr- 


- 


tabilidad para cada departamento y luego 
agrupar todas en una general sin tener que 
teclear nada. 
C. COMO SE UTILIZA 
Si selecciona esta opción, primero le pregun- 
ta por el nombre del fichero. 
Luego le pregunta por la estructura de los 
ficheros: 
- Si usted va o incorporar un fichero del 
Placon o Alfa (almacén y facturación) teclee 
ENTER a todos los datos de estructura, pues 
tomará por defecto los valores de este fichero. 
- Si va a incorporar otro fichero teclee los 
datos de su estructura. 


OPCION 40: Fin de Apertura 
A. OBJETO DE LA OPCION 
Actualizar el campo del saldo inicio de ejer- 
CICIO. 
B. CUANDO SE UTILIZA: 
Después de grabar el asiento de apertura 
y antes de realizar otro asiento. 
C. COMO SE UTILIZA 
Lo primero que se le pedirá es que teclee la 
clave de seguridad. 
La clave de seguridad salvo que se solicite 
lo contrario es TOMA. Al teclearla no se ve 
lo que se teclea en la pantalla. Es preciso te- 
clear mayúsculas. Si no se teclea exactamen- 
te, el programo vuelve al menú anterior. 
D. PARA TERMINAR 
Al terminar el proceso vuelve directamente 
al menú anterior. Para no realizar el proceso 
basta con teclear erróneamente la clave de se- 
guridad. 
E. OBSERVACIONES 
El uso inadecuado de esta opción desfigu- 
ra la cuenta de explotación (en la variación 
de existencias) y el balance de sumas y saldos 
(en el saldo del ejercicio anterior). 


OPCION 41: Fin de Mes 
A. OBJETO DE LA OPClON 
Actualizar los campos sumas debe mes an- 
terior y sumas haber mes anterior. 
B. CUANDO SE UTILIZA 
Después de terminado un mes y de listar to- 
dos los informes necesarios y antes de intro- 
ducir los asientos del nuevo mes. 
C. COMO SE UTILIZA 
Lo primero que se le pedirá es que teclee la 
clave de seguridad. 


,':1\ 


D. PARA TERMINAR 
Al terminar el proceso vuelve directamente 
al menú anterior. 
Para no realizar el proceso basta con teclear 
erróneamente la clave de seguridad. 


OPCION 42: Fin de Período 
A. OBJETO DE LA OPCION 
Es actualizar los campos de sumas del debe 
y sumos del haber del período anterior e ini- 
cializar el fichero de asientos. 
No es prudente realizar este proceso si no 
hay dos copias del disco de datos (se guarda- 
rán como históricos). 
B. CUANDO SE UTILIZA 
Este proceso lo ha de realizar cuando se lle- 
ne el fichero de movimientos. 
C. COMO SE UTILIZA 
Lo primero que se le preguntará es la clave 
de seguridad. Si la teclea mal volveró 01 menú. 
A continuación comienza la actualización de 
las cuentas (que podrá ver en pantalla), y la 
inicialización del fichero de asientos. 
D. PARA TERMINAR 
Vuelve automática mente al menú. 


OPCION 43: Regularización de Cuen- 
tas de Gestión 
A. OBJETO DE LA OPCION 
Generar un asiento cuyos apuntes saldan las 
cuentos de gestión. 
B. CUANDO SE UTILIZA 
Después de: 
- Introducir todos los apuntes del ejercicio. 
- Listar la cuenta de explotación. 
- Antes de realizar el proceso de fin de 
ejercicio. 
C. COMO SE UTILIZA 
Lo primero que se le preguntará es la clave 
de seguridad. Si la teclea mal volverá al menú. 
Después le preguntará el número de docu- 
mento y la fecha del asiento de regularización. 
A continuación el programa escribe el asien- 
to de regularización. 
D. PARA TERMINAR 
Vuelve automáticamente al menú. 


OPCION 44: Fin de Ejercicio 
A. OBJETO DE LA OPClON 
Poner a cero los acumulados del debe y del 
haber de todas las cuentas y generar el asiento 
de apertura (que queda en el fichero auxiliar 
de entrada de apuntes) también inicializa el 
fichero de asientos. 
B. CUANDO SE UTILIZA 
Al terminar el ejercicio contable. 
C. COMO SE UTILIZA 
Lo primero que se le preguntará es la clave 
de seguridad. Si la teclea mal volverá al menú. 
y comienzo lo actualización de cuentos e ini- 
cialización del fichero de asientos. 
D. PARA TERMINAR 
Vuelve automático mente 01 menú. 



. 
I 


OPCION 50: Listado del Diario 
A. OBJETO DE lA OPClON 
listar el diario. 
B. CUANDO SE UTILIZA 
- Cuando se necesite. 
C. COMO SE UTILIZA 
Tiene opción a: 
- Definir un intervalo de fechas, 
- Definir un intervalo de números de asien- 
to. 
- Definir un intervalo de referencias. 
- Que se impriman sólo las cuentas que 
empiezan por la serie de dígitos. (P.e. Si te- 
clea 7 se imprimirán sólo los apuntes que se 
han hecho a cuentas del grupo 7, si teclea 570 
se imprimirán los que hacen referencia a la Ca- 
ja, etc.) 
- Dar unas sumas de debe y haber inicia- 
les. 
- Imprimir o no la descripción de las cuen- 
tas. 
- Numerar a partir de una página dada 
(si tiene por ejemplo, listados enero y febrero 
y le ocupan 26 páginas, teclee 27). 
En el listado saldrán los apuntes que cum- 
plan todas las condiciones especificadas. 
D. PARA TERMINAR 
Al terminar el listado, el programa vuelve 
automáticamente al menú anterior. 


.. 


OPCION 51: Listado del Mayor 
A. OBJETO DE lA OPCION 
listar el mayor. 
B. CUANDO SE UTILIZA 
- Cuando se necesite. 
C. COMO SE UTILIZA 
Tiene opción a elegir: 
- El periférico de salida del informe, con 
la opción de poder utilizar fichas standar. 
- El rango de cuentas a listar. 
- El intervalo de listado de movimientos 
(que puede definirlo por fecha inicial y final, 
número de documento inicial y final o núme- 
ro de referencia inicial o final). 
En el listado saldrán los apuntes que cum- 
plan todas las condiciones especificados. 
D. PARA TERMINAR: Al terminar el lista- 
do el programa vuelve automática mente al 
menú anterior. 


>11 
I 


OPCION 52: Balance de Sumas y Sal- 
dos 
A. OBJETO DE lA OPCION 
listar un balance de sumas y saldos. 
B. CUANDO SE UTILIZA 
- Cuando se necesite. 
C. COMO SE UTILIZA 
Tiene opción a definir: 
- En qué cuenta empieza y termina el lis- 
tado. 
- los niveles de rotura de totales. 
- El modelo de listado (con datos del mes, 
datos del ejercicio o ambos). , 


Cuando no imprima cuentas de detalle (ni- 
vel7) notará que algunas líneas tardan en sa- 
lir. Esto es porque los valores de las cuentas 
de agrupación se calculan de los de las de de- 
talle. 
D. PARA TERMINAR 
Al terminar el listado el programa vuelve 
automática mente el menú anterior. 


OPCION 53: Balance de Situación 
A. OBJETO DE lA OPCION 
Obtener el balance. 
B. CUANDO SE UTILIZA 
- Cuando se necesita. Para que tenga sen- 
tido se debe usar después de introducidos to- 
dos los apuntes del mes y un asiento de regu- 
larización de la cuenta de existencias (contra- 
partida en el grupo 8). 
El balance de final de año debe obtenerse 
después de la regularización de existencias y 
antes del proceso de fin de ejercicio. 
C. COMO SE UTILIZA 
Este listado no ofrece ninguna opción de se- 
lección. 
D. PARA TERMINAR 
Al terminar el listado le preguntará si desea 
otra copia. Teclee N para terminar. 


OPCION 54: Cuenta de Explotación 
A. OBJETO DE lA OPCION 
Obtener el informe, 
B. CUANDO SE UTILIZA 
- Cuando se necesite. Para que tenga sen- 
tido se debe usar después de introducidos to- 
dos los apuntes del mes y un asiento de regu- 
larización de la cuenta de existencias (contra- 
partida en el grupo 8). 
la cuenta de explotación debe obtenerse 
después de la regularización de existencias y 
antes de'la regularización de compras y ven- 
tas. 
En este informe se imprime la variación de 
las existencias, de las cuentas de compras 
(Grupo 6) y de las ventas (Grupo 7). 


OPCION 55: Explotación Analítica 
A. OBJETO DE lA OPCION 
Obtener el informe. 
B. CUANDO SE UTILIZA 
- Cuando se necesite. Para que tenga sen- 
tido se debe usar después de introducidos to- 


dos los apuntes del mes y un asiento de regu- 
larización de la cuenta de existencias (contra- 
partida en el grupo 8). 
la cuenta de explotación debe obtenerse 
después de la regularización de existencias y 
antes de la regularización de compras y ven- 
tas. 
Contiene los mismos datos del informe an- 
terior clasificdos en tres grupos. Da el por- 
centaje de los gastos sobre las ventas. Si las 
ventas son cero no se impirme este porcentaje. 


OPCION 60: Previsión de Cobros y 
Pagos 
A. OBJETO DE lA OPCION 
Mantenimiento del fichero de previsiones y 
listado clasificado de previsiones de cobros y 
pagos. 
B. CUANDO SE UTILIZA 
Cuando se necesite. 
C. COMO SE UTILIZA 
Al seleccionar la opción aparecerá una pan- 
talla del tipo de filas y columnas. 
D. TERMINAR 
Al terminar cada una de las opciones se 
vuelve al menú secundario y así seleccionan- 
do la opción O volvemos al menú anterior, 


OPCION 62: Otras Opciones 
REGENERACION DE IN DICES 
l. Chequeo que el plan de cuentas esté cua- 
drado en datos del período anterior, si no lo 
está lo cuadra contra la cuenta 9999999. 
2. Chequeo que el diario esté cuadrado, si 
no lo está genera un apunte contra la cuenta 
9999999 que lo cuadra. 
3. Pone a cero el plan de cuentas. 
4. Para cada apunte del diario comprueba 
la existencia de la cuenta correspondiente. 
5. Actualiza las cuentas a través de los 
apuntes. 


OPCION 99: Fin Aplicación 
Esto opción es el final obligado de todo pro- 
ceso contable en el que haya habido modifi- 
cación de ficheros. 
Una vez realizado puede sacar los discos y 
apagar el ordenador. . 


(("J US.11l'i\1'IU 
12 ,I-
 


Qt(fO .t pu":')j .4 


IIJT Plu d, c..¡,., 19 
IVT 1W.u
 P"trl_ I)J,
 U 
1(/1' (=ctplo' WJ:11ill' $ 1Z 
)IiMUtI dt"-I lIS ZfI 
.y'¡(IUCIClltjI tK 3EI 
blnt.u LdlntS n 
flo4tflrfrtG'iI 411 
fl1l. l.,. 11 U 
.ful
' P"lcde 4
 
F
wluluc]aa"stlOl 41 
111'14, 4n'UCIO 44 


nuJ' CI 
 

i:C.. dI' San 
 S¡ld
 

 
Rl:IUI<I' dI' S,t""IOII 
3 
e u dI' LQlot.4.CICII lj4 
1.q1.u.cIOII *wihLiu ss 
Pr VIH dtCobrl\,h9t1$6 
''''hhw lDiL.lh,,
 " 
I,.,PIIn.llcloadt udlc
 52 
FUI RrIICol"" " 
_
I
 tjj 


c....l¡
 J At.in 2: 


k,¡'IIIICI ]1ft Llbns " 


MIOOH088Y AMSTRAD 2S 



, . 


Gráficos a color, fa I idez de acción y sonido dan a este Juego · 
. . la sensacion de una máquina de millón real. . 
 

OQ\
,,,- 
 
,. 9 00\.,sCP 

. ' 


l' 


".
 .. W
 j 
. ! v 


.' 


"' 


-....., 
\ 


, ' 


jf 
,....... '1 f 
"Il
' {, 
11 . 
:\!.// 
\. I//. ; 
"'! 
;:?- 
)"
 .
 

... 
/ 


, - 


/ 


\1' 


J . J 


, 


AMSTRAD :¡': 


, j, 


¡¡.: 


YA DISPONIBLE EN 
 
.., Y EN TODAS LÁS 
TIENDAS ESPECIALIZADAS 


AC IVIDADES COMERCIALES ELECTRONICAS, S.A. ' 
Tarragona, 110. Tel. 325 1058' 08015 Barcelona, Telex 93133 AC EE f 
. 




 


,1 



 


, 
AJedrez e.ti' .nsional'con vozencastellan- 
. 
Amstrad CP '464,
 664 yCPC 6128 , 


1, 


R
B ) 
2.30 0 :- (cinta 
3. OO:-(diSCO) 



 


f 


r 



 

 
\
), 

' JJ4 f:1 f1 
 
-
 
J - 
-t- r ... 

 
/ 


, J . 


" 
'\ 


,-, / 
<r) ':\ ) 

 t1 ,,' 
. / 1 
,/ J 


;r 


/...., . 
. l
__ _ _n. j 
1 ' 
, , . 
1" «n.E '/ 
/ '. I 


,.. - ....: 


Ptod ido en e, chJsjva para 
....'I': - a RQI': 


'AI""'C , ' 

 
 


PUBLlSHED 


.. 

 lE PTHOUG I 
....FTWARE 


.ISTRIBUTED 

 software 



 


í,,;.." 


f,' 


\' 
" 


, a 


... 
I 


'Actividades Comerciales lectrónlcaS', S.A. 
Tatragon., 110 . Tel. 325 10 SS'w08015 Barcelona¡'Téle 931331>..C EE E 


A DISPONIBLE E' . 
. ,.. I , 
 
,.. y EN TODAS LAS 
TIENDAS ESPECIALIZADAS 



1 
I 
 
N J . J , , . 
. 
, I , 


Algunas personas compran un ordenador para que les 
solucione, en la medida de lo posible, una serie de problemas 
o tareas complicadas y tediosas de resolver, normalmente 
relacionadas con la gestión en el hogar o en el trabajo. 
Otros, por el contrario, piensan que han adquirido un 
interesante juguete además de una herramienta de trabajo, 
y que merece la pena dedicar algo de su precioso tiempo a 
averiguar cómo funciona un ordenador, un Amstrad. 


f
 

, stas personas están perdidos, 
porque cuondo se q lieren dar cuento el 
virus de lo informáti.a ha penetrado en su 
cuerpo y acaban co ,virtiéndose en 
programadores así, amo quien no quiere 
la osa 
El primer paso del recién nacido 
programador suele ser adentrarse en el 
uso de un lenguaje para poder expresar 
sus ideas, normalmente el Basic, aunque no 
sea más que por ser el idioma que el 
Amstrad lleva incorporado. 
El Amstrad Basic es muy potente: posee 
un set de comandos muy completo y útil, 
en casi todos los campos, como ficheros, 
sonido y gráficos. 
No obstante, tarde o temprano el 
programador ávido alcanzo los límites del 
Basic; simplemente hay cosas que no se 
pueden hacer, o porque son demasido 
lentos o porque el Basic no ha sido 
diseñado paro soportarlas. 
Justo en ese punto asoman a la mente las 
palabras lenguaje máquina. Uno sabe de 
oídas, más o menos, que el código de 
máquina no va o causar problemas de 
velocidad, ni de ocupación de memoria y 
que permite tomar control absoluto del 
ordenador, sometiéndolo completamente a 
nuestros designios. 


Código. máquina 


Pero el código de máquina es un hueso 
duro de pelar. Cuesto mucho tiempo y 
esfuerzo aprender a manejarse con él, 
mucho más que con cualquier lenguaje de 
alto nivel. Aquí no hay firmware que 
valga, ni mensajes de error. Un fallo, uno 
solo y el ordenador se cuelga sin 
misericordia. 


28 MICROH088Y AMSTRAD 


Naturalmente, los comienzos en este 
terreno se asemejan a una tragedia griega 
y uno, sabiendo lo que es lo 
desesperación, aprende a valorar las 
herramientas de programación, cualquier 
cosa que le facilite un poco el tema. 
Aquí aparecen los programas 
ensambladores, por la puerta grande. Un 
ensamblador no es más que un programa 
que pretende salvar el abismo que existe 
entre los números binarios, el puro código 
máquina y nuestra cabecita, mucho más 
acostumbrada a regirse en términos de 
palabras y símbolos. 
Para ello, el ensamblador usa los llamados 
mnemónicos, que no son más que grupos 
de letras que corresponden cada uno a 
una instrucción del ZBO y nos recuerdan, 
como su nombre indica, la operación que 
se supone que realizan y a qué parte del 
microprocesador le afecto. 
Esto nos hace lo vida bastante más fácil, 
porque yo escribo texto y el programa 
ensamblador se encargo de traducirlo o 
código binario puro, lo lengua nativo del 
ZBO y lo única que entiende. 


GENA3 


Ensambladores hoy muchos (no en nuestro 
mercado, por desgracia), unos más 
potentes, otros más modestos. Pero, existen 
muy pocos que reúnen en un solo conjunto 
potencio y sencillez de uso. 
Dentro de estos escasos representantes del 
buen software paro el programador, 
creemos que los productos de Hisoft en 
general y su ensamblador en particular, 
merecen un puesto de honor. 
El GENA3, ensamblador de Hisoft, es el 
mejor que hemos encontrado sin la menor 
dudo; ya lo conocíamos porque existe uno 
implementación poro el Spectrum, pero lo 
del Amstrad suma o las cualidades de la 


,...... 


e 
o 
e 

 
-' L 
u.: 


r 
! 


( \ 


------- 




 


----. 



anterior, toda la potencia del disco 
integrado, lo cual no es para despreciarlo, 
ni mucho menos. 
Vamos a ver con detalle qué tipo de 
ensamblador es GENA3 y cómo funciona. 
GENA3 consta básicamente de dos partes: 
un editor de pantalla, soberbiamente 
diseñado, que nos permite introducir el 
texto en mnemónicos siguiendo unas 
sencillas reglas de sintaxis (luego lo 
estudiaremosr y el propio programa 
ensamblador que traducirá nuestro texto a 
números binarios. Como supondrán los 
lectores que hayan seguido de cerca 
nuestro curso de código máquina, el 
ensamblador maneja tres tipos de 
objetos: mnemónicos, etiquetas y 
expresiones, algunas de bastante 
complejidad, que involucran cálculos 
aritméticos y lógicos. 


¡ 
1 
I 


Descripción 
de GENA3 


Además, el ensamblador posee una serie 
de directivos del ensamblador, que 
así se llaman y son órdenes especiales que 
producen efectos concretos cuando 
GENA3 se los encuentra en un fichero de 
texto creado con el editor de pantalla. 
Son los siguientes: 


-- 


Directivos 
del Ensamblador 


] 


Ciertas instrucciones pseudonemónicas son 
reconocidas por GENA3. Estos directivos 
no tienen efecto en el procesador zao al 
ejecutar el programa, es decir, no se 
traducen en código objeto, simplemente 
dirigen al ensamblador mientras ensambla. 
Las acciones que estas órdenes mandon 
efectuar al ensamblador cambian de 
alguna manera el código objeto generado 
por éste. Los psudonemónicos se 
ensamblan exactamente igual que las 
instrucciones ejecutables¡ pueden ser 
precedidas por una etiqueta necesaria 
para EQU y seguidas por un comentario. 
Los directivos existentes son: 
ORG expresión 
Coloca el puntero en el valor dado por 

(expresión. Si no eliges la opción 2 ni la 
16 y ORG provocaría que el programa 
invadiera la zona asignada a GENA3, al 
archivo de texto o a la tabla de símbolos, 
el mensaje Bad Org! aparecerá en 
pantalla y el ensamblado parará. 
EQU expresión 
Debe ir precedido par una etiqueta. 
Otorga a la etiqueta el volar de 


I 
L 


ódigo 
máquina 


«expresión». Esta expresión no puede 
contener ningún símbolo que no haya sido 
definido previamente (o si no, obtendremos 
el * ERROR * 13). 
DEFB expresión, expresión.., 
Cada expresión no puede tener más de a 
bits; el byte correspondiente al valor del 
puntero recibe el valor de la expresión y el 
puntero aumenta su valor en: 
1. Se repite este proceso con cada 
expresión. 
DEFW expresión, expresión: coloca 
el valor «expresión» (de 2 by te s) en la 
dirección del puntero y avanza el puntero 
en 2. Se coloca primero el byte menos 
significativo seguido del más significativo. 
El proceso se repite en cada expresión. 
DEF5 expresión 
Aumenta el valor del puntero en el número 
de bytes que «expresión» indique. Esto 
equivale a reservar un bloque de memoria 
de longitud igual al valor numérico de la 
expresión. A todas las posiciones de 
memoria de este bloque se les dará el 
valor cero. 
DEFM «5» 
Coloca el valor ASCII de la cadena «5» 
en n bytes, donde n es la longitud de dicha 
cadena y puede encontrarse, en teoría, en 
el intervalo entre 1 y 255 inclusive, aunque 
en la práctica, lo que limita la longitud de 
la cadena es la longitud de línea que el 
editor te permitirá introducir. El primer 
caracter de la zona de operandos (en 
nuestro caso las comillas) se toma como el 
delimitador de la cadena y ésta se define 
como los caracteres existentes entre dos 
delimitadores; el final de línea también 
actúa como delimitador. 
ENT expresión 
El valor de la expresión corresponde a la 
dirección desde donde el código objeto 
seró ejecutado cuando utilicemos el 
comando «R». 
No puede faltar esta dirección de 
ejecución en el programa. 


Pseudonemónicos 
condicionales 


Este tipo de pseudonemónicos permiten al 
programador quitar y poner determinadas 
zonas de código fuente para ser o no 
ensambladas. 


MICKOH088Y AMSTRAD 29 



IF expresión 
Primero se evalúa la expresión; si ésta es 
cero, no se ensamblarán las líneas 
siguientes hasta que aparezca «ELSE» o 
«END» en el programa. Si la expresión no 
vale cero, el en
amblado continúa 
normalmente. 
ELSE 
Cuando el ensamblador encuentra un 
ELSE, hace lo contrario de lo que venía 
haciendo. Si no estaba ensamblando, 
comenzará a hacerla y viceversa. 
END 
Fin del ensamblado. 


Formato de 
las líneas 


Cada línea de texto que GENA3 compila 
a código máquina debe respetar una 
sintaxis muy sencilla, al objeto de que el 
programa sepa a qué atenerse. Las líneas 
pueden tener el siguiente formato: 


ETIQUETA: 
PRINCI: 
OPERANDOS 
HL, etique 


NEMONICO 
LD 
COMENTARIOS 
; carga hl con 
etique 


los espacios y tabulaciones (insertadas por 
el editor) generalmente se ignoran. 
La línea se procesa de la siguiente formar: 
Se comprueba si el primer carácter de la 
línea es: ";", ",", "*" O [ENTER]. 
. Se es éste ",", toda la línea se trata 
como un comentario, y por tanto 
ignorada. 
Si es éste" * ", el ordenador sabe que 
el/los siguiente/s caracter/es es un comando 
del ensamblador. Trata todos los 
caracteres después del comando como 
comentario, 
Si éste es un [ENTER] simplemente ignora 
la línea. 
Si el primer caracter de la línea se trata de 
cualquier otro aparte de los listados, 
anteriormente, entonces el ordenador 
busca un espacio, una tabulación o dos 
puntos ":", En este último caso, todos los 
caracteres precedentes, formarán parte de 
la etiqueta, de cualquier otro modo, el 
primer carácter que no sea un espacio o 
un tabulador se tomará como principio del 
mnemónico. 
Observa que si un mnemónico está a 
continuación de una etiqueta, sólo los 6 
primeros caracteres de la etiqueta 
aparecerán en la etiqueta. Sin embargo, si 
una etiqueta está sola en una línea, en el 


30 MlaOH088Y AMSTRAD 


listado aparecerán todos sus caracteres 
aunque sólo los 6 primeros entrarán en la 
tabla de símbolos. 
Después de procesar una etiqueta válida, o 
si no la hay, el ensamblador busca el 
siguiente caracter que no sea espacio o 
. tabulador, y ve si éste se trata o bien el 
final de la línea o el comienzo de un 
mnemónico de ISO (ver apéndice 2) de 
hasta 4 caracteres de longitud y terminado 
por un espacio/tabulador o [ENTER]. Si el 
nemónico es válido y requiere uno o más 
, operandos, el ordenador se salta los 
espacios/tabs y procesa dichos operandos. 


Comando de GENA3 


De lo que acabamos de ver es importante 
matizar en la existencia de comandos 
propios del ensamblador que van 
precedidos por el símbolo "''', y que 
alteran el output de GENA 3 o incluso el 
propio código de máquina generado, A 
continuación aparecen listados, indicando 
su propósito y la función que cumplen: 


Comandos del 
ensamblador 


Estos comandos, al igual que las órdenes 
al ensamblador, no afectan al procesador 
01 ejecutor el programa pues no se 
convierten en código objeto. Sin embargo, 
aunque no producen ningún cambio en el 
código objeto generado por el 
ensamblador, modifican el formato del 
listado. 
Un comando es una línea de texto fuente 
que comienza con su asterisco "*". Lo 
letra que sigue determino el tipo de 
comando debe ser uno letra mayúscula. El 
resto de lo línea puede ser cualquier coso, 
excepto en los comandos, "L", "T" y 
"D" que deben ir seguidos de un signo 
" +" o un 
iono "-", 
Comandos: * E imprime tres líneas en 
blanco en la pantalla. Es útil poro separar 
portes. En caso de utilizar lo impresora, 
ésta iniciará uno nueva página al 
encontrar este comando. 
* Hs imprime lo cadena S como 
encabezamiento después de codo * E. * Hs 
incluye * E, así que este último comando 
no será necesario en caso de incluir * Hs. 
* S detiene el listado del programa. Este 
continuará pulsando cualquier tecla. Es útil 
paro leer direcciones de memoria en medio 
del listado. 
* L- a partir de esto línea no se lista el 
programo. 


* L + o partir de esta línea, el listado 
aparece en pantalla. 
* D + el valor del puntero se encontrará 
en base 10 01 principio de coda línea, en 
lugar de su formato normal o hexadecimal. 
* D- efecto contrario al comando 
anterior. El puntero vuelve a aparecer en 
hexadecimal. 
* F nombre del archivo 
Este poderoso comando permite ensamblar 
texto del cassette o del disco, Dicho texto 
se lee del cassette y se introduce en un 
buffer, un bloque cado vez y después se 
ensambla desde el buffer. Esto permite 
crear grandes cantidades de código objeto 
puesto que éste no ocupo memoria real. 
El nombre del archivo (hasta 8 caracteres) 
de texto que quieres incluir en ese 
momento del ensamblado debe ser 
especificado después de " + F" y debe ir 
precedido por un espacio. Si no dices el 
nombre del archivo, se ensamblará el 
primero que encuentre el ordenador. 
Cualquier archivo que quieras incluir de 
esta manera deberá ser grabado en un 
cassette usando el comando "P" del 
editor. Cuando el ensamblador detecte un 
comando "F" se imprimirá el mensaje 
"Press PLAY then any key" antes 
del primero y segundo poso pues el 
archivo deberá ser revisado en cado piso, 
El cassette buscará el archivo con el 
nombre especificado, o en su defecto, el 
primero de todos. Cuando encuentre uno 
que no coincida con el que queremos, 
imprimirá "Found nombre" y si se 
troto del que queremos incluir: "Loading 
nombre", 
*T + nombre del fichero 
Este comando vuelca código objeto al 
cassette o al disco (con el nombre dado) 
durante el ensamblado, Este volcado 
puede ser interrumpido por el comando 
'T-, por ORG o por el final del 
ensamblado. El código así grabado puede 
ser recargado desde Basic o con MONA3. 
* T - cierra el archivo de cassette de 
código objeto. Si el ensamblado ha sido 
interrumpido por un pseudonemónico 
condicional, este comando dejo sin efecto 
cualquier otro. 
Una de las posibilidades más poderosas de 
GENA3 es la forma en lo que se ensamblo 
el código fuente (texto) paro producir 
código objeto (binario), es decir, el 
comando «A». GENA3 posee uno serie de 
opciones de ensamblado, y coda una 
afecto de manera distinta 01 código 
máquina que aparece como resultado de 
ellos. 
Hasta aquí esto no es nodo del otro 
mundo, pero lo interesante es que estas 
opciones de ensamblaje pueden 
combinarse por el simple método de 
sumarias, esto es, si cuando el programo 



pregunta «Options?» yo le digo 5, 
GENA3 ejecutará los opciones 4 y 1 
simultáneamente (4 + 7 =5). Los opciones y 
lo que hacen pueden verse en lo tabla 
número l. 


El editor de GENA3 


j 


El editor de pantalla es lo herramienta 
auxiliar del programo ensamblador, y nos 
permite crear un programo en código 
fuente y manipular el texto que lo integro 
de formas muy diversos y potentes. 
En mi opinión, el editor está 
magníficamente pensado (la idea de 
orientado a números de línea, como 
Basic) , yo veces da un poco de pena que 
el propio editor del Amstrad no 
incorpore los mismas características, sobre 
todo en lo que se refiere o búsqueda y 
sustitución de determinada cadena de 
caracteres por otra . Yo diría que sólo tiene 
un fallo, pero grave: no existe la 
posibilidad de manipular y cambiar de sitio 
el texto por bloques. Uno lástima. 
No obstante, una descripción detallada de 
los comandos del Editor también vale más 
que 1.000 palabras. Por tanto, ahí va. 
Comandos del Editor de pantalla de 
GENA3: 
El editor de GENA3 es un sencillo 
instrumento pero eficiente a la hora de 
editor programas rápidamente. 
Para reducir el tamaño del archivo de 
texto, el editor comprime algunos espacios 
de la siguiente manera. Cuando tú 
introduces una línea, ésta se introduce 
caracter a caracter en un buffer interno. 
Cuando pulsas [ENTER] se transfiere de 
buffer al archivo y es durante esto 
transferencia cuando se comprimen los 
espacIos. 
Se busca el primer caracter de lo línea¡ si 
es un espacio, se introduce un tabulador 
en el archivo de texto y los demás espacios 
se saltan. Si no es un espacio, todos los 
caracteres hasta el primer espacio se 
introducen en el archivo, y después el 
primer espacio ocurre lo mismo que si el 
siguiente caracter fuese el prin:ero de ,lo 
línea. Esto se repite otra vez, introduciendo 
tabuladores al principio de la línea, entre 


81.71 


t» II<:.?FU 
¡I;!uua 
I,IU I 
 


) i 1
:f 

I;J
: 
:; 
. .... 


I 


. 
j 1 


I · 
11' 
"' 
) ,
'i
 
. 
.;.:, 
,..:. 


>- 


etiqueto y mnemónico y entre mnemónico y 
operandos, 
Si aparece [ENTER], lo transfe
encia 
finaliza y el control vuelve 01 editor. 
Los espacios no se comprimen en los 
comentarios, ni deberían formar porte de 
uno etiqueta, mnemónico u operando. 
El editor genera: 
el simbolo " < " 
En respuesto a este símbolo (que indica 
que el ordenador se encuentr
 prepar?do 
para recibir órdenes), puedes In,tro?um 
uno línea de comandos con el siguiente 
formato: 


C N1, N2, Sl, S2 [ENTER] 
C es el comando o ejecutor 
N1 número entre 1 y 32767 ambos 
inclusive 
N2 número entre 1 y 32767 ambos 
inclusive 
Sl cadena de caracteres de hasta 20 
caracteres de longitud 
S2 cadena de caracteres de hasta 20 
caracteres de longitud 
Las comas se usan para separar los 
diversos argumentos (aunque esto puede 
cambiarse -ver comando "S") y los 
espacios son ignorados, excepto en las 
cadenas. Ninguno de los anteriores 
arguementos son obligatorios, aunque, por 
ejemplo, el comando "D" no funci.onará 
si no se especifican N 1 y N2. El editor 
recuerda los últimos números y cadenas 
que introduiiste y los utiliza si no ..' 
especificas alguno de ellos. El valor inicial 
de N1 y N2 es lO, y de Sl y S2 lo cadena 
vacío. Si introduces una línea no válida 
como: F-1, 100, HOLA, lo línea será 
ignorada y se imprimirá el mensaje 
"Pardon?" y deberás introducirla 
correctamente: F2, 100, HOLA. Este 
mensaie se imprimirá también si lo longitud 
de S2 es mayor que 20. Si Sl tiene más de 
20 caracteres, el sobrante será ignorado. 
Los comandos pueden introducirse en 
mayúsculos o minúsculos. 
[CTRL]X borra hasta el principio de la 
línea. 
[TAB] desplaza el cursor hasta lo posición 
de la siguiente tabulación las siguientes 
sub-secciones detallan los comandos 
existentes en el editor, Nótese que cuando 
un argumento está encerrado entre los 
símbolos" < + ", es necesario para que 
el comando tenga efecto. 


Comandos del editor 


El texto puede introducirse, o bien . 
escribiendo el número de línea, un espacIo 
y después el texto o usando el comando 
"1". Si introduces un número de línea 
seguido de [ENTER], ésto será borrada 


del programo si existía previamente, 
[CTRL]C vuelve 01 editor y ya conocemos 
los funciones de [CTRL]X y [TAB]. Lo 
tecla [DEL] borra un caracter (no más allá 
del principio de lo línea). Si el buffer en el 
que se introduce la línea se lleno, el 
ordenador te impedirá seguir escribiendo, 
debiendo utilizar [DEL] o [CTRL]X poro 
hacer hueco. Si, durante lo sección de 
texto, aparece el mensaje "Bad Memory!", 
esto querrá decir que nos estamos 
acercando al final de lo RAM, no se puede 
introducir más texto y el programa en 
cuestión (o 01 menos parte) deberá ser 
grabado paro posterior recuperación, 
Comando: I n, m 
Modo de inserción automático. Los 
números de línea aparecen 
automática mente empezando por el 
número n y con incrementos de m. 
Paro salir de este modo pulsa [CTRL]C. 
Se introduces una línea con un número que 
existía previamente, la anterior línea será 
remunerada una unidad más y lo nueva 
línea insertada antes, después de pulsar 
[ENTER]. Si el incremento automático de 
n. o de línea produce una línea con un 
número mayor de 32767, el ordenador 
saldrá de este modo automáticamente. 


Listado de textos 


Comando: L, n, m 
Lista el programa desde la línea n hasta la 
m. Si no se especifican, n tomará el valor 
de 1, y m el valor 32767, con lo cual se 
listará todo el programo. Lo tabulación es 
automático y el número de líneas que 
caben en la pantalla es 24. Cuando haya 
listado 24, el editor hará una pausa. Pulsa 
[CTRL]C para volver al editor o cualquier 
otro tecla paro continuar. 


Edición de textos 


Comando N < n,m + 
Renumera el programo, darTdo el número 
n a la primera línea n + m a la segunda. 
n + m + m o lo tercero, y así sucesivamente. 
Si 01 renumerar, sobrepasamos con algún 
número de línea el valor 32767, se 
conservará la numeración antiguo. 
Comando, F n, m, f, s 
busco lo cadena f en todas los líneas desde 
n hasta m. Si f aparece en alguna de ellos, 
ésto será impreso y el ordenador se 
introduce en el modo Editor 
automática mente (ver siguiente comando). 
Puedes, entonces, usar los comandos del 
Editor poro buscar otro vez la cadena f en 
el intervalo de instrucciones dado, 


MICROH088Y AMSTRAD 31 



sustituirla por la cadena S. (n, m, f, s 
pueden haber sido dadas anteriormente, y 
por tanto no ser necesario escribirlas de 
nuevo para hacer la misma búsqueda 
posteriormente. Bastará para ello 
simplemente con introducir "F". 
Comando E n 
Edita la línea de número n. Si no existe, no 
ocurrirá nada, pero si existe, la línea será 
adoptada en un buffer e impresa en 
pantalla. 
El número de línea se imprimirá 
inmediatamente debajo. Todos los cambios 
a partir de aquí tendrán lugar en el buffer, 
no en el programa mismo, siendo posible 
recuperar la línea original en cualquier 
momento. En este modo, un puntero se 
coloca al principio en el primer caracter de 
la línea y varios subcomandos permiten 
arreglar los errores, Estos son: 
" +" (espacio) incremento el puntero en 
uno. No seguirá retrocediendo más allá 
del principio de la línea. 
[DEL] coloca el puntero en el caracter 
anterior. No seguirá retrocediendo más 
allá del principio de la línea. 
[ENTER] finaliza la edición de la línea 
guardando los cambios hechos. 
Q . sale del modo de edición sin tener en 
cuenta los cambios hechos. 
R . ignora los cambios hechos y recarga el 
buffer con la línea como estaba 
originalmente. 
L . lista el resto de la línea desde la 
posición del puntero. Permaneces en el 
modo de edición con el puntero al 
principio de la línea. 
K . borra el caracter en el que se 
encuentra el puntero. 
Z . borra todos los caracteres desde la 
posición del puntero hasta el final de la 
línea. 
F . explicado anteriormente. 
S . sustituye la cadena f encontrada por 
'T' por la cadena s y continúa la 
búsqueda de f más adelante. 
I . inserta caracteres en la posición del 
cursor. Continuarás en este submodo hasta 
que pulses [ENTER], tras lo cual volverás 
al modo editor con el puntero colocado en 
el último caracter que has insertado, [DEL] 
borra el caracter a la izquierda del 
puntero mientras estemos en el submodo I 
(en este submodo el cursor será un 
asterisco "*"). 
X . avanza el puntero hasta el final de la 
línea e introduce el modo 1. 
C . cambia el 
aracter en el que se 
encuentre el puntero por el que tu escribas 
e incremento el puntero en uno. 
Permanecerás en este modo hasta pulsar 
[ENTER], tras lo cual volverás al editor 
colocado en el último caracter que 
cambiaste. [DEL] hace retroceder el 
puntero una posición y [TAB] no tiene 
efecto. El cursor en este submodo es el 
signo" + ". 


32 MICKOHOBBY AMSTRAD 


Comandos del 
cassette o disco 


Los programas pueden ser grabados y 
cargados usando los comandos "P", 
"v" y "G" mientras que el cógigo 
objeto será grabado mediante el comando 
"O". 
Comando: Pn, m, 5 
El intervalo de líneas entre n y m se graba 
bajo el nombre s. Recuerda que estos 
argumentos pueden tener valores 
asignados previamente. Asegúrate de que 
el cassette está en modo RECORD antes de 
introducir este comando. 
Comando: Q,,5 
Es igual que el comando P pero el texto se 
graba en ASCII sin números de línea y con 
CRLF (retorno de carro/h'n de línea) al 
final de cada línea, 
Comando: G,,5 
El cassette busca un archivo con el nombre 
s, si lo encuentra, será cargado detrás del 
programa que esté en memoria, Si s es la 
cadena vacía, se cargará el primer 
programa que aparezca. 
Después de introducir el comando "G", 
pulsa PLAY en el cassette. Si encuentra el 
programa deseado el mensaje "Loading 
nombre" aparecerá, si no, el mensaje será 
"found nombre" y la búsqueda continúa. 
Si hay algún otro programa en memoria, 
el programa cargado con "G", se 
añadirá al final del anterior y ambos serán 
renumerados desde la línea 1, con 
intervalo de 1 entre líneas y línea. 
Comando: V,,5 
verifica el programa s del cassette con el 
existente en la memoria. Si la verificación 
es correcta, el mensaje que aparece es 
"Verified" si no obtendremos el 
mensaje "Failed!" 
Comando: 0,,5 
graba el código objeto generado en el 
último ensamblado bajo el nombre s. Para 
cargar este código objeto utiliza MONA3 
o BASIC. 
Comando: Tn 
Cambia la velocidad de grabación en 
cassette. "T" seguido de [ENTER] 
selecciona la velocidad lenta, mientras que 
"T" seguido de un número mayor que 
cero y [ENTER] selecciona el modo 
rápido. 


Ensamblado y 
eiecución 
desde el editor 


Comando: A 
Ensambla el programa fuente desde la 
primera línea. 
Comando: R 
Si el código fuente ha sido ensamblado sin 


i 
, 

 


r 


. 
1 J 
,¡ 


!,J. i' 
" 
j' 


.. 


errores, y has dado la dirección de 
ejecución con ENT, el comando "R" 
ejecutará el código objeto. Este programa 
puede incluir una instrucción RET ( C9) 
. para volver al editor puesto que el stock se 
encuentra en la misma situación al finalizar 
la ejecución que al principio. ENT no 
tendrá ningún efecto si has escogido la 
opción 16 al ensamblar. 


Otros comandos 


Comando: H 
Imprime una pantalla de ayuda donde 
aparecen los comandos de GENA3 en 
mayúsculas. 
Comando: B 
Devuelve el control al sistema operativo. 
Para reentrar en el ensamblador, puede 
hacer una llamada a la dirección original 
de carga + 2, en cuyo caso borrarás el 
programa fuente de la memoria o bien 
llamar a la dirección original +4, 
conservándolos. 
Comandos: S"d 
Te permite cambiar el delimitador que se 
toma para separar argumentos en una 
línea, Al entrar en el editor, se toma la 
coma"," como delimitador, pero tos 
utilizar este comando, el papel de 
delimitador pasará al primer caracter de la 
cadena d, y hasta que no se defina otra 
vez, dicho caracter será el delimitador. No 
se puede utilizar el espacio para este fin. 
Comando: C 
Imprime el valor del delimitador, N1, N2, 
S 1 y S2. Es útil para comprobarlos en caso 
de que pienses omitir alguno de ellos en 
algún comando'- 
Comando: Zn, m 
lista en impresora el trozo de programa 
entre las líneas n y m. Si ambos valores se 
omiten, todo el programa fuente será 
listado. En caso de que la impresora no 
esté conectada, se imprimirá el mensaje 
"No Printer!" y no ocurrirá nada. 
Puede parar el listado pulsando tecla. Si 
pulsas [CTRL]C. Volverás al editor, 
mientras que pulsando cualquier otra cosa, 
el listado continuará. 
Comando: Yn 
Pone el número de líneas por página al 
valor n. Esto te permite ajustar la salida 



':'J ." 
 ir, . 
f IJ I 
" 
,::0 lO! 1" 
n 1" IlltI 
, ! '11 . fIlfl 
'. I 
:::. ! 
. '. 
 allil 
'. 
",. ..'" ' 


por impresora a las diferentes longitudes 
de papel de impresora. 
Comando: X 
Imprime la dirección de comienzo y la final 
del código fuente en decimal. 
Es útil en caso de que quieras grabar el 
texto desde Basic o para ver cuánta 
memoria tienes libre tras dicho programa 
"X" se usa también en conjunción con el 
desensamblador que MONA3 para 
desensamblar un programa para uso de 
GENA3. Para unir un texto generado por 
MONA3 al ensamblador, debemos mover 
primero dicho texto (o programa en código 
fuente) al TEXTST ART de GENA3 o generar 
el texto directamente en esa dirección. 
Ahora, la primera dirección impresa con el 
comando "X" corresponde al principio 
del texto de GENA3. Esta es la dirección 
en la que el código fuente desensamblado 
por MONA3 debe empezar, así que 
habrás de ingeniártelas para desensamblar 
el código en esa posición y anotar la 
dirección del final del texto que te da el 
desensamblador, valor que deberás dar al 
TEXTEND de GENA3. Este TEXTEND está 
almacenado en la dirección "Principio 
de GENA3" + 7 así que si cargamos 
GENA3 en 1000, TEXTEN D estaría 
localizado en 1007 . Toma el valor del final 
del texto dado en hexadecimal por 
MONA3 y "poke" el byte menos 
significativo en 1 007 y el más significativo 


':J . 1 
..( 
I OPCION 1 
\ OPCION 2 
OPCION 4 
OPCION 8 
OPCION 16 


, 


t1
t.1'. 


en 1008 y llama a GENA3 vía 
"dirección original" + 4. El programa 
desensamblado puede ser editado y 
ensamblado por GENA3 ahora. 
Comando: U 
Muestra el número de línea de la última 
línea del fichero de texto, es útil para 
encontrar rápidamente dónde termina el 
fichero de texto y añadir más texto. 
Comando: W 
Cambia el display de 40 a 80 caracteres o 
al revés, 
Comando: [CTRL/J] 
Te introduce en el programa para , 
descubrir errores MONA3 si éste ha sido 
utilizado previamente, si no, no tiene 
ningún efecto. 
Respecto al GENA3, esto es todo. Pero el 
ensamblador no estaría completo si no 
viniera acompañado de otro paquete- 
herramienta que cumple la misión 
contraria: un desensamblador-monitor 
también muy potente que nos permite 
depurar un programa lenguaje máquina 
hasta límites verdaderamente 
sorprendentes. Lo analizaremos la próxima 
semana. 
Cuando utilices el comando "A" para 
ensamblar se te pedirá el tamaño de la 
tabla (table size?) en decimal. Esto 
representa el espacio que se le da a la 
tabla de símbolos durante el ensamblado. 
Si no pones nada (si pulsas [ENTER]), 
entonces GENA3 escogerá una longitud 
para la tabla que considere suficiente. 
Normalmente, este espacio será bastante. 
Cuando escojas la opción de incluir 
archivos, puede ser necesario que . 
especifiques el tamaño de la tabla, pues el 
ensamblador no puede predecir la longitud 
del fichero que vas a añadir. 
Después de "Table size?" se te pedirá 
la opción que deseas utilizar cuando 
aparezca el mensaje "Options:" 
Veamos cada una de ellas: 


· · :'J ENS J MBtA · 


Produce un listado de la tabla de símbolos después del 
segundo paso del ensamblado. 
No produce código objeto. Es decir, no genera Código 
Máquina (sirve para descubrir errores en el programa sin 
ensamblar realmente cuando no tenemos espacio en 
memoria para el programa en Código Móquina). 
No lista el programa ensamblado. 
Lista el programa ensamblado en impresora. 
Coloca el código objeto después de la tabla. 
El puntero se coloca en la dirección señalada por ORG. 
de manera que el Código Máquina puede ser puesto en 
una zona de memoria pero ejecutado en cualquier otro 
sitio. 
No revisa la zona de memoria en la que el código objeto 
va a ser colocado. Es útil poro dar mayor rapidez al 
ensamblado. 


OPCION 32 


Tabla l. 


GANA 
100.000 PESETAS 
CON MICROHOBBY 


AMSTRAD 


SEMANAL 


Porque pretendemos que AMSTRAD SE. 
MANAL sea también vuestra revista, hemos 
abierto una sección en la que se publicarán los 
mejores programas originales recibidos en nues- 
tra redacción, Vosotros seréis los encargados de 
realizar estos páginas, en las que podréis apor- 
tar ideas y programas interesantes para otros 
lectores, 
Las condiciones son sencillas: 
- Los programas se enviarán a AMSTRAD 
SEMANAL en uno cinta de cassette, sin protec- 
ción en el software, de formo que sea posible 
obtener un listado de los mismos, 
- Cada programo debe ir acompañado de 
un texto explicativo en el cual se incluyan: 
- Descripción general del programa, 
- Tabla de subrutinas y variables ut/1izadas, 
explicando claramente la función de cada 
una de ellas, 
- Instrucciones de maneja, 
_ Todos estos datos deberán ir escritos a má- 
quina o con letra clara para mayor comprensión 
del programa, 
_ En una sola cinto puede introducirse más 
de un' programa. 
_ Uno vez publicado, AMSTRAD SEMA-' 
NAL abonaró al autor del programa de 
15.000 a 100.000 pesetas, en concepto de 
derechos de autor. 
- Los autores de los programas selecciona- 
dos paro,su publicación, recibirán una comuni- 
cación' escrito de ello en un plazo no superior 
a dos meses a partir de lo fecho en que su pro- 
grama llegue a nuestra redacción. 
_ AMSTRAD SEMANAL se reserva el de. 
recho de publicación o no del programa. 
- Todos los programas recibidos quedarán 
en poder de AMSTRAD SEMANAL. 
- Los programas sospechosos de plagio se- 
rán eliminados inmediatamente. 


¡ENVIANOS TU 
PROGRAMA! 


a HOBBY PRESS, S. A. La Granja, n. o 8. 
Poi. Ind. Alcobendas (Madrid) 


MICKOHOBBY AMSTRAD 33 




in duda 
alg un I 
A través de esta sección se pre- 
tende resolver, en la medida de lo 
posible, todas las posibles dudas 
que «atormenten» a todas las 
personas interesadas en el mundo 
del AMSTRAD, sean o no poseedo- 
res de uno y, si lo son, se encuen- 
tren en cualquier nivel de destreza 
en su manejo. 
Semanalmente, aparecen en estas 
páginas las consultas de la mayor 
cantidad de usuarios posible; ello re- 
dundará en un mejor servicio y en 
un contacto más estrecho entre to- 
dos nosotros a través de la revista. 
SIN DUDA ALGUNA está 
abierta a todos. 


Ante todo he de felicitaros por la 
acertada decisión de crear esta vues- 
tra/nuestra revista MICROHOBBY 
AMSTRAD. Es una publicación exce- 
lente y muy dinámica. Continuad así, 
por favor. 
Tengo un serio problema. Necesi- 
to disponer de la letra ñ, en minús- 
cula y mayúscula, para mi CPC-664. 
Al comprar el ordenador me infor- 
maron que la tecla marcada con el 
símbolo «" », situada justo encima de 
la de control, es la que está destina- 
da para crear dicha letra. Esto es lo 
que sucede cuando se utiliza el pro- 
grama «Animal, Vegetal y Mineral» 
que regalan al comprar el ordena- 
dor. ¿Cómo podría yo programar di- 
cha tecla para que al pusarla obten- 
ga en pantalla la ñ? 
Mil gracias por anticipado. 
Manuel Delgado (Vitoria) 
En el número 7 de AMSTRAD SE- 
MANAL publicábamos una simpáti- 
ca carta de uno de nuestros lectores 
en la cual resolvía tu problema, dan- 
do un corto programa Basic que con- 
vierte una de las teclas del ordena- 
dor en la letra que necesitas, además 
de explicar las razones por las que 
lo hacía. 


Soy el orgulloso propietario de un 
Amstrad CPC464 desde hace un par 
de semanas y aprovechando la 
agradable sorpresa de la aparición 
de su revista quiero hacerles unas 
preguntas: 
l. En la guía del usuario que 
acompaña al ordenador se puede 
leer que no se debe experimentar 
con el POKE. ¿Cómo podría un inex- 
perto como yo saber las diferentes 
funciones de las distintas posiciones 
de memoria? Me pregunto lo mismo 
sobre CALL. 
2. ¿Cuántos gráficos SPRITES pue- 
den usarse en el 464 y cómo se rea- 
lizan? 
3. En el manual dice que existen 
32 teclas programables comprendi- 
das entre los caracteres ASCII 128 y 
159, pero yo sólo he logrado pro- 
gramar del 128 al 139, es decir, el 
teclado numérico reparado. ¿Cuáles 
son los otros? 
Vicente Matellán I León. 
7. La razón de que el manual ad- 
vierta contra el uso del comando PO- 
KE se debe a que el Amstrad man- 
tiene partes críticas de su sistema 
operativo en memoria de lectura 
-escritura (RAM), en unas zonas a 
las que tú puedes acceder, Si cam- 
bias inadvertidamente alguno de es- 
tos números con POKE, el ordenador 
no funcionará correctamente y se 
bloqueará. 
Para saber exactamente qué zonas 
de memoria no debes manipular, o 
al menos qué hay allí, debes leer con 
atención el libro del Firmware de 
Amstrad. El mapa de memoria que 
viene en el manual también te ayu- 
dará algo al principio. No hay otra 
manera. 
2. El Amstrad CPC 464 no posee 
gráficos Sprites. Lo más que puedes 
hacer es simular el efecto Sprite de- 
finiendo tu propio iuego de caracte- 
res y usando las sentencias que con- 
trolan las interrupciones, AFTER y 
EVERY. 
3. Las otras teclas a las que alu- 
des pueden programarse mediante 
la sentencia KEY OEF, seguida de 
una serie de parámetros. Por razo- 
nes de espacio nos vemos obligados 
a omitir una descripción completa. 


AVISO A NUESTROS LEaORES 
Comunicamos a todos nuestros lectores que a partir del 
día 1 de enero de 1986 nuestro Departamento de Clientes 
será traslodado 01 Poligono Industrial de Alcobendas. (j Lo 
Granjo, 39, Alcobendas (Madrid). Paro cuolquier consulta 
que deseen reolizor pueden llamar o los feléfonos 
6542898 y 6542867 de 9,00 014,30 h, y de 16,00 
018.30 h. 



. 


iOperación cambio! 


Va/oramos: 
Tu AMSTRAD 464 en 50,000 ptas, 
Un Spectrum + en 30,000 ptas, 
Amstrad CPC en 70,000 ptas, 
En la compra del AMSTRAD CPC 6128 
o PCW 8256, 
Consulte para monitor color, 
Precios especia/es en impresoras yac- 
cesorios, 

 2703497, 


. !l!lewlbine / 

GABINETE DE INFORMATICA 
· Clases de Informática 
sobre AMSTRAD 
EN GRUPOS O INDIVIDUALES 
· Ordenadores AMSTRAD 
y periféricos 
Los mejores precios 
· Software a la medida 


ZURBANO,4. 
: 4104763 
28010 MADRID 


AlIIstrad O deas 


AMSTRAD Semanal comunico o todos 
sus lectores lo apertura de uno nuevo sec- 
ción dedicado o recoger los mejores ideas 
que exploten 01 máximo los posibilidades 
del ordenador, materializados en progra- 
mas claros y cortos (máximo 25 líneas). los 
mejores de entre todos ellos serán publi- 
cados con el nombre de su autor en lo re- 
visto, recibiendo como premio, gratuita- 
mente en su domicilio los cuatro primeros 
números de nuestro cinta mensual. los pro- . 
gramos enviados deberán incluir: 
- Cinta de cassette con el pro. 
grama o programas grabados. 
- Explicación detallada del 
funcionamiento y propósito del 
programa, mecanografiado a 2 
espacios o con letra clara. 
Es imprescindible indicar en el sobre cla- 
ramente: AMSTRAD IDEAS. 
lo direccián es: 
Hobby Press, S. A. 
Lo Grania, sin. 
Polígono Industrial de Alcobendas. 
Madrid 



D 


1 


\ 


i 


M
51R
U' . . 


, 


. 
,. 
ti " j I 
í P-{ 
Q 


lU

 DE 
I UG
A2 
" . 


¡ ' 
,,
 


......'i 
)¡
- 'If 


AMS1RMl 


'. 


, 


J 


At
S1RAn 


. 
MONIToR 
J DIGO MAQUtNA 


.
 



 

 



 



464 



464 
QUINInAS 



.... dI
 
JUEGO DE BRIJ)GE 


. 


r "ir... 
,."" /.,,1, 
.1 ....1"'" 
,. 
 ;,:: 
< :'
 " 
Y '. 
 ,;.... - -..:. ,¡( . 
/' r ......
) 
, ílp..,
 ,,
 

; .. '1 .... 
nhi"J'.. '111 '. 
.......... 


\ta. 
... 


.
 



M 1R
U'" 


I 
BASE DE DATOS 


..j,D/ 
-f:l/ 
r' 



M
 ',1..1\1 . 
I D VOICE 
CHISS 
.. 



464 

 


r.. - 
, f;;1'1, 


. . I 
. . 
. 


, 
.,- . 
. . 


..... . ' 


. /1 


ta 


 

 



MS.Rhfi4ó4 



 
(()tlfABlUDAD 
,ERSOIIAl 


COf(tROl DE ST()O(S 



 '/ 
\ ---- 
//,,--- 
// / / 
-" 
--'" 


""'\ _.---- 
'-' / 
/'/ 



 
! 



 



 



 



 DISTRIBUCION 
Actividades Comerciales El .. 
Tarragona. 112 Te! 32515 12' 

ronlcas, S.A. 
. e ex 93133 ACEE E 08015 Barcelona 


YA DISPONIBLE EN 
 


 TODAS LAS 
TIENDAS ESPECIALIZADAS 



) I D 
I I 
I <n 
l 
" l l D I 
\. 
\4 - ,J 
/"" 
....., / , 
I 
I 

 \. ....
 
'- " 
 
\ \ l 
\ .\\ 't 
1, \ '\ \ 
, 
'" 
 . ; t,. 
I , 
<- I l 
',/ , 

 

'\ .;:... 
,o", 
I 
, \ I
 1 
!.,1 .; 
( 
" " ;1 1 t i 
.t ti 
'\( 'l ¡ti 
, 
1 
 ' / r 
I ,r 
11 1 (, 
\ / 
.." 
.- 


i 


" 
1 I 
r 
J 
! f I ./' 
. 
l ) 



 

 ,f:- 
- b. e 
del ataque de k for. 
y consigue escribir tu nomb 
en la leyenda del «FAR WEST». 


(', 
i
 
.

 


., 
", 


. 


NI. 19 


.4 


. I 1, 1 
..:/ 
 "> 
- '-Lo 
.. "'
" Ji. { 
, ;' " Z 
,. J 


, 


, 
1fST
 1 
4[0l 


I n 
, , 
.' 
 


1 


Fotos tomadas de un Spectrum 48 K 


'1"l'
'" II1C

"J.1t j" 


. 


.4 . 


(DISI( . 
O OJ 
. ....;.:.-\;:.
 
."< .,.,<.":"I;...J:.


"I' ..........1..': '1',:'" ......1"'",..,. 2'...'':;k-':''L',!'J¿c
>
''''J'' '1.
 
 "-ib Y¡V..6
.'/" VY
\'Á
 '
t:¿;:
,
_ 
i "#

"\¡ "'¡j¥¡, 

f. , 
'.r.'
f ':¡'
L..!:. - "'«;.'f."'


('f/
" _r-r.-"
% '
()" 
:"" """""':"7,.1} ,
 H-' ":JfJioK 
?!::..T4tY.::
t;
,

,,{
'j.(-r'f:.'ii>,:.y.:) 
;r
2;' ..


<

1{
(
 {\oIi1f4'
i";J-
}
J'lt
!
«



:- 

<)t 

;.."4t.
 ..1 "f



 ,H

.,<J5<.
5/
't" ;i" '
'1:.t1.:f;--

./'
:


''JI '", 
 
 "r,/
}/i."""'.P..1<'Z

'.)
i l\ _ftM: , '.' . 
. 
t;


 ' í ' '\
r!t 
 ú
.\:.O',}if
 n '
"'
: 
 '\'
W
'i', :;. i \
t:' I '¿;¡;},
7"
"'" 
 .- 
P DIDOS ONTRA '.'."'.\iJ . H!f.'". 
 .\t .. 
 <\.. ., '.
'f. .. . , -.>'- 
 


f 
I.:J:



 '}
. ,.:'\ T/'f¡/' 
:.:.. .1
l,
 '>
. 
'W ¡ ,,. J 
R MBOLSa: ';:',J. ,
:{.+¡:t..¡ 
í; . '*; ,
 ,";JJ Y',: 
:i; .
' 
 tiMAN '
.' N, 
T L,,: (. f J ., f 00 67 
,


 

{wr( '
 j 
' h.. .. ¡ :<); t _ £t: t
, 

 1 '.-=t-t,;.?;:. e/.,.,L05, . - . f. 
TI ND' S" 3/;:;, {5
!"/, .,¡;,-;. <, .'J't> 
 ¡1.- ,o" \ '. .\
i¡."" 
F;,t ,
'MO T PRIN ,. 
DI TRIBUIDORES. ".;
; . -
'.;:.¡,,
 ;-',>; b

 ... *¡"'f ' '.:,;. ,,"1 ,;\ " .1" '1.á
t SO. . ¡LI. . " 1. 
. #","'''
-;
(:
.,: .i
{?J
'i;:


. 
'
.::!


...
 
.; ".J",;!/). ;f1
"'

1 ;¡'\,p
 "

:\ 
;., 'r 

 I 
l..: '9 f J 447 34 f o. 

.f:;':¿

,k\\
:
(íJj'!
.:.

t\.f
¡,
<.
(
?
:'.;-I51'('
(¿'1.<.1Bi'Ú
\!:.
,:1f .,t '1>- ,.":;;

4
-}.i .. -' 11 . I.D 
ttol'X'.¡"
.,,,,, ......'t,o..A)
r1f:\l(,
\.;"..l.,

!,:.Jrt lf:-....
. 
1
..f...,.,\,
::..1:i 1"3....r

." .
<t.... ..J,.).J. } !"
 ,

í

'L "'fT. . , 


o. 


)J 


· NJ; -