Revista MicroHobby Especial 7

Page 1

GUÍA C O N H H I N I TODOS LOS PROGRAMAS DEPOR' PARA TU ORDENADC EDITOR DE PANTALLAS

UN PROGRAMA-MONITOR QUE TE PERMITE CREAR MAPEADOS EN TRES DIMENSIONES

DISEÑADORES GRÁFICOS UNA PROFESIÓN EN ALZA

HOBEY PRESS


La acción hecha realidad

Kfflg

i

m

m ...

El héroe ha vuelto. Su misión, entrar en el templo de los malvados Thuggee y rescatar a los niños que mantienen secuestrados. Para ello tendrás que ayudarle a enfrentarse a todos los peligros en los que se encontró en la famosa película. Un juego que no puedes perderte. DISTRIBUIDOR EXCLUSIVO PARA ESPAÑA: ERBE SOFTWARE. C/. NUÑEZ M O R G A D O . 11

28036 MADRID. TELEF. (91) 314 18 04

D E L E G A C I O N BARCELONA. C/. VILADOMAT, 114

TELEF. (93) 253 55 60.


Director Editorial )os¿ I. Gómez-Centurión Gabriel Nieto Director de Mlcrohobby Domingo Gómez Maquetadón Berta Fernández Redacción Pedro Pérez. Cristina Femirxlci Colaboradores José J. García Quejad» Pablo Ariza

ESPECIAL MfCROHOBBY-ANO IIWI.' 7 DICIEMBRE 1987

Secretaria Redacción Carmen Santamaría Jefe de Publicidad Mar Lumbreras Fotografía Carlos Candd Miguel Lamana Dibufos Luis MuAoz Manuel Barco Javier Igual

Un pror a m a que os permitirá diseñar ícilmente el m a p e a d o de vuestros f u e g o s , sin n e c e s i d a d d e tener ningún conocimiento previo de Código Máquina.

R

Edita HOBBY PRESS. S.A María Andrino Consejero Delegado Jos* I. Gómez-Centurión Subdirector General Andrís Ayfagaj

E L

2 E P G S T E

V

E L S?EC

" . . .

U n a c o m p l e t a g u í a con todos los p r o g r a m a s deportivos que han desfilado p o r l a p a n t a l l a a e l Spec-

Director Gerente Fernando Gómez-Centurión Jefe de Administración Jos* Ángel Jiménez Jefe de Producción Carlos Peropadre Jefe de Marketing Javier Bermejo Suscripciones Tel 734 65 00

Diseño g r á f i c o . H a b l a m o s con los me|ores diseñadores gráficos del software nacional.

r

v

Redacción. Administración y Publicidad Ctra de Irún km 12.400 28049 Madrid Tel. 734 70 12. Telefax 734 82 98 Dto. Circulación Paulino Blanco Distribución Coedls. S A. Valencia. 24S

Las veinte m e j o r e s rutinas p a r a s a c a r el m á x i m o partido a vuestro ordenador.

Imprime LERNER Fotocomposición Novocomp. S. A. Nicoli» Morales. 38-40 Fotomecánica Ibérico Depósito legal: M-36.S98-I984 Representante para Argentina, Chile. Uruguay y Paraguay. Cía Americana de ediciones. S.R.L. Sud América 1.532. Tel.: 21 24 64 1290 BUENOS AIRES (Argentina). MICROHOBBY no se hace necesariamente solidaria de las opiniones vertidas por sus colaboradores en los articulo» firmados. Reservados todos los Sofccitado control Op

Te e x p l i c a m o s p a s o a p a s o c á m o l l e g a r a l final de este s e n s a c i o n a l a r c a d e . C o n carg a d o r de v i d a s infinitas para quienes no quieran complicarse la existencia.

H a z t e tus propios fuegos con este p o t e n t e p r o g r a m a q u e s á l o te obligará a responder a unas c u a n t a s p r e g u n t a s . fMás fácil imposible!

MICROHOBBY

ESPECIAL


4

t

^

f

^

4

^

En el último especial os hablamos de uno de los métodos

a m o r r o DE PANTAlf-A mas comunes para realizar el mapeado de las pantallas de un juego; pues bien, con este editor os resultará muy fácil construir pantallas a partir de un conjunto de gráficos e incluirlas en vuestros propios juegos, y todo ello sin tener que trabajar en ensamblador en ningún momento.

Q

uizó los poco más de 2.800 bytes del código máquina y las 420 líneas del programa Basic no resulten demasiado alentadores, pero si te decides a leer el siguiente artículo es posible que el trabajo de teclearlos en tu ordenador merezca la pena. Eso es, al menos, lo que nosotros esperamos. PUESTA EN MARCHA

Una vez tecleado el basic del listado 1 y g r a b a d o a continuación el código del listado 2, puedes comenzar a trabajar con el editor. La primera decisión que

deberás tomar será si quieres cargar los datos grabados en u n a sesión d e trabajo anterior o almacenar los gráficos directamente de una pantalla. Si eliges la primera opción, se te pedirá el nombre del fichero que contiene esos datos (pulsa sólo ENTER para cargar el primero de la cinta) y cuando finalice la carga aparecerás directamente en el menú principal. Si, por el contrario, quieres introducir en memoria los gráficos que c o m p o n d r á n los decorados de las habitaciones tendrás que teclear el nombre del fichero de pantalla en él que los habrás almacenado previamente. Veámos cómo ha de hacerse esto. LOS GRÁFICOS El sistema elegido para la presentación de gráficos es el denominado por máscara, al que deben su éxito programas tales como Knight Lore o Alien 8, y que, sin duda, es sobradamente conocido por todos vosotros. En lo referente a los gráficos es el procedimiento que más memoria consume por necesitar, además del gráfico propiamente dicho, la máscara que le indica al ordenador (con los bits de la máscara activos) qué zonas del gráfico dejarán ver el fondo. Normalmente el gráfico y la máscara suelen estar separados en memoria y almacenados en forma de scanes


EDITOR DE PANTALLAS

J. J. García

c D

Quesada (líneas de gráfico). Sin emb a r g o , en nuestro caso la disposición es diferente; por motivos prácticos (la rutina de impresión es más sencilla y, por tanto, más corta) y es la siguiente: a cada sean del gráfico le sigue el sean correspondiente de la máscara. Con un ejemplo lo verás rápidamente. Imaginemos que tenemos un gráfico (peueño) compuesto por los

3

atos : # 0 0 , #7C, #70, #70, #48, #44, #02, #00 y su máscara por: #01, #01, #01, #03, #01, #00, #10, #F8. Nuestro p r o g r a m a los necesita almacenados así: #00-#01, #7C-#01, #70-#01, #70-#03, #48-#01, #44-#00, #02-#l 0 y #00-#F8 (los guiones separan scanes gráfico-máscara). Si ya tienes creados tus gráficos con la máscara separada, el programa del listado 3 los convertirá a un formato manejable por la rutina de impresión del editor. El único problema es que en ese caso serás tu quien deberás construir la tabla de gráficos (ver detalles técnicos para ampliación), a menos que utilices el p r o g r a m a del listado 4. En él, cada línea de datos deberá contener por este orden: la dirección de inicio del gráfico, la de la máscara, las dimensiones X e V y la posición de pantalla (en coordenadas PRINT) donde quieres ponerlo. Cuando termine de ejecutarse tendrás una pantalla f o r m a d a por un conjunto de gráficos con su máscara inmediatamente a la derecha. Grábala en cinta para cargarla posteriormente desde el programa. Si aún no los tienes almacenados (o si dispones de los bancos de UDGs originales) puedes utilizar cualquiera de los diseñadores

gráficos que se comercializan para formar una pantalla q u e c u m p l a estas condiciones. ALMACENAMIENTO DE LOS GRÁFICOS Una vez tengas g r a b a d a la pantalla (o pantallas) con los gráficos puedes entrar en la opción correspondiente del editor. Tras indicar al ordenador el número de gráficos que quieres crear (255 como máximo y este valor no se puede variar a menos que quieras empezar de nuevo), tienes que dar al p r o g r a m a el nombre del fichero de pantalla que quieres cargar (ENTER carga el primero). A continuación entrarás en un pequeño menú con tres opciones: C a r g a r p a n t a l l a : carga otra pantalla más p a r a g u a r d a r en memoria sus gráficos. Editar g r á f i c o s : un instante después de pulsar la " E " te encontrarás con la última pantalla cargada y una ventana (formada por líneas DRAW con OVER 1) en la esquina superior izquierda. Puedes moverla con O , P, Q y A, y ampliarla/reducirla con 5, 6, 7 y 8. Cuando pulses ENTER todo lo contenido dentro de la ventana, incluido lo que hay bajo las líneas que constituyen el marco, se almacenará en memoria. Asegúrate que el marco abarca exactamente el gráfico, máscara incluida, que quieres pasar a memoria porque no existe posibilidad directa de rectificación después de dar al ENTER. Pulsa "F" p a r a volver al menú. Ir a l m e n ú p r i n c i p a l : da por acabada esta fase y te da la posibilidad de utilizar un joystick con interface Kempston. Por último te

pregunta el formato de pantalla a usar, el número de pantallas que vas a crear (máximo 255 y tampoco se podrá cambiar más adelante) y salta al menú principal. Dispones, además, de alguna información adicional: el número de gráficos almacenados y la cantidad de memoria disponible.

MENU

PRINCIPAL

En el que existen las siguientes opciones: " D " Diseñar pantalla: para crear una nueva pantalla, que es añadida al final de las ya existentes. " S " Salvar datos: guarda en cinta los datos de los grá-

ficos que hay en memoria, los de las pantallas y todas las tablas y variables necesarias para el correcto funcionamiento del programa. "C" Cargar datos: recupera los datos grabados con la opción salvar datos.


6

^ y j & e c - i t á

"G" Generar código: genera el código adecuado para poder imprimir las pantallas que has creado sin tener que utilizar el editor. El p r o g r a m a te informa de la zona de memoria que ocupará y te permite salvarlo para un uso posterior. Si al seleccionar esta opción estabas trabajando con formato ventana deberás incluir en tus cálculos la zona destinada al buffer de pantalla (en m o d o pantalla

completa se trabaja directamente sobre la pantalla normal). Lee los detalles técnicos p a r a utilizar el c ó d i g o generado. " V " Ver pantallas: te permite ver las pantallas (si las hubiese) creadas hasta el momento. Los opciones de que dispones aquí son: " A " Alterar pantalla: p a r a realizar cambios en la pantalla que se muestra en ese instante. " C " Copiar pantalla: co-

pia la pantalla actual al final de todas las existentes. La copia pasa a ser la pantalla seleccionada. " B " Borrar pantalla: b o r r a la pantalla en curso. Se pide confirmación antes de llevarlo a c a b o . " 5 , 8 " Ver otras pantallaá.'ENTER": vuelve al menú principal seleccionando la pantalla actual. En t o d o momento se indica la pantalla activa. " F " Formato de panta-

lla: con esta opción puedes cambiar el formato de la pantalla. Existen dos modos: pantalla completa o ventana. El modo ventana sólo te muestro la zona de la pantalla global que abarca esa ventana. Necesitas d a r las coordenadas de su esquina superior izquierda y las dimensiones. Este modo sólo es operativo cuando estás en la opción «Ver pantallas» del menú principal.


EDITOR DE PANTALLAS

También se muestra el número de pantallas creadas, la seleccionada en ese momento y la memoria disponible.

EDITANDO UNA PANTALLA Desde el momento que pulsas " E " o " A " , dejas el basic para entrar en el código máquina. La pantalla se limpia, los atributos pasan a ser papel azul, tinta

GO TcTiela'

5

1094 GO

223''

SUB

amarilla y borde rojo (éstas son las condiciones por defecto, más adelante descubrirás cómo cambiarlas) y aparece una flecha, el cursor, en mitad de la pantalla. Siempre que la flecha esté presente en pantalla te encuentras en M O D O CURSOR. MODO

CURSOR

Dispones de las siguientes opciones:

" A " Cambiar atributos: un cuadrado parpadeante del tamaño de un carácter aparecerá en pantalla. Puedes moverlo utilizando los cursores (siempre que haya que mover algo deberás utilizar las teclas 5, 6, 7 y 8 y/o el ¡oystick). En principio el atributo con que aparece es el definido como general, pero puedes cambiarlo pulsando dos teclas simultáneamente: una de ellas tienen que ser: " P " a p e r ,

" B " r i g h t o " F " l a s h y la otra una tecla numérica según el nuevo valor que quieras dar al papel, a la tinta, al brillo o al parpadeo. Con " C " copiarás el atributo así definido en la posición en que se encuentra el cursor, haciendo que este se mueva a la posición siguiente. Pulsa ENTER para salir aceptando los cambios hechos y BREAK para salir recuperados los atributos que había anteriormente. Este uso del

C?

01 <0 M R S

RLMRCENRDO

<8 E X I S T E ?990LLET DISP«U,PEEK

23&71

OLTO LGT

GRRFI

N

1600* TMEN

GO

C I E N T E ^ G $= SÍ 2030RLETcg|="hJgoPUEDESRGURRDRR

IF 7 T H E N I 1 2 7 0 IF K * < > C H R « 13 1 2 6 0 IF P E E K MRX8L0-I G O S U B 2 0 3 0 : G O T O L»*W 1290 P L O T P O S X . P O S Y POKE 23726, DIMX/2: P 23729,DIMY PO OK KE E 2^729.1 RRI 1300 BEEP .2,20 RRNDOMI2E USR S

IS

RLMRCENRDOS

1590

«ICIO U R R I R B L E S

ID?K626O0OBOEP 1701

PRNTRLLR PRNTRLLRS

CRERDRS:

LECCIONRDR EMORIR DISPONIBLE 1720

RETURN

1740 REM

• PONE __ I N U E R S E

U;FL|D

MXDISP*U"PEEKP 3100 RETURN

¿3671 2 3 6 7 0 IOUETRS

IN «•

8

C

POKE

**

TSIL LET KEY=U =URL •3000" L ET Ü - S G N P I L E T E 4 0 2 2 . L E T 2 =NOT PI "LET LIN=URL 40S0 LET RSURL 4 0 6 0 L E T T R B G R "65393" 4 0 6 1 L E T SCRTFL 4062 LET MODO= 4063 LET POSUE

R P

"

4065 LET SCR = R ^U^L^ll" 1&2S 183Ó

<P0SX+0IMX«8>;

U^R^U?

gglO^BEEP U,-2L0*'GO'SUÓ

TG&10

1710~PRIÑT

P

JO MRY ESPRCIO SUFI M

KEYINKCY* KJ.XNKBY.

:RI2?UFLRSM

C N 9 L C T P P O I X B P O S X - © N G O TO 11 1 2 0 0 IF K $ E " P " T M E N IF P O S X * M X <255 T H E N L E T P 0 S X = P 0 S X * 6 Í S L L 1 ! ? K » » " 0 " T M E N IF P O S Y LET POSY =POSY-U: GO T O 1150 1 2 2 0 IF K $ = " R " T M E N IF POSY*L

G

NINGUNO

"J

2000TLETFTR«="E !DICIONRRBORTRDR-

_ B R I G M T 2. O U E R 2: CL: «••" EDITOR DE P R N T R L L R S .O": G O S U B 1 8 1 0 P R I N T " ': L E T R $

lili il¿0' 1170 GÓ SUB 1 1 8 0 IF

7

/

PRINT RT U,U,

I

•16°TDRÓU7-24 7?2

»»" RLMRCENRMIENTO DE G 1880 PRINT ' " : LET R$«" RNTRLLR" GO SUB LIN 1890 L E T R F = " E D I T R R G R R F I C O S " 1900 LET R»>"IR L": G O S U 6 L I N

RL

MENU

PRINC

RLMRCENRDOS

4067 LET 4066 LET 4069 LET

DISP= NUMSC L S C R E D =R*URL "16"

4072 LET 4073 LET 4074 LET 4075 LET 4076

MRXBL LRSTB KEMPS MXDZS

4078 4079 4080 4081 4083 4085

'J39680"

LET MKSCR LET RLTSC LET DELSC LET STOGR LET LDRSC LET^PRNTRLLR=R«URL BRSIC"

"16"

LINE

0

5RU

4 1


8 t m

LISTADO 2 EDITOR DE PANTALLAS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

C318F5C333F5C364F818 0R18421875C32CFDC3P2 FD3P00983C32009BCD65 FFED5BB0SC73237223ED 5B7EFF732372D5ED4B7D 5CCD18FFD1ED4BB05CCB 21C5ES0600EDB0E1CD48 FEC110F3EDS37EFFC93P 81FFCD5DFFE53P80FF3C 3280FF3281FFCDS2FFED 4B7EFF712370E1CSCD19 FD2804 78C60347CD28F9 02S6F9E1E8ED80ED537E FFC92P7RFF1100400100 1BEDB0C93E01320F9BPF 32069B3E0E320E9BCD34 FE2P7EFF2323220P9B18 30PF320F9B3P81FFCD50 FF237E32069B2B7ECBBF 320E9BCD19FDEBCD28F9 D256F97ECB7FED5B7EFF

1522 1090 1037 1387 1386 1S68 1383 1666 1667 1646 1368 1183 1864 957 1099 763 970 1183 1190 1431 1710

23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

8160220C9BF3PF3P0E9B 1F1F1FE6073CCD9B223E 083210983E02CD0116C0 CCF8PFCD24FECD38F9CD 18F7280E110808CD55FR 28F3ED430C9B18ERCDB1 FPD260F928E5CD9PFPCD 50F730DDF E07CR88F6FE 422822FE58CP76F6FE4D CP40F6FCS32866FE44CP 50F6FE4120BDCD5CFECD 8BF7CD24FE18P80100PC 11090ECOC4FCCD62FE3P 0E9B1814CD18F72825CD 9PFP573R099B5F7PCD23 FC7BE67F32099B6F2600 E53E03CD9CFBE1PFCDPD F80640CDDPF8CDB1FRD2 81F5FE0D20CCPF3P099B 320E9BCD34FEC381F5CD 14FPDP8BF5OO6E02OO66 03220C9BCD78F9C381F5 COC0FPD281FSPFCD24FE CD78F9C381F50100PC11 180ECDC4FCCO62FE3E02 CD9CFB2R039BED5B0P9B P7ED523E01CDPDFBCDD7 F8C381F5CD14FPDP8BFS DD4E02DD4603CD64F7CD D7FBC381F53P069BP7CP SBF92P7EFF23773P0E9B 2B77CDC2F63P0F9BP720 593P81FFCD52FF5E2356 O5ED5B7EFF722B732P0P 9B227EFFE1C084F81853 5F2P7CFF0100037BBE20 07230B78B120F6C90100 03CD28F9D2F3F62P7EFF CBFEED5B0P9B2P7CFF01 0003EDB0EO530P9BC906 20CD9PFP10FBF1C381F5 3P80FF3C3280FFCD52FF EDSB7EFF 7323722P0P98 227EFFC35BF91E003EF7

1071 846 726 1840 898 1394 1888 1698 1379 1515 1622 1246 1308 971 1170 1095 1684 1837 1274 1504 1528 1347 1901 1333 1312 1305 1598 1897 1352 1623 1144 1234 1288 1246 1487 865 830 1619 1372 1108 1718 1476 1180 1289

ENTER y de BREAK se puede extender, con estos mismos efectos, a casi todas las opciones de las que haya que salir en un determinado momento. El p r o g r a m a está pensad o para t r a b a j a r con pantallas monocromas; de esta f o r m a no hay que almacenar los atributos de los gráficos o de la pantalla. Si tu cambias algún atributo, aún cuando sólo sea uno, los 768 bytes que componen los atributos se a ñ a d i r á n , al acabar la edición, a los da-

CONTROL 67 68 69 70 71 72 73 74 7. 5W 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

D8FECB672002CBDB3EEF D8FE0F0F2FE607B3C03P 029BP7C8DBDFE60FC80F 3002CBC30F3002CBD80F 3002CBO30F3002CBCB7B P7C9FE31D8FE353FD8D6 30473E00371710FD3210 9BC9C50100PC110E0ECD C 4 F WC C D 6 2 F E 3 E 0 4 C D 9 C F BW C16948260044C53E00CD PDFB3E2FD7E13E00C3PD FB2100583P0E9B32119B 7E32099B3P119BEE8077 CD541FD226F83EBFDBFE 1F3F387P3EFED8FECB5F 200P3P119B32099B3E01 180RCD4FF8282BCD18F7 28D6012000E55FCB1BDC 4CF8CB1BDC47F8CB1BDC 3FF8CB18OC37FB010040 CDOPFBO13P099B1218P6 CD2BF820CB15CD9PFP59 1D01C70428181D01F801 28127PFE0230951D01BF 072807017F081802CB22 10FC3P119BP1B232119B CD9PFRC398F73P099B77 C9C511D2F80608CDS4F8 S1C1C92B7CFE57C026SP C9097CFE5BC02658C9P7 ED4218EC2318F111CRF8 0604EB0E017EDBFE23P6 2804230C10F5E8C93P81 FF4FCD52FF5E2356D554 5D1B233P80FF3D3280FF 3C918706004FC46FFEE1

1536 1216 1426 950 1058 1687 594 976 1683 940 1403 821 1055 1542 1359 S49 1125 1061 1543 1129 1313 1450 576 854 453 1059 1544 1424 1303 1365 1330 1060 975 1388 1090 1211

104 105 106 107 108 109 110

24C5D5ED587EFFE8P7E(> 52444DE1EBE5C46FFEED 537EFFD1C13P80FFDD2P 73FFDD6E00DD6601P7ED 52380919ED42OD7500DO 7401DD23DO233O20E5C9 DF01DF047F10FO08EF01

1794 1714 1570 1429 1034 1152 1095

tos de la pantalla. Es a l g o a considerar si tienes intención de crear bastantes pantallas (en 768 bytes se pueden almacenar los parámetros de 192 gráficos). " B " Borra los atributos: realiza un CLS de los atributos con el color indicado por el valor númerico que aparece. Para cambiarlo se utilizan los cursores. El valor es el resultado de aplicar el habitual COLOR = BRIL L O ' 6 4 + PAPEL*8 + TINTA. N o se acepta un p a r p a d e o general de la pantalla. EN-

LINEA

TER o BREAK p a r a salir. " D " M e m o r i a disponible: muestra la cantidad de memoria aue queda. " M " Seleccionar un gráfico de memoria): en la esquina inferior izquierda aparecerá uno de los gráficos que existen en memoria. Usa los cursores p a r a ver otros gráficos. ENTER sale con el gráfico seleccionado y entra en m o d o gráfico (ver m o d o gráfico). BREAK vuelve a modo cursor sin seleccionar ningún gráfico. " S " Seleccionar un grá-

F701F702F704F708F710 EF10EF08FF1616011008 1108120813885052494F 5249444144BP4D45404F 52494120444953504F4E 49424C45BR434F4C4F52 8PS04F53582F59BP0001

1266 826 520 844 713 853 839

021000F8E5D52P0P9609 E0SB039BP7E052D1E1C9 CD72FECD80FEED480C9B CD18FF3282FF545D2118 F9010108CDB7FEC362FE 21DR0718082132001803 21D007FB22425CPF3244

924 1607 1639 1153 1448 400 984

0OC3761B21CCFBE5DD7E 01CD65FFSECB23CB23CB 232356EO53079BODE5CD 5CFED0E1CD18F72815ED 5B0798CD55FP28F2ED43

1417 1335 1293 1566 1379

FPCD50F730D6FE0DC8FE 43201C3P069B3C28C901 0400CD28F9D2F0F9CDP2 FC110400DD19CDCCFB18 RCFE502019COE2FBPFCD 24FE189F11E803210001 DDE5COB503F3ODE11896 FE582092ED4B0C9BCD64 F7CDD7FBCDCCFBC38FF9 OD2R0R9B3P069B3C4718 23DD7E01CD65FFEO5B0C

1765 648 1564 1203 1625 759 1702 1304 2165 802 1284

02CD4CFP380P235P4EDD 7E03CD4CFPD011FCFFP7 OO1910O537C9BB28023F D8813OBBC9EO4B0C9B6F 3P109B67CB1DDC91FPCB 1DDC8RFRCB1DDC80FPCB 1DDC79FP2P0C9BP7ED42 C97994D879944FC97884 82FEC1D0788447C97894

1023 1559 1023 1384 1382 1670 1299 1487 1577

fico de los que existen en pantalla, se selecciona el gráfico que se encuentra bajo el cursor. Si existen varios gráficos siempre se toma el de mayor prioridad (el que se encuentre encima de todos) y se pasa a m o d o gráfico. " X " Muestra las coordenadas X e Y del gráfico que hay bajo el cursor. " 5 - 6 - 7 - 8 " (o joystick): p a r a mover el cursor. " 1 - 2 - 3 - 4 " Cambian la velocidad del cursor (en realidad es el número de pi-


EDITOR DE PANTALLAS

S2¡ D8789447C9793D8483D8 79844FC9FSE5D5C5DDE5 116400216400CDB503F3 DDE1C1D1E1F1C9CD541F D0RF32085CFF3R085CR7 37C93R019BDD2R71FF3D 26006F2929EBDD19CD45 FBCD18F728250F38030F 30143R009B4F3R01983C B9280438023E0132019B 18CE3R019B3D20F53P00 9B18F0CD81FPD2CCFB28 CECD9PFRFE0D20C7DD46 01DD2R0R9B3R019B0E00 DD3600FFDD7701DD7102 3EC09047OD7703DD7104 ED430C9BDDESE1110400 19220R9B3R069B3C3206 9B37C3CCFBDDE5CD72FE CD80FERFCD24FEDDE1DD 6E02DD6603DD5E003EB9 ~ — 084FCD18FF3282FF3R01 9BCDRRFEC362FE0100RC 110E0ECDC4FCCD62FE3E 0 B1 C D 9 C F B D D 6 E 0 0 2 6 0 0 R F 1 8 1 1 F 5 3 E 0 1 3 2 6 B 5 C R... FCD P7F8F111E2F8C30R0CCD B6F83E02326B5CC9E5D5 1E20R7280C01F0D8CD2R 190118FCCD2R19C336IR F5RFDBFEF6E03C20F8F1 C901000000000B78B120 F9C9DD7E0032099BCD72 FEDDE5CD80FEDDE1CD83 FBCD18F7280FCD9RFRDD 5E00CD23FC7BCD40FC18 DFCD81FR38063R099BC3 40FC28DFCD9RFRCDS0F7 30D7FE0D20D3C90F3004 1CC01CC90F30067BC60H 5F18F40F30077BD60P5F 01DC91D18F0S7DD5E01

xels que se suman a la posición actual, en incrementos de 1, 2, 4 y 8). Es recomendable utilizar " 4 " para moverse por la pantalla y " 1 " para situar el gráfico con suficiente precisión.

MODO

GRAFICO

Se accede a este modo seleccionando un gráfico de memoria o uno de los que existen en pantalla. Los opciones que hay son:

1417 1867 882 183S

¿22 §00

1162 986 893 634 556 840 1756 1604 657 1207 1150 1167 559 1883 1924 1000

§04 205 206 207 208 209

1065 1504 1157 9 7W 8 1572 1389 985 849 1944 542 1330 2073 1612 1254 1334 1720 1041 849 875 1128

211 212 213 214 215 216 217 218 219 220

DD4E02DD4603C5D5CD7D FCD1D5010400DD2R7EFF DD23DD23DD7E00R72809 BR28023004DD0918F1CD R2FCD1C1DD7200DD7301 DD7102DD7003C9DDE5D1 D5131313132P0P9BD5P7 ED5223444DE1D1EDB01B EDS30P9BPF123P069B3D 320698C9DDE5D12P0R9B E5P7ED5223444DE1545D 13131313ED530P9BEDB8 3R069B3C32069BC9D5C5 D5CD18FFD1CD05FD0108 10RFCD0RFD1520F9CD05 FDC1CD3BFFC10C0C78C6 020F0F0FE61F3C473A0E 9BC5E5S45D77130D2804 0600ED80E1C111200019 10EBC901F81F3EFFE5D5 702377231D20FB71D1E1 C34BFEE5E5236E260O29

1335 1323 1075 980 1488 1532 876 1373 958 1278 1297 982 1101 1378 1171 1500 511 953 911 1491 1160 1206

221

29444D0303E109D11RCB

864

223 «¿24 225 226 227 228 229

40227RFF217FFDED5B7E FFR7ED52D57D2F4F7C2F 47032R71FFEBR7ED52ES DD2R73FF3R80FFCDREF8 DD2R71FF3R009B08DD23 DD233E01CDREF8083D20 F2DD2171FF3E02CDREF8 C103E1117FFDEDB813ED 53B05C3R75FFR7C81E00 7RD61B474B327BFFE607 3250FE78C618327DFFC9 3R81FFCD5DFFE5DDE17E F5CD72FEDD7E01CD89FE F1CB7FDDE5E1E5CD34FE E13R75FFR72006CD62FE RF18572R76FF29292944 4DC5CD18FF7C92C64057 5DED4B78FFCB20CB20CB 20C5D5E50600EDB0E1CD 4BFEEBE1C045FEEBC110

1342 1376 1434 1701 1108 1047 1555 1495 1178 1174 1357 1796 1762 1986 1417 892 1377 1453 1520 1761

231 232 233 234 235 236 237 238 239 240 241 242

" C " Copiar el gráfico seleccionado en la posición actual. " P " Cambiar la priorid a d del gráfico. Utiliza el cursor para cambiarla. Si sales con ENTER se aceptará la nueva prioridad; si lo haces con BREAK continuará con la misma que tenía antes de entrar, aunque puede que no en las mismas condiciones. Para aclarar esto veamos cómo funciona la prioridad. PRIORIDAD. Este valor, que en nuestro p r o g r a m a

243 244 24.5 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263

ECC1CD3BFFE57CE60367 ED5B7CFF19D1ED4B78FF C5DSE50600EDB0012000 E109E8E109E8C110EDC9 ED587CFF210058010003 3801EBEDB0C9010003ED 5B7CFF2005626B77130B EDB0C9247CE607180624 7CE607EE00C07DC6206F D87CD60867C9CD72FECD 80FE2R7RFF7CFE40C811 00400100 FF3600545D1301FF17ED B0C9DD2R7EFF3R069BR7 C8DD23DD23FSCD9BFE11 0400DD19F13D20F3C9DD 4E02OD4603CD18FF3282 FFDD7E01ESCD65FF4E23 46237E23666FD1DDE579 3C3C320CFF79873C3C3C 32F6FEC5D50600CDDRFE

1637 1628 1091 1S8S 832 1147 861 1077 1257 1644 1460

265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294

E1C9DSC5C5RF1183FFED B012133D1213C1ED8012 CID1E53R82FFR7280F06 092183FFR7CB1E2310FB 3D20F20C41DD2183FFIR DDR605DDB60012DD2313 10F3E1C978E60767781F 1F1FE618B467780707E6 E059CB3BCB3BCB3BB36F ED5B7RFF1979E607C978 E6C00707F65867780707 E6E059CB3BCB3BC83BB3 6FC9ED5B73FF26006F2D 2919C9CD52FF5E2356E8 C9ED5B71FF26006F2D29 2919C9249BCERC000707 0C0C0080009836RE0404 04000000000FFFFE7FFF 3FFFFFFF0042427E4242 4200003E080808083E00 0002020242423C000044 48704844420000404040 40407E000042665R4242 4200004262524R464200 003C424242423C00007C 42427C404000003C4242 524R3C00007C42427C44 4200003C403C02423C00 00FE1010101010000042 424242423C00F311FFFF

1848 935 1302 1130 1078 1088 1296 963 1389 1409 1007 1508 1204 1259 1132 850 540 910 1218 22? 266 582 644 522 508 S76 664 378 400 1094

1021 1407 1588 1249 1038 1506 1259 873 1643

&

DUMP: 4 0 . 0 0 0 N . ° BYTES: 2.936

debe encontrarse entre 1 y 255, es algo parecido a una tercera coordenada espacial. La prioridad máxima es 255 y es asignada automáticamente a todo gráfico que se saca de memoria. Cada gráfico debe tener asociada una p r i o r i d a d y, más aún, varios gráficos

A

7


r'coNUERsoR oe * POR "'""TÜT" ^SS

BOROER 1

A , ¡ S 8 E C « O N DE,

r^ ^

- -

C

mbsc

OR DÍWY<1 OR »»

O

K C

2331*

1.2® 9999

sflUE

120,23

pueden tener la misma prioridad. En estos casos el orden de preferencia a la hora de ponerlos en pantalla es el de llegada: cuando se saca de memoria o se copia un gráfico con igual p r i o r i d a d que otro ya existente; éste, el nuevo, se sitúa a c o n t i n u a c i ó n del último que tiene esa prioridad. Si, por ejemplo, a un gráfico que se encuentra entre otros dos con igual prioridad, le cambias la prioridad y en el último momento te arrepientes (BREAK) el gráfico seguirá con la misma prioridad que tenía inicialmente, pero no en la misma posición dentro del g r u p o de gráficos con idéntica prioridad; ahora será el último.

GRÁFICO copiando el gráfico en la posición actual. Ten cuidado con esto porque es habitual copiar un gráfico en un punto y salir inmediatamente con ENTER, volviéndolo a copiar encima. BREAK abandona este modo borrando el gráfico seleccionado. " 1 , 2, 3, 4 " y " 5 , 6, 7, 8 " Lo mismo que en el modo cursor. Para volver el Basic puedes utilizar EDIT (la pantalla se almacena) o BREAK (la pantalla no se almacena). Si has alterado algún atributo y no dispones de suficiente memoria para almacenar todos los atributos, el p r o g r a m a generará un pitido y volverá al modo cursor para que hagas lo que creas más conveniente (sólo si sales con EDIT).

1 8

..C0HUER30R" ^

DETALLES TÉCNICOS

IKTADO 4 CONVERSOR _

a

I I I

_•3I 6H8 O G

R

gfsSxHv TO ^ X, O

D ^I ' "

"

5 „

=°Í2°5ÍXT R ^RÜSS? 1 !

l i l i RE» . . OI¿ 0 RP O I ¿ M f l | l M ! . .

9 9 99

*«*

CONVERSOR" —

»

Una buena costumbre p a r a evitar este tipo de sorpresas es asignar prioridades diferentes a los gráficos que vas sacando de memoria. Puedes hacerlo incluso con incrementos de diez, para mayor seguridad. " X " Útil para conocer las coordenadas actuales del gráfico que tienes seleccionado. "ENTER" y "BREAK" ENTER a b a n d o n a el modo

La estructura de datos utilizada es la habitual: existe una TABLA DE GRÁFICOS en la que cada gráfico tiene asociados cuatro bytes: dimensión horizontal (valor entre 1 y 32, baja resolución), dimensión vertical (entre 1 y 192, alta definición, incluidas las dos últimas líneas) y dirección de los datos que componen el gráfico y su máscara. La otra tabla, la TABLA DE PANTALLAS (2 bytes por pantalla) contiene las direcciones donde comienzan los datos de cada pantalla. Los datos que conforman una pantalla son: un byte destinado a indicar el atributo global, otro para especificar el número de gráficos que componen la pantalla, y los datos para cada uno de esos gráficos. Un gráfi-


DE PANTALLAS

co esta representado por cuatro bytes: el primero ,ndrca la p n o r i d a d , el segundo el lugar que ocupa ese gráfico en la tabla de gráfiY los dos últimos las coordenadas, en alta resolución, "Onde donde se r „ se encuen encuentra «rtuado Opcionalmente, si se altero algún atributo, los "a se almacenan a conti-

. E l m a P o de memoria es el siguiente: y800

