Está en la página 1de 84

4 PRENÍ JmI

TUS GRAFimf
UTILIZANDO ^

Visitamos la
escuela de
informática

i ^ n A F t e a

Para archivar, copiar


gráficos y mejorar las
posibilidades
del Melbourne Draw
M i n R Q M I F O N

Un programa para
abrir programas

todos los
mercado
UnaJuoada
Vi AESTRAI
H B 1 rw y

T.odo sobre el baloncesto


americano
ame en fascículos. BASKET
USA.
USA

L los gigantes de la cancha y sus

c
técnicas.
técr

ómo se hace un campeón.

J J o s grandes equipos de la NBA


y la liga Amateur...

BiJASKET USA.

I " ! ! az la mejor jugada, vé a tu


quiosco... ¡Mételo en casa!

1 los números iy —

T
m n w i j i w .
Director Editorial
José I Gómez-Centurión
Director
Gaboci N«to
Director de Microhobby
Domingo Gómez
Redactora Jete
Alfica Pérez Totosa

m
Carlos Catatan
Redactores
Amalo Gómez
Pedro Pérez E N T R E V I S T A . El auge de la Escuela
Secretaría Redacción
Universitaria de Informática visto
Carmen Santamaría por José Gabriel Zato, su jefe de Es-
tudios.
Colaboradores
Alejandro Júfvez. Marcos Ortiz.
V.cto< Prieto. José M Lazo. i H A C K E R Micromirón, para listar,
J J Garcta Quesada. Manta Chacón.
Paco Maitin Canos Beitver analizar y alterar programas Basic.

Carlos Candet
Chema Sacristán

Dibujos
i P R O G R A M A . La Fuga.
F L Frontón. J Igual.
M lúpez Moreno. A Lucs González Romero.
Vital Gana. Horacio

Edita
HQB8Y PRESS. SA
Prosidente
C O D I G O M A Q U I N A . Sprites para el
María Andrino
Spectrum.
Consejero Delegado
José I GomozCentunúf»
Jefe de Publicidad
Mar Lumbreras G R A F I C O S . Edigraf, un programa
Publicidad Barcelona
para crear gráficos.
José Galán Cortés
Tels 303 tO 22 • 313 71 76

Secretaria de Dirección
: ' '''MSil/ittlil' PROGRAMACION. Los udg.
Suscripciones
M ' Rosa González
M • de< Mar Calzada
Redacción. Administración
y Publicidad

•is
Cira do itun L E N G U A J E S . Doce nuevos comandos
km 12.400 (Fuencarrai) para añadir al Basic mediante un
Tel 634 70 t2 programa en Código Máquina: am-
Teiex 49480 HOPft
Oto. Circulación pliación del Basic.
Carlos Pe'Ot' »Jf
Distribución
Coedis. S A Valencia. 245 ESPECIAL Guía de comandos.
lno r i

Rotedic S A Ctra de Irün.


km 12.450 (MADRID)
Fotocomposicion
Novocomp. S A
UTILIDADES. Procesadores de tex-
Nicolás Morales. 3840
tos.
Fotomecánica

Ci Azcona 33
Deposito Legal: INFORME. Los Tecnodelincuentes, la
S* 36 59&-19&4 nueva generación delictiva.
Representarte para Axgontina
Onie. Uruguay y Paraguay Cia
Americana do ediciones. S R L
Sud América i 53? Tel 21 24 64
• 209 BUENOS AIRES lAige-Hn.,»
PROGRAMACION. Estructura de da-
MICROHOBBY no se hace
tos.

opiniones venidas por sus

turnados Reservados todos tos


derechos
Joystick para todos
Solicitado controi
los gustos.
OJD

MICROHOBBY E S P E C I A L 3
4 ENTREVISTA
Alejandro JULVEZ Y Mareos ORTIZ

DE TODOS ES SABIDO EL AUGE


QUE LA INFORMATICA ESTA TE-
NIENDO EN NUESTRO PAIS, Y
POR ENDE LA APARICION DE DI-
VERSOS CENTROS DE ENSEÑAN-
ZA EN LOS CUALES SE IMPARTEN
TEMAS RELACIONADOS CON
ESTA CIENCIA. UNO DE ELLOS
ES LA ESCUELA UNIVERSITARIA
DE INFORMATICA PERTENE-
CIENTE A LA UNIVERSIDAD PO-
LITECNICA DE MADRID, Y ES SU
JEFE DE ESTUDIOS, JOSE GA-
BRIEL ZATO, QUIEN NOS HABLA
DEL TEMA.

Escuela de

INFORMATICA «Como su nombre indica, la


E.U.I. es una carrera técni-
ca, de las llamadas de ciclo
corto. Hay que hacer notar
que diplomas en Informáti-
ten. Creo que se conforma
una carrera muy adecuada
a las necesidades de la so-
ciedad a un cierto nivel, un
nivel que yo llamaría uni-
ca hay muchos, como son versitario.»
los que dan las academias, Hay que decir que en la
instituciones públicas o pri- E.U.I. se imparten tres len-
vadas y otros, pero aquí se guajes: Pascal, Fortram y
da el título de diplomado de Cobol. También se da una
informática por la Escuela amplia formación matemá-
Universitaria de Informáti- tica, física y electrónica, y
ca de la Universidad Poli- asignaturas tales como Tra-
técnica de Madrid, que ya ductores e Intérpretes, Es-
marca unas diferencias, y tructura de Ordenadores,
además, no se da en esta Bases de Datos y Sistemas
escuela sólo programación, Operativos, entre otras.
sino que también se impar- Viendo el programa de
te algo de análisis, por lo estudios de la escuela ob-

3Software
ue yo la llamaría escuela
e ingeneriería técnica de
o ingeniería técni-
servamos que la especiali-
zación, o elección de espe-
cialidad, no se produce has-
ca de sistemas, que sería ta el último curso (3.°) y
más adecuado viendo las preguntamos al señor Zato
asignaturas que se impar- sobre el tema:

MICROHOBBY ESPECIAL
6 ENTREVISTA

«Estoy completamente de
acuerdo en que la especia-
lización llega demasiado
tarde, además de que ten-
dría que haber muchas más
ramas entre las cuales po-
der escoger. Actualmente
sólo hay dos especialida-
des: Sistemas Lógicos y Sis-
temas Físicos.
Este año hemos tenido
una primera experiencia
con la introducción de algu-
nos elementos de Inteligen-
cia Artificial (lenguajes LISP
y PROLOG) y algo de Robó-
tica, pero todo ello a nivel
superficial, no como espe-
cialidad.
Yo creo que la elección de
especialidad debería co-
menzar en segundo. Se po-
dría diseñar una carrera
corta en la que habría un
primer curso básico en el
que se deberían impartir
conocimientos tales como
Física, Electrónica, Matemá-
ticas, Lógica de los Sistemas
Digitales, etc... Luego, un
segundo curso en el que se
podrían ya ramificarías es-
pecialidades.
Podrían ser, especialidad
de Gestión, desarrollar más
la especialidad de Sistemas
Físicos que tenemos ahora,
que está poco desarrollada
debido a que hay pocas em-
presas que se dedican a
Mantenimiento; Inteligen-
cia Artificial seria otra espe-
cialidad, se podría dar más
de Algoritmos, Sistemas
Operativos, Planificación y
explotación de sistemas in-
formáticos y otras asigna-
turas que se imparten aho-
<»»£n esta ra; en fin, cabria dar un ma-
yor empuje a muchas de las
escuela ramas que están mínima-
formamos mente diseñadas.
ingenieros Pero hay un problema de
técnicos en una tipo económico, ya que ha-
ingeniería que bría que dotar a la escuela
no está de laboratorios, etc..., y
además de una enseñanza
reconocida en teórica, habría que dar una
España, pero si amplia enseñanza experi-
en EE.UU7éé~ mental.

MICROHOBBY ESPECIAL
Escuela de informática 7

—Sr. Zato, ¿qué ofrece ta. O sea, el analista es lo formática (el que ha estu-
esta escuela que no ofrez- que hoy en día es un inge- diado en la Escuela Univer-
can las diversas academias niero y el programador es sitaria de Informática) y un
que imparten cursos de in- una persona que conoce licenciado en informática (el
formático? uno o varios lenguajes, pe- que ha estudiado en la Fa-
—Primeramente, la ma- ro no más. cultad de Informático)?
yor parte de las academias —¿Cree usted que la for- — Yo creo que los licencia-
se limitan a la enseñanza de mación informática que re- dos tienen unos conocimien-
uno o dos lenguajes, gene- ciben los alumnos de otras tos más profundos en algu-
ralmente BASIC y COBOL. carreras que no son de In- nos temas que en la Escue-
Esto puede servir como una formática, tales como Mate- la se tocan de un modo su-
primera información en el máticas, Física, etc., puede perficial, pero hay algunos
arte de programación, pero en algún modo, suponer conocimientos que no son
la informática no es sólo una competencia con res- estrictamente necesarios a
programar. Aquí, en esta pecto a la formación que un nivel profundo para
escuela, se pretende formar imparte la escuela? crear un buen
ingenieros técnicos en una —A mime parece que hay ingeniero de Software.
ingeniería que no está reco- un trabajo especifico que es Como ejemplo, se puede
nocida en España, pero sien el trabajo del informático y poner a las Matemáticas,
EE.UU. que es lo que se lla- que luego en las distintas ya que para ser un ingenie-
ma, como he dicho antes, carreras se deben ir intro- ro no hay que tener los co-
ingeniería de Software. duciendo asignaturas de in- nocimientos de un
Nuestros diplomados salen formática, pero no sólo en especialista.
capacitados para resolver las carreras científicas y El punto de equilibrio se-
problemas concretos que técnicas, sino también en ría tener la formación ade-
tengan los usuarios, cosa las carreras de humanida- cuada básica y luego una
que no ocurre con los que des, porque además de ser serie de conocimientos que
sólo saben programar que la informática una discipli- formarían esa ingeniería de
sólo resolverán problemas na nueva, es también una Software que está distribui-
que ya estén más o menos manera de organizar la in- da a lo largo de cinco años,
resueltos previamente, pe- formación. A mime parece ahora seis, en la Facultad, y
ro no pueden modificar pa- mal que se deje la informá- a lo largo de tres en la Es-
quetes de software, ni tam- tica sólo para los informáti- cuela. Lo que se aprenda de
poco pueden poner en prác- cos porque merma las posi- más sobre un tema, como
tica aplicaciones, para lo bilidades de análisis de una por ejemplo Sistemas Ope-
cual se necesitan más cono- persona que se dedique a rativos, en la Facultad será
cimientos de informática co- otra ciencia. No tiene aue la diferencia esencial, creo,
mo los que se dan en esta ser un especialista en infor- entre una licenciatura y un
escuela. mática, pero sí le puede de- diploma.
cir a un especialista qué cla-
-Ya que estamos con el te- se de aplicación necesita y
ma de los programadores, para eso requiere unos co-
¿qué diferencia hay entre un nocimientos mínimos. UNA ESCUELA
programador y un analista
de sistemas? De manera que yo creo
SIN PARO
—En principio, un progra- que están, primero, los es-
mador es una persona que pecialistas en algo, como —¿Qué grado de ocupa-
sabe programar, es decir, los Sociólogos, que tienen ción laboral tienen los diplo-
programa un número n de un problema concreto y que mas de esta escuela?
programas, pero el analis- saben hasta qué punto la in- —Esta es una escuela que
ta ae sistemas es una perso- formática puede resolver no tiene paro, es más, aquí
na que es capaz de diseñar, ese problema, y luego el es- los alumnos rechazan ofer-
de resolver problemas pecialista propiamente di- tas de trabajo que en otros
prácticos, problemas que cho que es el que resuelve el sitios serían aceptadas, la
no están previstos, que, en problema, que tiene que ser mayoría de las veces por-
su caso, podría realizar un un informático, y ese infor- que no se dan garantías de
intérprete o que podría ma- mático debe ser capaz de continuidad en el trabajo
nipular un determinado ti- hacer un diseño más o me- después de pasar un cierto
po de paquetes de softwa- nos completo. tiempo en el mismo.
re para aplicarlos a una de- —¿Qué diferencia existe Estas ofertas las rechazan
terminada situación concre- entre un diplomado en in- no sólo los diplomados sino

MICROHOBBY ESPECIAL
8 ENTREVISTA

los alumnos, ya que hay po-


cos diplomados. Al ser la es-
cuela muy ¡oven (se creó en
1978) en este momento el
número de proyectos fin de
carrera leídos, es decir, el
número total de diploma-
dos, es inferior a cien, pero
sin embargo, el número de
personas que han acabado
la carrera son varios cien-
tos.
Aquí el mercado de traba-
jo está esperando a la gen-
te que sale y muchas veces
los cogen antes de que sal-
gan, ae hecho, casi la mitad
de los estudiantes de terce-
ro trabajan.
—¿Qué opinión le mere-
ce lo programación de jue-
gos?
—Yo creo que esta aplica-
ción de la informática al
juego va a desempeñar un
papel cada vez más impor-
tante. El interés del mi-
croordenador reside entre
otras cosas en sus posibili-
dades creativas. En este
sentido, el micro ofrece la
posibilidad de interacción
con el usuario en contrapo-
sición con la televisión o el
vídeo que sólo permiten
una actividad pasiva y re-
ceptiva.
Este es un campo con mu-
cho futuro y enlaza, ade-
más, con el tema del entre-
tenimiento y del aprender
jugando.
Por otro lado habría que
introducir el lenguaje má-
quina en la escuela, a nivel
de EGB y BUP. Aquí impar-
timos una asignatura espe-
cífica llamada O.E.O. (Or-
ganización Estructural de
Ordenadores) que introdu-
ce en los lenguajes llama-
dos de bajo nivel, y poder
con ellos organizar las apli-
caciones que se deseen.
—¿Cuál es su opinión
acerca de la introducción de
la informática en el ambien-
te escolar?
—En algunos colegios de
EGB se ha introducido algo

MICROHOBBY E S P E C I A L
Escuela de informática 9

de BASIC, algunas técnicas Todo esto hace presagiar


de entretenimiento y poco una división entre países ri-
más. No creo que exista un cos y países pobres muchísi-
planteamiento serio de es- mo más pro funda que la ac-
te tema, ni creo tampoco tual.
que se haya producido una —¿En qué nivel de infor-
introducción generalizada matización se encuentra Es-
de la informática en las es- paña con respecto a Euro-
cuelas. Más bien creo que pa? ¿cree usted que la en-
este fenómeno no pasa de trada de nuestro país en la
ser una moda. CEE tendrá una repercusión
A mí, personalmente, no en este campo?
me cabe la menor duda de —Nos encontramos en un
que los medios informáticos nivel muy inferior al resto
aplicados a la enseñanza de Europa. Mientras los paí-
van a ser de gran ayuda, ses desarrollados dedican
tanto para los profesores entre un 2 y un 3% de su PIB
como para los alumnos. Pe- (Producto Interior Bruto) a
ro el tema tendrá que ser la investigación, en la que
estudiado con detenimiento están incluidas las nuevas
y su introducción deberá de tecnologías, España ha pa-
ser de forma progresiva y sado en los últimos cuatro
planificada. años, y según cifras del INI,
—¿A qué cree usted que del 0,47% al 0,58% del PIB.
se debe lo diversidad de Y para colmo, dos leyes que
lenguajes y la enorme varie- podrían haber sido otros
dad de equipos que se en- tantos instrumentos efica-
cuentran en el mercado? ces para corregir las enor-
—Esta enorme variedad mes deficiencias de la inves-
de equipos, y de una mane- tigación española, esto es,
ra más general, la invasión la Ley de la Ciencia y la Ley
de nuevas tecnologías a la de Reforma Universitaria,
que estamos asistiendo es no pasarán de ser declara-
fruto de la batalla feroz que ciones de buenas intencio-
algunas potencias indus- nes, ya que la segunda tie-
trializadas están librando ne unos presupuestos pre-
por hacerse con el control vistos insuficientes y la pri-
del mercado, y ello, por una mera no incluye compromi-
razón muy sencilla: el tema so presupuestario alguno.
del valor añadido. La falta de apoyo estatal
En efecto, las nuevas tec- a la investigación implica
nologías brindan la posibi- que en nuestro país ni se di-
lidad de fabricar, con muy señan ni se comparten pa-
pocos costes, productos tentes sino que tal y como
muy caros, esto es, con un se venia haciendo desde los
alto valor añadido. años del desarrollo indus-
Con este tipo de tecnolo- trial, España continúa im-
gías, los costes reales de portando tecnología ex-
producción son mucho más tranjera.
bajos que los de los siste-
mas productivos tradiciona-
les y seprevee que bajarán
aún mas.
A la cabeza de la carrera
está Japón, que goza de
cierta ventaja sobre EE.UU.,
mientras Europa intenta
abrirse camino, aunque es-
tá muy distanciada de los
dos primeros.

MICROHOBBY E S P E C I A L
W & B .

r m n f h ñ i £ / \
12 H A C K E R
Mar ¡ta CHACON

Tiene como objeto el poder listar, analizar


y alterar aquellos programas en BASIC
que se resisten a ser «escudriñados», bien
por no poderse parar con «break», no ser
posible el cargarlos con «MERGE» o tener
ocultas las instrucciones como en el caso
de estar escritas con tinta del mismo color
del papel.
«MICROMIRON», que también per
mite listar las variables que acompa
ñan al programa BASIC, puede se
salvado en cassette con o sin autoeje
cución después de ser modificado ade
cuadamente el programa en cuestión
Por otro lado, no puede manejar pro
gramas con cabecera falsa o sin ella,
ni bloques de bytes o conjuntos de va-
riables.
«MICROMIRON» es un programa
totalmente realizado en código máqui-
na de aproximadamente 3 Kb de lon-
gitud. Al cargarlo desde el cassette
aparecen tres bloques:
BLOQUE 1.—Es un programa BA-
SIC que se ocupa de cargar los otros
dos bloques y de poner en marcha el
programa en código máquina.
BLOQUE 2 . - E s la pantalla de pre-
sentación, cuyo tercio superior se uti-
liza posteriormente como encabeza-
miento del menú del programa.
BLOQUE 3.—Está formado por el
programa en código máquina, el cual
se sitúa desde la dirección 37500, ocu-
pando 2864 octetos.

FUNCIONAMIENTO
El programa se pone en marcha por
primera vez entrando en la dirección
37504 y en primer lugar guarda el ter- 4 . - L I S T A R VARIABLES grabado con autoejecución, el núme-
cio superior de la pantalla desde la di- 5 . - E D I T A R MEMORIA ro de línea de comienzo, pasándose
rección 3 5 0 0 0 , ocupando 2304 octe- 6 . — R E T O R N O AL BASIC posteriormente a la carga del progra-
tos, que se utiliza como encabeza- ma comenzando en la dirección con-
miento del « M E N U » , al que se pasa tenida en 40358 y 40359 que normal-
posteriormente. Las sucesivas reentra- 1 .—LOAD PROGRAMA. Sale el mente es 40366, pero puede cambiar-
das en «MICROMIRON» se deben ha- mensaje «PONER CASSETTE EN MAR- se alterando el contenido de las direc-
cer por la dirección 37500, con lo cual CHA» y se queda en espera de que ciones anteriormente mencionadas.
se pasa directamente al « M E N U » . aparezca una cabecera para su lectu- Terminada correctamente la corga
En el « M E N U » se ofrecen las si- ra. Con posterioridad a la carga de de un programa, se almacena un 1 en
guientes seis opciones: una cabecera, si es de un programa, la dirección 40 349, lo cual sirve como
1 .—LOAD PROGRAMA aparece en la pantalla el nombre del indicador, sin cuyo requisito no se pue-
2 . - L I S T A R PROGRAMA mismo, su longitud, la longitud total de tener acceso a las opciones de sal-
3 . - S A V E PROGRAMA del programa más variables y, si está var, listar programa o listar variables.

MICROHOBBY E S P E C I A L
MICRO MIRON 1 3

si no se ha agotado la longitud dada


pe i cabecera del programa carga-
do ael cassette últimamente. Tampo-
co importa que los números de líneas
estén desordenados o que tengan nu-
meraciones superiores a 9 9 9 9 . Real-
mente podría listarse cualquier cosa
sin ningún problema, aunque no se
parezca en nada a un programa BA-
SIC.
Para comenzar el listado se parte de
la dirección contenida en 4 0 3 5 8 y
4 0 3 5 9 (normalmente 4 0 3 6 6 ) .
3 . - S A V E P R O G R A M A . Si anterior-
mente se ha cargado correctamente
un programa BASIC, se pregunto si la
grabación se hace con autoejecución,
a lo que se puede contestar S ó N .
Posteriormente aparece el mensaje
« P O N E R CASSETTE Y PULSAR TE-

« M I C R O M I R O N » es un
programa realizado to-
talmente en Código Má-
quina de 3Kb de longi-
tud.

La cabecera del programa que ini- se trate y se queda a la espera de otro CLA», tras lo cual se inicia la graba-
cialmente se guardó en un «buffer» nueva cabecera. ción. Para que ésta se efectúe con
transitorio, queda almacenada defini- 2 . — L I S T A R P R O G R A M A . Si hay al- autoejecución es necesario que el pro-
tivamente en la zona del «print buffer» macenado un programa BASIC, (di- grama ya la tenga al cargarlo.
para su posterior utilización. rección 4 0 3 4 9 a 1), se solicita el nú- 4 . — L I S T A R V A R I A B L E S . Además de
Por último, aparece el mensaje mero de línea desde el que se inicia el cumplirse las condiciones de las opcio-
« P U L S A R T E C L A » , lo cual permite el listado, a lo que se puede responder nes anteriores, lógicamente deben
retorno al « M E N U » . con cualquier número de cinco cifras existir variables acompañando al pro-
Al cargar un programa se borra el o menos. Si sólo se pulsa « E N T E R » se grama BASIC que se cargó.
que se hubiese cargado anteriormen- lista desde la primera línea. En el listado que se obtiene en pan-
te. La rutina de listado ignora los «oc- talla, de las variables numéricas sim-
Si la cabecera leída no es de un pro- tetos de color» y no considera termi- ples sólo aparece el nombre, de las
grama BASIC, aparece en pantalla el nada su tarea al encontrarse un carác- matrices numéricas se dan también las
nombre y tipo de información de que ter de código 13 seguido de un 128, dimensiones y de las cadenas y matri-

M I C R O H O B B Y E S P E C I A L 13
14 H A C K E R

ees de caracteres se listan además los


códigos de los caracteres que contie-
nen en hexadecimal. Las variables
aparecen relacionadas en el mismo or-
den en que están en la memoria.
5.—EDITAR MEMORIA. Para entrar
en esta opción no debe de cumplirse
ninguna condición especial.
En primer lugar se solicita la direc-
ción de partida en decimal, a lo que
puede contestarse con cualquier nú-
mero de cinco cifras o menos. Si la di-
rección dada es mayor de 65535, se
considera la diferencia con esa canti-
dad menos uno, y si no se da ninguna
cifra y sólo se pulsa «ENTER» se toma
cero como dirección de partida.
Posteriormente aparece el listado en
cinco columnas, que de izquierda a
derecha dan la dirección en decimal
y en hexadecimal, el contenido de la
posición en decimal y hexadecimal y
por último, el carácter correspondien-
te para códigos mayores de 32.
En la pantalla hay 19 líneas para
otras tantas posiciones de memoria y
el cursor colocado en la primera de
ellas.
?.—Aparece la pantalla de informa-
ción y pulsando cualquier tecla se re-
torna al listado.
C.—Cuando el cursor está en la pri-
mera línea, continúa el listado desde
la dirección siguiente a la última que
aparece en pantalla. En caso contra-
rio el listado continúa desde la direc-
ción actual del cursor.
A.—Lista las 19 posiciones anterio-
res a la del cursor.
Tanto en esta opción como en la an-
terior, el cursor pasa a la posición co-
rrespondiente a la primera línea.
R.—Retorno al « M E N U » .
D.—Para cambiar la dirección del
listado según se ha descrito anterior-
mente.
MOVER CURSOR.-Pulsando las te-
clas correspondientes se puede subir
o bajar el cursor a cualquiera de las
posiciones de memoria que aparezcan
en la pantalla.
E —Permite alterar el contenido de octeto, que si es en decimal puede no Si el valor se da en hexadecimal, es
la posición actual del cursor, para lo tener ninguna cifra, pulsando sola- necesario marcar dos cifras, no admi-
cual se pregunta si el nuevo valor del mente «ENTER», en cuyo caso se con- tiéndose más ni menos.
octeto en cuestión se daró en decimal sidera que el valor es cero, y hasta un
o en hexadecimal, o lo que se debe máximo de cinco cifras, pero si el va- Por último, se lista desde la posición
contestar D ó H, pero de pulsar otra lor dado es superior a 255, se toma actual del cursor.
tecla se considera anulada esta op- el del octeto menos significativo de los 6.—RETORNO AL BASIC. Se aban-
ción. que fuesen necesarios para contener dona «MICROMIRON». Para retornar
Posteriormente se solicita el valor del la cantidad dada. se debe entrar por la dirección 37500.

MICROHOBBY E S P E C I A L
L I
mjivsjssjjJjyM&t,

I b btkmfa] ^

Ü Ü m piai&'J

iüul ü áMUAüWM un JMJiO


16 H A C K E R

MICROMIRON
3 REM << MICROMIRON >>
63
64
65
E1C9RF32085C3R085CB7
28FRC95041524120494E
464F524D4143494F4E20
1092
966
702
66 50554C534152203F0DFF 834
S BORDER PRPER INK 67 44495220442020445220 569
LERR 34999 68 48202044454320204858 564
8 LORD ""CODE 37500,2864 69 20202043415241435445 595
9 INK 0 70 52200D3D3D3D3D3D2020 496
10 RRNDOMIZE USR 37504: REM PR 71 3D3D3D3D20203D3D3D20 523
IMERR ENTRRDR EN EL PROGRRMR 72 203D3D20203D3D3D3D3D 523
11 STOP 73 3D3D3D3D3D0DFF001501 595
12 RRNDOMIZE USR 37500: REM RE 74 20202020203C3E202020 378
ENTRRDR EN EL PROGRRMR 75 203C3E2020203C3E1500 393
1 18160000ED5BR49D2100 728 76 0DFF444952454343494F 846
77 4E20454E20444543494D 643
2 4.0010008EDB021005S01 608 78 414C3F20FF1600041301 537
3 0001EDB02100003922R0 698 79 140120494E5354525543 605
4 9DCD6B0D3E02CD01163E 836 S0 43494F4E455320454449 691
5 08326R5C21B09CCDEB99 1214 81 544F5220140013000D0D 342
6 2RR49D110040010008ED 690 82 0D432E2D20434F4E5449 584
7 B0110058010001EDB0RF 871 83 4E554152204C49535441 723
8 CD011621569DCDEB99FD 1350 84 4E444F0D0D412E2D2052 521
9 36CE00FD7ECEB728FRF5 1563 85 4554524F434544455220 701
10 RFCD6E0DF1FE3138E2FE 1583 86 454E204C49535441444F 707
11 3730DEF5CD6B0DF1FE31 1439 87 0D0D522E2D205245544F 545
12 2008CD5799CDD39618R7 1242 88 524E4F20414C204D454E 668
13 FE322008CDR198CDD396 1428
14 189BFE332008CD109CCD 1106 89 550D0D442E2D2043414D 511
15 D396188FFE3620052RR0 1075 90 42494152204449524543 677
16 9DF9C9FE342009C-DF996 1558 91 43494F4E204C49535441 710
17 CDD396C39B92FE352006 1407 92 444F0D0D452E2D204544 502
18 CD3393C39B92FO36CE00 1412 93 4954415220454C204F43 659
19 C39B92CD6E0DRFCD0116 1227 94 5445544F2044454C2043 660
20 216C9SCDEB99CDB89BCD 1632 95 5552534F520D0D202020 533
21 629BE5E5CDB694E10613 1496 96 2053452050554544454E 665
22 C5E5CDDB9RCDCF94E1E5 2018 97 205554494C495R415220 692
23 7CCD439BE1E57DCD439B 1557 98 5445434C415320444520 645
24 E1E56E2600E5CDDB9RCD 1614 99 20202053554249522059 606
25 CF94E17DF5CD439BCDCF 1789 100 2042414R415220435552 650
26 94F1FEF92009D73E08D7 1433 101 534F520D0D2020202043 465
27 3E0DO71808FE203801D7 880 102 4F4D49454E5R4F205052 739
28 3E0DD7E123C110BC0100 948 103 4F4752414D4120FF2028 798
29 00CDD694E1CDEA94FE41 1698 104 454E2020202020444543 511
30 2008111300B7ED52189E 760 105 494D414C292E0DFF4445 783
31 FE43200RRFB820961113 940 106 43494D414C204F204845 642
32 00191890FE522001C9FE 1017 107 5841443F2028442F4829 584
33 44CR33yjrcr3F2022E5CD 1285 108 200DFF4F435445544F20 794
34 6B0D3E02CD0116218395 725 109 454E20444543494D3F20 628
35 CDEB992RR69DCDDB9R21 1569 110 FF4F435445544F20454E 896
36 8096CDEB99E1CDER94C3 1878 111 2048455841443F20FF00 744
37 4693FE0B200E78B728RB 1042 112 00RFCD0116CD6E0D21EB 999
38 CDD694052BCDD69418R1 1367 113 96CDEB99FD36CE00FD7E 1635
39 FE0R200F78FE122898CD 1100 114 CEB728FRC950554C5341 1269
40 D6940423CDD694188EFE 1388 115 52205445434C410DFF2R 785
41 45208RE5CD6E0DRFCD01 1177 116 R69DED5BD15B197EFE80 1484
42 16219496CDEB99CDER94 1533 117 C84F3R9D9DB7C879E5E6 1614
43 F5CD6E0DF1E1FE442013 1412 11S E0FE602012214198CD17 1102
44 E521RD96CDEB99CDB89B 1722 119 983E0DD73E0DD7E11106 980
45 CD629B7DE177C34693FE 1593 120 0018DBFEE02012215498 1040
46 48C29993E521BF96CDEB 1609 121 CD17983E0DD73E0DD7E1 1185
47 9906002ID196CDER94FE 1392 122 11130018CSFER0201821 760
48 0D2844FE0C201578B728 783 123 4198CD1798E1237ECB7F 1313
49 F1052BE5C53E08D73E20 1094 124 2005E5D7E11SF5E5CBBF 1598
50 D73E08D7C1E118E0FS78 1531 125 D718C2FE802014216798 1155
51 FE022003F118D7F1FE30 1314 126 CD1798CDD5973E0DD7E1 1464
52 38D2FE4730CEFE41380R 1230 127 235E2356231891FE4020 804
53 F5D7F1D63777042318C0 1344 128 33217R98CD17983E24D7 1051
54 FE3R30BCF5D7F1D63018 1535 129 CDFF97E1234E234623E5 1318
55 F078FE0220B021D1967E 1342 130 C5E5C57ECD439B3E20D7 1485
56 CB27CB27CB27CB2723B6 1185 131 3E20O7C1E1230B78B120 1102
57 E177E5CD6E0DE1C34693 1538 132 EC3E0DD73E0DD7D1E1C3 1445
58 CD6B0DRFCD011621F594 1154 133 0097FEC02029218D98CD 1201
59 CDEB993E02CD01162110 934 134 17983E24D7CDD597E100 1282
60 95CDEB99C93E20D73E20 134-6 135 234-E234623C5E55E1600 795
61 D7C9E5C53E16D7C1C578 1651 136 191923E56069B7ED52ED 1254
62 3C3CD7215395CDEB99C1 1386 137 524-44D0BE118B4E1C93E 1155

MICROHOBBY E S P E C I A L
I B MIRON 1 7

138 28D73E29D73E0DD7212R 938 213 5R204341524143544552 703


139 98CDEB99D1E1E5D52323 1691 214. 455320FF4F435445544F 901
14.0 2346235E2356E5C5EBCD 1221 215 5320FFDD212C9B0605DD 1055
141 DB9RC1E12310F23E0DD7 1374- 216 5E01DD5602DD3600007C 803
142 C93E28D73E29D73E0DD7 1126 217 BR300RDD23DD23DD2310 1028
143 213798CDEB99D1E1E5D5 1709 218 ER1810280SB7ED52DD34 1097
144 23060118D6C5E53E02CD 975 219 0018E87DBB38E818F23E 1184
145 0116E1CDEB99C179E61F 1416 220 02CD0116212C9B06050E 487
146 C640D7C944494D454E53 1126 221 207EB7200F05280B0481 577
147 494F4E45533RFF4C4F4E 928 £22 E5D7E123232310EFC904 1234
148 47495455443RFF564152 927 223 0E3018F100102700E303 617
149 4941424C45204E554D45 690 224 006400000R000001002R 153
150 5249434120FF4255434C 868 225 D65BF9C9000000F5E6F0 1470
151 4520464F522D4E455854 696 226 0604CB3F10FCCD569BF1 1231
152 20202020FF4D41545249 764 227 E60FCD569BC9FE0R3004 1208
153 5R204E554D4552494341 718 228 C-6301802C637D7C93E05 1008
154 202020FF434144454E41 763 229 32R89BDD21R99B210000 984
155 20434152414354455245 682 230 01RE9B0R035F0R57DD7E 882
156 5320FF4D415452495R20 873 231 00FE3R380E2025DD233R 765
157 43415241435445524553 733 232 R89B3D32R89B20ECC9FE 1480
158 20FF002100003922D65B 716 233 303815D6302804193D20 549
159 2RR69D7EFE80C83R9D9D 1445 234 FCDD23033RR89B3DC832 1203
160 B7C8E5ED5BD15B1922ER 1533 235 R89B18CD210000C9003R 844
161 5BRFCD0116CD6E0D2173 970 236 3R3R3R3R01000R006400 343
162 9DCDEB99CDB89BCD6E0D 1622 237 E8031027RFCD011621R9 895
163 CD629B444DE17EB8380A 1204 238 9B0605C53E3R772310FC 905
164 2006237EB938042B1815 532 239 2BC1FD36CE00FD7ECEB7 1517
165 23235E23561923E5ED5B 902 240 28FRFD36CE00FE3R30F2 1405
166 ER5BB7ED52E1CR3B9B18 1492 241 FE0DC8FE0C20183E05B8 1040
167 DD7E23E56E67CDDB9RE1 1627 242 28E60423363RC5E53E08 917
168 234E2346230B7EFE2030 724 243 D73E20D73E08D7E1C118 1251
169 41FE0D201878B120F13E 1020 244 D3FE3038CF32R89BRFB8 1508
170 0DCD539923E5ED5BER58 1371 245 3RR89B28C5772B05C5E5 1211
171 B7ED52E1CR3B9B18D0FE 1629 246 18E62RR69D7EFE80C83R 1385
172 0E20093E050B233D20FB 512 247 9D9DB7C8RFCD0116217R 1255
173 18D0FE1620043E0218F1 873 248 9CCDEB99FD36CE00FD7E 1641
174 FE1728F8FE1038C0FE16 1359 249 CEB728FRFE4E2804FE6E 1419
175 30BC230B18B8CD539918 955 250 2008FD369500FD369680 1081
176 B3E5D7E1C92100003922 1173 251 RFCD0116CD6E0D21919C 1065
177 D65BRFCD01162ID199CD 1308 252 CDEB99FD36CE00FD7ECE 1691
178 EB993E02CD0116DD2184 1066 253 B728FRRFCD6E0D111100 1010
179 9D3E0011130037CD5605 606 254 DD21C25BRFCDC2040632 1173
180 3R849DB7C2129R21849D 1218 255 FB7610FD3EFFDD2RR69D 1541
181 11C25B011100EDB0216B 873 256 ED5BCD5BCDC204C94155 1378
182 9RCDEB99CDF999EB2175 1739 257 544F454R45435543494F 746
183 9RCDBF99131RCB7F2803 1121 258 4E3F2028532F4E29200D 507
184 1318071B21889RCDBF99 949 259 FF504F4E455220434153 890
185 219B9RCDBF992RR69D3E 1318 260 53455454452059205055 707
186 8077RF329D9DC3519RCD 1421 261 4C534152205445434C41 699
187 EB99EB5E235623EBD5CD 1526 262 0DFF16090C1401130120 384
188 DB9R3E0DD7D1C9504F4E 1310 263 4D454E5520140013000D 393
189 45522043415353455454 718 264 0D20202020312E2D204C 389
190 4520454E204D41524348 643 265 4F41442050524F475241 703
191 410DFFD57EFEFF2806E5 1456 266 4D410D0D20202020322E 392
192 D7E12318F5D1C921849D 1476 267 2D204C49535441522050 652
193 23060R7EE5FE2030023E 804 268 524F4752414D410D0D20 579
194 3FD7E12310F3E53E0DD7 1316 269 202020332E2D20534156 504
195 E1C9FE01200B21RE9RCD 1290 270 452050524F4752414D41 702
196 EB99CDF999181BFE0220 1334 271 0D0D20202020342E2D20 329
197 0C21BF9RCDEB99CDF999 1590 272 4C495354415220564152 728
198 C33C9RFE0321D29RCDEB 1503 273 4941424C45530D0D2020 522
199 99CDF9990670DD21849D 1421 274 2020352E2D2045444954 534
200 3E0011000037CD56053E 492 275 4152204D454D4F524941 701
201 0DD7C36D99DD2RR69D3E 1333 276 0D0D202020203fc62E2D20 331
202 FFFD5E93FD569437CD56 1582 277 5245544F524E4F20414C 726
203 05DD3600803E01329D9D 835 278 2042415349430DFF2020 718
204 C950524F4752414D4120 834 279 2020202020201201204D 320
205 FF544F54414C204F4354 905 280 4152434152204F504349 692
206 45544F532020202020FF 730 281 4F4E2012000DFF4C4953 707
207 434F4D49454E5R4F2045 713 282 5420515545204C494E45 679
208 4E204C494E454120FF4F 837 283 413F20FF434142454345 818
209 435445544F532050524F 739 284 5241205052494D455241 707
210 4752414D412020FF4D41 821 285 20202020202020000000 224
211 5452495R204E554D4552 752 286 000000080000B888RE9D 659
212 49434120FF4D41545249 873 287 00000000000000000000 0

MICROHOBBY E S P E C I A L 17
18 P R O G R A M A

