-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDEADEND.BAS
More file actions
410 lines (410 loc) · 19.1 KB
/
DEADEND.BAS
File metadata and controls
410 lines (410 loc) · 19.1 KB
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
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
67
68
69
70
71
72
73
74
75
76
77
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
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
248
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
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
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
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
10 REM DEAD END - Idea original: Wolfgang Thaller for Macintosh (C) 1993-1998
15 REM Programa: Miguel A. Garcia Prada for ZX-Spectrum 2019
17 REM Graficos: Javier Vispe
18 REM Apoyo tecnico: Fran Gallego
19 REM Port Amstrad CPC: Fede J. Alvarez Valero
20 REM (c) 2019 Compiler Software - compiler.speccy.org
30 GOSUB 9900
45 GOSUB 9500
50 LET BUFFERLEN=175: DIM BUFFER(BUFFERLEN)
55 LET XOFFSET=2: LET YOFFSET=0: REM POSICION DEL JUEGO AL PINTAR (CENTRADO EN PANTALLA)
60 LET NIVEL=0
62 LET V$=P0$+I7$+CHR$(174): REM PARTE ARRIBA PROTA
63 LET W$=P0$+I5$+CHR$(175): REM PARTE ABAJO PROTA
64 LET X$=P0$+I6$+CHR$(172): REM PARTE ARRIBA CAJA
65 LET Y$=P0$+I6$+CHR$(173): REM PARTE ABAJO CAJA
100 REM MENU DEL JUEGO
105 MODE 0: BORDER 0: PAPER 0: PEN 1: CLS
110 PRINT CHR$(31)+CHR$(1)+CHR$(1)+I5$+P7$+CHR$(176)+CHR$(176)+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P7$+CHR$(176)+CHR$(176)+CHR$(176)
111 PRINT CHR$(31)+CHR$(11)+CHR$(1)+P7$+CHR$(176)+CHR$(176)+CHR$(176)+CHR$(176)+P0$+CHR$(128)+P7$+CHR$(176)+CHR$(176)+CHR$(176)
115 PRINT CHR$(31)+CHR$(1)+CHR$(2)+I1$+P5$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P5$+CHR$(176)+P0$+CHR$(128)+P5$+CHR$(176)
116 PRINT CHR$(31)+CHR$(11)+CHR$(2)+P5$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P5$+CHR$(176)+P0$+CHR$(128)+P5$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P5$+CHR$(176);
120 PRINT CHR$(31)+CHR$(1)+CHR$(3)+I0$+P1$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P1$+CHR$(176)+P0$+CHR$(128)+P1$+CHR$(176)
121 PRINT CHR$(31)+CHR$(11)+CHR$(3)+P1$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P1$+CHR$(176)+P0$+CHR$(128)+P1$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P1$+CHR$(176)
125 PRINT CHR$(31)+CHR$(1)+CHR$(4)+I2$+P0$+CHR$(176)+CHR$(128)+CHR$(128)+CHR$(176)+CHR$(128)+CHR$(176)+CHR$(176)+CHR$(176)
126 PRINT CHR$(31)+CHR$(11)+CHR$(4)+P0$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P0$+CHR$(176)+P0$+CHR$(128)+P0$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P0$+CHR$(176)
130 PRINT CHR$(31)+CHR$(1)+CHR$(5)+I6$+P2$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P2$+CHR$(176)+P0$+CHR$(128)+P2$+CHR$(176)
131 PRINT CHR$(31)+CHR$(11)+CHR$(5)+P2$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P2$+CHR$(176)+P0$+CHR$(128)+P2$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P2$+CHR$(176)
135 PRINT CHR$(31)+CHR$(1)+CHR$(6)+I7$+P6$+CHR$(176)+CHR$(176)+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P6$+CHR$(176)+CHR$(176)+CHR$(176)+CHR$(176)
136 PRINT CHR$(31)+CHR$(11)+CHR$(6)+P6$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P6$+CHR$(176)+P0$+CHR$(128)+P6$+CHR$(176)+CHR$(176)+CHR$(176)
140 PRINT CHR$(31)+CHR$(1)+CHR$(8)+I5$+P7$+CHR$(176)+CHR$(176)+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P7$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P7$+CHR$(176)
141 PRINT CHR$(31)+CHR$(11)+CHR$(8)+P7$+CHR$(176)+CHR$(176)+CHR$(176)
145 PRINT CHR$(31)+CHR$(1)+CHR$(9)+I1$+P5$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+P5$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P5$+CHR$(176)
146 PRINT CHR$(31)+CHR$(11)+CHR$(9)+P5$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P5$+CHR$(176)
150 PRINT CHR$(31)+CHR$(1)+CHR$(10)+I0$+P1$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+P1$+CHR$(176)+CHR$(176)+P0$+CHR$(128)+P1$+CHR$(176)
151 PRINT CHR$(31)+CHR$(11)+CHR$(10)+P1$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P1$+CHR$(176)
155 PRINT CHR$(31)+CHR$(1)+CHR$(11)+I2$+P0$+CHR$(176)+CHR$(176)+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P0$+CHR$(176)+P0$+CHR$(128)+P0$+CHR$(176)+CHR$(176)
156 PRINT CHR$(31)+CHR$(11)+CHR$(11)+P0$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P0$+CHR$(176)
160 PRINT CHR$(31)+CHR$(1)+CHR$(12)+I6$+P2$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+P2$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+CHR$(2)+CHR$(176)
161 PRINT CHR$(31)+CHR$(11)+CHR$(12)+P2$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P2$+CHR$(176)
165 PRINT CHR$(31)+CHR$(1)+CHR$(13)+I7$+P6$+CHR$(176)+CHR$(176)+CHR$(176)+CHR$(176)+P0$+CHR$(128)+P6$+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P6$+CHR$(176)+P0$+CHR$(128)
166 PRINT CHR$(31)+CHR$(11)+CHR$(13)+P6$+CHR$(176)+CHR$(176)+CHR$(176)+P0$+CHR$(128)+CHR$(128)+P6$+CHR$(176)+CHR$(176)+CHR$(176)+CHR$(176)+P0$
169 PAPER 0: PEN 1
170 LOCATE 6,16: PRINT CHR$(24)+"N"+CHR$(24)+"IVEL": LOCATE 11,16: PRINT NIVEL+1
175 LOCATE 6,18: PRINT CHR$(24)+"C"+CHR$(24)+"OMIENZA";
180 LOCATE 8,20: PRINT CHR$(24)+"I"+CHR$(24)+"NFO"
181 PRINT CHR$(31)+CHR$(6)+CHR$(24)+"(c) 2019"+CHR$(31)CHR$(2)+CHR$(25)+"COMPILER SOFTWARE"
184 IF INKEY$<>"" THEN GOTO 184
185 LET A$ = INKEY$
190 IF A$="I" OR A$="i" THEN GOTO 300
195 IF A$="C" OR A$="c" THEN GOTO 500
200 IF A$="N" OR A$="n" THEN GOTO 205
202 GOTO 185
205 LET NIVEL = NIVEL+1: IF NIVEL=10 THEN NIVEL=0
210 LOCATE 11,16: PRINT " ";: LOCATE 11,16: PRINT NIVEL+1
215 IF INKEY$<>"" THEN GOTO 215
220 GOTO 185
300 REM INFO
305 MODE 1: BORDER 0: PAPER 0: PEN 1: CLS
310 LOCATE 6,20: PRINT "2019 MIGUEL G. PRADA PARA EL"
315 LOCATE 4,21: PRINT "CONCURSO BASIC BYTEMANIACOS 2020"
317 LOCATE 2,23: PRINT "PORT AMSTRAD CPC POR FEDE J. ALVAREZ"
318 LOCATE 12,24: PRINT "VERSION 1.0.1"
320 LOCATE 7,2: PRINT "DEAD END ESTA BASADO EN EL"
325 LOCATE 5,3: PRINT "JUEGO DEL MISMO NOMBRE, CREADO"
330 LOCATE 4,4: PRINT "PARA MACINTOSH ENTRE 1993 Y 1998"
335 LOCATE 10,5: PRINT "POR WOLFGANG THALLER"
337 LOCATE 7,7: PRINT "GRAFICOS GRACIAS A J.VISPE"
338 LOCATE 2,8: PRINT "APOYO TECNICO GRACIAS A FRAN GALLEGO"
340 LOCATE 8,12: PRINT "EL JUEGO SE CONTROLA CON"
350 LOCATE 6,14: PRINT "O - IZQUIERDA P - DERECHA"
355 LOCATE 6,15: PRINT "Q - ARRIBA A - ABAJO"
360 LOCATE 6,16: PRINT "R - REINICIA EL NIVEL"
365 LOCATE 6,17: PRINT "Y - REGRESA AL MENU"
380 IF INKEY$<>"" THEN GOTO 380
385 IF INKEY$<>"" THEN GOTO 100
390 GOTO 385
500 REM LANZANDO EL NIVEL
510 LET MOV=0
515 LOCATE 1,23: PAPER 0: PEN 1: FOR I=1 TO 20: PRINT CHR$(176);: NEXT I
516 LOCATE 1,24: PRINT " ": LOCATE 1,25: PRINT " "
520 LOCATE 1,24: PAPER 0: PEN 5: PRINT "Nivel:";:PRINT NIVEL+1;: LOCATE 12,24: PRINT "Movs:": LOCATE 17,24: PRINT USING "####"; MOV
522 GOSUB 800
525 GOSUB 1000
532 PRINT CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+1)+V$+CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+2)+W$
535 LET PUNT=((YPROTA/2)*16)+(XPROTA)
540 GOTO 1100
800 REM BARRIDO CLS
805 FOR F=22 TO 1 STEP -1
810 LOCATE 1,F: PEN 0: PAPER 0: PRINT " ";
815 NEXT F
820 RETURN
900 REM FINAL DEL NIVEL
901 LET NIVEL=NIVEL+1: IF NIVEL=10 THEN NIVEL=0
902 LET C$=CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)+CHR$(179)
905 LOCATE 1,6: PAPER 1: PEN 5: PRINT C$;
910 FOR F=7 TO 14
915 LOCATE 1,F: PAPER 1: PEN 5: PRINT CHR$(179)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)+CHR$(179)
920 NEXT F
925 LOCATE 1,15: PAPER 1: PEN 5: PRINT C$
930 LOCATE 3,9: PAPER 1: PEN 5: PRINT "NIVEL COMPLETADO": LOCATE 3,11: PRINT "MOVIMIENTOS "; USING "####"; MOV: LOCATE 3,13: PRINT "PROXIMO NIVEL "; USING "##"; NIVEL+1
935 IF INKEY$<>"" THEN GOTO 935
940 IF INKEY$<>"" THEN GOTO 500
945 GOTO 940
1000 REM MAPEANDO
1005 LET XTILE=0: LET YTILE=0
1010 GOSUB 8000
1015 FOR F=0 TO BUFFERLEN: READ A: BUFFER(F)=A
1020 IF A=0 THEN GOTO 1050
1025 IF A=1 THEN LOCATE XTILE+1+XOFFSET,YTILE+1: PEN 10: PAPER 0: PRINT CHR$(170): LOCATE XTILE+1+XOFFSET,YTILE+2: PEN 2: PAPER 0: PRINT CHR$(171): GOTO 1050
1026 IF A=2 THEN LOCATE XTILE+1+XOFFSET,YTILE+1: PEN 14: PAPER 0: PRINT CHR$(172): LOCATE XTILE+1+XOFFSET,YTILE+2: PEN 6: PAPER 0: PRINT CHR$(173): GOTO 1050
1030 IF A=3 THEN LOCATE XTILE+1+XOFFSET,YTILE+1: PEN 11: PAPER 3: PRINT CHR$(177): LOCATE XTILE+1+XOFFSET,YTILE+2: PEN 9: PAPER 3: PRINT CHR$(178): GOTO 1050
1050 LET XTILE=XTILE+1
1055 IF XTILE>=16 THEN LET XTILE=0: LET YTILE=YTILE+2
1060 NEXT F
1065 READ XPROTA: READ YPROTA
1070 RETURN
1100 REM BUCLE PRINCIPAL
1105 LET T$=INKEY$
1210 IF T$="O" OR T$="o" THEN GOTO 1300
1215 IF T$="P" OR T$="p" THEN GOTO 1400
1220 IF T$="Q" OR T$="q" THEN GOTO 1500
1225 IF T$="A" OR T$="a" THEN GOTO 1600
1230 IF T$="R" OR T$="r" THEN GOTO 500
1235 IF T$="Y" OR T$="y" THEN GOTO 100
1245 GOTO 1105
1300 REM MOVIMIENTO IZQUIERDA
1305 LET PUNT=PUNT-1: LET B1=BUFFER(PUNT): LET PUNT=PUNT-1: LET B2=BUFFER(PUNT): LET PUNT=PUNT+3: LET B3=BUFFER(PUNT): LET PUNT=PUNT-1
1310 IF B1<>0 THEN GOTO 1320
1315 GOSUB 2000: LET PUNT=PUNT-1: GOTO 1895
1320 IF B1=2 AND B2=0 AND B3=0 THEN GOTO 1350
1325 IF B1=3 THEN GOSUB 2000: GOTO 900
1330 GOTO 1900
1350 REM EMPUJAMOS A LA IZQUIERDA
1355 LET PUNT=PUNT-1: BUFFER(PUNT)=0: BUFFER(PUNT-1)=2
1357 GOSUB 2050: GOSUB 2000
1360 LET XPROTA=XPROTA-1
1365 PRINT CHR$(31)+CHR$(XPROTA+XOFFSET)+CHR$(YPROTA+1)+X$+V$+CHR$(128)+CHR$(31)+CHR$(XPROTA+XOFFSET)+CHR$(YPROTA+2)+Y$+W$+CHR$(128)
1380 GOTO 1895
1400 REM MOVIMIENTO DERECHA
1405 LET PUNT=PUNT+1: LET B1=BUFFER(PUNT): LET PUNT=PUNT+1: LET B2=BUFFER(PUNT): LET PUNT=PUNT-3: LET B3=BUFFER(PUNT): LET PUNT=PUNT+1
1410 IF B1<>0 THEN GOTO 1420
1415 GOSUB 2050: LET PUNT=PUNT+1: GOTO 1895
1420 IF B1=2 AND B2=0 AND B3=0 THEN GOTO 1450
1425 IF B1=3 THEN GOSUB 2050: GOTO 900
1430 GOTO 1900
1450 REM EMPUJAMOS A LA DERECHA
1455 LET PUNT=PUNT+1: BUFFER(PUNT)=0: BUFFER(PUNT+1)=2
1457 GOSUB 2000: GOSUB 2050
1460 LET XPROTA=XPROTA+1
1465 PRINT CHR$(31)+CHR$(XPROTA+XOFFSET)+CHR$(YPROTA+1)+CHR$(128)+V$+X$+CHR$(31)+CHR$(XPROTA+XOFFSET)+CHR$(YPROTA+2)+CHR$(128)+W$+Y$
1480 GOTO 1895
1500 REM MOVIMIENTO ARRIBA
1505 LET PUNT=PUNT-16: GOSUB 7000: LET B1=BUFVAL: LET PUNT=PUNT-16: GOSUB 7000: LET B2=BUFVAL: LET PUNT=PUNT+48: GOSUB 7000: LET B3=BUFVAL: LET PUNT=PUNT-16
1510 IF B1<>0 THEN GOTO 1520
1515 GOSUB 2075: LET PUNT=PUNT-16: GOTO 1895
1520 IF B1=2 AND B2=0 AND B3=0 THEN GOTO 1550
1525 IF B1=3 THEN GOSUB 2075: GOTO 900
1530 GOTO 1900
1550 REM EMPUJAMOS ARRIBA
1555 LET PUNT=PUNT-16: BUFFER(PUNT)=0: BUFFER(PUNT-16)=2
1557 GOSUB 3025: GOSUB 2075
1565 LOCATE XPROTA+1+XOFFSET,YPROTA-3: PRINT X$: LOCATE XPROTA+1+XOFFSET,YPROTA-2: PRINT Y$: GOSUB 2075
1580 GOTO 1895
1600 REM MOVIMIENTO ABAJO
1605 LET PUNT=PUNT+16: GOSUB 7000: LET B1=BUFVAL: LET PUNT=PUNT+16: GOSUB 7000: LET B2=BUFVAL: LET PUNT=PUNT-48: GOSUB 7000: LET B3=BUFVAL: LET PUNT=PUNT+16
1610 IF B1<>0 THEN GOTO 1620
1615 GOSUB 3025: LET PUNT=PUNT+16: GOTO 1895
1620 IF B1=2 AND B2=0 AND B3=0 THEN GOTO 1650
1625 IF B1=3 THEN GOSUB 3025: GOTO 900
1630 GOTO 1900
1650 REM EMPUJAMOS ABAJO
1655 LET PUNT=PUNT+16: BUFFER(PUNT)=0: BUFFER(PUNT+16)=2
1657 GOSUB 2075: GOSUB 3025
1665 LOCATE XPROTA+1+XOFFSET,YPROTA+5: PRINT X$: LOCATE XPROTA+1+XOFFSET,YPROTA+6: PRINT Y$: GOSUB 3025
1680 GOTO 1895
1895 LET MOV=MOV+1
1900 LOCATE 17,24: PEN 5: PRINT USING "####"; MOV
1905 GOTO 1100
2000 REM PINTA PERSONAJE UN PASO A LA IZQUIERDA BORRANDO RASTRO
2005 LET XPROTA=XPROTA-1
2010 PRINT CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+1)+V$+CHR$(128)+CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+2)+W$+CHR$(128)
2012 SOUND 1,1911,5
2015 RETURN
2050 REM PINTA PERSONAJE UN PASO A LA DERECHA BORRANDO RASTRO
2055 PRINT CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+1)+CHR$(128)+V$+CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+2)+CHR$(128)+W$
2060 LET XPROTA=XPROTA+1
2062 SOUND 1,1911,5
2065 RETURN
2075 REM PINTA PERSONAJE UN PASO ARRIBA BORRANDO RASTRO
2080 LET YPROTA=YPROTA-2
2085 PRINT CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+1)+V$+CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+2)+W$+CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+3)+CHR$(128)+CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+4)+CHR$(128)
2087 SOUND 1,1911,5
2090 RETURN
3025 REM PINTA PERSONAJE UN PASO ABAJO BORRANDO RASTRO
3030 LOCATE XPROTA+1+XOFFSET,YPROTA+1: PRINT CHR$(128): LOCATE XPROTA+1+XOFFSET,YPROTA+2: PRINT CHR$(128)
3035 LET YPROTA=YPROTA+2
3040 PRINT CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+1)+V$+CHR$(31)+CHR$(XPROTA+1+XOFFSET)+CHR$(YPROTA+2)+W$
3042 SOUND 1,1911,5
3045 RETURN
6910 END
7000 REM LEE BUFFER
7001 REM PUNT = INDICE
7002 REM BUFVAL = BUFFER(PUNT) O 0 SI PUNT FUERA DE RANGO
7005 IF PUNT<0 OR PUNT>BUFFERLEN THEN BUFVAL=0 ELSE BUFVAL=BUFFER(PUNT)
7010 RETURN
8000 REM RESTAURAR DATOS DE NIVELES
8001 IF NIVEL=0 THEN RESTORE 9000
8002 IF NIVEL=1 THEN RESTORE 9020
8003 IF NIVEL=2 THEN RESTORE 9040
8004 IF NIVEL=3 THEN RESTORE 9060
8005 IF NIVEL=4 THEN RESTORE 9080
8006 IF NIVEL=5 THEN RESTORE 9100
8007 IF NIVEL=6 THEN RESTORE 9120
8008 IF NIVEL=7 THEN RESTORE 9140
8009 IF NIVEL=8 THEN RESTORE 9160
8010 IF NIVEL=9 THEN RESTORE 9180
8011 REM RESTORE 9200
8020 RETURN
9000 REM NIVEL1
9001 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9002 DATA 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0
9003 DATA 0,0,0,1,1,1,1,3,1,1,1,1,0,0,0,0
9004 DATA 0,1,1,1,0,2,0,2,0,0,0,1,1,1,0,0
9005 DATA 1,1,0,0,0,0,2,2,2,0,2,0,0,1,1,0
9006 DATA 1,2,0,2,0,2,0,2,0,0,0,2,0,2,1,0
9007 DATA 1,2,0,0,2,0,2,2,2,2,2,0,0,2,1,0
9008 DATA 1,2,2,2,0,2,0,0,2,0,0,2,2,2,1,0
9009 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
9010 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9011 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9012 DATA 7,14
9020 REM NIVEL 2
9021 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9022 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
9023 DATA 1,0,0,2,0,2,0,0,0,2,0,2,0,3,1,0
9024 DATA 1,0,0,2,0,2,0,2,2,2,2,0,2,0,1,0
9025 DATA 1,0,0,2,0,2,0,0,0,2,0,2,0,0,1,0
9026 DATA 1,0,0,2,0,2,0,2,2,0,2,0,2,0,1,0
9027 DATA 1,0,0,2,0,2,0,0,0,2,0,2,0,2,1,0
9028 DATA 1,0,0,2,0,2,0,2,2,0,2,0,2,0,1,0
9029 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
9030 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9031 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9032 DATA 1,8
9040 REM NIVEL 3
9041 DATA 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
9042 DATA 0,1,0,0,0,2,2,0,0,0,0,0,2,0,1,0
9043 DATA 0,1,0,0,0,0,0,0,2,2,0,2,0,2,1,0
9044 DATA 0,1,0,0,0,2,2,0,2,0,2,0,2,0,1,0
9045 DATA 0,1,0,0,2,2,0,0,2,2,2,2,2,0,1,0
9046 DATA 0,1,0,0,2,0,2,0,2,0,0,0,0,0,1,0
9047 DATA 0,1,0,0,0,2,0,2,0,0,2,0,0,2,1,0
9048 DATA 0,1,0,0,0,0,2,0,2,0,2,2,2,2,1,0
9049 DATA 0,1,0,0,0,2,2,0,0,2,2,2,3,0,1,0
9050 DATA 0,1,0,0,0,2,2,0,0,2,0,0,0,0,1,0
9051 DATA 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
9052 DATA 2,10
9060 REM NIVEL 4
9061 DATA 0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0
9062 DATA 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0
9063 DATA 0,0,1,1,1,0,1,1,2,2,0,2,0,1,0,0
9064 DATA 0,1,0,1,1,0,1,0,0,2,0,0,0,1,0,0
9065 DATA 0,1,0,0,0,2,2,0,0,0,2,0,2,1,0,0
9066 DATA 0,1,2,0,2,0,2,0,0,0,2,2,0,1,0,0
9067 DATA 0,1,0,1,1,0,1,0,2,2,0,2,2,1,0,0
9068 DATA 0,0,1,1,1,0,1,1,0,2,0,0,3,1,0,0
9069 DATA 0,0,0,0,0,1,0,1,2,0,0,0,1,0,0,0
9070 DATA 0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0
9071 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9072 DATA 5,14
9080 REM NIVEL 5
9081 DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
9082 DATA 0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0
9083 DATA 0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0
9084 DATA 0,0,0,0,1,0,2,2,2,0,1,0,0,0,0,0
9085 DATA 0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0
9086 DATA 0,0,1,0,2,2,2,2,2,2,2,0,1,0,0,0
9087 DATA 0,0,0,1,0,0,2,0,2,0,0,1,0,0,0,0
9088 DATA 0,0,0,0,1,0,0,2,0,0,1,0,0,0,0,0
9089 DATA 0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0
9090 DATA 0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0
9091 DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
9092 DATA 7,18
9100 REM NIVEL 6
9101 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9102 DATA 0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0
9103 DATA 0,0,1,0,0,0,0,0,0,0,2,0,0,1,0,0
9104 DATA 0,0,1,2,0,0,2,0,0,2,0,0,0,1,0,0
9105 DATA 0,0,1,0,2,2,2,2,2,0,2,2,2,1,0,0
9106 DATA 0,0,1,0,2,0,0,2,0,2,2,0,0,1,0,0
9107 DATA 0,0,1,0,2,0,0,2,0,2,0,0,2,1,0,0
9108 DATA 0,0,1,3,0,2,0,0,0,1,2,0,0,1,0,0
9109 DATA 0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0
9110 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9111 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9112 DATA 12,10
9120 REM NIVEL 7
9121 DATA 0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0
9122 DATA 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
9123 DATA 0,1,0,0,2,0,2,0,2,0,2,0,2,2,0,1
9124 DATA 0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,1
9125 DATA 0,1,0,2,2,2,2,2,2,2,2,2,2,2,1,1
9126 DATA 1,0,0,0,2,0,0,2,0,0,0,0,0,0,0,1
9127 DATA 0,1,0,1,0,0,2,0,2,0,2,0,2,2,1,1
9128 DATA 0,0,1,0,2,0,0,2,2,0,2,0,2,0,0,1
9129 DATA 0,1,0,0,2,0,2,0,2,0,2,0,2,0,2,1
9130 DATA 0,0,1,0,3,1,0,1,0,1,0,1,0,1,1,0
9131 DATA 0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0
9132 DATA 3,4
9140 REM NIVEL 8
9141 DATA 0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0
9142 DATA 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0
9143 DATA 0,1,0,1,1,1,1,1,1,0,1,0,1,1,0,0
9144 DATA 0,1,0,1,0,0,2,0,1,0,0,1,0,1,0,0
9145 DATA 0,1,0,1,0,0,2,0,0,2,2,2,0,0,1,0
9146 DATA 0,1,0,0,2,0,0,2,2,0,0,0,2,2,1,0
9147 DATA 0,1,0,1,0,0,2,0,0,2,0,2,0,3,1,0
9148 DATA 0,1,0,1,0,0,2,2,1,0,2,1,0,1,1,0
9149 DATA 0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,0
9150 DATA 0,1,0,0,0,0,0,0,0,0,0,1,2,0,0,0
9151 DATA 0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0
9152 DATA 3,10
9160 REM NIVEL 9
9161 DATA 0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0
9162 DATA 0,0,1,1,3,2,0,2,0,2,0,0,1,1,0,0
9163 DATA 0,0,1,0,0,2,0,2,0,2,0,2,0,1,0,0
9164 DATA 0,0,1,0,1,0,0,2,0,0,0,0,0,1,0,0
9165 DATA 0,0,1,0,2,0,0,0,0,2,0,2,0,1,0,0
9166 DATA 0,0,1,2,0,2,2,0,2,0,2,2,2,1,0,0
9167 DATA 0,0,1,0,2,0,2,2,2,2,0,2,0,1,0,0
9168 DATA 0,0,1,0,0,0,2,0,0,0,2,0,0,1,0,0
9169 DATA 0,0,1,0,2,0,2,0,2,0,2,0,0,1,0,0
9170 DATA 0,0,1,1,0,0,0,0,2,0,2,0,1,1,0,0
9171 DATA 0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0
9172 DATA 4,18
9180 REM NIVEL 10
9181 DATA 0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0
9182 DATA 0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0
9183 DATA 0,0,0,1,1,1,0,2,0,0,0,1,1,1,0,0
9184 DATA 0,1,1,1,0,2,0,0,2,0,2,0,0,1,1,1
9185 DATA 1,1,0,0,2,0,2,0,0,2,0,0,2,0,0,1
9186 DATA 1,0,0,2,0,2,0,2,2,2,2,2,2,0,0,3
9187 DATA 1,1,0,0,2,0,2,2,0,2,0,0,2,0,2,1
9188 DATA 0,1,1,1,0,2,0,0,2,0,0,2,0,1,1,1
9189 DATA 0,0,0,1,1,1,0,2,0,0,0,1,1,1,0,0
9190 DATA 0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0
9191 DATA 0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0
9192 DATA 1,10
9200 REM NIVEL TEST
9201 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
9202 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9203 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9204 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9205 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9206 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9207 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9208 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9209 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9210 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
9211 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
9212 DATA 14,2
9500 REM UDG
9505 SYMBOL AFTER 170
9510 REM MURO - 170,171
9511 SYMBOL 170,85,221,221,0,119,119,119,0
9512 SYMBOL 171,221,221,221,0,119,119,85,0
9520 REM EMPUJABLE - 172,173
9521 SYMBOL 172,0,127,127,0,93,89,69,77
9522 SYMBOL 173,89,81,77,93,0,127,127,0
9530 REM PROTA - 174,175
9531 SYMBOL 174,0,60,66,153,133,129,129,66
9532 SYMBOL 175,189,195,253,139,165,139,126,60
9540 REM CARACTER ROTULO DEAD END_ - 176
9541 SYMBOL 176,0,85,0,170,85,170,255,255
9550 REM SALIDA - 177,178
9551 SYMBOL 177,85,170,0,106,74,100,74,106
9552 SYMBOL 178,0,46,36,36,36,36,145,74
9560 REM CARACTER MARCO FINAL DE NIVEL - 179
9561 SYMBOL 179,170,85,170,85,170,85,170,85
9900 REM SET PALETA COLORES TOMANDO COMO BASE LA DE ZX SPECTRUM
9905 MODE 2
9910 INK 0,0: REM negro
9911 INK 1,2: REM azul
9912 INK 2,6: REM rojo
9913 INK 3,4: REM magenta
9914 INK 4,9: REM verde
9915 INK 5,20: REM cyan
9916 INK 6,24: REM amarillo
9917 INK 7,26: REM blanco
9919 INK 9,7: REM purpura
9920 INK 10,15: REM rojo claro
9921 INK 11,8: REM magenta claro
9924 INK 14,25: REM amarillo claro
9930 REM DEFINIR VARIABLES PARA PAPER Y PEN
9931 LET P0$=CHR$(14)+CHR$(0): LET I0$=CHR$(15)+CHR$(0)
9932 LET P1$=CHR$(14)+CHR$(1): LET I1$=CHR$(15)+CHR$(1)
9933 LET P2$=CHR$(14)+CHR$(2): LET I2$=CHR$(15)+CHR$(2)
9934 LET P3$=CHR$(14)+CHR$(3): LET I3$=CHR$(15)+CHR$(3)
9935 LET P4$=CHR$(14)+CHR$(4): LET I4$=CHR$(15)+CHR$(4)
9936 LET P5$=CHR$(14)+CHR$(5): LET I5$=CHR$(15)+CHR$(5)
9937 LET P6$=CHR$(14)+CHR$(6): LET I6$=CHR$(15)+CHR$(6)
9938 LET P7$=CHR$(14)+CHR$(7): LET I7$=CHR$(15)+CHR$(7)
9939 LET P9$=CHR$(14)+CHR$(9): LET I9$=CHR$(15)+CHR$(9)
9940 LET P10$=CHR$(14)+CHR$(10): LET I10$=CHR$(15)+CHR$(10)
9941 LET P11$=CHR$(14)+CHR$(11): LET I11$=CHR$(15)+CHR$(11)
9942 LET P14$=CHR$(14)+CHR$(14): LET I14$=CHR$(15)+CHR$(14)
9949 RETURN
9990 REM RESTAURAR MODO DE EDICION
9998 MODE 2: INK 0,1: INK 1,24: BORDER 1: PAPER 0: PEN 1
9999 END