hJJ1

0

a#9AFF(32768 se ut,ll2a com

°

buffer pantalla. - „ , de u«0a#9B23(39689 a 39715) es una zona de variables.

E j e m p l o d e g r á f i c o s c o n sus r e s p e c t i v a s m á s c a r a s en u n c a p e a d o de p a n t a l l a .

• En #9824 (39716) comienza la tabla de gráficos. • A continuación de la tabla de gráficos y de sus datos comienza lo tabla de pantallas. • Al final de la tabla de pantallas se encuentra la zona de memoria disponible. Sus dimensiones variar a r á n en función d e la cantidad y volumen de g r á ficos que tengas almacenados. Antes de cargar ningún gráfico la memoria total operativa es de unos 2270 0 bytes. • #F488 a #FF70 ( 6 2 6 0 0 a 65392) el p r o g r a m a en Código Máquina. • #FF71 a #FFC6 (65393 a 65478) Las siguientes variables: - 6 5 3 9 3 / 4 TABGRF: dirección de inicio de la tabla de gráficos. - 6 5 3 9 5 / 6 SCRTAB: dirección de inicio de la tabla de pantallas. - 6 5 4 9 7 M O D O : indica el m o d o en que se presenta la pantalla; a 0 pantalla completa, a 1 con ventana. 65498/9 POSVEN: posición de la esquina supe-

B F M I M E N

D E

C O M A N D O S

BREAK: vuelve a modo CURSOR. • S SELECCIONA UN GRÁFICO de b pantalla y salta a modo GRÁFICO. • X MUESTRA LAS COORDENADAS X/Y.

M O D O CURSOR • A ALTERA LOS ATRIBUTOS. 5, 6, 7, 8: mueven el cursor. C: copia el atributo seleccionado en la posición actual. P + 0—7: cambia el papel. MODO GRÁFICO 1 + 0—7: cambia la tinta. SELECCIONADO B + 0 —1: cambia el brillo. F + 0 — 1: cambia el parpadeo. • C COPIA EL GRÁFICO. ENTER: hace los cambios per• P CAMBIA PRIORIDAD. manentes. 5, 6, 7, 8: para cambiar prioriBREAK: se anulan todos los dad. cambios hedios. • B BORRA LOS ATRIBU- ENTER: acepta cambio. BREAK: sin camb'os. TOS. • X IMPRIME LAS COORDE5, 6, 7, 8: cambian el valor del NADAS X/Y. color. • ENTER COPIA GRÁFICO Y ENTER: convierte el color selecVUELVE A M O D O CURSOR. cionado en global. • BREAK BORRA EL GRÁFIBREAK: no se realizan camCO Y VUELVE A M O D O bios. MEMORIA DISPONI- CURSOR. .. SACA UN GRÁFICO LA MEMORIA. 7, 8: para ver los gráneos. .,. ENTER: selecciona gratico y salta a modo GRÁFICO.

i-

nnz.

PARA VOLVER AL BASIC • EDIT ALMACENA LA PANTALLA CREADA. • BREAK NO ALMACENA LA PANTALLA.

I

I

i


12

Tifet^

r i o r i z q u i e r d a de la v e n t a na. 6 5 5 0 0 / 1 D I M V E N : dimensiones d e la v e n t a n a . 6 5 5 0 2 / 3 SCR: dirección del b u f f e r d e p a n t a l l a . 6 5 5 0 4 / 5 ATTR: direcc i ó n d e los a t r i b u t o s en el buffer de pantalla. 6 5 5 0 6 / 7 DISP: p r i m e r b y t e d i s p o n i b l e en la z o n a de memoria. 6 5 5 0 8 N U M S C R : número de pantallas creadas hasta el m o m e n t o . 6 5 5 0 9 SCRED: p a n t a lla s e l e c c i o n a d a . C u a n d o se utiliza la o p c i ó n g e n e r a r c ó d i g o el p r o g r a m a c o m p a c t a los d a t o s a c t u a l i z a n d o t o d a s las di-

LISTADO

EJEMPLO

recciones y d e s t r u y e n d o la m a y o r parte del c ó d i g o del e d i t o r ; d e j a n d o exclusivam e n t e las rutinas i m p l i c a d a s en la impresión d e la p a n t a lla. U n a vez c o m p a c t a d o s los d a t o s no es p o s i b l e r e a lizar c a m b i o s en las p a n t a llas. N o olvides, p o r t a n t o , salvar los datos antes d e utilizar esta o p c i ó n . Para i m p r i m i r u n a p a n t a lla tienes q u e utilizar la rutina s i t u a d a en 6 4 9 3 0 . Si a l g e n e r a r el c ó d i g o estabas en m o d o v e n t a n a se t r a b a j a r á sobre un buffer d e p a n t a l l a ; si n o , d i r e c t a m e n t e s o b r e la p a n t a l l a . Para p a sar d e un m o d o a o t r o tienes q u e : 1) A l t e r a r el c o n t e n i d o d e

4 5 6 7 8 9 10 11 12 13 14 15

98E4OD0301140530P09B 052R809D0521249F0318 6EP00318FEP003188EP1 03181ER20318PEP20318 3ER30318CER303185ER4 04-1CEEP4041CCEP5041C PE06041C8EP7041C6ER8 041C4EP9041C2EPR041C 0ERB041CEEPB01010101 01010101010101010101 01010101010101010101 01010101010101010101

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

0000000000FFFFFFFFFF 1275 0000000000FFFC3FFFFF 1080 0003C00000FFF00FFFFF 1215 000C300000FFC003FFFF 1020 00324C0000FF0000FFFF 891 00CER30000FC00003FFF 939 033E54C000F000000FFF 851 0CFEPP3000C0000003FP 934 33FES54C0080000001FF 850 4C0000320000000000FF 381 72PPFFC60000000000FF 992 3C54FF2R0000000000FF 696 6F2PFC6E0000000000FF 770 7BC4F2PR0000000000FF 986 6EF2C6EE0000000000FF 1043 688C2RPR0000000000FF 762 6REEEEEE0000000000FF 1075 6PBPPPPP0000000000FF 887 6PPEEEEE0000000000FF 1011 6PB6RPPP0000000000FF 883 6PC6EEEE0000000000FF 1035 6B06PPPP0 6C06EEEE0 7006PRPP0 6006EEEE0000000000FF 3806PPPC0080000001FF 788 0E06EEE000C0000003FF 932 0386PPC000C0000003FF 949 18E6EE1800C0000003FF 966 1E3EPC7800C0000003FF 834 118EE18800C0000003FF 970 1062C60800C0000003FF 770 1418182800C0000003FF 5S8 1506E0P800C0000003FF 869 15C283P800C0000003FF 964 1SF28FR800C0000003FF 1024 1SFRBFR800C0000003FF 1080 15FPBFP800C0000003FF 1080 15FPBFP800C0000003FF 1080 167RBE6800C0000003FF 888 119RB98800C0000003FF 942 0C62R63000E0000007FF 810 031R98C000F000000FFF 883

16

44 45 46 47 48 49 50 51 52 53 54 55 56 57 59

Si en a l g ú n m o m e n t o se

i n t e r r u m p e el p r o g r a m a no utilices R U N . Teclea únicam e n t e G O T O 50 p a r a volver a l m e n ú p r i n i c i p a l . Si, a pesar d e t o d o , lo haces, puedes r e a s i g n a r las v a r i a bles c o n G O S U B 4 0 0 0 y d a r a M X P A N T el n ú m e r o máximo de pantallas que querías c r e a r (si no lo recuerdas un valor menor que el o r i g i n a l siempre será menos c a t a s t r ó f i c o ) . C o n f i o m o s q u e esta utilid a d satisfaga tus necesidades a la h o r a de p l a n i f i c a r pantallas y, seguramente en m e n o r m e d i d a ( p o r la velocidad de impresión cuando la p a n t a l l a tiene muchos elementos), la de c r e a c i ó n d e juegos.

N o es n e c e s a r i o p a r a q u e f u n c i o n e e l p r o g r a m a

CONTROL

Mr

M O D O según el e f e c t o q u e busques y 2) situar en las variables SCR y ATTR los valores a d e c u a d o s : # 4 0 0 0 y #5800 para modo pantalla c o m p l e t a y las direcciones respectivas d e l b u f f e r d e p a n t a l l a si es m o d o v e n t a na. La p a n t a l l a q u e será impresa v i e n e d e t e r m i n a d a p o r el v a l o r q u e c o n t i e n e la v a r i a b l e SCRED. A l n o realizarse n i n g ú n t i p o d e c o m probación sobre dicho v a l o r , si éste n o se encuent r a en el r a n g o a d e c u a d o (vale 0 o es m a y o r q u e el n ú m e r o de p a n t a l l a s c r e a das) c o r r e s el riesgo d e q u e el o r d e n a d o r se b l o q u e e .

01010101010101010101

945 S92 1041 609 906 869 991 559 630 10 10 10

10

LINEA 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 31 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 M H 2

13 114. 115 116 117 118

CONTROL

00C2P30000FC00003FFF 00328C0000FF0000FFFF 000EF00000FFC003FFFF 0002C00000FFF00FFFFF 0000000000FFFC3FFFFF 0000000000FFFC3FFFFF 0003C00000FFF00FFFFF 000E300000FFE007FFFF 000F900000FFE007FFFF 001FC80000FFC003FFFF 001FE80000FFC003FFFF 001FE80000FFC003FFFF 001FE80000FFC003FFFF 000FD00000FFE007FFFF 000FB00000FFE007FFFF 0013C80000FFC003FFFF 0018180000FFC003FFFF 002FF40000FF8001FFFF 005BDP0000FF0000FFFF 00B7ED0000FE00007FFF 0177EE8000F800001FFF 06E7E76000F000000FFF 0E6FF67000E0000007FF 1797E9E800C0000003FF 10F66F0800C0000003FF 1619986800C0000003FF 1B47E2D800C0000003FF 1B700ED800C0000003FF 1BBFFDD800C0000003FF 18BFFDD800C0000003FF 0DBFFDB000E0000007FF 0DDFFBB000E0000007FF 0DDFFBB000E0000007FF 0EDFFB7000E0000007FF 06EFF76000F000000FFF 076FF6E000F000000FFF 0B77EED000C0000003FF 3BB7EDDC0080000001FF 79D8DB9E0000000000FF 3CEDB73C0080000001FF 0E366C7000C0000003FF 038661C000F00000OFFF 00F00F0000FC00003FFF 003FFC0000FF0000FFFF 000FF00000FFC003FFFF 0003C00000FFF00FFFFF 0000000000FFFC3FFFFF 0000000000FFFC3FFFFF 0003C00000FFF00FFFFF 000FF00000FFC003FFFF 003FFC0000FF0000FFFF 00FFFF0000FC000O3FFF 03FFFFC000F000000FFF «««««« 0FFFFFF000C0000003FF

927 95S 1214 1214 1080 1080 1215 1058 11S5 1191 1223 1223 1223 1219 1187 1179 1008 1185 1074 1056 1020 1074 969 1089 831 753 990 819 1137 1137 1119 1149 1149 1086 1098 1098 1026 1083 972 924 738 936 825 1080 1215 121S 1080 1080 1215 121S

7FFF13FE0000000000FF 7FFC1CFE0000000000FF 4FFF13320000000000FF 73FFDCE20000000000FF

910 916 6S8 1071

1080 1215

« ->•. C 12 3FFFOFFC0080000001FF 11

LINEA 4CFFF3220000000000FF 733FFCE20000000000FF 3CCFFB220080000000FF 0F33C8E200C0000000FF 03CC8E2200F0000000FF 0CB38FE200C0000000FF 3FCC8FE20080000000FF 7FB38FC20000000000FF 7FCC8F020000000000FF 7FB38C020000000000FF 4FCC80020000000000FF 73B380020000000000FF 4CCC8002000000000OFF 3333800C0080000001FF 0CCC803000C0000003FF 033380C000F000000FFF 00CC830000FC00003FFF 00338C0000FF0000FFFF 000CB00000FFC003FFFF 0003C00000FFF00FFFFF 0000000000FFFC3FFFFF 000000FFFFDF000020FF FF0F0000F0FFFC070003 C8FFF003000F38FFC003 003CC8FF000300F328FC 002303CC28F000P30F34 28E001P314C428C001P3 1B1428D011R31P1428C8 D1R31P1428D0D1231P14C8C8D0C31P1530D0D107 1P14.C0C8D00F1P3700D0 303F1RCC00C8C0FF1P30 00D003FF1PC000C80FFF 0B0000E03FFF000000F0 FFFF000000FFFFFF0000 00FFFFFF000000FFC3FF 003C00FE3C7F01C380F9 C39F063C60F6006F0DC3 B0EC00371P2458D8001B 0C5P30EC1837162468C6 006309C390E1C387063C 60F03C0F09C390E80017 14.3C28C40023190098C1 008336246C80240123C3 C48000016B66D6080010 36246C8000015EPS7P40 81022766E4R0000519E7 98D8001B062460E60067 01D880F9DB9F003C00FE 3C7F000000FFC3FF0000 00FFFFFF000000FF81FF 007E00FC7E3F03FFC0F3 FFCF0FFFF0EFFFF71FFF F8DFFFFB3FFFF0BFFFFD 3FFFFCBFFFF05FFFFP5F FFFP7FFFFE7FFFFE37FF ECB7FFED7EFF7E7EFF7E 47DBE24.7D8E221FF84R1 FF852CE734.P0E70S576P

863 911 935 939 878 1007 1019 898 731 703 668 679 665 626 842 884 905 956 1148 1215 1080 1020 1027 1219 1053 752 1040 761 ?56 1322 950 1062 11S4 793 1275 1470 1074 1081 860 825 1068 1014 721 724 772 772 921 866 1289 892 1404 1260 1999 2246 1964 2087 192S 1613 1304


EDITOR DE PANTALLAS

178 179 180 181 182 183

ER106P0817B5E8903409 4B42D24842122R9954P8 8115153CR8D500PB067E 68E60067018180F9819F O07E00FE7E7F000000FF 81FF000000FF81FF007E

185 186 187 188 189 190 191 192 193 194

0F81F0EF81F 714 7E28D4 0028387EDCB8001D3B00 DCB800ID140028940029 2F81F48F81F1237EC483 7EC12C7E34807E010F00 F0C000032F7EF4800001 337ECC800001387E1C80 00011800D8C000032BE7 D480000123E7C4800001 2CE7348000010F00F0C0

1005 954 915 1224 888 1149 1397 720 682 1421 811 981 848 713 932 903 888 1020

196 197

C0F0000F007E00FC003F 000000FF81FF007E00FF

200 201 202 203 204 205 206 207 208 209 210 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 246 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275

200004C00003200004C0 459 00034000028000015000 278 0P800001400002800001 334 4O0O028e0O0122e044Ce 489 0003218184C00003107E 634 08E000070C0030F0O0OF 554 0381C0F8O01F04 7E20E4 993 00271P0058D8O01B3P0O 454 5CB800ID1D8186DC003B 926 067E60E60O67018180F9 1068 819F007E0OFE7E7F0O18 945 000000FFFFFF003C00FF 108O C3FF00C300FF00FF0100 1156 80FEO07FOF00F0F0000F 1019 30D80CC0180340240200 600 24004006020018007100 458 8E00O0003E007C800001 457 3D00BC8000014D81B240 826 000271E78E70000E5CFF 961 3P5C0O3P373CECB70OED 979 4DC3B2ODC3B0737ECE03 128A 7ECO7CD83E0ODB0O3D3C 1063 BC803C0105C3P0C00003 932 O1FF80F8001F00FFO0FE 1172 O07F0018O0FF00FF0000 661 00FFE7FFO0O000FFE7FF 1482 0018O0FF81FF006600FE 1019 007F018980F8081F0654 770 60E0540718PP98COPP83 1250 35554C85554132PPPC82 1019 PPP139551C6155015E2P 852 7P4O2P026791E6601006 826 79E79E78001E1E7E789E 1094 00796799E66781E679E7 1421 9E79E79E1E7E789E7E79 1349 2799E48799E139E79C81 1506 E7811E7E78C07E030799 111 EOE0180701E780F8O01F 111o 007E00FE007F001800FF 786 81FF0O000OFFE7FF0000 1125 00FF81FF0O7EO0FE007F 1146 01FF80F8001F07FFE0F0 1389 000F0FFFF0E0O0071DFF 1040 F8C00O031BFFF8C00003 1168 33FFFC800O0137FFFC80 1377 0O0177FFFE0000007FFF 1011 FE0000O077FFFE000000 882 7FFFFE0000007FFFFE00 1272 00007FFFFE0000003FFF 954 FC8000013FFFFC800001 1080 1FFFF8C000031FFFF8C0 1455 00030FFFF0EO00O707FF 1006 E0F0000F01FF80F8001F 1142 007EO0FEO07F000000FF 762 81FF00000000FFFC3FFF 1209 0003C000FFF00FFF000E 974 7000FFC003FF00381C00 901 FF0000FF00E 7C700FC00 1192 003F039FF780F000003F 903 0E7FFC00C000003F38FF 959 FB808000038F38FFC100 1205 0000013F4E7F8B8O0000 584 3BBF739C11000000113F 618 4CFBB680000386BF5301 1107 1O001001107F4CBBB800' 623 0C3BBBFF329100000211 727 07FF0CBB8000C03BBFFF 1286 0390000 0000FC3 FF07FFFF00000U«0R-RR-R M O A FFFF00000000FFFFFFFF 1530 00000000FFFFFFFF0000 1020 0000FFFFFFFF00O00000 1020 FFFFFFFF00000000FFFF 1530 FFFF00000000FFFFFFFF 1S30

282 283 284 285 287 288

F99F36FF067CCF00E67C CF0F19F33E70D9F33E77 3DCCF998BDCCF99B2633 E67CP633E67D1PCF99FC C2CF99FD35EE67FC85EE 67FD35319FFR85319FF8 32D67FE280167FE035PF

1408 1305 1552 1564 1824 1346

289 7F8P802F7F8031P98E3P 1161 290 8029BE003596B8FP8000 1124 291 880031PDP3FP8001P000 1108 292 358D4FFP8001400031PC 937 293 BFF880000001198DBFF8 1173 294 C000000301PCBFF0E400 1027 295 0007018D8FC0FC00000F 799 296 00CCBF00FE00003F000D 725 297 8C00FF2000FF000CB000 918 298 FFE003FF00064000FFF0 1302 299 0FFF000000O0FFF9BFFF 1220 300 00000000FFFFFFFF0000 1020 301 0000FFFC3FFF0003C000 1020 302 FFE007FF001C3800FF80 1208 303 01FF00624600FE00407F 869 304 019E2980FC00283F037E 812 305 54C0F800S41F06FC2P60 103S 306 F0002P0F0C018030E001 711 307 80071SS4 3FP8C1540003 751 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 391 392 393 394 395 396 397 398 399

5C0PO03P5E6O467P5E00 636 007P6F9C39F66F8001F6 1178 6FE3C7F66FE007F677F8 1738 1FEE77F81FEE77FDBFEE 1706 77FC3FEE7801801E780O 1071 001E7PP9955E7PP8155E 969 3955PP9CB9542P9D0EP9 1119 9570CER815730355PPC0 1221 F3S42PCF0OE99700FCE8 1444 173F0035PC00FF342CFF 917 0O0DB00OFFCC33FF0003 957 C000FFF00FFF00000000 957 FFFC3FFF00000000FFFC 1332 3FFF00O3CO00FFE3C7FF 1449 001C3800FF9C39FFO061 904 C60OFE60O67F018PB980 1133 FD8001BF032PPEC0FB0O 1235 00DF065S5660F60O006F 8S3 082PPED0E60000D7128P 1041 B9D8D28001DB36E1476C 1417 B6E0076D2CDC3D74PCDC 1355 3D751D97ES889D97E5B9 1493 5B76B6DP1B76B6D86764 1355 83660764B36032ED9B8C 124S 82ED9B81SCD9DD3P40D9 1520 DD02271B68E4P0186805 917 69E3C7966803CO165C3C 1154 3C325C0000325B47E2DP 858 584002DP336816CCB368 1039 16CD0E6D767OCE6D7673 1128 02CD8B4OF2CDBB4F00D9 1388 BB00FCD9BB3FO0339C00 1113 FF339CFF000EDO00FFCE 1400 D3FF0002C000FFF2CFFF 1619 00000000FFFD3FFF0000 826 0000FFFC3FFF00O3C000 1020 FFF3CFFF00OE7000FFCE 1547 73FF00399C00FF381CFF 1177 00E6670OFCE0073F0399 1035 99C0F38001CF0E67E670 1383 CE000073398C319CB800 907 001D3960069CB800001D S57 0ES81P70CE0000733396 762 69CC838001C11CESP738 1242 C0E0070323399CC48038 1054 1C0141CE7382000E7000 671 7P33CC5E0003C000341C 746 382C8000000147P3CSE2 886 40000002784182DE7800 726 001E347P5E2CB400002D 567 4 7B42DE2078001E0334 7 1004 E2CC834002C10C7BDE30 1225 C0781E0303342CC0F034 928 2C0F00C7E300FC07E03F 1031 0033CC00FF03C0FF000C 972 3000FFC003FF0003C000 948 FFF00FFF00000000FFFC 1272 3FFF00000000FFFC3FFF 1143 0003C000FFF3CFFF000C 1167 3000FFCC33FF0033CC00 1068 FF300CFF00CC3300FCC0 1269 033F0333CCC0F303C0CF 1161 0CCC3330CC0C30333333 732 CCCCB0300C0D3333CCCC 1167 B0300C0D1CCC3338DC0C 820 303B0733CCE0E703C0E7 12S0 03CC3380FBC0039F03F3 1237 CE40F3F0OE4F0BFC39B0 1342 CBFC39B337F7E7CCB7F7 1858 E7CD5FF0019P1FF01998 1374 67F0006607F7FE6059F8 1386 019P01FBF9805678066P 1102 0079E600559E19PP001E 819 18003567E6PC8007E001 942 0D599PB0C00180030356 845 6PC0F000000F00D5PB00 937 FC00003F0035PC00FF00 795 00FF000DB000FFC003FF 1149 0003C000FFF00FFF0000 960 0000FFFC3FFF00000000 82S EFFF00081O0OFFE8D7FF l i l i 00081O00FF6BD6FF008C 995 3100FERDB57F009C3900 997 F69C396F08DDBB10EPDC 1456 3B5709DE7B90E9DE7B97 1373 09DE7B90E9DE7B9715EE 1486 77R8D5EE77PB15PE 75P8 1508 D5PE75RB0D4E72B0CD4E 1339 72B32E4812748E481271 890

400

6EC423760EC4237032E4 274C82E427410CEC3730 C0EC3703132E74C8D02E 740BICCE73Q89C0E7039 5D324CBP1D0240B86DCC 33860DC003B031D3CB8C 81D00B810EDC3B70C0DC 3803031E78C0F01E780F 00EC3700FC0C303F0032 4C00FF0000FF000FF000 FFC003FF0003C000FFF0 0FFF00000000FFFC3FFF 00000000FFFC7FFF0003 8000FFF01FFF000FE000 FFC007FF003C7800FF00 01FF00F99E00FC01807F 03FC6780F000601F0F1F 19E0E0O018071E67C678

1094 928 1121 871 997 1220 1294 812 716 841 1395 109S 892 1148 1144 1171 899 955

6FCE780060007E7F1FB6 7E000O007F9FFF967F80 00005FE7F3B6SFE00000 77F96D9677F800OO5DFE 65965DFE0000577F6D86 577F000065DF659P65DF 001839776SB2B9770030 1E5D61CCDE5D00010797 66F0E 79706O301E56CC0 F9E50C0F00797300FE79 003F001EBC00FF9E80FF 0007B000FFE783FF0001 C000FFF9CFFF00000000 FFFE3FFF00000000FFFD 3FFF0002C000FFF00FFF 000D3000FFC003FF0033 CC00FF0140FF00CFF300 FC0PP03F033FFCC0F015 S40F0CFFFF30C0PPPP03 33FFFFCC815555414FFF FFF20PPPRPPO33FFFFCC

999 1072 1070 1341 1055 1117 831 898 1263 1116 1077 1056 11S8 1335 1277 817 1229 1256 1204 1463 1772

58PD0PPD0O0000000000 00000000000000000E13 870P6F2E910P8136P50P 923FPF0PP348B90P9351 C30P835PCD0P7363D70P 646CE10P5575E10P5E36 EB0P4C3FEB0P467EF5OP 3787F50R3P48FF0P2890 FF0P2880FF0P2870FF0P 2860FF0P29510414DC03 7837DC03883FDC039847 DC03R84FDC03B857DC04 7328DC088D36E603683F E603P85FE6046330F003 9867F003S847F0045338 FF034 84FFF035857FF03 685FFF037867FF03886F FF044 340FF098C66050E C314R13RCD149042DC10 7E4BE6106E53F0105D5B FE0F1F4BFF0D3054FF0D 40SDFF0D5066FF0D5F6F FF0D6E78FFOE7F81FF11 3C6BFF123C5D00000O00

108O 1024 1115 770 1043 1188 978 1120 1040 1100 1185 915 1105 1080 1043 1081 1295 593


L O S

J l E

D E L

F i r

kkebI EKCBl

d a

IUIIIIIIIIIWMUI. Ifj

H

'J . O O O

h o r a s

d

progrzirf&¿g3u : t o s q u -M r e PWB^TTego n M r ^ U r z i T . »d . .e ra tordena^!®Tas posibilidad j d a s tá^-' c o n s e g u i r sacal | r s u s ETroll d e pantalla a c o l o ri ^pu j x a J continuo m o v i m i e n t o y sen .mdór* nunca, s o n s o l o a l g u n a's' J E db Ja"e n c o n t r a r en " D EHpgME S ¡LO D E M A S ERBE S O F T W A R E . C/. N U Ñ E Z M O R G A D O , 11

SO

2 8 0 3 6 M A D R I D . TELEF. ( 9 1 ) 3 1 4 18 04 T DE


0

iami

süd

j ¡hasta • Sá LríCSiS

hj

cA

' / é x ü r r ^

arixejjE p j S í

HO.iTnn-


16

tipe* 4^

Pedro José Rodríguez Larrgñago I deporte, hoy en día, ha ¡do mucho más lejos y se ha convertido en un fenómeno social que, sin duda, será estudiado en los libros de historia no dentro de mucho tiempo. Canalizad o r de frustraciones y deseos, el deporte se convierte en elemento de desafío personal para el que lo practica y en incentivo p a r a salir de la rutina diaria para el aficionado. Hoy en día todos los deportes tienden, en mayor o menor medida, a convertirse en espectáculo de masas en torno a los cuales se mueven impresionantes cifras que dejan en ridículo los sueldos de otras profesiones. Practicar un deporte, implica llevar una vida sana y nos ayuda a salir del stress diario de nuestra alocada vida moderna. Pero aún así hay quienes piensan que resulta más relajado simular una carrera con nuestro o r d e n a d o r , cómodamente apoltronados en la butaca, que ponerse unas zapatillas y hacerlo de v e r d a d . Hablar de ordenadores es hablar del Spectrum, y el Spectrum debe g r a n parte de su popularidad a la avalancha de juegos deportivos que surgió no mucho después de su nacimiento. El fenómeno de los juegos deportivos arranca de la crisis que por esos momentos sufrían los arcades de acción, pues el adicto a las máquinas de los bares estaba bastante hastiado de la noved a d que en su momento supusieron los «invaders» y demás sucedáneos. Los primeros juegos deportivos, basados en pruebas de atletismo, tuvieron un éxito inusitado p o r la combinación que ofrecían

de n o v e d a d , fuerza y habilidad y su conversión a los ordenadores domésticos fue prácticamente inmediata. Los juegos deportivos han sufrido notables altibajos en su p o p u l a r i d a d . Tras el impacto inicial y el extraordinario auge que tuvieron en sus primeros tiempos, en los que p r o g r a m a s similares se sucedían convirtiéndose uno tras otro en éxitos de ventas, surgió la inevitable apa-


<

El deporte ha acompañado a la humanidad — desde sus — comienzos como imagen y reflejo de sus deseos y pasiones. Detras del deporte se esconden constantes humanas tales como el afán de superación, la competitividad, la amistad y el sacrificio, la pasión y la rivalidad. Como en un sueño sin retorno el deportista sólo encuentra satisfacción en la automejora y la victoria. Pero, como siempre, esta victoria sólo puede corresponder a uno.

EL DEPORTE•n EN EL SPECTRUM 17

17

tía y hubo un corto espacio de tiempo en el que se dejaron de lanzar nuevos productos. Actualmente los juegos de este tipo han vuelto con un empuje más moderado, de forma que de una manera más o menos continua aparecen títulos de este tipo en el mercado, programas que intentan en la medida de lo posible ofrecer nuevas posibilidades y explorar terrenos desconocidos en el campo del ordenador personal. La relación que encontraréis a continuación pretende ser una guía más o menos sistemática de los programas deportivos que han pasado por el mercado del Spectrum desde sus inicios,

hace ya casi cinco años. Nuestra intención es por un lado ofrecer una sana crítica de los programas que hemos considerado más representativos dentro del género y por otro lado elaborar una lista a g r u p a d a por especialidades en la que se informe detalladamente al comprador de juegos de los programas existentes en su especialidad favorita. Tened en cuenta que la mayoría de los programas comentados están ya descatalogados por su antigüed a d y se han convertido en clásicos de la programación. En cualquier caso, como siempre, la elección está en vuestras manos.

TENIS Y DERIVADOS Hablar de tenis es hablar del maravilloso Match Point de Psion, casa de Software que se convirtió en la pionera a la hora de elaborar programas comerciales para el Spectrum. Desde la inolvidable cinta de demostración «Horizontes» hasta las aventuras de Horacio, pasando por los Space invaders y las serias aplicaciones de la serie VU, Psion demostró un conocimiento del ordenador impensable por el

escaso tiempo transcurrido desde su lanzamiento. • M a t c h Point es, pese a su antigüedad, el mejor p r o g r a m a de tenis para Spectrum. Tras un cuidadoso menú que ofrece programar nivel de juego, controles y duración del partido, el juego en sí es una sofisticada simulación en la que la sombra de la pelota, el público que mueve la cabeza, la excelente perspectiva y el perfecto control que dispo-


1 8

nemos sobre lo trayectoria de la pelota le convierten en un ¡uego terriblemente adictivo. El ordenador es prácticamente imposible de vencer en los niveles altos y el único defecto que se le puede achacar es la simplicidad de los gráficos de los jugadores. • Tennis, de Imagine, es una versión bastante mediocre del p r o g r a m a original realizado por Konami para MSX. Tennis aporta como novedad jugar partidos de dobles y los gráficos son notablemente más detallados, pero el ¡uego es demasiado lento, el control de la pelota prácticamente nulo y los colores empleados difíciles de distinguir. • Ping P o n g , de Imagine, es un programa excelente, cuidado al máximo. Es además la única simulación para ordenador de un partido de tenis de mesa. Un sonido espectacular acompaña a un movimiento preciso y rápido, a

la vez que presenta un sistema de controles muy práctico aunque difícil de asimilar al principio. Acabamos este capítulo con el S q u a s h de N e w Generaron, programa que pasó verdaderamente desapercibido en su momento pese a la novedad de ser el primer simulador de dicho deporte. Sorprende al jugador con una pantalla demasiado pequeña y unos gráficos esquematizados y simples, pero pasando por alto estos detalles visuales el programa puede ofrecer unas moderadas dosis de diversión por lo rápido y frenético de su desarrollo.

ATLETISMO Los juegos sobre pruebas atléticas, también conocidos como juegos de olimpiadas, son sin duda el estereotipo del género que los engloba y los que más diversión y buenos recuerdos ofrecen al aficionado. Los juegos de este tipo han sido causantes de muchos teclados machacados y dedos entumecidos en el noble arte de golpear sin descanso las teclas de nuestro querido Spectrum (las tan famosas teclas de goma tenían que tener alguna ventaja), y han sido muchas las tardes transcurridas en largas series de competiciones buscando mejorar la marca personal o aguantar un mayor número de fases. •

D e c a t h l o n de O c e a n

fue el detonante de lo que sería una larga serie de programas basados en diferentes pruebas atléticas. Las novedades que introdujo fueron muchas, desde el entonces revolucionario sistema de carga turbo hasta presentar las diez pruebas del decathlon divididas en dos partes que habían de ser cargadas individualmente. Con la colaboración del plusmarquista mundial de decathlon, el inglés Daley Thompson, el p r o g r a m a ofrece las pruebas que conforman dicha especialidad: 100 metros lisos, salto de longitud, lanzamiento de peso, salto de altura, 400 metros, 110 metros vallas, pértiga, jabalina, martillo y 1.500 metros. Los primeros

ciclos son verdaderamente fáciles, pero las marcas exigidas aumentan cada fase hasta exigir registros imposibles. El gráfico del jugador deja algo que desear y el perfecto movimiento se contrarresta con una excesiva lentitud. Pero el mejor ¡uego de olimpiadas'es sin duda H y persports. Versión, al igual que el Decathlon, de una máquina recreativa diseñada previamente por Konami. Se dice que Hypersports constituyó en su día un récord de originales vendidos en nuestro país, un país en el que las ventas de originales suponían un porcentaje mínimo sobre el total. El p r o g r a m a abarca en un solo bloque seis pruebas: na

tación, tiro al plato, tiro al arco, salto de potro, triple salto y halterofilia. Una sola vida y marcas altas desde el primer momento, excelentes gráficos y colorido y un movimiento preciso y rápido le convirtieron en un merecido éxito que indirectamente, hizo muy difícil mejorar la calidad exhibida lo que condujo en cierta manera a la decadencia de este tipo de juegos. Algo posterior al Hypersports, de Imagine, y continuación directa de la línea marcada por Decathlon, el Supertest, de Ocean, vuelve a utilizar la imagen de Daley Thompson para realizar un programa notablemente más ambicioso, en el ue se corrigen algunos an-


EL DEPORTE • n EN EL SPECTRUM 1 7

pruebas originales y divertidas, pero con una diferencia demasiado acusada de dificultades lo que hace que la adicción fluctúe a lo largo de la partida. Detalles graciosos y una estupenda puesta en escena le convierten en un excelente programa. N o podemos dejar de mencionar al V i d e o l i m p i c , de Dinamic, aunque sólo sea como reconocimiento al primer programa deportivo que se hizo en nuestro país. Notablemente inferior a los juegos ya comentados, incluye los 100 metros lisos, longitud, jabalina, martillo, 110 vallas y natación. A destacar el rápido movimiento conseguido mediante el scroll por caracteres en vez de por pixels y los simpáticos rótulos publicitarios, en los que MICROHOBBY tuvo su hueco, pero la parte intrínseca del juego referida a regular velocidades o ángulos de tiro ofrece escasas posibilidades. Un detalle más en un programa car-

tiguos errores para realizar un p r o g r a m a impecable. Dos partes diferentes nos presentan tiro con pistola, carrera sobre bicicleta, salto de trampolín, slalom gigante, carrera de piraguas, lanzamiento de penalties, salto de esquí y prueba de cuerda. Como podéis ver

g a d o de ellos: con el título de Videolimpics y editado por Mastertronic, dentro de su línea de dos libras, este juego ha conseguido ser muy recientemente número uno en Inglaterra, lo cual no deja de ser anecdótico teniendo en cuenta que se trata de uno de los peores juegos de la compañía española. • Sports hero, de Melbourne house, salió al mercado en plena fiebre de juegos de olimpiadas y no tuvo una acogida demasiado favorable en nuestro país, al resultar bastante inferior a programas similares introduciendo mínimas diferencias como ambientar cada fase en escenarios diferentes (la calle, la universidad y el estadio). Parece confirmarse la aparición de la versión para Spectrum del Summer Gomes (juegos de verano) de la casa Epyx, avalado por su extraordinario éxito en la ya lejana versión para Commodore.