<i:Mu.
1
m u

lllllla
IIIIIM
lllllll

<i:
i i i i i i l
Sobrevivir en aquel
tiempo era una tarea da, de las que algunas nos servirán y Esta es la relación de piezas a en-
casi imposible, el otras nos facilitarán el poder conseguir contrar, objetivo de nuestra misión:
futuro no se presentaba las necesarias. El cheque, el b o l í g r a f o , el pa-
La mansión por la que tendrá lugar s a p o r t e , el m e c h e r o , l a b o m -
nada esperanzador, la nuestra aventura tiene 72 habitacio- b o n a , el b a r r e ñ o , el casco, el
única posibilidad era nes, repartidas en 6 plantas con 12 ha- d i n e r o , l a t i n t a , el e n c h u f e , l a
bitaciones cada una, en las que halla- caja f u e r t e , l a m a l e t a , l a l l a -
marcharse a otro país. remos lanzarrayos y espadas que sur- v e , e l p a s a j e y el dulce.
El objeto del juego es el ayudar a re- gen del suelo. Para pasar de una a Si tenemos el bolígrafo vacío y co-
coger a nuestro amigo todas las pie- otra, encontraremos puertas, cuerdas gemos la tinta, conseguiremos llenar-
zas que pueden hacer posible la hui- y trampillas. lo. Con el bolígrafo cargado, podre-

MICROHOBBY E S P E C I A L
ík FUGA 19

mos firmar el cheque. Con el cheque El enchufe y la caja fuerte no tienen o - izquierda
firmado y el pasaporte conseguiremos ninguna utilidad. p - derecha
el pasaje. Con el mechero sin gas y la El programa lleva algunas rutinas en Si se hace BREAK posiblemente sal-
bombona, llenaremos el mechero. código máquina muy cortitas y sim- drán unos signos muy raros. Hacien-
Con éste lleno, podremos encender el ples, como una rutina que genera un do GO SUB 9998 aparecerán de nue-
barreño, y ya con el barreño encen- juego de caracteres simplemente ro- vo los caracteres normales.
dido y el casco, conseguiremos derri- tando alternativamente los bits y com-
bar el muro que nos impide coger la parándolos con los originales.
maleta. Con el pasaje y la maleta ob- N o t a : Todos los espacios, salvo los de las li-
En cuanto a las teclas de control son:
neas 10 1 y 102, deben teclearse pulsando en
tendremos la llave, con la que, ¡unto a - subir/bajar modo gráfico «8». En los textos y DATAs no ha-
con el dinero, finalizaremos la misión. z - on/off interrup. ce falto.

MICROHOBBY E S P E C I A L
20 P R O G R A M A

1 PAPER 0 BORDER 0 INK 6 6 ",AT 2 1 , 2 , -