JUEGOS DE LUCHA al l > s x l y i c : l ' ' 5 t ¡ e ¡ j o e e

n_

e

N

c

a

o

b

-

e ó

z g

o

z n

d a

r

n

c -

i

e

m l

e

R

e

a n e

a

e

o e

s

j m l -

t

o

g n

e g t r

o

o

. s e e

t n

a n

s o

s o

y m

i

a

s

e a

b g

r

o u

e -

e e

c

l

L -

l

t n

a

a l I -

o d

i

d

n

c

u

e a

m e n

s

i

a

, s d

i o

N o es preciso romperse la cabeza para explicar la razón del tremendo éxito de de lucha, los pros gramas deportivos que se han venido produproduciendo ininterrumpidaininterrumpidao mente hasta nuestros días. días, Reconocer componente r el componente de violencia que contiene contiene nuestra cultura es un hecho al que no nos podemos mantener ajenos. Los primeros pinitos en los juegos de lucha vienen de la mano de las artes marciales. Uno de los primeros juegos que me viene a la mente es el K u n g - f u , de Bugbyte, ambientado en un o gimnasio oriental en el s orondos luchadores luchadores cuerpo a cuerpo

contando con un aceptable número de movimientos posibles, si bien todo el conjunto del p r o g r a m a quedaba ensombrecido ante la lentitud de los movimientos, Dinamic demuestra estar «al loro» en la recién estrenada disciplina y crea lo que sería el primer simulador de boxeo al que denominaría, por supuesto, Rocky. El p r o g r a m a tuvo cierto éxito en su momento y posee unos gráficos asombrosos, de gran tamaño y detalle, pero para el usuario actual pierde validez pues los luchadores se mantienen estáticos, limitándose a golpear o defenderse con uno o ambos puños. Además, el juego resultaba demasiado fá-


2 0 -Upé* 4** cil, era suficiente un par de horas de práctica p a r a alzarse con el título de campeón mundial. Sin e m b a r g o , el mercado del software se ve completamente revolucionado con lo que acabaría convirtiéndose en el mejor simulador de lucha de su época, y para algunos el mejor programa de sus características de todos los tiempos. Nos referimos, por supuesto, al extraordinario The w a y o f t h e e x p l o d i n g fist, la o b r a maestra de Melbourne House. Los adjetivos son pocos p a r a hacer honor a las virtudes de un p r o g r a m a en el que los gráficos, sonido, rapidez de movimientos, instantánea respuesta del teclado, dificultad media y variedad de golpes le convierten en un juego que, como el tiempo nos ha demostrado, ha sido muy difícil de mejorar. Tal vez el único juego que ha alcanzado su categoría haya sido The w a y o f t h e t i g e r , de Gremlin graphics, nacido bajo

estela del anterior p e r o inc o r p o r a n d o g r a n cantidad de detalles en el d e c o r a d o , v a r i e d a d de enemigos, tres diferentes combates a carg a r de la cinta y un revolucionario sistema de triple scroll, en el que la pantalla se divide en bandas laterales que se desplazan a diferentes velocidades, consiguiéndose una g r a n sensación de realismo. Encontramos a continuación p r o g r a m a s que no a p o r t a n demasiado, frente a los títulos ya citados. Int e r n a t i o n a l k a r a t e , de System 3, es un nuevo simulador de lucha muy en la línea del Exploding fist que introduce como novedades

voz digitalizada y varios escenarios correspondientes a diferentes partes del mund o , que el jugador recorre a medida que vence adversarios, apareciendo por vez primera un esbozo de argumento frente a la mera mecánica de los combates. F r a n k B r u n o ' s b o x i n g , simulador de boxeo, se muestra muy inferior al Rocky en cuanto a gráficos, pero en él, el b o x e a d o r se mueve con cierta libertad por el ring y se permite una mayor v a r i e d a d de golpes. Por desgracia, el mundo de los simuladores de lucha se encuentra mucho más repleto de medianías que otros campos del software d e p o r t i v o . Bajo nuestros atónitos ojos hemos contemp l a d o engendros como el Kun-fu master, el Rock'n wrestle o el Ninja master. El primero, el mayor patinazo

jamás realizado por Melb o u r n e House, presenta gráficos a base de pixels dobles y unos movimientos que d a n pena de los malos que son, mientras que el juga-

d o r lucha en vano por conseguir que su luchador responda a sus movimientos. El segundo, una de las acostumbradas castañas con las que nos suele obsequiar US G o l d , asombra al personal por un machaque de atributos y unos gráficos malos con avaricia y se entronca en los incontables juegos «chico valiente rescata a chica raptada». El tercero, bajo el sello de la serie plata de Firebird, se encuentra en la línea de los más clásicos juegos de olimpiadas, sustituyendo los eventos olímpicos por pruebas más orientales y exóticas, como romper bloques a base de golpes de karate o interceptar shurikens. El juego crea cierta adicción pero los gráficos del personaje y decorados lo echan todo a perder (curiosidad: se cuelga si está conectado el Interface I). Es una lástima que los dos primeros hayan salido tan mal parados frente a las excelentes versiones para otros ordenadores. Hay otros muchos títulos de calidad con grandes simlitudes con los ya comentados, como pueden ser Sai combat (Mirrorsoft), Yie ar kung-fu (Imagine) o Shaolin's r o a d (The edge). Hemos excluido de nuestro estudio aquellos programas que, teniendo como elemento primordial la lucha, añaden a la acción objetivos a conseguir o elementos de videoaventura, aunque la mayoría de las veces nos limitemos a rescatar a la princesa de turno. En este grupo la lista sería interminable; por citar a algunos nombremos Fighting w a r r i o r y Fist 2 (Melbourne house), Yie ar kung-fu 2 (Imagine), Ninja (Mastertronic) y el mismísimo Barbarían (Palace), uno de los mayores éxitos de la actualidad.


EL DEPORTE•n EN EL SPECTRUM 17

21

Dicen que el fútbol es el deporte rey, lo que no estoy dispuesto a admitir es que digan que es el rey de los deportes. Fenómeno social que casi nadie se ha molestado en estudiar con la atención necesaria, se convierte en eficaz medio de apaciguar a las masas y evitar que recuerden sus propios y más importantes problemas. El primer intento serio de hacer un p r o g r a m a de fútbol para Spectrum viene de la mano del W o r l d c u p , de Artic. Como en todos los programas que irán surgiendo tras él, el campo no cabe en la pantalla, por lo que ésta va scrollando lateralmente. Esta versión no dispone de la posibilidad de mover a los porteros, resulta bastante lenta y carece del realismo necesario, pero hay que reconocer su validez p a r a la época en que surgió y detalles interesantes como que el juego simula un torneo de copa del mundo (de ahí su nombre), en el que pueden jugar varios jugadores escogiendo cada uno un país o un sólo jugador permitiendo que el ordenador elija aleatoriamente los países hasta llegar a la final. El primer p r o g r a m a de fútbol de indiscutible calid a d es el ya mítico M a t c h D a y , de O c e a n , que supuso en su momento un verdadero exitazo por sus excelentes características. Un exhaustivo menú ofrece la posibilidad de cambiar todo lo cambiable, desde el color del campo o jugadores hasta los nombres de los equipos, la duración de los partidos, los controles a utilizar y el sistema de juego, que permite la elaboración de una liguilla en la que pueden competir hasta ocho ju-

gadores (imaginad una tarde entera m o n t a n d o una liga cómodamente en casa con tus amigos). En el pía

no meramente técnico, el p r o g r a m a se revela un pelín lento, p e r o es inevitable d a d o el g r a n número de sprites en pantalla. Movimientos muy racionales, excelente sensación de tridimensionalidad, el bote y la sombra del balón y la posibilidad de mover el p o r t e r o le convierten en un p r o g r a ma completo y fácil de manejar a pesar de las innumerables opciones que presenta. De los mismos autores y para demostrar que todo es mejorable ha aparecido, hace relativamente poco tiempo, el Super soccer de la mano de la misma casa de software. Las innovaciones afectan al reconocilin, es un curioso «simulador miento del jugador que esde portero» con el que puetá siendo controlado, el cual des intentar d a r la vuelta a lleva una visible coronilla en la histórica final del Camvez de distinto color como peonato del mundo Argenen el p r o g r a m a anterior, y tina-Inglaterra. Permite esa la inclusión de marcadocoger entre tres niveles (prácres que indican velocidad, tica, competición y mejora) energía y fuerza de los juy la posibilidad de modificar gadores, a la vez que inclula habilidad de tus oponenye la posibilidad de lanzates. Si escoges la opción de miento de faltas, corners y dos jugadores podrás optar penalties. Los gráficos son entre actuar de portero o de similares y se respetan y atacante. mantienen todas las posibiHemos dejado p a r a el filidades anteriores, p o r lo nal lo que es, sin d u d a , el que el conjunto queda senmayor timo jamás visto en la siblemente mejorado a la historia del software. Lo vez que se garantiza la fácriatura, lo habréis imagicil adaptación de los adictos nado, se llama W o r l d c u p al M a t c h Day. c a r n i v a l , y el p a d r e de la • Peter Shilton's h a n d - criatura, claro está, no pueb a l l M a r a d o n a , de G r e m de ser otro sino U.S. G o l d .

Lo irritante del caso no es que el p r o g r a m a fuera malo y caro p a r a los tiempos que corrían sino que se eng a ñ ó vilmente a los pardillos que lo c o m p r a r o n , cogiendo el ya comentado W o r l d cup, cambiando los mensajes de pantalla, incluyendo tres pruebas sosas y aburridas, colocando cuatro pegatinas y un póster, y vendiéndolo como juego oficial del campeonato del mundo. El p r o g r a m a se vendió mucho, lo que demuestra que es bastante fácil e n g a ñ a r a la gente, sobre todo, cuando está desi n f o r m a d a . Un escándalo que esperemos que no se repita por bien de la credibilidad del software.


22 BEISBOL El baseball, deporte que en España cuenta con una difusión prácticamente nula, es, sin embargo, uno de los grandes espectáculos deportivos de los Estados Unidos, país en el que se le puede considerar casi el deporte nacional. Juego de equipo en el que las individualidades tienen mucha mayor importancia que en cualquier otra disciplina, el baseball combina la fuerza, la habilidad y la rapidez en la carrera todo ello aderezado con una importante dosis de violencia. Los juegos de baseball para Spectrum han contribuido, por lo menos, a conseguir que los aficionados españoles tomaran contacto con él y conocieran sus técnicas y reglas. El p r o g r a m a más conocido de esta especialidad es, sin duda, el ya antiguo W o r l d series b a s e b a l l , uno de los primeros lanzamientos de Imagine tras su

integración en Ocean. Aparecido en plena fiebre de los juegos deportivos el programa se convirtió en una gran éxito de ventas. La pantalla muestra el campo desde una perspectiva frontal. Una gran pantalla amplía la figura del bateador y muestra diversos mensajes referidos al transcurso técnico del partido y hasta mensajes publicitarios. El j u g a d o r puede controlar la fuerza e inclinación de la pelota, así como al corredor en determinadas circunstancias. Programa adictivo y simpático, de fácil comprensión y control, tiene su único fallo en unos gráficos de jugadores y majorettes pequeños y simples, pero que se suplen con la gran diversión que aporta. Por lo demás, el ¡uego es totalmente real y se ajusta perfectamente a las reglas del deporte.

uno de los mejores programas jamás lanzados para Commodore. Las novedades aparecidas son muchas pues la filosofía del programa se aparta bastante del W o r l d series. Mientras que en éste teníamos siempre una visión total y panorámica del estadio, en esta ocasión la pantalla recoge con mayor detalle la escena en la que transcurre la acción, ya sea el bateador o los corredores. El resultado es una excelente representación gráfica gracias al exquisito uso del color y el gran tamaño de los sprites, pero tales derroches artísticos provocan una excesiva lentitud de movimientos que, en un programa de estas características, impide al jugador meterse de lleno en la tensión del partido. Un p r o g r a m a completamente diferente al anterior que seguro que a g r a d a r á a mu-

Bastante más reciente es el H a r d b a l l , de Accolade, versión para Spectrum de

O t r o deporte con escasa popularidad en nuestro país y sin duda uno de los más violentos y duros. Mantiene la curiosa mezcla de estrategia y rudeza física, siendo el deporte grupal con mayor índice de accidentes y daños físicos entre sus practicantes. Se ¡uego con un curioso balón ovalado en un campo perfectamente señalizado y tiene la también curiosa particularidad de ser el deporte en el que más tiempo se mantiene el balón p a r a d o en posesión del árbitro a raíz de las diversas infracciones que cometan los equipos. La representación de este deporte para Spectrum es

casi nulo y de escasa calidad, teniendo su primer exponente en el A m e r i c a n f o o t b a l l , de Mind games, un curioso programa de gráficos terriblemente esquematizados representados desde una vista aérea vertical. El campo aparece señalizado como en la realidad y los jugadores son puntitos alocados que corretean por un césped rojo (curioso, ¿verdad?), de modo que el interés del programa se centra en su componente estratégico. Otro programa que pasó sin pena ni gloria fue el I n t e r n a t i o n a l r u g b y , de Artic, programado y diseñado de una manera prácticamente idéntica


EL DEPORTE•n EN EL SPECTRUM

al W o r l d cup, lo que, evidentemente, no dice mucho en su favor. El juego demuestra haber sido realizado con buena intención y puede llegar a ser divertido, pero los jugadores tienen un

17

movimiento demasiado brusco y se producen constantes mezclas de colores que impiden la correcta visualización de los jugadores.

BALONCESTO El baloncesto ha protagonizado una de las más vertiginosas escaladas de popularidad de los últimos años. Si bien el prestigio de dicho deporte en España arranca desde muy atrás, las últimas temporadas y los cambios introducidos en el sistema de juego han hecho del deporte de la canasta el segundo en aceptación en nuestro país, detrás del inevitable fútbol. Debo confesar mi particular preferencia por un deporte que, personalmente, considero uno de los más completos y apasionantes que existen, un juego en el que el tiempo se apuro hasta el último segundo, en el que las acciones de ataque y defensa se suceden rápidas y trepidantes, en el que a veces no se sabe el ganador del partido hasta sus últimos instantes. El baloncesto es movilidad y espectáculo, carrera contra reloj en el que la cohesión del equipo se muestra imprescindible como en ningún otro, donde cualquier brote de violencia se ataja desde el primer momento. Los primeros pasos del Spectrum por los aros no pudieron ser más desastrosos. O n e o n one, de Airolasoft, es uno de esos programas que nunca debieron ser realizados. Comercializado a un precio abusivo, con la engañosa presencia en la carátula de Julius Erving y Larry Bird, el programa se convierte en una pésima versión del original del Commodore donde todo, absolutamente todo, es ne-

gativo, desde el p a r p a d e o de los sprites y la sobreimpresión sobre el fondo hasta la lentitud de movimientos, la escasamente lograda perspectiva y la extrema facilidad del juego que no ofrece ningún motivo de superación al jugador. Su único punto reseñable es haber sido el primer programa basado en la modalidad del «uno contra uno», que más tarde será retomada con resultados radicalmente distintos. • W o r l d series b a s k e t b a l l , de Imagine, es si no recordamos mal el único simulador de baloncesto que ofrece el control sobre un

equipo completo de cinco jugadores. Muy adictivo por la rapidez y dificultad que entraña, el juego ofrece un cómodo sistema en el que el jugador controlado por nosotros se muestra de diferente color, permitiéndose todo tipo de pases entre los jugadores del equipo y controlar fácilmente la dirección de la pelota. Permite cambiar el color del campo, el nivel de dificultad y la duración de los partidos, pero semejante rapidez se paga con una pantalla algo fría e impersonal. Un excelente juego que engancha desde el primer momento y no ha perdido validez pese al lar-

go tiempo transcurrido desde su realización. • T w o on t w o , de Activision, es un p r o g r a m a que por sus innovaciones no puede ser fácilmente ignorado por los usuarios. Curiosa simulación en la que cada equipo controla dos jugadores, ofrece la posibilidad de elegir la estrategia a desarrollar en cada jugada, de modo que el segundo integrante del equipo realice sus movimientos y mareajes de una forma determinada. Incorpora una completísima biblioteca de infracciones y el campo ofrece una interesante y a m p l i a perspectiva. Por


vociferante, los aros, la cancha, los jugadores diseñados al máximo detalle (el jugador controlado por el ordenador se parece a Fernando Martín) y los perfectos movimientos se complementan con virguerías tales como ocho tipos de mate, tiros de 6,25, personales, tiros libres (todos se sancionan como uno más uno), rebotes, tapones, repetición ampliada y en cámara lenta de todas las acciones de mate y estadísticas detalladas. Un programa llamado a ser un verdadero éxito que cuenta con una velocid a d francamente notable teniendo en cuenta la riqueza gráfica y el tamaño de los jugadores en pantalla.

desgracia, los aspectos gráficos parecen haber sido relegados a un segundo término en función de la rapidez de movimientos, por lo que los diseños de jugadores, público y escenario dejan bastante que desear. La estrella de los programas de baloncesto es, sin duda, el recién lanzado Fernando M a r t í n basket master, programa de larga y doloroso gestación que ha llegado por fin a nuestras pantallas, tras largas dificultades que retrasaron su lanzamiento, previsto en un principio para las pasadas navidades. Sobre la filosofía del «uno contra uno», el programa es perfecto en todos los sentidos. El público

VOLEYBALL Solamente un p r o g r a m a de este género ha llegado a nuestros monitores. Estamos hablando del B u m p , set, s p i k e ! de la casa inglesa Mastertronic, los creadores del software barato. Pese al reducido precio del programa (dos libras en Inglaterra, 700 pesetas en España), el juego tiene una calidad ra-

zonable amparada en su indiscutible originalidad. Dos jugadores por equipo, mucho más fáciles de manejar que cinco, disputan la victoria en un estadio en estudiada perspectiva isométrica. Gráficos muy simples dan paso a un movimiento ágil y una cuidada sensación de tridimensionalidad.

BOLOS Aunque sea únicamente por curiosidad no podemos dejar de comentar el 1 0 t h f r a m e , de U.S. Gold, que pasará a la historia del software como el único, hasta el momento, simulador de un partido de bolos. Cuesta acostumbrarse a la combinación de colores utilizada, pero hay que reconocer la fidelidad y variedad de las opciones dis-

ponibles, desde las ya imprescindibles para escoger nivel de juego hasta la posibilidad de combinar hasta ocho jugadores y escoger entre l i g a o partidas sueltas. Habrá que medir al milímetro la fuerza y dirección de la bola en los niveles altos para demostrar que el juego no es tan fácil como pueda parecer a primera vista.

El golf fue curiosamente el deporte sobre el que aparecieron más versiones en los primeros meses tros el lanzamiento del Spectrum, la mayoría impresentables e invendibles teniendo en cuenta el nivel de calidad que hoy por hoy exigen los compradores de software. Nos centraremos, pues, en

cuatro programas de relativamente reciente aparición en los que, por fin, se ha conseguido una simulación razonablemente precisa teniendo en cuenta la alta sofisticación que exige este deporte. • K o n a m i ' s g o l f , de Imagine, no destaca en el aspecto gráfico, tanto en el


EL DEPORTE • EN EL SPECTRUM 17

diseño del personaje y el decorado, como en la sensación de perspectiva. Permite escoger entre uno o dos jugadores teniendo en cuenta que ambas posibilidades difieren notablemente, pues con la opción de un jugador nos limitaremos a intentar cubrir decorosamente los nueve hoyos de los que consta el juego (y no 18 como en la realidad), mientras que con la opción de dos jugadores ganará el primero que logre completar cinco hoyos. Como en todos los simuladores de golf existe la imprescindible posibilidad de escoger palo y regular la fuerza y dirección del golpe. • H o l e ¡11 one, de Mastertronic, te reta a conseguir, como dice su título, un hoyo en un solo golpe. Una vez más el precio no implica calidad, por lo que los que decidan escoger este juego no se verán en absoluto defraudados. Las diferencias con el programa anteriormente comentado radican en la inclusión de marcadores que indican la velocidad del viento y la inclinación del green, a la vez que se mejora notablemen-

te el paisaje y la sensación de realidad derivada de la perspectiva utilizada, que se hace muy cómoda y natural. • Nick Faldo p i a y s t h e o p e n g o l f (¡vaya nombrecito!) es el más antiguo de los cuatro juegos comentados, surgiendo en una época donde la utilización de ¡conos y cursores estaba muy de moda. Inmerso en esta corriente, el prog r a m a facilita extraordinariamente la selección y regulación de todos los elementos variables del juego mediante el cómodo empleo de cinco teclas o un joystick para mover la típica flechita y seleccionar las opciones deseadas. Un colorido muy estudiado y una cuidada presentación acompañan a un programa que destaca por la facilidad de su manejo, por lo que atrae rápidamente al usuario, desanimado por la intrínseca complejidad de este deporte. Un simpático caddie nos entrega los palos y nos pregunta si estamos seguros, si la elección no le parece acertada. De todos modos el p r o g r a m a falla en lo más esencial co-

n

mo puede ser el g r a d o de control y respuesta a los controles o presentación visual del campo, por lo que una vez dominado queda muy por debajo del resto de los programas de este grupo. El mejor p r o g r a m a de golf es, sin duda, el L e a d e r b o a r d , de U.S. Gold, juego que combina lo mejor de experiencias anteriores para crear una perfecta simulación en la que no falta detalle alguno. Permite escoger nivel de dificultad, número de jugadores y número de hoyos, realiza la selección de movimiento mediante un cómodo sistema de cursores y se acerca extraordinariamente a la realidad al conseguir que cada hoyo tenga unas características definidas de longitud y relieve que hace el recorrido interesante y variado en todo momento. La sensación de perspectiva, aunque mejorable, es la mejor de todos los juegos hasta ahora indicados y solamente podemos achacarle la lentitud en el cambio de pantalla al elaborar los nuevos escenarios con la técnica del fill.

SIMULADORES DE MOTOS La pasión de la velocidad ha sido una constante en el desarrollo del hombre, el cual, condenado a la lentitud de sus movimientos, ha ideado máquinas cada vez más veloces que le permitan sentir el aire enloquecido sobre la cara y ver el paisaje desvanecerse ante sus ojos. Con una peligrosidad que supera con creces otro tipo de actividades, el conductor de coches o motos ue se juega la vida en caa carrera, arriesga su integridad por una afición que, según parece, va más allá

""""»»»»)))))))))) 3

de todo lo que los que vamos a pie podemos imaginar. Muchos y muy buenos simuladores de motos han pasado por nuestras pantallas. El ya mítico 3 D D e a t h chase era un juego para 16 K (¡qué tiempos aquellos!) en el que nuestra moto se deslizaba evitando chocar contra los árboles en una frenética carrera en persecución de unos fugitivos. J u m p c h a l l e n g e era un extraño p r o g r a m a en el que, bien en bicicleta, bien en moto, según el nivel, debía-


2 6

t

^

mos limitarnos a tomar impulso por una rampa para saltar sobre una larga hilera de coches inmóviles. El famoso Full t h r o t t l e es la primera simulación en toda regla de una carrera de motos. Permite escoger el número de vueltas y el circuito en el que correr de entre los varios disponibles, y como en la mayoría de los programas de este tipo salimos en última posición de un nutrido grupo para intentar ir adelantando corredores y acabar la carrera en una posición más digna. Gráficos simples y una inexplicable utilización del color le hacían un programa por encima de la media para los tiempos que corrían, pero inferior a otros simuladores que han ido apareciendo posteriormente. • Speed K i n g 2 y B M X S i m u l a t o r son juegos aceptables que no aportan nada nuevo sobre p r o g r a m a s más potentes a la vez que demuestran haber sido realizados sin excesivas pretensiones, si bien el Speed King 2 de Mastertronic incluye la curiosa posibilidad de controlar a dos jugadores simultáneos d i v i d i e n d o la pantalla en dos partes que enfocan a cada uno de los jugadores, desapareciendo el gran g r u p o de pilotos y quedando reducida la carrera a un interesante mano a mano entre ambos. • TT Racer de Digital int e g r a r o n coloca el listón en una altura considerable, pues refleja como ninguno la sensación que se vive sentados sobre la máquina a esas increíbles velocidades, sensación muy diferente a la que se siente desde las tribunas. De ahí vienen esos extraordinarios efectos de inclinación cuando tomamos una curva o estamos a punto de derrapar. Por lo demás el p r o g r a m a permite escoger entre una amplia

f

^

^

gama de cilindradas y circuitos, a la vez que nos obliga a estar pendiente a lo largo de la carrera de los imprescindibles elementos mecánicos tales como velocidad, frenos, combustible y hasta el desgaste de las ruedas. Todos los halagos posibles, sin embargo, los hemos reservado para un prog r a m a de excepcionales cualidades que ha dejado asombrados a todos los que no hemos podido evitar la tentación de c a r g a r l o y c o m p r o b a r que, efectiva-

mente, todo lo que se había hablado sobre él era cierto. Enduro racer, de Activision, figura por derecho propio no solamente entre los mejores simuladores de motos sino entre los mejores programas de todos los tiempos para Spectrum. Todo comentario no hace honor a un p r o g r a m a increíblemente real en el que los excelentes gráficos y la vertiginosa velocidad alcanzada se unen a efectos de inclinación lateral y frontal excepcionalmente reales.

• Bandera a cuadros, de Psion, fue el primer simulador de una carrera de Fórmula 1 y consiguió alcanzar un merecido éxito por su indiscutible calidad en una época donde la mayoría de los juegos para Spectrum eran auténticas medianías. Tras escoger un circuito entre los diez disponibles y un coche entre los modelos existentes, la carrera en sí ofrece una correcta sensación de realidad en el movimiento de acercamiento del horizonte y los efectos de vibraciones cuando nuestro coche pincha o atraviesa una zona de piedras, aceite o cristales, lo unido a la

cilidad de manejo y a la correcta disposición de la pantalla lo convierten en un juego agradable y adictivo. • Pole p o s i t i o n , versión

Por si fuera poco, el juego además de bueno es divertido, pues a lo largo de la carrera encontraremos multitud de obstáculos en forma de piedras y hoyos en el camino que, unidos a la inevitable dificultad que supone esquivar al resto de motoristas, hacen que la tensión no disminuya ni un solo instante en nuestra alocada carrera hacia la meta. La posibilidad de realizar hábiles esquives y espectaculares cabriolas ratifican que Enduro racer es, simplemente, un juegazo.

SIMULADORES DE COCHES de un juego que hizo furor en las máquinas de los bares, surgió como un proyecto bastante ambicioso en el que, sinceramente, todo se quedó en la buena intención. Sorprendente en el rico colorido empleado para la pista y el bólido, el movimiento se revelo brusco, pues hace que el paisaje se acerque a saltos, a la vez que el efecto de explosión cuando nuestro coche choca carece de realismo y las maniobras a realizar se efectúan lentamente y con escasa respuesta de los controles. Un juego que ofrecerá limitada diversión a los menos exigentes en un campo donde, a di-

ferencia de otros, no hay una superestrella que podamos recomendar sin temor a equivocarnos.


EL DEPORTE•n EN EL SPECTRUM

17

CABALLOS

Dos curiosos programas con los caballos como protagonistas se han asomado al mercado del software con

claramente diferentes. G r a n d N a t i o n a l , de Elite, se acerca en cierta medida a los juegos de olimpiadas

S a i l i n g , de Activision, es un curioso p r o g r a m a que mezcla sabiamente la habilidad con la estrategia, pues nos permite no solamente escoger el país al que queremos representar sino también las característicos de nuestro balandro tales como la longitud del mástil, la superficie de las velas, el material empleado, el espacio libre en cubierta o la longitud del casco. La perspectiva y el desarrollo de la regata en sí son aspectos muy bien conseguidos, por lo que una vez superada la sorpresa inicial Sailing puede convertirse en un ¡uego muy adictivo que tardará quizá tiempo en aburrirnos.

ge mover a nuestro caballo a base de frenéticos movimientos de dedos, pero incluye una parte de estrategia y suerte al permitir realizar apuestas a cualquiera de los cuarenta caballos participantes, que puede ser el nuestro o no, después de observar la relación de favoritos. El desarrollo de la carrera se asemeja a la realidad, mostrando la pista desde una vista vertical a la vez que una pequeña ventana enfoca a nuestro caballo lateralmente y nos permite calcular adecuadamente el salto. El p r o g r a m a se hace relativamente fácil de dominar a los pocos intentos, por lo que es posible que acabe pronto en el fondo

de un cajón, pero antes de hacerlo seguro que consigue divertir a quien lo practique, pues es realmente adictivo y original. S h o w j u m p i n g , de Alligata, se traslada al mundo de los concursos de saltos donde un elegante jinete acompaña a su cabalgadura en un recorrido p l a g a d o de obstáculos a través de varios circuitos de creciente nivel de dificultad. Nos exigirá gran habilidad a la hora de dar velocidad a nuestro caballo o calcular el salto y la dirección adecuada, pues la dificultad en este caso es sumamente elevada. Contiene toda la reglamentación de este tipo de pruebas (tiempo, número de rehuses), pero los gráficos son notablemente más simples que en el ¡uego anterior. De todos modos son programas lo suficientemente distintos como para hacer difícil cualquier comparación entre ellos.


28

Es una verdadera lástima que el único p r o g r a m a sobre tan interesante disciplina sea tan malo de solemnidad. Un deporte bastante adecuado p a r a ser trasl a d a d o al o r d e n a d o r no ha conseguido ser presentado con la calidad que se hubiera merecido. U c h i m a t a , de Martech, es un verdadero bodrio impresentable por su total ausencia de calidad. Si bien la intención parece haber sido buena y se han incorporado todas las llaves

Terminamos este exhaustivo comentario con tres programas de difícil clasificación que, con una estructura muy similar a los juegos de olimpiadas contienen pruebas de lo más variopinto y original. • W i n t e r s p o r t s , de Electric dreams, contiene ocho pruebas íntimamente relacionadas con la nieve, de desigual realización gráfica y adicción, por lo que pese al g r a n interés que pueden despertar pruebas tan interesantes y originales, observamos que la emoción varía demasiado de unas a otras. En cualquier caso, se trata de un programa recomendable por lo novedoso y divertido de su desarrollo, enganchando rápidamente a los furibundos machacadores de teclados. En plan informativo, señalaremos que las ocho pruebas son descenso, slalom, slalom gigante, hockey sobre hielo, salto de esauí, patinaje de velocidad, bobsled y biathlon. • W i n t e r g a m e s , de Epyx, tiene un planteamiento prácticamente idéntico al programa de Electric dreams,

más importantes, así como un á r b i t r o y marcadores de la fuerza de ambos contendientes, lo primero que entra p o r los ojos es el increíble p a r p a d e o de los sprites, lo que unido a la extrema dificultad de conseguir que nuestro judoka obedezca a nuestras órdenes, acaban haciendo de Uchi mata un juego que no se carga dos veces, pues la primera experiencia es generalmente suficientemente frustrante.

en la URSS, salto de barriles en Alemania, salto de la Q u e b r a d a en México, slalom en Francia, equilibrio sobre troncos en Canadá, lanzamiento de troncos en Escocia, el típico rodeo de los Estados Unidos y, finalmente, lucha libre japonesa.

pero posee unas características gráficas excepcionales en el diseño y colorido de los paisajes escenarios, consiguiendo algunas de las más hermosas pantallas jamás vistas en un Spectrum. Además, la vistosidad, velocidad y adicción de las diferentes pruebas se mantiene con una calidad bastante más alta y uniforme a lo largo de las mismas, por lo que no dudamos en recomendaros este juego integrado por pruebas de salto de esquí, esquí acrobático, patinaje de velocidad, patinaje artístico, bobsled, biathlon y patinaje libre. • W o r l d g a m e s , de Epyx, es un p r o g r a m a de

reciente aparición versión del original, algo más antiguo, p a r a C o m m o d o r e . Frente a un planteamiento en la más pura línea de los juegos de olimpiadas, W o r l d games supone la interesante variación de haber sustituido las pruebas atléticas por eventos de lo más original, cada uno de ellos típicos de un país diferente del mundo. Al igual que el Winter games, permite escoger las pruebas en las que deseamos participar y mantiene una interesante línea de calidad en su diseño gráfico, lo que siempre es de agradecer en una p r o g r a ma que contiene ocho desafíos: levantamiento de pesas


que no digan que no das ni golpe Goody

tiene un buen plan, pero los grandes planes nunca sencillos, por eso necesita un buen socio como tú, experimentado y audaz. Esta es tu oportunidad para dar el golpe del Siglo: el asalto al Gran Banco.

Versión

para PC y

Compatibles

También para Amstrad, MSX, Spectrum, Spectrum + 3 y

S O / c f Pza. Santa Catalina de los Donados, 3,4o Dcha. 28013 Madrid. Tel. 241 92 70 / 241 96 82

son

Commodore

Distribuidor en Cataluña Discovery Intormatic Telfs.: (93) 256 49 08 - 09

Si no lo encuentras en tu distribuidor habitual llámanos: (91) 241 92 70 • 241 96 82


30 t t f t *

Match Point

4

Rocky

Yie ar Kung-fu

Sai Combat

Kung-fu master

The way of the tiger

Ninja master

Tennis

Ping-Pong

BALONCESTO Fernando MartĂ­n

World basketball

One on One


EL DEPORTE EN EL SPECTRUM

ATLETISMO Internacional kรกrate

Decathlon

Supertest

Videolimpic Exploding fist

Shao lin's road

Uchi mata

Super Soccer

Macth day

โ ข

n

17



SYSTEM 4 de

¿ A L a u r e l . 10 M A D R I D 2 8 0 0 5

Teléf.. | 9 1 ) 2 2 7 6 7 1 7 1


34

im Todos, absolutamente todos los grandes títulos del soft, ya sean fantásticas aventuras o incorregibles arcades, protegen de las miraaas de los curiosos los secretos que los graduados del ¡oystick deben desvelar. Sólo un pequeño detalle escapa al control de los más osados programadores, nada como una buena pantalla de presentación para que las incógnitas que encierra un juego, dejen de ser tales si hacemos buen uso de nuestra imaginación.

I o vamos a ocuparnos esta vez de desvelar misterios, ni de deshaI cer entuertos galácticos. Nuestro objetivo va mucho más allá. Puestos a investigar hemos o p t a d o por rescatar a los olvidados del m u n d o del software, reuniendo a l r e d e d o r de una mesa a los artífices de este explosivo invento que se llama pantallas de presentación. Originales diseños que constituyen de por sí auténticas obras de arte, en las que se confunde la concepción clásica del dibujo con las más recientes técnicas de t r a b a j o artístico, pero ante todo, dignas de integrar las filas de cualquier Museo de Arte Cont e m p o r á n e o con previsión de futuro.

N

Introducción Estabamos dispuestos a hacer las cosas bien desde el principio, p o r eso una vez instalados, cada uno de los asistentes a nuestra improvisada mesa r e d o n d a se presentó al resto y a m o d o de introducción fue comentand o brevemente sus aportaciones al mundo del software.

p

Las presentaciones fueron por «orden de aparición» las siguientes: C a r l o s G r a n a d o s , componente de M a d e in Spain, lleva trabajando en el mundo del software desde hace cinco años. Su experiencia, al igual que la de los demás asistentes, no se limita sólo a las pantallas de presentación, sino que además se ocupa del resto de los gráficos. Dentro del tema que nos ocupa o b r a suya es la pantalla de presentación de «El Misterio del N¡lo». J u a n D e l c á n también trabaja con M a d e in Spain. Comenzó hace poco más de diez meses y además de la pantalla de presentación del popular «Sir Fred», en la versión de Spectrum, se ocupa del tema gráfico en conjunto de los programas de esta compañía y p r e p a r a la pantalla de presentación de un nuevo juego, ambientad o en una a b a d í a , que será distribuid o por O p e r a Soft. C a r l o s Díaz miembro fundador de la compañía O p e r a Soft, se encarga en ella del desarrollo de los gráficos, entre ellos Livingstone Su-

r

e

s

e

n

^

ó

n


DISEÑO GRAFICO

"De izquierda a derecha y de arriba hacia abajo: Gonzalo Suárefp Carlos Díaz, Adolfo López, Carlos Granados, Francisco Javier Mora, Adolfo Fernández, Javier Cano y Juan Delcán. Los nuevos diseñadores del software español"

3 5


36 p o n g o y el más reciente Lost Mission. G o n z a l o Suárez, más conocido como G o n z o comenzó a t r a b a j a r con O p e r a Soft hace diez meses. Realizó la pantalla de presentación de Livingstone Supongo y del proyecto mós inmediato de O p e r a S o f t G o o d y , el juego que nos plantea el ambicioso proyecto de robar nada menos que en el Banco de España. J a v i e r C a n o , p r o g r a m a d o r de Topo Soft, ha visto nacer a esta compañía y lleva en el mundo de la informática desde hace tres o cuatro años. Es ¡unto con Carlos G r a n a d o s el más veterano. Es el autor entre otros gráficos de la carátula del juego Survivor. Francisco J a v i e r M o r a forma parte del equipo de p r o g r a m a d o r e s de Dro Soft, se ocupa del aspecto gráfico de los juegos y lleva solamente dos meses y medio p r o g r a m a n d o . A d o l f o F e r n á n d e z S á n c h e z comenzó a t r a b a j a r con Dro hace aproximadamente año y medio realizando las traducciones de las versiones inglesas de los juegos. A d o l f o López es el único que no se dedica profesionalmente a la programación. Tuvo su primer contacto con el tema gráfico en el primer Concurso de Diseño Gráfico de MICROHOBBY o c u p a n d o una de las primeras posiciones con una de sus panta-

llas y lugares destacados con los demás diseños.

Una cuestión de tiempo En primer lugar, nos interesaba saber cómo t r a b a j a b a n cada uno de ellos. Los programas empleados en la confección de la pantalla y el planteamiento general de una carátula eran los temas claves. Ante esta pregunta no hubo discursión posible, toaos a f i r m a r o n realizar primero un boceto en papel que les permitiera observar la perspectiva o la situación de cada elemento y posteriormente posarlo al o r d e n a d o r , pero en torno a la utilidad de este boceto hubo sus discrepancias. Desde Juan Delcan que afirma que cuanto mejor sea el boceto, teniendo siempre en cuenta al realizarlo las características del o r d e n a d o r al que va dirigida la pantalla, mejor sale siempre la carátula, a los más ilusos como G o n z o que pese a reconocer que lo utiliza, afirma que no sirve p a r a nada pues una vez frente a la pantalla la imaginación puede jugar malas pasadas y lo que estaba claro en el papel resulta a l g o completamente diferente.

ouena pantalla de presentación predispone a jugar"

H u b o también unanimidad al afirmar que es imposible encontrar un p r o g r a m a de dibujo que se adapte perfectamente a las necesidades de cada persona además de la incomod i d a d de manejo de la mayoría de los títulos disponibles en el mercado y del intento de a b o r d a r demasiados aspectos lo que hace que no sea bueno ninguno de ellos, pero que aun así o pesar de que es mucho mejor crear un p r o g r a m a propio como el desarrollad o por Dro Soft, la compañía Melbourne House con el clásico Melbourne D r a w alcanza el mayor nivel de aceptación entre ellos aunque siempre con alguna pequeña modificación. También Juan reconoció la utilidad de A r t Studio al incluir la posibilidad de t r a b a j a r simultáneamente con varias pantallas superpuestas. El tiempo medio empleado en la realización de una pantalla de presentación fue otra de las cuestiones abordadas. Las respuestas para todos los gustos. Javier Cano nos contó que generalmente se puede tardar uno o dos días en conseguir una pantalla pero que el proceso termina dos semanas más tarde ya que se dan pequeños re-


Nintendo. Más que un videojuego, ENTRA EN ACCION Lánzate a disfrutar d e l mayor a v a n c e e n videojuegos-el Sistema d e Entretenimiento Nintendo.

1-008400

rao-0<0<2<400

2-000000

1

Juegos de gran emoción controlados por dos microchips que permiten disfrutar del sistema a dos personas simultáneamente. Deportes, acción y series programaPles. Una gran variedad de opciones de diversión en constante desarrollo. Ven a El Corte Inglés y descubre el nuevo Sistema de Entretenimiento Nintendo. Toma el mando y... entra en acción.

C Nintendo )


38 toques hasta que queda perfecta. G o n z o , por el contrario, tarda a l g o más de tres días en encontrar una idea buena p a r a la carátula y una tarde en p r e p a r a r ésta. Los componentes de M a d e in Spain aclararon que el tiempo medio puede variar según el ordenador y según el tiempo disponible, siendo más o menos de una semana entre bocetos y desarrollo total. Como nota cuirosa A d o l f o López señaló que tardó dos meses en confeccionar pixel a pixel las pantallas que envió al concurso de diseño, aunque realmente tampoco le dedicaba demasiado tiempo al día; era un entretenimiento y no una necesidad profesional. Francisco Javier también reseñó en este punto que las diferencias del papel al diseño en o r d e n a d o r son infinitas y por eso aunque la realización técnica en sí no lleva mucho tiempo sin e m b a r g o la elección de una idea adecuada para el ordenador puede suponer muchas horas de investigación.

Manos a la obra Intentando profundizar en el tema nos surge una duda, ¿qué resulta más difícil a la hora de diseñar una pantalla de presentación? Las opiniones como podéis imaginar fueron para todos los gustos. Juan nos contaba que a él lo que más difícil le resulta es encajar en la pantalla el título y el logo. Char-

lie por el contrario piensa que lo más difícil es encontrar una buena idea base, ya que esta es la clave del éxito. Sin embargo, el más categórico fue Javier quien afirmó: «Lo más difícil es que guste a todo el mundo». Javier sentó cátedra; entonces decidimos a b o r d a r otras cuestiones. Nos interesaba saber, teniendo en cuenta que todos se o c u p a b a n del tema gráfico en general, cuáles eran las diferencias entre la creación de los gráficos del interior de un p r o g r a m a y la pantalla de presentación. De sus opiniones pudimos extraer dos ¡deas a modo de resumen. Por una parte que los gráficos del interior son más trabajosos, porque implican una coherencia y el estudio de cada pantalla, conjuntando el tema estético con la animación de esos gráficos y por otro lado que la pantalla de presentación es más dibujo y hay mucha más libertad y es imprescindible tener conocimientos de dibujo, lo cual fue confirmado por todos los asistentes, ya que quien más quien menos todos tienen o han tenido algún contacto con el campo del diseño, bien con dibujos tipo comic o bien a nivel más profesional como Juan y G o n z a l o . Se c o m e n t a r o n también casos concretos de animación como el popular


DISEÑO GRAFICO

Barbarían en el que p a r a realizar la animación se estudiaron con detenimiento vídeos sobre escenas reales, aunque siempre en el o r d e n a d o r se deben exagerar, incluso caricaturizar los movimientos para conseguir una animación real, como nos aclaró Juan Delcan. Hasta aquí todos estaban de acuerdo p e r o hubo sus más y sus menos al a b o r d a r el tema de la mayor o menor libertad al hacer el diseño de la pantallo de presentación. Francisco afirmaba que el dibujo en el o r d e n a d o r es más frío que ante el papel e incluso a veces puedes tener grandes ideas pero no se pueden aplicar aunque depende de las limitaciones de cada ordenador. Juan recalcó que no puedes plantearte hacer una pantalla igual que un c u a d r o porque condicionan otros factores, aunque nunca deja de

3 9

acuerdo con Javier quien afirmó que la pantalla no tiene, como mucha gente cree, la utilidad de hacernos más a g r a d a b l e la lenta carga de cinta. Es algo p a r a a d m i r a r , para que la gente se detenga a observarlo. Incluso como G o n z o especificó que la tendencia actual se dirige a aprovechar las carátulas p a r a ir introduciendo el prog r a m a con la presentación de las teclas por ejemplo. Se resaltó también que todos los elementos de un juego deben ser buenos, por ello la calidad de una pantalla de presentación dice mucho del resto del p r o g r a m a , aunque también hay excepciones y siempre es mucho más alentador hacer una buena pantalla si estamos ante un g r a n juego. Incluso Juan sentenció: «Cuando una carátula es buena es porque lo ha hecho una

energía suficiente para comunicar algo, lo que deja el campo abierto a cualquier diseño"


40 persona que trabaja bien. N o creo que un p r o g r a m a pueda ser un buen juego si no tiene una buena pantalla de presentación. Una buena pantalla predispone a jugar». Todos estaban de acuerdo la utilid a d de la pantalla es presentar el jueg o , una puerta que nos da información a cerca del juego, debe de tener la energía suficiente p a r a comunicar algo, lo que deja el campo abierto a cualquier diseño. Por ello, como afirmó A d o l f o Fernández no hay que sacrificar la estético a la v e r d a d , deben ser fiel reflejo del juego. Javier en este momento nos aclaró que una pantalla puede ser más o menos sencilla y puede tener lo misma fuerza que una pantalla más recargada, aunque siempre en su caso se intenta a c o m o d a r la pantalla a la carátula exterior del juego. Respecto al futuro de las pantallas de presentación, puesto en duda al popularizarse la carga desde disco, nos permitió c o m p r o b a r cómo todos dejaron sentada la utilidad de las pantallas y su incredulidad ante una posible desaparición.

Pantallas que pasarán a la historia N o podía faltar en nuestra informal mesa r e d o n d a la lista de las mejores pantallas de presentación, teniendo en cuenta que estábamos con unos expertos en la materia. La unanimidad fue total: Dinamic ocupa los primeros lugares de calidad. Las razones de su efectividad fueron analizadas y ante t o d o se destacó la figura de Azpiri, el sensacional fichaje de Dinamic para el diseño de sus carátulas exteriores. Sorprendiendo cómo señaló Carlos la similitud de la pantalla con lo carátula. Dustin, A r m y Moves y Camelot W a r r i o r s fueron los diseños más mencionados. También se reseñó que Dinamic ha c u i d a d o mucho el tema gráfico y cuentan con un g r a n equipo. Charlie de M a d e in Spain resaltó la g r a n evolución en este tema, ya que comentó como los primeros juegos de Ultimóte c ó m o Atic Atac o Psst, desp e r t a r o n su a d m i r a c i ó n entonces,

siempre el tema gráfico y cuenta con un gran equipo"

mientras que ahora quedarían relegados a un justo término medio.

Una invitación La tarde había sido fructífera pasamos más de dos horas hablando. Temas como la posibilidad que brindab a n los concursos p a r a iniciarse en el mundo gráfico habían sido a b o r d a dos, también proyectamos utopías como una previsible exposición de pantallas de o r d e n a d o r pero ante todo pudimos obtener una invitación para que todos aquellos interesados en el tema se p o n g a n en contacto con las compañías españolas p a r a presentar sus pantallas y una conclusión muy clara: la importancia de las pantallas de presentación es evidente, bien concebidas como una nueva f o r m a de arte, bien como un elemento más que contribuye al éxito de un juego, permanecerán fieles en su iugar durante años como la antesala a los misterios que ocultan unos cuantos K.


DISEÑO GRAFICO

41

klSEÑO 'iNAMIC

D >

inamic ocupa por derecho propio, desde hace ya algún tiempo un destacado lugar en el panorama del software tanto nacional como internacional. Desde siempre todos sus juegos han estado marcados por un sello indiscutible, un toque personal que los identifica como algo propio y exclusivo de Dinamic. Quien haya seguido de cerca los progresos de esta popular compañía, sin duda, habrá observado que si hay una constante en todos sus títulos es, sin d u d a , el cuidado tratamiento gráfico, la continua preocupación por evolucionar. Prueba del interés de Di-

namic en este tema es que curiosamente uno de los primeros programas que aparecieron bajo este sello fue Artist, un diseñador gráfico con el que t r a b a j a r o n hasta que fue desplazado por

el p o p u l a r Melbourne Draw. N o hace falta afirmar que Dinamic es una de las compañías que más importancia na d a d o siempre a las pantallas de presentación y, aunque mucho ha llovido desde Babaliba, Saimazon y Videolimpics, la preocupación p o r el tema ha sido constante. Tras estos primeros intentos la sorpresa saltó con Profanation. O b r a de Santiago M o r a , consiguió una pantalla muy espectacular utilizando sólo dos colores; en esta ocasión se sacrificó el colorido para conseguir

una mayor resolución, pero los resultados saltan a la vista. Después llegó la saga Phantomas, también de la mano creativa de Santiago, y por a ñ a d i d u r a con el fichaje, para la carátula exterior del juego de Azpiri. A partir de este momento Dinamic fue consciente de la

importancia de un buen dibujante. Sus carátulas comenzaron a acercarse al mundo del comic. Llegó algo más tarde O l é Toro, con el correspondiente escándalo mós allá de nuestras fronteras y Camelot Warriors. El autor de las pantallas era en esta ocasión Nacho Ruiz. Pese a que la calidad de estas pantallas es indiscutible, sin duda han sido sus últimos p r o g r a m a s los que han despertado m a y o r espectación. Dustin, N o n a med y G a m e O v e r , programa que sufrió en su p r o p i a

carátula la implacable mano de la censura británica, consiguieron dejar a más de uno boquiabierto por la similitud con los dibujos exteriores. Los dos primeros fueron obra de Javier Cubedo, y en G a m e O v e r las glorias del triunfo se repartieron entre Javier y N a c h o . Tampoco podíamos olvid a r a Freddy, aunque com-

p a r a d a con otras pantalla, esta es mucho más sencilla. Javier Cubedo, inspirado en el dibujo de Ventura, otro sensacional dibujante, consigue en Freddy Hardest una pantalla de película que muestra un primer plano del protagonista. V con Phantis... llegó la revolución. La exótica protagonista de este juego parece tomar vida en las manos de Javier en'la pantalla de presentación y de Azpiri en el dibujo de la carátula.

Una pantalla perfecta que es la antesala adecuada para los miles de peligros que se esconden tras ella. Esta es a grandes rasgos la muestra clara de la evolución que ha seguido Dinamic. Si hemos llegado hasta aquí, ¿podrá Dinamic aceptar un nuevo récord y superar el listón? Esperemos que dentro de muy poco podamos c o m p r o b a r l o en un nuevo juego.


LOS VIDEO-JUEGOS SEGA PARA TU CASA SON IGUALES A LOS DE LOS SALONES RECREATIVOS .Son superdivcrtidos! Llenos de «.olor, detalle \ sonido l os \ aleo-¡negáis Sega >011 iguales .1 los que ya conoces de los Salones recreativos pero la consola se conecta a cualquier televisor o monitor que tengas en casa l a misma calidad de imagen. Resolución gráfica de 256 columnas por 192 líneas. 3 generadores de sonido con •i octavas y I white noise. 64 colores. Movimiento en pantalla: Derecha, izquierda, arriba, abajo, diagonal y parcial Caracteres 8 x 8 Pixeles. máximo 448, Sprites 8 x 8 Pixeles. máximo 256. Salida de imagen RP o RGB Cariuchos de 1048(1 Mega) y Tarjetas de 256 K. Y la consola Master System Sega tiene ROM 128 K. RAM 128 K. Al comprar la consola Sega te regalarán la tarjeta del juego HANG-ON. Al comprar la pistola como accesorio te regalarán un cartucho Sega ¡con 3 juegos!

A ^k ^ k ^^k 4 B

JUEGOS DISPONIBLES

M\ Iti-ro . 1 llOM IftlUH* SIIJH'Í IVtlIllS lljntí tul (de IIK-II"

c o n U H N >IJI

PROXIMAMENTE TARJETAS (256 K) Spv us Spy Bank Palie WÍMKIV Pop


MICRi

Para solicitar tus tapas, llรกmanos al tel. (91) 734 65 00

No necesita encuademaciรณn, gracias a u n sencillo sistema de f i j a c i รณ n que p e r m i t e a d e m รก s extraer cada revista cuantas veces sea necesario.


44

Pablo Ariza

En esta ocasión no os presentamos un único y extenso programa, sino 20 rutinas más o menos cortas que seguro os serán de gran utilidad por su sencillez de manejo y sus buenos resultaaos. Además, os mostrarán técnicas que os permitirán crear fácilmente otras rutinas adaptadas a vuestras necesidades. emos d i v i d i d o las 20 rutinas en tres grupos principales: gráficas, aritmeticoiógicas y de interrupciones. Las primeras, a su vez, las dividiremos en rutinas de b o r r a d o , rutinas de relleno y rutinas de manejo de ventanas. Casi todas las rutinas necesitan de unos parámetros para funcionar. Con el fin de hacer más fácil su uso desde el Basic, usaremos en todas una técnica gracias a la cual podremos pasar los parámetros a través de las funciones de usuario, una de la instrucciones menos usadas del Spectrum y que demuestran ser de g r a n utilidad para el intercambio de datos entre el Basic y el Código M á q u i n a . C o m o este método va a ser utilizado en casi todas las rutinas, mejor será explicarlo antes de empezar con

éstas, y lo haremos a y u d a dos de un ejemplo: Supongamos que queremos hacer una rutina que h a g a un d o b l e PEEK, es decir, que dándole una dirección de memoria, tome su contenido y el de la dirección siguiente p a r a f o r m a r un número de 16 bits. A esta rutina debemos pasarle un p a r á m e t r o : la dirección de memoria deseada y ella, a su vez, debe devolvernos otro parámetro: el valor leíd o de la dirección d a d a . Pues bien, p a r a ello teclearíamos una línea que fuera más o menos así: 1 DEF FN P(D) = USR X X es la dirección donde hemos ubicado la subrutina. Para calcular a h o r a , por ejemplo, el contenido de la dirección 23675, haríamos P R I N T F N P (23675), y obtendríamos un número comprendido entre 0 y 65535, que, en este caso, corres-

pondería a la dirección de los gráficos definidos por el usuario p o r estar en 23675 la variable del sistema U D G . Vamos a ver a h o r a qué es lo que debe hacer nuestra rutina p a r a poder leer el dato que necesita. C u a n d o el Basic se encuentra con una función FN busca su DEF FN correspondiente y almacena, en la variable del sistema DEFADD (23563), la dirección de memoria donde se encuentran los parámetros de la función. En nuestro ejemplo, almacenaría la dirección en la que se encont r a r a la «D: inmediatamente posterior al paréntesis de apertura. A u n


VEINTE RUTINAS ÚTILES

e

i 3I

que en el listado lo que hay a continuación de la D es el paréntesis de cierre, en la memoria hay seis bytes entre medias: un código 14, indicador de número y cinco bytes que almacenarán el valor que se le ha d a d o al argumento de la función en el FN (siguiendo con nuestro ejemplo, estos cinco bytes codificarían el número 23675). Por tanto, si desde nuestra rutina en Código Máquina tomáramos el contenido de la variable DEFADD y lo incrementáramos en dos, obtendríamos la dirección donde se encuentra el valor que necesitamos. Como dicho valor será una dirección de memoria y, por tanto, un entero comprendido entre 0 y 65535, los cinco bytes no estarán codificados en coma flotante, sino como «pequeños enteros». Esto quiere decir, como podemos encontrar en el manual del Spectrum (sólo el del 48 K o el del + 2 ) , que los dos primeros bytes y el último serán 0 , y el número lo podremos encontrar en los bytes tercero y cuarto, por lo que el procedimiento final para obtener el número sería coger el contenido de DEFFAD, sumarle cuatro y co-


46 g e r el c o n t e n i d o d e esto dirección que acabamos de formar. Devolver el resultado desd e el C ó d i g o M á q u i n a al

Basic es m u c h o más fácil: basta c o n c a r g a r el n ú m e r o e n el r e g i s t r o BC antes de r e t o r n a r p a r a q u e se conv i e r t a en el r e s u l t a d o d e la

función USR y, p o r t a n t o , en el d e la F N . Existen más c o m p l i c a c i o nes c u a n d o los v a l o r e s q u e d e b e m o s t r a t a r n o son en-

teros o d e b e m o s m a n e j a r p a r á m e t r o s alfanuméricos en l u g a r d e numéricos, per o esto lo iremos v i e n d o en c a d a caso p a r t i c u l a r .

P r o b a b l e m e n t e las rutinas g r á f i c a s m á s sencillas sean las q u e b o r r a n la p a n t a l l a d e a l g u n a f o r m a e s p e c i a l , así q u e s f ^ ^ i j m j y e m p e z a r e m o s por ellas. Tanto p a r a M ^ M ^ ^ ^ é s t a s c o m o p a r a t o d a s las d e m á s , Í B » ston dos listados, diferenciados por las l e t r a s A y B, q u e s o n , r e s p e c t i v a m e n t e , el l i s t a d o h e x a d e c i m a l y el e n s a m b l a d o r . N o h a y q u e t e c l e a r a m b o s l i s t a d o s , s i n o s ó l o u n o d e e l l o s . El h e x a d e c i m a l es p a r a a q u e l l o s q u e s i m p l e m e n t e q u i e r a n u s a r las r u t i n a s sin m á s c o m p l i c a c i o n e s , m i e n t r a s q u e el e n s a m b l a d o r es p a r a los i n i c i a d o s e n e l a r t e d e l C ó d i g o M á q u i n a q u e d e s e e n a d e n t r a r s e e n el f u n c i o n a m i e n t o i n t e r n o d e las r u t i n a s y m o d i f i c a r l a s a su a n t o j o . ^

U

B

j m

BORRADO DE PANTALLA POR DEGRADACIÓN DE COLORES L o n g i t u d : 37 bytes. Dirección: r e u b i c a b l e (cualquier dirección). F o r m a d e uso: R A N D O M I ZE USR d i r e c c i ó n d e comienzo. Esta r u t i n a b o r r a la p a n talla d e c r e m e n t a n d o los colores hasta el n e g r o , p r o d u c i e n d o un c u r i o s o e f e c t o d e b r i l l o . Para c o n s e g u i r l o se efectúa o c h o veces un bucle en el q u e se r e a l i z a n los siguientes pasos: — Se hace u n a p e q u e ñ a pausa c o n dos HALTs p a r a q u e el e f e c t o no sea excesivamente rápido. — Se r e a l i z a un b u c l e q u e se r e p e t i r á 7 6 8 veces: u n a p o r c a d a a t r i b u t o d e la p a n t a l l a . Para salir d e l b u -

LISTADO A

cle c o m p r o b a m o s si HL (que señala a l a t r i b u t o q u e v a mos a t r a t a r ) es m a y o r o i g u a l a 2 2 5 2 8 , o lo q u e es lo m i s m o , si sigue p e r t e n e ciendo a una dirección de a t r i b u t o s . En r e a l i d a d , se c o m p r u e b a sólo el b y t e alt o , q u e d e b e ser 88 o m a y o r . Para c a d a b y t e d e atributos se hace lo siguiente:

DUMP: 60.080 N . " DE BYTES: 37

LISTADO B

— Se c o m p r u e b a si el color d e la tinta es 0, y d e n o serlo, se d e c r e m e n t a . — Se c o m p r u e b a si el col o r d e l p a p e l es 0, y d e n o serlo, se d e c r e m e n t a . — Se a c t u a l i z a el a t r i b u to c o n los nuevos colores d e p a p e l y t i n t a , y c o n los mismos niveles d e FLASH y BRIGHT.

a

;

nas «

COLORÍS»

171 181 M 211 211 TFLRTCT

ID «C JÍ SUS 0« XC*

A,D 54 Z.LAHCL 9 E D

CP

89

CM

ESPESO

WD

O

JR nc.Bueo

J» 2,YM£ DEC A

ID

f.A

? BORRADO DE PANTALLA POR BANDAS LATERALES L o n g i t u d : 2 2 5 bytes. Dirección: r e u b i c a b l e . Forma de uso: c o l o c a r en alguna línea DEF FN C ( N , C ) = USR d i r e c c i ó n y hacer R A N D O M I Z E F N C (N,C).

C es un v a l o r entre 0 y 255 q u e indica los nuevos atributos q u e q u e r e m o s y se c o n s t r u y e d e la forma habitual: 128 * FLASH + 6 4 * BRIGHT + 8*PAPER + INK.

N es un n ú m e r o comprend i d o entre 0 y 15 q u e indica p o r q u é lados han de salir las b a n d o s . Sus valores son: 1 Arriba. 2 Abajo. 4 Izquierda.

8 Derecha. Para q u e salgan b a n d a s p o r más d e un lado no tenemos más q u e sumar los números correspondientes. A q u í pasamos los p a r á m e tros a la rutina d e la f o r m a


VEINTE UTILES

.

explicado anteriormente, sólo que en este caso se trata de dos p a r á m e t r o s . Entre el primer p a r á m e t r o y el seg u n d o se e n c u e n t r a n en la m e m o r i a el c ó d i g o d e la coma, el c ó d i g o ASCII d e l nombre del segundo parámetro y el c ó d i g o 14 indicador de n ú m e r o , a d e m á s de los cinco bytes d e l v a l o r d e l primer p a r á m e t r o , q u e h a cen o c h o en t o t a l , c o n lo que si el p r i m e r v a l o r estaba en ( D E F A D D ) + 4, el seg u n d o e s t a r á e n (DEFADD) + 12. La p r i m e r a p a r t e d e la r u t i n a , d e CLSBAN a CLSCOR, no f o r ma p a r t e p r o p i a m e n t e dicha de la rutina, sino q u e se trata d e un r e u b i c a d o r q u e permite q u e ejecutemos e n cualquier d i r e c c i ó n u n a rutina q u e t e n g a CALLs y / o

línea 1 2 3 4 5 6

LO

<IXH),H

541

2?»

JE

BURTUB

571 ELEF1 CALI C.LEFT RRA 581

¡ ••as EN cnrriNAn i ÍI cisa* LO HL,TA8U«IS8A

51

84 1

IX,(23543)

591 ERIGHL CALL C.RIEKT

A,(IX«I2)

411

INC C

331 341

ANO

248

411

LD

A,C

LD

B,A

421

CP

8

351 341

m

EX BUCE» 10

A,<0E>

371

KM

OE

«(0

LO

L,A

381

OR

LO

A,(0€>

391 411 EAM

7 8

LO

<ATHI),A

255

411 EAT2

LO

421 431 ÍUSO

LO

<AT2H),A A,ÍIX*4)

441

III

INC

III 121 131

CP

141

JR

RRA

12 13 14 15 16 17 18 19 22

00SS0098005900O

RIM

3II cicon LO 321 LO

HL,8C OE.W.

m

rontrol

II

1121

L,A

LD LD

O.H E,L

1131 ¡ 1141 R16HT LO

881 891

INC E PUSK 8C LD

8C,3I

C.8UCLS

911 911 ATI

LD

<K),I

431

JR

441

LO

HL, 14384

921

451

LD

0£, 14385

931

LDIR POP BC

441

LD

8C,4I44

941

POP AF

471

LO

(HLL,L

951

RFT

481 491

10IR LO

BC.747

711

LO

A,<IXH2) <KU,A

941 ;

971 oom

PUSH AF

INC

LD

(USO'D.A

711

LO

LO

8,1

721

KL,BC

rosH m

451 LD 441 ETAUP LO

C,A

L01R RFT

HL, TALAR

731 741 ;

POP

IX

471

AOD

HL,BC

751 UP

PUSK AF

1131 COLERI PUSK AF

10

A,(BE>

481

8,<HU

741

LD

A,C

1141

LD

H,88

m

10 10

K,22

1151

LO

DE,32 A,91

521

RM

531 EUP 541

CALI C.UP RRA

DE

221

10 LO

A,<0C>

INC 10

OE K,A

ADD LO

HL,8C <1X>I>,L

231 241

234

241 271

L,A

C,L

511 BUCLS HAIT 511 USO LO A,L

551 EDO*

CAU

C,DW

981 998 LILI

lili ; 1121 LEN

LO

A,23

SU8 C JR C<MN LD

L,C

771 C!NK

LD

781

«OD A,A

1141

LO

791

AOD A,A A00 A.A A00 A,A

1171 AT2 1181

LD

811 811

AOD

NI,DE

1191

CP

H

JR

N2.AT2

821

RL

831

A00 A,A

H

c o n las b a n d a s , es c u a n d o r e a l m e n t e se b o r r a la p a n t a l l a , a u n q u e esta o p e r a ción le resulta i n a d v e r t i d a al usuario.

LD

LO

INC

DUMP: 60.010 N . ° DE BYTES: 225

RL

«00

211

841 871

151

181

16® 19 523 35 144 38 00

851

141 171

211

639 54

841

2,aco«r oc H,A

M

081 067

>42 S61

p i e z a p o r a b a j o . LEFT b o r r a u n a fila v e r t i c a l d e 2 4 caracteres, al igual que RIGHT. U n a vez se ha t e r m i n a d o

281 311 :

datos ¿16F00O9E61fll36FlF FE FF2815136709E5DDEJ 136F1«136709DD7S0< DD 740113E3OP2A0BSCDE 0CE6F3471F1F1FE60: B0 32ECEO3202EBDD7E0.J 32 0EO0763E001FDCD C'CFSEA ÍFC'CFSEA 1 09 FF 02DD7E0C77EDBOC ¿01687878797061 CB 146FS4<Jt,lCC501I 36 00EDB0C1F1C9F53 91 3E 13E069F52653112 3E SB36OO19BC20FOF 20 1F916F13ER01161 16160C2018180C1 10

9

«OÍ

3I;

— 4/

LISTADO A

JPs. C o n este propósito tenemos a l final, en TABLA, u n a lista de todos los puntos d e la rutina e n los q u e se hace referencia a a l g u n a dirección a b s o l u t a . El funcionamiento d e la rutina t a m b i é n es bastante sencillo. En primer l u g a r , a y u d a d o p o r la t a b l a TALAR, calcula c u á n t o v a a t a r d a r en b o r r a r la p a n t a l l a , y a q u e esto dep e n d e d e las b a n d a s q u e q u e r a m o s q u e h a y a . A cont i n u a c i ó n , realiza un bucle en el q u e l l a m a a las subrutinas q u e d i b u j a n las b a n das en los lados q u e hemos i n d i c a d o . La s u b r u t i n a UP b o r r a u n a línea h o r i z o n t a l d e 3 2 caracteres (en r e a l i d a d , sólo b o r r a los atributos c o n p a p e l y tinta del mismo c o l o r ) . D O W N es i g u a l q u e UP, sólo q u e em-

II >C-

21

A

lili Mil

(HL).l

PCP AF

RET A,31

1151

SUS C

1141 1171

LO JR

1181 : 1191 TACAR

DEFB 1,24,24,12

1211

L.A COLERI

0EF6 32,24,24,12

1211

0EFB 32,24,24,12

1221 1231 ; 1241 TA81A

DEFB 14,14,14,12 0EFU EATM-CLSKN,

ATHI-CLSWI DEFW EAT2H-CLS8W, 1251 AT2H-CLSWN 1244

DE FU EUS0*l-aSBW4,

USO* 1 -CLSBAN 1271

DE FU EUP<I-CIS8W,U

P-CLSSAN 1281

DEFU E0CWM-CLS8AN

,OOK-aS8AN 1291

OEFU EIEFTO-CLSMN

,LEFT-CLSa* DEFU ER16KHI-CLS» 1311 N.R16HT-CLS6AN

DEFU ETALARTL-CLSBA 1311 N, TALAR-CLS8AN « F U IFFFF 1321

R E L L E N A D O DE F I G U R A S C O N T R A M A S (FILL) L o n g i t u d : 4 0 3 bytes. Dirección: r e u b i c a b l e . Forma de uso: c o l o c a r en alguna línea DEF FN F(X,Y,N) = USR d i r e c c i ó n y hacer R A N D O M I Z E F N F

(X,Y,N) X e Y son las c o o r d e n a d a s en a l t a resolución d e un p u n t o i n t e r i o r d e la f i g u r a que queremos rellenar. N es un n ú m e r o e n t r e 0 y 21

que hace referencia a uno d e los 21 G D U s . El G D U e l e g i d o será el q u e se use c o m o t r a m a . Es n e c e s a r i o a d v e r t i r q u e esta r u t i n a usa p a r a su f u n c i o n a m i e n t o una

z o n a d e 6 Kbytes c o l o c a d a e n la d i r e c c i ó n 3 2 7 6 8 , p o r lo q u e ni la p r o p i a r u t i n a ni n i n g u n a o t r a coso p u e d e ser c o l o c a d a en esto z o n a . El a l g o r i t m o d e la rutina


48 LISTADO A datos

control

215D0109EBIR136F1RFE FF281S136709ESDDE11R

307 1143

74O118E3C-O2R0B5CDD4E 04DD460CDC-7E1421FFFF FSE5C32100301101S001 FF1775EDB0C13ERF90CD E.022S7CD6OE6CD85EB7R E60757RF32BBEB32BCEB 7BR6207E7B66773EC0RC

1033 121-* 979 153? 1608 1444 1297

3S0473D6084778FE5830 L.:CAA?:<E0O20OF3ABCEB A7200C7QOFOF0FB047C5 3EFF32BCEB4D7C3D47EE C7E6O7200A79D62O4F38

983 787 822 1361 788

0AA33E00260F3ABBEBA7 2OOC7R0FOF0FB047CS3E FF32BBE8CB0B7A3CE607 5 720852C 7DE61FC2BRE A E17CBD2O033C28137C07 0707E607577CE61FF640 67C0B0FBC3ACEAF18787 87EP587B5C83SF8B93S7 21O0OODS7CE607835F8A 93S71A2FA6C68CCBF4AE 77CBFCCBB4D1237CFE9C 20E 3 C 9 7 8 A 6 C 0 7 B B E 3 8 1 A 16001E307DE61FC82D7E A728F7CB4728022CC91F D8CB031S18F93EO89247 7EIF10FD18EF 7A1E80A7 C8C8083D20FBC900004A 0050014PO02501DA0O5A

929 717 1360 1296 823 1033 13.11 1276 1099 1486 1735 1336 937 1046 1003 1136 10 3 1 504

0O4OO0FS0O4C0055005B O 158O05C018AO05CO1BB OO56019900SC01CAO05B O1FFFFO0O00OO0O0000O

573 600 631 511

DUMP: 6 1 . M t N . ° DE BYTES: 403 es el siguiente: — Buscamos el p r i m e r punto «pintado» que h a y a a la i z q u i e r d a del p u n t o d a do. — Pintamos el p u n t o o b tenido. — C o m p r o b a m o s si los puntos superior e inferior a éste están o no p i n t a d o s . — Si no lo están, los alm a c e n a m o s en la pila p a r a su uso posterior. — Pasamos al p u n t o d e la d e r e c h a y si no está pint a d o repetimos el proceso desde el segundo paso. — C o m p r o b a m o s si h a y a l g ú n punto a l m a c e n a d o en la pila y d e ser así, repetimos con él el proceso desd e el p r i m e r paso. Hasta a q u í el a l g o r i t m o p a r a un FILL n o r m a l . Para hacer un FILL c o n t r a m a s d e b e m o s usar una especie de duplicado de la pantalla, q u e es el q u e tenemos en la dirección 3 2 7 6 8 . A l principio, limpiaremos este dupli-

c a d o y después iremos pint a n d o en él todos los puntos q u e pintemos t a m b i é n en la p a n t a l l a . U n a vez t e r m i n a d o el r e l l e n a d o , p r o c e d e mos a sustituir p o r el e n t r a m a d o d e s e a d o t o d a la zona d e la p a n t a l l a q u e h a y a q u e d a d o p i n t a d a en el d u plicado.

El f u n c i o n a m i e n t o interno d e la rutina sigue fielmente los pasos del a l g o r i t m o q u e a c a b a m o s d e e x p l i c a r . Lo único q u e p u e d e dificultar un p o c o su c o m p r e n s i ó n es q u e a lo l a r g o d e t o d o el p r o c e s o se usan directamente direcciones d e pantalla en lugar d e c o o r d e n a d a s

p a r a conseguir q u e la rutina sea un p o c o más rápida. Las c o o r d e n a d a s se d a n igual que en Basic, sólo que la V p u e d e t o m a r también valores entre — 1 5 y —1 p a r a puntos d e las dos líneas inferiores d e la pantalla.

LISTADO B • •FILL CCH IWBSII

10 W.MSUWIU « o W.BC EX DE,HL 8 LO A,(CE) INC Of LO L,A LO «.(SO CP ¡55 JR 2,HNWu INC OE LO M «00 KL,SC PUS» II POP IX LO A,IDO INC CE LO L,A LO D.IK) INC OC LO H,A «X HL,BC LO (IX>I),L LO (IX*t),K JR SISEIS II LO IX,1235431 LO C,(IX>4) 10 8,tlXi|?> 10 A,UX>2S) LO «,45535 PtISHAF TON * PUSH K LO HL, 32)48 LO CE,32749 LO BC.4143 LO (HL),l LDIR POP ET

LO «.175 SIS 8

CAL L 12288

LO D,A MU EIGUO I CALL LEU

I» A 548 INFLO LO (FLUPI.A 558 INFLO LO (FLOO),A 548 6UINT LO A,E «C <«) 38 N2,E0L LO A,E OR <H> LO CU),A LO A,192

488 788 718 728 738 748 758 748 778 7S8 798 881 118 828 838 848 COCAL 858 848 878 m 898 911 918 COflO 928

182 LO M LO A,H INC A LO 8,A LO CiL «0 7 JR H7.00W LO A,C AOO A,32 LO C,A JR C.DOCAL

944 958

LO A,0 RMA

988 998 1818 1818 1828 1838 1848 1858 1848 1878 1888 1898 1188 1118 1128 1138 1148 1158 1148 1178 1188 1198 1288 1218 1228 1238 1248 1258 1248 1278

OC B LO 8,A PUSH 6C 10 A,255 AL2AOO LO (FIOO>,A INPO 10 C,L LO A,H OEC A LO 8,A XOR 7 «0 7 JR W.UPCAt LO A,C SIS 32 LO C.A JR C.IKAl LO A,8 A,8 LO 8,A UPCAL LO «,B CP 44 JR C.FINPO LO A,18C) ANO E LO A, 8 JR N2,Al?AUP Cfflü LD A,IELL8>> WD A Jt N2.FINP0 LO A,D RRCA RUCA

938

XW

UL A,8 SI» 8

LO 10 CP JR LO «0 LO JR LO W J»

8,A A,8 >8 NC.IHPO A,I8C> E A,8 N2,AL7AOO A,<FIH> A N2.1NP0

MX

1328 LO i,A 1338 PUSH 8C 1348 LD A,255 1358 AL2AUP LD <FLUP1,A

1348 FINPO n c E 1378 10 A,0 1388 INC 1398 m 7 1488 LD >A 1418 JR M.BUIHI 1428 INC l 1438 LD A,L 1448 « 0 31 1458 BU1P JP N2.8UIN1 1448 COL POP * 1478 LO A,K 1488 CP L 1498 JR N2.POSI8 1548 INC A 1518 JR 1528 P0SI8 10 A,H RICA 1398 HCA 1548 RICA 1558 1548 MO 7 LD 0,A 1578 1588 LD 1598 OC 31 1488 08 44 1418 LO H.A 1428 EI6P2 ota Eieuo 1438 BflRPO JP 041 Rí 1444 ¡ 1454 1RW POP Af 1444 NO A, A 1478 A» A,A 1488 ACO A,A 1498 LO DE ,(23475) 1788 AOO A,E 1718 l» E,A 1728 AOC A,0 173) M E 1748 LD 0,A I7S8 LO *,32748 1748 euTMI PUSH OE 1778 10 A,H 1788 M 7 1798 AOO A,E 1888 LO E|A 1818 AOC A.O 1828 M E 1838 LO D,A 1848 LO A,(DE) 1854 CPt 1844 M (HL> 1874 RES 7,11 1888 SET 4,H 1898 XOR (HL> 1918 10 (11),A 1918 SET 7,N 1924 RES 4,11 1938 POP K 1948 INC » 1958 ID A,H 1948 CP 154 1978 JR N2,BOTIW( 1988 REI 1998 ¡ 2888 1EF1 L> A,E 2818 M (») 2828 REI N2 2838 10 A,E

2848 CP ( » ) 2858 J» C.MllE 2848 LO 0,8 2178 LO E,I28 2888 8WEF LO A,L 2898 «40 31 2188 REI 2 2118 OEC L 2128 LO A,(») 2138 ttC A 2148 JR 2,BUEÍ BIT 8,A 2158 2148 JR 2,8UC 2178 INC L 2188 BCT 2198 BUC RKA 2288 REI C 2218 RLC E 2228 OEC D JR 8UC 2238 2248 INffflE LO A,8 2258 SIS 0 2248 LD 8/1 2278 LO A,(A) 7288 BUU RW DJÍ2 8LKJ 2298 2388 JR SUC 2318 1 2328 EINJO LD A,0 2338 LD E,I28 2348 «NO A 2358 RET 2 2344 SUEIS RRC E 2378 OEC A 2388 JR N2,BUEie 2398 RE! 2488 ¡ 2418 W DEES 8 2428 FLDO DEFB 8 2438 ¡ 2448 TABLA DEEV EI6Pi|-flU,EI OS'EILL OEFU EKlPftl-FUL ,1 2454 EFT-F1LL DE FU BUIPil-FILL.Sll 2444 INI FUL OEÍU ElíP'l-FILL.EI 2478 GUOFILl OEFU EISP2<I-FILL,E 2488 IGUO FILL 2498 OEFU ENIRPOU-FILL, miitr-FiiL OEÍU EHItPOM-FHl, 2588

enn-flu.

2518 LUE-Flll 2528 LDO-FIIL 2538 LOO FIU 2548 LUP-FILl 2558 F1D0-FILL 2548 FLUP-FILL 2578

OEFU lr»LU«l-EILL,F OEFU MIDM-flU.F OEIU COfLD>I FIlL,F OEfU COFLUO-flLL.F OEÍU A(2AOO'l-ÍILl, OEFU AL2ALHI-FILL, OEFU 1FFFF

L r F a L c U

m

se n< n(

1


VEINTE UTILES

m Q ^ y

" L A V A D O " DE U N A FIGURA RELLENADA LISTADO B

a n t e r i o r rutina y el G D U q u e especifiquemos. Si hacemos esta o p e r a c i ó n c o n un G D U en b l a n c o , a n u l a remos el r e l l e n a d o . La rutina f u n c i o n a d e f o r m a bastante semejante a la p a r t e q u e se e n c a r g a b a d e d i b u jar la t r a m a en la rutina anterior.

Longitud: 5 3 bytes. Dirección: reubicable. Forma de uso: c o l o c a r en a l g u n a l í n e a DEF FN W ( N ) = USR dirección y hacer R A N D O M I Z E F N W ( N ) Esta rutina hace un A N D entre la última f i g u r a q u e hayamos r e l l e n a d o con la

«O »,f

E,A AOC A,0

su«

91 IttSX

LISTADO A

M

A,A

LO

ÍE,(7347S>

33)

CH. ws ?,« str Í,H

«o <HE>

10 <»>,» Sfl 7,H RES <,H

datos

3

Í

10 D,A LO A, (OC) CPl «NO <*>

w te

F8P93 0080D57CE S71A2FR62FCBBCCBF4P6 77CBFCCBB401237CFE9C 38E2C900000000000000

1213 1377 1735 483

DUMP: 60.000 N . " DE BYTES: 53

INC w. 10 A,H & I5Í

m StUtSM WS« K

JÍ c.euu-IX

VACIADO DE FIGURAS (UNFILL) Longitud: 3 4 5 bytes. Dirección: r e u b i c a b l e . Forma de uso: c o l o c a r a l g u n a l í n e a DEF U(X,Y) = USR ^ " . . c i ó n y cer RANDOMIZE U(X,Y).

en FN haFN

mas, no necesita la z o n a d e 6 Kbytes q u e usaban las dos rutinas anteriores. Pasamos a h o r a al último a p a r t a d o d e las rutinas g r á ficas: el d e m a n e j o d e ventanas.

Esta rutina es prácticamente idéntica a la d e FILL, sólo que vacía zonas rellenas en l u g a r de rellenar zonas vacías. Al no usar tra-

DUMP: 60.000 N . ° DE BYTES: 345

LISTADO A línea 21230109E81P136F1PFE 15136709E5DDE11P IB13670900750000 18E3OO2R0B5CDD4E 033 460C21FFFFE5C521 11018001FF177SED 907 3EBF90COB022S7CO CD4 7EB7PE60757PF EB3282EB78R62873 777C3C474OE60720 C6204F3804780608 842 FE5830180RR33E00 840 3R82EBP7200C7P0F 826 B047CS3EFF3282EB 1206 3O4 7 E E 0 7 E 6 0 7 2 0 0 P 8 5 7 204F3804 78C60847 903 4038180PP33E0028

FF3281EBCB 22

3CC87C0

24

E

29 30 31 32 33 34

LISTADO B LO M m »,k fySH» WP I»

LO A.IOE) INC K LO L,A

71 LKILl LO »,I«A-LHflL 71 IX K,HL III 810EIS LO A,(0EI III INC K

MI FILL 3M M 371 3» 3» 411

LO H.ÍSS35 PUSB M. HJSH K LO * , 3 ! 748 Lt K.3774» LO 8C.4I43 LO (K>,1 LOIR

41) 381 III llr«U 3» 331

J> LO Lt LO

Byftií IX.I23U3I C,<IX«I l,(lXM7)

4J8 461 471 EI6P 481 «T«r MI

WL 17781 LO 0/1 WL EIKK WL LEn LO A,0 «• 7

531 Mili LO MI IWLO LO i » SUINI LO

871

741 OOW LO A,8

8*1 !tl til

OH 8

LO 8,A MISH OC LO A,7»

771 túlVfi 10 <11001,«

731 IWO 10 C,l «41 LO A,K <M OEC A LO !,A 771 >« 7 Í84 wo 7 7!8 J» M,«PW lili LO A,C lili SUS 37

tU


50 LISTADO B ( s i g u e l»

LO

ja C.'-PÍAÍ

to «,l

A,255

atl KF\I ELFP.L-IWILL, EISK-TKILL aa KF» EISPM-WIII .EISW-IKILL a» MFV BFLRPO'L-LKLL L.WTPÍ-LKILL an MFW BFLSPO'L-LNFIL L,BFTRT-LF*ILL

P LO (f IUPI ,A RRC Í 10 A,O INC A

M1 J( 15 44) 19 JR

C.FIWO A,<0» E A,L F

10 JR INC LO ANO JP

0,A NJ.BUIHI L A,L 31 W.BUIHT

«

a

LO

A,H

19 A.Kllfl j» (O.riwí LO A,D

PW *

LO H,A IUI I1SP2 CAIL CIRIO 15M 9HRP0JP BITPÍ 1541 ; 10

2111

A,E

JW <»> Bíl 2 LO A,(NL)

REI C RLC C DEC O

CPL CP £

JR Ncjienc

10 0,1

«RIA

OLÍ 1.A JR ;,euc INC L

N A IWRLE LD »,8 SUS D

ID

10 E.I2Í LO A,L ANO 31

S,A

un i

I»1 i an fiup Mig i a i l ILOO DEIS I aa i

a » TA81A KIU EISP'I-IWILL,

EIS»-UÍIIL a<i

«fu IWIUM-Uflll

.PLÜP-WILL 2111 MFW IWID'I-WILL .FIOO'IKIU 2ia OFFU COFLD'L-LNFILL .ELDO-IKILT 2134 OÍFW C«1IK|-1»IU

.FIUP-IWILL

OEV I AT2A00'L tHFIl

LL

DEIU BNNO'IWIII

,LEn-UíllL a» DCÍ» suiPíi M U i , «UINT-UÍILL

DEfy AÍ2AUPH-INF1I

B O R R A D O DE UNA VENTANA en b a j a resolución d e la esq u i n a superior i z q u i e r d a d e la v e n t a n a , A y L son, resp e c t i v a m e n t e , el a n c h o y el a l t o d e la misma, y C es el byte d e atributos q u e se construye c o m o y a hemos indicado anteriormente.

Longitud: 114 bytes. Dirección: r e u b i c a b l e . Forma de uso: c o l o c a r en alguna l í n e a DEF FN B(X, Y , A , l , C ) = USR dirección y hacer R A N D O M I Z E FN B(X,Y,A,L,C). X e Y son las c o o r d e n a d a s

da<°s

LISTADO B 10 K,0

10 l,E INC D£

41 ¡IBORMOO 0£ í/BflAWS"

10 (*.>,! PUSH SE DEC C

71 CIIÍINO 10 IX, 123543) 81 10 A,<IXI4> « LO 0,A

JR 2,«HAS LO LDIR POP 8C POP DE INC 0

63

.

DUMP: ót.ttl

N . ° DE BYTES: 114

M JR 10

10 A,0 AND 24 OS 44

7 N2, INCAS A,32

ADD A,E

LO f,A

JR C.INCAR LO A,0 SUS 8 LO D,A 0JN2 8U80R

LO

l,(¡X'<

454 444

471 4SI TN 711 711 724 731 WAT

741 754 744 7A 784

INC DE PUS» SC LD S,L 10 A,CIX'34 LO <HL),A DEC C JR 2,WAT LDIR POP BC POP HL LD D£,32 A00 «.,(€ EX OC.HL 0JN2 !SA!

I N V E R S I Ó N VERTICAL DE U N A V E N T A N A Longitud: 183 bytes. Dirección: r e u b i c a b l e . Forma d e uso: c o l o c a r en a l g u n a l í n e a DEF F N V (X,Y,A,L) - USR dirección y hacer RANDOMIZE FN V(X,Y,A,L) X,Y,A y L r e p r e s e n t a n lo

mismo que en la anterior rut i n a . En esta ocasión lo q u e v a m o s a hacer es v o l v e r del revés t o d o lo que h a y a en la v e n t a n a , es decir, la p a r t e superior p a s a r á a ser la inferior y viceversa. El algoritm o d e inversión es el si-

guiente: — C a l c u l a r la del p r i m e r sean d e na en DE. — C a l c u l a r la d e l último byte d e na en HL. — Realizar un

dirección la ventadirección la ventabucle

N

veces, siendo N igual a cuat r o p o r la a l t u r a de la vent a n a , o lo que es lo mismo, la m i t a d d e la a l t u r a en pixels. Dentro del bucle hacemos lo siguiente: — I n t e r c a m b i a r , entre la «."rección a p u n t a d a p o r HL

|

<


VEINTE RUTINAS ÚTILES

— Calcular el sean anterior al indicado por HL. La estructura de la pantalla del Spectrum es la misma si se la recorre de arriba a a b a j o

y la apuntada por DE, tantos bytes como el ancho en caracteres de la ventana. — Calcular el sean siguiente al indicado por DE.

que de a b a j o a a r r i b a , así que si observáis un poco el listado e n s a m b l a d o r podréis c o m p r o b a r que la forma de calcular el sean si-

e 3

i I

guiente y el anterior tienen una estructura a n á l o g a . El mismo proceso se realiza a continuación p a r a los atributos.

LISTADO B 41 M « 78 91 78

; MIIMIIS1CN VECTIMl" ¡II I 311 I 321 VCiniH ID IX,(23543) 33, LO A,<IX.4> 3I| Lt M 35,

WD 224 0» 11X03» Lt E,A

Lt D,A LD A,(IX'«) AOO A,(IXI28I

«D Oí 10 LD «0

224 IIXH2) L,A A,H 24

LD «00 «00 «00 LO M

o* 71 ID M

LO B,(IX'28> LO A,(!X*28) «00 «,A «00 A,A EX Af.AT PUSH A FUS* Oí PUSH BC LO C,(H) Lt A,(0EI 10 («,),A LD A,C LD (0E1.A INC L INC E DJN2 BUCC POP SC POP DE POP HL

A,(1X44) A,A A,A A,« 0,22 «,A B

AOC *A

LD A,D SUS 8 Lt O.A

LD SUS ID H LD «00 LD EX DEC JR

A,L 32 l/l C,SU8 A,H A,8 K,A AP.AFA N2.SUIW

7S8 711 771 788 778 lili II» 1121 »38 1841

11

5

OH LO 10 A00 DEC

(1X412) E,A A,(IX.4> A,(1X<28) A

10 11,22 A00 A MA

Z

A00 «l OS LD LD ID

lisi 1148 un 8 ,|SI „„ Mil 1118 S „„ 1138 " ,,„ "*

1181 " ! "| í"

A,A H (1X112) l,A B,(IX>2t) A,(IX>28)

Sil A «E7 2 EX Af ,Af' PUSH SC PUSH W. PUS" OE LD c,(n> ID A,(DE) ID (HU,A 10 A,C ID (0EM INC 1 INC E DJN2 BIICS1M 1 POP Ift ID C,32 ADO U.BC EX DE.». POP I I SSC HL.BC POP BC EX

Af,AF'

tEC A J« N2,BIHI

INVERSIÓN H O R I Z O N T A L DE U N A VENTANA Longitud: 172 bytes. Dirección: reubicable. Forma de uso: colocar en a l g u n a línea DEF F N H(X,Y,A,L) = USR dirección y hacer R A N D O M I Z E FN H(X,Y,A,L). Ahora la inversión la efectuamos en sentido horizontal. En este caso, además de efectuar el intercambio de bytes de f o r m a similar a la inversión vertical, debemos invertir cada byte bit a bit. N o importa el orden de estos dos procesos. Nosotros haremos primero el intercambio de bytes. Todo el proceso es el siguiente: — Efectuar un bucle para cada uno de los scans de la ventana (ocho por el alto en caracteres). Dentro del bucle: • Calcular en DE la direc-

ción del extremo izquierdo del sean en curso. • Calcular en HL la dirección del extremo derecho del sean en curso. • Intercambiar el contenido de la dirección señalada p o r DE con el de la señalada p o r HL, incrementar DE y decrementar HL. Este punto se realiza N veces, siend o N el ancho de la ventana en caracteres partido por dos. En el caso de anchos impares despreciamos el resto de la división. — Ya fuera del bucle, cuando hemos intercambiad o todos los bytes de la mitad derecha de la ventana con sus simétricos en la izquierda, realizamos un bucle p a r a todos y cada uno de los bytes que f o r m a parte de la ventana. En este

nuevo bucle es donde vamos a invertir los bytes bit a bit. Para ello, hacemos lo siguiente: • Cargamos en A el byte en cuestión. • Por ocho veces consecutivas extraemos de A un bit y a través del bit de acarreo lo vamos pasando a E en orden contrario. • Colocamos el byte así obtenido en la dirección que o c u p a b a el original. Como es obvio, p a r a los atributos debemos efectuar el intercambio de bytes, pero no la inversión pixel a pixel. En el listado de la rutina, la inversión de los atributos se hace entre medias de los dos procesos necesarios para la inversión del dibujo propiamente dicho.

LISTADO A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

DD2R0B5CDD7E04570F0F 0FE6E0DD860C5F7RE618 F640S7DSDD461C48ODCB 3828SBDD7E1487878708 D5627B816FC54E1P7779 122D1C10F 7CID114 7RE6 07200R7BC6205F38047R D608S7083D20DRDO7E04 878787161687C81287C8 12DD860C5FDD7_ 6278816FD54E1 _ 2D1C10F 7E10E2009EBC1 083D20E6E 1DD461CDD7E 148787874FC5E57E1608 1FCB131520FR732C10F3 E1C1247CE607200R7DC6 206F3804 7CD608670D20 DCC90000000000000000

DUMP: 6 1 . I M N . ° DE BYTES: 172

834 13SS 1217 967 1215 1128 679 979 1143 _ 1044 1222 1006 974 1180 697 421


^

52 t ^

LISTADO B

KIWERSION 71 HORIW LO 1X,<235<3>

*C 22< OR <IX«I2> ID E,A

LD 0,A PlfiH OE 10 B,<IX>28>

SRl 8 JR 2,WAS LD A,<IX>») A» A,A ACO A,A

LD A,E AOO A,C LO L,A PUSH BC LO C,<K) LO A,(«) LD <ND,A LO A,C LD <0E),A KC l INC E

0*2 eucc

POP POP INC 10

8C OE 0 A,D

occ o

mo 7

JR N2.BA8 LO A,E ACO A,32 LO E,A JR ' LD A,0

PUSH BC LO H.O 10 A,E AOO A,C LO l,A PUSK K ID C,<HL) LD A,<OC> LD (HL),A LO A,C 10 (K>,A OEC L INC E

sue 8

LO 0,A EX Af,«f' KC A JR K.BUIW LO A,IIX«> AOO A,A A00 A,A AOO A,A LO 0.22

iv AOO »,8C EX K,H1 POP BC EX Af,Af OEC A JR N2.8UAT POP Hl LO B,(IX<28) LO A,CIX<2«> AOO A,A AOO A,A AOO A,A LO C,A POS» BC PUSH Hl LD A,<H) LD 0,8 ii7i iiem RK im H E

JR N2,ll«fTE LD (HL),E INC L

OJC Buen POP HL

m

BC

INC II LD A,H WO 7 JR W.BSBOOS 10 A,L AOO A,32

1271 MBOOS OtC C

C o m e n z a m o s con o t r o g r u p o i m p o r t a n t e d e r u t i n a s . La m a y o r í a d e e l l a s u s a n l a s f a c i l i d a d e s d e l c a l c u l a d o r . El c a l c u l a d o r es * u n a d e las

AR/TMSTJCOIOGKAS

q u e p o d e m o s e n c o n t r a r e n l a R O M d e l S p e c t r u m , y d e é l se h a h a b l a d o m á s b i e n p o c o . E s p e r a m o s q u e c o n e s t a s r u t i n a s l o c o n o z c á i s u n p o c o m e j o r , a u n q u e p a r a c o n o c e r l o m á s a f o n d o es r e c o m e n d a b l e l a l e c t u r a d e l l i b r o «The C o m p l e t e S p e c t r u m R o m D i s a s s e m b l e y » , d e l a n L o g a n y F r a n k O ' h a r a , q u e p o r desgracia no está traducido al español. P a r a a c c e d e r a l c a l c u l a d o r se u t i l i z a l a i n s t r u c c i ó n RST 2 8 , y a p a r t i r d e e n t o n c e s , l o s b y t e s s i g u i e n t e s son i n t e r p r e t a d o s c o m o c ó d i g o s q u e le d i c e n a l c a l c u l a d o r las o p e r a c i o n e s q u e d e s e a m o s e f e c t u a r . A d e m á s , e x i s t e n u n a serie d e s u b r u t i n a s q u e s i r v e n p a r a i n t r o d u c i r y sacar n ú m e r o s d e la p i l a d e c á l c u l o , y a q u e t o d a s l a s o p e r a c i o n e s q u e p o d e m o s e f e c t u a r c o n e l c a l c u l a d o r , se r e a l i z a n s o b r e n ú m e r o s a l m a c e n a d o s en la pila d e cálculo ( q u e no h a y q u e c o n f u n d i r con la pila de m á q u i n a d i r e c c i o n a d a p o r el r e g i s t r o SP).

OPERACIONES LOGICAS (AND/OR/XOR) L o n g i t u d : 4 5 bytes. Dirección: r e u b i c o b l e . F o r m a d e uso: c o l o c a r en alguna línea DEF FN 0 ( A , B , N ) = USR dirección, y hacer LET X = FN 0 ( A , B , N ) . Las o p e r a c i o n e s lógicas A N D , O R y X O R , efectuadas bit a bit, son m u y sencillas en C ó d i g o M á q u i n a , p e r o no en Basic. G r a c i a s a estas rutinas p o d r e m o s log r a r l o fácilmente. A y B son

los dos n ú m e r o s c o n los q u e d e s e a m o s e f e c t u a r la o p e r a c i ó n , y d e b e r á n ser enteros d e 16 bits, es decir, c o m prendidos entre 0 y 6 5 5 3 5 . N indica q u é t i p o d e o p e r a c i ó n es, 0 p a r a A N D , 1 p a r a OR y 2 p a r a X O R . El res u l t a d o d e la o p e r a c i ó n será el resultado d e la f u n c i ó n F N . En ej e j e m p l o d e f o r m a d e uso, el r e s u l t a d o q u e d a ría a l m a c e n a d o e n la v a r i a -

b l e X. En esta rutina a ú n n o nos es n e c e s a r i o u t i l i z a r el c a l c u l a d o r d e b i d o a su e n o r m e sencillez.


VEINTEei RUTINAS ÚTILES3I

LISTADO B

Í8«0I»0LD

JR LO «C JR LO 10

»,M>0|.|-«0

10 IX,(23»])

10

<HL),A A,(1XH> (1XM2)

2,10 8,IAC;XM A 2,10 0, tU ¡ANO A,8 (KM

LOGARITMO DE CUALQUIER BASE Longitud: 27 bytes. Dirección: reubicable. Forma de uso: colocar en alguna línea DEF FN L(B,A) = USR dirección, y hacer LET X = FN L(B,A). Con esta rutina calculamos el logaritmo en base B de A. En ésta ya comenzamos a usar el calculador. La fórmula de calcular un logaritmo en base B de A es LN A/LN B. La subrutunia de la ROM STKNUM almacena en la pila de cálculo el número que se encuentre en la dirección señalada por HL. Este número puede ser un «pequeño entero» o una coma flotante. Una vez tenemos los números en la pila,

hacemos con ellos las operaciones pertinentes y dejamos el resultado como último valor de la pila. Cuand o un p r o g r a m a en C ó d i g o M á q u i n a l l a m a d o con USR retorna al Basic con un RET, el contenido del registro BC se almacena en la pila de cálculo y se toma como el resultado de la función USR. El POP BC del final, extrae de la pila de máquina la dirección de la subrutina que almacena BC, por lo que esta operación no se realiza, y se t o m a r á como result a d o de la función USR el número que nuestra rutina ha dejado en la pila de cálculo. De esta f o r m a conse-

77

RAÍZ

Longitud: 27 bytes. Dirección: reubicable. Forma de uso: colocar en a l g u n a línea DEF F N R(A,N) = USR dirección, y hacer LET X = FN R(A,N) A parte de que las operaciones a realizar son distintas, esta rutina es prácticamente igual a la anterior. Realizar la raíz enésima de A es calcular la operación A (1/N). La toma y devolución de parámetros desde y al Basic se hace de la misma forma que con el logaritmo.

LISTADO A 2B0B5C010R0009CDB433 EF25382R0B5C2323CDB.Í 33EF250538C1C9000000

60a 932 702

DUMP: 6 M M N . ° DE BYTES: 27

LISTADO B A» W..K RST I28;ULCUAOOR CALI STWLH OCFt I2M.KNCP. RS1 I28:CALCUA00K 0CF8 HSIOIUIOII. 0CF8 I23¡LK WP. OÍFt !38;flN KF8 438;F1H ne 8C LO «.,(23343) «T N I C II N I C HL CALI STOU1 211 símil !«J 13384

güimos que USR pueda devolver al Basic un valor fue-

ra del margen de enteros entre 0 y 65535.

ENESIMA LISTADO A datos 382A0BSC010a0009CDB<l

LISTADO B

606

I) «c21 104 30 I

41 ;

I4MI2 MSimii

M i l STIMH RST 428;CALCUW0a¡ DEF8 MI ¡STK I 0ÍF8 I38;F1N

LO 11,(23343) LD SC.II AOO HL,BC CALI SIINK RST 02«;CAICUU00R 0CF8 845¡D1VIDIR 0£F8 884;EL8JAR 0EF6 83S¡FIN POP BC RET

254 STWU4 EMI 43384


54 GENERACIÓN DE NÚMEROS ALEATORIOS Longitud: 95 bytes. Dirección: reubicoble. Formo de uso: colocar en a l g u n a línea DEF F N E(A,B) = USR dirección: DEF FN F(A,B) = USR d i r e c c i ó n + 4, y hacer LET X = FN E(A,B) o LET X = FN F(A,B). En la primera forma de la rutina devuelve como resultado un número entero entre A y B, ambos incluidos. En la segunda devuelve un número racional compren-

d i d o entre A y B, incluido A pero no B. Las líneas 340 a 590 del listado ensamblador son una copia exacta de la rutina de la R O M que genera números aleatorios. El resto no son más que operaciones aritméticas p a r a conseguir el resultado deseado. En el primer caso la operación total que se hace es A + I N T ( R N D * (B-A + 1 ) . En el segundo caso, se hace A + R N D * (B-A). Las dos los hace una misma rutina,

1 íinea 1 2 3 4 5 6 7 8 9 10

LISTADO A datos

control

3EFF1801AFF52O0BSC23 23COB433EF31382O0B5C 010OO009CDB433EF0103 38F1FSA72804EFP10F38 ED4B765CCD2B2DEFA10F 34371604348041000080 3202H1033138CDP22DED 4376SC7EP72303D61077 EF040F38F1R72002C1C9 EF2738C1C90000000000

942 960 699 1224 1230 S06 970 962 1150 728

DUMP: 6 M Í » N . ° DE BYTES: 95 que se sirve de un indicador para saber si se trata de uno u otro caso. Dicho indicador

se inicializa a un valor o a otro según entremos en la rutina por punto o por otro.

LISTADO B ocre m¡FiN i*m£«OS AlEAlttIOS" 21 MES 10

I)

A,!»

n 6UWM

<1 «CIO X0« A III GUASCA PUSH AF I I I M C S I l t »,<735431 III INC Hl INC » CAU SlUflH (SI l2t;CAlCtl«<* OEFB 131 ¡DUPLICAS

10 * ,<235431 10 6C.1I ACO Hl,8C CALI S1MH PST I2«;CAICULA0» DEFB II] ;IN1E«W1BI DEF8 M3;(fSTAR DEFB I3B;F1N POP Af PUSH Af tta A J« ¡.NBFIE! ÍST I?8;CAÍCUIAK* DEFB MI:S1I I

B Híitomt 8 KliSU I B II3;(ESTA( I I31¡0UP11CAB S I3S:PIH L FPTOBC <2JI7tl.lt

321 DEFB IIF;StlW 331 0ÍF8 I3S;F]N 3« NEH1E1 10 8C,<234711 351 CAIL S1AKBC 3íl (SI I38;CACLIAC0P 371 OEFB MI ;Sn I 381 OEFB IIF;SU*« 3N OEFB I34;S1K DATA <11 OEFB 137 <11 OEFB 114 <71 OEFB ll< <31 OEFB l3<;Stt (ATA «I OEFB I I I <51 0EF8 MI OEFB 111,111,1 0EF8 >32^00

<HI,A l2t;CALCUAOO« I IMÍUTIHICA

OEFB 127; 1HT OEFB I38¡FIN PW BC 771 STMC8C EBU I202t 711 FPT00C EBU I20A2 m sinw EW I338<

FACTORIAL Longitud: 34 bytes. Dirección: reubicable. Forma de uso: colocar en a l g u n a línea DEF F N F(N) = USR dirección, y hacer LET X = FN F(N). La rutina está p r e p a r a d a p a r a el caso especial de 0 , cuyo factorial es 1 por convenio. Debido a la forma de almacenar los números en el Spectrum, no se p o d r á calcular el factorial de números superiores a 32. Si utilizamos números más grandes, o simplemente números no enteros, podre-

mos obtener resultados extraños o bien el error 6 N u m b e r too big. El algoritmo de su funcionamiento es el siguiente: — Introducir un 1 en la pila. — Tomar el número N . — Si es 0 , retornar, devolviendo 1 c o m o resultado. — C a r g a r C con 2. — Realizar un bucle N - l veces. De esta f o r m a se sale de la rutina cuando N es 1, cuyo factorial es también 1. Dentro del bucle:

LISTADO A

LISTADO B

I BUFAC DEC 8 71 FACI H >1 III

«SI I78;CAICIIAK« 0EF8 IA1;STK I OEFB I3»¡FIH 10 IX, <235431

i

I I I

n í.esui

PUSH BC LD B.l CALI S1IBC

231 DEFB I38¡FM 741 POP BC 75t INC C 241 J« BUFAC 77t KSU11 PW BC

281 2« i

«fl

3tl FP10A EBU 12005


VEINTE ÚTILES

• Multiplicar el número de la pila (inicialmente 1) por C. • Incrementar C. Para multiplicar C por el

contenido de la pila, ponemos B a 0 (por lo que BC será igual a C) y utilizamos la rutina con la R O M STKBC, que almacena en la pila, en

f o r m a t o de cinco bytes, el valor contenido en BC, y después multiplicamos los dos últimos valores contenidos en la pila usando el cal-

ee;

culador. Recordemos que cuando hablamos de almacenar números en la pila estamos h a b l a n d o de la pila de cálculo.

CONVERSOR H EX ADECIM AL-DECIMAL Longitud: 41 bytes. Dirección: reubicable. Forma de uso: colocar en a l g u n a línea DEF FN H(A$) = USR Dirección, y hacer LET X = F N H(A$). A$ será una cadena de caracteres que sólo p o d r á contener números del 0 al 9 y letras mayúsculas de la A a la F. En caso de tener una longitud superior a 4 caracteres, sólo se tomarán como significativos los 4 últimos, pero si tiene más de 255 caracteres, la operación no se efectuará correctamente. Como el resultado será un número comprendido entre 0 y 65535, no necesitamos usar el calculador, sino que lo devolvemos directamente en el registro BC. Esta rutina tiene una complicación

que no tenían las anteriores: el p a r á m e t r o que hay que pasarle no es un número, sino una cadena alfanumérica. En este caso los 5 bytes del p a r á m e t r o no representarán un número en coma flotante, sino que indicarán la dirección de memoria en la que se encuentra la cadena y su longitud. Además estos 5 bytes no estarán en (DEFADD) + 2, sino en (DEFADD) + 3, ya que a h o r a el nombre del parámetro no es una sola letra, sino una letra y el carácter " $ " . De los cinco bytes, el primero no se usa, los dos siguientes indican la dirección de la cadena y los dos últimos indican su longitud. Si el carácter es una cifra entre 0 y 9, su código esta-

LISTADO A 1 2

DD2R0BSCDD5E04OD56OS DD460621000078072812

997 675

292929296S6F10EEESC1 C9000000000000000000

1132 201

DUMP: 6 I . H I N . ° DE BYTES: 41

LISTADO B

«HBWOECIWL A KCIWlti 71 KEXOEC 10

IX,(23543)

N 7.CALCU M BUCAL LO A,(TC> INC OE

LO c,(ix><>

A

«I

LO

0,(IX'5>

rá entre 48-57, y habrá que restarle 48 para obtener su valor hexadecimol. Si es una letra de la A a la F, su

711 AOO XI,« 271 AOO HL,HL 731 AOO * ,HL 7<L AOO *.,» 754 I» L 741 LO L,A 77» OJNÍ BUCAL 281 CAICO M I X. 771 POP 8C

código estará entre 65 y 70, y habrá que restarle 55, o 48 y 7, como se hace en la rutina.

CONVERSOR DECIMAL-HBKADECIMAL Longitud: 59 bytes. Dirección: reubicable. Forma de uso: colocar en a l g u n a línea DEF F N D$(N) = " " A N D USR dirección, y hacer LET X$ = FN D$(N). N debe ser un número entero entre 0 y 65535. La rutina construye una cadena de 4 caracteres que representa el número en hexadecimol. A continuación, g r a c i a s a la s u b r u t i n a STACKSTO de la R O M almacena sus datos (dirección y longitud) en la pila de cálculo, y suma esta cadena con la cadena vacía que se

ha almacenado en la pila antes de llamar a la subrutina gracias a la expresión " " A N D USR dirección, por lo que al volver al Basic, dicha cadena vacía ya no lo será, sino que se habrá con-

LISTADO A 213R0009DD2FT08SCDDSE O4DDS6050E04O60478E6 0FC81ACBIB10FPFE0A38 02C607C630772B0D20E8 EB01040013CD822REF17 38010100C90000000000

781 697 1060 892 946 259

DUMP: 6 1 . M I N . ° DE BYTES: 59

LISTADO B 48 ¡"DECIMAL A HEXADECINALil

III LD E,(IXi<> III LD 0,(1X45) 124 LD C,4 131 8UHEX 10 B,4 148 LO A,E 138 «NO IS l<8 BUCIF «i 0 I» E DJN2 BUCIF

CP JR AOO AOO

II C.NUf A,7 A ,48

DEC KC JR EX

HL C N2.81KX 0E,H1

10 (HU,A

288 271 311 311 328 338 341 351 341 SPARE

10 8C,4 INC DE CAll I2AB2;$1ACKS10 RST I28;CALCIAAOOR DEFB II7;SLHAÍ S1K» DEFB I38¡FIN LO SC,I RET DEFV 8,1


56 vertido en el resultado de nuestra rutina. Esta es la f o r m a más sencilla en que podemos devolver cadenas al Basic. N o podemos

devolverlas directamente como resultado de USR a l igual que hacíamos a l devolver números porque el sistema operativo siempre

espera que el resultado de USR sea un número, y no podría tratarlo como una cadena. Antes de regresar al Basic se carga un 1 e n

el registro BC p a r a evitar que contenga 0 y la expresión cadena A N D 0 dé otra vez la cadena vacía.

MULTIPLICACIÓN DE CADENAS ALFANUMÉRICAS Longitud: 63 bytes. de una supuesta cadena Dirección: reubicable. con esta longitud. Al sumárForma de uso: colocar en sela a la cadena vacía, se a l g u n a línea DEF F Ncrea en el área de t r a b a j o M $ ( A $ , N ) = " " A N D USR una cadena de las dimend i r e c c i ó n y h a c e r LET siones deseadas, que posteX $ = FN M $ ( A $ , N ) . riormente rellenaremos con los caracteres adecuados. Esta rutina no es propiamente aritmética, pero la colocamos en este g r u p o por su uso del calculador. Lo que hace es crear una cadena igual a N veces la cadena especificada. Por •I ; «UT1PLIM» CAOEMH ejemplo, para llenar la pantalla de asteriscos haríamos 71ttDEHÍID IX,(23S«> SI LD E,(IX*Í) PRINT FN M $ ( " * " , 7 0 4 ) . « LD D,11X17) La rutina comienza calcuIII PUS" DE III LD L,(IX<I3> lando cuál va a ser la longiI» LD H.IIXMO tud total de la cadena, y almacena en la pila los datos

LISTADO A ínea 1 2 3 4 5 6

datos

control

DD2R0B5CDD5E06DD5607 D5DD6E0DDD660EE5CDP9 30E5C1OFCDB62PEF1731 38CDF12BDD6E04DD6605 DDE1C1DD7CDDB5280PDD 2BE5C5EDB0C1E118F001

1001 1497 1385 1208 1657 1565

DUMP: 6 M M N . ° DE BYTES: 63

LISTADO B

Mil STKS10 ttST l2í;CAlClXA«0t OtfB II7:SIHU CADE

«. DÉ IA CAOS* 2« LD L,<IX«) 1U LD H,<IX<S) 241 POP IX 271 W K 781 8U1E OCfB 221

0(fB I31;0UP11CAA «FB I3B¡EIN CALI S7«ET;1M> DI

POP

ec

POP Hl J« BUCLE LO BC.I <31 STKS10 ¡«I I2A84 « I SlKfEt EOU I2BFI <51 «POCE EtU I3IAÍ

Las i n t e r r u p c i o n e s t a m b i é n son u n a p a r t a d o m u y p o t e n t e d e l S p e c t r u m , a u n q u e d e e l l a s se h a h a b l a d o m u c h o m á s q u e d e l calculador. Para que una rutina de interrupciones funcione

OS /NT£RRUPC/ON£5

Sr"

q u e es u n c o n j u n t o d e 2 5 7 b y t e s i g u a l e s c o l o c a d o s e n u n a d i r e c c i ó n m ú l t i p l o d e 2 5 6 . P a r a a c t i v a r l a r u t i n a se c r e a d i c h a t a b l a y se c o l o c a e n el r e g i s t r o I e l b y t e a l t o d e d i c h a d i r e c c i ó n , d e s p u é s d e lo c u a l se p a s a a l m o d o 2 d e i n t e r r u p c i o n e s . La d i r e c c i ó n d e l a r u t i n a d e i n t e r r u p c i o n e s d e b e r á ser i g u a l a 2 5 7 p o r e l n ú m e r o contenido en l a t a b l a . Todo esto significa q u e no p o d e m o s colocar l a r u t i n a en cualquier d i r e c c i ó n , p o r l o q u e a d i f e r e n c i a d e t o d a s las a n t e r i o r e s , l a s 4 s i g u i e n t e s n o son r e u b i c a b l e s . En t o d a s e l l a s , l a t a b l a d e i n t e r r u p c i o n e s se e n c u e n t r a a p a r t i r d e l a d i r e c c i ó n 6 4 7 6 8 , y l o r u t i n a d e interrupciones propiamente dicha en l a 6 5 2 7 8 .

LECTURA DE TECLADO Longitud: 97 bytes. Dirección: 65254. Activación: R A N D O M I Z E USR 65254. Desactivación: R A N D O M I -

ZE USR 65261. Esta rutina crea una tabla de 40 bytes a partir de la dirección 65311. C a d a byte se corresponde con una te-

cla. En la figura 1 vemos de qué f o r m a . El byte correspondiente a una tecla será 255 si la tecla no está pulsada y 0 si lo está. Esto nos

servirá p a r a hacer p r o g r a mas en Basic que necesiten leer la pulsación de varias teclas a la vez, o la de una tecla independiente de que


VEINTEei R U T I N A S ÚTILES 3 I

otras estén pulsadas o ya que c o m o función

sabemos,

INKEYS

mite la l e c t u r a

sólo de

no,

ha

sido

la

de

IN

per-

una

c l a c u a n d o es l a ú n i c a

pulsada, dificulta

y el la

te-

nos

que

de

FIGURO

de

una

vez

los

dardatos

5.

1

•000000000 •000000000 •000000000 •000000006 15 16 17

18 19 2 4 5 3 2 2 5 1

50

10 11 15

13

55

5

6

7

SUMRR

14 2 9 5 8 5 7 5 6

8

9

34

4

39 38 37 36

3 3

35 31

6 5 3 1 1 RL N U M E R O TECLR DESERDR

LISTADO A

uso

lectura

de u n a sola tecla p a r a

DE

30 35

LR

1 2 3 4 5 6 7 8 9 10

2100FO3EFE772C20FC24 1085 773DED47EDSEC93E3FED 1382 S6ED4 7C9F5C5D5E50EFE 1747 211FFF 79D8FES7060SCB 1214 1R9F772310F9C80138EF 1103 E1D1C1F1C33800008B2C 1302 8133000RC20B44 00005C 603 000RC206000RC60BE6FE 9 1 8 04011709C9050F3CBE3C 568 2B2065331000ED000000 493

DUMP:

6 M M

N . ° DE BYTES: 9 7

LISTADO B <1 ; iilíOU» « TECLAS*» 71 01$ w ; t ACT1W 10 III LD III INIC LD 121 INC 131 J« 1*1 INC 151 LD 141 OEC 121 LO

IÍEE4 HI.IFNI A.IFE (»),A l N2.INIC H (HL),A A l,<

270 ¡ 288 LEETEC PUSH AF 298 «JSH 8C 381 PUSH DE 318 PUSH W 328 LO C.254 338 LO M.,TECLAS 348 BUCLE LD A,C

IN A,(2541 LO D,A LO 6,5 381 TECS I» 0 S8C A,A LO (HL),A INC K. DJH2 TECS StC C Jí C.8UCLC POP HL POP 0E POP BC POP AF JP 54 S OEfS 41

FLASH DE UNA VENTANA Longitud:

151

Dirección:

na linea DEF F N

que podemos cambiar

F(X,Y,A,L,

todo

lo q u e d e s e e m o s , y n o simp l e m e n t e p a p e l p o r tinta

y

P,S,V) = USR 6 5 1 9 8 , y h a c e r

tinta p o r p a p e l . X e Y s o n las

RANDOMIZE

c o o r d e n a d a s en b a j a

FN

F(X,Y,A,

L, P , S , V ) . Desactivación: ZE USR

RANDOMI-

reso-

lución d e la e s q u i n a

supe-

rior i z q u i e r d a d e la

venta-

n a . A y L s o n el a l t o y el a n -

65271.

Podríamos también haber

c h o e n c a r a c t e r e s d e la mis-

entre

ma.

P y S s o n los

las d e m a n e j o d e v e n t a n a s .

que

queremos

Con ella p o d e m o s hacer un

a l t e r n a n d o e n el FLASH,

colocado

esta rutina

LISTADO A

FLASH un tanto especial, ya

bytes.

65198.

Activación: colocar en algu-

atributos

que

1 2 3 4 5 6 7 8 9 10 11 12

2100FD3EFE772C20FC24 77DO2R0B5COO7E042616 87878787CB1487CB14DO B60C6F223EFFDD7E2432 40FFOD7E2C3241FFDD7E 14 321DFFDD7E1C3221FF DD7E34 3207FF3EFDED4 7 E05EC93E3FED56E047C9 F5C5D5E53R42FF3CFE00 382R3R4 3FFEE013243FF 214 0FF2801237E2R3EFF 0600CSE5010000545D1C

13 14 15 16

1085 896 1342 1089 1427 1067 1334 1489 1577 1089 913 638

DUMP:

6 M M

N . ° DE BYTES: 151

770D2802EDB0E10E2009 867 C110E8RF3242FFE1D1C1 1617 F1C33800000000000000 492 00000000000000000000 0

vayan y

LISTADO B

(I ; ••FLASH CE UEHTDHtSii

91 ACTIVA LO III LO III INIC 10 121 INC 131 J8 141 INC 151 LO 141 10

HL,IF088 A.IFE (HL),A L Ni,INIC H (»M IX,(23543)

211

AOO A,A AOO A,A A» A,A A» A,A 81 H AOO A,A a H 08 (1X412) LO l / l LO (0i>m>,n LO A,(IX<34) LD (An8S>,A LD A,(1X*44) LD (AnHS«l),A

LO LO 10 LD LO LO LO LO 114 ITT

A,(IX<28) (F1LAS'I),A A,(IX<28) ICOUISMM A,(IX<52) (UELP<I),A A,IF0 l,A 2

588 VELP

CP 8

(FIASSH),» HL ,ATTRS 2,rALIS

INC HL LO A,(H) 10 HL.(OIÍIN) LO 8,8 PUSH BC PUSH HL LO 6C,8 10 D.H 10 E,L INC E 10 <HL),A OEC C JP 2,«COL 1018

878 POP 0E 881 POP BC 891 PW AF 911 JP 54 911 ; 921 01 SIN OEFU 8 938 An«S OEFU I 941 CW1 OEFB 8 958 FLAOSH OEFS I


58 se construyen de la f o r m a ya conocida. V es la velocid a d del cambio de un atri-

buto a otro, siendo 1 la más r á p i d a y 255 la más lenta. De esta f o r m a podemos

conseguir un tipo de FLASH semejante al de los ordenadores Amstrad CPC, en los

cuales podemos hacer flashes de tinta o de papel por separado.

RELOJ Longitud: 195 bytes. Dirección: 65172. Activación: colocar en alguna línea DEF FN R(H,M) = USR 65172, y hacer RANDOMIZE FN R(H,M). Desactivación: R A N D O M I ZE USR 65213. H es la hora entre 0 y 23 y M los minutos entre 0 y 59. Una vez activada aparecerá un reloj en la esquina superior derecha de la pantalla, que sólo se detendrá cuando se ejecute algún BEEP o alguna instrucción del cassette, pues éstas inhabilitan las interrupciones.

La rutina usa su p r o p i a subrutina de impresión, ya que usar la de la R O M durante las interrupciones causaría problemas. Para poder calcular el tiempo con exactitud, basta con que sepamos que las interrupciones se producen 50 veces cada segundo, por lo que tendremos que ir contando cuantas interrupciones se van produciendo, y cada vez que lleguemos a 5 0 , contar un segundo más. Luego, cuando lleguemos a 60 segundos contaremos un minuto, etc. La rutina de impresión utiliza la variable

línea 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20

LISTADO A datos

control

2100FD3EFE772C20FC24 77DD2R0B5CDD7E0432FR FEDD7E0C32FBFEOF32FC FE32FDFE3EF0ED4 7ED5E C93E3FED56ED47C90630 D60R38030418F94F7SC0 DBFE79C630CDDBFEC93E 3R87876F26O029EDS836 FE06087E23121410FRC9 000000000000FSCSD5E5 3RFDFE3CFE 3220253PFC FE3CFE3C20193RFBFE3C FE3C200D3RFRFE3CFE18 2001RF32FRFERF32FBFE RF32FCFERF32FDFE2118 4022F8FE3RFRFECDC4FE CDD9FE3AFBFECDC4FECD D9FE3RFCFECDC4FEE1D1 C1F1C338000000000000

del sistema CHARS, por lo que si la modificamos podremos hacer que las cifras

108S 1136 164-5 1765 1212 964 1791 900 934 884 1308 1308 1259 1492 1520 1817 2099 2124 685

DUMP: 60.009 N.° DE BYTES: 195

del reloj se impriman con caracteres definidos por nosotros.

LISTADO B 10 <SE6),A LO <CIHC),A LO A,IF0

LO l,A 71 61 ;

Ote IFE7I

7IACT1UAL0 IH LO III IN1C LO 171 INC 131 J» INC

HL.IFHM A.IFE (»),A l N2.1NIC

331 ; 341 WK 3M 8UC

LO IHOMI,» LO A,(IX.I2) LO (NIN),A

LO SI» JR INC JR 10 LO

8,48 II C.D4CA 8 8DC C,A A,8

HL ,Hl OC,(23418) «..Oí

oc,(sim>

411 BPR

LD A,(U)

448 454 441 478 481 471 788 711 721

ra

: SlPUl KOI» 0CF8 I NIN 0EF8 I SES OÍFB 8 CINC DEFB I ¡ ORÍ IFEFE PUSHAF PUSH BC PUSH DC PUSH m LO A,(CINC)

XOR LO XOR LD LD LO

711 JR N2,WKA3 711 LO A,(KOMI 721 INC A n CP 24 741 JR NZ.WHM 754 IR I 748 NCMA4 LO IH«K),A 771 Xt« A 781 NWS LO (NIN),A

A (SES),A A (CINC),A H,14416 (StPít),

LD A,(HW) CALI NW CALI PdlNOP LO A, (NIN) CALL W( CAIL PRINOP LO A,(SES) CALL NLH POP HL PO> D€ POP 8C Pt» AF

SCROLL DE U N MENSAJE POR LA PANTALLA Longitud: 168 bytes. Dirección: 6 5 2 0 0 . Activación: colocar en alguna línea DEF FN S(D,L) = USR 6 5 2 0 0 , y hacer RANDOMIZE FN S(D,L).

Desactivación: R A N D O M I ZE USR 6 5 2 6 0 . D es una dirección a partir de la que p r e v i a m e n t e ' habremos colocado los códigos ASCII del mensaje deseado, finalizando con un

255. L es la línea en la que queremos que aparezca el mensaje que p u e d e ser cualquiera entre 0 y 23. La rutina utiliza las siguientes variables internas: — DIRSC. Dirección de

memoria del extremo derecho de la línea en la que queremos efectuar el scroll. Es calculada al activar la rut i n a y a l m a c e n a d a en DIRSC p a r a su posterior uso.


VEINTEei RUTINAS ÚTILES3I

— CONSC. Contador de scrolls. Sirve p a r a saber cuándo hemos efectuado 8 scrolls de un pixel y debemos, por tanto imprimir otra letra. — TEXIN. Dirección de memoria donde se encuentra el comienzo del texto a imprimir. — TEXAC. Dirección del carácter del texto que debemos imprimir a continuación se inicializa originalmente en la activación con el mismo valor que TEXIN. — BUFF. N o es exactamente una variable, sino un espacio de 8 bytes en el que almacenamos el carácter que va a aparecer en la pantalla. El procedimiento de la rutina es el siguiente: — Incrementar (CONSC). — Si no ha llegado a ocho, pasar directamente al

n11

proceso de scroll. — Se toma el contenido de la dirección señalada por TEXAC. — Si es 255, se vuelve a inicializar TEXAC con TEXIN p a r a que el texto se repita desde el principio. — Tanto si se ha inicializ a d o como si no, se incrementa TEXAC. — Se calcula la dirección de memoria del carácter correspondiente y se trasladan sus 8 bytes a BUFF. — Aquí comienza el proceso del scroll. Cargamos HL con (DIRSC) y DE con BUFF, o lo que es lo mismo, HL señala a la primera línea de pixels de la fila correspondiente de la pantalla y DE a la primera línea de pixels del carácter que está entrando en la pantalla. — A h o r a entramos en un bucle que se repetirá ocho veces. Coda pasada por el

I

bucle efectuará el scroll de una de las ocho líneas de pixels que tiene de alto un carácter. Dentro del bucle: — Giramos o «scrollamos» el carácter almacenad o en BUFF. De esta manera queda en el bit de acarreo el pixel que ha de entrar en la pantalla. — Realizamos 31 veces un bucle en el que vamos desplazando toda la línea. El uso de RL pasa al bit de a c a r r e o el pixel que ha de pasar al byte siguiente (en realidad el anterior, ya que estamos haciendo un scroll hacia la izquierda), a la vez que toma del a c a r r e o el pixel que viene del byte anterior (en realidad el siguiente). — Desplazamos el último byte por la izquierda. — A l z a m o s los c i n c o bytes inferiores de L p a r a

LISTADO A línea 1 2 3 4 5 6 7 8 9 10 11 12 13 14

datos

<ontr

2100FD3EFE772C20FC24 773E 0732F 3FEDD2H0B5C DD6E04DD66052254FF22 56FFDC>7E0C4 7 E 6 0 7 0 F 0 F 0FF6 1F6F78E6 18F64 067 22F4FE3EFDED47EDSEC9 3E3FE0S6ED47C9000000 FAC9000000000000F5C5 D5E53OF3FE3CE60732F3 FE20232R54FF7EFEFF20 042O56FF 7E232254FF26 006F292929ED5B365C19 11F6FE010800EDB02PF4 FE11F6FE 0E08EBCB16EB

1065 1101 1070 1038 1190 1687 957 893 1S87 1369 959 733 1225 1488

DUMP: 60.000 N.° DE BYTES: 168

que HL vuelva a señalar al extremo derecho. — Hacemos que tanto HL como DE señalen a la siguiente línea de pixels para que estén listos p a r a una nueva pasada por el bucle.


híilrf SLflP FlbHT 1:, 2

!tt

A l comenzar el juego lo p r i m e r o que llama nuestra atención es un curioso conjunto de nombres en la esquina interior de la p a n t a l l a . C a d a p a l a b r a tiene un significado. N o es necesario pulsar continuamente la tecla de d i s p a r o p a r a utilizar las armas, y a que si deiamos el d e d o puesto en el d i s p a r o el fuego es constante.

A l eliminar alguno de los enemigos aparecen unas estrellas como la que se observa en la foto anterior. A l recogerla en el menú de opciones a p a r e c e una flecha ¡unto a la p a l a b r a SPEED, con ella conseguimos que el movimiento de la nave sea dos veces superior, p a r a ello pulsaremos la tecla space.

Si no utilizamos ésta tecla, al recoger otra estrella la flecha p a s a r á a la siguiente p a l a b r a y así hasta que utilicemos alguna de ellas. S H O T , nos permite utilizar los misiles.

SIDE, hace que nuestra nave sea prácticamente inalcanzable por los flancos. C u a n d o disparamos, a ambos lados de la nave aparece una b a r r e r a protectora.


El i n t r é p i d o p i l o t o a los m a n d o s d e su sofisticada n a v e se dispuso a introducirse e n el m u n d o oculto d e l m e g a b ú s . Este se encontraba repleto de pequeños bytes d e g e n e r a d o s p o r la t e r r i b l e e x p l o s i ó n d e la R o m , q u e se p r o d u j o a l r e c a l e n t a r s e la c e n t r a l d e la U l a .

Este j u e g o , c o m o la m a y o r í a d e los q u e ú l t i m a m e n t e a p a r e c e n e n el m e r c a d o ( X e v i o u s , 1 9 4 2 , etc.) es s i m i l a r a los d e las m á q u i n a s d e j u e g o d e los bares. Para a y u d a r o s a llegar al final, hemos p r e p a r a d o unos c a r g a d o r e s y unos p e q u e ñ o s consejos q u e os p e r m i t i r á n a c a b a r el j u e g o con u n a g r a n p u n t u a c i ó n .

Ultltf 5U5P

Nuestro pequeña nove puede llegar a convertirse en un arsenal volante utilizando la opción del menú denominada W I N G . C o d a vez que pulsemos la tecla space dentro de esta opción, nuestra nove incorporará una p a r e j a de lanzaderas más a sus flancos.

Podemos triplicar el t a m a ñ o de la nave, colocando el cursor en la opción W I N G . También hemos de tener en cuenta que al ser m a y o r nuestra nave más fácilmente puede ser a l c a n z a d a por un d i s p o r o enemigo.


En casos de a p u r o un a r m a secreta hará que recorramos una gran distancia del m a p a . En el menú se encuentra en último lugar y su nombre es SHIELD. En la foto no podemos ver su estupendo p o d e r , pero al utilizarla observaréis que el b o r d e de la p a n t a l l a empieza a p a r p a d e a r y hasta que esto termine nuestra nave es indestructible sea cual sea el tipo de enemigo al que nos enfrentemos. Este arma se desgasta por el choque con enemigos o con cualquiera de sus disparos, así como por la cantidad de éstos que nosotros realicemos.

B O M B , como su p r o p i o nombre indica, b o m b o , hace que nuestra l a n z a d e r a despida unas poderosas bombas capaces de destruir t o d o aauello que se encuentre al alcance de su terrible o n d a expansiva.

Los paisajes se van generando a nuestro paso, siendo de lo mós pintorescos a medida que nos a d e n t r a m o s en el j u e g o .

FASES DE LA HAWE

á

(é)

4

Todos los enemigos son eliminados con cualquiera de las armas, ya sean bombas, misiles o láseres, pero cada uno de los enemiaos es más vulnerable a una de ellas.


Lo m a y o r í a d e nuestros e n e m i g o s están r e p r e s e n t a d o s p o r unos p l a t i l l o s v o l a n t e s q u e se d e s p l a z a n con m o v i m i e n t o s siempre ¡guales por la p a n t a l l a , d i s p a r a n d o al p u n t o en d o n d e se encuentre nuestra n a v e , p o r lo q u e es a c o n s e j a b l e no p e r m a n e c e r quieto demasiado tiempo.

U n o d e los e n e m i g o s más i n c ó m o d o s son una especie d e c i l i n d r o s móviles que se d e s p l a z a n e n t r e las v i g a s d e l suelo. A l d e s t r u i r l o s a p a r e c e un n u e v o e n e m i g o .

SPECTRUM 10 BORDER 0 : PRPER 0 : 000 _ 2 0 LORD " S C r ' S C R E E N »

CLERR

2S

LORO

RANDOMIZE

U


A l llegar a este punto del juego es aconsejable el uso de SHIELD, ya que unas pequeñas naves con tormo de mosquitos se colocarán en línea recta b u r l a n d o nuestros ataques, y al posarse en una de las plataformas d i s p a r a r á n en todas las direcciones. La única forma de destruirlas es en ese momento o , con un poco de suerte, dispararlas ¡usto cuando el centro de la nave esté en el blanco.

A l término de la primera fase, en una especie de autopista en la que no a p a r e c e ningún enemigo, una inmensa nave subirá y b a j a r á recorriendo la p a n t a l l a d i s p a r a n d o continuamente.

Los alacranes mecánicos los destruiría lo abuelita poke con la m i r a d a , pero no es imprescindible. Hasta nosotros, torpes humanos, hemos encontrado un sistema más fácil p a r a a c a b a r con tan asquerosa especie de reptiles. Basta con que coloquéis vuestra nave en la parte i z q u i e r d a de la pantalla y a media a l t u r a , en cuanto veáis aparecer el primero poneros un poco más a la i z q u i e r d a de donde apareció éste y disparar continuamente, no aparecerá otro, y a que se destruirá antes de salir en la pantalla.

A l final del juego, p o r a sobrepasar las defensas, haremos movimientos circulares a l r e d e d o r de éstas, d i s p a r a n d o misiles teledirigidos y teniendo en cuenta que cuando empiezan a desaparecer éstas no d i s p a r a n más. A continuación una nueva defensa aparece por la parte superior de la p a n t a l l a por lo que deberemos b a j a r .


V "

CASSETTE SPECTRUM -1.600 ptas. CASSETTE COimODORE • 1.600 ptas. CASSETTE AMSTRAD • 1.600 ptas. DISCO AMSTRAD

SERNA

UniUAMI

CHA r „

SALAMANDER Has entrado

en las profundidades

del espacio, el cual está

dominado

por una criatura cuyos poderes maléficos sobrepasan tu imaginación. La salamandra

tiene esclavizado a todo su reino y, ¡SOLO TU PODRAS

LIBERARLO! aniquilando

su fuerza

destructora.

JACKAL Tu misión con contraseña

JACKAL consiste en infiltrar

tras las lineas enemigas y rescatar Acosado

por el ataque

destruir su cuartel

I

a un grupo de

enemigo, deberás cumplir

cuatro

comandos

prisioneros.

tu principal

objetivo:

general.

KONANU ESTA OISTRIBUIDO EXCLUSIVAMENTE EN ESPAÑA POR SERMA CARDENAL BELLUGA 21. 28028 MADRIO. IELS. 256 10 83 • 12 22 VEN A VISITARNOS O MANDANOS ESTE CUPON A KONAMI SHOP. FRANCISCO NAVACERRADA. 19. 28028 MADRID. TEL. 255 75 63

. FORMA DE PAGO TALON BANCAS» Q CONTRARREEMBOISO •


66 t ^ f ^

(§EADOR X DE JUEGOS

L

o que presentamos hoy es una modificación y adaptación de la anterior rutina de sprites. Los que no tengan el MlCROHOBBY Especial número 6 no deben preocuparse, pues incluimos también en este número dicha rutina. Pero los que sí lo tengan y hayan tecleado los listados publicados en él no necesitarán teclear el listado 2 o el 5, pues equivalen respectivamente a los listados 3 y 4 del artículo anterior, así que cada vez que se hago una referencia a dichos listados utilizarán los que yo tienen grabados. Evidentemente, antes de poder usar el programa, necesitamos tener unos gráficos que dibujar. Para diseñar vuestros gráficos podéis usar uno de los muchos programas de dibujo disponibles comercialmente. Para los gráficos de la demostración que acompaña a este artículo se ha usado el Edigraf, publicando en el MlCROHOBBY Especial número 4. Como ya explicamos en el artículo del número pasado, los sprites constan de dos gráficos: el gráfico propiamente dicho y su máscara. Ambos deben tener las mismas dimensiones y estar almacenados consecutivamente en la memoria. En la máscara deberemos llenar con tinta las zonas del grá-

Mk

fico que sean transparentes. Si un sprite consta de varias fases de animación almacenaremos las fases una detrás de otra, y cada gráfico con su máscara detrás. Podríamos dar muchos más detalles sobre la forma en que se crean y almacenan los gráficos y máscaras, pero ya hay mucha literatura sobre el tema y será mejor que en este artículo no entremos en más explicaciones y nos dediquemos al teme que nos ocupa. Tan sólo diremos que los gráficos a usar por las rutinas expuestas aquí deben ser almacenados sean tras sean, es decir, primero todos los bytes del primer sean de izquierda a derecha, luego los del segundo, etc.

Características de la rutina Con la rutina presentada en este artículo podemos definir un mapa de un máximo de 255 por 255 caracteres, con un número de objetos sólo limitado por la cantidad de memoria y la velocidad. Todos los objetos existentes en el mapa serán de una de las 255 clases de decorados que podemos

RCADE

En el anterior número de MICROHOBBY Especial publicamos una rutina que permitía controlar sprites desde nuestros propios programas en Basic o C/M. Ahora no sólo podréis dibujar los sprites, sino también los decorados y los fondos de vuestros juegos, y moverlos con un suave scroll, todo ello con gran facilidad gracias a este programa monitor.

definir como máximo. Cada una de estas clases de decorados tendrá un gráfico y un color determinado (sólo un color por decorado) y unas dimensiones cualesquiera con la única condición de que sean menores que las de la pantalla del ordenador (24 por 32 caracteres). Podemos definir el tamaño de lo ventana en la que queremos que aparezcan los gráficos en la pantalla, lo que nos permite reservar una zona de la pantalla del ordenador para marcadores o lo que queramos. Esto no era posible con la rutina de sprites anterior. Tenemos un máximo de 17 sprites cada uno con las dimensiones, fases de animación, color, velocidad, etc., que queramos. Además del movimiento en línea recta podemos definir trayectorias preprogramadas para que las sigan los sprites que queramos, y también podemos controlar directamente el movimiento con nuestro programa. Existe la posibilidad de detectar el choque entre dos sprites o entre un sprite y iualquiera de los restantes.


CREADOR DE m -w JUEGOS ARCADE O /

"Con la rutina presentada en este artículo podemos definir un mapa de un máximo de 255 por 255 caracteres"

i i i > i i s

Queda a cargo de nuestro programa la acción que queramos llevar a cabo cuando el choque se produzca. Igualmente se puede detectar el choque entre un sprite y un objeto del mapa, bien sea uno cualquiera o de una clase determinada.

; i

Programa ircuitc-

' i

Para facilitar al máximo la introducción de todos los datos necesarios para definir el mapa de un juego, hemos desarrollado un programa Basic que se encarga de pedirnos y procesar toda la información requerida. Para poder usarlo tendremos que teclear en primer lugar el listado 1 y grabarlo con UNE 1. A continuación tecleamos el listado 2 en el cargador hexadecimal o bien el listado 5 en un ensamblador (o los listados equivalentes del número pasado) y grabarlo como "CODSPRIT". Por último tedearemos el listado 3 o el 4 y lo g r a b a r e m o s como " C O D M A P " . Para usar el programa lo cargaremos

a

'

'

V

todo desde el principio. El programa nos permite cargar un bloque de bytes en el que se encuentren todos los gráficos que vayamos a utilizar (ya sean de sprites o de decorados). Nos preguntará qué longitud ocupa el bloque y en que dirección fueron creados. Cuando hayamos terminado la introducción de datos, el programa trata de colocar los gráficos lo más alto posible en la memoria, justo delante de las rutinas y datos de mapas y sprites. De esta forma conseguimos aprovechar al máximo la memoria. Al mover el bloque de los gráficos cambiarán las direcciones en que se encuentran éstos, así que el programa se encarga automáticamente de calcular la nueva dirección de ca-


68 da gráfico a partir de su dirección antigua, la dirección original donde comenzaban los gráficos y la nueva dirección de comienzo. Tanto si hemos c a r g a d o gráficos como si no, pasaremos después a lo que hemos llamado definición de formatos, por llamarlo de alguna f o r m a . Son una serie

diseñar los gráficos, pues deberemos dejar alrededor de cada gráfico un margen de al menos «n» pixels en blanco, siendo n la velocid a d del scroll. Esto sirve para evitar tener que b o r r a r los gráficos antiguos antes de dibujar los nuevos. Si no dejamos dicha franja en blanco, al moverse el m a p a

das que especificamos están fuera de la ventana definida previamente, dicho sprite no aparecerá. — C ó d i g o . C ó d i g o o valor de p r i o r i d a d (0-16) del sprite que vamos a considerar como principal. Será el código del sprite del personaje central del juego. — Dir de los gráficos de-

introducir todos los datos anteriores por si hemos cometido un error o, simplemente, hemos cambiado de idea. D e f i n i r sprites. P o r c a d a sprite se nos pedirán los siguientes datos: — Ancho en caracteres. Si se introduce 0 , se volverá al menú principal.

de determinadas posibilidades de las rutinas. Los datos que pide, comentados, son los siguientes: Datos del m a p a . — Color de fondo -l- 8 * brillo). El color se reiere al papel, puesto que se trata de un color de f o n d o . Al especificar más adelante el color de los sprites, sólo se d a r á la tinta, y se utilizará el papel especificado aquí. — Ancho en caracteres. Ancho total del mapa. Sirve p a r a delimitar los bordes del mismo. Cuando el sprite principal llega a un borde no p u e d e c o n t i n u a r avanzando. — Alto en caracteres, ídem que p a r a el ancho. — Velocidad del scroll. Es la cantidad de pixels que se moverán en el d e c o r a d o cada vez que avancemos. Preferiblemente un múltiplo de 2; los mejores valores están entre 2 y 16. Cuanto mayor sea el valor, mayor la velocidad, pero menor la suavidad. Es importante saber qué velocidad de scroll vamos a usar al ponernos a

los gráficos irán d e j a n d o rastros. D a t o s d e la p a n t a l l a . En esta sección se nos piden las dimensiones de la ventana que queremos que se vuelque en pantalla. Puede ir desde toda la pantalla hasta un solo carácter. Los datos necesarios son la fila y la columna de la esquina superior izquierda y el ancho y el alto, t o d o ello en caracteres. Nótese que la ventana puede contener parte o la totalidad de las dos líneas inferiores de la pantalla. Datos del sprite princip a l . El sprite principal es aquél sobre el que se va a producir el scroll, es decir dicho sprite q u e d a r á fijo en la pantalla mientras que los fondos del mapa y el resto de los sprites se mueven a su alrededor. — C o o r d e n a d a s X, Y. Coordenadas de la pantalla del o r d e n a d o r en las que aueremos aparezca dibujado el sprite. Si las coordena-

recha, a b a j o , etc. Son las direcciones donde tenemos almacenados los gráficos del sprite principal avanzando en dichas direcciones. Cuando posteriormente especificamos la dirección en la que queremos el scroll del m a p a , el sprite se dibujará con los gráficos correspondientes. Si sólo vamos a hacer, por ejemplo un scroll de cuatro direcciones, no necesitaremos las direcciones de los gráficos en diagonal, así que c u a n d o se nos pida la primera de éstas introduciremos un 0 y ya no se nos pedirán más. En cada una de las secciones se nos da la posibilidad de repetir los datos si nos hemos equivocado. Una vez introducidos todos estos datos previos pasamos al menú principal. En este hay varias opciones que veremos una a una: R e p e t i r f o r m a t o s . Nos da otra o p o r t u n i d a d para

— Alto en pixels. — Dirección del gráfico. Dirección donde se encuentra el primer o único gráfico de los que componen el sprite. — Fases de animación. 1 si no tiene. — Si en más de dos fases de animación se nos pide elegir, entre cíclica o adelante/atrás. En la primera al terminar la última fase, comienza de nuevo la primera. En la segunda, al llegar a la última fase, se repiten todas de nuevo hacia atrás, luego otra vez hacia adelante, etc. — Color {-t- 8"brillo). Sólo de tinta. Los sprites no tienen color propio de papel. — Coordenadas iniciales. Pueden valer entre -32768 y + 3 2 7 6 7 . Nótese que a h o r a no son coordenadas referidas a la panto-


CREADOR DEm-w JUEGOS ARCADE O/

lia, como sucedía con la rutina de sprites por sí sola, sino referidas al mapa. Si la coordenada X es mayor de 32511, el sprite se considerará desactivado. — Movimiento en línea recta. Nos permite elegir entre movimiento en línea recta o siguiendo una trayectoria preprogramada. Si en línea recta: — Incrementos X e Y (-128 a +127). Si trayectoria preprogramada: — Quieres definir la trayectoria. Nos permite definir la trayectoria que queramos.

Si contestamos no: — Dir de la trayectoria. Dirección donde comienzan los datos de la misma. Si contestamos sí: — Incremento X (o dir gráfico). Incremento X (-128 a +127) a efectuar a la coordenada X, o dirección del gráfico con que queremos que se dibuje el sprite. — Incremento Y. Este proceso se repite hasta que demos 127 como incremento X. Después se nos informará de dónde ha quedado colocada la trayectoria,

lo que nos servirá para su posterior uso. Definir d e c o r a d o s . Esta opción nos permite definir las clases distintas de decorados que podrá haber en el mapa. Cada decorado tendrá asociado un código, que es el que especificaremos al definir en el mapa un objeto de esa clase. Para cada decorado especificamos la dirección del gráfico, las dimensiones y el color. Definir m a p a . Aquí es donde realmente definimos los objetos existentes en el mapa. Para ello damos un código de decorado y unas coordenadas en caracteres. G r a b a r l o t o d o . Al elegir esta opción se colocan los gráficos (si se han cargado) en la posición más alta po-

sible, según los decorados, objetos y trayectoria que hayan sido definidos. También se hacen las actualizaciones de todas las direcciones de gráficos especificadas anteriormente. A continuación nos pide un nombre (máximo nueve caracteres) y nos graba las rutinas ¡unto con todos los datos y los

gráficos en dos bloques. Hemos de apuntar sus comienzos y longitudes, que aparecerán en la pantalla, para saber por debajo de qué dirección de memoria queda libre para nuestros programas. Toda la memoria comprendida entre la dirección del primer bloque y el final de la memoria está ocupada por los gráficos, las rutinas, datos, tablas, variables y la pantalla de trabajo, así que nuestros programas deberán estar por debajo. Hay que advertir que tras elegir la opción de grabarlo todo, podemos volverlo a grabar cuantas veces queramos, pero no podemos continuar con la definición, así que sólo debemos usarla al haber finalizado nuestro trabajo. En principio, no es posible grabar nuestro trabajo a medias, pero podemos lograrlo interrumpiendo el programa cuando estemos en el menú y salvándolo con cuidado de no borrar las

variables. A continuación grabaremos toda la memoria por encima de la direc-

ción 4 0 0 0 0 , es decir, CODE 4 0 0 0 0 , 2 5 5 3 6 . Para reanudar el trabajo otro día haremos: CLEAR 3 9 9 9 9 : L O A D " " : L O A D " " C O D E : G O TO 170 N u e v o m a p a . L a rutina está preparada para tener almacenados hasta ocho mapas y usar cada vez el que se quiera. Cuando hayamos terminado de definir un mapa y queramos comenzar otro, elegiremos esta opción. Utilización desde nuestros Una vez que hemos creado todos los datos con el programa monitor o de cualquier otra forma; (el programa monitor es una ayuda, no es indispensable para el uso de la rutina), podemos cargar los dos bloques de bytes creados y usarlos en nuestros propios programas. Una vez cargados: • Para activarlo todo debemos hacer: POKE 52966,N:RANDOMIZE USR 51900:POKE 23681,M N es el número de mapa


i

70 ( 0 - 7 ) , y M la c a n t i d a d d e sprites definidos. A partir de a h o r a p o d e m o s c o n t r o l a r la d i r e c c i ó n en q u e se m u e v e el sprite principal p o k e a n d o la d i r e c c i ó n 5 2 9 6 9 c o n un n ú m e r o entre 0 y 8. La figur a 1 muestra a q u é m o v i miento corresponde cada uno.

• Para d e t e c t a r el choq u e e n t r e dos sprites hacemos: POKE 23729,A: POKE 23728, B:IF USR 5 2 6 8 4 T H E N REM HAN CHOCADO • Para d e t e c t a r el choque entre un sprite y o t r o cualquiera hacemos b = 255. • Para detectar el choque

entre un sprite y un o b j e t o del m a p a hacemos: POKE 2 3 7 2 9 , 0 : POKE 23728,S: LET C = USR 52960 S es el c ó d i g o d e l sprite. Si O es 2 5 5 se c o m p r o b a r á el c h o q u e c o n c u a l q u i e r o b jeto del m a p a , en o t r o caso,

sólo se c o m p r o b a r á n los objetos cuya clase o c ó d i g o de d e c o r a d o sea O . C terminará v a l i e n d o 6 5 5 3 5 si no hay c h o q u e . En o t r o caso, será el n ú m e r o d e elemento dent r o d e la t a b l a d e objetos del m a p a c o n el q u e se ha p r o d u c i d o el c h o q u e . • Para d e s a c t i v a r la ruti-

FIG. 2 M A P A DE M E M O R I A

Dirección

Nombra

Descripción

Gráficos (de decorados y de sprites) (TAMAPA) Datos del mapa (TADECO) Datos de los decorados 2 Trayectorias prefijadas de los sprites Entrada principal de activación de la 51900 INIMAP rutina 52132 RELASU Transforma coordenadas absolutas en relotivas MAPA 52190 Subrutina principal de dibujo del mapa DIBMAP 52552 Dibuja un elemento del mapa TAUME 52668 Tabla de aumentos (usada para la dirección del scroll) 52684 N C O M C H Nueva entrada a C O M C H O C 52690 CHODEC Comprobación choque sprite-objeto Puntero a mapa actual 52927 TAMAPA NUMDEF Objetos existentes en el mapa actual 52929 Puntero a tabla de decorados 52931 TADECO 52933 NUMDEC Decorados distintos definidos Tabla de direcciones de los mapas 52934 TATABS Tabla de número de elementos de los 52950 TADEFS mapas 52966 MAPACT M a p a actual Color del fondo 52967 BACK Sprite principal 52968 MAIN Dir del scroll 52969 SCROLL 52970 MAPX Ancho del mapa (caracteres) 52971 MAPY Alto del mapa (caracteres) 52972 C O L U M N Columna izquierda de la ventana 52973 FILA Fila superior de la ventana 52974 Ancho de la ventana (caracteres) WIDSC Alto de la ventana (caracteres) HIGHSC 52975

Dirección 52976

Descripción

Nombre CALCUL

52977

FILAPE

52978

COLUPE

52979

DIRPE0

Valor usado volcado Coordenado principal Coordenada principal Dirección de derecha

por la subrutina de Y en la pantalla del sprite X en la pantalla del sprite los gráficos hacia la

Dirección de los gráficos hacia arriba a la derecha Velocidad en pixels del scroll 1 Variables internas. Coordenadas rela• tivas a la esquina superior izquierda de | la pantalla 52998 YPER 53000 Tabla de datos de los sprites TASPRI 53289 Tabla de los sprites que se van a dibuTABLDI jar en pantalla 53544 Espacio para guardar los trozos de SPARES pantalla 54568(7) ORIGSC Pantalla de memoria 60904 ORIGAT Atributos de memoria 61696 Tabla de interrupciones Activación de sprites (llamada por 61953 INICIO INIMAP) Desactivación de la rutina 62075 DESACT 62082 C O M C H O Comprobación de choque 62194 ENTINT Entrada principal de interrupciones 63488 Tabla de rotaciones

52993

DIRPÉ7

52995 52996

VESCRO XPER


CREADOR DE __ JUEGOS ARCADE //

na haremos RANDOMIZE USR 62075. Con esta información y mucha imaginación se pueden hacer grandes cosas sin demasiados esfuerzos programativos.

i

Demostración Para que podáis ver una pequeña muestra de lo que se puede hacer con estas rutinas sin necesidad de empezar a diseñaros vuestros gráficos y vuestro mapa, adjuntamos unos listados de demostración. Para ver la demo, hay que teclear pri-

mero el listado 6 y grabarlo con UNE 9999. A continuación grabaremos los ya tecleados listados 2 (ó 5) y 3 (ó 4). Por último, teclearemos y grabaremos los listados 7 y 8 en ese orden. Los datos del mapa y del sprite de esta demostración han sido creados con el programa monitor. Los gráficos se han hecho con el programa Edigraf antes mencionado. Controlamos una especie de tanque con las teclas de los cursores (5, 6, 7 y 8). Tan sólo como una burdo muestra de la utilidad que pueden tener las rutinas de detección de choques veremos cómo si nos abalanzamos contra un árbol yendo de abajo a arriba, éste será sustituido por un árbol

«roto». Aunque el efecto no está muy bien logrado, ilustra muy bien qué tipo de cosas se pueden hacer fácilmente. Seguro que sin mucho esfuerzo, cualquiera de vosotros podría hacerlo mucho mejor. Para acabar la demostración basta con pulsar la barra espaciadora.

Mapa de memoria y advertencias En la figura 2 tenéis un mapa de memoria completo. Las especificaciones señaladas con interrogación comienzan en direcciones indeterminadas, y no tienen por qué estar en ese orden en la memoria, pero ése es el orden en que se colocan cuando usamos el programa monitor. Las especificaciones con un nombre de etiqueta entre paréntesis comienzan en la dirección almacenada en dicha etiqueta. Los que tengan el número anterior, tal vez hayan

El sprite principal es necesario definirlo también dentro de la opción 2 del menú

FIG. 1 VALOR PARA LAS DIRECCIONES DE LOS SCROLLS (LA DIRECCIÓN ES LA DE MOVIMIENTO DEL SPRITE, NO DEL M A P A ) .

advertido que el listado ensamblador 5 no es exactamente idéntico al de dicho número, sino que tiene algunas etiquetas más. Estas etiquetas señalan puntos en los que la nueva rutina de mapa hace modificaciones sobre la antigua rutina de sprites, sin embargo, no son indispensables para ensamblar, así que es como si los listados fueran idénticos. También puede que hayan notado que la subrutina de comprobación de choque entre sprites tiene distinta dirección de ejecución. Esto es porque ahora se inhabilitan las interrupciones durante su ejecución para poder usar el registro IY sin interferir con la rutina de interrupciones de la ROM. Por último advertir que si definimos demasiados sprites o demasiado grandes tal vez no tengamos suficiente con el área reservada SPARES para almacenar trozos de pantalla. La única solución, como ya dijimos en su día, es cambiar la ubicación de la zona SPARES en el listado ensamblador, a no ser que podamos reducir la cantidad o tamaño de los sprites.



CREADOR DE __ JUEGOS ARCADE //

23670+CHR» PEEK 23671 2880 GO TO 2820 (+ CHR1 DRTO 2890 LET 2900 IF DPT0=127 2910 LET R*="INC 2920 LET HIN=-128 LET HRX=*1 2930 GO SUB 8500 REM INPUT2 T$*CHR$ ORTO 2940 LET GO TO 2480 3010 REH * 3020 3030 CLS

DECORPDOS.

3050 PRINT RT 21,0,"ULTIMO OECOR ROO DEFINIDO ";NUGRAS-1 3060 LET S=NUGRPS LET P$="OUE O ECORRDO (S=SIGUIENTE)" 3070 LET MIN=© LET MRX »S 3080 GO SUB 8100 REM INPUT 3090 LET RCTU=DRTO: IF PCTU<NUGR PS THEN LET PUNTERO=TRDECO +-5»PCT U GO TO 3140 3100 LET SPRC =5 3110 GO SUB 8400 REM RBRE SPRC 3120 IF ERROR = 1 THEN RETURN 3130 LET PUNTERO=TPTRPYS LET TR

3160 3170 3180 3190 3200 3210 3220

LET MRX =32 LET GO SUB 8100 REM INPUT POKE PUNTERO+2,DRTO LET R$ b"RLTO (PIXELS)" LET MIN=1 LET MRX=192 GO SUB 8100 REM INPUT POKE PUNTERO+3,DRTO

3250 GO SUB 8100 3260 POKE • PEEK D8RCK-

j

3280 3290 3300 ^310 3320 3330 3340 ?350

REM INPUT 0456»(OPT (PEEK

F ICO " R$ = "DI-. LET MIN =0: LET HPX=65535 GO SUB 8100 REM INPUT LET OFFSET =0 GO SUB 8300 REM POKE DOBLE GO SUB 8200 REM CORRECTO? TO 3140 IF PC s"N" TMEN EN RETURN IF PCTU <NUGRRS Í-ET ACTU» " LET NUGRRS =R OECORRD LET R«»"DEFI

3370 OS" 3380 GO SUB 8000 REM (S/N) 3390 IF R$a"N" TMEN RETURN 3400 GO TO 3100

"DEFINICI LET PCTU=0 t0 TMEN GO TO 21,0; "ULTI NTO DEFINIDO ";NUMPAI-1 LET P$e"OUE E 4060 LET S=SIGUIENTE)" 4070 LET HIN=0 LET 4080 GO SU8 8100 REM INPUT 4090 LET RCTU=DPTO: IF RCTU<NUMP RI THEN LET PUNTERO=TPHRPP+3*RCT U: GO T O 4140 4100 LET SPRC*3 4110 GO SUB 8700: REM RBRE SPAC2 4120 IF ERRORBI TMEN RETURN 4130 LET PUNTERO«TADECO-3 — 21 ,0, "ELEMEN 4030 CLS

4350 GO TO 4100 5000 5010 REM * GRRBRR

7520 CLS

30 CLS PRINT "ESPERA UN POCO GO SUB 5500 ÍOTRTPBS : LET D I

._ J

5060 LET OFFSET =2 *X*14 5070 LET DATO-C(X) 5080 GO SUB 8300: REM POKE DOBLE S090 LET OFFSET=2*X-2 LET ORTO =DIR 5110 GO SUB 8300 REM POKE DOBL 5120 LET DIR=DIR*CCX)»3 5130 NEXT X: RANDOMIZE TRDECO 5140 LET STRRT =TRMRPR: POKE DTR ECO,PEEK 23670 POKE DTRDECO+1, 5160 RRNDOMIZE CU 5170 POKE 63507,PEEK 23670: POKE 63508,PEEK 23671 5180 RANDOMIZE 40000+CUPOKE 5190 POKE 63501,PEEK eSSOl-P""" 23670 DOJ02,PEEK 23671 63502,PEEK S200 RRNDOMIZE TRMRPR-1 5210 POKE 63S04,PEEK 23670: POKE 63505,PEEK 23671 5220 RANDOMIZE TRMRPR-(TUDIR•CU) S230 POKE 63S16.PEEK 23670: POKE 63517,PEEK 23671 5240 LET PUNTERO=PUNTRBL: LET OF 5250 FOR X =TADECO TO TRTRRYS-S S TEP 5 5260 LET DRTO =X DOBLE 5270 GO SUB 8300: REM POKE POK 5280 LET OFFSET=OFFSET+2 S290 NEXT X 5310 LET DPTO= 5320 GO SUB 8300: REM POKE DOBLE 5330 LET OFFSET =OFFSET *2 5340 NEXT X 5350 FOR X-DIRPEO T O DIRPE0+14 S TEP 2 S360 LET DATO=X 5370 GO SUB 8300: REM POKE DOBLE 5380 LET OFFSET sOFFSET *2 S390 NEXT X 5400 LET DRTO«0