RIGHT 1 CLS CLEAR 64241 GO S 1210 PRINT INK 6,AT 1 7 , x - l , 0 $ ( l * BEEP .01,RND»
U6 8990 ( X / 2 = INT (X/2) ) ) ,AT 16,X -1, O" 20 NEXT b NEXT
4 1CLS P R I N1 T A T 1 0 , 1 0 , F L A S H 121S IF z >0 T H E N IF t r = 1 T H E N PR 3 2 0 5 IF T H E N FOR b=l TO 4
PREPAROTE " GO S U B 9 9 9 9 INT AT 17.X-1; INK C ( Z ) , V « ( Z ) L POKE 64S83•b,0 NEXT b GO SUB 4
ET S ( Z ) = X - 1 LET r ( z ) = h b LET tr 200 L E T e l=x <10) -4*(x >10)
=0 IF C O D E S C R E E N » ( 1 7 , e l ) > 1 0 0 T H E
1217 R E T U R N N LET E1=E1• 1
91 DIM f(15) LET r(l)=INT (RN 1300 R E T U R N 3 2 1 0 LET ti
0*72) »1 FOR t =2 TO 1S 1 3 1 0 R A N D O H I Z E USR 6 4 2 4 5 LET s í E=0 T H E N P R I N T A T 17,el
9 2 LET r(t)=INT (RND»72)*1
9 3 FOR 9=1 T O t IF r(t)=r(a) 1,30)=0 T H E N =0 GO TO 3220
«NO tí>9 OR f(t )=42 T H E N GO T O 9 ..b =h b + 12 GO SUB 2500 GO SU 3 2 1 2 IF l =2 T H E N R E T U R N
2 5900 LET w • - S C R E E N $ (17,X) F 3230 LET es =INT (RND +3)
94 NEXT 9 NEXT l LET r(13)=4 TO 15 P R I N T INK 6,AT h - 1
2
95 DIM V((15) FOR d = l TO 15 B E E P .03,-h NEXT h PRINT AT 15 <101 T H E N PRINT INK 7,F
LET v » ( d ) = C H R » (100*d) NEXT d , X ,"b",AT 16,X,"O",AT 1 7 , * ; " P " V LET li=li+l RETURN
96 OIM s(15) FOR V=1 T O 15: L RETURN 3240 IF e s = 2 AND C O D E S C R E E N » (1
= INT (RND * 19) +3 NEXT 1520 IF POINT (8»x«3,48)=l T H E N 7 , e l ) > 1 0 0 T H E N LET ce=l LET es=
LET s ( 13) = 7 PRINT AT 1 4 , X , " c " , A T 1 5 , X , " d " , A T 0
17.x," " FOR h = l S T O 1 STEP -1 3270 R E T U R N
P R I N T AT h t i , X , " b " , A T h , x ; " d " ; 3 S 1 0 LET aa = INT (RND*S)*1 IF a *
( () =S T H E N GO TO 98 AT h - 1 , X ; " C " B E E P .03,-h: NEXT < >4 T H E N RE RN
9 9 NEXT I h LET h b=h b - 1 2 GO SUB 2500 GO
SUB 5900 LET « » = S C R E E N $ (17.x) 3S30 LET d r =,NT (RNDí8)-3 FOR d
100 LET sf=l LET h b = INT CRND«? =1 TO 2 OUER 1 PLOT 199,58 DR
1)*1 LET ce=0 LET es=0 LET el P R I N T AT 1 6 , X , " O " , A T 17,X,"P" AU - ( 2 6 - x - d r - 1 ) » 8 * 4 . - 1 9 LET co»
=13 LET t•=0 LET co»=0: LET vi RETURN = 1 AND (d r =0) NEXT d
=5 LET z =0 LET bl=0 LET b2=0 1530 R E T U R N 3540 OUER 0 IF c o• = 1 AND V | > 0 T
b3=0 LET c1=1 LE- " " 2 0 0 2 IF CODE w $ = 115 T H E N FOR HEN POKE 6 4 5 8 4 , 2 3 7 POKE 6 4 S 8 5 . 9
=5 LET c 4 =7 LET 20 TO 20 STEP 5 BEEP .00S, NE 5 POKE 6 4 5 8 6 , 2 1 1 POKE 6 4 5 8 7 , 2 5
LET tr=0 LET « » = XT FOR a=20 T O -20 STEP -1 4 GO SUB 4200 LET co»=0
=11 LET di=0 LET «=0 3560 R E T U R N
101 LET a«='4 v. [ [' »nn•• * C H R * 3 3710 O U E R 1 GO SUB 9 9 9 8 FOR a=
4 LET r(15)=0 RETURN FOR b = 1 T O 7 FOR
102 LET b» = "&'-' Y. H ,'•/.)*-•. ttttttt2 0 0 5 LET Z= PRINT INK b.AT
"+ CHR i 34 ODE X ( - 100 B E E P .005.4
103 LET dl="B": LET e • = " 1 3 S 2 4 6 " 2010 PRINT AT 19,0, INK . . . 0«a«b»c BEEP .005,RND #30 NEXT
LET í» = "? 8, 9 < " LET 9 » = " = " A > 9 •),: GO SUB 9 9 9 8 PRINT " "; INK b NEXT a GO SUB 9 9 9 9 OUER 0
B" L E T h»="CDC" LET I$="EF£" C (• ) -1. s$ ( • ) , X 1 GO SUB 9 9 9 9 I 3720 FOR a=l T O 3 GO SUB 9 9 9 8
L E T j«="GHI" LET T$="JKLM": LET F d i > 0 T H E N P R I N T AT 21,0, INK c PRINT AT 14+a,5," ",AT 14»a,9,"
l(="UUUXYZ" (di),v$(di>, GO SUB 9 9 9 8 PRINT NEXT a GO SUB 9 9 9 9 RETURN
130 L E T « ( = " N N N N N N N N N N N N N N N N N N N " ••; INK c (di ) -1, s » (d i ) ; X S GO 4010 FOR P=0 TO 7 OUER 1 PLOT
SUB 9 9 9 9
. CLS INK 4 2 0 1 1 IF » = 1 OR di=l T H E N GO SUB
141 G O S U B 9 9 9 5 P R I N T «0, " 'LA 9998 PRINT AT 1 9 + 2 » ( d i = 1 ) , 1 2 , I
FUGO" © «LBERTO T O L E D O . ' GO SU DRAU 7,0 BEEP ,005,30+p BEE
" 9999 P .005,10» OUER 0 NEXT P
142 PLOT 0,14 DRAU 177,0 PLOT 9998: PRINT AT 19 »2 K d i =2) , 15, 4 2 1 0 G O SUB 9 9 9 8 P R I N T AT 1 6 , X ,
177,10 DRAU - 1 7 7 , 0 DRAU 0 3 <RND»S) +3;u »(C1> T O S) GO
144 PLOT 180,0 DRAU 0 , 1 8 DRAU UB 9 9 9 9 17.x,' GO SUB 9 9 9 9
di=4 T H E N G O S U B 4 2 2 0 PLOT (x«l)«8«3, B E E P .00
9998 PRINT AT 1 9 » 2 » ( d i = 4 ) , 1 3 ; i ,20 DRAU - 3 , - 3 PLOT »1> « 8 » 3
NK (RNDíS)*3,u»(C2) GO SUB 9 9 9 9 ,32 BEEP .005,30 DRAU - J . J PL
2014 IF »=6 OR d i = 6 T H E N GO SUB OT x *8 -3 , 3 2 BEEP .005,40 DRAU
3,3 PLOT x «8-3,44 BEEP .005,50
9998 PRINT AT 1 9 * 2 » ( d i = 6 ) , 1 3 , I DRAU 3,-3 PLOT 8 » x » 3 , 3 8 DRAU
150 PRINT AT 16,X, INUERSE 1, I NK (RND»5>»3,u»(C3) GO SUB 9 9 9 9 2,0
NK 0 , " O " , A T 17.x,"P" GO SUB 400
0
2 0 1 5 IF (»=2 OR di=2) AND (B=9 O 4 2 3 0 PRINT AT 21,21* I«2, INK 2,
R di=9) AND [1=1 T H E N GO SUB 9 9 9 "P",AT 2 0 , 2 1 *
1010 IF j(hb)=1 T H E N IF X > 3 AND 8 GO SUB 3000: LET c1=2 PRINT
x < 2 3 T H E N GO SUB 3S00 4 2 3 5 PRINT AT 1 6 . X - 1
AT 1 9 « 2 t ( d i = 2 ) , 1 5 , u « ( c 1 ) ( T O 5): R A N D O M I Z E USR 6 4 5 7 S
1015 IF j(hb)=2 T H E N GO SUB 3200 GO SUB 9 9 9 9
1017 IF h b =42 T H E N IF («=6 OR di 4 2 3 8 GO SUB 5 9 6 2
2 0 1 6 IF (» = 1 OR d i =1) AND (»=2 O 4 2 3 9 NEXT
= 6) RND (»=7 OR di =7) AND C3=6 A R di =2) AND C 4 =7 AND £ 1 = 2 T H E N G
ND b1=0 T H E N GO SUB 3700 LET C3 4 2 4 0 LET F O R A = 3 0 T O -1
O SUB 9 9 9 8 LET C4=8 GO SUB 300 B E EP .004.
=6: LET b1=1 0 PRINT AT 1 9 + 2 * ( d i = 1 ) , 1 2 , U $ ( C 4
1020 IF I N K E Y » = " o " AND A T T R (17, ) GO SUB 9 9 9 9
" '— -1 B E E P .0 2 0 1 9 IF (B=4 OR di=4) AND (»=5 O
R di =5) AND c2 =3 T H E N GO SUB 9 9 9 SUB 4000 RETURN
íoSé^IF ÍNKEY?="a""THEN GO SUB I 8 LET C2=4 GO SUB 3000 PRINT 4 2 5 0 OO TO 5000
AT 1 9 + 2 4 ( d i = 4 ) , 1 3 , INK (RND»4)+3 4 5 2 0 LET X =25 GO SUB 5900 PRIN
500 ,u$(C2) GO SUB 9 9 9 9 T AT 1 6 , X , • R " , A T 1 7 , x ; " S " RETUR
1040 IF I N K E Y « = " P " AND A T T R (17, 2020 IF («=1 OR d i =1) AND («=3 O N
X • 1) < >69 T H E N L E T x=x*l B E E P .0 R di=3) AND Cl=2 AND b2=0 T H E N G 4610 LET X = 1 GO SUB 5900 PRINT
005,30 GO SUB 1200 O SUB 9 9 9 8 GO SUB 3000 GO SUB
1 0 4 5 IF I N K E Y ® = " Z " T H E N G O S U B 1 9999 PRINT AT 1 7 , s ( 1 4 ) + 2 * ( A T T R
300 <17, *
1050 GO T O 1000
1 1 0 0 IF X = 0 T H E N G O SUB 2 5 0 0 LE : LE __ _
T hb=hb-l GO SUB 4 5 0 0 GO T O 10 2021 IF («=13 OR di=13) AND SALUO' ,aé,TAB 8 , " P U L S A UNA T E C L
00 4 OR di=14) AND b3=0 T H E N GO SUB A! "
4910 RESTORE 4911 FOR a=l TO 48
1102 IF » « < > " " T H E N LET h 9 = 2 GO 9998 GO SUB 3000 GO SUB 9 9 9 9
SUB 2000 PRINT AT 1 7 , s ( 1 2 ) « 2 » ( A T T R (17,s READ be BEEP .1,be
1106 L E T . » = S C R E E N « (17,X) IF C (12))=70), INK c (12) ,V $(12) LET 4 9 1 1 DATA 4 , 2 3 , 8 , 2 0 , 1 1 , 1 6 , 4 , 2 3 . 8
O D E W $ >115 OR C O D E » T < 1 0 0 T H E N L b3= 1 ,20,11.16,5,24,9,21,12,17,5,24,9
ET • » = " " 2 0 2 2 IF («=12 OR di =12) AND («=8 .21,12.17,7,26,11,23,14,19,5,24,
1110 P R I N T INK 6,AT 1 7 , x ; 0 * ( 3 * ( x OR d i =8) T H E N B E E P 1,50 GO SUB
/£=INT (X/2))),AT 1 6 , X , " R ' 5400 GO SUB 4 9 0 0
1115 IF z >0 T H E N IF tr=l T H E N PR 2 0 2 3 IF («=4 ._ . OR_ AND (• =6 O 4 9 1 2 IF INKEYS O " " T H E N GO TO 50
INT AT 17,X + 1; INK C(Z),V$(Z) L =6) AND C2=4 AND C3=5 T H E N G
ET s ( Z ) = X • 1 LET r ( z ) = h b LET tr O SUB 9 9 9 8 LET C3=6: GO SUB 300 GO TO 4910
=0 0 PRINT AT 1 9 * 2 » ( d i = 6 ) , 1 3 , INK 5010 PAPER 0 INK 6 CLS
1117 RETURN (RND<4)»3;u»(C3> GO S U 8 9 9 9 9 B 9998 LET
1200 IF X =26 T H E N G O SUB 2500 L 2 0 2 8 LET s ( « ) = 0 LET r(«)=0 LET 1 T U FUGA HA
»«=••• LET trsl: B E E P .1,30 RE FRACASADO.
TURN
1202 IF »»< T H E N LET h9 = - 2 G 2500 PRINT AT 1,0,9» LET « 1 = 5 INTENTARLO -
O SUB 2000 RETURN AUTODESTRUCCION"
1 2 0 4 L E T A * = S C R E E N T (17,X> IF C 3000 FOR a = 1 T O 4 FOR b = l T O 7: 5 0 1 5 IF (•=8 OR di=8) AND (B=12
ODE «(<100 OR CODE X»>11S THEN L P R I N T AT 19,2; O U E R 1, INK b," OR di=12) T H E N LET l«=l«( T O 36)

MICROHOBBY ESPECIAL
21

'HRS CONSEGUIDO FUGARTE1 HEN PRINT RT 17,s(J)•(POINT (8«S 6940 IF URL t S >31 THEN PRINT INK
i jl + 3 , 48) =1) + (POINT (8 «s ( j ) +4 , 30 6,RT 15,URL <»-31;c»( TO 2>,RT
) =0) ; INK c (j) , vt ( j) 16,URL t»-31,C»(3 TO 4I,RT 17,UR
5963 NEXT j RETURN L ($-31, c $(5 TO ) GO TO 6960
DOMIZE USR 64539 5964 IF hbsr(15) RND vi<5 THEN P 6950 PRINT RT 18,URL t», INK 6,d
5030 RESTORE 5031 FOR 1:1 TO 48 RINT RT 17,s<151, INK c(15),v»(l
READ bp BEEP . 15 , bp 5) 6 9 6 0 NEXT V LET u = q + 1 LET q=q+
5031 DATA 0,19,4,16,7,12,0,19,4, 5965 IF h b = I* (13) RND bl = l THEN P 2+2 «URL P»(U> RETURN
16,7,12,-3,16,0,12,4,9,-3,16, 0,1 RINT RT 17,s (13) ; INK c(13),v»(l 8990 RESTORE 8991 PRINT RT 10,9
3) , FLASH 1,"LEYENDO DflTRS" FOR a
5 9 6 6 IF j (h b) = 1 THEN INK S: PRIN =64245 TO 64284 RERD di POKE a
T INK 3 +RND4 4 , R T 14,25; "V" PLOT ,dt NEXT a
5040 1F INKEY $ = TMEN GO TO 50 211,63 DRRU -3,0: DRRU 0,-2 D 8991 DRTfl 237,86,201,62,250,237,
70 71,237,94,201
5050 IF INKEY$="r THEN GO TO 51 8992 DATfi 1,25
RINT RT 17,s(14), INK c(14),v«(l 229 , 6 , 10 , 62 . 23o ,
5060 NEXT a GO TO 5 0 3 0 254,237,95,211,254,16,243,225,20
5070 GO SUB 9 9 9 7 RRNDOMIZE USR 5968 IF h b =42 RND bl=0 THEN FOR 9,193,241,255,251,237,77
64S39 GO TO 4 a = 1 TO 3 PRINT RT 14+a,S, INK 5
5100 CLS P R I N T RT 6 , 9 , F L R S H 1 i" < " ;RT 14+a,9,"<": NEXT a PRIN
. "RUTODESTRUCCION" , 0 0 , "PULSO UNO T INK c(13),RT 17,s(13);"q"
TECLR PRRfl D E T E N E R L A " FOR R=49 5969 IF h b =9 THEN PRINT RT 1S.26
9 TO 0 S T E P - 1 PRINT RT 1 0 . 1 4 . R ;i»(l);RT 16,26, i *(2) ;RT 17,26;i 3,126,203,47,lé2,18,19,35.126,18
«(3) ,19,35,11,11,121,176,32,239,33,2
§970 RETURN 4,245,34,S4,92,201
5105 IF INKEY» o " THEN GO TO 50 6005 INK 5: FOR V=2 TO 3«URL p»( 9004 DATA 14,10,33,0.64,17,0.72.
00 q + l) STEP 3 LET t $ = P » ( q + v TO 9» 6,10,16,254,237,95,0,0,166,229,9
5110 NEXT R FOR TO 10 RUNO v+l) 8,107,166,18,225,3S,19,62,72,188
OMIZE USR 6457S NEXT 6030 IF URL 1*>70 THEN PRINT INK ,4 0,2,24.232,13,32.223,201
5400 FOR a = 1 TO 100 NEXT URL P»(q+V+2),RT URL <$-70,25," 9006 DRTA 6,255,62,248,245,62,23
ER 5 INK LET 1=18. LET t", INK (URL p $ (q +v + 2) -1) , RT URL 9,211,254,237,95,211,2S4,241,21
fl=-l LET 1=1 GO SUB S600 G <»-71,2S;"a" PLOT 208,(21-(URL 254,214,8,254,0,32,238,16,234,
t<-70))<8: DRRU 4.0 DRRU 0,1
DRRU -4,0 GO TO 6070 9010 DRTA SI,205,2,42,17,169,130
LET fi=l GO SUB S65 6040 IF URL <*>41 THEN PRINT INK ,226,226,130,14 5,41,42,146,129,2
0 GO SUB 5420 NEXT c URL p $(q + v + 2) ,RT 1,URL <«-40,n» 25 ,226 , 130 , 169 , 17 , 42 ,2 , 203 ,51 , 24
5410 CLS LET fl=l LET fi»-l: (1) ;RT 2,URL < t - 4 1 ; n $(2 TO ), IN 3,129,153,36,24,0,51,204
GO SUB 5600 GO SUB 5420 K (URL p« (q+v+2! ) -1, RT 1,URL <«- 9020 DRTR 71,65,149,136,84,64,17
541S CLS GO SUB 5650 GO SUB 5 41,"a";RT 1,URL <«-39,"a" GOTO 9,204,71,65,137,148,84,72,129,13
700 FOR b = 29 TO 11 STEP -1 FOR 6070 S,204,179,64,84,136,149,65,71,20
1=1 TO 3 B E E P .005,0 NEXT g 6050 IF URL < S < 21 THEN PRINT INK 4,51,0,24,36,153,129,24 3
hRINT INK 1 , R T 20,b,"xy " NEXT URL p $ (q + V + 2) ,RT URL <*,1,"£", 9030 DRTR 0,1,1,1,1,1,125,71,127
b GO SUB S 4 3 0 RETURN INK (URL p $(9 +v +2) -1) ,RT URL <«- , 69 , 69 , 125 , 16 , 1 , 1 ,0 , 255 ,0 , 118 .0 ,
5420 FOR a=29 TO 1 S T E P - 3 FOR 1,1,"a" PLOT 4,(21-URL <$)«8 D 2S5,0,109,0,54,0,27,0,109,0,255,
b=0 TO 2 RRU 3,0 DRRU 0,1 DRRU -3,0 0,254,1,13,1,2S5,1,177,1,217,1,1
5425 PRINT RT (,a-b, INK 1 ," 6070 NEXT V INK 6: LET 9=q+2+3« 09,1,181,1,2SS,0
; RT 1+ I > -b¿ ' FOR 9 : í TO 3 URL pt(q«l> RETURN 9040 DRTA 0,60,66,66,66,66,60,0,
BEEP .005,0 NEXT 9 NEXT 6120 PRINT RT S y , S x ; INK <,a*( T 0,124,66,90,90,66,124,0,255,85,8
LET 1=1«fl NEXT a RETURN O 4):RT s y + 4 , s x , a $ ( 9 TO ) FOR l 5,255,0,0,0,0
5430 POKE 65304,0 POKE 65305,0 =1 TO 3: PRINT RT S U + I . S X , INK t 9050 DATA 60,60,36,60,63,63,60,6
POKE 65306,184 PRINT INK l.RT ,a»(5), INK 5, PRPER 7,a»(6 TO 7 3 , 255 , 64 , 92 , 87 , 94 , 94 , 255 , 64 , 7 , 25
20, 11, " X V - FOR c=10 TO 4 STEP - ), PRPER 0, INK < ; a < (8) NEXT l 3,253,143,223,25S,255,255,255,0,
2 FOR b=l TO 2 FOR a=l TO 10 LET 9 =9+6 RETURN 103 ,231 ,237 ,2S3,255 ,0 ,248 , 136 , 16
NEXT a PRINT RT 19,c-b;"R ";RT 6220 PRINT RT sy.sx; INK < , b» ( T 8,216,255,253.253,253
£0, c-b,O»(2 + b) BEEP .005,0 NEX O 5);RT Sy+1,SX;b«(6), INK URL p 9060 DATA 2SS.114,218,250,250,2S
T b NEXT c PRINT RT 19,2," "; fi
T 20,2," " RETURN S (q +6) , b*(7 + 0 9); INK <,b»(10),
T sy+2,sx,b»(ll), INK URL P»(9 +
6) , bS(12 TO 14); INK <,b»(15);RT
0,255,2
9070 DATA 1,2,4,9,17,32,99,164,4
0,4 7,4 0,36,35,32,63,17,17,17,17,
5) 'EP i:
FOR a =1 TO 23 STEP 11 PR Su+ 3,SX,bt(16 TO ): LET 9=q+7 57,57,19,3,3,128,64,32,144,136,4
INT RETURN ,198,101,148,148.20,36,196,4,252
6320 PRINT RT s y , S X , INK t.9»( T ,136,136,136,136,156,1S6,200,192
NEXT a: RETURN O 3),RT sy+l,sx,g*(4 TO ) LET 9 , 192
5650
50 PRINT INK 2,RT 21,0,»«+•»( =9*6: RETURN éolo
9080 DRTA 0 0,0,0,0 0,51,50,S0,1
5) FOR a =1 TO 23 STEP 11 PR 6420 PRINT RT sy.sx, INK t,e»( T 22 , 74 , 122,,2¿5
74^122 2S5!,2él',
255 . 32 , 32 , 0 , 12 , 12 ,
SéTiltóTíéTlá'
INT INK 7 j f V T ^ l + a , " • J | M U " , R T O 3) ,RT sy +1,sx; INK t-l,e»(4 TO 12,30,63,179,191,179,179,179,191
12,30,63,179,191,179,17§,179,191 _
5 . 1 +a , " , RT 12, 1 +a , ) LET 9=9*6 RETURN ,255,255,0,0,0,0,0,0,0," —
,255,255,0,0,O,0,0,0,0,0,56,16,1
JL" NEX"r a : RETURN 6520 PRINT RT sy.sxtl; INK t;t«( 6 , 4 2 , 5 8 , 5 8 , 2 5 5 , 2 5 5 , 4 ,. 4
ó
5700 PRINT RT 19,1, INK 1;"Z";RT 1) ,RT sy + 1,SX, INK t-l,l»(2 TO ) 9090 DATA 240,240,240,240,240,24
20,0."<l" RETURN LET 9=9+6 RETURN O,24 0,24 0,240,240,252,252,252,25
5750 PRINT RT 20,30, INK 6620 PRINT RT sy.sx, INK t,(»( T 2,240,240,15,15,15,15,1S,1S,ÍS,1
FOR c=0 TO 28 STEP 2 FOR b=l T O 2),RT sy»l,sx;f»(3 TO 41.RT sy 5,15,15,63,63,63,63,15,15
O 2 FOR a =1 TO 10 NEXT a PRIN •2,SX,Í»(5 TO ) LET 9=9+6 RETU 9100 DRTA 2SS.95,103,63,16,23,31
T RT 19,C+b;" O", RT 20,c+b,o»(b) , 7 ,255 , 199 ,255 ,255 ,0 , 255 , 255 ,255
BEEP .005,0 NEXT b NEXT c P 6705 LET . =URL p*(qtl TO_ q . +2) ,255,250,230,2S2,8,232,248,224
9110 DATA 255,129,189,153,153,66
OKE 65304,6 POKE 65305,5 POKE
P* (9+7)
S
LET sX =URL P $(q+3 TO q
TO 9+6)
9+4)
+4) LET
LET t=URL ,36,24,7,3,0,O,32,83,9S,248,0,19

S910 PRINT RT 0,0, PRPER 2, INK 6720 PRINT RT


0, f t , jNK 4 j RT PRPER 0 , " ^ PRINT INK t,
NEXT l PRINT INK t , j $ C 9120 DATA 96,40,116,92,160,212,5
5920 INK 5: PLOT 0,167 DRRU O.- 672S INK t PLOT (SX+1)«8+2,1167: 3,121,254,188,132,72,112,0,48,56
135 DRRU 3,0 DRRU 0,135 PLOT DRRU 0 -((Sy«8
t " " —
212,167 DRRU 0,-135: DRRU 3,0 «8+5,167 dSrli 0 , - ( (sy »8> -9) I
DRRU 0, 135 INK 6 NK 6 LET 9=9+8 RETURN
5940 LET q=p(hb) LET ql=p(hb + l) 6820 PRINT RT su,SX+1, INK t,l»(
FOR r=l TO URL ptlql-ll 1),RT sy+l,sx,l»(2 TO 4),RT sy+2 9160 DATA 24,36,66,90,90,90,90,6
5945 IF CODE P$(q)<57 RND CODE p ,sx+l;l*(S),RT sy+3,sx+l,ií(6) 6,0,31,32,79,79,32,31,O,66,195,2
»(q)<>55 THEN LET sy=URL p»cq + l LET 9=9+6 RETURN 4 , 36 , 36 , 24 , 195 ,66 , 0 ,24 8 . 4 ,242,24
TO 9 +2) : LET S X = U R L p$(q»3 TO 9» 6905 FOR V =2 TO 2«URL p » ( q + l> ST 2 , 4 , 248 , 0 , 90 , 90 , 90 , 90 , 90 , 90 , 90 , 9
4) LET t=VRL p $ (q+S) EP 2 LET t$ = p*(q + v TO q+v + 1) 0 , 90 , 90 . 90 , 90 , 66 , 36 , 24 , 0
5950 GO SUB 6000 +URL P*(q)«100 6915 IF URL t$ >31 THEN FOR e=0 T 9170 DRTR 0,18,36,64,17,32,68,8,
NEXT f O 15 PRINT RT e,URL t»-31,"b" 2S5 ,9,9,9, 2SS , 33 , 33 , 33
5960 IF h b = C (12) RND b3 = l THEN P 9180 DRTR 255,126,24,24,24,24,24
RINT RT 17,s(121; INK i»* (1
, RT 1S , 0, h* (1) , RT 1 6 , 0 , h K 2 ) , R T 24.24,24,24,60,255,195,126,78,78
5961 GO SUB 5962 GO TO 5964 IF 17,0;h *(3) GO TO 6960 ,36,24,48.224,192,O,0,138.81,146
hb = 10 THEN PRINT RT 15,0,h((l), 6930 IF 1 $ = "26" THEN PRINT INK 6 ,73,149,126
RT 16,0,h»(2),RT 17,0,h»(3> ,RT 15,26;>«(1),RT 16,26,.«(2),R 9190 DRTA 8,24,24,16,8,24,24,16,
5962 FOR j = l TO 11 IF hb = r(_i) T T 17,26;i»(3) GO TO 6960 24,60,78,94,159,1S9,255,0,189,18

MICROHOBBY ESPECIAL 21
22 P R O G R A M A

32619630312130701530712730719631 81,1721,1756,1795,1832,1870.1912
11230115660110680592002678060568 ,1951,1993,2011,2077,2120,2162,2
06197203111320911629200265" 2 0 7 , 2 2 1 8 , 2 2 9 3 , 2 3 2 9 , 2 3 7 7 , 2 1 1 9 ,216
9 1 2 0 DATA " 1 0 5 0 5 7 1 0 5 2 1 1 5 0 1 1 3 6 5 0 9 1 , 2 5 0 5 , 2531 , 2 5 6 9 , 2 6 0 7 , 2 6 1 2 , 2680 ,
13502036737910026061968050166052 2721,2765
07 7 0 7 0 8 0 9 5 3 1 0 0 8 1 3 1 0 1 6 3 0 1 5 3 1 9 1 0 0 7 9 6 1 0 READ z» D I H Stlll.l2> LET
20101612011273201195660906580916
10108692001175030865032051080171
07121308213910026111867050805580
80166091371092112031056017779200 »="" NEXT z
167" 9620 DRTA " E E E E L E E E L E L L L E L L L L A L L
S,129,111,161,213,165,í29,255 9 1 3 0 DATA " 1 0 3 0 5 1 1 0 3 1 7 5 2 0 9 0 7 6 7 2 0 L A L A A A L C8PMBBCDTEC
9210 DATA 6 , 9 , 9 , 6 1 , 5 6 , 1 7 6 , 2 2 4 , 6 1 91131011169126630706180613710719 L M P H O A E O A A I I N . L A A E L S C M R S N N C F R L SO
,21,36,126,129,109,189,129,126,0 60701609371179717551160692002655 IflMBRCETHUUEflUGPEOEORAUEET JERORN
- - 25S,129,173,129.255,0,21,21 01016608011106125601207509203015 N O FR AE A R O R O ET FT
, 36 , 90 , 2 5 5 , 231 , 126 , 0 . 251 , 2 ¿ 1 ,; 1 1 9 2 0 0 2 6 7 8 0 1 0 5 6 3 0 5 1 2 1 8 0 1 1 0 5 2 0 9 1 1 E OE
,0,223,223,223 730208S8069300261067060610510905 9710 DIM U K 8 . 9 ) LET u » < l > s " U A C
9250 DOTO 2 2 1 , 2 3 2 , 1 1 1 , 1 6 8 , 1 3 1 , 7 , 1109177509116037557915179200516"
2,0,7,23,9,21,97,221,61.0 9 1 1 0 DATA " 1 0 5 0 5 1 1 0 5 1 9 7 6 0 1 1 3 5 3 1 0
9260 DOTO 8 , 2 0 , 2 0 , 2 0 , 2 0 , 2 0 , 2 0 , 1 2 13691265206051720617658061230250
7 , 0 , 0 , 1 8 1 , 1 9 1 , 2 5 5 , 181 , 191 , 16 , 0 . 0 6 5 7 5 9 2 0 0 2 6 5 5 0 7 0 2 5 7 0 6 0 9 1 1 6 1 0 9 1 3 7 6 LET u»(5)r-flPAGRDO" LET U$I6)
,129,213,253,127,251,1,8,28,31,7 09191010319200376103051305127103 ="ENCENDIDO" LET u » C 8! = "F IRMADO
3,85,73,65,255,63,65,2SS,129,181 17580907680915191266601015201117 LET u t ( 7 ) = " S I N F I R M A "
1^192,2S5,1,13,109,97,13,13,1 36012011100865101659200266705030 9800 LET q»="" FOR 1=1 T O 17 L
1 3 0 0 8 0 1 6 7 0 5 1 1 0 7 1 2 0 8 1 7 1 7 0 2 1 0 78169
9 3 0 0 R E S T O R E 9301 LET £ « = " " FO 200126301015S0112730120360905610
R t=l TO 11 RERD V* LET p » = p $ « 811110920591177" 9850 DIM J(72) F O R V = 1 T O 72 L
u» NEXT l 9 5 0 0 D I H p(73) F O R o = l T O 73: R
9 3 1 0 DflTfl - 0 2 5 1 3 8 2 2 9 2 2 6 1 7 1 0 2 0 3 1 2 ERD dat LET p c o l r d a t NEXT O
10073560716730520661110570181380 9 5 1 0 DATA 1 , 1 1 , 7 9 , 1 1 1 , 1 5 1 , 1 8 3 , 2 1 PRINT AT 10,9,'
50851091167051805192002666020577 8,259,298,332,372,111,151,186,52
101509120805 73203185692002652020 3 ,559, 595 ,632 , 671 , 709 , 717 , 779,81
37101607106133311011610205920026 6,851,897,931,971 1006,1015,1082 PRESENTA
67080106101105803203510177920018
3" 'Lfl FUGA *" GO SU
9 3 2 0 DflTfl " 1 0 2 0 3 5 0 1 1 1 7 1 0 2 1 3 2 2 1 0 0 9 5 2 0 DATA 1 5 2 9 , 1 5 6 1 , 1 6 0 S , 1 6 1 5 , 1 6 8 9991 P R I N T AT 0,0,<t«
87131120391266103023021225166090 9910 LET l $ = "INSTRUCCIONES'>" PR
85705160611091979200266302021302 INT AT 3.9; INK 0 , 1 » GO SUB 999
21S20901322091923S0S127920007660 5 GO SUB 9996 R R N D O M I Z E USR 61
30350181160321710312381007191136
10303310112550808131121203067776 T H E N PRINT RT
62691266" =1 TO 50 NEXT
9330 DATA " 7 0 6 0 3 0 5 5 7 0 6 1 8 0 5 1 1 0 8 1 2
T M E N PRINT BT
11,21, "NO" FOR a = 1 T O 50 NEXT
03610311171019057016229226185301 a GO SUB 9 9 9 7 R A N D O M I Z E USR 6
03160805560512621019730162192002 1539 RETURN
6610301S311066207161702516732930 9916 GO T O 9 9 1 2
026185" 9 9 2 2 GO SUB 9 9 9 7 R R N D O M I Z E USR
9310 DATA " 3 0 3 0 2 6 6 0 9 0 6 5 5 0 6 1 2 1 1 0 2 61539 LET l»=" TE A C A B A S DE FUG
20301807920011610301510320120911 AR DE LA CARCELY E R E S B U S C A D O PO
73038161225369203195608013608201 R T O D A LA P O L I - C I A . E S T E P A I S YA
7090907 7 8 0 3 1 2 5 0 2 0 3 6 7 3 3 9 1 2 6 6 2 0 1 0 1 NO ES S E G U R O , POR LO OUE T E N D R A
72201173630908180011501107920026 S OUE M A R C H A R T E A L E X T R A N J E R O PAR
61030315101271032130307279151693 R INICIAR ALLI UNA NUEUA U I D A . "
0026385" 9921 GO SUB 9 9 9 1 PRINT AT 0,0,q
9 3 5 0 DATA 101015310097706160510 t
17769200115803036803211609057310 9 9 2 6 LET l»=" D E B E R A S RECOGER DE
19S10712392260962080253110127703 TU CASA T O D O L O I N D I S P E N S A B L E Pfl
100856102219100260 75158020356100 RA P O D E R CO- GER EL A U I O N Y DIRI
575031531101113012261092259200S1 G I R T E A TU P I S O EN EL E X T R R N J E
73030512080156806127101183010639 R O . P E R O E S T O NO TE R E S U L T A R A NAD
226196"
9360 DflTR " 6 0 5 0 1 3 1 0 3 1 3 7 2 0 8 1 0 5 2 5 0
92010211673192002667060508531009
9 9 2 8 GO SUB 9991 PRINT AT 0,0, q
1 9 3 8 LET L(=" UN D U R O O B S T A C U L
8310109650 7201028126079300263158 O LO R E P R E - SENTA L O S O B J E T O S . N
0603720210516081631052069200265" O TODOS TE S E R A N LrT ILES . NECESI
9370 DflTR " 1 0 5 0 5 1 5 0 1 1 3 6 3 0 7 1 9 7 2 0 9 T A R R S DE U N O S P A R A C O N S E G U I R OTRO
12350112792000963020866080556011 S . A O U I ENTRA EN J U E G O LA L O G I C R .
11107205018079126620307162031137 BUSCA Lfl U T I - L I D A D DE L O S O B J E T O
20905522091665930026175105011105
12S10519351116792001056030363011
5. "
03108125709170679226385" 9 9 1 0 GO SUB 9991 PRINT RT 0,0;O
9380 DATA " 8 0 1 0 1 2 8 0 1 1 2 7 8 0 1 2 0 1 0 0 8
08680816592001767070610531001631 9 9 1 6 LET l»="
01131082210171792265065010175011 ' ! ' SUERT
91509116201102S02811107930026166 Eü!" GO SUB 9991 P R I N T AT 0,0
,q>: R E T U R N
9 9 9 1 GO SUB 9 9 9 5 PRINT AT 1,0,
350612601536930026177" INK 0 , L » GO SUB 9996 RANDOMIZE
9390 DflTR " 7 0 1 0 3 0 1 1 7 0 1 1 7 0 1 5 8 0 8 0 5 USR 6 1 5 3 9 FOR A=1 TO 100 NEXT
68001971081139200106601031601165 A 3 9 GO R SUB
60801760812360821691266303011303 15 ETUR9N997 R R N D O M I Z E USR 6
20520803352081971106126930026106
70607066509065803207109171018059
30026186601065601193309011309207
505126930026186"
9100 DATA " 1 0 1 0 1 7 1 0 1 1 8 5 1 0 5 1 2 6 1 1 1
05111119592001067090513580308100 9996 POKE 6 1 5 1 8 , 2 0 POKE 615S3.2
3116020878139200175201031S201193 POKE 61551,255 POKE 615S9,1
66090656091915051279200186705050
POKE 61551,0 POKE 61559,166
9 1 1 0 DATA " 8 0 1 0 1 7 3 0 5 1 1 1 8 0 1 1 9 5 2 0 9
10630210678793002618610101510119
6110017110191107113015279200097S
03136507055507131507207511133932 51 RETURN

MICROHOBBY ESPECIAL
CPC-6128

SISTEMA COMPLETO CON MONITOR


EN FOSFORO VERDE, MANUAL EN
CASTELLANO, GARANTIA OFICIAL
AMSTRAD ESPAÑA, DISCO CON SIS-
TEMA OPERATIVO CP/M 2.2 Y LEN-
GUAJE DR. LOGO, DISCO CON SISTE-
MA OPERATIVO CP/M P L U S (CP/M
3.0) Y UTILIDADES, DISCO CON SIETE
PROGRAMAS DE OBSEQUIO

84.900 Pts. + i.v.A.


SISTEMA COMPLETO IGUAL AL ANTE-
RIOR PERO CON MONITOR EN COLOR.

119.900 Pts. + IVA


2 • ANIDAD DE DlSm °ES V

> • c°nectores Y Cpm/


i
/MIO*
E S P A Ñ A
Avd. de Mediterráneo. 9. 2 8 0 0 7 MADRID.
Tels. 4 3 3 4 5 4 8 - 4 3 3 4 8 7 6
Delegación Cataluña: C/. Tarragona, 110,
0 8 0 1 5 BARCELONA - Tel. 3 2 5 10 58
24 CODIGO M A Q U I N A

SPRITES PARA EL
PECTRUM
Actualmente todo ordenador personal que aparece en el mercado
incluye la opción de sprites y la posibilidad de manejarlos desde el
Basic. Sinclair no los incorporó en su tiempo al Spectrum,
probablemente por no disponer de memoria para ello, pero nada
hay que impida crear una subrutina en código máquina y una serie
de comandos especiales para usarla. Con esta idea hemos
desarrollado una rutina con la que tú también podrás controlar
sprites desde tus programas Basic.

L
as subrutinas de sprites pueden más modesta. Te permite definir spri- lo para situar el código objeto del lis-
ser más o menos completas o tes con unas dimensiones máximas de tado 1 a partir de la dirección 6 0 0 0 0
sofisticadas, pero todas ellas tie- 4 0 x 4 0 pixels, asignarles un atributo, (en este caso no es reubiclable) y sal-
nen un punto en común: sirven moverlos por la pantalla y detectar varlo en cinta con longitud 1006.
para mover fácilmente bloques gráfi- choques entre ellos. El programa 1 está pensado para
cos en alta resolución y de dimensio- No hay ningún límite para el núme- aquéllos que no tienen ni ensamblador
nes variables (sprites) por la pantalla, ro de sprites que quieras definir, ex- ni cargador, sólo es necesario trans-
utilizando comandos sencillos en un cepto el impuesto por la cantidad de formar las líneas del listado 1 de for-
lenguaje de alto nivel, Basic en nues- memoria libre de que dispongas. ma similar a como se ha hecho con la
tro caso. El sistema de impresión utilizado es primera y darle al R U N .
Entre las opciones que suelen ofre- del tipo XOR (OVER 1). Esto elimina
cer están la ampliación (que permite cualquier posibilidad de asignar prio-
hacer un sprite un número de veces ridades (adiós a tus esperanzas de ha-
más grande sin variar por ello su gra-
do de definición) y la asignación de
cerle la competencia a Ultímate), pe-
ro también tiene sus compensaciones:
COMANDOS
una prioridad a cada sprite. Así, cuan- hace la rutina mucho más corta y bas- Dispones de un total de seis coman-
do un sprite (A) se imprime sobre otro tante más rápida, factor, este último, dos:
(B), de mayor prioridad, sólo se pre- decisivo, sobre todo cuando va a ser RESET (X). Si X es cero, los datos de
sentará en pantalla la zona de A que usada desde el Basic, que no se dis- los sprites se almacenarán a continua-
no esté sobre B, con lo que se consi- tingue precisamente por su velocidad ción de la subrutina (ten esto en cuen-
gue que parezca que A pasa por de- de ejecución (y menos aún el sistema ta a la hora de reubicarla). Si es dis-
trás de B. Esta prioridad suele venir de intérprete utilizado por el Spec- tinta de cero, se tomará como direc-
determinada por la posición del spri- trum). ción inicial de la zona de datos y to-
te en un espacio tridimensional, pro- Si dispones de un ensamblador po- dos los parámetros de los sprites se si-
duciendo efectos tan impresionantes drás situarla en la dirección que pre- tuarán a partir de ella. Este comando
como los conseguidos en algunos pro- fieras, aunque es recomendable que tienes que utilizarlo siempre al comen-
gramas de casas de software como Ul- sea por encima de la dirección 32767 zar el programa, de otra forma el or-
timóte. (#7FFF). Aconsejamos, igualmente, si- denador se quedará bloqueado cuan-
tuar el stack por encima de esta direc- do vayas a usar la subrutina. Basta
ción con un Clear 32999 al menos (cui- con emplearlo una sola vez al inicio

LA S U B R U T I N A dado con no montarlo encima de la


rutina).
del programa, pero si lo vuelves a uti-
lizar durante la ejecución de éste, bo-
Si no tienes ensamblador, pero sí el rrará los parámetros de todos los spri-
Nuestra subrutina, si bien cumple
cargador de código máquina, utilíza- tes, de manera que la situación será
con las condiciones básicas, es mucho

MICROHOBBY E S P E C I A L
SPRITES PARA EL SPECTRUM 25

las líneas que lo compongan (que coin-


ciden con la dimensión de éste).
Como esto puede resultar bastante
aburrido, sobre todo si defines sprites
grandes, te ofrecemos un programa
que lo hace por ti (programa 2). Para
utilizarlo adecuadamente ten en cuen-
ta los siguientes puntos:
1. Ajusta siempre los gráficos a la
esquina superior izquierda, es decir,
no dejes nunca líneas o columnas en
blanco arriba o a la izquierda. Si, por
ejemplo, tienes un gráfico de 20 x 13
que tiene las tres primeras líneas y las
dos primeras columnas en blanco,
puedes redefinirlo quitando éstas y
dando como dimensiones 18 x 10, es-
to te supondrá tanto un ahorro de me-
moria como de velocidad de ejecu-
ción.
2. Una vez ajustado, divide el grá-
fico en bloques de 8 x 8 pixels (empe-
zando siempre a contar por el extre-
mo superior izquierdo) y utilízalos pa-
ra definir los UDG del Spectrum. Si te
salen más de 21, parte el gráfico en
dos y trabaja con cada parte como si
se tratara de un gráfico normal, sólo
tienes que recordar poner la parte in-
ferior a continuación de la superior al
pasarla a la memoria.
3. Modifica la línea 20 del progra-
ma hasta que la figura completa (o
partida si es demasiado grande) apa-
rezca, tal como quieres definirla, en la
esquina izquierda de la pantalla al eje-
cutar el programa.
4. Dale la dirección a partir de la
cual quieres situar los datos. Si este
gráfico es el primero del ciclo, ésa se-
la misma que si no hubieras definido A T T = 1 2 8 * F L A S H + 6 4 * B R I G H T + INK rá la dirección que tendrás que espe-
nada. Si ATT = 0 el ordenador entenderá cificar en el comando DEFINE. Si en
DEFINE X: (Dx, Dy, F, Att, Dir). De- que quieres atributos transparentes, es cambio no es el primero, la dirección
fine el sprite X según los parámetros decir, los atributos del sprite serán los tiene que ser la siguiente a la última
que le siguen. que encuentre en cada momento en la del gráfico anterior.
— Dx: dimensión horizontal en pi- pantalla. 5. Especifica las dimensiones del
xels. — Dir: dirección de los datos, indi- sprite en pixels, procura no equivocar-
ca la primera dirección a partir de la te porque si cometes algún error ve-
— Dy: dimensión vertical en pixels.
cual está almacenada la información rás, cuando utilices la subrutina de
— F: número de fases (gráficos) gráfica del sprite. Si el sprite tiene va- sprites, que algunos gráficos aparecen
que componen un movimiento com- rias fases sólo tienes que dar la direc- cortados o tienen trozos de otros y ten-
pleto. ción del primer gráfico, el ordenador drás que volver a introducirlos en me-
— Att: atributo (color de la tinta, supone que el resto está a continua- moria de nuevo.
flash y brillo) que quieres asociar al ción de éste. Con estos datos el programa alma-
sprite. Notarás que no se puede defi- Los datos tienes que introducirlos en cenará el gráfico en memoria de la
nir el papel, esto es así porque el pa- memoria de una forma específica: pri- forma señalada anteriormente. Cuan-
pel se considera transparente siempre. mero los de lo primera línea del spri- do acabe te indicará la primera y últi-
El valor del atributo viene dado por te, seguidos por los de la segunda y ma dirección de la zona utilizada.
la fórmula: así sucesivamente hasta acabar con Apunta la dirección final más uno por

MICROHOBBY E S P E C I A L
26 CODIGO M A Q U I N A

si la necesitas más adelante como di- donde I es la variable con la que quie- ningún efecto, de forma que si haces
rección inicial de otro gráfico. res detectar el choque. un PRINT USR no se imprimirá nada;
El número que define el sprite pue- Si en algún momento introduces un si usas un LET, la variable no tomará
de ser cualquiera entre 0 y 255, pue- número fuera del rango establecido ningún valor distinto del que tenía (ex-
des definir, por lo tanto 256 sprites, cepto si uno de los comandos es TEST)
en cada caso, se producirá un error
pero lo más probable es que se te aca- y RANDOMIZE no alterará la secuen-
3.
be antes la memoria. cia de números aleatorios. De cual-
Se generará un error 1 si intentas quier manera, las instrucciones más re-
definir un sprite que ya haya sido de- comendables, debido únicamente a
finido. que son un poco más rápidas, son

SINTAXIS
PRINT y RANDOMIZE. Utiliza éstas
IMPRIME X: (Cx, Cy, F). Imprime el
siempre que te sea posible.
sprite X en el punto de coordenadas
Cx y Cy en la fase indicada. Recuerda, por úlitmo, que la instruc-
La forma base USR 6 0 0 0 0 : REM ción de llamada, junto con los coman-
La coordenada horizontal puede to- tiene que aparecer siempre, seguida dos de control de los sprites, tiene que
mar valores entre 0 y 255 y la vertical por el texto del comando que quieres ser, bien la única instrucción de una lí-
entre —16 y 175. Los valores negati- ejecutar (en mayúsculas) y de los pa- nea o bien la última de ésta. Esto se
vos indican que quieres imprimir por rámetros que necesite. Estos pueden debe a que el intérprete del Spectrum
debajo de la línea 0 . Tienes, en con- venir expresados por números en de- ignorará todas las instrucciones Basic
secuencia, acceso a las dos últimas lí- cimal, en hexadecimal (precedidos por que coloques después de ellos.
neas. #) o bien a través de variables numé-
Se producirá un erro 3 si con las ricas. No se aceptan ni expresiones ni
coordenadas dadas y la dimensión del elementos de matrices (no son válidas
sprite, éste no cabe completamente en 3*X—2 ó A(2,3)). Si se utiliza alguna
la pantalla.
La fase puede oscilar entre cero y el
variable no definida, el programa se
parará con un error 4.
MODIFICACIONES
número máximo de fases menos uno, Puedes encadenar comandos sin ne- Y MEJORAS
siendo cero la primera fase, uno la se- cesidad de volver a utilizar USR usan-
gunda, ... do como separador el punto y coma. Evidentemente las posibles variacio-
BORRA X. No necesita parámetros. Por ejemplo: nes se te irán ocurriendo a medida que
Borra el sprite X y restaura los atribu- uses la rutina y necesites ajustaría a tus
tos originales. RESET (0); D E F I N E 2: (...); IMPRIME necesidades. De cualquier manera,
Dará error 5 si se pretende borrar 2: (...) aquí tienes algunas ideas.
un sprite que no ha sido imprimido. es perfectamente válida y además es Variar las dimensiones máximas.
MUEVE X: (Cx, Cy). Borra el sprite más rápida. Puedes hacerlo siempre que el núme-
X de su posición actual y lo imprime en Si pones más parámetros de los ne- ro total de bytes no exceda de 256 (el
las nuevas coordenadas Cx y Cy en la cesarios (o menos), olvidas algún se- número real de bytes que ocupa ca-
siguiente fase (la fase vuelve a cero parador, das un comando erróneo o da gráfico del sprite es Dy* (1 + I N T
cuando se alcanza el valor máximo). incompleto o, en general, no cumples ( ( D x - 1 ) /8)).
TEST X: (SP1, SP2, ...). Comprueba algunas de las anteriores reglas de sin- Si quieres sprites más grandes, ten-
si el sprite X está en contacto con los taxis, conseguirás un error 2. drás que variar las líneas 2650 a 2700
sprites SP1, SP2, ... Puedes colocar to- Cuando se produce un error se de- y utilizar instrucciones que trabajen
dos los sprites que quieras, siempre tiene la ejecución del programa y en con datos mayores de 255.
que hayan sido definidos y estén im- la parte inferior de la pantalla apare- Recuerda ajusfar la longitud del buf-
presos en pantalla. Si en algún mo- ce un número, que indica el tipo de fer cada vez que cambies las dimen-
mento haces referencia a un sprite no error, seguido por una coma y la línea siones máximas.
definido, el programa se detendrá con e instrucción donde ha sido detectado. Otra posibilidad interesante puede
un error 0. El sistema de numeración es el normal ser introducir otros cuatro parámetros
El valor que devuelve es el número del Spectrum, pero aquí se sigue con- en el comando DEFINE. Dos de ellos
de sprites sobre los que está (sin espe- tando después de la instrucción USR. determinarán un punto del sprite y los
cificar cuáles) o un cero si no está so- Así, si la instrucción de llamada era la otros dos las dimensiones de un rec-
bre ninguno, es suficiente con que ten- sexta de la línea, el primer comando tángulo interior a él, de tal forma que
gan un pixel en común para que los se considera la séptima instrucción, el la subrutina de choque detecte cuán-
considere en contacto. segundo, la octava, etc. Esto te per- do están en contacto estas zonas del
Este valor es asignado a la variable mitirá localizar con mayor precisión el sprite y no todo el sprite.
del último LET. Para evitar problemas error. Tanto en este caso como en el siste-
asegúrate de que la instrucción con la Para llamar a la subrutina puedes ma utilizado normalmente, se detecta
que llamas a la subrutina tenga, en es- utilizar cualquier cosa que acepte la un choque cuando los rectángulos que
te caso, la forma LET I = USR dirección, forma base anterior, pues no tendrá definen el sprite están en contacto, in-

MICROHOBBY E S P E C I A L
SPRITES PARA EL SPECTRUM 27

dependientemente de que l o s gráficos


se t o q u e n o n o . DUMP: 6000
La r u t i n a d e i m p r e s i ó n e n s í o c u p a DIR: 60000
poco m á s de 1 5 0 bytes
I N C H ) y no hay problema para que
(PRINT e
N . ° BYTES: 1 . 0 1 0
R E S E T ( X ) . Inicia el á r e a de datos. 1 F311D9EDCD800RE7FEER 1776
la u t i l i c e s e n t u s p r o g r a m a s e n c ó d i g o 2 20353R475C3C3247SC11 596
D E F I N E X : ( D x , D y , F, Att, D í r ) . Define
m á q u i n a , s i e m p r e q u e le p r o p o r c i o n e s 3 FBEDD5E 7CD03ED302422 1495
el sprite X : 4 5D5C06002142EE095E23 666
los datos q u e necesite en cada m o - 5 56D579FE04D8CO3DEDCD 1602
— D x : dimensión x 6 2SED38033E00D779FE08 993
mento. — Dy: dimensión y 7 C8E 7FE28C83E02D7CD3D 1470
8 EOCD25ED30033E01D7FD 1298
E l c a m p o de cada s p r i t e t i e n e l o s p a - — F: n ú m e r o de fases 9 7001CD9DERFDC80DC6CO 1581
10 3DEDR72804FE2938033E 925
r á m e t r o s d i s t r i b u i d o s d e la s i g u i e n t e — A t t : atributo del sprite 11 03D7FD7704CD3DEDP728 1304
— D i r : dirección de l o s gráficos 12 F4FE2930F0FD7705CO3D 1470
forma: 13 EDR728E7FD7708CD3DEO 1561
I M P R I M E X : (Cx, C y , Fase). I m p r i m e 14 E6C7FD770C2809CD03EC 1306
15 0C04PF6110FDC60EFD77 1173
IY + 0 0 Longitud del campo el sprite X en las coordenadas Cx y Cy 16 005F1600FDE5E11936FF 1158
IY + 0 1 N ú m e r o del sprite 17 62FD7E04CDCEED6FFD5E 1587
en la fase indicada. 18 05CDB1EDFD7508FD7409 1380
IY + 0 2 / 0 3 C o o r d e n a d a s x / y en B O R R A X . B o r r a el sprite X . 19 CD4CEOFD7306FD7207C9 1467
20 CO37EBCOCREBFD7E0R3C 1586
pixels M U E V E X : (Cx, Cy). B o r r a el sprite X 21 FDBE0B3801RFFD770A18 1092
22 292101EEE3FDCB0D4628 1119
IY + 0 4 / 0 5 Dimensiones x/y en y lo i m p r i m e en la posición Cx y Cy en 23 033E0SO7CD12ECRFCDRR 1294
la siguiente fase. 24 ECFOCB0DC6DFC9CDCRE8 1969
pixels 25 CO3DEOFOBE0BO2C3ERFO 1849
T E S T X : (SP1, S P 2 , . . . ) . Comprueba si el 26 770RFDCB0D86CD12EC37 1246
IY + 0 6 & 0 7 D i r e c c i ó n del primer 27 C3BREC0E00FDE5DDE1CD 1748
sprite X está en contacto con alguno de 28 3DEDCD25EDD296ERDD8E 1782
gráfico 29 01282DFDCB0D462027FD 949
los sprites que s e e n u m e r a n . 30 7E02DD960230063DFO86 1003
I Y + 0 8 & 0 9 L o n g i t u d d e cada 31 041B03DD8E043014FD7E 893
gráfico 32 03DO960330063DDD860S 852
E R R O R 0. S p r i t e no definido. 33 1803FOBE0530010COFFE 1013
IY+10 Fase o gráfico actual 34 2920C00600CO2B2OC3FF 1014
E R R O R 1. S p r i t e ya definido. 35 2OCD9DERCD4CED7RB320 1489
IY+11 N ú m e r o m á x i m o de E R R O R 2. E r r o r de s i n t a x i s . 36 031118EFED534EEE3EFF 1236
37 12C9CD3DEDFO8604DRC3 1526
fases E R R O R 3. N ú m e r o fuera de rango. 38 ERD5CD3DEO2807FE11D2 1478
39 C3EAED44C610FEC030F5 1687
IY+12 Atributo asociado al E R R O R 4. V a r i a b l e no definida. 40 3CFD8E0538E43DFO7703 1228
E R R O R 5. S p r i t e no i m p r e s o . 41 D1FO7302C9FD7E03CDCE 1573
sprite 42 ED57FD7E02CDCEED5FFD 1701
43 7E05COCEED47FD7E04CD 1438
IY+13 Flaq de impresión 44 CEEO4FC9FD6E06FD6607 1*54
45 FDSE08FD5609FD7E0R47 1163
46 R728031910FOE5DDE1FD 1432
Seguida por la m e m o r i a suficiente 47 4603FD7E024FE607573E 919
48 BFCDRC22E5E52150EEFO 1664
para almacenar temporalmente los 49 4605FD7E04COCEED5F4B 1276
50 DD7E00DD2377230D20F6 1048
atributos de la z o n a de pantalla s o b r e 51 7RR7280336002310EC28 713
52 164R1CFD4605AF8310FD 1027
la q u e s e i m p r i m e e l s p r i t e . S i el s p r i t e 53 2150EE47R7CB1E2310FB 1124
54 0D20F3FD46054BFDESFD 1426
tiene a t r i b u t o s t r a n s p a r e n t e s n o se re- 55 213R5CFB76F3FDE11150 1370
56 EEE1E5C51RAE772C1300 1284
serva ninguna memoria. 57 20F8C1E1CD9BEC10EFE1 1774
58 C9247CE607C07DC6206F 1256

PROGRAMA 2
59 D87CO60867C908FD7E0C 1265
60 R7C87C0F0F0FE603F658 1103
61 67FOE5DDE1110E00DD19 1308
62 CDF5E8FD7E03E607FE07 1565
63 280104FD7E02E6072801 704

U N EJEMPLO
64 0C16003E20915FC508DC 793
65 F0ECD4FDEC23DD230020 1S13
66 F3C11910EEC9087EDD77 1390
67 00E638FDB60C7737C908 1116
PARA ACABAR LERR 29999 68
69
70
DD7E0077C91116EE0E00
ES1RR72815BE20042313
18F50C0C1R13R720FB1R
963
763
814
30 INPUT "DIRECCION 71 FEFFE1C816E60137C9FD 1906
72 2R4EEE4 71600FD7E00FE 1084
¿Qué mejor que un ejemplo para 40 INPUT "DIMENSION 73 FFC65FFD7E01B8J7C8FD 1622
DIMENSION DV LET DX = 1•INT 74 1918EFE5C5CD4CED7RR7 1S21
ver de u n a f o r m a práctica todo lo a n - DX-lí/8) IF DX > 5 OR DY>40 75 C2C3ER04C1E17BC906FF 1630
EN GO TO 40 76 E7FE2D200204E70E0RFE 1077
t e r i o r ? P a r a e l l o te o f r e c e m o s e l p r o - 50 FOR R=0 TO - LET D * 1638 77 2320050E10E 7182FCD18 636
-8•INT (R/8))*32*INT 78 2D302RCD8D2CD2R1EOFD 1383
g r a m a 3 . Este divide la pantalla en tres 79 E5FD213R5CCDB2283003 1139
partes y mueve simultáneamente dis- 60 FOR S=D TO D 80 3E04D7CRR1ER23CDB4 33 1349
LET D IR =D IR • 1 NEXT S 81 CDR22DDRC3EB5059FDE1 1706
ZONA OCUPA 82 06FFC804C9C5CDB8EDOR 1707
tintos elementos en cada u n a de ellas. 83 H1ER0600606F50591808 809
E n c o n t r a r á s camiones, u n a pelota de 80 INPUT "LO LISTO 84 4FCDB1ED09DRC3ERE5E7 1814
85 E1CDB8ED30F0EBC1C9CD 1973
tenis, a u t o s y u n típico comecocos p e r - 86 H930O0C3C3ERCD1B2D38 1382
87 03D630C9FE41D8FE4 73F 1389
s i g u i e n d o a u n típico f a n t a s m a . F í j a t e 88 D8CB6137C8D637C9H728 1448
90 IF R$="N" THEN STOP 89 063D1F1F1FE61F3CC9FD 935
s o b r e todo en el listado y en los peque- 100 FOR R=1 TO DY PRINT R, FO 90 213R5CFSCD6E0DF111F4 12S8
S=1 TO DX PRINT TRB 4»S,PEEK 91 09CD800R212021223B5C 635
ñ o s t r u c o s q u e s e u t i l i z a n (el u s o d e l a LET K =K•1 NEXT S: PRINT N
92 C630D7114913ED7B3D5C 1083
t i n t a y el p a p e l n e g r o e n l a p a r t e cen- 93 FBD5C9DFFE29C2R1ERE7 2003
9999 SRUE "CRRGR- 94 FE3BCR6CERFD213R5C11 1310
tral, p o r ejemplo) y empléalos en t u s 95 F409CD800R11B318FE0D 1086
96 28DCE718F9444546494E 1122
propios p r o g r a m a s . N o olvides asegu- 97 45005245534554005445 609
5354004D554556450042
rarte q u e tienes la s u b r u t i n a de s p r i - 4F52524100494DS05249
4D4 500FFR4ERB5EB67EB
tes e n m e m o r i a a n t e s d e e j e c u t a r l o . 101 1EEB33EB4DEB00000000 863

Y Feliz subrutina.

MICROHOBBY ESPECIAL
28 C O D I G O M A Q U I N A

GENS SPRITE COMENTADO


II OSÍ til» JR NC.ERR3 JR ATTR ¡Poae el ilntwto
21 SPR T
IE DI ¡Sin n i ttrupc LD (IY«I5),A
Jl LO 0 E,!RROR CALL COSCA EL D C.ll
<1 C AL W1B1A «C A P USH IY
51 RST l/l JR 2.ERR3 POP X I
íl CP E IA LO <IYHn,A ¡laitii FÍSÍS C AL C O CAE
71 JR N7,ERC2 ¡Error si io lo CALI COCEA ¡Coy el atributo C AL BUS»
II BFT2 LO A,(SL»PPC> ¡Increnenti ' C
I7 ¡No SÍ ictpti pipil JP N CE.R
M
NIC ¡cootdi or di LD (IYi|2>,A ¡Indi itriboto C P (IXill)
LO isuemi.A JR 2,0Ft< ¡Silti si es Ciro JR C ,Í H«
LO DE.RETSÍ CALL PW2 ¡Coy piraKtros BIT l,(lYe|3> ¡Tiene C'j( estir
PUS» DE NIC C ¡Increaenti lis JR N2,CIU
RST I » NIC e ¡en pintilli
CALL cwwo LO A,<1Y"I2> ¡Coordtnidi i
X» A SUB (IXi|2l
Jl NC.ERS! ADD AC , ¡Elido! Ii OOÍ JR NCC . N2
ID (OWD'.HL 0*2 Df3 ¡»=8iC O C
C A ¡lioriiontilaente
ID B.III AOO a,II! ¡Su» li longit AOO A.CIY'MI
LD K.DIKCC LD <IY>III,A ¡Inicii loegitg JR CH3
AOO NL.BC LO E,A CP (IXilO ¡Sg
i ne idilante
ID E.IHl) LD 0,111 JR NCC , N« ¡si no esti
RUS» IY LD A,(IY<I3I ¡Si rtilili el
:6t I) sobeotini POP NI SUB <IX<I3I
AOO tt.DE ¡Pont i l ndicidor di JR H CC
,M ¡pin It coordii
¡Cmpruebi ti ollset LO ÍHL),IFF ¡Fin di ditos DEC A
¡RrgreSi direc a
l nente LO 11,0 ¡Liapu H A CO AC ,X I H5I
;|in DEFNI E , RE SFT LO A,(!YH«>
271 CALL C06EA ¡Coy ti wrg U sprite JR CHS
CALL WI T8 ¡il «miro di bxtrs C P (IY.85)
281 CALL BUSCA ¡Esti definido 7 LO L,A ¡qui ocapi
ni JR C,SP2 ¡sigue si lo tsU JR N CO
.M
LO E,(IY*I5> NIC C
311 ERRI LO A, III CALL HIT ¡dil spnti RST 118
311 RST III LD <IY<I8),L ;Piti ÍSÍ viloi i l CP 1 29
321 ¡ LO (1Y<89>,H
331 • SPRITE NO DEFN
ID
IO • JR N 2
C.N 1
CALL TKDE ¡Coy l i LD 6,111
341 ; LD (IY*I«>,£
351 SP? LD AC , C AL S T
KBC
LD (IYi|7),D JP LEI
REI ¡Vuev
le 1 I
C AL SP3
;S» sil ti C AL TKK
¡Coy si» LO A 0
,
¡le sg
i oe '(' ¡Increaenti i l DR E
<11 ERS2 LD A,112 ¡contidor di Files JR N2.RE0F
«21 RST III LD OE.DRI SP
131 ; lili JR CW .I 2 ¡Si ilcinti rl aiiin LO I0ATSP),0E
« I < ERROR DE SINTAXIS I 1151 xOfi A ¡Coo
l ci il mdc
id
i or
«51 ¡ 1I«IW2 LO <]Yil«>,A
<41 DEFNI E CALL C06EA ¡Coy el nuaero de spr11 1171 JR PU
I LO ;i lapriae rl spnti IT
<71 CALL BUSCA ;No I el ne «oe 1181 ¡
JR NC.DFI ¡tslir «<!>><IO mi tas» LO «.,«78? ¡CMtii li diriccion CALL C06EA
<91 LD 1,11! ¡U coordeed ii i
91 RST III 1211 EX (SPl.HL AOO A,<IY<I4) ¡Tiene «ic cbi er el
Sil i 1211 BO0RA2 BIT I,(1Y'I3I ¡Esti il spnti aprm JP C.ERR3 ¡sprite coaprlto
JR 2,BRR2 ¡Cootinui si lo isti PUSH DE ¡Goirdi i
521 • SPRITE YA DEFN IDIO • 1231 LD 1,115 CALL COC AÍ ¡Coy li coordend ii •
531 ¡ >211 RST I I I JR 2C
. OR2 ¡Silti si is positiei
5«l DF1 LO <IYe|l>,l 1251 ; CP I I I N
¡ o se iCptin nwerot
551 CALL SP3 12«4 > SPRITE NO N I PRESO • JP NC,EM3
5íl SfT I.IIY'IJ) 1271 ¡ NES ¡Es wgitio
571 CALL C06EA 1281 BSR! CALL RSINT ¡Borri il spnti AOO A.III
56» M A 1291 ¡Cirrr i erro CP ICI
511 JR 2,ER»3 1311 ¡Ristiuri itributos JR NCC. OR1
sil CR 12' 1311 NIC A
«II JR C.0F2 1321 CP CIYeIS)
«21 ERR3 LD A, 113 1331 RET JR CC. ORI
«31 RST I I I 1341 ; DEC A
«41 1 1351 H I P1UH CALL COORD ¡Coy lis coordioidis
«51 i NLHERO F1KRA RANGO • LO <lYe|3l,A ii r
¡Inicia coordend
13«l CALL COSCA ¡r il carro di FiSi POP OE
al ; 1371 CR ÍIYtlI) ¡Esti fn riny ' LO I1Yí|2),E
«71 0F2 LD <IY'I«),A 1388 JR NC.ERR3 ¡Error si no is iccptible RET
«81 CALL C06EA 1391 LD <IY>1I),A ¡loicii li lili •> corso
«91 «DA lili PU
I LO RES l,<IY'13> ¡Sprite en pintilli LD A,<IY<83>
711
7,ERR3
CP 129 lili CALL PRINT CALL 1NT8
Hit SCF ¡Cirrr i un LD 0,A

MICROHOBBY E S P E C I A L
SPRITES PARA EL SPECTRUM 2 9

LO A,(1YH2) PUSH SC
Mil IfflS 10 A,(0E> ;M«c
i U los datos dtI
10 E.A II» (A) ¡balltr too lo
10 A,(1Y'I5) ID <«>,« ¡4«f Mr tn pantala
l
CALI IN18 INC l
10 8,A INC Oí

3741 Cim® LO 0C.1EX10


«EL 3751 LO C,l»
CAll 1NCH 37S8 CM P US
H Hl
10 l,(IYH4) DJN? PS8 3771 COI ID A(,DE)
10 H,(IY<I7) POP Hl 378» VK A ¡Salta si al catando
10 E,(1Y<I8> ¡y a OE s» longitud 3798 JÍ 2 C
.D3
10 0,(IYi|9) 3811 CP (Hl)
10 A,drill) ¡Fast dtl spritr N
IC H 3811 JR N 2
N
.C0
ID M 10 A
H, 3821 N
IC Hl
«NO a «0 117 3831 N
IC DE
JÍ ;,P»2 REÍ te 3811 JR C D I
AOO M ,OF 10 A,l 3858 N C
D N IC C
DJN; MI A
OO A1,21 3841 N
IC C ¡ti ollsit
PUSH » 10 l,A 3871 CD2 10 A,(0E)
POP ix REI C ¡Busca ti ítoal
ID !,<lri|3) 10 A
W ,
ID A,(IY«I2) SUB n a 3981 J Í N2 C
. 02
ID C,A 3911 10 A,(0E)
W 117 3928 C P IfF
10 0,A 3938 POP H
ID A.IER ¡Cac
l ual li dirrcc IO a Af.Af- 39<l REI 2 nn
i gono dt los dtfifl
CAl PIXEl ¡doI irehivo dt pantaal 10 A,(IYi|2) 3951 JÍ C D
I
PUSH * Ht A 39Ü C0
3 POP D E ,iapia ti stacl
PUSH * RET 2 ¡atributos traiispartntrs
ID Hl.BUFFER 10 A,H ¡Cac l ua
l li dirrttio
ID 8,<lt'IS) MCA ¡dtl Irckii
ID A.dY'lt) MCA
CAl INT8 MCA ¡Nitttro dt spritt a B
ID E,A WO 113
10 C,E OH 158 ¡Vutlvt coo ti carry
10 A,(IX<tl)
INC II ID H,A
ID (»),A PUSH IY
POP ix ¡Longtiud dtl cupo a E
INC Hl ¡Eltctua la ccnparaco in
OCC c 10 DE,MUE
AOO IX, Oí
JÍ N2,PS< ¡Rtgttsa con ti carrjr
10 A,o CAll PAWH
10 A,<]YH3)
AB
O A m U7
JÍ I,P9Í CP M
D
I <K>,II JÍ 2,ATI
INC K INC S PUSH HL
D.H2 PS3 0 A,<IYt|2)
1 PUSH BC
JÍ 2.PS7 W 117 CALL IME
10 C,0 JÍ 2,ATII LO A,O
INC I AND A
ID !,(1Y<|5) JP N2,EM3
X» A INC B
M PS5 AOO A,£ PW BC
0 « PS5
10 Hl.BTFFSÍ
ID B,A ¡ítcwptra ti flag RT
«O A ir "ana a la sabcutir
M (*)
INC Hl
¡corrtspondirntt LD B,LFF
N
IC K. RS1 128
0JN2 PSIP
OEC C
N
IC IX CP 120 ¡Es ?
JI N2,PS¿
OEC C Jí N2T,K1 ¡Salta si no lo ts
Jí N2
A. T13 NIC B ¡Nuatro ntgalito 8=8
ID s . d n t s i POP 8C ÍS1 121
ID C,E ADO H O.l E 10 C M
,A
PUSH IY
OJH! m¡ CP 123
ID IY,85C»
ÍET J Í N2 1
,K2
miT ¡barrido de pa 1 0 C,lll
EX A f ,AF' ÍSI 128
DI
10 A (H
,U Jí D HE
X sigot adtlaatt
POP IY 10 <IXt|)l,A CAl NIK8EÍ
ID 0C,8WFEÍ AN
O 138 Jí NCO.C
IX ¡Salta s.'lo ts
POP Hl ¡Oirtccion tn pantala
l Oí (IY1I2) CAl A P
lHA
PUSH H 10 (U),A JP NC.EM2

MICROHOBBY E S P E C I A L
30 C O D I G O M A Q U I N A

MU PUSX IY 4851 ÍUT CALL KLOE


4431 10 IY,»5C3fl 4841 X I NC 5281 RET ¡a la d.rt
4441 CALL LOO» 4871 JP EW3 5291 ;
4451 JR NC.TK3 4881 ; 5311fin$8 RST 118
4441 LO A,114 4891 OIS CALL NIKBER 5311 CP 129
4471 (SI I I I 4911 J Í C,062 5321 JP N2.EM2
4481 ; 4911 SU6 131 533» RT82 RS1 121 ¡Coot t i i . j
4491 • UFW NO DEFINIDA • 4921 REÍ 5341 CP 138 ¡Es un '¡" 1
4511 ; 4931 K! CP 141 3351 JP 2,8(12 ¡Salta hacii
4511 TK3 Jt- 2.ERR2 i II MI cadtna 5341 LO 1T.I5C»
4521 N
IC K. 5371 LO 0E.M9E4
4531 CALI S1UMI ualoc 4t calculad» 5381 CALL COSIA
4541 CALL EPT08C i a K REÍ C 539f 10 D€ ,11663
4551 JP C,!»3 . » ilaw 45535 BIT 4,C 5411 RT2 CP 110 ¡Busca ti E.n dt la lia
SCF ¡trabajase 5411 JR 2.ER2
5421 RST 121
5431 JR (TT2
5441 ¡
5451 TEXTO Km 'OEEINE*
5441 OEE8 I I I
5471 DEBI 'RESEV
PUS» 8C 5481 OEfB MI
CAU 018 5491 OEE* 'TEST'
JP C.ERBI
5511 DEEB U l
LO B,M<
5511 0EFT1 'MUEVE' 5491 OIRSP 0EE8 IfF
5521 OEEB I I I 5711 ;
5111 IC2 N
IC 5531 DfFH '8 5711 NUttt EOU 12018
5121 REÍ 5541 OEEB I I I 5721 A P
lW EOU 2 IC80
555» OÍW 'INPRIK' 5730 L O O » EOU 12882
4711 JR D O
I 10 IY,I5C3A ;li»c i 1» 5541 OEFB MI 5741 5TMK EOU 13384
4711 D K
2 L O C A
, ¡IWtipliía ti ntotro por PUSH AE ¡Guarda ti trror 5521 ME8 KE 5751 EPTOK EOU 2 I0A2
4731 C ALL IU.T ¡la u u r It swa CALL CLLÜ4 ¡Borra la parlt mEtric 55M ¡ 5741 H LO E EOU I3IA9
4741 AOO HL 6,C ¡ti dimito actual POP AE ¡dt la pantalla 5591 OR I ECC 0€FU DEFINE 5771 ERÜSP EOU 5 IC3C
4751 JP C E
.RR3 ¡No «ai dt 45535 10 0E.M9F4 ¡Rrstaora ti ualor orí; 5411 DE» RESET 5781 SU 8PP
C EOU 5IC47
4741 0«3 P USH HL ¡6uarda t! -WfS CALL COttlA 5411 OEW CHOOt* 5790 P1XEL EOU 2 I2AC
4771 RST 121 LO «,12121 5421 OERÍ NUEVE 58» mSG EOU «CA I
4781 POP XI LO II5C381.HL ¡liaos d»rsaiic 5431 OEHÍ BOfW i 58)1 C O C
AI EOU MA8I
4791 CALI OE I ACO A.I3I 5441 OEFV INPRIN 5821 O O
t D EOU 5 IC5D
4811 J» NC 0
,H 2 RST I I I 5451 ¡ 5831 CUtU EOU I04E
4811 EX DE H.L LO 0E.II349 5441 DATSP XW MUI 5841 STKBC EOU 2 I 02B
4821 POP O C ¡Rrcuptra ti nono
4831 RET
LO SP,(ERRSP) un ¡ 5851 LET EOU IWÍ
El ¡Hábil• ta la 5481 BUFFER DEES 211

PROGRAMA 3
1 REM PROGRRMR EJEMPLO 6, PRPER 1;' 115,240,255,248,255,192,252,
10 GO TO 5000 5,l42,2é5,248,1¿7,240,1¿7
100 LET X1s X1+ ST X: IF XI<1 OR X ,224,15,128
1>241 TMEN LET STX=-STX OUT 254 9130 DRTR 15,128,63,224,1
,1 BEEP .03,0 GO TO 100 W 1/nHU «O , — i O i UVCK 1; K
LOT 0,32: DRRU 255,0 DRRU 0,23: 115,248,255,224,¿55,0,252
110 LET Y1=Y1• STY IF Yl<67 OR DRRU -255,0: DRRU 0,-23: OUÉR 0 0,255,224,127,248,127,240
Yl>150 TMEN LET STY=-STY OUT 2S 7020 PRINT INK 0, PRPER 0,RT 16, ,15,128
4,2 BEEP .01,20 GO TO 110 0;" INK 7; PRPER l;" 9140 DRTR 15,128,63,224,1
120 RRNDOMIZE USR 60000 REM MU 115,248,255,192,254,0,252
EUE 1 (XI,Yl) REM NO PONER ROUI "; PRPER 2;" PRPER
INSTRUCCIONES BRSIC 1; " "; INK 0; PRPER 0; " 0,255,128,127,224,127,248
130 LET X2»X2*3 IF X2>241 TMEN ,15,128
LET X2s1 7050 PRINT USR 60000 REM IMPRIM 9150 REM DRTOS FRNTRSMR
140 LET X3=X3+3 IF X3>243 TMEN E 1: (XI,Y1.0) ; IMPRIME 2 (X2,Y2,C 9160 DRTR 14,0,63,128,127
LET X3 = 1 > ; IMPRIME 3: ' ' ~,192,237,224,255,224,255
150 PRINT USR 60000 RFM MHFUF (X4.Y4.0);IM 1,224,238,224,
2: CX2,Y2),MUEUE 3:(X3, 7100 RETURN
-2 IF X4 <0 TMEN L 8000 PRINT USR 60000 REM RESET
C0);DEFINE 1:(12,12,4,70,50191) 1192^237 , 224T¿sÍ ', 2§4 ', 2§5
170 LET X5 = IF X5 <0 TMEN L REM DEFINE PELOTR
8010 PRINT USR 60000 REM DEFINE
,224,238,224,255,224,255
ET X5 =215 1,192,136,128
2 (13,13,4,70,50000) ;DEFINE 3: ( 9180 REM DRTOS
11,13,2,65,50104): REM DEFINE CO 9190 DRTR 23,254,0,3,192,247,254
MECOCÓS Y FRNTRSMR ,0,4.160,151,254,0,24,144,247,25
8020 FOR R=4 TO 5 PRINT USR 600 4,0,127,248,247.254,0,255
1,6,Í27,¿48.¿47.¿54,0,255,248,25—
LS GO SUB 9000 REM GRRFICOS 00: REM DEFINE R:(40,7,1,0,50156 5
5,255,0,48,96,96,24,0,0,0
,255,0,48,96,96,24,0,- ~
5010 LET X1=127 LET Yl=100 LET ) REM DEFINE CRMION-COCME 9200 REM DRTOS PELOTR
STX=4+3»(RND-.5) LET STY=4+3*( 8030 NEXT R 9210 DRTR 15,0,63,
15,0,63,192,127,224,12
192, x* ' ,
8040 RETURN 7,224,199,240,187,240,125,192,25
5020 LET X2=3. LET Y2=23 LET X3 9000 LET SUM =0: FOR R=50000 TO 5 4,48,127,224,127,224,63,192,15,G
=37 LET Y3=Y2 0286: RERD R LET SUM=SUM+R POK 9220 DRTR 15,0,63,192,71,224,123
5030 LET T X4»60:
X4=60: LET X5=13S LET E R,R NEXT R RERD R IF R o S U M ,224,251,240,251,240,253,240,253
--- --- LET Y4Y4==47
~ LET
— Y5»
— • ' - TMEN PRINT "ERROR EN DRTOS". ST ,240,125,224,126,32,63,192,15,0
Y6=Y5 OP 9230 DRTR 11,0,61,192,126,224,12
5040 GO SUB 8000 REM DEFINE SPR 9010 RETURN 6,224,254,240,253,240,251,240,24
ITES 9100 REM DRTOS COMECOCOS
5050 GO SUB 7000 REM PRNTRLLR 9110 DRTR 15,128,63,224,11S,240,
5060 GO TO 100 115,240.255,248,255,248,252,0,25 9240 DRTR 15,0,63,192,127,192,12
7000 CLS PRINT RT 1,0," 5,248,2S5,248,127,240,127,240,63 7,160,255,176,252,112,227,240,22
PROGRRMR EJEMPLO ,224,15,128 Í¿Í0®ÓRTÓ2f4^60' ,63,19¿,15,0
7001 FOR R = 3 TO 14 PRINT RT R,1 9120 DRTR 15,128,63.224.115,240,

MICROHOBBY ESPECIAL

32 G R A F I C O S

E
Como ya sabéis, una l problema empie- grama de archivo y volca- en detalle, y aparecerá en
za a la hora de do de gráficos, lo hemos pantalla como sigue:
de las «facultades» del realizar gráficos adaptado especialmente de Para seleccionar cada op-
Spectrum es la de para juegos o di- forma que los que ya lo po- ción basta pulsar la tecla
bujos complejos seen dispongan a partir de que corresponde a cada le-
poder imprimir que requieran un gran de- ahora de una herramienta tra. Las distintas opciones
gráficos en pantallas. talle. Es en esos momentos muy potente y, aunque pro- operan del siguiente modo:
De hecho, siempre cuando contemplamos los blemas de espacio y tiempo M . — A l pulsar la tecla
famosos UDG con lógica y nos han impedido añadirle «M» aparecerá el menú de
trabaja en modo desesperación. ¿Cuál es la más opciones, el resultado ayuda. Al final de la ejecu-
gráfico aunque lo que solución REAL?: adquirir un final asombrará a la mayo- ción de cada una de las op-
programa especializado en
aparezca en pantalla gráficos. Pero como nunca
ría y dejará más que satis- ciones seleccionadas (ex-
fechos a los exigentes. cepto M E N U ) se hace un
tenga formato de llueve a gusto de todos re- Aquéllos que no posean el volcado de la pantalla de
sulto que al cabo de un
texto. En este artículo tiempo (incluso el primer
programa SUPERGRAFI- trabajo quedando el pro-
COS (Melbourne Draw) grama a la espera de una
vamos a verlo día) se echan en falta cier-
simplemente han de seguir nueva opción. Si se desea
tas funciones que facilitarían
detalladamente. las indicaciones que comen- volver entonces al BASIC

el tedioso y complejo proce- taremos después. bastará pulsar CAPS /


so de desarrollo de figuras, El programa está realiza- BREAK.
sobre todo en el caso de do íntegramente en código D.—Esto opción salta a
gráficos de animación. Una máquina salvo en las opcio- la rutina de dibujo del SU-
solución suele ser esperar a nes de carga, verificación y PERGRAFICOS (Merlbour-
que salga una nueva ver- almacenamiento que se ma- ne Draw) por lo que aqué-
sión que satisfaga nuestras nejan en parte desde BASIC llos que no dispongan de es-
necesidades, pero ante el con objeto de que cada te programa deberán efec-
precio unas veces y el her- usuario adapte el programa tuar los cambios que co-
metismo de manejo otras, a los periféricos de que dis- mentaremos después.
resulta que al final solemos ponga (cinta, microdrive, A.—Archiva en memoria
hacer aquello de «más vale wafadrive, disco...). bloques gráficos que pue-
viejo conocido...». Dispone de un M E N U de den tener un tamaño com-
Esto ocurre, por ejemplo, opciones, que explicaremos prendido entre un carácter
con el excelente programa y toda la pantalla. Al pulsar
S U P E R G R A F I C O S (Mel- «A» se hace un volcado de
• ' MENU ' '
bourne Draw) el cual fue un M. MENU
pantalla y aparece un cur-
programa de impacto en su D. D I B U J A R sor formado por un atribu-
día pero poco a poco está A. A R C H I V A R G R A F I C O to de 1 x 1 en la parte supe-
siendo desplazado por nue- C. C O P I A R G R A F I C O rior izquierda, el cual lo des-
R. R E V I S A R GRAFICO
vos y más potentes progra- plazaremos hasta una de
B. B O R R A R GRAFICO
mas. 1. I N S E R T A R G R A F I C O ¡as esquinas del gráfico a
Hemos de reconocer que P. P I N T A R A T R I B U T O S E N archivar por medio de las
como tenemos cierta debili- BLOQUE teclas Q -A (arriba-abajo) y
S. SAVE O - P (izquierda-derecha).
dad por él, y con la excusa L. LOAD
inicial de presentar un pro- V. V E R I F Y Entonces se pulsa ENTER

MICROHOBBY E S P E C I A L
34 G R A F I C O S

para definir esa esquina, se el programa nos pregunta:


«enmarca» el gráfico a ar- REVISAR DIRECCIONES O
chivar y se pulsa de nuevo GRAFICOS? La revisión de
ENTER para finalizar. direcciones nos da varias in-
El programa nos pregun- formaciones: el número de
ta entonces: I N C L U Y E figura (de 0 a 254), el tama-
ATRIBUTOS (S/N) para lue- ño vertical, el tamaño hori-
go informarnos del número zontal, la dirección del grá-
de gráfico que le correspon- fico y lo que ocupa en bytes.
de en el archivo hasta un Si el gráfico contiene atribu-
máximo de 254 (255 gráfi- tos informa también de su
cos en total) o hasta que la dirección y longitud. Por úl-
memoria se llene, en cuyo timo, informa del total de
caso aparecerá el mensaje bytes ocupados.
«*ERROR%. Si elegimos revisión de
La zona de archivo se en- gráficos éstos se irán mos-
cuentra justamente después trando uno a uno en la pan-
de la rutina de dibujo dispo- talla así como la posición
niendo de un total de 17236 que ocupa en el archivo.
bytes lo cual es más que su- Como siempre basta pul-
ficiente. sar SPACE para abando-
En cualquier momento se nar.
puede salir de esta opción B . — E l programa nos pe-
pulsando la tecla SPACE. dirá el código del gráfico a
C . — A l entrar se borra la borrar. En caso de que éste
pantalla y el programa nos no exista dará un mensaje
pregunta: N U M . FIGURA?, de error.
debiendo introducir el nú- I.—Esta opción nos per-
mero de figura que quera- mite mover un gráfico des-
mos copiar en la pantalla. Si de una posición dentro del
no existe tal figura da un archivo a otra, siendo la
mensaje de error y retorna mayor posición donde se
inmediatamente. En caso de puede trasladar la del últi-
que el gráfico hubiese sido mo gráfico archivado más
almacenado con atributos uno. El programa nos pedi-
nos preguntará si deseamos rá la posición de origen y la
copiarlo o no con ellos. A de destino.
continuación hace un volca- P.—Efectúo una copia
do de la pantalla de traba- de la pantalla de trabajo y
jo y una copia en modo nor- coloca el cursor en su parte
mal del gráfico en la parte superior izquierda. El pri-
superior izquierda. El modo mer paso consiste en mover
de volcado se selecciona dicho cursor hasta una es-
con las teclas 1 a 4 como si- quina de la zona a colorear
gue: y entonces se pulsa ENTER.
1 - normal; 2 - OR; 3 - A continuación se «enmar-
AND; 4 - XOR. ca» para luego, con las te-
Basta pulsar la tecla co- clas del 0 al 7, seleccionar
rrespondiente para que el el color de T I N T A del blo-
gráfico aparezca en el nue- que o con CAPS-SHIFT más
vo modo. la tecla de color del PAPEL.
El siguiente paso consiste EL BRILLO se obtiene pul-
en mover el bloque gráfico sando CAPS-SHIFT + B y el
a la zona de pantalla don- FLASH con CAPS-SHIFT +V.
de queremos copiarlo y fi- Finalmente se pulsará EN-
nalmente se pulsa ENTER. TER.
Para abandonar la opción Esta opción se puede
en cualquier momento bas- abandonar en cualquier
ta pulsar SPACE. momento pulsando la tecla
R . — A l usar esta opción SPACE

MICROHOBBY E S P E C I A L
• P I F Í B A " 1 35

S . — A l entrar en la op- la memoria disponible).


ción el programa pregunta Cuando se produce un error
el tipo de datos a salvar: 1. de carga es necesario que
PANTALLA, 2. UDG, 3. dicho banderín se desactive.
GRAFICOS. Pulsando el nú- Para ello el programa recu-
mero seleccionado el pro- rre a un pequeño truco que
grama retornará al BASIC, detecta si se han cargado
nos pedirá el nombre a con error los datos: antes de
asignar a los datos y el tipo efectuar la carga se asigna
de periférico a utilizar (cin- como línea para CONTI-
ta, microdrive o disco). Co- N U E un número mayor que
mo cada usuario tendrá su la permitida en BASIC (PO-
propio periférico específico KE 23662, 255) de forma
(wafadrive en lugar de mi- que si se produce un error
crodrive, por ejemplo) he- SIEMPRE cambia a un nú-
mos pensado que la mejor mero de línea inferior (don-
solución era que las opcio- de se ha producido el
nes de carga, almacena- error). Una vez que se en-
miento y verificación se hi- tra de nuevo en el progra-
cieran desde BASIC con ob- ma éste mira si ha cambia-
jeto de que pudierais alterar do o no este valor aceptan-
el programa de acuerdo a do o no los gráficos carga-
cada necesidad siendo las dos.
opciones que aparecen a tí-
V.—Esta opción verifica
tulo orientativo.
(salvo para el disco ya que
Los datos salvados tienen no tiene esa opción) la pan-
las siguientes características: talla de trabajo, los UDG al-
la pantalla que se salva es macenados en la dirección
la que se encuentra en la 47532 y los gráficos. Para
zona de trabajo (dirección estos últimos el programa
32768) y los UDG se en- pregunta la posición del pri-
cuentran en la dirección mer y último gráfico a veri-
47532. Los gráficos se sal- ficar (por ejemplo del 15 al
van primero con una serie 25).
de bytes en los que se en- Es preciso aclarar que la
cuentran los datos referen- información referente a los
tes a ellos: múmero y di- gráficos que se van a sal-
mensiones de cada gráfico. var, cargar o verificar se
Para diferenciar estos bytes, traslada a un BUFFER (con
que son los primeros que se dirección 39680) con obje-
salvan, se añade el token to de evitar errores duran-
DATA al nombre. A conti- te estos procesos.
nuación, se salvan los grá- El programa en código
ficos propiamente dichos. máquina se almacena en la
L.—Como para SAVE el dirección 290 0 0 y tiene una
programa nos pide el tipo longitud de 3155 bytes, por
de datos a cargar, luego el lo que debemos realizar el
nombre y por último, el tipo D U M P en la dirección
de periférico que se va a uti- 40000 e indicar 3155 como
lizar. número de bytes. La tabla
Cuando se van a cargar de información de los grá-
gráficos el programa activa ficos se encuenta a partir de
un banderín interno de for- la dirección 47788 y la di-
ma que al regresar del BA- rección de los gráficos pro-
SIC éste sepa que debe piamente dichos desde la
efectuar la insercción de los 4 8 3 0 0 . La dirección de los
nuevos gráficos (el progra- UDG se cambia automáti-
ma debe asegurarse que el camente a la 47532 con ob-
número total no exceda de jeto de que al crecer los grá-
254 o que no se sobrepase ficos no sean pisados por és-

MICROHOBBY ESPECIAL 35
36 G R A F I C O S

tos. Lo razón de que entre cumplir los siguientes requi- P O K E 2 9 1 4 4 , 2 5 2 con lo encantados vuestras suge-
la dirección de los U D G y la sitos: su pantalla de traba- que el programa retornará rencias.
tabla de datos haya 2 5 6 jo debe encontrarse en la al B A S I C y desde allí le po-
bytes se ha tomado como dirección 3 2 7 6 8 y el pro- dréis mandar a vuestro pro-
medida preventiva para los grama deberá estar entre la pio programa de dibujo.
usuarios que manejen disco dirección 4 0 0 0 0 y la 4 7 5 3 0 En alguna ocasión puede
debido a que éste (aunque y N O D E B E R A corromper el ser necesario hacer que la
no ocurre con todos) opera contenido de las direcciones pantalla visual pase a ser
con sectores completos de superiores a la 2 9 0 0 0 (con pantalla de trabajo: para
2 5 6 bytes. la excepción hecha). ello bastará efectuar un
Para aquéllos que no dis- Si estas condiciones se R A N D O M I Z E USR 2 0 9 2 0 .
pongan del programa S U - dieran bastará P O K E a r en De igual modo, R A N D O M I -
P E R G R A F I C O S (Melbourne la dirección 2 9 1 4 4 la direc- Z E U S R 3 1 5 8 3 nos mostra-
Draw) hay dos soluciones ción de su programa (SU- rá la pantalla de trabajo.
(lo sentimos en el alma): P E R G R A F I C O S se ejecuta Estamos convencidos de
1. Si disponéis de un pro- en la 4 0 9 6 0 ) . que este programa será de
grama gráfico éste deberá 2. Ejecutar POKE 29143,24: gran utilidad y esperamos

LISTADO 1 1030 IF PÍ="C" THEN UERIFY nÍCOD


E 32768
1040 IF p í = "m" THEN UERIFY *"m";
10 RANDOMIZE USR 29000 l,nÍCODE 32768
20 CLS : LET t$=CHR$ PEEK 2367 1050 RETURN
O: LET o$=CHR$ PEEK 23671 1100 IF pí="C" THEN UERIFY nÍCOD
30 LET n $= ("Pan talla" fiND t$ = " E 4.7532
1" ) + ("UDG" fiND t$ = "2") + ("Grafico 1110 IF p í = "m" THEN UERIFY *"m",
S " fiND t í = " 3 " ) l,r. ÍCODE USR "a"
4.0 60 SUB 100* C O $ = "S") +1000* (O 1120 RETURN
$ = " U " ) + 2 0 0 0 * (O í = " L " ) 1200 LET d g =PEEK 39680+ 256*PEEK
50 RUN 39681
100 REM BHsHgB 1210 LET la =PEEK 39632+256*PEEK
110 GO SUB 5000: IF t í = " 2" THEN 39683
GO TO 200 1220 LET lt=PEEK 39684*2+1
120 IF tI="3" THEN GO TO 300 1230 IF PÍ="C" THEN UERIFY " DRT
130 IF p $ = " C " THEN SfiUE nÍCODE fi "+nÍCODE 39634,It: UERIFY nÍCO
32768,6912 DE dg,lg
14.0 IF p í = "m" THEN SfiUE *"M";1; 124-0 IF p$r"«" THEN UERIFY *"m";
nÍCODE 32768,6912 1;" DfiTfi "+nÍCODE 39684,11: UERI
150 IF p í = "d" THEN RfiNDOMIZE US FY *"m";1; níCODE dg,lg
R 15363: REM : SfiUE nÍCODE 32768 1250 RETURN
, 6912 2000 REM i w a a
160 RETURN 2010 GO SUB 5000: IF tí="2" THEN
200 IF Pí="c" THEN SfiUE nÍCODE GO TO 2100
USR "a",163 2020 I F t í = "3" THEN GO TO 2200
210 IF p í = "m " THEN SfiUE *"m";l; 2030 IF P Í = " C " THEN LOfiD n$CODE
nÍCODE USR "a",168 32768
220 IF p $ = "d" THEN RfiNDOMIZE US 2040 IF p í = "m" THEN LOfiD *"m";l;
R 15363: REM SfiUE n ÍCODE USR " nÍCODE 32768
a , 168 2050 RETURN
230 RETURN 2100 IF PÍ="C" THEN UERIFY nÍCOD
300 LET dg=PEEK 39680+256*PEEK E 47532
39681 2110 IF p $ = "!»" THEN UERIFY *"m";
310 LET lg=PEEK 39682+256«PEEK l;nÍCODE 47532
39683 2120 RETURN
320 LET lt =PEEK 39684*2 + 1 2200 LET d g =PEEK 39680+256*PEEK
330 IF pí="C" THEN SfiUE " DfiTfi 39681
"+ri$CODE 39684-, It: SfiUE n ÍCODE d 2210 IF pí="C" THEN POKE 23663,2
55: LOfiD " DfiTfi "+nÍCODE : LOAD
9
3 4 0 IF P í = "m " THEN SfiUE *"n>";l; nÍCODE dg
" DfiTfi "+n ÍCODE 39684, lt : SfiUE * 2220 IF p í = "m" THEN POKE 23663,2
"m"; 1,níCODE dg,lg 55: LORD *"m "; 1; " DfiTfi " +n ÍCODE
350 IF p í < >"d" THEN RETURN : LOfiD *"m";1;nÍCODE dg
360 RANDOMIZE USR 15363. REM : 2230 IF P í < >"d" THEN RETURN
SfiUE " DfiTfi "+nÍCODE 39684,lt 2240 POKE 23663,255: LET r=USR 1
370 RANDOMIZE USR 15363: REM : 5363 REM : LOAD " DfiTfi "+nÍCODE
SfiUE nÍCODE dg,lg
2250 LET r=r+USR 15363: REM LO
1 8 S 8 B i h u fifrra a * ¡ a fiD nÍCODE dg
1010 GO SUB 5000 IF t í = "2" THEN _2260 IF NOT r THEN RETURN
, GO TO 1100 2270 PRINT FLfiSH 1;" *ERROR*
1020 IF tí="3" THEN GO TO 1200 STOP : RUN

MICROHOBBY ESPECIAL
37

5000 INPUT "Nombre de "+n$+" ";n 50 0D11277DCD7B7BD5CD68 1167


51 7RDRR07632R979D1CD7B 1495
5010 POKE 23658,0: PRINT 80;"gin 52 7BCD687RF53R96793CCR 1390
ta, Blicrodrive o B i s c o ? " 53 A076F1CADC73DAA07632 1602
5020 GO TO 5020+(INKEY$="C" OR I 54 RR796F3RR979BDF54FCD 1468
NKEY $ = "m" OR INKEY $ = "d") 55 CR76E5E5793CCDCR76D1 1693
5030 LET p$ = INKEY $: CLS RETURN 56 A7ED52444DC53AAA79CD 1382
8939 REM •MMJfc» 57 CA7622R579E53R9679CD 1403
9000 SRUE "EDIGRRF" LINE 9100 58 CA76D1A7ED5222A77919 1362
9010 SRUE "ed i g ra f l"COt>E 29000,3 59 545DEBC1C509DAA076EB 1542
155 60 ED4BA7791B2BEDB8C1E1 1509
9020 SRUE "ed i g ra f2"C0DE 4.0960,6 61 ED5BA579F1380109EDB0 1334
532 62 3AA979CD1776C53AAA79 1240
9030 RUN 63 CD17762BE5E53A9679CD 1381
9100 CLERR 28999 LORD "edigrafl 64 1776D1A7ED52444D1954 1090
"CODE 65 5DIB1BEB0BEDB8E1C171 1345
9110 LORD "ediaraf2"C0DE 66 23703A96793C329679C9 1058
9120 POKE 31123,0 POKE 31125,0:
CLS : RRNDOMIZE USR 30920: RUN 67 3AA979CD1776C54FCDCR 1377
68 76E5E5793CCDCR76D1R7 1658
69 ED52444DC53R9679CDCA 1397
70 76C1D109DAA076ED42EB 1563
71 EDB03A96793C3296793D 1184
LISTADO 2 72 CD1776C1702B71C9CD6B 1320
73 0D11197DCD7B7BCD687A 1062
3R9379R7C40172ED738F 1299 74 DAA0763A96793DBB2839 1170
793R9579R72016329679 991 75 7BF54FCDCA76793CE5CD 1587
3C3295792R7B5C11RCB9 1011 76 CA76E53R9679CDCA76D1 1612
ED537B5C01A800EDB0ED 1354 77 R7ED52444DEBD1EDB0F1 1729
7B8F79CD437B11837BCD 1258 78 CD17762B545D2323D5E5 1078
7B7B1809CD437BCD5F7B 1097 79 EB3A9679CD177623A7ED 1349
CD6B7B217E71ESED7391 1433 80 52444DE1D1EDB03A9679 1403
79FDCB016E28FRFDCB01 1435 81 3D329679C9CD6B0D1119 950
AE3A04SCFE50CA2673FE 1271 82 7DCD7B7BCD687ADAA076 1503
10 49CR3073FE42CR1674FE 1352 83 CD1776C5CDCA76C1AFCB 1639
11 4D28C0FE52CAA774FE43 1451 84 79CBB9280C115D7CCD7B 1123
12 CA6D74FE56CA8172FE41 1531 85 7BCD017730013C329479 876
13 CR2376FE53CR6272FE44 1428 86 22A579ED43A779CD567B 1326
14. 280BFE4C280RCD541F38 807 87 C37778CD4 37B11A67CCD 1341
15 BRE1C9C300R0CD437B11 1379 88 7B7BCD6B7B3EFDDBFECB 1672
16 507DCD7B7BCD0C73E106 1219 89 67CABB75CB57C0CD437B 1486
17 4CC6304FFE33C03E0132 1011 90 11CE7CCD7B7BFDCB47C6 1523
18 93793R9679CDCR762200 1156 91 3A967947AF040E141029 670
19 9B01334CC9RF329379FD 1230 92 FDCB4786CD0A7511007D 1135
20 7E35FEFFC03R049B0600 1103 93 CD7B7BD53A9679CDCA76 1518
21 4F603R96796F097CR728 955 94 11ACBCA7ED52444DCD2B 1256
22 0779953DC832049BCD50 1032 95 2DCDE32DD1CD7B7BC36B 1484
23 72300R3R049B3DC83204 704 96 7BCD0A75F5CDBC76F13C 1512
24 9B18F13A9679CD17764F 1174 97 18CAC-5F506004FCD1B1A 1011
25 3R049B813296792BEB3R 1003 98 0E06CD0E76F1F5CD1776 1189
26 049B26006F29444D2105 532 99 5059FDCB474628130600 831
27 9BEDB0C93R049B2R009B 1183 100 4ACD181A0E0BCD0E7606 700
28 E5DD21000021059B47C3 942 101 004BCBB9CDIB1A0E10CD 956
29 D876CD437B11467DCD7B 1269 102 0E76F1F5D5CDCA7622A5 1555
30 7BCD0C73FE0328070653 848 103 79444DCD2B2DCDE32DD1 1245
31 C6304FE1C9CDA172E101 1457 104 FDCB474628500E18CD0E 974
32 3353C9CD437B115R7DCD 1167 105 7626006A54CB7BCBBBF5 1307
33 7B7BCD0C73E1FE032807 1107 106 CDA93022A779110800CD 974
34. 0656C6304FE1C9CDR172 1323 107 A930E5444DCD2B2DCDE3 1316
35 E1013356C9CD6B0D11S5 1039 108 2DE1F12829F1C1CDA975 1517
36 7DCD7B7BD5CD687RDRR0 1598 109 C5F51IF17CCD7B7BED5B 1603
37 7632R579D1CD7B7BCD68 1423 110 A57919444DCD2B2DCDE3 1181
38 7RDRR07632R6793E0DD7 1245 111 2D0E18CD0E76ED4BA779 1020
39 3RR579577BBRDRR0767R 1358 112 CD2B2DCDE32D3E0DD7F1 1301
4-0 CD17762B22R779CDCR76 1236 113 C10DC0F5C5E5CD6B7BE1 1729
4.1 22009BE53RR6793CCD17 1051 114 CIF10E16FD365217C93A 1141
42 762B22R979CDCR76D1R7 1386 115 9679A7C847AFC5F5CD6B 1638
43 ED5222029B2RR579247C 998 116 0DF1F5CD1776C5CDCA76 1567
44 9532049BED5BR7792RR9 1185 117 C1110000CB79CBB9C5F5 1364
45 79ED52444D21059BEBED 1250 118 CDAB79F1C12806110000 994
46 B0C911647DCD7B7BCDBC 1463 119 CD167AF1F5CDF875CD6B 1717
47 763EF7DBFE2FE60728F4 1468 120 7BCDBC76F13CC110CBC9 1548
48 FE0530F0CB2F3CC9FD36 1365 121 FDCB028626006F3E16D7 1040
49 4701CD1277C3C878CD6B 1241 122 AFD73E1BD7E5D51E20C3 1393

M I C R O H O B B Y E S P E C I A L 37
38 G R A F I C O S

123 301P3E17D779D7RFC310 1096 196 11CB513ER6280BCB593E 934


124 0021RCBR06004F09094E 572 197 RE2805CBB93RB57932B5 1198
125 2346C9FD364700CD1277 1026 198 79CB21C93R9479R72807 1099
126 FDCB02C6115D7CCD7B7B 1341 1QQ ED5B9879C3167RCD1576 1286
127 D5CD017730013C329479 966 200 C32D7RCD58797EE6FEC8 1586
128 CD5876CD420ED1CD7B7B 1356 201 2R98795FED4BR779050D 102S
129 3R967906004F3C329679 795 202 C64B28077CR7280325CB 899
130 CDIB1RC36B7BCD837721 1171 203 FBCB5328097C80FE1728 1155
131 RCBRC5ED4B9679060009 1153 204 0324CBFBCB5628077DR7 1126
132 09C13R9479R72802CBF9 1190 205 28032DCBFBCB6328097D 1018
133 712370CBB9D5C5CDC776 1580 206 S1FE1F28032CCBFB2298 1141
134 C1E5E51600596268CDR9 1338 207 79CB23C921977936003E 981
135 30110S00CDR930D11938 785 208 BFDBFECB472002CBC63E 1435
136 11E1D1C5D5CDC779D1C1 1788 FBDBFECB472002CBCE3E 1503
137 3R94 79R7C8C3FB79118R 1416 210 FDDBFECB472002CBD63E 1513
138 7CED7B9179FDCB02C6D5 1619 211 DFDBFECB4F2002CBDE3E 1499
139 CD420ED1CD7B7B21901R 1148 222 DFDBFECB47C0CBE6C930 1844
140 114000C3B5033E7FDBFE 1122 213 712E7100000000000000 272
141 1FD811977C18DC3R9679 1112 214 00000000000000000000 0
142 21RCBCR7C8E5DD210000 1243 215 00000000C5D5CDCSD5CD 1230
143 21RCBR475ECB7BCBBB23 1307 216 597R0608C5D51R7E1223 840
144 5623E5F526006R54CDR9 1197 217 1C0D20FSD1C11410F1D1 1209
145 30E5110800CDR930D1F1 1174 218 C11410E5C9C5D5CD597R 1435
146 280119EBDD19E110DDDD 1230 219 7REEC0570608C5D51R77 1208
147 E5D1E119C93E7FDBFEE6 1781 220 231C0D20F9D1C11410F2 1037
148 08C83EFDDBFEE60237C8 1483 221 D1C11410E2C9DS622E00 1222
149 18EFCD5F7B2100002298 905 222 CB3CCB1DCB3CCB1DCB3C 1253
150 79229R79CD157877CD38 1156 223 CBID165619D1C9E5CDE6 1441
151 78301BED5B9R79229R79 1107 224 797CEEC067D1C5E57E12 1557
152 010101CD3F7RCD1578ED 976 225 2C130D20F9E101200009 624
153 5B9879CDE6793R9D7977 1375 226 C110EFC9E5CDE679D1C5 1840
154 CDBC76CD567B3R9779CB 1458 227 E51R772C130D20F9E101 957
155 4728D3CD2F782R987922 1043 223 200009C110EFC9CDE679 1246
156 9E79CD38783006CD8377 1169 22=i 51E5772C1520FBE11120 1051
157 CD3F7RED5B9E792R9879 1312 230 001910F2C9CDE67951E5 1350
158 229R79CD8R77CD9E77CD 1458 231 7CEEC0675EEEC067732C 1443
159 BC76CD567B3R9779CB47 1324 232 1520F3E11120001910ER 845
160 28D8C32F78ED5B9E792R 1267 233 C97RE6070F0F0FB35F7R 1001
161 9R797CBR3001EB7DBB30 1229 234 E618F64057C9CD967R11 1346
162 026B5F7C923C477D933C 937 235 000021009B7EFE0D2S14 641
163 4FC9FDCB47462803CDRD 1298 236 D630EEF5210H00CDR930 1201
164 773R9D79C32D7RD90E00 1048 237 F116005F19EBE12318E7 1133
165 3EEFDBFE2FE619280DCB 1332 238 7RR737C03R96794F7BB9 1252
166 472017CB5F0E0720110D 507 239 3FC9RF32R47932R279CD 1312
167 180E3EF7DBFE2FE61F28 1168 240 267BCD767B20FBFD36CR 1399
168 210CCB2F30FB3EFEDBFE 1383 241 FF21009B22R079CDC27R 1279
169 CB2F3R9D79380BE6C7CB 1285 242 2RA079773E0232R479CD 1046
170 21CB21CB21B11803E6F8 1187 243 267BCD3R7BC9CD267BFD 1367
171 B1329D790E003EFEDBFE 1308 244 CB016E28F7FDCB01RE3R 1290
172 CB4720192F4FCB213E7F 882 245 085CFE0DC8FE0C282CFE 1171
173 DBFE2FB1CB27CB27E6C0 1603 246 3038E5FE3R30E1083RR2 1146
174 4F3R9D79R9329D7976D9 1247 247 79FE0328D9082RR07977 1065
175 C9ED5B9879CDE679E57C 1711 248 2322R079D7CD3R7B3RR2 1171
176 EEC0677EE6203E382802 1081 24 9 793C32R2792806RF32R4 949
177 3E07329D79E1C9CD5879 1237 250 791SBD3E20D73E08D7CD 1133
178 7EE60120F8C9CD58797E 1378 251 3R7B3RR279R723EB3D32 1075
179 E6FEC82R98794FCB4928 1394 252 R2793E08D72RR0793620 977
180 077CR7280325CBF9CB51 1114 253 2B22R07918D92RR37923 960
181 28087CFE17280324CBF9 980 254 22R379CB4C3E5F23023E 858
182 CB5928077DR728032DCB 922 255 20D73E08D7C921C80011 983
183 F9CB6128087DFE1F2803 1050 256 1E00C3B503CD6B0DFDCB 1190
134 2CCBF9229879CB21C921 1273 257 02863R485CCB2FCB2FCB 1061
185 00002298793E7E32B579 847 258 2FD3FEC90183130B78B1 1177
186 180RCDD4783805CD1179 975 259 20FBC92100S011004001 727
187 3016CD5F7BED5B98792R 1136 260 001BEDB0C9CD767B20FB 1370
188 R579ED4BR779C5CDRB79 1580 261 CD767B28FBC9CD3E021C 1315
189 C1CDFE78CDBC763EBFDB 1755 262 C91R13FEFFC8D718F817 1465
190 FE1F38D6CD5F7BED5B98 1458 263 08002R202R204D454E55 465
191 792RR579ED4BR779C5CD 1451 264 202R202R1604044D2E20 333
192 RB79C13R9479R7C40479 1300 265 4D454E550D0D17040044 430
193 21004011008001001BED 507 266 2E20444942554R41520D 604
194 B0C93EF7DBFE4FCBF9CB 1893 267 00170400412E20415243 397
195 413E7E2817CB493EB628 876 266 48495641522047524146 698

MICROHOBBY E S P E C I A L
• ^ I C E * " 39

269 49434F0O170400432E20 404 293 4414004952454343494F 598


270 434F5049415220202020 574 294 4E4553204F2014014714 485
271 20207E0D170400522E20 390 295 0052414649434F533FFF 837
272 524-5564-9534 152202020 636 2QF. 14014649472E20564552 550
273 20207E0D170400422E20 374 297 2E204S4F522E20444952 612
274 424F5252415220202020 584 298 4543432E202054414D2E 585
275 20207E0D17Q400492E20 381 299 14000D0DFF0D41747269 714
276 494E5345525441522020 680 300 6275746F733A171000FF 909
277 20207E0D0D170400502E 369 301 0D0D544F54414C204F43 592
278 2050494E544152204154 675 302 555041444F20FF204259 851
279 52494255544F530D1707 595 303 5445532EFF4E554D2E20 855
280 00454E20424C4F515545 635 304 4649475552413F20FF49 869
281 0D0D170400532E205341 362 305 4E53455254415220454C 720
282 56450D1704004C2E204C 425 306 20FF0D0D454E204C4120 665
283 4F41440D170400562E20 416 307 504F534943494F4E20FF 899
284 564552494659FF160100 747 308 161100140120F81400FF 615
285 494E434C555945204154 718 309 161100140120EF1400FF 606
286 52494255544F533F2028 687 310 161100140120D61400FF 581
287 532F4E29FF0D47524146 805 311 0D0D312E2050414E5441 525
288 49434F204E554D45524F 721 312 4C4C410D322E20554447 582
289 20FF0D12012R4552524F 673 313 0D332E20475241464943 570
290 522R1200FF0D12012041 526 314 4F53FF44455344452045 875
291 4E554C41444F201200FF 756 315 4C20FF0D0D4841535441 758
292 52455649534152201401 593 316 20454C20FF03CDCF7DD1 1210

MICROHOBBY ESPECIAL 39
40 P R O G R A M A C I O N

por Agustín CONDE MARUGAN

Los UDG son la base tanto como sustitutivo personal a los


imprescindible de feos caracteres de la ROM como útil
cualquier representación repertorio de UDGs de 96 caracteres
frente a 21, con la posibilidad estan-
gráfica en 'a pantalla de un Generador de UDGs do posibilitados de ser identificados
ordenador. Con ellos por la función SCREEN$ para los jue-
podemos crear multitud de Este programa puede generar direc- gos, es algo de aran interés. El pro-
imágenes que irán dando tamente sobre la memoria un juego de grama salvará el nuevo juego como
forma a las figuras que más UDGs, que es instalado además ini- Bytes instalados a partir de la direc-
cialmente a partir de la dirección ción 64768, por lo que si no es reubi-
tarde se convertirán en los 65368 en la que, naturalmente, están cado para ser utilizado deberá po-
protagonistas de nuestros establecidos. Por supuesto, una vez al- kearse en la variable CHARS
juegos. macenados en forma de Bytes, apar- ( 2 3 6 0 7 - 2 3 6 0 6 ) 252 y 0 respectiva-

te de poderse cargar con un simple mente, para reubicarlo basta recordar


LOAD " " CODE, pueden ser reubi- que dicha variable contiene la direc-
cados en nuevas direcciones para dis- ción de comienzo—256.
poner de varios juegos de UDG una
vez pokeado en la variable del siste-
ma UDG ( 2 3 6 7 6 - 2 3 6 7 5 ) la nueva di-
rección. A la hora de generar un Funcionalidad máxima
UDG, se debe tener en cuenta que los para simplificar la tarea
últimos 21 caracteres (desde la le mi-
núscula al símbolo copyright) que apa- La utilidad dispone de un amplio re-
recen en tinta magenta en la línea 5. a pertorio de posibilidades en el menú,
de la pantalla, equivalen a los 21 reductoras en todo lo posible del es-
UDGs. fuerzo que pueda suponer la tarea,
permitiendo, sobre todo a los sufridos
programadores de juegos propios,
Generador de un nuevo juego ROM manipular y seguir los resultados de la
tarea de una forma práctica y
El generar un nuevo juego ROM, racional.

40 M I C R O H O B B Y E S P E C I A L
lili ir 41

Existen dos menús de trabajo: me-


nú 1 y menú 2.

M E N U I:

Selección dentro del menú 1

Las opciones del menú 1 están re-


presentadas por un conjunto de grá-
ficos autoexplicativos que seleccionan,
dispuestos a continuación de la pala-
bra menú y entre dos rayas. Para se-
leccionar una opción dentro del me-
nú habrá que pulsar SPACE y una vez
elegida la que interesa, presionar
ENTER.

Control Joystick o teclado

Es en esta situación en la que se co-


mienza, accediéndose a ella normal-
mente desde el menú con el símbolo
de un cuadrado enmarcado. Aquí
aparecerá un cuadrado parpadeante
a mover a través de la pizarra amari-
lla de la izquierda mediante el Joys-
tick, cuando se presione el disparo, el
cuadrado sobre el que estaba pasará
a estar activado si no lo estaba, y a
paper si estabo activado, configurán-
dose así uno a uno los pixeles del grá-
fico. Una vez terminado el gráfico con
SPACE saldrá al menú.

Espejo horizontal

Función representada por dos fle-


chas horizontales, una contraria a la
otra. Su finalidad es reordenar el grá-
fico de izquierda a derecha en senti-
do contrario al que se encontraba.

Espejo vertical

Las flechas en este caso son vertica-


les, al igual que la reordenación.

MICROHOBBY E S P E C I A L 41
42 P R O G R A M A C I O N

Rotación a la derecha m o s d e s p u é s E N T E R , con lo q u e el s i e n d o l o s m i s m o s , p o r lo q u e en vez


g r á f i c o i m p r e s o en la p a n t a l l a s e r á de t e n e r q u e v o l v e r a s i t u a r l o s encimo
Función r e p r e s e n t a d a p o r una úni- s c r o l l a d o , al i g u a l q u e su c o p i a a ta- de ellos m i s m o s , b a s t a r á con mandar
ca f l e c h a . G i r a al g r á f i c o en el senti- m a ñ o r e a l . Si s e l e c c i o n a m o s la M re- p i n t a r el p a n e l de m e m o r i a . P e r o el in-
d o de las m a n e c i l l a s del r e l o j . t o r n a r e m o s al M e n ú p r i n c i p a l , o sea, t e r é s de esta f u n c i ó n está centrado
al 1. a u n así. en el caso de h a b e r interrum-
Cls p i d o de u n d í a a o t r o n u e s t r a labor,
Sacar carácter a pantalla de trabajo p a r a q u e n o t e n g a m o s que construir
F u n c i ó n r e p r e s e n t a d a p o r la p a l a - u n r o m p e c a b e z a s cada q u e vez que
b r a cls escrita en u n m i s m o g r á f i c o . continuemos.
Esta opción sirve para retocar un
B o r r a en tinta o en papel la p i z a r r a del M e n ú . R e t o r n a al m e n ú principal.
g r á f i c o q u e ya h a y a m o s i n t r o d u c i d o
g r á f i c o a conveniencia del n u e v o g r á -
en la m e m o r i a , o p a r a hacer u n o a
fico a e l a b o r a r ( r e q u i e r a o n o m u c h a
p a r t i r de él. S e i m p r i m i r á el q u e selec-
tinta). Operaciones con cinta
c i o n e m o s en la p i z a r r a de la i z q u i e r -
d a d e s d e la m e m o r i a , p e r m i t i é n d o n o s _ . ~ , . ,
Archivo en memoria a c t u a r de n u e v o s o b r e él con el J o y s - U D G s ! G ,raba e n a n t o 'os
tick u o t r a o p c i ó n del m e n ú . U n a v e z 2 1 ^ ^ J ^ 1 6 " ' c o m o Va he
E s r e p r e s e n t a d a esta f u n c i ó n p o r r e t o c a d o d e b e r e m o s r e c u r r i r de nue- e x p l i c a d o , a los 2 1 u t i m o s caracteres
u n a llave. S u f i n a l i d a d es i n t r o d u c i r en v o a la llave p a r a i n t r o d u c i r l o en me- ® n ! l n ° m a g e n t a de la linea 5 . ° , des-
la m e m o r i a el g r á f i c o i m p r e s o en ese m o r i a , e n c i m a del a n t i g u o (que sigue deela . k m l n u s c u l a h a s t a e copyright,
m o m e n t o en la p i z a r r a I z . P a r a ello se a r c h i v a d o en la m e m o r i a tal c o m o an- , S a l v a r | u e g o p a n e l e s . Graba
p e d i r á q u e se i n d i q u e a q u é g r á f i c o tes) o en c u a l q u i e r o t r o sitio. ' m e m o r i a de los 9 p a n e l e s en caso
a

del j u e g o de la R O M s u s t i t u i r á en el de que v a y a m o s a c o n t i n u a r o t r o día.


que se está c r e a n d o , en el caso de q u e C a r g a r . C o n las o p c i o n e s opues-
lo q u e e s t e m o s h a c i e n d o sea u n jue- Pone! derecha t a s a | a s a n t e r i o r e s en caso de reanu-
g o de U D G s , e n t o n c e s se selecciona d a r la t a r e a i n i c i a d a d í a s a t r á s .
a q u é U D G s u s t i t u i r á , t e n i e n d o en Sí v a r i o s de n u e s t r o s g r á f i c o s f o r m a n I 0 CLERR 64600 PRINT RT 10,0.
cuenta q u e el U D G A es c o n s i d e r a d o p a r t e de u n a única f o r m a , p o r ejem- R F G E N E R ¿ D O R B D 1 r G I R F ™ S S 3 ' "•• 5 PRI
c o m o el p r i m e r c a r á c t e r m a g e n t a de p í o , si h a c e m o s u n h o m b r e de 3 p o r f ••>•.. P R ! N ? g ^ I V ,
la fila 5 . a (la k m i n ú s c u l a ) y los d e m á s 4 gráficos, será necesario realizar a 0¿ndoUEBSE l ; •• p o k I S 2 3 6 7 s " 8 8 S I !
sucesivamente d e t r á s de éste. A l archi- m e n u d o n u m e r o s o s ajustes en los g r ó - 2 R 6 R S ' f S : > O K E R R !I6*N!STTI? 6

v a r s e en m e m o r i a el g r á f i c o se m o s - fieos p a r a q u e la p i e r n a y el pie e s t é n HEXT'?6*768 t o 6 5 3 6 7 P 0 K E '


t r a r á en la p i z a r r a los n ú m e r o s q u e u n i d o s p o r el sitio j u s t o , y el b r a z o y g ¡ ¡ ¡ , J H ; J H ; í ü ; I f i ; i§
d e b e r í a m o s i n t r o d u c i r en D A T A S si, a la m a n o , al v e r l o s |untos, en v e r d a d 9,129,255,14,76,71.129,129,82.50
p e s a r de t o d o , d e c i d i m o s q u e n o a r - p a r e z c a n lo q u e s o n . E s t o s r e t o q u e s ' 16 DRTR 24,166,193,224,7.131,1
c h i v a r e m o s en cinta el t r a b a j o , y p r e -
r . L - II J I J 01,24.0,4,142,159,132,68,56,0,0,
s e r á n m u c h o m a s l l e v a d e r o s al p o d e r 211,146,147.145,145,219,0.56,40,
f e r i m o s p o k e a r l o en el p r o g r a m a q u e . 1 ,r- 1 |i 1 56,16,16,24,16,24,0,139,217,171,
lo utilice. ir c o l o c a n d o g r á n e o s en el p a n e l de la 136,138,139,0,0,0,8,28,62,127,0,
d e r e c h a . , v e r c ó m o v a el a s u n t o y 0 17 DRTR 0,4,6,255,6,4,0,0,0,32
coI m p r eI n d e-£•
r al instante
j 1 que, pL o r ejem- , 96 ,255 , 96 , 32 , 0 . 0 , 16 , S6 , 124 , 16 , 1
Acceso al menú 2 p í o , al g r á f i c o de la m a n o h a y q u e é , í é , i e : i 6 Í i 6 , i 6 , Í 6 , í e , le, 1 2 4 , 5 6
s c r o l l a r l e hacia a b a j o p a r a q u e coin- ' 'tétigiúíélÉél '137'137'137'0
Es representado por una M y un 2. cida con el d e l b r a z o . ¿ ! I £ s R T ?§'5¿
C o n d u c e al m e n ú 2 , q u e a su v e z dis- P a r a sacar el m á x i m o r e n d i m i e n t o S S U N J O Y I T I C K S J L O ' T I E N E S ® ' INP
p o n e de 4 n u e v a s o p c i o n e s a e l e g i r al p a n e l p o d e m o s r e a l i z a r las siguien- f!?-iS!¿"t^?"¿S!i««fcóoé**i C
presionando S P A C E y después E N T E R . tes o p e r a c i o n e s : ETlS¿gEDf«''LETET=c¿DEDi«t* L E T

A m e n o s q u e a p a r e z c a el m e n s a j e S i t u a r . S e ñ a l a con el Joystick el lu- i f ' r ' r ' ^ i N K S DRRU 255,0 PL


g a r d o n d e s i t u a r el g r á f i c o y a p r o g r a - §t * ¿ 3 f V ? k S T ¿¿lú
« R E G R E S O A M E N U P R I N C I P A L » de- m o d o en m e m o r i a . E n t o n c e s d i s p a r a r BG|¡ - ® ^ O T ^ ,f§§ -eDR
bemos entender que permanecemos y se nos p r e g u n t a r á q u é cadena se de- «u,™.* »¿ -™,j«¿
en él. be s i t u a r allí. P a r a salir p r e s i o n a r S P A - T

M E N U 2: C l s . B o r r a el p a n e l .
„ ' ,. ,
4,114 DRRU 60,0 DRRU 0.-S2
RÚ -60,0 DRRU 0,52: PLOT 198,11
OR
M e m . P e r m i t e a r c h i v a r y s a c a r de 4 DRRU 0,-52 INK 0
I 22 FOR 1=8 TO 13 PRINT 8RIGHT
Scrolles m e m o r i a p a n e l e s , fcllo pRu e d e s e r útil I.RT R,I7,- ••; PAPER 6 , R T
, , ! F,25;" ": NEXT F GO SUB
p o r si se r e t o c a n o r e e l a b o r a n v a r i o s 9260
Se elige el q u e necesitemos indicado q r á f i c o s del p a n e l , p e r o al f i n y al ca- * '
¡ . j 1 1 • 42 LET c =1 LÉY me=0 DIH x»(4
p o r la flecha con S P A C E , y p r e s i o n a - b o p a r a la m e m o r i a del p a n e l s i g u e n ,321 DIM A 19,421

42 MICROHOBBY ESPECIAL
Uüir 43

45 LET X * C 1 ) 1-SCROLL PRNTRL £110 PRINT RT 19,0, INK 4, PPPER


LA DE TRRBAJO SELECT SCROLL
PPNT -DE TRABAJO" PAPER 7;" FLASH 1,"O", FLASH
3-UTILIZAR PRNEL DC L H N " LET s=0
THEN PRINT RT
ACIONES CON CINTR 19,20. OUER 1, FLRSH 0, INK
LET S=S + 1 AND s<4 PRINT
AT 19,20.S <2, OUER 1, FLASH 1;"
LET v =9 PRINT RT BEEP .1,9
19,20, PPPER 2125 IF CODE INKEY*=13 THEN BEEP
120 LET »=CODE INKEY» ~ " GO SUB 2150.10»s GO SUB
~ ~ =4 T H E N RET
=9 THEN LET h =
>3) GO TO 200
THEN LET h =
<101 GO TO 200
1S7 IF «=r THEN
<161 GO TO 200

190 IF » = t THEN LET


>/8 PLOT OUER 1,109+
T c = (5 RND NOT (c-1) )

195 PRINT PPPER 8, INK 4,RT


GO TO 250
v,h, PPPER 8

2 3 7 5 GO TO 231
2380 RETURN
2410
FOR n =96 URR = 1"¿ FLASH 0. , FLASH 1,"C
THEN PRIN ARGPR =2", FLASH 0, " , c INPUT F
LASH 1,"UDGs =1 J.ENTER0 = 2 PRNELE
S = 3", FLASH 0," LET c=».(3
AND (c-1) 1
2421 IF C=1 THEN INPUT PAPER 5, "
NOHBRE JUEGO DE UDGS?",C» IF LE
SPEJ-HORIZ N C$<11 THEN SAUE cSCODE 65368,1
620 FOR f = 112 d >127 THEN GO TO ¿200 68 RETURN
TO 103 IF POINT Cf 2210 POKE 23607,252 PRINT HT
T PPPER 1 , — 14, PRPER 6,a» POKE 23607,60 2422 IF c=2 THEN INPUT
630 NEXT GO S u E 9000
2300_ 8,768 RETURN
19,20, PRPER 2310 FLRSH 1; "S 2423 IF c=3 THEN INPUT PAPER 2,"
OTRCN-DCHR GO SUB 1025 ITUPR = FLASH 0, FLRSH 1," NOHBRE J. DE PANELES?",ct IF L
820 FOR f =i12 TO 119 FOR n=96 CLS=2", FLRSH 0, FLASH 1,-HE EN C»<11 THEN SAUE c% DATA a<>
HN =3", FLRSH 0, " "; FLASH
FLRSH 1,"RET RETURN
=4", FLASH 0," " BEEP .5,14 2432 IF c =4 OR c =5 THEN INPUT "N
GO TO 2300.1«20 OHBRE DEL J. DE CRRCT?",ci PRIN
2320 PRINT SI, INK 1, FLASH 1," T AT 19,0, PAPER 6, INK 3, FLASH
SITUA CON EL JOYSTICK" LET h= 1," PON EN HARCHA EL CASSETT
17 LET V =8 E " LOAD CÍCODE PRINT RT 21
19,20, PRPER 4, 2322
BEEP .3.20 2 3 2 3 IF »=g T INK 2,255,C GO SUB 922
h >171 GO TO 2335
F a =w THEN LET h=h+(1 AND 2434 IF c =6 THEN INPUT "NOHBRE D
1020 PRINT PT 9.14. INUERSE GO TO 2335 EL J. DE PANELES" PRINT AT 1
RPER 6, INK 0, F •=e THEN LET v=v-(l AND 9,0, PAPER 6, INK 3, FLASH 1,
GO TO 2335 PON EN HRRCHA EL CASSETTE
1025 LET F »=r THEN LET V=ví(1 AND LORD c« DATP PRINT RT 21.0
O 16 PRINT , PRPER 6-<5* V < 13) GO TO 2335
2327 - >=32 THEN BEEP .2,5 GO
TO 23 INK 2,255,0 RETURN
«=t THEN PRINT RT V,h, F
HACEN GRRF" LASH 1, OUER 1, BRIGHT 1," " BE
EP .3,4 INPUT INK 1," Oue graf> ,14,"MENU ", INK
""", AT 17,19, INK
BEEP .03,3 co/s->",9» POKE 23607,252
INK 1, BRIGHT 1,RT v,h,g*
PRINT
POKE 3;"S", TNUEESE , AT 19,14, "STAT
23607,60 PRINT RT v,h.8, PPPER US" GO S U B 100
1215 LET d=a<8.64512 6, BRIGHT 1,9* GO TO 2320 S00S BEEP .2,13 BEEP .3,-3 PRI
1220 FOR n =103 TO 96 STEP -1 L 2331 PRINT OUER 1,RT v,h, BRIGHT 1 9 , 2 0 , P A P E R 2, INK 7," S E
'— R T HENU"
1, INK 2, "fl" BEEP .008,-2 PRI LCT.
T p=0 FOR (=112 TO 119 IF POI NT OUER l.pT V.h, BRIGHT l,"""
GO TO 2322
2335 PRINT OUER 1, INK 2, AT v h,
PRINT RT BRIGHT 1;"«" BEEP .05,15 P&IN
T , OUER 1,BT v,h; BRIGHT l;"fl"
1240 PÓKE 2360725*2 PRINT PPPER GO TO 2322
2340 FOR f =17 TO 23 FOR n=8 TO
13 BEEP .01,n + f <.02 PRINT RT n

9,0, PRPER 1; INK


IERTO H E N U - 2 . " 1 * 1=2" FLASH 0, '
PC ION" BEEP . 0 1 , 1 2365 IF «=1 THEN INPUT PAPER 5,"
LET 0=0 IF INKEY * < Oue panel pasara a ser (l-9)?";h
THEN GO TO 1310 POKE 23607,252 FOR I=0 TO 6
1320 IF INKEY * = " FOR n =1 TO 6 LET a<h,(.6 + nI =COD
E SCREEN* t7.n,17.f1 NEXT n NE
XT í POKE 23607,60 GO TO 2310
2370 IF •=2 THEN INPUT PRPER 5,"
oue panel saco de »e«. ( 1-9)7",h
FOR =0 TO 6: FOR = 1 TO 6

REGRESO R
NEXT
2310
2371 PRINT BRIGHT 1, PRPER 6,RT
7+n ,25.f,CHR» a (h, f <6+n) POKE 2
3607,252 PRINT BRIGHT 1,AT 7+n,
17+r,CHR$ a (h , í <6 + n 1 POKE 23607
,60 BEEP .01, I<7 +n NEXT n NEX

MICROHOBBY ESPECIAL 43
44 L E N G U A J E S

Carlos BBLLVER

ESTE P R O G R A M A , ESCRITO INTE-


G R A M E N T E EN C O D I G O M A Q U I N A ,
PERMITE U S A R D O C E N U E V O S C O -
M A N D O S D E N T R O DE U N P R O G R A -
M A BASIC E N EL S P E C T R U M 4 8 K.

MICROHOBBY ESPECIAL
Ampliación úel Basic 45

E
stos nuevos comandos debe- presión «num» y el I N K ol color que &NOISE, dur
rán escribirse carácter a ca- mejor contraste con éste. También po- Produce ruido durante un tiempo
rácter (no importa si se hace ne a cero el FLASH y el BRIGHT. Re- «dur». Cuando «dur» vale más de
en mayúsculas o en minúscu- sulta más rápido que BORDER
8 0 0 0 los resultados no son muy acep-
las) tras el símbolo &. Para num:PAPER n u m r I N K 9 : B R I G H T
tables. Ejemplo:
usarlos en un programa, la primera lí- 0:FLASH 0:CLS, cuyo efecto es equi-
nea de éste habrá de ser similar a la valente ol de &SCREEN, num.
siguiente: EJEMPLO 5
&RECOL, paper, ink
10 CLEAR 63999: LOAD " " C O D E :
100 BORDER 2:ANOISE,60
RANDOMIZE USR 6 4 0 0 0 Cambia los atributos a los indicados 110 BORDER 1 &NOISE,100
120 BORDER 4 ¿NOISE.40
Si posteriormente se hace R U N , por las expresiones «paper» e «ink», 130 BORDER 7
N E W o CLEAR, tendremos que ejecu- pero no altera lo que haya dibujado
tor otro USR 6 4 0 0 0 paro poder vol- en la pantalla. Ejemplo: &WAIT, dur
ver a usar las nuevas instrucciones del
EXTBASIC. Detiene la ejecución del programa,
EJEMPLO 2 como PAUSE, durante «dur/50» se-
100&SCREEN,0
gundos. Al contrario que PAUSE no si-
LOS NUEVOS COMANDOS PRINT CHR» gue la ejecución cuando se pulsa una
120 FOR 1=0 TO IS tecla. Por ello &WAIT,0 espera más
130 FOR J=0 TO 7 de veinte minutos...
Son los siguientes: 140&RECOL, 0 , J

&REPEAT &MOV, numbytes, org,


dest
Se usa conjuntamente con & U N T I L &SCROLL
paro crear un bucle que se ejecutará Copia un bloque de bytes de longi-
hasta que se cumpla la condición que Desplaza la pantalla una línea ha- tud «numbytes» en la dirección «org»
sigue a & U N T I L . Por ejemplo: cia arriba, lo cual es útil en juegos sen- a la dirección «dest». Su utilidad más
cillos o en presentaciones como ésta: inmediata es la de guardar pantallas
en memoria y recuperarlas, pero se le
EJEMPLO 1 pueden encontrar muchas otras.
EJEMPLO 3
10&REPERT
20 PRINT PT RND #21,RND*31, "
El ejemplo muestra un caso de alma-
30&UNTIL,INKEY»="H" 100 PRINT RT 21,0;"EXTBflSIC U1 cenamiento de pantallas sin atributos:

Dibujará asteriscos en la pantalla 130 NEXT I


EJEMPLO 6
hasta que se pulse la tecla «K».
Se pueden anidar los bucles &CLSLOW 100 CLERR 26999 RPNDOMIZE USR
&REPEAT del mismo modo que se ha-
ce con los FOR-NEXT, hasta un límite Borra la parte inferior de la panta-
de ocho anidaciones. lla, normalmente las dos últimas líneas, 140&MOU,6144 , 16384 , 27000 »6144 t
150 NEXT i
&REPEAT ha de ser la última instruc- en las que se puede escribir mediante
ción en una línea, y sólo se puede usar PRINT #0, o PRINT #1. Por ejemplo: 1B01MOU,6144,27000»6144ti,16364
1904NOISE.20 NEXT <
dentro de un programa, nunca en mo-
do directo, es decir, sin un número de EJEMPLO 4
líneas. Si se hiciera esto no se ejecuta- & DEL, Une 1, Une 2
ría nada.
Borra las líneas del programa Basic
&CLR linel y Iine2, ambas inclusive. Su utili-
140 PRINT CHRJ
Cuando el usuario pulsa BREAK dad es evidente.
dentro de un bucle REPEAT, la pila de
REPEAT (la zona de memoria en que
&SOUND, f l , f2, step,
se almacenan los números de línea a
dur
que ha de saltar U N T I L ) no se borra,
y si esta acción se efectúa varias ve- Produce un sonido de frecuencia EL PROGRAMA EXTBASIC
ces, la pila acabará por llenarse y « f l » (0-65535) y duración «dur»
aparecerá un mensaje de error. En- (0-65535). Suma «step» a « f l » y si el Este programa se baso en el hecho
tonces habra que usar &CLR, que bo- resultado es menor o igual a «f2» re- de que se puede cambiar la dirección
rra la pila de REPEAT pite el proceso. Pueden obtener algu- de la rutina de errores o la que se sal-
nos efectos bastante buenos: ta con RST 8. Esto se hace así:
&SCREEN, num &SOUND,100,200,1,8 LD DE, N E W A D D
Esta instrucción pone el BORDER y &SOUND, 40 0,50 0,1,4 LD HL, (ERRSP)
el PAPER al color indicado por la ex- &SOUND,100,500,1,16 LD (HL),E

MICROHOBBY ESPECIAL 45
46 L E N G U A J E S

INC HL
LD (HL),D
Paro utilizar los dos bloques de código maquino de-
RET bemos teclear el primero y realizar el DUMP. Sin borrarlo
de lo memorio procederemos o teclear el segundo lista-
S i e n d o N E W A D D lo d i r e c c i ó n d e l a do y hocer el DUMP correspondiente, y, por último, gra-
nueva r u t i n a d e e r r o r e s y E R R S P la va-
r i a b l e d e l s i s t e m a en 2 3 6 1 3 d .
borios en conjunto indicondo como dirección la 64333
y 869 como número de bytes.
LISTADO
Pues bien, el p r o g r a m a E X T B A S I C se
ENSAMBLADOR
sitúa en N E W A D D ( 6 4 0 1 0 ) y lo pri-
m e r o q u e hace es c o m p r o b a r s i el II ORG 64886
e r r o r es « N o n s e n s e i n B a s i c » . S i n o es LISTADO 1 28 LD HL,(23413)
así el e r r o r , n o s e puede deber a l a i n - D U M P : 6 4 . 0 0 0 38 LD DE,BUCLEI
t r o d u c c i ó n d e u n a de l a s n u e v a s i n s - 48 LD (HL),E
N . ° BYTES: 3 3 0
t r u c c i o n e s . E n tal caso h a y q u e s a l t a r
58 INC HL
a la r u t i n a de la R O M q u e p r e s e n t a u n 1 2R3DSC110RFR732372C9 937
2 110RFRD53R3R5CFE0B20 995 41 LD (HL),D
informe de e r r o r o a la q u e presenta
3 13CD44 FR210313CD3025 687 RET
un cursor parpadeante para señalar 4 200421CF12E5C3761BE1 1088 78
5 3R3R5CFD3600FFCD3025 1060
e r r o r de s i n t a x i s , s e g ú n e s t e m o s ejecu- 6 28043CC313132R5DSC22 598 88 BUCLEI LD DE,BUCLEI
7 5F5C22SBSCC3BD12FD36 1113
tando u n a i n s t r u c c i ó n o c o m p r o b a n d o 8 00FF2R3O5CE5E5ED733D 1321 98 PUSH DE
9 5CE1CD60FRE 122305CFD 1533
su s i n t a x i s (esto s e s a b e p o r el b i t 7 d e 10 CB007EC018C72RSDSC2B 1014 188
11 225OSC7EFE26C28R1C06 1003 LD A,(23418)
F L A G S , 2 3 6 l i d , puesto a 1 p a r a in- 12 1021015BE5E7E1E6DFFE 1533
13 413810FE5B300C77EDSB 989 118 CP «88
dicar ejecución). 14 5D5C122310ERC38R1C3E 911
15 109032005B21DEFR1101 824 128 JR NZ,BUCLE2
E n caso d e q u e sí f u e r a e r r o r « N o n - 16 5BCB7E20ED3R005B4 623 943 138
17 B8200R1RBE2006231310 550 CALL BUCLE3
sense in Basic, el p r o g r a m a E X T B A S I C 18 F818082310FD23232318 713
19 DF46230405280FE5DFFE 1098 148 LD HL,4867
lee el carácter q u e l o h a p r o v o c a d o y 20 2C2001E7C5CD821CC110 1077
21 F3E1E5DFE1FE0D2804FE 1710 158 CALL 9528
si n o es « & » p a s a el c o n t r o l a l a s r u t i - 22 3R20B3CD3025C85E2356 974
n a s d e l a R O M antes c o m e n t a d a s . S i 168 JR N2.8UCLE4
efectivamente e s « & » e l p r o g r a m a lee 23 EBE90653435245454E01 923 178 LD HL , 4 8 1 5
24 F4FB055245434F4C0200 875
los caracteres que hemos escrito a 25 FC0344454C0224FC0653 847 188 PUSH HL
26 43524F4C4C00FE0D0643 720
continuación ( u s a n d o R S T 3 2 ) y si coin- 27 4C534C4F57006E0D054E 607
28 4F495345014EFC05534F 802 198 BUCLE4 JP 7836
ciden c o n a l g u n o d e l o s n u e v o s co- 29 554E440472FC04574149 830
30 5401RBFC034D4F5603B8 940 288 BUCLE5 POP HL
m a n d o s , t o m a l o s p a r á m e t r o s q u e le 31 FC0652455045415400CE 913
32 FC05554E54494CO1EDFC 1143 218 BUCLE2 LD A,(23418)
s i g u e n y , s i e s t a m o s e n t i e m p o d e eje- 33 03434C520013FD800000 628
221 LD (IY+8),IFF
cución (bit 7 d e F L A G S a 1), s a l t a a l a
CALL 9528
rutina correspondiente al comando de LISTADO 2 238
JR 2.BUCLE4
que s e trate. 248
D U M P : 6 4 . 50 0
258 A
T r a s ello h a y que volver a la R O M N . ° BYTES: 3 6 0
p a r a c o m p r o b a r o ejecutar la s i g u i e n - 241 4883
te i n s t r u c c i ó n . E s t o s e hace s a l t a n d o a 1 CD94223R48SC328DSCC3 1087 278 BUCLE4 HL,(23445)
2 680DCDD52DFE083018F5 1165
la d i r e c c i ó n 7 0 3 0 d . 3
4
CDD52DFE083013070707
47F1B021005611015801
813
716
288 (23447),HL
5 BF0277EOB0C9CF13CDR5 1522 298 (23443),HL
6 2D3823B02820606923CD 825
7 6E19E5CDH52D3814B028 1071 388 4797
8 116069C06E19S45DE1E5 1189
9 R7EDS2E1D4ES19C9CF19 1610 (IY»6),«FF
10 CDP52D381D50593R485C 891 318 8UCLE3
11 0F0F0F4F2100007EE618 537
12 B1D3FE060010FE231B7R 1102 328 HL,(23413)
13 B320F0C9CF0RCDR52D38 1340
14 F9C5CDR52D38F3ED4300 1464 338 PUSH HL
15 5BCDR52D38ERED43025B 1193
16 CDR52D38E16069D1E5ES 1564 348 PUSH HL
17 C12R025BR7ED42E1D8E5 1468
18 D5COB503O1E1ED4B005B 1439 358 LD (23413),SP
19 0918E7CDRS2D38C0FB76 1296
20 0B788120FRC9CDR52D38 1262 348 POP HL
21 B3C5CDR52D38RDC5CDR5 1587
22 2D38R7E101EDB0C93R52 1456 378 CALL BUCLE7

23 FDFE08303F3C3252FO2R 1113 388 POP HL


24 55SC46234E0000002R53 485
25 FD712370232253FDC93R 1177 398 LD (23413),HL
26 52F0R72827CDD52DR728 1251
27 0D2152FO352R53FD282B 898 488 BIT 7.C1Y+8)
28 2253F0C92R53F02B4628 1105
29 4ECD2B2DC3671ERF3252 1006 416 RET N2
30 FD2120FD2253FDC9CF0O 1349
31 0F001400000000000000 35 428 JR BUCLES
32 00000000000000000000 0
33 00000000000000000000 0 438 BUCLE7 LD HL,(23445)
34 000000000000O0000000 O
35 00000000000000000000 O 448 DEC HL
36 0122F 0000 00 00 00000 00 288
458 LD (23445),HL

MICROHOBBY ESPECIAL
Ampliación de! BasiG 47

4<8 LD A, (HL) 978 CP «2C 1488 LD C,H 1996 LD C,H


478 CP I2< 988 JR NZ,DATA8 1498 LD D,E 2886 LD D,D
488 JP NZ,7386 998 RST «28 1588 LD C,H
498 LD 8,1118 2818 NOP
1888 DATA8 PUSH BC
1518 LD C,A 2828 INC DE
588 LD HL,23297
1818 CALL 7298 1528 LD D,A 2636 NOP
518 BUCLE PUSH HL 1828 POP BC 1538 NOP 2848 ADD A,B
528 RST «28 1838 DJNZ DATA7 1548 LD L,(HL) 2858 ORG <4588
538 POP HL 1848 POP HL 1558 DEC C 26<8 DATA8 CALL 8852
548 AND «DF 1858 DATA< PUSH HL 1568 DEC B 2878 LD A, (23624)
558 CP «41 16 <8 RST «18 1578 LD C,(HL) 2888 LD (23693) ,A
5<8 JR C.BUCLE9 1676 POP HL 1588 LD C,A 2696 JP 3435
578 CP «58 1688 CP «8D 1598 LD C,C 2186 CALL 11733
588 JR NC.BUCLE9 1898 JR Z,DATA9 1688 LD D,E 2116 DATA12 CP «88
598 LD (HL),A 1186 CP 1618 LD 8,L 2128 JR NC,OATA13
¿88 LD DE,<23<45) 1118 JR NZ,BUCLE8 1628 LD BC.DATA18 2138 PUSH AF
¿11 LD (DE),A 1128 DATA9 CALL 9528 1636 DEC B 2148 CALL 11733
<28 INC HL 1138 RET 2 1646 LD D,C 2156 CP «88
<38 DJNZ BUCLE 1148 LD E, (HL) 1656 LD C,A 21<8 JR NC,DATA13
<48 BUCLES JP 738 < 1158 INC HL 1«8 LD D,L 2178 RLCA
<58 BUCLE9 LD A,«18 1168 LD D,(HL) 1678 LD C,(HL) 2188 RLCA
«8 SUB B 1178 EX DE, HL 1688 LD B,H 2198 RLCA
<78 LD (2329<),A 1188 JP (HL) 1<98 INC B 2288 LD B,A
<81 LD HL,DATA1 1198 DATA! LD B,«53 1788 LD (HL) ,D 2216 POP AF
<98 DATA2 LD DE,23297 1288 LD B,E 1718 CALL H,22276 2226 OR B
788 BIT 7 , (HL) 1218 LD D,D 1728 LD B,C 2236 LD HL,22528
718 JR NZ,BUCLE8 1228 LD B,L 1738 LD C,C 2246 LD DE,22529
728 LD A,(2329<) 1238 LD B,L 1748 LD D,H 2256 LD BC,783
738 LD 6,(HL) 1248 LD C,(HL) 1758 LD BC,DATA1! 2268 LD (HL),A
748 INC HL 1258 LD 8C,DATA8 1768 INC BC 2278 LD1R
758 CP 6 1268 DEC B 1778 LD C,L 2286 RET
7<8 JR NZ.DATA3 1278 LD D,D 1786 LD C,A 2298 DATA13 RST 8
778 DATA4 LD A,(DE) 1288 LD B,L 1798 LD D,(HL) 2388 INC DE
788 CP (HL) 1298 LD B,E 1868 INC BC 2318 CALL 11685
798 JR NZ,DATA3 1388 LD C,A 1818 CP B 2328 JR C.DATA14
888 INC HL 1318 LD C,H 1828 CALL H,28998 2338 OR B
816 INC DE 1328 LD (BC),A 1836 LD B,L 2346 JR Z,DATA14
828 DJNZ DATA4 1338 NOP 1848 LD D,B 2358 LD H,B
838 JR DATA5 1346 CALL M,17411 1858 LD B,L 2368 LD L,C
848 DATA3 INC HL 1358 LD B,L 1868 LD B,C 2376 INC HL
858 DJNZ DATA3 1368 LD C,H 1876 LD D,H 2388 CALL <516
8<8 INC HL 1378 LD (BC),A 1888 NOP 2398 PUSH HL
878 INC HL 1388 INC H 1896 ADC A,«FC 2468 CALL 11<85
888 INC HL 1398 CALL M,21254 1968 DEC B 2416 JR C,DATA!4
898 JR DATA2 1486 LD B,E 1916 LD D,L 2428 OR B
988 DATA5 LD B,(HL) 1416 LD D,D 1926 LD C,(HL) 2438 JR Z.DATA14
918 INC HL 1428 LD C,A 1936 LD D,H 2448 LO H,B
928 INC B 1436 LD C,H 1948 LD C,C 2458 LD L,C
938 DEC B 1446 LD C,H 1958 LD C,H 2468 CALL <516
948 JR Z,DATA6 1456 NOP 1968 LD BC,<4749 2478 LD D,H
958 PUSH HL 1468 CP «8D 1978 INC BC 2488 LD E,L
9<8 DATA7 RST «18 1478 LD B,«43 1986 LD B,E 2498 POP HL

M I C R O H O B B Y E S P E C I A L 47
48 L E N G U A J E S

2588 PUSH HL 3818 - "SBC HL, BC 3298 POR HL 3578 JR Z.DATA22


3828 POP HL 3386 POP DE 3588 LD HL,DATA18
2518 MD A
3838 RET C 3318 LDIR 3598 OEC (HL)
2528 SBC HL ,DE
3848 PUSH HL 3328 RET 3688 LD HL,(DATA28)
2538 POP HL
3858 PUSH DE 3338 LD A,(DATA18) 3618 DEC HL
2548 CALL NC.6629
3868 CALL 949 3348 CP 188 3628 DEC HL
2558 RET
3878 POP DE 3358 JR NC,DATA19 3638 LO (DATA28),HL
2568 DATA14 RST 8
3888 POP HL 3368 INC A 3648 RET
2578 ADD HL,DE
3898 LD BC,(23296) 3378 LD (DATA18),A 3658 DATA22 LD HL,(OATA28)
2588 DATAIS CALL 11685
3188 ADD HL,BC 3388 LO HL,(23637) 3668 DEC HL
2598 JR C.0ATA15
3118 JR DATA16 3398 LO B,(HL) 3678 LO 8,(HL)
2688 LO D,B
3128 DATA11 CALL 11685 3488 INC HL 3688 DEC HL
2618 LD E,C
3138 JR C,DATA15 3418 LO C,(HL) 3698 LD C,(HL)
2628 LD A,(23624)
3148 EL 3428 NOP 3788 CALL 11563
2638 RRCA
3158 DATA17 HALT 3438 NOP 3718 JP 7783
2648 RRCA
3168 DEC BC 3448 NOP 3728 XOR A
2658 RRCA
3178 LD A,B 3458 LO HL,(DATA28) 3738 DATA19 LD (DATA18),A
2668 LD C,A
3188 OR C 3468 LD (HL),C 3748 LD HL,DATA23
2678 LD HL ,8
3198 JR N2,DATA17 3478 INC HL 3758. DATA21 LD (0ATA28),HL
2688 DATA24 LD A,(HL)
3288 RET 3488 LD <HL),B 3768 RET
2698 AND 118
3218 CALL 11685 3498 INC HL 3778 RST 8
2788 OR C
3228 JR C.DATA15 3588 LD (DATA28),HL 3788 NOP
2718 OUT (IFE) ,A
3238 PUSH BC 35)8 RET 3798 DATA23 CALL M,DATA)2
2728 LD B,«88
3248 CALL 11685 3528 LD A,(DATA18) 3888 INC BC
2738 PAUSA DJNZ PAUSA
3258 JR C,DATA15 3538 AND A 3818 ORG 64851
2748 INC HL
3268 PUSH BC 3548 JR Z.DATA21 3828 DATA18 NOP
2758 OEC DE
3278 CALL 11685 3558 CALL 11733 3838 DATA28 JR NZ,DATA18
2768 LD A,D
3288 JR C,DATA15 3568 ANO A
2778 OR E
2788 JR NZ.DATA24
2798 RET
2888 DATA15 RST 8
2818 LD A,(BC)
2828 CALL 11685
2838 JR C.DATA15
2848 PUSH BC
2858 CALL 11685
2868 JR C.DATA15
2878 LD (23296),BC
2888 CALL 11685
2898 JR C.DATA15
2988 LD (23298),BC
2918 CALL 11685
2928 JR C,0ATA15
2938 LD H,8
2948 LD L,C
2958 POP DE
2968 DATA16 PUSH HL
2978 PUSH HL
2988 POP BC
2998 LD HL,(23298)
3888 AND A

MICROHOBBY ESPECIAL
HardBall
Nunca verá un juego de béisbol
tan próximo a la realidad

sú> es el HARDBAI.L, simple y a s u vez el juego de simulación


de deportes más realista de todos los tiempos.
I.e bastarán sólo cinco minutos para ver que todos
os demás juegos de béisbol para ordenadores son de menor
categoría en comparación ton el HARDBAI.L
Finiría jurar que está viendo un programa de la
televisión un sábado por la tarde.
Al HARDBALL se puede jugar de tíos maneras, una tomo
juego de acción en el campo, y otra como un juego de
estrategia de entrenador, o ambas a la vez.
Observe la curva descrita por la bola
lanzada por encima de la rotonda o consulte la
pantalla de entrenadores para una sustitución clave.
Puede "'ncluso situarse dentro o fuera del
terreno de juego para compr«»bar el estilo

A
Fabricado y del bateador o la situación del juego.

distribuido bajo
licencia por:
C O M P U L O G I C f t L s.ft.
DISTRIBUIDO en Cataluña y Baleares por.
DISCLUB, S.A. - Balmes. 58 - BARCELONA - Tel: (93) 302 39 08 - P.V.P. 2.300 Ptas.
DE
50 E S P E C I A L

Para una mejor


comprensión de los
nemónicos utilizados por
el Z 8 0 , os ofrecemos un
diccionario que explica el
significado y uso de las
distintas instrucciones del
lenguaje ensamblador, así
como pequeños ejemplos
aclaratorios.

Conviene que antes de adentrarnos


en él, examinemos una serie de cues-
tiones que atañen al SPECTRUM en
general y al código máquina en par-
ticular, y que contribuirán a un mejor
empleo de las posibilidades del Z80 y,
por tanto, del SPECTRUM.
Lo primero a considerar es el pecu-
liar modo de trabajo del código má-
quina, así, mientras en el BASIC las va-
riables tienen unos cometidos concre-
tos, en éste se opera indirectamente
con ellas, realizándose todas las ope-
raciones a través de registros cuya mi-
sión es, precisamente, registrar tempo-
ralmente un valor o un resultado pa-
ra finalmente almacenarlo en la me-
moria, que es la auténtica variable.
Naturalmente, en subrutinas de pe-
queña extensión, se pueden conside-
rar los registros como si de auténticas
variables se tratara. De hecho, una de
las facilidades que permite el BASIC
del SPECTRUM es la de retornar un
valor desde código máquina a través
del registro doble BC lo cual hace que
éste pueda ser considerado en ciertas
ocasiones como una variable.
El número total de registros del Z80
es de veinticuatro, siete de ellos se de-
nominan de uso general y el resto se
utilizan para cometidos específicos. Un
registro puede almacenar números y
como consta de 8 bits codificados en
binario natural, su valor puede variar
entre 0 y 255. Estos bits se enumeran
del 7 al 0 siendo el bit 7 el más signifi-
cativo o de más valor («peso» en el ar-
got). Cuando se quiere trabajar con
signo se utiliza el bit 7 para diferen-
ciar los números positivos de los nega-
tivos (si es cero el número es positivo
y viceversa) lo que limita el rango de

MICROHOBBY ESPECIAL
euin DE comñnDos 51

comnnDós
valores desde —128 a 127. Para no
dejarnos desamparados el Z80 permi-
te que estos registros, denominados
simples, se unan a otros registros for-
mando registros dobles, de esta for-
ma el rango de valores aumenta de 0
a 65535 (o de - 3 2 7 6 8 a 32767 si
operamos con signo).
Cada registro se designa por una le-
tra conservando su nombre incluso
cuando se une con otro para formar
un registro doble. Helos aquí:

REGISTROS SIMPLES:
DE U S O DE U S O
GENERAL ESPECIFICO
A F

C 1
D
E R
H
L

REGISTROS DOBLES:
DE U S O DE U S O
GENERAL ESPECIFICO
AF
BC
DE
HL

El registro doble AF no existe como


tal, pero ciertas instrucciones como
PUSH, POP y EX los tratan conjunta-
mente. Observar también que los re-
gistros I y R no forman ningún regis-
tro doble y que N O EXISTEN los re-
gistros simples Ix, X, ly, Y, S o P sino
que SIEMPRE operan en la forma IX,
IV y SP (esto no es del todo cierto a ni-
vel «extraoficial», pero esto ya exce-
de la misión de este diccionario).
El Z80 dispone a su vez de una se-
rie de registros alternativos a los regis-
tros A, B, C, E, H y L y se denominan:

MICROHOBBY E S P E C I A L 51
52 E S P E C I A L

REGISTROS ALTERNATIVOS ro de unos, o de ceros, de dicho re- ciben el nombre de instrucciones con-
sultado. Si la paridad es par se asig- dicionales. Así, por ejemplo, durante
AF'
na el flag a uno, y si es impar a cero. la ejecución de un programa puede
BC'
Las instrucciones que asigna este ser necesario que de acuerdo al resul-
DE'
flag de acuerdo con la paridad del re- tado de una operación el programa se
HL'
sultado son: bifurque a otra dirección para lo cual
utilizaremos instrucciones como JR Z o
Se denominan también como regis- A N D r - OR r - XOR r - RL r - RLC r
JP C, etc. También podremos efectuar
tros PRIMA. Su función es preservar - RR r - RRC r - SLA r - SRA r - SRL r
llamadas a una subrutina (CALL Z,
los valores de estos registros y para - RLD - RRD - DAA - I N r
CALL P, etc.) al cumplirse ciertas con-
acceder a ellos existen dos instruccio-
diciones, retornar de ella también de
nes que intercambian sus valores en-
2— una sobrecarga representa un forma condicional que determina si la
tre sí.
cambio «accidental» del signo del re- instrucción se ejecuta o no. Estos tér-
L o s b a n d e r i n e s de a v i s o : l o s
sultado: un acarreo del bit 6 al bit 7. minos son los siguientes:
Flags Las siguientes instrucciones asignan es-
El Z80 dispone de un registro espe- te flag según se produzco o no esta so-
cializado denominado F (también lla- brecarga: Z si el último resultado calculado
mado «registro de estado») cuya mi- es cero, la instrucción se ejecu-
sión es la de almacenar varios bits de ADD A,r - ADC A,r - ADC HL,s - SUB ta.
información de acuerdo a los resulta- A,r - SBC A,r - SBC HL,s - CP r - NEG NZ la instrucción se ejecuta si el re-
dos de los cálculos efectuados. Cada - INC r - DEC r sultado no es cero.
bit se usa como un banderín que to- F l a g d e r e s t a ( N ) - mira simple- C se ejecuta si se ha producido un
ma un valor de 1 ó 0 según se active mente si la última instrucción ajecuta- acarreo.
o no y su cometido, de izquierda a de- da es una suma o una resta. Esta ins- NC se ejecuta si no se ha producido
recha, es como sigue: trucción se usa intermitentemente por un acarreo.
F l a g de s i g n o (S) - almacena el el Z80 para instrucciones como DAA PE este condicional chequea el flag
signo, positivo o negativo, del último y no tiene apenas interés. Se puede P/V (Parity/Overflow) y realiza
cálculo realizado. Un resultado posi- testar con PUSH y POP como con dos funciones:
tivo asignará este bit a 0, y el negati- HALF-HARRY. — si nos referimos a la paridad
vo a 1. Un valor de cero será tomado F l a g de c a r r y (C) - detecto un entonces la instrucción se ejecu-
también como positivo. El valor del acarreo del bit 7 al supuesto bit 8 en ta si el último resultado calcula-
flag S es siempre igual al bit más sig- los registros simples o, en el caso de do en formato binario tiene un
nificativo del resultado (el bit más a la los registros pares, del bit 15 al su- número PAR de U N O S (o de ce-
izquierda) pudiendo ser testado por puesto 16. Una operación frecuente ros) afectándole instrucciones
instrucciones como JP P (salta sí posi- suele ser la de testar un bit de un re- como AND, OR, I N A, (C), de
tivo) y JP M (salta sí negativo [menos]). gistro moviéndolo al carry por medio rotación, etc.
F l a g t e r o ( Z ) - si el último resul- de instrucciones de rotación o reinser- — la denominación de sobre-
tado ha sido cero el flag se activa po- tar el bit «perdido» en el carry dentro carga (overflow) tiene a su vez
niéndose a 1. No debe pasársenos de- de un registro. Este flag, ¡unto con el dos formas de tratamiento: si en
sapercibido que las instrucciones DEC de cero, son con toda probabilidad los un cálculo (ADC, SBC, etc.) se
y ADD para registros pares N O AFEC- más utilizados. produce un «acarreo» del bit 6
T A N a este flag. La forma en que un programa en al bit 7 (el número excede el ran-
N o u s a d o - este bit tiene un valor código máquina posibilita la toma de go positivo-negativo) entonces
más o menos aleatorio. decisiones y la correspondiente solu- la instrucción se ejecuta. Lo mis-
H a l f - c a r r y (H) - Este banderín se ción estriba precisamente en el empleo mo ocurrre para instrucciones de
activa cuando en una operación se de instrucciones que tienen en cuenta decremento e incremento con
produce un acarreo del BIT 3 al BIT 4, el estado de los flags para operar y re- registros simples. La otra forma
o, en el caso de registros pares, del bit se refiere a instrucciones como
11 al bit 12 y es usado internamente LDI, LDD, CPI, CPR, etc., en las
por el Z80 para instrucciones como que mientras el resultado (BC en
DAA. No se puede testar directamen- este caso) no sea cero la instruc-
te aunque es posible examinarlo usan- ción se ejecuta.
do la secuencia PUSH AF / POP BC / PO la instrucción se ejecuta justa-
BIT 4, C y entonces mirar el flag de ce- mente si se cumple lo contrario
ro, pero esto raramente se hace. de lo dicho en PE.
NO USADO M si el último resultado calculado
F l a g de p a r i d a d / s o b r e c a r - es negativo (menos) la instruc-
g a (P/V) - Cumple dos cometidos: ción se ejecuta.
1— la paridad de un resultado es P si el último resultado es positivo
par o impar, dependiendo del núme- la instrucción se ejecuta.

MICROHOBBY ESPECIAL
53 E S P E C I A L
1
Instrucciones sin prefijo
ADC A.r a a a a a ND OTIR
AOC HL,> a a a a a MIS POP AF
ADD A.r « a a a a NDR POP i
ADD H U a a PUSH Af
ADD IX.i a e P <.pq PUSH i
ADD IV.i • • a a P (HL) RES b. r
AND r a 9- a 0 RET
eir b.r ; a i a P!$ RET c
CAU rx, 8 e RETN
CAIL JR C.9 RETI
CCF a LD (BC).A RLCA <»
CP r a a a 6 a LO A.(BC) RRCA 4i
1•
a
í
CPI a » LD (DELA RLA
a ® RRA
11
CPD x LD A,(ÓE) i
CPIR a x ® LD I.A RLC r 1»
a a RRC t 1»
I>
CPD x LD FF.A
LD A.L RL r 1
CPI i < 1 i
DAA a a a a LD A.R i RR r
© LD SP.HL RRD
DEC a ® a i>
01 LD SP.IY RST 00
DJN LDr.r RST 08
El LD í.mn RST 10
EX Af. AF' LD A,(pq RST 18
EX DE.HL LD i.lpq RST 20
EX ISP).HL LD (pq). RST 28
EX (SPÍ.IX ID ¡pq), RST 30
EX (SP1.IY LOI RST 38
EXX LDD S8C A.r a a a a a
HAl LDIR 1 1 i SBC H L . ti st
IMO
IM 2
LDDR
NEG
NOP
a
SCF
SLA a
!
a a
a a ó OR r SRA r a a
INC
INC OUT (n) A SRL
o a

u
!N A 1") OUT (C) SUB a i
C) a a a a 0 • OUTI XOR ' « 1 1 a
INI ? t i OUTD i

0 2 3 5 7 8 9 B C 0 E F
2 3 5 7 8 9 10 12 13 15
0
0 NOP LD BC. LO I8CL INC BC INC B DEC B LO 8. RLCA EXAF. AODHL LOA OECBC INC C DEC C LDC. RRCA
NN AF BC <6C) N
16 18 19 20 21 22 23 24 25 26 27 28 29 30 31
UNZ OIS LOÓE. LOlOa INC DE INC D OECO LOO. RLA JR OIS ADO HL. LOA. OECOE INC E OECE LOÉ. RRA
• NN A N DE (DE) N
32 33 34 35 36 37 38 39 40 41 42 43 45 46 47
2 JR NZ. LD Hl_ LO (NN). INC HL INC H DECH LD H, DAA JR Z, AODHL LD HL, DEC HL INC L OECL LOL CPt
OIS NN HL N OIS HL (NN) N
ta 49 50 51 52 53 54 55 56 57 56 60 6 62 83
3 JRNC. LOSP. LO (NN), INC SP INC (HU DEC (HU LO(HU SCF JR C, AOO HL LD A OECSP INCA DE LOA. CCF
DIS NN A N OIS SP (NN) N
64 65 66 67 66 69 70 71 72 73 74 75 76 77 78 79
LDB. LO 8. LDB. U)B. LO 8 LOS. LDB. LDB. LOC. LD C. LOC. LOC. LOC. LOC. LOC. LDC.
8 C D E H L (HU B C 0 E H IHL)
«0 81 62 83 84 85 66 87 88 89 90 91 92 93 94 95
5 LOO. LOO. LOO. LOO. LOD. LOO. LOO. LOD. LOE. LOE. LOE. LDE. LOE. LDE LDE. LOE.
B C 0 E H (HL| 8 C 0 E (HU
96 96 99 100 102 104 105 106 107 106 109 110 111
97 101 103 LOL.
LO H, LD H. LD H. LD H, LD H. LD H. LOL LOL LD L LOL LOL. LOL. LOL
E C O E IHU B C 0
112 113 115 116 117 118 119 120 121 122 123 124 125 126 127
LO (HU LD (HU Lo'lHU. LOIHU. LOJHLl LD (HU LO (HU LOIHU LOA LOA, LOA. LOA LOA LOA LD A LOA.
B C 0 E L |HU A B C 0 E H L (HU A

S ADD A. ADD A. AOO A AOO A. AOO A. AOO A ADD A, ADD A AOC A. AOC A. AOC A ADC A AOC A. ADC A AOC A ADC A,
B C D E L (HU B C 0 E H L (HU
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
9 SUBB SUB C SU8 D SUBE SUB H SUB L SUB IHLÍ SUBA, SBC A SBC A. SBC A SBC A SBC A. S8C A SBC A. SBC A.
8 C D E H (HU
160 161 162 163 164 16S 166 167 168 169 170 171 172 173 174 175
A ANO B AMO C ANDO ANO E AND H AND L AND IHU ANO A XOR B XOR C XOR 0 XOR E XOR H XOR L !OR (HL) XOR A

176 177 178 179 180 181 162 183 184 185 186 167 166 189 190 191
8 0R8 ORC ORD ORE ORH ORI OR (HU ORA CP B CPC CPO CP E CPH CP L CP(HU CP A

192 193 194 195 196 197 196 199 200 201 202 203 204 205 206 207

NN NN N NN NN N
212 214 222
206 206 210 211 213 215 216 217 218 219 220 221 223
EXX CALL C, prolio SBC A. RST 18H
0 RET NC POP DE JP NC, OUTINV CALL NC. VSH DE SU8N RST IOH RETC JPC. INA,
NN A NN NN |N| NN N
224 225 226 227 228 229 230 231 232 233 234 235 6 237 236 239
E RET PO PO HL JPPO. EXLSPL ;ALL PO •USH HL AND N RST20H RET PE JP (HU JP PE. EXOE. •ALL PE pKhfi XOR N RST 26H
HL NN HL N
240 241 242 2*3 244 245 246 247 248 249
F RET P POP Af JPP, 01 CAUP. 1ISH AF OFLN, RST30H RET M LD SP. JPM, A CALLM, PLTF» ¿PN RST~38H
NN

MICROHOBBY ESPECIAL
54 E S P E C I A L

ADC CALL
S U M A con ACARREO. Se encuentra en dos formas: Equivale al G O S U B del Basic. CALL efectúa una lla-
ADC A,r y ADC H l , s . La r debe entenderse como cual- mado a una S U B R U T I N A especificado como una direc-
quiera de los registros A, B, C, D, E, H, L, un número, ción. Si, por ejemplo, queremos llamar a una subruti-
o el contenido de una dirección cuyo puntero es (HL), na que se encuentra en la dirección 2 5 0 0 0 se escribirá
( I X + d) o (lY + d). La s se entiende como cualquiera de como CALL 2 5 0 0 0 . La instrucción se ejecuta como si-
los registros dobles BC, DE, HL o SP. ADC A , r efectúa gue: en primer lugar el microprocesador introduce en
la operación A - A + r + CARRY y ADC HL,s opera en el STACK la dirección de retorno para efectuar a con-
la forma H L = HL + s + CARRY. La instrucción ADC afecta tinuación un salto a la dirección especificada. La ins-
a todos los FLAGS. trucción CALL puede, a su vez, operar de forma con-
dicional: CALL 1, CALL NC, CALL PE, etc.

ADD
S U M A . Esta operación se efectúa sin incluir el aca-
CCF
rreo y se presenta en las formas ADD A,r, ADD HL,s, C O M P L E M E N T A el CARRY FLAG. Si Carry e
ADD IX,s y ADD IY,s. La r y la s toman idéntica forma cambia su valor a uno, y viceversa.
que en ADC siendo diferente en el caso de IX e IY en
las cuales HL se sustituye por IX e IY, respectivamente.
La forma ADD A,r afecta a todos los flags mientras que
las otras no afectan a los flags S, Z y P/V.
CP
COMPARA. Toma la forma CP r y efectúa una com-
AND paración, entendida como A - r , entre A y r afectando
a T O D O S los flags, pero sin alterar el valor del regis-
tro A o de r. La r puede ser cualquiera de los registros
Toma la forma A N D r (entendido como A A N D r)
A, B, C, D, E, H, K, un número, o el contenido de una
siendo r cualquiera de los registros A, B, C, D, E, H,
dirección cuyo puntero es (HL), ( I X + d) o (lY + d).
L, un número, o el contenido de una dirección cuyo pun-
tero es (HL), ( I X + d) o (lY + d). Conviene observar que
esta instrucción sólo opera entre el registro A y r.
La operación lógica A N D consiste en la M U L T I P L I -
C A C I O N B I N A R I A , BIT a BIT, entre el valor del regis-
tro A con el correspondiente de r quedando el resulta-
CPD
do en A. Su lógica es 0 A N D 0 0, 0 A N D 1 0, 1 A N D COMPARA C O N DECREMENTO. Esta es una poten-
0 0 y A N D 1 - 1. Si, por ejemplo, el valor de A es (en te instrucción que permite comparar el registro A con
binario) de 0 110 1100 y el de r 1 1 1 0 0 111 el resulta- una tabla de datos direccionada por HL. Opera como
do será 0 1 1 0 0 1 0 0 (ver figura 10). sigue: primero efectúa CP (HL), seguido de DEC HL,
A N D altera todos los flags, especialmente el de seguido de DEC BC. La instrucción CP (HL) efectuada
CARRY que siempre se pone a CERO. afecta U N I C A M E N T E (en lo que interesa de dicha ope-
ración) al flag de CERO (Z). A su vez DEC BC afecta
al flag P/V ya que mientras BC no sea cero este flag
permanecerá activado, de esto manera, si queremos
repetir el proceso BC veces bastará efectuar un JP PE
a la instrucción CPD.
Todos los flags son afectados excepto el CARRY.

CPDR
COMPARA con D E C R E M E N T O y REPITICION. Efec-
túa la misma operación que CPD excepto en que el pro-
ceso se repite automáticamente mientras BC no sea CE-
RO o hasta que el byte comparado seo idéntico al re-
gistro A.

Fig. 10

CPI
BIT COMPARA con I N C R E M E N T O . Igual que CPD ex-
cepto que HL se incremento en lugar de decrementar-

Esta instrucción examina el estado concreto de un bit


de un registro o una indirección haciendo una copia
de éste en el flag Z . Se escribe como BIT b,r donde b
es el bit a examinar (del 0 al 7) y r puede ser uno cual-
quiera de los registros A, B, C, D, E, H, L, o un bit del
contenido de una dirección cuyo puntero es (HL), (IX+ d)
CPIR
o (lY + d). Esta instrucción altera todos los flags excep- COMPARA con I N C R E M E N T O y R E P E T I C I O N . Co-
to el CARRY. mo CPDR excepto que HL se incrementa.

MICROHOBBY ESPECIAL
eum DE comnnDos 55

CPL EXX
COMPLEMENTA el registro A (complemento o uno). I N T E R C A M B I O de REGISTROS PRIMA. Intercambia
Efectúo el complemento bit o bit del registro A. Si un por sus correspondientes PRIMA los registros BC, DE
bit vale 0 lo pone a 1 y viceversa. y HL. Esto instrucción es muy interesante por lo rapi-
dez (y sencillez) de ejecución frente a instrucciones co-
mo P U S H y POP. En el SPECTRUM el registro primo HL
contiene la dirección de salto a una subrutina de cál-

DAA culo de la ROM a través de la cual se produce el retor-


no al sistema operativo BASIC. Si utilizamos una subru-
tina que corrompa su valor y queremos retornar ai BA-
AJUSTE DECIMAL el registro A. Esta instrucción se
SIC conviene ejecutar LD HL, 2758 hex/EXX/RET (me-
utiliza cuando se trabaja con aritmética BCD en la cual
jor que EXX/PUSH HL/.../POP HL/EXX).
un byte se parte en dos N I B B L E . Cada N I B B L E consta,
respectivamente, del bit 7 al bit 4 y del bit 3 al bit 0 .
Se asume que cada nibble podrá tomar un valor del
0 al 9 y cualquier valor que lo exceda se tomará como
un «acarreo». DAA se encarga, precisamente, de «ajus-
tara el valor de los dos nibbles al formato correcto. Si
HALT
ese produjese un «acarreo» en el nibble más significa- A L T O . Esta instrucción detiene el Z 8 0 hasta que se
tivo (bits del 7 al 4) éste afectaría al CARRY. DAA afecta produce una señal de interrupción y ésta se acepta. En
a todos los flags. el coso de que estén deshabilitadas las interrupciones
el microprocesador permanecerá detenido indefinida-
mente (una forma de «ponerlo en marcha», aparte el
consabido RESET, puede ser vía N M I ) .

DEC
DECREMENTA. Toma dos formas posibles: DEC r y
DEC s. Su cometido es simplemente reducir en uno el
valor de r ó s. La r se entiende como cualquiera de los
IM
registros A, B, C, D, E, H, L, o el contenido de una di- M O D O de I N T E R R U P C I O N . Esta instrucción se aplica
rección cuyo puntero es (HL), ( I X + d) o (lY + d) y afec- a las denominadas interrupciones enmascarables (o
ta a todos los flags excepto al carry. La s se entiende «habitables-deshabitables») y puede tomar una de las
como cualquiera de los registros BC, DE, H L , SP, IX o tres formas siguientes:
IY y N O AFECTA a N I N G U N FLAG. IM 0 . El microprocesador, al producirse una señal
de interrupción, asume que hay un periférico encargado
de suministrarle la I N S T R U C C I O N de I N T E R R U P C I O N
a través del B U S de datos. Como en el S P E C T R U M no

DI existe este periférico específico, el B U S de datos (que


trabaja con lógica inversa) contendrá 255 que es el có-
digo de operación de la instrucción RST 38 hex (CALL
DESHABILITA I N T E R R U P C I O N E S . Impide que el mi- 38 hex) efectuándose accidentalmente una llamada a
croprocesador atiendo a la señal I N T de interrupción dicha subrutina. Como esta subrutina es precisamente
y, por lo tanto, la subrutina de interrupción. la encargado de tratar la interrupción efectuando la
lectura de teclado y el incremento de FRAMES, no tie-
ne ninguna consecuencia apreciable.
IM 1. Es el modo utilizado por el SPECTRUM. Cada
DJNZ vez que se produce una interrupción el microprocesa-
dor ejecuta un RST 38 hex efectuándose la lectura de
DECREMENTA el registro B y SALTA SI N O es CE- teclado y el incremento del valor de FRAMES.
RO. Esta instrucción es particularmente útil en bucles IM 2. Podría decirse que éste es el modo de interrup-
de corta longitud (128 bytes) y que no precisan una re- ción más potente. Cuando ésta se produce, el micro-
petición superior o 256 (B = 0 ) . D J N Z N O AFECTA a procesador debe tomar de la memoria dos bytes que
los flags. van a formar precisamente la dirección de la subruti-
na de interrupción. ¿Cómo decide la DIRECCION don-
de se encuentran esos dos bytes?: en primer lugar asu-
me que el byte M E N O S significativo que forma esa di-
rección va a ser suministrado por un periférico encar-
El gado de introducirlo en el B U S de datos y, como no
existe tal periférico, este byte SIEMPRE será igual a 255.
H A B I L I T A I N T E R R U P C I O N E S . Permite al micropro- Para generar el byte M A S significativo de la dirección
cesador ontender la señal de petición de interrupción P U N T E R O se utiliza el registro especializado I (de In-
y ejecutar, según el modelo de interrupción, la subruti- terrupción) de forma que la DIRECCION de la S U B R U -
na correspondiente. T I N A de I N T E R R U P C I O N podría expresarse así:
DSI - PEEK (I*256 + 255) + 256* PEEK (I *256 + 255 + 1 ) .

EX
I N T E R C A M B I O . Hay cinco instrucciones diferentes
para EX: EX, AF, A F ' , EX DE, H L , EX (SP), HL, EX (SP).
IX y EX (SP), IY. La instrucción EX DE, HL intercambia
el valor de DE por el de HL y viceversa. Ninguna de
estas instrucciones afecto o los flags (la instrucción EX,
AF, A F ' toma los flags de F ' pero no los altera).

MICROHOBBY ESPECIAL 55
56 E S P E C I A L

IN JR
I N P U T . Se escribe en dos formas: I N A,(n) e I N r,(C). S A L T O RELATIVO. Efectúa un salto, hacia delante o
Se utiliza para leer datos suministrados por un periféri- hacia atrás, un número especificado de bytes a partir
co: el teclado, un Joystick, una impresora, etc. En la de la posición del registro PC (el Contador de Progra-
primera forma, la n es un número comprendido entre ma cuando lee una instrucción se sitúa justamente al
0 y 2 5 5 y se refiere al byte menos significativo de la principio de lo siguiente A N T E S de ejecutar dicha ins-
dirección del periférico. La instrucción se usa asignan- trucción). Esta instrucción puede ejecutarse de formo
do primeramente al registro A el byte más significativo condicional, pero únicamente paro los flags de CERO
de dicha dirección y a continuación se efectúa la lectu- y CARRY.
ra. Por ejemplo: si queremos leer la semifila del tecla-
do correspondiente a las teclas 1 a 5 escribiremos: LD
A,F7 hex/IN A, (FE hex). Esta instrucción no altero nin-

LD
gún flag.
En la forma I N A,(C), la (C) se refiere a (BC), lo r
puede ser cualquiera de los registros A, B, C, D, E, H
o L. Para efectuar una lectura como en el ejemplo an- CARGA. Es el equivalente al LET del BASIC permi-
terior escribiríamos LD BC,F7FE hex/IN A,(C). Esto ins- tiendo la asignación de valores o registros, la carga de
trucción altera todos los flags excepto el carry. un registro en otro, la carga del contenido de uno di-
rección en un registro y viceversa, etc. Es, precisamen-
Esta instrucción es también utilizada por la ROM en
te, la instrucción más utilizada.
la subrutina de LOAD.

IND LDD
CARGA con D E C R E M E N T O . Opera por orden co-
I N P U T con DECREMENTO. Opera en este orden: I N
mo LD (DE). (HL) (entendido como POKE DE, PEEK HL)
(HL), (C), seauido de DEC H L , seguido de DEC B. Alte-
seguido de DEC HL, DEC DE y DEC BC. Esta instruc-
ra todos los tlags, excepto el carry, y especialmente el
ción altero el flag P/V que permanecerá activo mien-
flag de cero que permanecerá activo mientras B sea
tras BC no sea cero.
diferente de cero.

INDR LDDR
I N P U T con D E C R E M E N T O y R E P E T I C I O N . Opero CARGA con D E C R E M E N T O y R E P E T I C I O N . Como
como I N D repitiéndose el proceso mientras B no sea LDD repitiéndose el proceso automáticamente mientras
cero. BC no sea cero. Esta instrucción, junto con LDIR, es pro-
bablemente la más potente del Z 8 0 ulizándose pora
mover grandes bloques de datos de forma automáti-
co, efectuar un CLS o un SROLL.

INI
I N P U T con I N C R E M E N T O . Como I N D excepto que
H L se incremento.
LDI
CARGA con I N C R E M E N T O . Como LDD excepto que
HL y DE se incrementan.

INIR
I N P U T con I N C R E M E N T O y R E P E T I C I O N . Como
I N I . repitiéndose .el proceso mientras B no seo cero.
LDIR
CARGA con I N C R E M E N T O y R E P E T I C I O N . Como
LDI repitiéndose el proceso mientras BC no sea cero.

JP
S A L T O a una dirección. Toma las formas JP n y JP
s donde n es un número que especifica la dirección de
NEG
salto pudiendo efectuarse éste de forma condicional. N E G A C I O N . Invierte el signo del registro A (com-
Por s se puede utilizar uno de los registros H L , IX o plemento a dos) y altera todos los flags. Si A vale uno,
IY efectuando el microprocesador un «salto» a la direc- entonces N E G cambia su valor a menos uno (FF hex).
ción que forma el valor de uno de estos registros. Esto
forma de salto es incondicional.

MICROHOBBY ESPECIAL
cuín se comnnDos 5 7
NOP PUSH
NO OPERACION. El registro PC (contador de pro- INTRODUCIR. Opera en modo inverso a la instruc-
gramo) avanza hasta la próxima instrucción. Se suele ción POP. Si efectuamos PUSH BC el efecto seria DEC
usar como retardo o con objeto de ser reescrito más SP/LD (SP),B/DEC SP/LD (SP),C. Esta instrucción no al-
adelante. tera ningún flag.

OR RES
En lo forma OR r (entendida como A OR r) donde RESET bit. En la forma RES b, r donde b es un bit del
r puede ser cualquiera de los registros A, B, C, D, E, 0 al 7 y r cualquiera de los registros A, B, C, D, E, H,
H, L, un número o el contenido de una dirección cuyo L, un número, o el contenido de una dirección cuyo pun-
puntero es (HL), (IX + d) o (IY + d). Efectúa, bit a bit, la tero es (HL), (IX + d) o (IY + d). Esta instrucción pone a
función lógica OR en lo que 0 OR 0 = 0, 1 OR 0 = 1, CERO el bit especificado sin alterar ningún flag.
0 OR 1 - 1 y 1 OR 1 = 1. Asi, si A = 1 0 0 1 1 0 1 1 y
r - 0 0 0 1 1 0 0 0 el resultado será 1 0 0 1 1 0 1 1 (ver figu-
ro 11). Esta instrucción afecta a todos los flags espe-
cialmente al CARRY que se pone SIEMPRE A CERO.
RET
RETORNA de la subrutina. Eauivale al RETURN del
BASIC pudiendo efectuarse de rormo condicional. Es-
OUT ta instrucción toma del STACK la dirección de retorno
de la subrutina y finalmente salta a dicho dirección.
O U T P U T . Efectúa la operación inversa a la instruc-
ción IN tomando las formas O U T (n), A y O U T (C), r
donde n y r son idénticas a las explicadas para I N . En
la forma O U T (n), A no se especifica el byte más signi-
ficativo. La ROM utiliza O U T en rutinas como SAVE y
RETI
BEEP. RETORNA de la INTERRUPCION enmoscarable.
Opera como sigue: antes de retornar espera hasta el
siguiente pulso de interrupción con objeto de evitar la
recursividad, luego habilita las interrupciones (el micro-
OUTD procesador las deshabilita automáticamente) y por úl-
timo, toma la dirección de retorno del STACK efectuan-
O U T P U T con DECREMENTO. Efectúa O U T (C), (HL) do un salto a dicha dirección.
seguido de DEC HL y DEC B. El flag de carry perma-
nece inalterado siendo afectado el de cero de acuer-
do al valor final de B.
RETN
RETORNA de la S U B R U T I N A de INTERRUPCION
OTDR N O ENMASCARABLE. Cuando llega un pulso de se-
ñal a la patilla NMI (petición de Interrupción No en
O U T P U T con DECREMENTO y REPETICION. Como Mascarable) del microprocesador éste efectúa un RST
OUTD, repitiéndose el proceso mientras B no sea ce- 66 hex inmediatamente ya que este modo de interrup-
ción tiene PRIORIDAD ABSOLUTA y no existe para ella
instrucción de deshabilitación. Antes de efectuar esto
llamada el microprocesador almacena en un flip-flop
interno el estado de las interrupciones (habilitadas o no),
a continuación las deshabilita, almaceno en el STACK
OUTI la dirección de retorno y por último, salto a la direc-
ción 66 hex. Cuando se ejecuta la instrucción RETN el
O U T P U T con INCREMENTO. Como O U T D excepto microprocesador repone el estado de las interrupcio-
que HL se incrementa. nes, toma del STACK la dirección de retorno y finalmen-
te salto a esto dirección.

OTIR
O U T P U T con INCREMENTO y REPETICION. Como
RLA
O U T I repitiéndose el proceso mientras B no sea cero. ROTACION a la IZQUIERDA del ACUMULADOR a
través del carry. Como puede observarse en la figura
1 cada uno de los bits de A es movido una posición a
la izquierda, pasando el bit 7 al CARRY y el valor ini-

POP cial de éste al bit 0 de A. Esta instrucción afecta única-


mente al CARRY y sólo precisa un byte.
EXTRAER. En la forma POP AF y POP s donde s pue- Fíg. 1 R L & RLFI

ÉH
de ser BC, DE, HL, IX o IY. Si efectuamos POP BC el
efecto será como LD C,(SP)/INC SP/LD B,(SP)/INC SP.
Excepto en el coso de POP AF (que recupera los flags) 7<|-6< j - 5 < j - A < j - 3 < y-2<j-!<•••-0 <-'
esto instrucción deja tos flags inalterados.

MICROHOBBY ESPECIAL 57


58 E S P E C I A L

RL RRA
R O T A C I O N a la I Z Q U I E R D A a través del carry. To- Como RLA excepto que la rotación se produce a lo
ma lo forma RL r donde r puede ser cualquiera de los derecha en lugar de a la izquierda (figura 4).
registros A, B, C, D, E, H, L, o el contenido de una di-
rección cuyo puntero es ( H L ) , ( I X + d) o (lY + d). Efec-
túa la misma operación que RLA con la diferencia de Fig. 4 RR & RRfi
que afecta a T O D O S los flaas y precisa de dos a tres

EEÉHÉl
bytes (según sea r) empleando, mínimo, el doble de ci-
clos de operación. Puede observarse esquemáticamente -• I 7-T>6-T»5-t><1-T>3-T>2'
su funcionamiento en la figura 1. I I I '

RLCA
R O T A C I O N CIRCULAR a lo I Z Q U I E R D A del ACU- RR
M U L A D O R . En la figura 2 se observa su funcionamien-
Como RL excepto que la rotación se produce a la de-
to. Cada uno de los bits de A se desplaza en forma cir-
recha en lugar de a la izquierda (figuro 4).
cular hacia la izquierda posando uno copia del bit 7
al bit 0 y otra al carry. Esta instrucción afecto sólo al
flog CARRY.

RRCA
Como RLCA excepto que la rotación se produce ha-
cia la derecha en lugar de a la izquierda (figura 5).

R O T A C I O N CIRCULAR a la I Z Q U I E R D A . Toma la
forma RLC r donde r es idéntica que para RLA. Opera Fig. 5 r r c & RRCA
de igual forma que RLCA referido a r.

Fig. 2 RLC * RLCR L | 7.1>6.1>5.1>4.1>3"í>2-1>1-|>7}1[T|

RRC
RLD Como RLC excepto que lo rotación se produce hacia
la derecha en lugar de a la izquierda (figura 5).
R O T A C I O N o la I Z Q U I E R D A de DOS DIGITOS BCD.
Esta instrucción se utiliza en aritmética BCD y opero de
formo especial ya que no se produce una rotación pro-
piamente dicha sino un desplazamiento. El contenido
de la dirección cuyo puntero es (HL) se trata como dos
RRD
N I B B L E (figura 3). El nibble M E N O S significativo de ROTACION DERECHA de DOS DIGITOS BCD. El nib-
(HL) posa a la posición del nibble MAS signficatio de ble MAS significativo de (HL) posa al M E N O S signifi-
(HL). A su vez el nibble M A S significativo de (HL) pasa cotvo de (HL) y éste a su vez al M E N O S significativo
al nibble M E N O S significativo del REGISTRO A. El nib- del R E G I S T R O A. El nibble M E N O S significativo de A
ble M E N O S significativo de A pasa al nibble M E N O S posa al MAS significativo de (HL) (ver figura 6).
significativo de (HL).
RLD
Fig. 3 |
Fig. 6 RRD
| 7 6 5 4. 3 2 1 0 |
T
R 17 6 5 <t 3 2 1 0

i
6 5 4. | 3 2 1 0|
t T (HD [ 7 6 5 ¿ [ s a 1 a|

' — I — ' I

MICROHOBBY ESPECIAL
cuín DE comnnDos 59

RST SUB
RESTART. Produce el mismo efecto que lo instrucción RESTA. Toma la única forma S U B r (se entiende co-
CALL con dos diferencias: sólo es posible ejecutar esta mo S U B A,r) ya que S O L O E X I S T E PARA REGISTROS
instrucción para O C H O posibles direcciones (en hex): SIMPLES. La r se entiende como cualquiera de los re-
0 , 8 , 10, 18, 2 0 , 28, 30 ó 38 siendo esta llamada IN- gistros A, B, C, D, E, H, L, un número, o como el con-
CONDICIONAL. tenido de una dirección cuyo puntero es (HL), (IX-f d)
o (lY + d). Opera como A - A - r y altera T O D O S los
flags. Si quisiéramos efecturar una resta S I N acarreo
para registros dobles deberíamos usar la secuencia
SBC A N D A (u OR A)/SBC HL,s. La instrucción A N D a (u
OR A) no afecta al registro A pero pone el carry a ce-
RESTA con ACARREO. Opera en dos formas: SBC A,
r y SBC HL,s donde r y s toman la misma forma que
para ADC. Esta instrucción afecta a todos los flogs.

XOR
SET
OR EXCLUSIVA. Toma la forma XOR r (entendida co-
ASIGNA. Toma la forma SET b,r donde b y r son idén- mo A XOR r) donde r es idéntica a la explicada para
ticos a la instrucción RES. S E T pone a U N O el bit espe- A N D y OR. Efectúa la función OR exclusivo, bit a bit,
cificado de r. del registro A con r en la que 0 XOR 0 0 , 1 XOR 0 = 1 , |
0 X O R 1 = 1 y 1 X O R 1 = 0 . Si por ejemplo
A 1 1 0 0 0 0 1 1 y r 0 0 1 1 0 0 1 1 el resultado será
1 1 1 1 0 0 0 0 (ver ejemplo fig. 12).
SLA
Fig. 1 1 O R
D E S P L A Z A M I E N T O A R I T M E T I C O a la I Z Q U I E R D A .
Toma la forma SLA r donde r se escribe como en las
instrucciones de rotación ya descritas. Los bits de r se
desplazan una posición a lo izquierda, el bit 7 pasa al
CARRY y el BIT 0 se pone a CERO (figura 7). Altera
todos los flags.

Fig. 7 S L R

SRA
D E S P L A Z A M I E N T O ARITMETICO a la DERECHA. Se
escribe como SRA r donde r es la forma ya menciona- Fig. 12
da. Los bits de r se desplazan a la derecha, el bit 0 pa-
sa al CARRY permaneciendo el bit 7 inalterado (fi-
gura 8). Altera todos los flags.

Fig. 8 SRR

T ' ° T , J i " i " i r c i "

SRL
D E S P L A Z A M I E N T O LOGICO a la DERECHA. Se es-
cribe como SRL r donde r es !a forma ya mencionada.
Los bits de r se desplazan o la derecha, el bit 0 pasa
ol CARRY v el bit 7 se ponde a CERO (figura 9). Altera
todos los flags.

Fig. 9 S R L

I 0 H 7'{>6'}>5'{>LT'T>3'T>G'{>1'{>E' H C |

MICROHOBBY ESPECIAL 59
60 U T I L I D A D E S

J. M. LAZO

Un procesador de
textos es, sin duda, la
mejor herramienta de
trabajo que un escritor
puede usar. La prueba
reside en que un 95
por ciento de los
escritos que tenéis
ocasión de leer están
confeccionados con
uno de estos
maravillosos
programas.

C
uando decidimos realizar un
análisis de los procesadores
de texto existentes para el
Spectrum nos encontramos
ante una caótica situación: por una
parte existen varios (Context v2, Tas-
word two, Context vó y Context v.8,
por mencionar alalinos) que son dis-
tintos, no cabe duda, pero distintos só-
lo en el listado Basic que incorporan
y que se encarga de manejar las me-
morias externas y la impresora. La
parte CM del programa y, por lo tan-
to, lo referente a las cualidades que
tenga el mismo en lo que concierne a
la escritura de un texto, formateado
de pantalla, distintos comandos etc,
son prácticamente iguales en "éstos.
Por otra parte, recientemente ha sa-

MICROHOBBY ESPECIAL
Procesadores de TEXTOS 61

lido al mercado un procesador de tex- ni una sola tecla ya que una caracte- jar con todas las columnas de texto
tos, The last Word (la última palabra), rística muy aguda del mismo es que que precisemos, h a s t a 1 4 8 , con lo
que es la nueva concepción por lo que dispone de un «buffer» de 21 letras en cual conseguimos hacer textos aptos
es completamente distinto a los que el que almacenará las pulsaciones que para impresoras de alto calibre. Si te-
hasta ahora disponíamos. Esto nos ha demos en el teclado si éstas no pue- nemos unas columnas de texto mayo-
llevado a comentar nada más que' den ser atendidas en ese momento, es- res en número a las columnas de pan-
dos p r o g r a m a s : por una parte el ta cualidad hace las delicias de los me- talla, el texto no se justificará ni se en-
C o n t e x t v . 8 que incorpora las má- canógrafos habilidosos que en un mo- rollará hasta que no lleguemos a la úl-
ximas novedades en los de «antigua» mento dado son capaces de alcanzar tima columna de texto presentándose
concepción. Y por otra parte el L a s t una alta velocidad en el teclado. la información de la línea y columna
W o r d , que como hemos dicho, es to- en la parte superior de la pantalla
En esta zona de textos, aparte de
talmente distinto a éstos. acorde a esta circunstancia. Es decir,
presentarse él mismo, se nos manten-
drá informado, en la última columna que si estamos escribiendo un texto de
de la derecha, del estado de las dis- 100 columnas, por ejemplo, y el for-
T h e last w o r d tintas líneas. Es decir, podrán estar tres mateado de pantalla lo tenemos pues-
tipos de símbolos distintos: to sólo a 40, cada línea de texto ocu-
pará 2 líneas y 20 caracteres de pan-
Este procesador de textos se puede — Una «C» invertida, que quiere
talla. Por supuesto, podemos escribir
considerar que tiene dos puntos que decir que esta línea de texto está ter-
un escrito a un número determinado
lo destacan de los demás: por una minada con la pulasación de la tecla
de columnas de impresora y luego mo-
parte una gran s e n c i l l e z de m a - «Enter». Esto se indica así, ya que en
dificar el mismo con una orden para
n e j o , ya que todas las órdenes que la zona de memoria destinada al tex-
otro número distinto, y ésta es una de
se le pueden dar se introducen con la to, que por cierto es bastante amplia
las mayores ventajas de este procesa-
sola pulsación de una o dos teclas. Por ( 2 6 K ) , no se codifican los espacios
dor. Este artículo, por ejemplo, está
otra parte, el procesador entero está que dejemos, y de igual forma sólo se
siendo escrito a 40 columnas de pan-
escrito en CM y en el extenso manual pondrá el carácter de «Enter», o retor-
talla y de impresora por comodidad,
de instrucciones se da todo tipo de in- no de carro, cuando la misma tecla
pero luego a la hora de imprimirlo se
formación detallada no sólo sobre la sea pulsada.
pondrá a 60 o las que hagan falta.
manera de manejarlo sino sobre él — Una flecha inclinada hacia aba-
mismo a nivel variables de programa, jo, que quiere decir que la línea es nor-
rutinas y demás. Esto, unido a que es mal y corriente.
el único programa que conocemos — La misma «C» invertida de antes La v e n t a n a
que es capaz de manejar todo tipo de
¡nterfaces de m e m o r i a s de
pero con un subrayado, que nos quie-
re decir que en una línea en la que só-
informativa superior
m a s a habidos y por haber, hace lo está introducido el carácter «Enter»
pensar que The last word es un pro- se han metido también tokens o códi- Las tres líneas de arriba de la pan-
grama diseñado por una empresa se- gos de control de la impresora, estos talla contienen, como arriba hemos
r i a preocupada por el usuario. últimos no ocupan ningún espacio en comentado, información referente al
el texto a la hora de presentarlo en la estado en que se halla el programa y
A nivel general trabaja con la pan-
pantalla. el texto que estamos escribiendo:
talla dividida en dos trozos altamente
diferenciados: tres líneas de la parte En esta zona de texto también va, — Por una parte, la línea y colum-
superior destinadas a contener la in- como arriba hemos comentado, la na donde se encuentra el cursor de
formación del estado en que se en- ventana de información que necesitan texto y el espacio de memoria libre
cuentre el programa y las 20 líneas in- algunos comandos. Cuando invoque- que nos queda en K's.
feriores que contienen el texto propia- mos alguno de los mismos, el texto se — Luego, ya en el centro, el núme-
mente dicho. En la parte superior de escrolará hacia abajo tantas líneas co- ro de columnas en que está la presen-
estas 20 líneas de texto se abrirá una mo sea necesario y aparecerá esta tación así como un switch o bandera
ventana blanca, cuando sea oportu- ventana. En este momento dejaremos que indica si tenemos activado los
no para que podamos introducir la in- de tener control sobre el texto propia- marcadores de final de línea o no, el
formación que sea necesaria para al- mente dicho y sólo podremos actuar número de espacios del fabulador,
guno de los comandos de que dispo- sobre el comando en sí. que también tiene, y si estamos en ma-
ne el programa. La zona de textos se puede presen- yúsculas o minúsculas, así como si el
tar en la pantalla del ordenador en un programa está esperando texto o un
formato variable de 40, 48, 60 u 8 0 comando.
La zona d e textos c o l u m n a s , aunque esta última for-
ma no será muy legible a no ser que
— En el centro derecha, se hallan
los márgenes derecho e izquierdo del
dispongamos de un monitor de alta re- texto, éstos podrán ser un número
El texto es muy cómodo de entrar, solución. cualquiera entre el 1 y el 148.
es decir, por muy deprisa que teclee- Aunque tengamos un formato de — Por último, a mano derecha se
mos el programa nos sigue sin perder pantalla determinado podemos traba- encuentran tres apartados: el prime-

MICROHOBBY E S P E C I A L 61
62 U T I L I D A D E S

ro nos dice si tenemos activada la de- al principio o al final del escrito. — El c u a r t o bloque de co-
tección de final de línea según escri- — M a n e j o d e l t e x t o . Dentro de m a n d o s i n c o r p o r a t o d o lo re-
bamos o no. El segundo nos indica si este párrafo están los comandos pa- f e r e n t e a l a i m p r e s o r a . Por cier-
nos hayamos escribiendo un texto o in- ra borrado de textos. Esta operación to..., es de destacar el que el progra-
sertándolo en medio de otro más se puede hacer de todas formas ima- ma esté inicialmente preparado sólo
grande y el tercero y último nos dice ginables: borrar un carácter, una lí- para el interface de impresora Kemp-
si deseamos justificar la línea, o enro- nea, hasta el final de un párrafo, en- ston E, y aunque no nos ha resultado
llarla como se dice en el C o n t e x t , o tre dos líneas determinadas, y todo el difícil adaptarlo para el de Indescomp
por el contrario sólo separar la última texto completo, por supuesto. De igual Centronics, sí puede resultar imposible
palabra. forma, en este apartado nos encontra- para un usuario no avezado en cono-
Hay que hacer una aclaración pa- mos con comandos que sirven para cimientos de C M . De todas formas, en
ra los neófitos: justificar una línea sig- justificar o desjustificar la línea en la el manual se da una información pa-
nifica separar todas las palabras de la que se encuentre el cursor y una faci- ra adaptarlo a cualquier impresora
misma proporcionalmente al espacio lidad muy interesante para reparar el pero que no resulta suficientemente
que ocupen para que el aspecto del texto hasta el próximo párrafo. Con clara.
texto sea más profesional. este comando y el que sirve para
avanzar de párrafo en párrafo nos Como decíamos, en este bloque se
podemos cambiar las columnas de im- hallan tres órdenes para el m a n e j o
Los c o m a n d o s presora del escrito completo en un
abrir y cerrar de ojos.
d e l a i m p r e s o r a , cosa ésta funda-
mental en un procesador de textos. El
primero es, lógicamente, el que nos
U n par de facilidades más que se
Hay dos formas de introducir los dis- permite imprimir un texto en nuestra
pueden encontrar en este apartado
tintos comandos de que dispone el impresora, se pueden dar la primera
son: una orden para buscar y/o cam-
procesador de textos: por una parte línea, la última a imprimir, el espacia-
biar palabras dentro del texto y otra
con la pulsación conjunta de la tecla do entre líneas así como el número de
para centrar cabecera.
C A P S o S I M B O L ¡unto con la del co- copias a sacar.
— Comandos denominados
mando. Por otra parte activando el de utilidades. Aquí nos podemos El segundo nos informa sobre cómo
modo extendido con C A P S + S Y M - encontrar con el grueso de las fuerzas, están programados los distintos códi-
B O L y luego la tecla del comando o en este caso el bloque de comandos gos de control de la impresora, el pro-
bien pulsada sola, o bien junto con hacen operaciones muy generales so- grama dispone de 2 4 que inicalmente
S Y M B O L . T o d a la información, la de bre el texto. Por una parte están las están previstos para una impresora
todos los comandos que hay, y las te- órdenes para cambiar el estado de to- E P S O N R X - 8 0 , aunque una de las
clas necesarias para invocarlos se pre- dos los marcadores de la parte supe- primeras cosas que deberemos de ha-
senta en pantalla usando la orden rior de la pantalla (número de colum- cer con el procesador es programar
HELP con extendido + H . nas en pantalla, en impresora, saltos estos tokens para nuestra impresora
Las órdenes se pueden clasificar en del fabulador, justificación y enrolle de antes de sacar la copia de seguridad.
5 grandes grupos según lo que hagan: líneas, etc.). Por otra parte existen ór-
— M o v i m i e n t o del c u r s o r . El denes, dentro de este bloque, para El tercer comando es una guía de la
cursor de texto se puede mover por el cambiar los colores con los que que- impresora que nos permite cambiar la
mismo de muy distintas formas. Con remos trabajar para adecuar el pro- dirección de la rutina de impresión así
las flechas del cursor y se mueve, ló- gramo al gusto de cada uno. The last como los códigos de Enter y Retorno
gicamente, en las cuatro direcciones word, además de ser un procesador de carro.
de textos, dispone de una calculado-
posibles, eso sí, no podremos despla- — Y a en el ú l t i m o bloque nos
ra totalmente completa con toda la
zarlo por el sitio donde no haya texto e n c o n t r a m o s con t o d a s las ó r -
potencia del Basic que sirve para efec-
ya que los espacios vacíos no están en denes necesarias p a r a mane-
tuar cálculos complejos y almacenar
la memoria. j a r las memorias de masa. Se
los resultados en unas memorias así
Por otra parte, también se puede puede grabar un texto, lógicamente,
como usarlos en el texto que estemos
mover por palabras hacia un lado o especificando de qué línea a qué línea
escribiendo. Esto, que puede parecer
el otro, y en pasos fijos según tenga- se quiere grabar. Lo podemos cargar
de dudosa utilidad al principio, resul-
mos programado el fabulador. Una también, aunque no es una carga pro-
ta luego muy interesante cuando pre-
forma de moverlo muy interesante, es piamente dicha, sino una mezcla al fi-
cisemos introducir números en el tex-
desplazarlo con una orden determina- nal del texto que tengamos en memo-
to productos de algún cálculo.
da hasta el próximo párrafo, lo que ria. Si deseáramos cargarlo limpia-
nos servirá para reparar el texto si he- Por último, dentro de este bloque se mente tendríamos que borrar la me-
mos cambiado el número de columnas puede destacar una orden para pro- moria con la orden Z A P .
del mismo. Se puede ir, de igual for- gramar una alarma que nos avisará Tres órdenes quedan para los usua-
ma, hasta una línea determinada con cada cierto tiempo al objeto de que re- rios de memorias de masa distintas al
el consiguiente comando. Por último, fresquemos el backup del texto que cassette: sacar un catálogo del disco,
también se puede mover por páginas tengamos en el disco u otra memoria erasear un fichero y formatear un dis-
hacia arriba o hacia abajo así como de masa. co.

MICROHOBBY ESPECIAL
Procesadores de TEXTOS 63

Resumiendo editor de texto y poder hacer modifi-


caciones en el mismo.
Por muy poco d i n e r o disponemos La segunda, impresora, sirve pa-
de un paquete de manejos de textos ra imprimir el texto en una impresora
que resulta i n n o v a d o r en su técni- grande. Primero nos preguntará la
ca y sencillo en su manejo, aunque no primera línea que queremos imprimir
hay que descontar que es nuevo en el y luego, la última para, acto seguido,
mercado, por lo que pueda resultar pasar a la impresión del texto. Des-
que tenga algún bug importante. De pués retornará automáticamente a es-
todas formas, no hemos detectado na- te menú principal.
da raro. La tercera opción, memorias ex-
ternas, nos lleva a un segundo me-
Context v.8 nú con las opciones de salvado, car-
gado y eraseado del fichero de texto
Si hay algún programa que se pue- tanto en cassette como en microdrive.
da considerar veterano en el Spectrum La cuarta opción, ficheros, nos lle-
ése es el Context v.8 y toda su larga va a la impresión del texto con fichas.
saga de predecesores. Esto nos da Esto es conveniente explicarlo más de-
una enorme garantía de funciona- talladamente:
miento al haberse hecho multitud de Hay que tener en cuenta que el ar-
versiones depuradas, optimizadas y chivo de texto consta de 320 líneas de
ampliadas del mismo programa. 64 carácteres y nosotros, con la op-
Aparte de esto es, quizás, el progra- ción de impresora, podemos imprimir
ma más conocido, como utilidad, pa- un trozo cualquiera de un texto. Pero
ra este ordenador. nos puede interesar tener, dentro del
Context v.8 es un procesador de tex- texto, un sitio en el cual, en el momen-
tos, último por ahora de su estirpe, to de la impresión introduzcamos esa
que , uniendo una facilidad de mane- ficha, pues bien, esta opción incluye la
jo grande con una performance ade- impresión con ficheros. Lo primero que
cuada al Spectrum nos lleva al equili- tendremos que hacer será crear la o
brio entre lo s o f i s t i c a d o y lo senci- las fichas, para lo cual al final del tex-
llo en un procesador de textos. to que queramos imprimir escribiremos
Como ai principio de este artículo se la misma entre dos corchetes ([ y J).
comentó, el programa se divide en dos Luego, en los sitios donde queramos
partes: el CM, que asume todo el blo- poner estas fichas, situaremos el cará-
que de funciones de manejo del texto cer gráfico cuyo código ASCII es el
y demás rutinas que han permaneci- 143 y por último, podemos imprimir el
do prácticamente invariables y el Ba- texto con la opción 4 del menú princi-
sic, que contiene todo lo referente al pal.
manejo de memorias externas e im- La siguiente opción, la 5, es la crea-
presora y, en esta ú l t i m a v e r s i ó n , ción de cartas personalizadas y
también un par de opciones de fiche- la usaremos cuando precisemos impri-
ro que luego se comentarán. mir textos en los que haya nombres o
El formateado en pantalla a la ho- direcciones que varien. Para esto só-
ra de escribir el texto está invariable- lo tenemos que elegir esta opción del
mente en 64 columnas fruto del com- menú principal y escribir el texto, pe-
promiso entre lo fucional y lo cómodo ro en los sitios donde vayan los nom-
de usar. Sólo cambiará a las 32 nor- bres o direcciones situaremos un nú-
males del Spectrum cuando salgamos mero entre corchetes ([ y ]). En el mo-
al menú principal por medio del uso mento en que terminemos de escribir
de la función STOP. Hablando ya de el texto el ordenador nos preguntará
este menú el mismo dispone de 9 op- los párrafos que tiene que asignar a
ciones y es una buena idea el comen- estos corchetes y procederá a impri-
zar por ahí. mir el texto. Luego nos interrogará so-
bre si deseamos repetir la operación
y lo volverá a hacer si así lo deseamos.
El m e n ú principal La sexta opción, sustitución de
CHR$, nos sirve para cambiar un AS-
La primera opción, Texto, es, co- CI I de todo el texto por otro distinto.
mo su nombre indica, para retornar al Esto lo utilizaremos cuando nuestra im-

MICROHOBBY E S P E C I A L 63
64 U T I L I D A D E S

presora tenga unos códigos para la ñ, cursor ol final o al principio del escri-
por ejemplo, distintos a los que tiene to. Si leyendo el texto viéramos que se
el programa. nos ha olvidado una palabra la pode-
El procesador de textos tiene dos mos insertar con la orden A N D que
páginas de ayuda que se consiguen nos abre una línea de texto a partir del
pulsando «Edit» estando en el modo cursor. Si fuera más de una palabra
editor, pues bien, una de estas pági- activaríamos el modo de insercción
nas tiene la información referente a la con lo cual según fuéramos escribien-
impresora y si deseamos combiarla do texto la ventana se ¡ría ampliando.
habremos de usar la opción 7 del me- Para arreglar el desaguisado que hu-
nú principal, modificación de la biéramos ocasionado usaríamos la or-
información. den S T E P que arregla un párrafo de
Las últimas dos opciones del menú texto. De igual manera también pode-
principal son referentes a la impreso- mos borrar líneas completas con la or-
ra: lo octava, margen izquierdo, den N O T .
sirve para fijar el margen izquierdo, — Para poner cabeceras existe un
valga la redundancia, que queramos comando que centra textos en la pan-
cuando vayamos a imprimir el texto. talla automáticamente aunque luego
Y la última, c a m b i o d e ¡ n t e r f a c e , podemos correr la línea completa ha-
se utiliza pora seleccionar el ¡nterface cia la izquierda o la derecha usando
de impresora que tengamos de entre otras dos órdenes.
un total de 4 que es capaz de mane- — Al igual que The Last Word y co-
jar el programa. mo todo buen procesador de textos
que se precie, dispone de una detec-
ción automática de final de línea se-
El editor d e texto gún tecleamos que podemos inhibir o
desconectar y de una justificación
automática de la línea o no.
U n a vez que entremos en el editor — U n o s comandos muy interesan-
de texto con la opción 1 del menú prin- tes que posee el Context y que le fal-
cipal, dispondremos del escrito que es- tan al Last Word, son los referentes al
tuviéramos confeccionando en la pan- manejo de bloques: se pueden marcar
talla y el cursor al comienzo del mis- principio y finai de bloque con sendas
mo. En este momento podemos seguir órdenes y luego mover o copiar este
escribiendo texto o introducir algún bloque en otra parte del texto.
comando del editor de un modo igual — Por último, sólo destacar un par
o parecido al que tiene The Last Word: de cosas: que si nos resulta más cómo-
algunas órdenes se dictarán con la do trabajar en 3 2 c o l u m n a s lo po-
pulsación de una tecla junto con demos hacer con este procesador de
C A P S o S Y M B O L y en otras se ha- texto sin perder la profesionalidad del
brá de poner el programa previamen- texto a 6 4 ya que la pantalla ocupará
te en modo extendido con el uso de es- nada más que una porción del texto
tas dos teclas. que se irá scrolando horizontalmente,
Al igual que con The Last Word dis- según escribimos. La otra es que tam-
ponemos de un amplio muestrario de bién dispone de comandos para bus-
órdenes y comando de ayuda para car y sustituir palabras por otras dis-
confeccionar un texto: tintas.
— Por una parte el cursor se pue-
de mover en las cuatro direcciones po-
sibles con el uso de las flechas del cur-
sor, aunque esta vez lo podremos mo-
Resumiendo
ver también por debajo del final de
texto ya que el Context v.8 codifica Como veis las ventajas de ambos
también los espacios en memoria. El procesadores son grandes y parecidas
cursor igualmente se puede mover de por lo que puede resultar un poco di-
palabra en palabra, hacia delante o fícil al principio decidirse por alguno
hacia atrás. en particular, aunque, prácticamente
— También podemos movernos de cualquiera de los dos puede valer pa-
pantalla en pantalla de texto para ra una pequeña aplicación que preci-
leerlo cómodamente así como llevar el se un usuario de Spectrum.

MICROHOBBY ESPECIAL
O i e r t o especio*
hoslo el 3 1

i , ftReS
V PAGA
SOLO DOS.

6 desV.no d e j e p e d e „.

ENVIE HOY MISMO ESTE CUPON AL APARTADO 232 DE ALCOBENDAS (Madrid)


K • Deseo recibir en mi domióiio tres ejemplares de J u e g o s & E s t r a t e g i a a l p r e c i o e s p e c i a l d e 2 . 2 5 5 p t a s . , lo que me supone adquirir tres y p a g a r s ó l o d o s . Morco
los tres ejemplores que deseo con una cruz.
• Deseo recibir un solo ejemplar de J u e g o s & E s t r a t e g i a el precio de 1.125 ptos. Marco con uno cruz el ejemplar que deseo rector.
Spectrum Amstrad Commodore
N.° 1 • Arnhem • Arnhem
N.® 2 • Rotos del Desierto G Ratos del Desierto
N.° 3 • OTAN Alerto D Teatro de Europa • Teatro de Europo
Wor Zooe War Zone
Especial 1 • Elecciones Generales
N. 0 4 • Su mejor hora (Lo batalla de Inglaterra) • Lo batallo de Inglaterra • Lo batalla de Inglaterra

NOMBRE NACIMIENTO
DIRECCION
LOCALIDAD PROVINCIA
C POSTAL TELEFONO PROFESION
Forma de pago:
• Talón bancorio o nombre de Hobby Press, S. A. • Giro Postal o nombre de Hobby Press, S. A , n.° de gire
• Tarjeta de crédito: Visa n.° Master Chorge n.° Americon Express n.°
Fecha de caducidad de la tarjeta Fecha y firmo
66 I N F O R M E
Víctor PRIETO

EL DELITO INFORMATICO ACOMPAÑA A LOS ORDENADORES


DESDE SU NACIMIENTO. EN UN PRINCIPIO ERA UN COTO
PRIVADO DE LOS PROGRAMADORES EN LA INDUSTRIA,
PERO LA LLEGADA DE LOS ORDENADORES
PERSONALES Y EL MODEM, HAN CREADO UNA
NUEVA GENERACION DE ^
TECNODELINCUENTES. ^ W ^ ^ T -

MICROHOBBY ESPECIAL
TECNO DELINCUENTES 6 7

D
esde que los bits de datos infor-
matizados reemplazan al papel
como medio más importante
para almacenar grandes cantidades
de datos e información, nuestra socie-
dad está presenciando el advenimien-
to de una nueva raza de delincuentes.
Popularmente conocidos como los
ladrones tecno, los protagonistas del
delito informático desafían cualquier
tipo de clasificación.
Su procedencia, localizada en cual-
quier profesión u ocupación, y los mé-
todos utilizados en su nuevo campo de
acción, son tan diversos como nume-
rosos, y en la mayoría de los casos tan
eficaces, que resulta difícil su deten-
ción.
Los requisitos mínimos para ser uno
de esos tecnodelincuentes, se limitan
a un conocimiento rudimentario del
funcionamiento de los ordenadores, y
un fuerte instinto delictivo.
Sorprendentemente, tener acceso a
un ordenador no es vital en todos los
casos, como demostró un cliente de un
determinado banco de los Estados
Unidos, reemplazando un error del
banco en los ingresos, por otros con
su propio número de cuenta, magné-
ticamente codificado sobre ellos.
Después de liquidar su cuenta al día
siguiente, y retirar el balance en me-
tálico, el distinguido cliente se hizo con
una cifra de 75.000 libras (17 millones
250.000 pesetas).

I
ELUDIR

LAS M E D I D A S
DESEGURIDAD
La información sobre ordenadores
es sorprendentemente fácil de cono-
cer, exceptuando la referente a la en-
trada en sistemas de seguridad. El te-
ma es enseñado en colegios y es ob-
jeto de numerosos artículos de pren-
sa. Incluso documentación referente a
métodos de operación para diferentes
máquinas, se guarda raramente en se-
creto.
De hecho, aunque las medidas de
seguridad internas de los ordenadores
sean totalmente inexpugnables, a me-
nudo es muy fácil pasarlas por alto.
Por ejemplo, donde están instaladas
las llamadas líneas de comunicaciones

MICROHOBBY E S P E C I A L 67
68 I N F O R M E

de seguridad, el número de teléfono sacción individualmente, incluso en el cho de eludir impuestos o gastos) es
puede no estar contenido en las guías, caso de que la sospecha de fraude sea considerado como trivial.
y no ser listado por caminos internos. completamente segura. El hecho de que esta actitud esté o
Pero aún aparece en contratos de ins- La política de las compañias, a me- no reflejada en el Código penal, no es-
talación, en facturas, y en ocasiones nudo parece limitarse a ocultar los tá claro todavía. Sin embargo, las sen-
garabateado en las notas de los inge- desfalcos, siempre que se encuentren tencias por delitos cometidos con or-
nieros de instalación. dentro de unos límites admisibles. denador, son frecuentemente mucho
Cuando se está en posesión de ese Por ejemplo, en el caso del uso ile- menos severas que las de los casos de-
tipo de información, la diferencia en- gal de las tarjetas de crédito, que de- pendientes de la brigada de investiga-
tre cometer o no el acto delictivo, es sencadenan un gran número de tran- ción criminal.
puramente un asunto de poder o no sacciones electrónicas de fondos, unas Tomemos, por ejemplo, el caso de
resistir la tentación, y en el caso de los perdidas que se encuentren dentro del Jerry Neal Schneider, o el famoso des-
ordenadores, ésta es desmesurada- 0,05 por 100 de los ingresos netos, se falco de la Equity Funding.
mente grande. consideran como aceptables. En el primero, Schneider, un joven
Incluso en el caso de que los límites empresario (18 años) residente en Los
sean sobrepasados, el costo efectivo Angeles, formó una compañía de dis-
B SIN VIOLENCIA de la acción tomada, es raramente di- tribución de material electrónico con
rigido hacia el criminal. un stock inexistente, introduciéndose
telefónicamente en el ordenador de
Hay una diferencia fundamental en- una compañía local de IBM, para des-
tre un asalto pistola en mano a una su- viar de su almacén las existencias ne-
cursal bancaria y el robo por ordena- EL T E C N O - cesarias para atender su cartera de
dor, ya que éste se realiza sin el me- DELINCUENTE pedidos.
nor tipo de violencia, y tiene la venta- FRENTE A LA Después de varios meses de nego-
ja de que no se delata por sí mismo. SOCIEDAD cio, Jerry fue denunciado por un cóm-
De hecho, los más cualificados in-
plice que se ocupaba de atender los
vestigadores de este tipo de delitos, pedidos nocturnos. Sin embargo, a pe-
han abandonado la pretensión de ser La actitud social hacia el crimen sar del hecho de haberse apropiado
capaces de descubrir el fraude hasta computerizado, también hace aumen- indebidamente del valor aproximado
sus últimas consecuencias. tar su atractivo. Muchos robos hechos de un millón de dólares en material,
La cantidad de volumen de datos al- desde una máquina (especialmente el joven delincuente fue condenado a
macenados por las grandes compa- cuanto éstos tienen como resultado pe- pagar una multa de unas 120.000
ñias, hace imposible revisar cada tran- queñas cantidades de dinero, o el he- ptas. y a dos meses de condena, de los
cuales solamente llegó a cumplir 40
días, antes de volver al mundo de los
negocios como un consultor de segu-
ridad de sistemas informáticos.

U N A ESTAFA
A LO G R A N D E
El escándalo del Equity Funding
(1972), considerado como el fraude
del siglo, fue realizado por los altos
ejecutivos de una empresa americana
de rápido crecimiento durante el trans-
curso de ocho años.
Los ordenadores fueron usados, en-
tre otras cosas, para la expedición de
64.000 pólizas de seguros de vida fal-
sas, las cuales fueron vendidas tam-
bién por medio del ordenador a sus
coaseguradores.
Cuando fue descubierto, el fraude
costó a los accionistas 600 millones de
libras (138.000 millones de pesetas) y
un valor perdido en las pólizas asegu-
radas de un billón de dólares.

MICROHOBBY E S P E C I A L
TECNO DELINCUENTES 6 9

Muchas de las víctimas quedaron


arruinadas, pero los 2 4 responsables
de la estafa solamente recibieron pe-
nas desde los ocho años de prisión,
hasta multas y libertad provisional.

I EL S I L E N C I O D E
LAS E N T I D A D E S
AFECTADAS

Incluso si un delito informático es


descubierto y el causante identificado,
su persecución raramente se lleva a
cabo.
Las víctimas son reacias general-
mente a llevarlo ante los tribunales.
Las entidades bancarias, un blanco
muy popular entre los tecnodelincuen-
tes, consideran mucho más dañina la
publicidad que acompaña o un litigio
de estas características, que el valor
del fraude perpetrado.
En otros casos, son los mismos direc-
tivos de las compañias afectadas, los
que ocultan el fraude, para evitar acu-
saciones de negligencia por parte de
los accionistas. de los o r d e n a d o r e s , las empresas de- una cuenta ficticia al final del archivo
O t r o motivo de disuasión es el cos- dicadas a la selección, tienden a reclu- de clientes.
to de los procedimientos legales, esta- tar gente con una mente penetrante y El fraude solamente pudo ser descu-
blecer la naturaleza exacta del delito un especial sentido de la precisión, ca- bierto por accidente, cuando el presi-
y p r o b a r la existencia del mismo, es- racterísticas que les hacen erigirse en dente de la compañía, con objeto de
pecialmente en el caso de sofisticados los candidatos más adecuados p a r a demostrar las maravillas del sistema,
robos por o r d e n a d o r , requiere fre- intentar eludir las medidas de seguri- sacó el saldo de la primera y la última
cuentemente una desmesurada canti- dad como un desafío a su intelecto. cuenta.
dad de tiempo, dinero y e s f u e r z o . La mayoría de los delitos p o r orde-
También hay que tener en cuenta nador son de carácter oportunista,

I EL ERROR
que los jurados en un caso de estas ca- gente que no busca un beneficio finan-
racterísticas, no son expertos en el ciero pero tiene la o p o r t u n i d a d de in-
troducirse en en el sistema de seguri-
DE LA MAQUINA
campo de los ordenadores, teniendo
considerables dificultades para llegar dad debajo de sus narices.
a interpretar los hechos y pruebas Muchos p r o g r a m a d o r e s p o d r í a n La idea general de que los ordena-
aportados por los consultores informá- q u e b r a n t a r un sistema como un acto dores por naturaleza son propensos a
ticos. de inofensiva malicia, sólo por el or- cometer e r r o r e s , también trabaja en
A causa de la g r a n difusión de los gullo de demostrarse a sí mismos que f a v o r de los delincuentes.
ordenadores, las oportunidades de pueden hacerlo, pero una vez dentro Ahondando en esta técnica del e r r o r
cometer delitos informáticos se han in- la tentación es demasiado grande co- mecánico, tres empleados de N e w Se-
crementado enormemente. Oficinis- mo p a r a no aprovechar la ocasión. curities, se las a r r e g l a r o n para expri-
tas, secretarias, e incluso personal de De nuevo el crimen informático es mir las cuentas de sus clientes, hasta
limpieza de oficinas, tienen acceso a difícil de d e m o s t r a r . El más famoso el punto de conseguir ol menos medio
las terminales. fraude de redondeo de la historia ban- millón de dólares en varios años.
caria es un caso en esta línea. Si un cliente notaba algún e r r o r en
El a u t o r , que trabajaba para un el balance de su cuenta, el e r r o r en el
g r a n banco, r e a l i z ó un p r o g r a m a en sistema de ordenadores ero el respon-

Í
EL P E R S O N A L DE el cual al ser calculado el interés en la sable.
L A S C O N S O L A S cuenta de un cliente, las pequeñas T a m b i é n y no sorprendentemente,
cantidades sobrantes del redondeo no cuando los e r r o r e s ocurren a f a v o r de
Precisamente por las características eran abonadas a las cuentas indivi- Id cuenta de algún cliente, pocos son
que debe reunir el personal a cargo duales, sino que eran transferidas a dados a i n f o r m a r de ello.

MICROHOBBY ESPECIAL 69
70 I N F O R M E

Llevado a casos extremos, nos en- O t r a f o r m a delictiva la constituye,

I
contramos con el de un contable que no el r o b o electrónico de fondos, sino IMPIDIENDO
accidentalmente había cargado en su la apropiación indebida de informa- ELACCESOFISICO
propia cuenta cerca de un millón de ción.
dólares, que se a r r e g l ó para gastar Los archivos de clientes son los fa-
antes de que el banco descubriese su voritos. U n o de los casos récord en es- La variedad de métodos de protec-
e r r o r . Fue acusado con el cargo de ro- te campo, es el perpetrado por parte ción de los o r d e n a d o r e s contra la en-
de operadores de ordenador que tra- trada de intrusos, adquiere multitud de
bo.
bajando p a r a la Enciclopedia Británi- f o r m a s cada una de ellas basada en
diferentes conceptos.

I
ca, vendieron la alarmante cantidad
LA I N F O R M A C I O N A medida que más y más microor-
de dos millones de nombres y direccio-
C O M O OBJETO nes. El precio de tal información llegó denadores aparecen en las oficinas,
PE R O B O a alcanzar más de un millón de libras. así como unidades y terminales inteli-
Incluso las grabaciones de los censos gentes, la posibilidad de encerrar el
del g o b i e r n o no son inviolables. o r d e n a d o r bajo llave, se hace cada
El crimen informático toma millares
vez más difícil.
de formas, y no solamente está limi- El espionaje industrial es también
tado a casos claramente incluidos en muy común entre los ladrones tecno, Incluso cuando el departamento de
el fraude y el desfalco. la facilidad con que los datos pueden ordenadores esté efectivamente aisla-
El objetivo puede ser, por ejemplo, ser duplicados sin dejar rastro, hace do del mundo exterior, el ladrón tec-
conseguir la propiedad de una com- que el r o b o de secretos comerciales, no siempre puede recurrir a modificar
pañía. En una ciudad de los Estados planes presupuestarios e información el data antes de ser introducido.
U n i d o s , el crimen o r g a n i z a d o modifi- de negocios, tenga un mercado ávido En el fraude de Equity Funding te-
có los datos de pedidos de clientes de de información entre las compañías nemos un caso típico. El departamen-
un o r d e n a d o r , para eliminar 2 0 0 ca- competidoras. to de programación era alimentado
jas de coches del inventario de una con información enteramente ficticia
Los p r o g r a m a s de o r d e n a d o r en sí
compañía de ferrocarriles. por parte de los directivos, y los clien-
mismos, también son objeto de la de-
tes de la corporación cometieron el
Los causantes del delito, devolvieron lincuencia informática, propietarios
e r r o r de tomar los resultados del or-
con toda celeridad los coches a sus particulares de software, cuya obra es
denador como un lema de fe.
propietarios originales, consiguiendo el f r u t o del intenso trabajo de varios
desprestigiar a la empresa distribuido- años, caen dentro de las redes del la- O t r o ejemplo es el del consultor de
ra. d r ó n tecno. seguridad de ordenadores, cuya es-
tratagema favorita era entrar en el de-
partamento de oficinas, rellenar uno
de los impresos en blanco que anda-
ban desperdigados por allí, y dejarlo
caer en el suelo.
Invariablemente el impreso que con-
tenía una o r d e n de pago del depar-
tamento económico de la empresa, di-
rigida a la dirección del consultor, era
recogido y procesado.
El consultor podía entonces retirar
su cheque y de esta f o r m a justificar sus
servicios.

I CLAVE SECRETA

A menudo para e n t r a r en un siste-


ma, el usuario necesito teclear una pa-
labra clave, en algunos sistemas ésta
es claramente visible al introducirla
desde el teclado, en este caso el tec-
nodelincuente no tiene más que obser-
var al usuario en el momento de te-
clearla p a r a obtener la información
deseada.
Cuando la p a l a b r a clave no es im-
presa en la pantalla, y no se encuen-

MICROHOBBY ESPECIAL
71 I N F O R M E

tro garabateado en notas de instala- vado el refinado hecho de descubrir codificada en una cinta magnética
ción o manuales de uso, es necesario la clave de acceso a la categoría de contenido en una banda en cualquie-
la utilización de técnicas mucho más un verdadero arte. ra de sus caras.
sofisticadas. Existen listas en las cuales se dan los Existen varios métodos de alterar di-
Una de ellas, demostrada por un es- diez nombres clave más populares, chas tarjetas: el más sofisticado con-
tudiante escocés, es escribir un proce- habiéndose desarrollado complicados siste en usar un pantógrafo electróni-
dimiento que actuando vía telefónica algoritmos capaces de calcular las per- co, para extraer la información alma-
pueda memorizar la palabra clave y mutaciones más probables de carac- cenada. El menos complicado, usado
simular un fallo en el sistema. Los sor- teres alfanuméricos. con tarjetas empleadas en ciertos ser-
prendidos usuarios introducirán por vicios públicos, como teléfonos o bille-
primera vez su clave en el sistema te- tes de transportes, consiste en utilizar
lefónico, descubriendo que hay un fa- un imán para borrar lo banda mag-
llo en el sistema y luego volverán a in-
LLAVES nética.
tentarlo una vez más, esta -vez en lu- ELECTRONICAS
gar correcto.
Los bases de datos de información Generalmente tienen la forma de ^ N C R Y P T I O N ^
basadas en líneas telefónicas han ele- una tarjeta plástica, con información

Su uso se limita a la protección de


información, especialmente la que ha
de ser enviada a través de las redes
de comunicaciones públicas, o como
un método de protección de las líneas
privadas.
Ello implica un proceso de codifica-
ción y decodificación de textos usan-
do algoritmos específicos y una única
clave.
Teniendo en cuenta que los resulta-
dos son solamente conocidos por el
transmisor y el receptor de la informa-
ción, incluso si los algoritmos son co-
nocidos, el código permanece seguro.
La encrytion, constituye una formi-
dable barrera para el ladrón tecno,
debido a que descifrar el código re-
quiere un ordenador de considerable
poder. En cambio, las agencias del
gobierno pueden descifrarlo como si
se tratara de un mensaje en morse.
La Agencia Central de Seguridad,
ha creado un sistema de codificación
de siete dígitos, del cual se dice que
no puede ser decodificado ni usando
el ordenador más potente.
Lo cierto es que si la agencia está ca-
pacitada para codificar siete dígitos,
no puede abordar las claves de ocho
dígitos, con lo cual su campo solamen-
te se reduce a la información pura-
mente comercial.
Ha quedado claro que los métodos
de protección van desde las medidas
más elementales, hasta los sistemas
más sofisticados en los que la tecnolo-
gía empleada hace imposible la entra-
da de cualquier intruso, poniendo ca-
da vez más difícil la tarea del tecno-
delincuente, que tiene que suplir con
ingenio la falta de medios.

MICROHOBBY ESPECIAL
72 P R O G R A M A C I O N
Alejandro JULVEZ
Mareos ORTIZ

Una estructura de datos no es otra cosa que un conjunto de datos T o d o s sabemos la gran
con una organización determinada. Pues bien, para conocer el cantidad de información
que un ordenador moderno
mecanismo de creación de estos tipos de estructura, os ofrecemos es capaz de almacenar y
este amplio artículo en el que os explicamos cómo se representan procesar.
en el ordenador. En muchos casos esa in-
formación representa en

ESTRUCTURA
cierta f o r m a una abstrac-
ción de una parte del mun-
do real, y consiste en una
selección de datos de la rea-
lidad, en concreto ese con-
junto de datos que conside-
r a m o s básico para la solu-
ción del problema y a par-
tir del cual obtenemos los
resultados deseados.
Es evidente la importan-
cia del lenguaje de progra-
mación que se utiliza, de
f o r m a que nos permita el
mayor g r a d o de abstración
posible. E n nuestro caso

MICROHOBBY ESPECIAL
ESTRUCTURA BFDÍIOS 73

contamos con un lenguaje variable numérica una ex- En una cafetería, los pla- Para aquellos de vosotros
que no ofrece muchas posi- p r e s i ó n b o o l e a n a , como tos limpios p a r a ser utiliza- que conozcáis el Código
bilidades en este sentido. por ejemplo, L E T A = 5 = 3, dos por los clientes se colo- M á q u i n a el concepto de pi-
Por supuesto, nos referimos esta expresión es falsa lue- can en una pila en el mos- la debe seros familiar, el
al Basic. go la variable A t o m a r í a el t r a d o r . La f o r m a más con- puntero de la pila es el re-
Muchos de vosotros cono- valor 0 ; si la expresión hu- veniente de utilizar un pla- gistro S P y las instrucciones
ceréis el Pascal, un lengua- biese sido verdadera, la va- to es coger el que está en lo de introducir y extraer un
je que nos ofrece ciertos riable A t o m a r í a el valor 1. alto de la pila. A medida elemento son respectiva-
modos de definición de da- El tipo Char comprende el que se van utilizando los mente P U S H y P O P .
tos (en la mayoría de los ca- conjunto de caracteres im- platos se van sirviendo des- Veamos a continuación el
sos se definen nuevos tipos primibles. de lo alto de la pila y cuan- efecto gráfico que tiene so-
de datos, en función de En este caso depende mu do los platos utilizados se bre una pila la ejecución de
otros definidos previamen- cho del o r d e n a d o r del que han lavado, se vuelven a las dos operaciones.
te, y se dice que están es- se trate, p a r a saber qué colocar en lo alto de la pi-
tructurados). conjunto de caracteres em la. PILA I N I C I A L
Los tipos consituyentes de- plea. El más usado es el có Por tanto, el último plato
Puntero
finidos previamente, a su digo ( I S O ) Internationa que entró será el primero en
vez, pueden estar estructu- Standard O r g a n i z a t i o n salir. de la pila
rados, con lo que podemos el A S C I I (American Stan Esta regla se llama L I F O 20
construir jerarquías de da- d a r d Code f o r I n f o r m a t i o n en inglés «last in, first out»,
tos. De cualquier manera el Interchange). Sobre estos ti- que es lo que caracteriza a
componente último de una pos elementales normaliza- una pila como estructura de Base de la
estructura, por muy comple- dos se construyen otros ti- datos. pila
ja que sea, debe ser un pos más complejos, p o r E n la pila se pueden rea-
componente atómico, es de- ejemplo los a r r a y s , que no Realizomos una operación
lizar dos operaciones:
cir, elemental. es otra cosa que una estruc- de introducción de un nuevo
1) E x t r a e r un elemento elemento por la cima:
tura de datos cuyos compo-
La mayoría de los orde- por la cima, en cuyo caso el
nentes son homogéneos,
nadores contienen lo que se elemento situado a conti- I N T R O D U C I R 50
son todos del mismo tipo
llama tipos elementales nor- nuación del extraído pasa a
elemental y se seleccionan Puntero
malizados. Comprenden los ocupar la cima.
por sus nombres fijos. de la pila
números reales, enteros, 2) Introducir un elemen- 50
valores lógicos y un conjun- U n a r r a y es una estructu- to por la cima, con lo que 10
to de caracteres de escritu- r a de tipo aleatorio, todos este elemento pasa a ocu-
ra, también números frac- sus componentes pueden par la cima.
cionarios. seleccionarse arbitraria A partir de a h o r a vamos
El tipo de valores entero mente y son igualmente ac- a necesitar un elemento
es un subconjunto de los nú- cesibles. Para seleccionar nuevo l l a m a d o p u n t e r o ,
f meros enteros, cuyo tama- un componente aislado, el que nos va a servir para de-
I ño depende mucho del or- nombre del a r r a y se amplía notar la posición de una va- Si realizamos dos extraccio-
I denador en concreto. Las con un índice de selección riable en el o r d e n a d o r . nes consecutivas:
I operaciones que se realizan del componente que indica Ante la imposibilidad de
I entre valores de este tipo a su vez la posición que ocu- definir punteros en Basic,
I son exactas y se correspon- pa un elemento dentro del tendremos que crear todas Puntero
den con las leyes de la arit- array. las estructuras de datos que
de lo pila
mética. Existen más estructuras de vamos a estudiar en este ar-
El tipo real es un subcon- datos, pero en esta ocasión tículo, sobre matrices, de es-
junto de los números reales. vamos a tratar tres estructu- ta f o r m a el índice de un ele-
La aritmética real produ- ras muy importantes: pilas, mento de la matriz indica su
ce cierta imprecisión, dentro colas y listas. posición d e n t r o de dicha
del e r r o r producido por el matriz. La parte rayada es infor-
redondeo, al realizarse el Cuando se almacena una mación que ya no pertene-
cálculo sobre un número fi- PILAS pila en memoria, sus ele- ce a la pila, aunque sigue
nito de dígitos. U n a pila es un conjunto mentos ocupan posiciones permaneciendo en memo-
El tipo lógico tiene valores de datos que únicamente consecutivas y el puntero se- ria, es pues el puntero quien
verdadero o falso o bien pueden introducirse o ex- ñala la cima de la pila. indica el comienzo de infor-
T R U E y F A L S E . En Basic no traerse por un extremo. El puntero se modifica ca- mación perteneciente a la
existe este tipo de datos y Es muy común a la h o r a da vez que se realiza una pila.
por consiguiente no existen de explicar el concepto de operación sobre la pila. El El puntero se incrementa
variables de este tipo, aun- pila la analogía con la vida o t r o extremo de la pila está o decrementa en uno uni-
que podemos asignar a una de cada día. fijo y se llama base. dad dependiendo de la

MICROHOBBY ESPECIAL 73
74 P R O G R A M A C I O N

operación concreta que


realizamos sobre la pila. COLAS con el elemento I3. Al reali-
zar una extracción, la infor-
que la cola está llena cuan-
do en la matriz sólo queda
Es importante tener en mación contenida en la co- un elemento.
cuenta, que la pila va cre- Una cola es una estructu- la se desplaza una posición A continuación aparece
ciendo a medida que se van ra de datos que se caracte- hacia la salida, es decir, un pequeño diagrama de
introduciendo por la cima r i z a porque sus elementos el elemento l i sale de la co- flujo del proceso de inser-
elementos nuevos. Esto en están ordenados y la inserc- la, la información I2 se des- ción y extracción con los
el caso del Código Máqui- ción de ellos se realiza por plaza a la posición ocupa- punteros Pi y P? como pun-
na puede ser un problema la parte posterior y las ex- da por l i y I3 a la ocupada teros primero y segundo de
si la pila se extiende sobre tracciones por la parte an- por I?. la explicación anterior.
un programa concreto, pe- terior. U n a buena forma de tra-
ro no existe limitación en su Tiene estructura FIFO tar la cola sobre una matriz,
crecimiento. Para nosotros (first in, first out), primero en es hacer que tome una es- EXTRACCION COLA T(20C
el crecimiento de la pila sí entrar, primero en salir. Po- tructura circular, es decir,
supone un pequeño dato a demos realizar dos opera- que dé la vuelta.
tener en cuenta, porque al ciones sobre la cola: inser- Esto es debido a que o
soportar la pila sobre una ción de un nuevo elemento medida que se van suce-
matriz, debemos controlar por la parte posterior o ex- diendo las operaciones de
que la pila no se haga ma- tracción de un elemento por extracciones e inserción la
yor que la matriz. De esta la a n t e r i o r . Veamos un cola va dejando espacios li-
forma la pila va creciendo ejemplo gráfico del funcio- bres. Para evitar este pro-
hacia arriba y está llena namiento de una cola: blema y por supuesto el de
cuando el puntero apunte al
tener que desplazar toda la
primer elemento.
información contenida en la
E s t a r á vacía cuando cola cada vez que realiza-
apunte al último o base de mos una operación sobre
la pila. ella, vamos a utilizar dos
Hay que hacer notar que punteros. U n primer punte-
el puntero siempre apunta ro (Pi) que indica la posi-
i
al índice del primer elemen- ción del elemento situado en
to libre de la matriz. el extremo anterior de la co-
Al final, aparecen unos la y el otro (P2) indica el es-
listados que realizan las pacio disponible en la par-
operaciones sobre una pila te posterior de la misma.
y se usa una variable que Por tanto, podemos decir
conectará con el programa
principal para indicarnos si
IHSERCCIOH COLA T ( 2 0 0 )
¡a operación se realizó con
éxito. A continuación analizamos
los pasos que hemos seguido
Correcto = 0 operación en codo operación:
incorrecta.
Correcto = 1 operación
correcta.
Debemos pasar a estas En la parte superior se re-
subrutinas una serie de pa- presenta la cola vacía en el
PASO EXPLICACION
rámetros desde el progra- instante inicial, antes de rea-
ma principal, como puede lizar ninguna operación de (1) ¿Cola llena? Son los casos ex-
ser en el caso de introducir inserción o extracción. Si in- puestos en los figuras A y B.
un elemento, el elemento en troducimos un primer ele- (2) Inserción del elemento contenido
cuestión o en el caso de la mento, éste debe desplazar- en lo variable ELE. T(P5| es la po-
se hasta la última posición sición de la cola indicada por el
extracción recibiremos el puntero Pj.
elemento extraído. La pila de la memoria ¡unto a la sa-
lida. Al realizar seguida- (3) ¿Está el puntero P¡ al final de lo
se soporta sobre una matriz cola?
T con D I M T ( 2 0 0 ) . Crear mente otra operación de in-
(4) Si está al final hacemos Pi= 1,
una pila vacía es simple- troducción el elemento I2 da la vuelta.
mente asignar al puntero de presente en la entrada se
(5) No está. Queda una posición me-
la pila el valor máximo, 2 0 0 desplaza hasta la posición nos.
en este caso. vacía más próxima a la sa- (6) Operación correcta. El elemento
lida, que es la penúltima. ha sido insertado correctamente.
Las subrutinas que tratan
la pila son ( 6 0 0 0 - 6 2 7 0 ) . De igual forma ocurre (7) Operación incorrecta. Cola llena.

MICROHOBBY ESPECIAL
ESTRUCTURAMOS 75

— la inserción de un nue- — cada vez que extrae- cola sobre una matriz de
_ ! " vo elemento se realiza por mos un elemento del extre- 2 0 0 elementos como la an-
detrás, en la posición seña- mo inicial todos los demás terior.
lada por un indicador que se desplazan una posición A continuación os ofrece-
nos dirá el espacio disponi- dentro de la cola, como se mos unos diagramas de flu-
1 ble tras el extremo posterior vio antes; jo que esclarecen lo ante-
Situación en la que P2=P — vamos a realizar la riormente explicado:
de la cola;

COLA T(200)

G D LISTAS
La forma más simple de
Situación P? = n and P| = 1. relacionar una serie de ele-
En nuestro caso n = 20 0 tama
ño límite. mentos es alinearlos for-
i" mando una única lista, en
este caso se necesita única-
PASO EXPLICACION mente un enlace por ele-
(1) ¿Cola vacia? P3 = Pi o ¿cola no mento para referenciar a su
vacía? Pj < > P, sucesor.
(2) l a cola no está vacía. Extracción
del elemento de la cola indicado
por el puntero Pi.
(3) ¿Está el puntero Pi al final de la
cala (2ttj?
(4) No está al final, incrementar et
puntero.
(5) Si está al final, dar la vuelta po-
ner el puntero a I.
(6) Operación correcta.
(7) Operación incorrecta, cola

• Cola vacía P2 = P1
Cola no vacía P2 < > P l .

Las subrutinas que reali-


zan el tratamiento de la co-
la son ( 7 0 0 0 - 7 3 0 0 ) .
Las colas son estructuras
de datos que se utilizan nor-
malmente en aplicaciones
en tiempo real, en comuni-
caciones de datos y en pro-
gramas de sistema.
Existe otra forma de re- PASO
presentar la pila sobre la (1) Cola llena? 11/ Cola i
matriz, es la forma antes INDzQ. Indica que no hay espacio libre. (2¡ Cola no vacia. Extracción del primer elemento.
explicada en las figuras (21 Cola no lleno. Cálculo de lo posición donde vamos (3) (4¡ (51 (t) Dezplozomiento de I > (2»Í-IND)-I
aclarativas sobre el funcio- a insertar. indica que hemos desplazado todos los elementos
namiento de la cola: (3) Inserción del elemento contenido en la variable hasta el último de los existentes.
— almacenar la cola en ELE. (7) Un espacio más.
una matriz como hasta aho- (4) Hay una posición menos libre, tras la inserción.
(S) Operación correcta.
ra; (¡I Operación correcta. (9) Cola vacia. Operación incorrecta.
— la salida de la cola se (6¡ Operación incorrecta. Cola llena.
fija al elemento superior de Las subrutinas que realizan estas operaciones son la
la matriz; (9iet-922l).

M I C R O H O B B Y E S P E C I A L 75
76 P R O G R A M A C I O N

Luego, la lista es una es- to antecesor para apuntar al Datos: T(200) igualmente necesita el mismo
tructura de datos que con- sucesor. Puntero sucesor: parámetro, para conocer el
tiene un conjunto de ellos al- El caso de la extracción es elemento tras el que ha de
macenados con cierto or- similar, el puntero del ele- Puntero antecesor:
extraerse. En el caso de que
den. Los elementos pueden mento anterior al extraído el puntero P U N sea igual a
insertarse o extraerse en debe de apuntar ahora al 0 no será posible la extrac-
cualquier punto de la lista. elemento sucesor del elemen- ción puesto que no habrá
U n elemento en la lista cons- to extraído, y debe ser aho- ningún elemento sucesor a
ta de dos partes, el dato y ra el puntero del elemento éste.
su puntero que hará refe- extraído, el que pase a ser el
rencia al sucesor. En el ca- puntero de su antecesor. Para el caso de la inser-
Observando que un ele-
so de que un dato no tenga ción, si el puntero de espacio
Para representar una lista mento de lista en este caso
un elemento de lista suce- libre es igual a 0 , significa
lo hacemos igual que en oca- estará compuesto por T(l),
sor, su puntero será nulo. que no hay espacio en la lis-
siones anteriores, sobre una P(I),Q(I), inicializaremos la lis-
De esta forma gráfica la lis- ta para la inserción.
matriz. ta con una profundidad de
ta tiene el siguiente aspecto: En este caso habrá una 2 0 0 elementos. La subrutina de localización
matriz de datos, y dos matri- de un elemento en la lista só-
Las subrutinas que tratan
ces de punteros. Vamos a lo necesita como parámetro
las operaciones sobre la lista
realizar la lista con una es- de entrada, el dato a buscar
son las ( 9 3 0 0 - 9 9 8 0 ) .
tructura como la que apare- en la lista, devolviendo el
ce a continuación: La subrutina de inserción puntero del elemento si es
elemento de vista necesita un parámetro punte-

Sobre una lista pueden


Z punteros por elemento:
uno referencia al sucesor y el
ro del elemento tras el que ha
de insertarse, P U N .
3 ue lo encuentra. En el lista-
o sólo devuelve el puntero
de la matriz P, punteros a ele-
realizarse dos operaciones, otro al anterior. mentos sucesores.
La subrutina de extracción
insertar un elemento tras otro
dado y extraer un elemento
situado tras otro dado.
Veamos el efecto gráfico de
ambas operaciones:

En este tipo de estructura,


se necesitan dos punteros Pi CREAR PILA VACIA
y P2, que nos indicarán el espa-
• Inserción de u n ele- cio libre y el comienzo de la listo i s a »|ruf»^ c , 0 „
| f j Éffjjl;
mento en lo motriz, respectivamente.
«Sí
lili tP I11S E!í?!¡

lili
I r ^ - i T 1
l i l i thüss'

• Extracción del ele- La representación en la motriz


mento insertado es lo siguiente:
¡ | f ¡ L „ 7 1 „
mi
ti?

?lls 00 To " " m tí? Ü I í í S i l '


Y ahora, veamos qué ocu- tg o í¿E
1
rre en cada coso. En la inser- m ?SC?¿« OO TO ....
ción lo que ha pasado es que
el puntero del elemento tras
el que ha de insertarse el nue-
vo, tiene necesariamente que ¡ ¡ S I S E : . : " 7 ' i i
modificar su contenido para
apuntar a este nuevo elemen- i ?
lis: ^ ' S I P Ó t í H 00 T °
3 S I
to y, por consiguiente, el nue-
vo elemento debe tomar el
valor del puntero del elemen-
hSi¿"! "

MICROHOBBY ESPECIAL
QUICK SHOT l+INTERFACE
2.695 PTAS.

QUICK SHOT ll + INTERFACE


2.995 PTAS.

QUICK SHOT V+INTERFACE


2.995 PTAS.

NECESITAMOS DISTRIBUIDORES ¡¡GRANDES DESCUENTOS!!

D ¡P^OiliUA
OISTR. de PRODUCIOS
INFORMATICOS M.,sa.
C/GALATEA, 25. 28042 MADRID
TF. 742 20 19 - 274 53 80 |SIN GASTOS
DE ENVIO!
78 P E R I F E R I C O S

L
do conjunto p o d r á ofrecer la garan- una buena parte de su comodidad de
os elementos principales del tía de t r a n s f e r i r eficaz y rápidamente uso, por ello, su diseño se realiza en
ioystick son: la base o carcasa, al o r d e n a d o r vuestos movimientos. base a conceptos anatómicos, si bien
la e m p u ñ a d u r a , el sistema de La e m p u ñ a d u r a (stick), es el primer sólo son unos pocos los modelos del
articulación y los elementos eléctricos. eslabón de la comunicación, las carac- mercado que logran una buena adapta-
Cada uno de ellos juega un importan- terísticas particulares de este elemen- bilidad a la mano del jugador y así per-
te papel y solamente un buen resulta- to son las que confieren al periférico mitir un uso p r o l o n g a d o consiguien-

De ordinario la elección de periféricos para


ordenadores suele realizarse tras la valoración
personal de las características técnicas del
producto; sin embargo, en los joysticks la mayoría
de éstos son subjetivos y sólo la experiencia de
uso nos puede conducir a una acertada
valoración. Con este artículo intentamos ayudaros
informándoos de los que hay en el mercado.
79

do con ello lo mínima fatiga muscular. para aquellos que día a día se enfren- tas..., todas ellas son de 3 0 mm de diá-
La operatividad de la e m p u ñ a d u r a tan a d u r a s batallas. metro. Sin e m b a r g o , el g r a d o de su-
es poder efectuar los desplazamientos jeción no sólo está en función del nú-
correspondientes a las cuatro posicio- mero de ventosas sino que también tie-
nes (N, S, E y O ) que posteriormente MECANISMOS ne su importancia la base de susten-
analizará el ordenador y sus combina-
ciones de movimientos diagonales
DE DISPARO tación que éstas proporcionan y la lon-
gitud del stick, puesto que a mayor
( N O , N E , S O y SE). Para la ejecución de disparos (o sal- longitud de éste mayor empuje habrá
U n a rótula esférica sirve de elemen- tos) hay g r a n variedad de versiones, de s o p o r t a r la base.
to de unión entre el stick y la carcasa, paro ello se dota al ¡oystick de varias
unión que debe permitir un suave des- posibilidades, tantas como hábitos
plazamiento del stick, esta suavidad de
desplazamiento y la ausencia de hol-
puedan tener los jugadores. CONEXION
G e n e r a l m e n t e éstos se producen al
guras en el mecanismo determinará la pulsar algún botón de diferentes for- La descripción del ¡oystick queda
precisión del ¡oystick. El o t r o extremo mas y tamaños que se encuentran dis- completada con una pequeña alusión
de la empuñadura queda situado en- tribuidos en la empuñadura y/o la ba- al cable de conexión en el que cabe
tre cuatro microruptores que son acti- se. destacar la importancia de una longi-
vados o desactivados al alcanzar el Lo más habitual es que en la empu- tud que permita su manipulación a
stick la situación correspondiente. La ñ a d u r a haya al menos un pulsador al una distancia a p r o p i a d a que casi to-
construcción de estos contactos varia alcance del dedo pulgar y a veces se dos poseen.
desde simples laminas flexibles hasta complemente con o t r o a modo de ga- Por o t r o lado, la calidad del cable
microruptores mecánicos (reconocibles tillo, accionable con el Índice. T a m - de conexión aunque no es influyente
por su «clic» característico) e incluso bién, la carcasa puede tener uno o va- en la manipulación del periférico sí
simples circuitos impresos superpues- rios pulsadores de efecto semejante a puede ser indicativo de la calidad ge-
tos que generalmente están integrados los del stick, todos estos pulsadores es- neral.
en una pieza de plástico que a veces tán concentrados eléctricamente en
llega a efectuar las funciones de la ró- paralelo pudiendo efectuarse el dispa-
tula. ro desde cualquiera de ellos. A l g u n o s DESARROLLO
A fin de que la empuñadura r e t o r - modelos están complementados con
un i n t e r r u p t o r de disparo permanen- En los últimos años la evolución de
ne a su posición central (neutra), un
te que sirve de g r a n ayuda en los jue- este periférico ha alcanzado cotas
sistema de resortes o masas elásticas
gos de trepidante acción (salvo en muy altas pero sigue siendo el diseño
(gomas) unidas a la parte inferior de
aquellos en los que la energía es en clásico el de mayor difusión, desarro-
la rótula realizan tal operación.
función inversa a los disparos). llándose multitud de nuevos modelos
La robustez de todo este conjunto más ergonómicos, cómodos y durade-
mecánico es un factor determinante En este capítulo es destacable la im-
ros, i n c o r p o r a n d o a ellos ingeniosos
portancia de la recuperación de todos
complementos al efecto como bases
y cada uno de los ruptores a fin de que
más amplias (Quick Shot III y V, Co-
ésta no ralentice la sucesión de dispa-
bra), mini teclados p a r a introducción
ros en r á f a g a .
de niveles de dificultad y número de
jugadores (QSV), utilización de meca-

LA SUJECION nismos de alta calidad (baza que ga-


na el Cobra), etc.
La carcasa o base del ¡oystick cum- En cuanto a los modelos más avan-
ple una doble misión, una, la de alber- zados éstos presentan innovaciones
gar en su interior todos los mecanis- realmente ingeniosas y de conceptos
mos descritos anteriormente, la otra, absolutamente distintos de lo habitual,
la de ofrecer una g r a n sujeción del bien que su aplicación debe ser enjui-
conjunto a la superficie de la mesa en ciada según cada particular.
el caso de estar prevista para ello o Modelos como el Cheetach de man-
la de acomodarse a la mano en aque- do a distancia evitan el a veces engo-
llos tipos de joystick diseñados para es- r r o s o cable de conexión, si bien pue-
te modo de utilización. de «jugároslo» durante una partida si
E n el primer caso la sujección del en un momento de exaltación lo des-
¡oystick viene realizándose a base de viamos de la dirección del interface re-
unas ventosas que, dispuestas en su ceptor. Sistema muy similar utiliza el
parte inferior, los inmovilizan suficien- Quick Shot V I I , pero sin dejar a un la-
temente. La mayoría de los modelos do el cable conector.
analizados poseen cuatro ventosas El Joycard, es un reducido teclado
con la única excepeción del Quick Shot que incorpora un ¡oystick y un par de
V que utiliza cinco, por otra parte pa- pulsadores en simulación a las «maqui-
recen haberse puesto de acuerdo to- nitas» de los bares.
dos los fabricantes en el tamaño de és- Q u i z á s el modelo de más impacto

MICROHOBBY ESPECIAL 79
80 P E R I F E R I C O S
visual sea el último de la extensa saga
de Quick Shot, la versión nueve, una
enorme bola de 10 cm de diámetro
movible en cualquier dirección, dota-
da de una gran precisión y que incor-
pora dos teclas de gran dimensión pa-
ra disparo y complementado con un
par de interruptores que permiten las
opciones de fuego automático e inver-
sión de sentido de desplazamiento,
haciendo posible distintas situaciones
del aparato. Commando

Joystick
EL PRECIO DEL PODER
Realizar un análisis de precios co- Commodore
rrespondientes a cada modelo de
¡oystyck de una forma fehaciente no
es tarea fácil dado que generalmente ^ ^ ^ ^ ^ / I
se encuentran formando parte de H
atractivas ofertas, cuando no se inclu-
yen en la compra del ordenador, pe-
ro orientativamente oscilan alrededor
de las 2.000/3.000 ptas. los modelos
más convencionales, alcanzando ^^^
10.000 y 12.000 los modelos más pre- ^ ^ ^ ^
cisos y/o sotisficados. Joycard

Investick

Capitán Grant

Cheetah

Quick
Cobra Shot IX

MICROHOBBY E S P E C I A L
JOVSTICK s i

Quick S h o t III

Quick S h o t I

Kempstoi

Quick Shot
VII

Kempstoi
3000

Quick S h o t II

Quick S h o t V

Konix

Superstick

Proto

Toshiba

MICROHOBBY ESPECIAL
82 P E R I F E R I C O S

CARACTERISTICAS TECNICAS
MODELO EMPUÑADURA BASE D I M E N S I O N E S (cm)
Tipo Disparo Altura Sujeción Disparo Totales Cable
C A P I T A N G R A N T Anotom. 1 pulsador 12 Manual 1 pulsa. 13x10x16 125
CHEETAH Anoloni. 1 pulsador Manual 16x6.5x2.5 Mando distancia
COBRA Anotom. 2 pulsad. 16 4 ventosos 14x12.5x24 135
1 gatillo
COMMANDO Anotom. i pulsador 3 4.5x3x17 170
COMMODORE Liso 1 pulsador 7,5 Manual 1 tecla 10x7x11 127
G R A N CAP. II Anotom. 1 pulsador 12 Manual 2 pulsad. 12x12x16.5 125
1 gatillo + AUTO
GUN SHOT Anotom. 1 pulsador 13,5 4 ventosas 1 pulsad. 13x11x16 125
INVESTICK Anotom. 1 pulsador 13,5 4 ventosas 2 pulsad. 13x10x18 104
1 gatillo
JOYCARD de bolo 4,5 sobremesa 2 pulsad. 18x10x6.5 27
JOYSTICK Anotom. 1 pulsador 13 4 ventosas 2 pulsad. 13.5x10x17 124
1 gatillo
KEMPSTON de bolo 7 Manual 2 pulsod. 11x5x9x11 120
KEMPSTON 3000Anolom. 1 pulsador 12 Manual 1 ledo 1 3 x 7 . 5 x 16 160
1 gatillo
KONIX de bola 1 gatillo 6 13x8x10 135
PROTO Anotom. 1 pulsador 12 4 ventosos 1 pulsod. 1 2 x l 2 x 15.5 126
1 gatillo
QUICK SHOT 1 Anotom. 1 pulsador 12 4 ventosas 1 pulsad. 11x9x16 126
Q U I C K S H O T II Anotom. 1 pulsador 13.5 4 ventosas 1 pulsod. 13x9.5x17.5 126
1 gatillo + AUTO
Q U I C K S H O T III Anotom. 1 pulsador 12 5 ventosos 2 pulsad. 19x10x17 126
1 gatillo TECLADO
QUICK SHOT V Anotom. 1 pulsador 12 4 ventosas 1 tecla 19x9.5x17 126
1 gatillo
Q U I C K S H O T V I I Disco 2 gatillos 12x9x2.5 126
Q U I C K S H O T I X Esfera 10 4 ventosas 2 teclas 22x14.5x12 121
10 cm + AUTO
SUPERSTICK Cilindro 1 pulsador 10 Manual 9x9x13 157
TOSHIBA Anotom. 1 pulsador 11 Manual 1 tecla 13x10x18 104

VALORACION
MODELO GRADO DE SUAVIDAD SUAVIDAD ADAPTACION ROBUSTEZ COMODIDAD
SUJECION DEMOVIM. DE DISP. A LA MANO MECANIS. USOPROLONG.
CAPITAN GRANT
CHEETAH
COBRA
COMMANDO
COMMODORE
G R A N C A P . II
GUN SHOT
INVESTICK
JOYCARD
JOYSTICK
KEMPSTON
KEMPSTON 3000
KONIX
PROTO
QUICK SHOT I
QUICK SHOT II
QUICK SHOT III
QUICK SHOT V
QUICK SHOT VII
QUICK SHOT IX
SUPERSTICK
TOSHIBA

MICROHOBBY ESPECIAL
Sound on Sound
La cinta virgen para ordenador -—• !•_' y
SINCLAIR STORE
El CENTRO
DELAS NOVEDADES

INVES PC 640 X INVES 100 HF

Venga a Sinclair Store. Los primeros en tener lo último.


Le presentamos las más recientes novedades. Desde los ordenadores
P C totalmente compatibles por menos del 90.000 ptas., lo último en Spectrum.
Convertidor TV para tu Amstrad, hasta las cadenas de sonido con un precio inferior a 30.000
ptas., que van a revolucionar el mercado. ¡VA A SER UN ESCANDALO!
OFERTAS Pesetas
Convertidor TV Amstrad lanzamiento
Ampliación memora i Amstrad 4Ó4, 64 K 8.500
Ampliación memono Amstrad 464, 256 K 21.500
Disco de silicio 256 K 20.600
Lápiz óptico Amstrad 5.600
Sintetizodor de voz 9.450
Fundos teclado, desde 800
Opus Discovery 44.000
Softwore Amstrad, Commodore, desde m 500
Joystick Quick Shot II + Interfoce Kempston ... 3.000

Jim
ABRIMOS SABADOS T A R D ^

SOMOS PROFESIONALES
BRAVO MURILL0. 2 DIEGO DE LEON, 25 AV. FELIPE II, 12
(Glorieta de Duevedol (Esq. Núñez de Balboa] (Metro Goya)
Tel. 446 62 31 28015 MADRID Tel. 261 88 01 28006 MA0RID Tel. 431 32 33 28009 MADRID
Aparcamiento GRATUITO Magallanes. 1 Aparcamiento GRATUITO Núñez de Balboa. 114 Aparcamiento GRATUITO Av. Felipe II

También podría gustarte