5410 GO SUB 8300: REM POKE DOBLE 5420 RRNDOMIZE USR 63500 5430 LET STRRT=TPHRPP-CU 5440 GO SUB 5450: GO SUB 7500 R ETURN 5450 CLS : LET L0NG=532890 INPUT "h " " "" 0 IF Rí«"" __ .8,-12 GO TO 5450 5480 PRINT R$; "1 ";STRRT,",";LON G: SRUE Rt+"l"CODE STRRT,LONG 5490 PRINT R», "2 ";61953;",";149 5: SRUE P$•"2"CODE 619S3,1495 5530 IF NUMPPS=0 THEN LET C(1)=N UMPAI: LET NUMAPSal: LET RESTO=N UMPAI: RETURN 5540 IF NUMRPS«8 THEN LET C(8) =C (8)•NUHPPI-RESTO: GO TO 5570 5S50 LET NUMRPS=NUMRPS4l 5560 LET C(NUMRPS)=NUMPPI-RESTO 5570 LET RESTO =NUMPRI 5580 RETURN 6010 REM • MENU * 6020 6030 RESTORE 6130. CLS 6040 PRINT " DEFINICION DE MPP

LET MINa©: LET MRX=255 GO SUB 8100: REM INPUT POKE PUNTERO42.DRTO GO SUB 8200: REM CORRECTO? IF P«a"N" TMEN GO TO 4140 IF ACTU < <NUMPAI NUMPPI TTHEN RETURN LET ACTU=ACTU UsACTU + 1 LET NUMPPI=PCTU 4320 LET R$="DEFINIR HRS ELEMENT

6050 PRINT TRB 14,"HENU"' 6060 FOR X»1 TO 6 RERD P * 6070 PRINT •'TRB 8 ; X ; " . ; R $ , 6080 NEXT X 6090 LET R»=INKEY$ 6100 IF P*> "7" OR At <"1" T H E N GO T O 6090 6110 LET OPCION =UAL A $ GO SUB 1 000*OPCION-500«(0PCI0N=6): IF OP CION =5 THEN RETURN 6120 GO TO 6000 6130 DATA "REPETIR FORHRTOS" 6140 DATA "DEFINIR SPRITES" 6150 DRTR "DEFINIR DECORADOS" 6160 DATA "DEFINIR HRPR" 6170 DRTR "GRABARLO TODO" 6180 DRTR "NUEUO MAPA" 7000 7010 REM * OTRA UEZ? » "QUIERES RECOMENZRR" 7030 LET

4330 GO SUB 8000 REM (S/N)? 4340 IF P*="N" THEN RETURN

7060 CLERR STRRT-1

4Í50"LÉT~R$="CÓDIGO DE DECORRDO" 4160 LET HIN=0: LET MRX=NUGRRS-1 4170 GO SUB 8100: REM INPUT 4180 POKE PUNTERO,DRTO 4190 LET R$ = "COORD X (CRRRCTERES 4200 LET MIN =0: LET HPX=255 4210 GO SUB 8100: REM INPUT 4220 POKE PUNTERO+1,DRTO 4230 LET A«="COORD Y (CRRRCTERES 4240 4250 4260 4270 4280 4290 4300

NEU

RINT "PULSR ENTER GRRBRR O CUPLOU FINPLIZPR"

7540 RETURN 8030 PRINT 00.P$," 8040 LET R«=INKEY$ 8050 IF P $ < >"S" PND GO TO 8040 8060 INPUT RETU 8130 INPUT (R$* 8140 IF DRTO > MP N BEEP .8,-12

OR DRTO <HIN THE

8160 RETURN 8230 LET R$= POKE DOBLE • =INT iDRTO/256) 8340 LET L0U=DRT0-256»HIGH 8350 POKE P U N T E R O * O F F S E T , L O - . 8360 POKE PUNTERO*OFFSET + 1,HIGH 8370 RETURN 0 REM * RBRE SPRC 0 IF TRMRPR-CU-SPRC<40000 THE ERROR RINT n0, FLASH CABE EN LA MEMORIR RETURN 8450 LET TATRPYS=TPTRRYS-SPRC RI=TRMPPP: LET BYT= IGUO-TAMAPP „ 8470 LET TRDECO=TPDECO-SPRC 8480 LET TRMPPfl=TRMPPP-SPRC GO TO 8600: 8490 LET DES= REM MOUER 8530 INPUT <A*+"? "),DATO 8540 IF DRTO >HRX OR DRTO <MI N BEEP .8,-12 GO TO 8130 8550 RETURN 8600 MOUER. 8610 REH 8620 8630 RRNDOMIZE ORI 8640 POKE 63543,PEEK 23670 POKE 63544,PEEK 23671 8650 RRNDOMIZE DES 8660 POKE 63546,PEEK 23670 POKE 63547,PEEK 23671 8670 RRNDOMIZE BYT 8680 POKE 63549,PEEK 23670^ POKE 63550,PEEK 23671 T P «VT T PNDOMIZE USR 63542 8690 LET ERROR =0. RETURN 8710 REM • RBRE SPAC2 • Í730 IF TAMAPA-CU-SPAC <40000 N PRINT 00, FLRSH 1;".. ERROR CPBE EN LR MEMORIP ": BEEP 12 PAUSE 0 LET ERROR = 8 7 4 0 LET ORI=TAMAPP LET BYT =TAD ECO-TAHAPP 8750 LET TAHAPA=TAHAPR-SPAC 8760 LET DES =TRMRPP GO TO 8600 REM MOUER 9010 REM * TRAYECTORIP. * 9030 LET RJ="TRPYECTORIR CORRECT R" GO SUB 8000: REM (S/N)? 9040 IF P*="N" THEN RETURN 90S0 LET SPRC =LEN T * 9060 GO SUB 8400 REH RBRE SPPC 9070 IF ERROR = 1 THEN LET P $ = "N 9 0 8 0 U L E T TEHPO=PUNTERO:

FOR X=1

9 0 9 0 E P O K E TRTRPYS+X-1,CODE T$(X) 9100 IF CODE T»(X)=126 PND X/2<> I N T ( X / 2 ) THEN LET DRTO=TRTRPYS• X LET OFFSET=0: LET PUNTERO=PUN TRBL LET P U N T P B L = P U N T R B L * 2 GO SUB 8300 REH POKE DOBLE 9110 NEXT X LET PUNTERO«TEHPO LET DRTO =TPTRRYS _ _ 9120 PRINT PT 0,0,"LP TPBLfl DE T RRYECTORIR HA SIDO COLOCADA EN L A DIRECCION ";TATRPYS'"APUNTRLO


74 t S LISTADO 2. CODSPRIT

= 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 " 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

F33EF1ED4706002100F1 36F22310FB36F21128D5 2100403EC008E5012000 EDB013E1247CE607200R 7O DC6206F38047CD60867 083D20E321005811E8ED 3E18012000EDB0133020 F7ED5E0E0426F83E0991 9 1 2 E 0 0 4 5 1 E 0 0 5 7 1 5 2 8 0 6CB38CBIB18F770247325 2D20EC24240D20E13E01 329DF7RF3281SC329CF7 FBC93E3FED56ED47C9ED 4BB05C0C280R0DCDB3F2 010000D003C9DD21B05C 3R815CDD34000BEO4BB0 5C78B92807CD83F20101 00D8083D20E90BC921B9 F722B7F7219EF722ERF2 CDCFF2D021COF722B7F7 21RRF722ERF278CDB3F7 EB79CDB3F7R7EDS27830 087C2F677D2F6F2379CD C7F7C300000000000000 00F3F5C5D5E5DDESD908 F5C5D5ESFOE53R9CF7R7 C213F3CDRFF33E01329C F7C39EF32128D1RF329C F73R9DF7DD2129D03D28 4R08DDSE00DD5601DD7E 0E3244F3325RF3ED44C6 213248F3325EF3DD7E06 06000E00EDB00E00EB09 EB3DC243F3DD7E0DDDSE 0BDD560C0E00EDB00E00 EB09EB3DC259F30E0FDD 0908C321F33E01329DF7 1128D1DD2129D0FD21 CF3R815C47R72814C5D5 CD5FF4O1CD1BF5011100 FD09C110EFC0E5F6FDE1 FDE5FFFDE1E1D1C1F108 D9DDE1E1D1C1F1FBE04D 2128D51100400E00D921 ESEDI10058010019D906 09EDR0EDR0EDR0EDR0ED R0EDR0EDR0EDR0EDR0ED R0EOR0EDR0EDR0EDR0ED R0EDR0EDR0EDR0EDR0ED R0EDR0EDR0EDR0EDR0ED

1134 621 1096 975 644 1098 —4 4 4 1060 718 13S3 1646 1044 935 1048 1072 980 1798 1711 1641 926 641 1802 1994 1348 1506 1313 1052 1261 1138 1475 771 1316 1005 1194 1248 1868 2091 2096 631 823 1834 1985 1985 1985 1985

51 52 53 5 — 4. 5S 56 57 58 59 60 61 62 63 64 65 8 "9 " 6 70 71

6

7 2

73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

97 98 99 100

R0EDR0EDR0EDR0EDR0EO R0EDR0EDR07BD6205F38 01142310B67BC6205F38 0 47RD60857D9EDR0EDR0 -EDR0EDR0EDR0EDR0EDR0 EDR0EDR0EDR0EDR0EDR0 EDR0EOR0EDR0EDR0EDR0 EDR0EDROEDR0EDR0EDR0 EDR0EDR0EDR0EDR0EDR0 EDR0EDR0EDR0EDROEDR0 2305C2C1F3C9FD7E05FE 7FC8FD7E09S7E647DD70RCB622831FD6E0DFD66 0E7EFE7F2007FD6E0RFD 660B7EFE7E200E237EFO . . _ 0EC3RRF4FD7E0R5FFD7E 0B4FFE803F9F47FD6E06 FD660709FD7506FD7407 7B4FFE803F9F47FD6E04 FD660509FD7504FD7405 FO7E0CFD5E08CB5RC2E7 F43CBB2001RFFD770CC3 FOF43C579393C60232FR F428017RFD770CBB3804 3E00ED44FD5E0FFD5610 CB23CB12FD6E00FD6601 R72804471910FODD7502 DD7403C9FD7E044FE606 C6F8DD7709FD7E05R728 4D3CC079C606301321E7 ED0127DSFD7E02DD7707 RFOD7708C3C1F5371FCB 2FCB2F47FD8602D0C8DD 770778ED44DO7708DO86 02DD77023E00DD8E03OD 77037921E7ED0127D5E6 06204D2303C3C1F579D6 013836CB3FCB3FCB3FFD 8602FE213829O620DD77 08ED44FO86O2DD77O779 CB3FCB3FCB3F4F21E8ED 856F8C95677901280581 4F889147C3C1F5FO7E02 FD7E07R7283B3CC0FD7E 06FD8603D0C8DD7706ED 44FD8603E5D5DD6E02DD 66031600FD5E02193DC2

1985 1474 758 1446 1985 1985 1985 1985 1985 1985 1509 1 1186 1079 1486 11 1123 1244 1117 1464 1278 1438 1038 1084 1178 916 1239 1386 985 1218 1445 1386 1254 993

1502 1230

D0CB3FCB3FCB3FC50121 003C3O280409C313F6C1 E5O56069112100FO7E06 FL728071930C228F64440 FO7E06FD8603382CFEC1 3028FO7E03DD77067908 FO4E06CB39CB39CB39FO 7E06FD8603C607CB3FCB 3FCB3F91DO770D084FC3 76F63EC0FO9606DO7706 C607CB3FCB3FCB3FOD77

1237 827 1078 925 1322 945 1370 1196 1109 1373 1343

DO6603FO5E0FFOS61019 OD7504OD7405DDS607OD 7E09E606280114DD720E D1E1E5DD7S0BDO740C60 69DD7E0E32C8F632D6F6 ED44C62132CCF632DRF6 3R9DF73C329DF7DD7E06 06000E00EDB00E00093D 20F6E1DO7E0D0E00EDB0 0E00093DC2DSF60E0FDD 09C9DO2129D03R9DF 73D C8F5DO5E00DD5601DO66 092EFF7E3255F7247E25 322BF7D9DD6E02DO6603 ESFDE1DD6E04DD6605DD 7E07322FF7ED44C62132 5BF7OD4E06DO5E081600 D901O000D90600FD7E00 FO23087E23D96F7EB124 4E086F784625B66F08EB R6B37723EBD910E119FD 19D979F600EBR6B0773E

1068 1219 781 1457 1472 1550 1329 517 1290 987 1236 1391

29F7DO6E0BDO660CDD7E 0E3284F7ED44C621328D F7OD5E0R16B8DD7E0D08 06007ER2B3772310F90E 0009083DC282F7F10E0F DD09C3ECF60001FD5E02 CB23CB23CB23C3RDF7FO 5E031600R7EO52C9CDC7

1162 1106 1170 1379 1140 1445 1283 1387 1454 756

E6F5OD7502DO7403DO7E 06C607CB3FCB3FCB3FDD

1591 1063 988 820 1124 960 1470 1367 1170 1146 906 919 1257 1582

F7C30TOCCF06E04PD6605

150

C9FD6E06FD6607C9FD21 08CFR7C8D5111100FD19 3D20FBD1C906142C2C14

888

DUMP: 4 0 . 0 0 0 . N.° BYTES: 1495

USTADO 3 . CODMAP

20 21 22 23 24 25 26 27 28 29 30 31 32 33 -35 __ 37

21004011014001001875 EDB001FF023RE7CE77ED B021C6CE3RE6CE874F06 0011BFCE09EDR0EDR003 0321D6CE09EOR0EDR03E CD3270F321DECB2271F3 21R4CB228CF31128D52R ECCE4O4419EB26006829 29291922B0F378E618F6

321 1522 1327 1220 1321 1458 11__ 1030 1180

38 39 40 41 42 43 44 45 46 4 7

67229BCB6311E8ED19E8 2REDCE2600192298CB3R F0CE329FCB11C6F321C5 F336R02B36ED3REECE06 00FE01280R4F0DCB21CD B0FE2028152323131323 36132B3623ED44C6203D 2804874FEDB021C4F311 19F4014000EDB02195CB 11B5F3010F00EDB021C0 F3225CF4C301F200D921 000011000001FF00D901 0009FD6E04FD6605E5ED 4B04CFR7ED42FD7504FD 7405FD6E06FD6607E5ED 4B06CFR7ED42FO7506FO 7407CD1BFBE1FD7506FD 7407E1FD7504FD7405C9 329DF73RE8CE5F878787 6F260054442919FD2108 CFEBFO193RE9CEFE0828 43874F21F3CE095E23S6 FD7300FD72O13R03CFR7 282E21BCCD097E4F179F 47237E5F179F57FD6E04 FD66053R03CF093D20FC

1340 995 1546 1299 870 666 801 1160 11 1095 1301 491 1202 1383 1318 1387 1454 1297 1450 661 1519 987 1171 908 963 982

4.9 S© 51 53 53 54 55 56 57 58 59 60 61 62 63 64 —

69 70 71 72 73 74

4D44FD6E06FO66073R03 CF193D20FCEB180CFD4E 04FD4605FD5E06FD5607 781730030100007R1730 031100002RERCE260029 2929R7ED42300309444D 2REBCE2600292929R7ED 52300219EBFD7104FD70 05FD73O6FD72O73RF2CE 3CED446F26FF23092204 CF3RF1CE3CED446F26FF 23192206CF2RC1CE7CB5 C83EC3329FF61148CDED 53R0F6DD2RBFCEESDD7E 003C2872DD6E01260029 2929ED5B04CFR7ED527C R728043CC230CO229DCE DD6E022600292929ED5B 06CFR7ED527CR728043C C230CD229FCEDD5E0016 00FD2RC3CEFO19EB2929 EBFD19FD7E0032RRCEFD 7E0132RBCEFD7E02329B CEFD7E03329CCEFD7E04 3259CDDDE5DD21R8CEFD 2199CECD1BF5DDE10103 00DD09E12B7CB5C2B7CC 3EES329FF621DD7522R0 F6C9DD4E0DDD7E0E325B CDED44C6215F16003E00 0600772310FC190D20F6 DD66092EFF7E32RECD24 7E3298CD25DD7E07329C CDE044C62132B3CD0D5E 0ODD5601D9DD6E02DD66 03DDSE081600DD4E06O9 1RE6004FD906007ED96F

937 1179 1031 388 561 757 1048 1127 1259 851 1481 1053 1443 1725 625 1231 1115 822 1094 1183 1291 1571 1140 1383 1675 1319 1384

1224 1130 1490 1181 870 1012

DUMP: 51.900 N.° BYTES: 989


CREADOR DE __ JUEGOS ARCADE //


2488

2491 mi 2311 K M 2»! 2531 2541 2561 2571 2581 2591 2611 2411 2421 2431 2441 2434 2444 24» 2484 2491 2211 2711 2721 2230 2241 27» 2741

2271

Jt

AOO EX LD LD LD LD LD INC N£6 LD ID INC AOO LD LO INC NÍ6 LO LD INC AOO LD LO LO OS «ET LD LD

NC.NMÍ

»,« OE,K <IYM),C <IYi3>,« <1Y»4>,E <1Y*7),D A.ICailK) A M H,8FF It 11,BC (XPES),M. A.IFIUKI A M H, If F n K , DE (YPt»,K HL.INUCCF) A,K L 2 A,K3 <CKCW>,A

LD Of.OiaW

2781 10 (CHCHtO),OC 2781 ID IX.IWWA) 28ii OUKCS PUSK * 2811 LD «,<]»•> 2821 INC A 2831 JR 2 .ESTENO 2844 LO L,<1X111 2834 LD H,l 2841 ADO HL.HL 2871 m *,«. 2881 AM »,KL 2891 LO OE.IXPER) 2911 MO A 2811 S8C It.DE 2928 10 A.K 2831 AND A 2844 JR 2,P0«® 2854 INC A 2844 JP N2,E!TBe 2871 PM« LO <KTM|<4),» 2884 10 L,<IXI2) 2881 LD H,l 3111 ADO U . K 3411 A» H , K 3121 m Ht,m 3138 ID DC,<rPE» 3141 «O A 3151 SBC K.OE 3141 LO A,H 38 21 AND A 3181 JR 2.P0MY 3191 INC A 3111 JP N2,ESTENO 3111 PDWY LD <mABK4l,ll 3128 LO E,(IXI|) SIS 10 0,1 3141 LO IY,<TAOÍCO) 3151 ADO IY,OE 3141 EX OE,HL 3128 ADO H 3181 ADO K.,*. 3198 EX OE,» 3211 AOO IY,0€ 3211 LO A,<IY<I> 3221 LD <I<IAS2<2I,A 3231 LD A,(IY*I) 3244 ID <NTAÍ20>,A 3251 LD A,<1Y12) 3241 ID <NTA6I*2),A 3221 ID A,(ir<3) 3281 ID <NTA8IO),A 3294 LD A,<lYi4> 3311 ID <AJUCO.<IM 3311 PUSH IX 3321 ID IX,HTM2 3331 ID lY.KTAÍl 3344 CALL CREAOA 3351 POP IX 3344 ESTENO ID 8C,3 3371 ADO IX,K 3381 POP » 3391 DEC » 3411 LD A,K

5111 DEC IY 5121 JR H2,0TMU 5131 POP 8C 5144 LD K.INIWCF) 5454 «C A 5441 SBC H,BC Sí 71 LD B,H 5181 LD C,l 5191 XOI) A SIN Kl 3111 OTMV POP 8C 3128 XW A 3138 INC A 5141 RfT

5151 |

5144 INADIN LD H,l 5121 AOO «.,«. 5181 AOD n , m 5198 AOD H,NL 5281 «O A 5211 SBC HL,DÍ 5221 J8 C^ATSfí 5238 ID A,II 5241 «O A 5251 RfT N2 5241 ID A,<1Y>2> 5228 SAICNO JR SINAOS 5288 AOO A,A 5298 ADO A,A 5311 ADO A,A 3311 SIWOS CP L 5321 m t 5331 ID I 5341 RfT 5354 WYSPK INC H 5344 RfT N2 5371 ID A,L 5381 NE6 5391 ID l,A 5411 LD A,<8C> 5411 SALCH2 JR S1NA2 5421 AOO A,A 5431 AOO A,A 5441 AOO A,« 5451 SINH2 CP L 5441 RfT C 5471 XOÜ A 5481 un 5491 ¡ 5541 NT ASI DCFS 13 3311 WTA62 DCFS 12 5328 ; 5531 088 32927 3341 | 5551 T*W« OEFU I 5541 NLHKF OEFU I 5521 TAOECO OEFU I 5581 NINOtC DEFB I 5591 TATA6S OEFS 14 5411 TAOEFS OEFS 14 3411 NAMCT DEFB I 3421 MU DEFB I


CREADOR DE JUEGOS ARCADE

_ _ / /

LISTADO 5. ENSPRIT 38 i <1 ¡ SPRITES POR 58 I a i iniebrupcibcs n ¡ 88 ¡ m PABLO AR12A. I* i

IM ;

III ORÍ 42194 131 | 131 ¡ 141 EN1IH! 01 15» PUSH AF 141 PUSH 8C 17» PUSH OE 18» PUSH H. 19» PUSH IX

541 BORPOI LD 55» LOIR 54» ALHPOI LO EX 571 AOO 56» 59» EX 411 OEC JP «II 42» LO 43» U 44» LO 45» KIOTO LO LOIR 44» 47» AUfOO LD 48» BC 4tt AOO 74» EX

M

E,l E,l OE.HL »,8C DE.HL 42,BORPOI «,(1X413) ,(1X411) >,(1X412) C.l C,l DE,». <,BC DC.HL t-st-,' H H V

^

LO (BOtPOOiD.lt NEO AOO A,33 LO (AUfOMIM LO <AD4POO<IM LD A,(IX<4) LD 8,1

711 OEC A JP N2,eORPOO 72» 10 C,15 73» AN ix,ec 74» 75» EX AF,AF' JP IWII10 741 77» IHSAfiO LO A,l 78» LD (HU8L80),A m LD OE.SPARES 88» LO i x . m o i 10 ir.iASPSi 118 82» ID A.INLHSPR) 83» LO M UNO A 84» 85» JR 2J40SPRI 84» II4MH PUSH BC PUSH OE 878 CALL HOVERR 88» POP OE 19» 9»! fiCUtf CALL CREA» LO 80,17 911 MO 1Y.SC ni 931 POP BC 941 0X2 i m m 954 CALL DIBUJA 944 H0SP81 POP IY PUSH 1Y 171 981 «SI 54 99» SALIN! POP IY POP M. INI lili POP OE II» POP K POP ti 1131 114» EX 115» EXX POP IX 1141 POP HL II» 1181 POP K 1191 P0> K POP AF MM lili El RETI 1121 1131 | 1141 | 1154 VUELCA LO HL.0RI6SC LO DE, 14384 1141 ii7i EXÜRC LO C,l UBI eoc 1191 U) HL,GRIBA! 12»! LD OE, 22528 121» LD BC, 254254 122» LVOLCA EXX 123» LO 1,9 124» LOPMJ L01 123» LBI 1241 III

1271 1288 129» 1311 1311 132» 133» 1341 1358 134» 1371 138» 139» 14»» 141» 142» 143» 144» 145» 144» 1428 1488 1498

2»8S 2898 H0JERR 10 2IM CP 2118 8ET 2128 LD 2138 LD 214* UNO 215» LD 2141 NT JR 2171 2188 LD 2in LD 22»! RE CUPE LO 221» CP 2221 JR 2231 LD 2241 ID 225» LD 224» NOflTA CP 2271 JR 2211 INC 229» LD 23»! LD

1518 1521 153» 154» 155» A,E 154» 157» SIB 32 158» L M 159» JR C,N01NC0 144» INC D 141» NOINCO INC H 142» DJN2 LOPfW 1438 LO A,E 144» AOO A,32 145» 10 E,A 144» J8 C.S1TERC 147» 10 A,0 148» SUS 8 1498 LO 0/) 1788 SÜERC EXX 1718 LO! 172» LDI 173» LOI 1741 >1 175» L ti 174» L >1 177» N 178» L >1 179» L II ISI» L II 1818 l II 1*21 lII 183» L 11 184» L II 1858 11 184» L 01 1171 DI I8R8 11 1898 II 1918 II INI 11 •ra 01 II ira 1941 DI 195» II DI 1941 1921 DI 1988 OI 1998 DI 2888 DI 2111 DI 2»2» L DI 2(3» NC HL 214» EC B 2»5» SALIO JP N2,LVaCA 214» El 2» 7» |

LO A,(A) 2321 2331 ID (IY4]),A 2344 BC HL JP RECUPE 2354 2344 1IW40R 10 e> 237» INC n 238» LD A,(HL) 2391 INC n 24»! ID (IY4|3),L 2411 LD (1Y4|4),H 2428 JP COCOftE 2438 RECL1N LO A,(IY4|») 2448 ID E,A 2451 ID A,(1Y4|I! 244» COCOK LO C.A 247» CP 12» 248» CCF 249» SBC M 254» LD •l* 251» Ul L,(1Y44) 2521 LD H,(1Y47) AO» HL,8C 2531 254» LD (IY44),L 255» LD (IY47),H 2541 LD A,E 2571 LD t* 256» CP 121 259» Ctf 24»! S8C «4* 2411 LD «4» 2421 LD L,(1Y44) 2431 LD H,(1Y45) 244» ACO HL,8C 245» ID (IY4«),L 244» LD (1Y45),H 2421 LD A.CIY4I2) 248» LD S,(IY<8) 249» Bit 3,1 271» JP IC.AOE!» 2711 INC A 2721 CP E 2731 JR N2,N»1C1 274» XW A 275» NOflCI LO (IY4|2),A 274» JP 1 RAPEN 277» ADCTM INC A im LD D,A 22?» SUS E 2881 sus E AOO A,2 2818 2828 LD (PARf!R4|),A 283» JR 2,FIANCI 284» LD A,0 285» FIANCI LO (1Y4|2),A 264» CP E 287» JR C.lSASt» 2888 PARETR LO A,8

A,(ÍY45) 127 2 A,(IY4»> M 71 (IX4II),A M 7,RE CLIN L,(IY)|3) H,(IY414) A,(HL) 127 N2,WFI1A L,(IY4ll) H,(1Y411) A,(H) 124 N2 T , RANOR U A,(18.) <!Y4II,A

2898 Wt 2988 1AAREM LO E,(IY4|5) 2911 11 D,(IY4I4) 2928 SU E 2931 RL D 2941 LD L,(IY4|> 2954 LD H,(IY4|) 294» ANO A 2971 JR 2,PRIFAS 298» LD B,A 2998 I4LUIP AOO ll.OE 3888 0JN2 NU.TIP 3818 PRIFAS LO (1X42),L 3828 LD (1X43),H 3838 REI 3848 ; 385» ; 3844 OSHH LO A,(IY44> 3171 LD W 38 88 4 3»9» AOO A, 248 311» LD (1X49), A 311» LD A,(1Y45) 313» JR 2,XP0S1T 3141 MC A BE! K 31» 314» LD A,C 3171 AOO A,4 3188 JR HC,NEGME 319» 11 H,0RI6A1-1 32»! LD BC,I«IBSC-I LD A,(IY42) 3211 322» LD (IX47),A 323» XBR A 324» LD (1X48) ,A JP WR!EY 325» 324» «EACE SCF RÜA 3271 328» SHA A 379» SM A 33» 1 LD M 3311 ABO A,(IY42> E ! NC 3321 REI 2 333» 334» LD (1X47),A 335» LD A,B IES 334» 3321 LD (1X48),A AOO A,(IX42) 338» 339» LD (1X42),A 341» 11 A,l AOC A,(1X43) 341» 342» LD (1X43) ,A 343» LB A,C 3441 LD H,WI8A1-I 345» LD BC.0818SC-1 3444 AND 4 3471 JR N7,PAR!EY MC n 3481 >49» INC BC 35»! JP PAÍIEY 3511 XP0S1T LO A,C 3528 so» 1 353» JR C, IN1E6E 354» SRL A 355» SRL 354» SRL A 357» AOO A,(IY42) 3588 CP 33 3598 JR C,IN!E6E 341» SUB 32 3411 LO (1X48) ,A 342» NES 343» AOO A,(IY42) 3(41 11 (1X47),A 345» «EC01H LD A,C 344» SRL A 342» SIL A 346» SRL 349» LD C.A


311 3711 3721 3731 37<8 3751 3741

3771

ID ACO LD ADC SUB ID LD

Ht.ORIMT A,L L,A A,H L H,A A,C

ID BCM Í. 1ESC

37» ADC A,C 3751 LD C.A 3511 ADC A,1 3811 SIS C 3828 LD 8,A 3838 JP FWIEY 3841 IHTE6E LD fl,(]T*2) 3851 LD (IX* 2), A 3841 KOR A 3871 LD (1X«8>,A 3881 JP KCOIN 3888 FWIEY ID A,(IY«7) 3881 AND A 3811 JR 2.YPOSIT 3828 INC A 3831 «fl N2 3841 LD A,(1YI6) 3851 AOD A,(1Y<3) 3848 IS1 NC 3828 REI 2 3881 ID (IX«6),A 3898 NE6 <111 ADO A,(ir<3) 4111 PUSH HL <121 PUSH DE <138 LD L,(IX*2) <141 LD H,<IXi3) <151 LO 0,1 <141 LO E,(IY«2> <128 NESUOI AOO H,OS <188 DEC A <191 JP N2,NESU0I <111 LO (IXi2),L <111 LO (1XI3),H 4121 LO A,(IX<4) 4138 AOO A,7 4141 Sil A 4151 SRl A 4141 SKI A 4121 LD (1X413) ,A 4188 JP COYPOS 4198 TPOSII LD A,(IYI4) 4281 CP 192 <218 un NC <228 Sil A <238 S« A <2<t SRl A <251 PUSH 6C <241 LD 8C,33 <271 INC A <281 CAIATT OEC A <291 JR 2,ATC<HP <311 AOO HL,SC <311 JP CALATI <321 ATCtM> POP BC <331 PUS» n <3<l PUSH OE

<351

ID H,B

<341 <321 <388 <398 «II

LD LO LO 40 J8

L,C DE,33 A,<IY<4) A 2.PRIFH

«31 «<i

JP W.CALFU ID e,H

«II CALF1L ADO K,DE «21 DEC A

«51 LO C,l «41 P8IFIL LO A,(IY>6) «21 AOO A,(IY<3) «81 JR C.N0SCA8 «91 CP 193 <511 JR NC,NOSG» <511 LD A,<!Y<3) <528 10 (IX*4),A 4538 LO A.C <541 EX AF,Af" <551 LO C,<IY*4) <541 SRl C 4521 Sa C 4581 Sil C 4591 LD A,<IY«4> <411 ADO A,<IV<3) <611 ADO A,7 <428 SU A <638 SRL A <641 SO. A <651 SUS C <641 ID (IXM3M <478 EX <688 10 C.A <698 JP CUTKIS <781 N0SCA6 10 A, 182 <711 SUS (IYI6) <728 tD (1X»6),A <238 AOD A,2 <7<l SRl A <251 sa A <761 sa. A 4721 LO (]X*]3),A 4781 CtYPOS LD (1X18),C 4291 LO <IX<I),B <811 LO L,(lXt2> <811 LD H,(!X*3) <821 LD E.IIYIIS) <831 LO 0,(IYM4) <8<l AOO HL.OE <851 LD (IX<4),L 4861 LO (IX*5),K <821 LO O,<IXi2) 488» LD A,(IXi9) 4891 ANO 4 <981 JR 2,SANUBY <911 INC O <921 MUY 10 (1X110,0 <931 P» DE <9<t POP a 4951 CRECM PUSK * 4961 LD (IXHP.L 4921 LO (IXt|2),H 4988 LD H,B 4991 LO L,C 5111 LO A,(IXII4) 5111 LO (PIBYSAll)^ 5121 ID < PIIATSA* I) 5131 NEB SKI AOO A,33 5151 LD (PUSUSAHM 5161 ID (ATSUSA* 1) ,A 5171 LD A,(NUaBO> 5181 INC A 5198 LD (NUBLBOM 5111 LD «,(1X16) 5111 LO B,l 5121 PISYSA LO C,l 5131 LDIR SKI PDSt» LD C,l 5151 AOO HL ,6C 5161 OEC A 5171 JR N2.PIBYSA 5181 POP II 3191 LO A,<IX<I3) 5281 PIIAISA LO C,l

OCC JP LO AOO

A N2.PUATSA C,t3 1X.BC

3328 LD A,(NLSLBO) 5338 D1BLUP DEC A 53<l RET 2 3331 PUSH Ai 3361 ID E,<IX<8) 3378 LD D,(IXH) 5388 ID H,(IX*9) 5398 LD L ,255 5<ll LO A,<H) 501 LD <P9UXXI),A 3421 INC H 5431 LD A,<Hl) 5441 OEC H 5451 10 (P09W«1),A 3461 EXX 3471 LO L,(IX<2) 3481 LO H,<IX<3) 3491 PUSH I» 5511 POP 1Y 3311 LO L,(IX«4) 3321 LO H,<IX>5) 5331 LO A,(1X»2) 5541 LO (P0S8YHI),A 5551 NES 5361 AOO A,33 5571 10 <SWJM.'I),A 5381 LO C,(IX<6) 5398 LD E.ÜXtS) 5611 LD 0,1 3611 10SCAN EXX 3621 POSUI LO 8C,I 3631 EXX 3641 fosen LD B,l 3431 LCnriS LO A,(IY>I) 3661 INC IY 5621 EX Af.AT 5688 LO A,(HL> 5698 INC H 5281 EXX 3211 LO L.A 5721 LO A,(HL) 5731 08 C 5741 INC H 3731 LO C,<HL) 3741 EX AP,AP' 3778 ID L,A 3288 LD A,B 3298 LD B,(H) 3881 OEC H 5811 08 (U) 5828 LO L,A 5831 D Af.AF' 3841 a DE.HL 5651 WD <HL> 5841 IK E 3871 ID (A),A 5881 INC W. 3898 EX DE,HL 5981 EXX

3911

DJ<2 10SYTS

5921 AOO 5931 AOO 5941 EXX 5931 LO 3961 PMJOO 08 5971 EX 3981 ANO 3991 K

4111

II,DE )Y,OE

A,C I

K,H

<H> 8

LO (»>,A

4111 SWJH LD A,l 6128 AOO A,L 6131 LD L,A 4141 AOC A,H 4131 sue L 4161 LD H,A 4171 EX OE,K 6188 EXX 6191 DEC C 6111 JP N2,HK0W 6111 LO L,(IXI|I) 6121 LO H,(1X<I2) 6131 LO A.IIXHO 6141 LO (ATOIttill.A 6131 NES 6161 ADO A,33 6171 LO (SttttTTUM 6181 LD E.IIXMI) 6191 LO 0,184 6211 LD A,(]X*I3) 6211 ATWfií EX Af / P 6221 ATDIRS LO B,l 6231 ATBLOI LO A,(NU 42<l «C 0 4231 W E 4261 LD (».>,* 6278 INC HL

4281 DJN2 ATBLOI 4298 SU81TT 10 C,1 6311 AOO H..SC 6311 EX Af ,Af' 6328 OEC A 6338 JP N2,ATlAfX 6348 POP Af 6331 LO C,15 4361 AOO IX,BC 6321 JP 01811» 6388 ; 6391 | 6411 ESTACO DEES 1 6411 NUIL80 OEfB I 4421 | 6«l DIIÍXS LD E,(IY»2) 4<51 SLA E 6461 SU E 4471 SLA E 4481 JP CtXTIN 4491 OINEYS LO E,(IYi3) 4311 CCKTIH LO 0,1 4511 ANO A 4528 SSC H..OE 4338 RET 6341 COCHOS CALL 01TASS 6351 CAIPOI JP I 6361 COORDX LO L,(]Y<4) 6371 LO H,(IYlS) 4368 RET 6391 COttOY 10 L,(1Y*4) 4611 LD H,(IYI7) 6611 RT 6621 0ITA6S LD IY.TASPRI 6631 WD A 6641 RET 2 6651 PUSH OE 6661 LD DE,17 6621 SU101S AOO !Y,OE 6688 OEC A 6698 JR N2.SWIS 6211 POP DE 6711 RET

6228 i

4238 j 6741 NWSPfi E8U 6251 TA8L0I EOU 4261 TASPRI EOU 6221 ORISSC EOU 6281 0816AT EOU 6291 SPAfiES EOU 4811 SP8ICH EOU 4811 ¡ 4821 ; 4831 0«S 68<l INICIO 01 6851 10

6868

II

23681 53289 53888 54568 61914 533« 23728 61953 A,20

M

6871 10 8,1 6888 10 HL,61696 6898 IHTCK 10 (HL) ,242 6911 INC H 6911 DJN2 1H1C8E 6921 LD (HL),2<2 6931 LD DE.ORISSC 69<l LD U,I63S< 6938 LD A,192 6941 1NIUPEX Af.AF 4928 PUSH II 4988 LD BC,32 4998 LDIR 2111 INC DE 2111 POP H 2121 INC H 2138 LD A,H 78<8 «O 7 7831 JR K2,IHIP«T 2161 LD A,L 7878 AOO A,32 7888 LD L,A 7898 JR C,1NIPKT 7118 10 A,H 7118 SUB B 7128 LD H,A 7138 1N1PRT EX Af ,Af' 71 <1 OEC A 7131 JR IS.INILAP 7161 LO H.,22328 2128 LD DE.MISAI 2188 LO A,2< 2198 M1U 10 BC,32 7288 LOIR 7218 INC DE 7228 OCC A 7231 JR N2 • 1HATIA

7241 I« 2 2231 LD C,4 7261 LO H,248 2271 LOTO! LD A,9 7288 SUS C 2291 SUS C 7311 LD L,1 7311 ROTAOI LD 8,1 7328 LD E,l 7338 LD O,A 73<1 VERROT DEC D 7331 JR 2.VEREX1 2361 Sa B 7378 RR E 7388 JR (ÍRMT 2398 VEREXI 10 (HL),8 2<ll INC H 7<ll 10 (A),E 742» OEC H 7438 OEC L 7441 JR N2,R0TACU 7458 INC H 7<48 INC H 7<71 OEC C 7481 JR N2,ldtTC« 7491 LO A,l 2581 LD (NUBLSO),A 7311 XOR A 2321 LD (HUtS») ,A 2331 LD (ESTAGO),A 7541 El 2351 KT 7341 | 7378 ¡ 756) DESACT LO A,63 7591 IH I 7481 LO M 7611 RT 2628 | 7631 | J64I CKHO LO 8C,(SPWCH) 7651 INC C 7661 JR 2,1CIKI0 7671 OEC C 7688 CALI CH0SU6 7691 LO BC.I 7281 REI NC 7711 INC BL 7721 RT

n* i

7241 BCCNTO 10 IX.SPRICH 2231 LO A,(NUISP«) 2261 SUCHIL INC (IX<I) 2728 EX AF,Af' 7788 LD BC.ISPDICH) 7298 LO A,B 7811 CP C 7811 JR 2.SASP8I 2821 CALL CNOSUB 7838 1 0 BC,1 7841 RET C 7S51 SASPR1 EX Af,AF' 7868 OEC A 7878 JR N2,BtOW 7888 OEC BC 7898 RH 7888 | 7911 CHOSIS ID H.COOROX 7921 10 (WPOKI),» 2931 ID Ü.OIICXS 2941 LD («CALHl),ft 7931 CALI CHWEA 7961 IffT NC 7971 LD HL, COORCY 7988 10 (OLPOKI),» 7998 LO H.OIICYS 8111 ID (ANCALT*!),HL B8II OMEA LD A,8 8828 CALL COOnS 8838 EX DE,HL B144 LD A,C 8831 CALL COCHOS 8161 «HD A 8171 SK HL,OE 8181 LD A,8 8191 JR NC.BIBCO 8111 LO A,H 8111 en 1121 LD H.A 1131 LO A,L 81H CPL 8131 LD L^l 1161 BC HL 1128 LO A,C 8188 BISCO CALL OITABS 8198 «CALI JP I


CREADOR DE __ JUEGOS ARCADE

LISTADO 6. DEMOBASMAP PNDOMIZE USR 51900 POKE 23681,1 10 PPUSE 1 CLS DIM C(4> FO R X = 1 TO 4 RERO C(X> NEXT X D 15 ¿OKE'23728,0 POKE 23729,0 LET fl=USR 52690 IF P<20 THEN L ET D=51695*3*P IF PEEK 52969=3 THEN POKE D.6 PPUSE 1 PPUSE 1 PPUSE 1 PPUSE 1 16 IF INKEV $ =" " THEN RPNOOHIZ E USR 62075: STOP 20 LET RfsINKEYf IF R$>"8" OR P$ <"5" THEN GO TO 15 30 POKE 52969,C(URL R*-4> GO TO 15 9999 CLERR S0958 LORO "CODSPRIT •CODE 61953,1495 LORD "CODMPP"C OOE 51900,989 LORD "OEHOGRRF"CO DE 50959,941 LORD "OEMOURR-CODE 52927,90 RUN

USTADO 8. DEMOVAR Linea 1 2 3 4 5 6 7 8 9

EFC9370 CP94CR9 CR94CR3 0000000 5000084 4078EFC 0FC70FC 01BC00E 0002460

Datos

Control

94CP08EFC994 CP94CR94CR94 000000000000 000000000000 3001011E1011 6FC8EFC86FC9 0FC70FC70238 C70210B001FC 000100002000

1441 1750 607 0 265 1684 914 1074 105

DUMP: 52.927 N . ° BYTES: 90

La D e m o p u e d e ser utilizada p a r a ver otros mapas, tan sólo q u i t a n d o la línea 9 9 9 9 y cargando los datos d e l mapa que hemos creado.

USTADO 7. DEMOGRAF

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 — 39 40 41 42 43 44 45 46 47 48 49 50 51

00000000010001000100 03800100038005400380 0D6007C0092007C01930 03800D60311803800380 03800380000000000000 0000000000300D881224 20940R4OOP4829042424 11880460000000000000 00000000000010100000 00000800000800800000 24000024000010400000 00000000000001001000 00000020220000000000 00440400100001100000 00000000000000000000 00000000000000000000 00002228292829481550 155000000000000024 3C 3C3C180010103C080808 00000000000000000000 00000000000006800B60 O9D011R00BP033980380 000000000000001E1EFF 11702E802F605F9C40E2 7FFC00003BDC400216DR 40043BD80000FFE1E100 C000C001800F80030001 00000001800380010000 000000018003C0070000 001E1EFE11702E802F60 5F9C40E27FFC00003DEC 400256DP40042F 780000 FFE1C100C000C001800F 80030001000000018001 80010000000000018003 C007000002400DB01DB8 3E7C00002RR87FFE 7FFE 2PR80000FDBFF00FE007 C0038001C00380010000 00008001800100000000 00008001C00300000240 0DB01DB83E7C00002PP8 7FFE7FFE0FF0300C7FFE 2RP855S43FFC0000FDBF F00FE007C0038001C003 80010000000080018001 0000000000008001C003 000078007F 780E880174 06F439FR47023FFE0000 3BDC4 0025B6820021BDC

3 463 621 57S 262 251 453 253 32 144 152 17 66 105 0 0 369 197 260 0 241 899 3i« 987 964 1048 660 261 331 760 17 605 1201 262 261 667 1158 1140 648 258 390 798 1458 1138 1005 387 324 634 947 821

" E n la demo podremos observar ta utilidad que pueden tener las rutinas de detección de choques"

52

58 59 60 62 63 fQ

£® 69

82 83 86 ®® __ 92 93 94 95

000087FF008700038003 000000008000 00078007F 78 6F4 39FR4 702 7BC4002586P 00087FF0087 20021 001C0018000 00038 00180010000 00008 001E0030000 07E00 10083FFC300C 6FF66FF6781E0FF02008 7FFE2RR80000 00000008001 00000008001 „„„„„ 7E00FF01008 £®®2® FF66FF6781E 3FFC3 FFE2RRP55S4 8 1FF00FE007 C0038001800100000000 00008001800100000000 00008001C00300000000 000P00022R000P16000C 04 00120C001222001C02 00201R00220E00242200 2804002R120032000032 2C003408003810003C02 003R1C003E2C04020604 0P2R04 102E0412040412 12042004042E0 043E1E01060401021001 0824 011608011R1C012C 2201380202021803080C 02101P03162C021C1003 1C24022R1P022C2C0330 14023802033820050C0C 07181605261807222E05 21R053826073C 218543FC70210 555FC70210557FC70210 569FC7021054BFC70110 S5CFC7021054BFC70110 56000000000000000000

F001C001800000

DUMP: 5 0 . 9 5 9 N . ° BYTES: 941

453 258 324 98 116 176 204 238 208 166

21 32 61 100 86

//


eumiti

EL UNICO JOYSTICK QUE SE ADAPTA fl|| PERFECTAMENTE A LA MANO DEL JUGADOR. • EL KONIX SPEEDKING UTILIZA EL MAS AVANZADO MICROSWITCH DE ORIGEN SUIZO

Si no Io encuentras en tu establecimiento habituó!, pídelo a SUMA: Cardenal Bel/ufa. 21. 2S028 Madrid, lels. 256 2101 • 02

Agotado el Especial n? 1

a

seo 6 meses

CAPAZ DE SOPORTl MAS DE 10.000.0 MOVIMIENTI ú • GARANTIA I


M ü

C H O

Disponible en

SPECTRUM COMMODORE AMSTRAD AMSTRAD - DISC Y ahora , t a m b i é n d i s p o n i b l e en

PLUS + 3

¿AFIRO S O F T W A R L Tol 24 1 9 4 2 ' )

DIVISION . SILVA

- 24 1 9 6 2 G T e l o x 2 2 6 9 0

(i . 2 8 0 13 ZAFIR

C .

MADRID


CARGADOR UNIVERSAL DE CODIGO MAQUINA U«

» tilización. En la línea inferior de la pantalla, aparecerá un pequeño menú de opciones a cada una de las cuales se accede pulsando la tecla que corresponde con su inicial: INPUT. Este comando sirve para introducir nuevas líneas de Código Fuente Al pulsarlos, el programa nos solicita un número de línea. Obligatoriamente, hemos de comenzar por la línea 1 a no ser que ya hayamos introducido alguna otra previamente. Tras indicar el número de línea, nos pedirá los datos correspondien tes a la misma. Una vez tecleados, y suponiendo que no haya habido ningún error hasta el momento, hay que introducir el Control, que está situado en cada línea, pudien do pasar, si lo deseamos, al menú principal pulsando simplemente .ENTER., TEST. Para listar por pantalla las líneas de datos que hayamos metido hasta el momento. DUMP. Este comando vuelca el contenido de la variable A$ en memoria. a partir de la dirección que se especifique Esta operación es obligatoria antes de hacer funcionar una rutina o programa en código máquina. En la mayoría de los casos. con la rutina se indicará también la dirección de memoria donde debe ser volcada y su longitud expresada en bytes. Al intentar volcar el código fuente. puede ocurrir que nos aparez ca el mensaje «ESPACIO DE TRABAJO». Esto indica que estamos intentando volcar en una zona que el ordenador está usando para sus propios cálculos SAVE. Este comando nos permite salvar en cinta el código fuente o el código objeto para su posterior utilización. Al pulsar SAVE nos aparecerá un segundo menú de tres opciones: Salvar Código Fuente (F). Salvar Código Objeto (O), indicando dirección y número de bytes. o volver al menú principal (R). LOAD. Cuando el número de datos a teclear sea grande, es normal tener que realizar el trabajo en varias veces. Para ello, puede salvarse en cinta la parte que tengamos (Código Objeto) y luego recuperar mediante la opciór. LOAD. Una vez tecleado el programa cargador hay que hacer GOTO 99QO. con lo que se grabará y verificará en cinta Si por cualquier razón, intencionada o no. se detuviese durante su utilización, es imprescindible teclear «GOTO menú», nunca RUN ni ningún tipo de CLEAR, ya que estos dos comandos destruyen las variables y con ellas el código fuente que hubiera almacenado hasta el momento. Las líneas que no aparezcan deben teclearse con 20 ceros como dato y 0 como control.

J i|lAÍ!JSÍJFT^SÜ0 " l , M

L

I oe|E He M '* icos "iNPu^^ffin^^iNr 11 ir ¡Ijl ^pef.'f3¿»5* ¡^'co^SSS'sSS» O«TO S

.

I II.! J .

a mayoría de los Patas A r r i b a destinados a Spectrum constan de dos listados que se complementan entre sí. Para utilizar estos programas debemos seguir ios siguientes posos: 1. El programa Cargador Universal debe estar grabado en una cinta. Si no es así lo teclearemos y lo guardaremos en una cinta, usando SAVE «CARGADOR» UNE 0 .

¡2¡s r?f :

2 . Observamos los listados, ya que éstos se numeran según el orden en el que deben ser utilizados.

6O05 P S U N T T ^ ^ U ^ ^ ^ P R P E R

1.

'«•1 PRXt^ÍÉ. PAPER 3, INK 7.' RUCHTC «RI OBJETO<C» RTTURNLR) -oea pause o ir iNKev»<>-r • RN

7II0 ¡ J £

T 1

5 . A partir de este momento procederemos a introducir el listado 2 o de datos. En la parte inferior de la pantalla aparece la palabra línea, entonces teclearemos la línea 1 y pulsaremos ENTER.

S»Is nAMOOM?zePuSO*$3¿96

6 . Entonces introduciremos los datos, que serán siempre los 20 números y letras que se encuentran a continuación. Al terminar pulsaremos ENTER.

CO SUB

oeaB^NCXT ' í - J k i ^ R N.L TO

CO T

J l ' F J L N E i . ' s

3 . Tecleamos el listado 1 o el programa en Basic y lo salvamos en una cinta virgen utilizando: SAVE «(NOMBRE)» UNE 1. Donde nombre será cualquier dato que nos ayude a encontrarlo en lo cinta y utilizaremos UNE para que el p r o g r a m a se autoejecute automáticamente al terminar la carga. Esta fórmula también puede ser utilizada cuando el cargador tenga un solo bloque. 4 . Cargamos el programa Cargador Universal en el ordenador, y cuando aparezca el menú de opciones (INPUT, LOAD, SAVE, DUMP, TEST) elegiremos la opción INPUT pulsando la tecla I.

Cls

!!?5cPRINT^Íe?«>PfipÉér,6.

FlOíí

Cómo utilizar el Cargador Universal

>

k

r r l y i s . ^ E . 3 ? S I Í 2 ' c .WS

7 . El ordenador nos pedirá el control, que es la suma de todos los datos, y daremos el número que se encuentra al final de la línea. En este proceso debemos tener mucho cuidado, ya aue si nos equivocamos tendremos que introducir de nuevo la línea. 8 . Repetiremos esta ope-

ración hasta que tecleemos todas las líneas. 9 . Cuando hayamos tecleado todas las líneas, nos seguirá pidiendo otro línea, pulsaremos ENTER directamente y aparecerá de nuevo el menú. 10. Procederemos a realizar el DUMP, que no es otra cosa que un volcado en la memoria de los datos anteriormente introducidos. 1 1 . El DUMP figura siempre cerca del listado en formato Cargador Universal, pero si éste no apareciera, o por cualquier problema el programa no lo permitiera, es aconsejable indicar la dirección 4 0 0 0 0 . Para elegir esta opción basta con pulsar la tecla D. 1 2 . Una vez realizado volverá a aparecer el menú de opciones. Eligiendo la opción SAVE nos aparecerá un nuevo menú (FUENTE, OBJETO, RETURN); si el listado es muy extenso y no lo hemos terminado podemos continuar en otro momento donde lo dejamos usando el Fuente, pero si hemos terminado y realizado el DUMP, salvaremos el código objeto pulsando la tecla O . 1 3 . El programa nos volverá a pedir la dirección. En ella daremos la mismo que utilizamos para el DUMP. Luego nos pedirá el número de bytes aue deseamos salvar a partir de la dirección indicada; este dato también figura al lado del DUMP. Si no aparece debemos contar el número de líneas y multiplicarlas por diez. Por último, el programa nos pedirá el nombre con el que deseamos grabar el bloque de bytes. 1 4 . En la pantalla aparecerá Start tape, then press any key. Pondremos la cinta donde grabamos el listado 1 y pulsando una tecla grabaremos el listado 2. 1 5 . Ya sólo nos hace falto cargar lo que hemos grobado en el cassette, y contestar a las preguntas.


Empieza la r , m n l u r a con el bvuib

M I C REO

Todo un extra donde ponemos "PATAS ARRIBA" los juegos más populares del momento. Freddy Hardest, Don Quijote, The Sentinel y muchos más; con más mapas y pokes que nunca, para los adictos como tú. Si has empezado la aventura, con el EXTRA MICROMANIA, llega al final sin perder pantalla.

A L A VENTA EN TU KIOSKO!


GAM€ OV€R

fMnRTIN lecirumlSpec

:

- r

; / ' -

' i ^

i i

7

:

7

7

o

r

í

i

,

J Jo hoy nada Msjor, aquI tisn&s Jas pruébasi jJOitüj

/liíiyúíi ptoariiim

. Ja historia

f S J U U i W O

más ysíidids m

Sspaña

M S f f t i J

jfECfJWM+3 disco ^ c * ^ m

i

M M F f M A M S x i

J JO txisH oiro juago ÍJU% ho/a dtido más :¡'jb hablar »ñ fgropu :jU» ©ÍUMi O j J O i h ha supsrado si rscord ds p k m a M M i f i

6fi i l T O ?

20, ssiíi'blstido

Aummmss.

pí»f

¡JO pí»'di!a ini'jyifiíirüi nunca si í/iro ds uñí) 'j'/s/irur'j ará'nco-íonysrscraó'nal corno SON

o w j o t l

rJO pierdas la o^oríunidad. Ahora nenes los cuatro %fl 'tiri

flftMV MOV€S

MS'yA-J'JíOOü

disto.

DON QUIJOTC

DINAMIC SOFTWARE. PZA. OE ESPAÑA. 18. TORRE DE MADRID. 29-1. 28008 MADRID. TELEX: 44124 DSOFT-E TIENDAS Y DISTRIBUIDORES: 191) 314 • 18 • 04. PEDIDOS CONTRA REEMBOLSO: /9I) 248 • 78 • 87.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.