User Tools

Site Tools


en:sublevel

SUBLEVEL

Info

Author Jorge Perez Barreiro
Computer Amstrad PCW 8256 / 8512 / 9512
Year 1989
Gender Pac-Man
Controls Keyboard
Languages Spanish
Status Preserved

Screenshots

Description

A pacman-type game but with numerous randomly generated levels. The game is to eat all the dots without being caught by the ghost. Once all this is achieved, you can access the next sublevel at the bottom of the screen.

Some objects that we find in the game:

  • Potion: To flee from the ghost
  • Caravel: It takes a life from us
  • Well: We lose the potions we carry
  • Trophy: Gives us an extra life.
  • Parchment: Spell to pass the level.
  • Bulb: Vitamin to catch the ghost.

Listing

  • Listing 1 - SUB.BAS
100 '*********************************************************
110 '**                                                     **
120 '**                  S U B L E V E L                    **
130 '**            (C) 2-12-1989 Jorge Perez                **
140 '**            AMSTRAD PCW 8256-8512-9512               **
150 '**                                                     **
160 '**                                Sabadell(BARCELONA)  **
170 '*********************************************************
180 '
190 '
200 '(PRIMERA PARTE "SUB")
210 '
220 '
230 cls$=CHR$(27)+"E"+CHR$(27)+"H":REM BORRAR PANTALLA
240 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h):REM CONTROL "AT"
250 inverse1$=CHR$(27)+"p":REM VIDEO INVERSO
260 inverse0$=CHR$(27)+"q":REM VIDEO NORMAL
270 cursor1$=CHR$(27)+"e":REM CON CURSOR
280 cursor0$=CHR$(27)+"f":REM SIN CURSOR
290 scrab$=CHR$(27)+"L"
300 scrar$=CHR$(27)+"M"
310 DEF FN ventana$(a,b,c,d)=CHR$(27)+"X"+CHR$(32+a)+CHR$(32+b)+CHR$(c-1+32)+CHR$(d-1+32)
320 PRINT cls$
330 PRINT cursor0$
340 GOSUB 4930
350 PRINT FN at$(12,32);"* CARGANDO SUBLEVEL *"
360 RESTORE 1120:FOR q=65 TO 90
370 ca=q:GOSUB 5050
380 NEXT q
390 FOR q=97 TO 122
400 ca=q:GOSUB 5050
410 NEXT q
420 FOR q=48 TO 57:ca=q:GOSUB 5050:NEXT q
430 FOR q=125 TO 134:ca=q:GOSUB 5050:NEXT q
440 ca=42:GOSUB 5050
450 ca=43:GOSUB 5050
460 ca=46:GOSUB 5050
470 ca=47:GOSUB 5050
480 ca=58:GOSUB 5050
490 ca=59:GOSUB 5050
500 ca=95:GOSUB 5050
510 ca=96:GOSUB 5050
520 ca=44:GOSUB 5050
530 ca=45:GOSUB 5050
540 ca=92:GOSUB 5050
550 ca=124:GOSUB 5050
560 PRINT FN at$(12,24);"*+  CcAaRrGgAaNnDdOo  SsUuBbLlEeVvEeLl  *+"
570 FOR q=136 TO 237:ca=q:GOSUB 5050:NEXT q
580 FOR q=3 TO 84 STEP 7
590 PRINT FN at$(0,q);:FOR y=224 TO 230:PRINT CHR$(y);:NEXT y
600 PRINT FN at$(1,q);:FOR y=231 TO 237:PRINT CHR$(y);:NEXT y
610 NEXT q
620 PRINT FN at$(0,0);CHR$(136)+CHR$(137)+CHR$(138)+CHR$(139)
630 PRINT FN at$(1,0);CHR$(140)+CHR$(141)+CHR$(142)+CHR$(143)
640 PRINT FN at$(2,0);CHR$(144)+CHR$(145)+CHR$(146)
650 PRINT FN at$(0,86);CHR$(158)+CHR$(159)+CHR$(160)+CHR$(161)
660 PRINT FN at$(1,86);CHR$(162)+CHR$(163)+CHR$(164)+CHR$(165)
670 PRINT FN at$(2,87);CHR$(166)+CHR$(167)+CHR$(168)
680 FOR q=3 TO 84 STEP 7
690 PRINT FN at$(20,q);:FOR y=210 TO 216:PRINT CHR$(y);:NEXT y
700 PRINT FN at$(21,q);:FOR y=217 TO 223:PRINT CHR$(y);:NEXT y
710 NEXT q
720 PRINT FN at$(19,0);CHR$(155)+CHR$(156)+CHR$(157)
730 PRINT FN at$(20,0);CHR$(147)+CHR$(148)+CHR$(149)+CHR$(150)
740 PRINT FN at$(21,0);CHR$(151)+CHR$(152)+CHR$(153)+CHR$(154)
750 PRINT FN at$(19,87);CHR$(177)+CHR$(178)+CHR$(179)
760 PRINT FN at$(20,86);CHR$(169)+CHR$(170)+CHR$(171)+CHR$(172)
770 PRINT FN at$(21,86);CHR$(173)+CHR$(174)+CHR$(175)+CHR$(176)
780 FOR q=3 TO 16 STEP 4
790 PRINT FN at$(q,0);CHR$(180)+CHR$(181)+CHR$(182)+CHR$(183)
800 PRINT FN at$(q+1,0);CHR$(184)+CHR$(185)+CHR$(186)+CHR$(187)
810 PRINT FN at$(q+2,0);CHR$(188)+CHR$(189)+CHR$(190)+CHR$(191)
820 PRINT FN at$(q+3,0);CHR$(192)+CHR$(193)+CHR$(194)
830 PRINT FN at$(q,86);CHR$(195)+CHR$(196)+CHR$(197)+CHR$(198)
840 PRINT FN at$(q+1,86);CHR$(199)+CHR$(200)+CHR$(201)+CHR$(202)
850 PRINT FN at$(q+2,86);CHR$(205)+CHR$(206)+CHR$(203)+CHR$(204)
860 PRINT FN at$(q+3,87);CHR$(209)+CHR$(207)+CHR$(208)
870 NEXT q
880 FOR q=136 TO 209:ca=q:GOSUB 5050:NEXT q
890 FOR q=7 TO 82
900 PRINT FN at$(22,q);CHR$(154);FN at$(29,q);CHR$(155)
910 NEXT q
920 PRINT FN at$(22,0);:FOR q=136 TO 142:PRINT CHR$(q);:NEXT q
930 PRINT FN at$(23,0);:FOR q=143 TO 148:PRINT CHR$(q);:NEXT q
940 PRINT FN at$(24,0);:FOR q=149 TO 151:PRINT CHR$(q);:NEXT q
950 PRINT FN at$(25,0);CHR$(152);CHR$(153)
960 PRINT FN at$(22,83);:FOR q=156 TO 162:PRINT CHR$(q);:NEXT q
970 PRINT FN at$(23,84);:FOR q=163 TO 168:PRINT CHR$(q);:NEXT q
980 PRINT FN at$(24,87);:FOR q=169 TO 171:PRINT CHR$(q);:NEXT q
990 PRINT FN at$(25,88);CHR$(172);CHR$(173)
1000 PRINT FN at$(26,0);CHR$(174);CHR$(175)
1010 PRINT FN at$(27,0);:FOR q=176 TO 178:PRINT CHR$(q);:NEXT q
1020 PRINT FN at$(28,0);:FOR q=179 TO 184:PRINT CHR$(q);:NEXT q
1030 PRINT FN at$(29,0);:FOR q=185 TO 191:PRINT CHR$(q);:NEXT q
1040 PRINT FN at$(26,88);CHR$(192);CHR$(193)
1050 PRINT FN at$(27,87);:FOR q=194 TO 196:PRINT CHR$(q);:NEXT q
1060 PRINT FN at$(28,84);:FOR q=197 TO 202:PRINT CHR$(q);:NEXT q
1070 PRINT FN at$(29,83);:FOR q=203 TO 209:PRINT CHR$(q);:NEXT q
1080 FOR q=136 TO 249:ca=q:GOSUB 5050:NEXT q
1090 RUN "SUB2"
1100 STOP
1110 REM MAYUSCULAS 1
1120 DATA 15,8,17,17,49,32,35,63
1130 DATA 63,32,35,32,35,35,32,63
1140 DATA 15,16,35,35,35,49,28,7
1150 DATA 63,32,35,35,35,35,32,63
1160 DATA 63,32,35,32,35,35,32,63
1170 DATA 63,32,35,32,35,35,35,63
1180 DATA 15,48,35,35,35,35,56,15
1190 DATA 63,35,35,32,35,35,35,63
1200 DATA 7,4,4,4,4,4,4,7
1210 DATA 1,1,1,1,63,35,48,15
1220 DATA 63,35,32,33,32,34,35,63
1230 DATA 31,16,16,16,16,16,16,31
1240 DATA 127,65,64,68,70,71,71,126
1250 DATA 63,33,32,32,34,35,35,63
1260 DATA 15,48,35,35,35,35,24,15
1270 DATA 63,32,35,32,35,35,35,63
1280 DATA 15,48,35,35,35,35,24,15
1290 DATA 63,32,35,32,34,35,35,63
1300 DATA 15,48,35,48,63,35,56,15
1310 DATA 63,32,60,4,4,4,4,7
1320 DATA 63,35,35,35,35,35,48,31
1330 DATA 62,35,33,17,17,8,8,15
1340 DATA 127,68,68,68,97,33,33,63
1350 DATA 127,99,48,28,24,49,67,127
1360 DATA 125,67,32,16,8,8,8,15
1370 DATA 31,16,31,4,24,33,32,63
1380 REM MAYUSCULAS 2
1390 DATA 240,48,56,24,28,12,12,252
1400 DATA 240,56,24,56,28,12,60,252
1410 DATA 240,28,140,252,248,140,60,252
1420 DATA 240,24,140,140,140,28,120,240
1430 DATA 248,24,248,96,224,248,24,248
1440 DATA 248,24,248,96,224,224,0,0
1450 DATA 240,28,140,252,12,140,12,252
1460 DATA 252,140,140,12,140,140,140,124
1470 DATA 224,96,96,96,96,96,96,224
1480 DATA 252,24,24,24,24,24,56,240
1490 DATA 252,28,120,224,224,56,140,124
1500 DATA 128,128,128,128,128,248,24,248
1510 DATA 254,6,6,70,198,198,198,126
1520 DATA 252,140,140,12,12,12,140,252
1530 DATA 240,28,140,140,140,140,56,240
1540 DATA 240,28,140,28,248,128,0,0
1550 DATA 240,28,140,140,140,156,120,156
1560 DATA 240,28,12,28,56,24,12,124
1570 DATA 240,28,252,120,140,140,60,240
1580 DATA 252,12,124,96,96,96,96,224
1590 DATA 248,24,24,24,24,24,56,240
1600 DATA 252,140,12,28,24,56,48,240
1610 DATA 254,70,70,70,14,12,12,252
1620 DATA 254,142,24,112,56,28,134,254
1630 DATA 252,28,56,112,224,192,192,192
1640 DATA 252,12,24,48,224,252,12,252
1650 REM NUMEROS 1
1660 DATA 31,48,35,35,35,35,24,15
1670 DATA 1,6,4,4,4,4,4,7
1680 DATA 15,48,63,31,12,48,32,63
1690 DATA 31,48,63,4,63,35,56,15
1700 DATA 3,12,16,35,34,32,62,3
1710 DATA 31,16,19,16,63,35,24,15
1720 DATA 31,48,35,32,35,35,24,15
1730 DATA 31,16,31,2,4,8,16,31
1740 DATA 15,48,35,16,99,71,48,31
1750 DATA 15,48,35,48,63,35,24,15
1760 REM NEMEROS 2
1770 DATA 240,56,24,24,24,24,120,240
1780 DATA 224,96,96,96,96,96,96,224
1790 DATA 224,56,24,24,120,240,24,248
1800 DATA 224,56,24,56,24,24,120,224
1810 DATA 248,56,224,48,60,12,60,240
1820 DATA 248,24,248,56,24,24,120,240
1830 DATA 224,56,248,112,24,24,120,240
1840 DATA 248,24,56,48,112,224,224,192
1850 DATA 224,56,24,48,28,140,60,240
1860 DATA 224,56,24,24,24,24,120,240
1870 REM SIGNOS
1880 DATA 7,116,156,96,48,204,124,7
1890 DATA 128,220,230,28,56,230,254,192
1900 DATA 0,0,0,0,0,7,4,7
1910 DATA 0,0,0,0,0,224,96,224
1920 DATA 0,7,4,7,0,7,4,7
1930 DATA 0,224,96,224,0,224,96,224
1940 DATA 0,255,192,255,0,0,0,0
1950 DATA 0,252,6,254,0,0,0,0
1960 DATA 0,0,0,0,7,6,6,3
1970 DATA 0,0,0,0,224,96,96,224
1980 DATA 127,96,33,32,34,35,35,63
1990 DATA 254,6,140,140,12,12,140,252
2000 REM VENTANA (A)
2010 DATA 0,0,1,7,14,28,30,15
2020 DATA 0,0,224,255,31,7,0,128
2030 DATA 0,15,48,225,195,204,217,127
2040 DATA 0,192,56,255,0,0,36,255
2050 DATA 15,15,28,113,195,135,206,108
2060 DATA 192,240,63,255,251,56,88,56
2070 DATA 24,14,7,3,199,253,182,118
2080 DATA 0,0,36,255,48,192,0,0
2090 DATA 60,28,12,12,12,12,12,12
2100 DATA 88,56,88,56,88,56,88,56
2110 DATA 188,112,176,112,176,112,176,112
2120 DATA 108,206,135,195,113,28,15,15
2130 DATA 56,88,56,251,255,63,240,192
2140 DATA 118,182,253,199,3,7,14,24
2150 DATA 0,0,192,48,255,36,0,0
2160 DATA 15,30,28,14,7,1,0,0
2170 DATA 128,0,7,31,255,224,0,0
2180 DATA 127,217,204,195,225,48,15,0
2190 DATA 255,36,0,0,255,56,192,0
2200 DATA 12,12,12,12,12,12,28,60
2210 DATA 56,88,56,88,56,88,56,88
2220 DATA 112,176,112,176,112,176,112,188
2230 DATA 0,3,28,255,0,0,36,255
2240 DATA 0,240,12,135,195,51,155,254
2250 DATA 0,0,7,255,248,224,0,0
2260 DATA 0,0,128,224,112,56,120,240
2270 DATA 0,0,36,255,12,3,0,0
2280 DATA 24,112,224,192,227,191,109,110
2290 DATA 3,15,252,255,223,28,26,28
2300 DATA 240,240,56,142,195,225,115,54
2310 DATA 61,14,13,14,13,14,13,14
2320 DATA 26,28,26,28,26,28,26,28
2330 DATA 60,56,48,48,48,48,48,48
2340 DATA 0,0,3,12,255,36,0,0
2350 DATA 110,109,191,227,192,224,112,24
2360 DATA 28,26,28,223,255,252,15,3
2370 DATA 54,115,225,195,142,56,240,240
2380 DATA 255,36,0,0,255,28,3,0
2390 DATA 254,155,51,195,135,12,240,0
2400 DATA 0,0,224,248,255,7,0,0
2410 DATA 240,120,56,112,224,128,0,0
2420 DATA 14,13,14,13,14,13,14,61
2430 DATA 28,26,28,26,28,26,28,26
2440 DATA 48,48,48,48,48,48,56,60
2450 DATA 12,12,12,12,12,12,124,204
2460 DATA 88,56,88,56,88,56,88,56
2470 DATA 176,124,182,119,179,115,161,97
2480 DATA 0,0,0,0,0,128,128,128
2490 DATA 206,195,112,28,15,13,13,14
2500 DATA 88,249,121,30,24,0,1,7
2510 DATA 195,135,14,24,48,224,160,96
2520 DATA 0,0,0,0,0,0,0,0
2530 DATA 12,24,24,48,48,96,96,193
2540 DATA 10,23,56,64,3,62,216,216
2550 DATA 176,248,14,3,227,179,126,184
2560 DATA 0,0,0,0,0,0,0,0
2570 DATA 195,195,198,100,60,12,12,12
2580 DATA 56,88,56,88,56,88,56,88
2590 DATA 112,176,112,176,112,176,112,176
2600 DATA 0,0,0,0,0,1,1,1
2610 DATA 13,62,109,238,205,206,133,134
2620 DATA 26,28,26,28,26,28,26,28
2630 DATA 48,48,48,48,48,48,126,115
2640 DATA 0,0,0,0,0,0,0,0
2650 DATA 195,225,112,24,12,15,13,14
2660 DATA 27,159,158,120,24,0,128,224
2670 DATA 243,195,14,56,240,176,176,112
2680 DATA 80,232,60,2,192,124,27,27
2690 DATA 48,24,24,12,12,6,6,131
2700 DATA 0,0,0,0,0,0,0,0
2710 DATA 13,31,112,192,199,205,126,29
2720 DATA 28,26,28,26,28,26,28,26
2730 DATA 195,195,99,38,60,48,48,48
2740 DATA 14,13,14,13,14,13,14,13
2750 DATA 0,7,60,96,255,36,0,0
2760 DATA 63,192,0,31,255,146,0,0
2770 DATA 192,60,3,0,192,99,48,24
2780 DATA 0,0,128,127,29,3,192,96
2790 DATA 15,16,8,248,113,135,60,224
2800 DATA 128,192,192,192,255,36,0,0
2810 DATA 0,0,0,0,255,73,0,0
2820 DATA 255,36,0,0,255,0,0,0
2830 DATA 255,146,0,0,255,0,0,0
2840 DATA 248,88,24,48,225,199,124,0
2850 DATA 120,108,110,215,255,0,0,0
2860 DATA 127,61,15,3,192,112,14,1
2870 DATA 255,36,64,213,255,62,1,254
2880 DATA 255,73,0,0,255,60,224,0
2890 DATA 0,0,0,255,0,0,36,255
2900 DATA 0,0,0,255,0,0,146,255
2910 DATA 0,124,199,225,48,24,88,248
2920 DATA 0,0,0,255,215,110,108,120
2930 DATA 1,14,112,192,3,15,61,127
2940 DATA 254,1,62,255,213,64,36,255
2950 DATA 0,224,60,255,0,0,73,255
2960 DATA 0,0,36,255,96,60,7,0
2970 DATA 0,0,146,255,31,0,192,63
2980 DATA 24,48,99,192,0,3,60,192
2990 DATA 96,192,3,29,127,128,0,0
3000 DATA 224,60,135,113,248,8,16,15
3010 DATA 0,0,36,255,192,192,192,128
3020 DATA 0,0,73,255,0,0,0,0
3030 REM VENTANA (B)
3040 DATA 255,192,207,204,204,207,192,255
3050 DATA 255,3,251,51,51,255,0,255
3060 DATA 63,48,51,51,51,243,51,243
3070 DATA 255,0,255,0,0,255,0,255
3080 DATA 255,0,255,0,0,255,0,255
3090 DATA 255,0,255,0,0,255,0,195
3100 DATA 255,0,255,0,0,224,192,0
3110 DATA 0,255,192,207,204,204,204,204
3120 DATA 51,243,51,243,51,51,51,51
3130 DATA 51,255,0,255,51,51,51,51
3140 DATA 0,255,0,255,0,0,0,0
3150 DATA 7,252,0,255,0,0,0,0
3160 DATA 12,48,192,0,0,0,0,0
3170 DATA 204,204,204,204,204,204,204,204
3180 DATA 51,51,51,51,51,48,48,51
3190 DATA 51,51,115,195,14,56,224,128
3200 DATA 204,204,204,204,204,204,204,204
3210 DATA 62,56,0,0,0,0,0,0
3220 DATA 255,0,255,0,0,0,0,0
3230 DATA 0,0,0,0,0,255,0,255
3240 DATA 255,0,255,0,0,7,3,0
3250 DATA 255,0,255,0,0,255,0,195
3260 DATA 255,0,255,0,0,255,0,255
3270 DATA 255,0,255,0,0,255,0,255
3280 DATA 252,12,204,204,204,207,204,207
3290 DATA 255,192,207,204,204,255,0,255
3300 DATA 255,3,243,51,51,243,3,255
3310 DATA 48,12,3,0,0,0,0,0
3320 DATA 224,63,0,255,0,0,0,0
3330 DATA 0,255,0,255,0,0,0,0
3340 DATA 204,255,0,255,204,204,204,204
3350 DATA 204,207,204,207,204,204,204,204
3360 DATA 0,255,3,243,51,51,51,51
3370 DATA 204,204,206,195,112,28,7,1
3380 DATA 204,204,204,204,204,12,12,204
3390 DATA 51,51,51,51,51,51,51,51
3400 DATA 124,28,0,0,0,0,0,0
3410 DATA 51,51,51,51,51,51,51,51
3420 DATA 204,204,204,204,204,204,204,204
3430 DATA 0,0,0,0,0,0,56,62
3440 DATA 204,204,204,204,204,204,204,204
3450 DATA 51,48,48,51,51,51,51,51
3460 DATA 128,224,56,14,195,115,51,51
3470 DATA 204,204,204,204,207,192,255,0
3480 DATA 51,51,51,51,243,51,243,51
3490 DATA 51,51,51,51,255,0,255,51
3500 DATA 0,0,0,0,255,0,255,0
3510 DATA 0,0,0,0,255,0,252,7
3520 DATA 0,0,0,0,0,192,48,12
3530 DATA 255,192,207,204,204,207,192,255
3540 DATA 255,0,255,51,51,251,3,255
3550 DATA 243,51,243,51,51,51,48,63
3560 DATA 255,0,255,0,0,255,0,255
3570 DATA 255,0,255,0,0,255,0,255
3580 DATA 195,0,255,0,0,255,0,255
3590 DATA 0,192,224,0,0,255,0,255
3600 DATA 0,0,0,0,0,0,28,124
3610 DATA 51,51,51,51,51,51,51,51
3620 DATA 1,7,28,112,195,206,204,204
3630 DATA 204,12,12,204,204,204,204,204
3640 DATA 51,51,51,51,51,51,51,51
3650 DATA 0,0,0,0,0,3,12,48
3660 DATA 0,0,0,0,255,0,63,224
3670 DATA 0,0,0,0,255,0,255,0
3680 DATA 204,204,204,204,255,0,255,204
3690 DATA 204,204,204,204,207,204,207,204
3700 DATA 51,51,51,51,243,3,255,0
3710 DATA 0,3,7,0,0,255,0,255
3720 DATA 195,0,255,0,0,255,0,255
3730 DATA 255,0,255,0,0,255,0,255
3740 DATA 255,0,255,0,0,255,0,255
3750 DATA 207,204,207,204,204,204,12,252
3760 DATA 255,0,255,204,204,207,192,255
3770 DATA 255,3,243,51,51,243,3,255
3780 REM GRAFICOS
3790 DATA 11,44,92,191,191,95,47,11
3800 DATA 248,62,189,212,64,212,253,254
3810 DATA 31,124,189,43,2,43,191,127
3820 DATA 208,52,58,253,253,250,244,208
3830 DATA 104,244,250,206,199,95,47,21
3840 DATA 22,47,47,191,127,253,250,84
3850 DATA 21,47,95,199,206,250,244,104
3860 DATA 84,250,253,127,191,47,47,22
3870 DATA 11,44,92,191,191,95,47,11
3880 DATA 248,62,191,255,85,213,255,252
3890 DATA 31,124,253,255,170,171,255,63
3900 DATA 208,52,58,253,253,250,244,208
3910 DATA 31,127,255,207,199,95,47,21
3920 DATA 86,87,95,127,255,253,250,84
3930 DATA 21,47,95,199,207,255,127,31
3940 DATA 84,250,253,255,127,95,87,86
3950 DATA 23,47,81,170,177,191,189,88
3960 DATA 240,252,198,171,199,255,239,198
3970 DATA 0,0,3,5,5,3,0,0
3980 DATA 0,0,192,224,224,192,0,0
3990 DATA 25,0,99,5,5,99,0,25
4000 DATA 152,0,198,224,224,198,0,152
4010 DATA 63,58,58,58,58,58,63,0
4020 DATA 255,171,171,171,171,171,255,0
4030 DATA 255,219,182,237,219,182,237,255
4040 DATA 255,109,219,183,109,219,183,255
4050 DATA 63,77,151,183,183,149,79,62
4060 DATA 3,238,183,255,189,255,247,63
4070 DATA 225,191,253,127,219,253,255,193
4080 DATA 225,191,255,229,194,194,101,252
4090 DATA 252,111,251,207,251,191,239,124
4100 DATA 255,224,192,195,195,192,224,255
4110 DATA 255,7,3,195,195,3,7,255
4120 DATA 7,13,27,55,111,222,219,223
4130 DATA 224,176,248,124,238,251,223,255
4140 DATA 96,211,102,3,48,105,51,1
4150 DATA 0,12,154,12,0,134,77,134
4160 DATA 201,104,176,108,38,83,86,163
4170 DATA 155,134,204,201,105,101,102,58
4180 DATA 255,100,178,217,236,182,155,253
4190 DATA 255,38,77,155,55,109,217,191
4200 DATA 255,192,255,195,219,219,195,255
4210 DATA 255,99,107,107,107,123,11,255
4220 DATA 68,16,132,16,136,34,8,66
4230 DATA 74,129,36,129,36,16,66,17
4240 DATA 255,182,255,191,255,191,255,182
4250 DATA 255,219,255,251,255,251,255,219
4260 DATA 221,141,118,219,50,222,102,184
4270 DATA 107,179,102,189,233,187,205,211
4280 DATA 255,170,191,165,170,191,170,255
4290 DATA 255,169,253,85,165,253,169,255
4300 DATA 255,102,255,153,255,102,255,153
4310 DATA 0,15,31,111,254,254,118,0
4320 DATA 0,15,191,99,193,201,227,253
4330 DATA 0,240,253,198,131,147,198,191
4340 DATA 0,240,248,246,127,127,110,0
4350 DATA 0,119,255,255,111,31,14,0
4360 DATA 127,189,218,218,26,13,7,0
4370 DATA 255,189,91,91,88,176,224,0
4380 DATA 0,238,255,255,246,248,112,0
4390 DATA 1,0,0,0,0,0,1,7
4400 DATA 255,112,28,28,28,60,224,9
4410 DATA 255,14,56,56,56,156,135,32
4420 DATA 128,0,0,0,0,0,128,224
4430 DATA 14,31,27,30,15,7,1,0
4440 DATA 162,223,183,254,175,199,237,127
4450 DATA 138,221,125,55,99,119,191,254
4460 DATA 112,248,184,248,176,224,128,0
4470 DATA 12,3,0,30,0,6,24,0
4480 DATA 24,96,0,120,0,96,24,0
4490 DATA 0,7,14,30,62,126,222,255
4500 DATA 0,255,0,87,93,117,0,255
4510 DATA 0,255,0,190,74,174,0,255
4520 DATA 0,224,112,120,124,126,123,255
4530 DATA 7,125,213,125,195,236,47,131
4540 DATA 255,85,85,85,239,0,123,123
4550 DATA 255,85,85,85,123,0,222,222
4560 DATA 224,94,87,93,195,55,244,195
4570 DATA 188,61,193,236,47,131,184,29
4580 DATA 0,239,239,0,123,123,0,239
4590 DATA 0,123,123,0,222,222,0,123
4600 DATA 31,220,195,55,244,195,30,216
4610 DATA 63,213,214,214,124,0,0,0
4620 DATA 255,236,236,237,100,127,96,105
4630 DATA 255,84,212,213,108,255,49,187
4640 DATA 248,92,222,222,71,255,23,255
4650 DATA 0,0,0,124,214,214,213,63
4660 DATA 105,102,96,127,255,232,254,255
4670 DATA 190,183,59,255,223,147,247,255
4680 DATA 111,143,247,63,126,174,252,248
4690 DATA 0,14,28,60,60,62,31,15
4700 DATA 0,232,56,24,8,0,128,224
4710 DATA 0,126,62,62,62,62,62,62
4720 DATA 0,12,8,8,8,8,8,8
4730 DATA 0,126,60,60,60,60,60,60
4740 DATA 0,224,112,120,120,120,240,224
4750 DATA 0,31,15,15,15,15,15,15
4760 DATA 0,192,128,128,128,128,128,128
4770 DATA 0,126,62,62,62,62,62,62
4780 DATA 0,248,56,24,8,32,96,224
4790 DATA 0,126,60,60,30,30,30,15
4800 DATA 0,62,28,8,8,16,16,16
4810 DATA 3,0,32,48,56,46,0,0
4820 DATA 240,248,120,120,112,224,0,0
4830 DATA 62,62,62,62,30,15,0,0
4840 DATA 8,8,8,8,16,96,0,0
4850 DATA 60,60,60,60,60,126,0,0
4860 DATA 240,120,120,120,112,224,0,0
4870 DATA 15,15,15,15,15,31,0,0
4880 DATA 128,128,130,130,134,222,0,0
4890 DATA 62,62,62,62,62,126,0,0
4900 DATA 96,32,8,24,56,248,0,0
4910 DATA 15,15,7,7,7,3,0,0
4920 DATA 32,32,160,128,128,192,0,0
4930 REM GRAPHIC'S CREATOR
4940 MEMORY 62220!
4950 lla=62228!
4960 RESTORE 5020
4970 FOR s=62228! TO 62280!
4980 READ a$:op=VAL("&H"+a$)
4990 POKE s,op
5000 NEXT s
5010 RETURN
5020 DATA 2A,01,00,11,57,00,19,22,3E
5030 DATA F3,01,27,F3,CD,3D,F3,E9,00,C9,2A,40,F3,26,00,29,29,29,11,00,B8,19,11,41,F3
5040 DATA EB,01,08,00,ED,B0,C9,C3,38,00,0B,00,B0,04,87,20,4C,44,49
5050 POKE 62272!,ca:FOR t=62273! TO 62280!:READ by:POKE t,by:NEXT t:CALL lla:RETURN
5060 STOP
5070 CLEAR:SAVE "SUB"
  • Listing 2 - SUB2.BAS
100 '*********************************************************
110 '**                                                     **
120 '**                  S U B L E V E L                    **
130 '**            (C) 2-12-1989 Jorge Perez                **
140 '**            AMSTRAD PCW 8256-8512-9512               **
150 '**                                                     **
160 '**                                Sabadell(BARCELONA)  **
170 '*********************************************************
180 '
190 '
200 '(SEGUNDA PARTE "SUB2")
210 '
220 '
230 CLEAR
240 cls$=CHR$(27)+"E"+CHR$(27)+"H":REM BORRAR PANTALLA
250 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h):REM CONTROL "AT"
260 inverse1$=CHR$(27)+"p":REM VIDEO INVERSO
270 inverse0$=CHR$(27)+"q":REM VIDEO NORMAL
280 cursor1$=CHR$(27)+"e":REM CON CURSOR
290 cursor0$=CHR$(27)+"f":REM SIN CURSOR
300 scrab$=CHR$(27)+"L"
310 scrar$=CHR$(27)+"M"
320 DEF FN ventana$(a,b,c,d)=CHR$(27)+"X"+CHR$(32+a)+CHR$(32+b)+CHR$(c-1+32)+CHR$(d-1+32)
330 vn$=FN ventana$(0,0,31,90)
340 vm$=FN ventana$(23,8,6,76)
350 vj$=FN ventana$(2,3,18,84)
360 vj2$=FN ventana$(5,4,15,82)
370 d1$="p"
380 d2$="o"
390 d3$="q"
400 d4$="a"
410 d5$=" "
420 re$=" ":re2$="99999999"
430 OPEN "R",1,"RECOSUB.DAT"
440 FIELD 1,26 AS nom$,6 AS sub$,16 AS pun$
450 OPEN "R",2,"M:RECOSUB2.DAT"
460 FIELD 2,26 AS nom2$,6 AS sub2$,16 AS pun2$
470 FOR q=1 TO 10
480 GET 1,q:LSET nom2$=nom$:LSET sub2$=sub$:LSET pun2$=pun$:PUT 2,q
490 IF pun$>re$ THEN re$=pun$
500 IF pun$<re2$ THEN re2$=pun$
510 NEXT q
520 CLOSE
530 c$="":FOR q=1 TO 8:c$=c$+CHR$(48)+CHR$(125):NEXT q
540 RANDOMIZE PEEK(64504!)
550 pue$="":mar$="":cot$="":cot2$="":FOR q=1 TO 42:cot$=cot$+CHR$(171)+CHR$(172):cot2$=cot2$+CHR$(160)+CHR$(161):pue$=pue$+CHR$(154)+CHR$(155):NEXT q
560 MID$(pue$,1,2)=CHR$(160)+CHR$(161):MID$(pue$,83,2)=CHR$(160)+CHR$(161)
570 DIM ma$(18)
580 cz$=CHR$(156)+CHR$(157)
590 PRINT vj$:PRINT cls$:PRINT vn$:PRINT vm$:PRINT cls$:PRINT vn$
600 PRINT FN at$(3,37);:FOR q=226 TO 237:PRINT CHR$(q);:NEXT q
610 PRINT CHR$(234);CHR$(235);CHR$(232);CHR$(233)
620 PRINT FN at$(4,37);:FOR q=238 TO 249:PRINT CHR$(q);:NEXT q
630 PRINT CHR$(246);CHR$(247);CHR$(244);CHR$(245)
640 FOR q=29 TO 60 STEP 28
650 PRINT FN at$(3,q);:FOR w=188 TO 191:PRINT CHR$(w);:NEXT w
660 PRINT FN at$(4,q);:FOR w=192 TO 195:PRINT CHR$(w);:NEXT w
670 NEXT q
680 PRINT
690 IF fl6=1 THEN RETURN
700 PRINT FN at$(8,25);CHR$(49)+CHR$(126)+"    "+"RrEeDdEeFfIiNnIiRr  TtEeCcLlAaDoOo"
710 PRINT FN at$(11,25);CHR$(50)+CHR$(127)+"    "+"IiNnSsTtRrUuCcCcIiOoNnEeSs"
720 PRINT FN at$(14,25);CHR$(51)+CHR$(128)+"    "+"TtAaBbLlAa  DdEe  RrEeCcOoRrDdSs"
730 PRINT FN at$(17,25);CHR$(48)+CHR$(125)+"    "+"EeMmPpEeZzAaRr"
740 PRINT FN at$(24,13);"CcOoPpYyRrIiGgHhTt  ";CHR$(50)+CHR$(127);"./";CHR$(49)+CHR$(126)+CHR$(50)+CHR$(127);"./";CHR$(49)+CHR$(126)+CHR$(57)+CHR$(134)+CHR$(56)+CHR$(133)+CHR$(57)+CHR$(134);
750 PRINT "   JjOoRrGgEe  PpEeRrEeZz"
760 PRINT FN at$(26,16);"AaMmSsTtRrAaDd  PpCcWw  8";CHR$(133);"2";CHR$(127);"5";CHR$(130);"6";CHR$(131);"./  ";
770 PRINT "8";CHR$(133);"5";CHR$(130);"1";CHR$(126);"2";CHR$(127)"./  ";
780 PRINT "9";CHR$(134);"5";CHR$(130);"1";CHR$(126);"2";CHR$(127);"./"
790 z$=INKEY$:IF z$="" THEN GOTO 790
800 IF z$="1" THEN GOTO 950
810 IF z$="2" THEN GOTO 1550
820 IF z$="3" THEN GOTO 1930
830 IF z$="0" THEN GOTO 1990
840 GOTO 790
850 PRINT vj2$:PRINT cls$:PRINT vn$:RETURN
860 OPEN "R",1,"RECOSUB.DAT"
870 FIELD 1,26 AS nom$,6 AS sub$,16 AS pun$
880 OPEN "R",2,"M:RECOSUB2.DAT"
890 FIELD 2,26 AS nom2$,6 AS sub2$,16 AS pun2$
900 FOR q=1 TO 10
910 GET 2,q:LSET nom$=nom2$:LSET sub$=sub2$:LSET pun$=pun2$:PUT 1,q
920 NEXT q
930 CLOSE
940 RETURN
950 GOSUB 850
960 PRINT FN at$(7,17);inverse1$;"*+  RrEeDdIiFfIiNnIiCcIiOoNn  DdEeLl  TtEeCcLlAaDdOo  *+";inverse0$
970 PRINT FN at$(8,17);:FOR q=1 TO 28:PRINT CHR$(95)+CHR$(96);:NEXT q
980 PRINT
990 re=0
1000 e$="SsPpAaCcEe":w$="RrEeTtUuRrNn"
1010 PRINT FN at$(10,22);"DdEeRrEeCcHhAa././././././././././"
1020 PRINT FN at$(12,22);"IiZzQqUuIiEeRrDdAa././././././././"
1030 PRINT FN at$(14,22);"SsUuBbIiRr././././././././././././"
1040 PRINT FN at$(16,22);"BbAaJjAaRr././././././././././././"
1050 PRINT FN at$(18,22);"UuSsAaRr  PpOoCcIiMmAa././././././"
1060 z$=d1$+d2$+d3$+d4$+d5$
1070 GOSUB 1260
1080 IF re=1 THEN RETURN
1090 FOR b=1 TO 5
1100 ui=0
1110 IF ui<13 THEN cv$="*+" ELSE cv$="  "
1120 ui=ui+1
1130 IF ui=26 THEN ui=0
1140 PRINT FN at$(8+(b*2),18);cv$
1150 a$=INKEY$:IF a$="" THEN GOTO 1110
1160 PRINT FN at$(8+(b*2),18);"  "
1170 MID$(z$,b,1)=a$
1180 GOSUB 1260
1190 NEXT b
1200 d1$=MID$(z$,1,1)
1210 d2$=MID$(z$,2,1)
1220 d3$=MID$(z$,3,1)
1230 d4$=MID$(z$,4,1)
1240 d5$=MID$(z$,5,1)
1250 GOSUB 850:GOTO 700
1260 REM
1270 er=0
1280 FOR p=1 TO 5
1290 s$=MID$(z$,p,1)
1300 sa$=""
1310 IF s$=" " THEN sa$=e$
1320 IF s$=CHR$(13) THEN sa$=w$
1330 IF ASC(s$)>96 AND ASC(s$)<125 THEN sa$=CHR$(ASC(s$)-32)+s$
1340 IF ASC(s$)>47 AND ASC(s$)<58 THEN sa$=s$+CHR$(ASC(s$)+77)
1350 IF sa$="" THEN sa$=":;CcOoNnTtRrOoLl:;"
1360 PRINT FN at$(8+(p*2),57);sa$;LEFT$("                ",(18-LEN(sa$)))
1370 NEXT p
1380 RETURN
1390 OPEN "R",2,"M:RECOSUB2.DAT"
1400 FIELD 2,26 AS nom2$,6 AS sub2$,16 AS pun2$
1410 y$="":FOR q=1 TO 8:y$=y$+CHR$(48)+CHR$(125):NEXT q
1420 FOR q=1 TO 10
1430 GET 2,q
1440 nom2a$=nom2$:IF ASC(nom2$)=0 THEN nom2a$="./././././././././././././"
1450 sub2a$=sub2$:IF ASC(sub2$)=0 THEN sub2a$=LEFT$(y$,6)
1460 pun2a$=pun2$:IF ASC(pun2$)=0 THEN pun2a$=y$
1470 IF pun2$>re$ THEN re$=pun2$
1480 IF pun2$<re2$ THEN re2$=pun2$
1490 IF q<10 THEN PRINT FN at$(q+8,(10+(2-LEN(STR$(q)))));CHR$(48+q);CHR$(125+q);
1500 IF q=10 THEN PRINT FN at$(q+8,8);CHR$(49)+CHR$(126)+CHR$(48)+CHR$(125);
1510 PRINT "    ";nom2a$;"    SsUuBb  ";sub2a$;"    ";pun2a$
1520 NEXT q
1530 CLOSE 2
1540 RETURN
1550 GOSUB 850
1560 PRINT FN at$(7,28);inverse1$;"*+  IiNnSsTtRrUuCcCcIiOoNnEeSs  *+";inverse0$
1570 PRINT FN at$(8,28);:FOR q=1 TO 17:PRINT CHR$(95);CHR$(96);:NEXT q:PRINT
1580 PRINT FN at$(10,9);"EeLl  JjUuEeGgOo  CcOoNnSsIiSsTtEe  EeNn  CcOoMmEeRr  TtOoDdOoSs  LlOoSs"
1590 PRINT FN at$(12,6);"PpUuNnTtOoSs  SsIiNn  SsEeRr  AaTtRrAaPpAaDdOo  PpOoRr  EeLl  FfAaNnTtAaSsMmAa./"
1600 PRINT FN at$(14,8);"UuNnAa  VvEeZz  CcOoNnSsEeGgUuIiDdOo  EeSsTtOo  PpOoDdRrAaSs  AaCcCcEeDdEeRr"
1610 PRINT FN at$(16,11);"AaLl  SsIiGgUuIiEeNnTtEe  SsUuBbNnIiVvEeLl  PpOoRr  LlAa  PpAaRrTtEe"
1620 PRINT FN at$(18,21);"IiNnFfEeRrIiOoRr  DdEe  LlAa  PpAaNnTtAaLlLlAa./"
1630 a$=INKEY$:IF a$="" THEN GOTO 1630
1640 GOSUB 850
1650 PRINT FN at$(7,30);inverse1$;"*+  LlOoSs  OoBbJjEeTtOoSs  *+";inverse0$
1660 PRINT FN at$(8,30);:FOR q=1 TO 15:PRINT CHR$(95);CHR$(96);:NEXT q:PRINT
1670 PRINT FN at$(10,12);CHR$(196);CHR$(197);CHR$(198);CHR$(199)
1680 PRINT FN at$(11,12);CHR$(200);CHR$(201);CHR$(202);CHR$(203);
1690 PRINT "  PpOoCcIiMmAa  PpAaRrAa  HhUuIiRr  DdEeLl  FfAaNnTtAaSsMmAa./"
1700 PRINT FN at$(13,12);CHR$(188);CHR$(189);CHR$(190);CHR$(191)
1710 PRINT FN at$(14,12);CHR$(192);CHR$(193);CHR$(194);CHR$(195);
1720 PRINT "  TtEe  QqUuIiTtAa  UuNnAa  VvIiDdAa./"
1730 PRINT FN at$(16,12);CHR$(210);CHR$(211);CHR$(212);CHR$(213)
1740 PRINT FN at$(17,12);CHR$(214);CHR$(215);CHR$(216);CHR$(217);
1750 PRINT "  PpIiEeRrDdEeSs  LlAaSs  PpOoCcIiMmAaSs  QqUuEe  LlLlEeVvEeSs./"
1760 a$=INKEY$:IF a$="" THEN GOTO 1760
1770 PRINT FN ventana$(9,4,11,82):PRINT cls$:PRINT vn$
1780 PRINT FN at$(10,12);CHR$(204);CHR$(136);CHR$(137);CHR$(205)
1790 PRINT FN at$(11,12);CHR$(206);CHR$(207);CHR$(208);CHR$(209);
1800 PRINT "  TtEe  PpRrOoPpOoRrCcIiOoNnAa  UuNnAa  VvIiDdAa  EeXxTtRrAa./"
1810 PRINT FN at$(13,12);CHR$(218);CHR$(219);CHR$(220);CHR$(221)
1820 PRINT FN at$(14,12);CHR$(222);CHR$(223);CHR$(224);CHR$(225);
1830 PRINT "  CcOoNnJjUuRrOo  PpAaRrAa  PpAaSsAaRr  DdEe  SsUuBbNnIiVvEeLl./"
1840 PRINT FN at$(17,14);CHR$(156);CHR$(157);
1850 PRINT "  VvIiTtAaMmIiNnAa  PpAaRrAa  AaTtRrAaPpAaRr  AaLl  FfAaNnTtAaSsMmAa./"
1860 a$=INKEY$:IF a$="" THEN GOTO 1860
1870 GOSUB 850
1880 PRINT FN at$(7,31);inverse1$;"*+  EeLl  TtEeCcLlAaDdOo  *+";inverse0$
1890 PRINT FN at$(8,31);:FOR q=1 TO 14:PRINT CHR$(95);CHR$(96);:NEXT q:PRINT
1900 re=1:GOSUB 1000
1910 a$=INKEY$:IF a$="" THEN GOTO 1910
1920 GOSUB 850:GOTO 700
1930 GOSUB 850
1940 PRINT FN at$(6,34);inverse1$;"*+  RrEeCcOoRrDdSs  *+";inverse0$
1950 PRINT FN at$(7,34);:FOR q=1 TO 11:PRINT CHR$(95)+CHR$(96);:NEXT q:PRINT
1960 GOSUB 1390
1970 a$=INKEY$:IF a$="" THEN GOTO 1970
1980 GOSUB 850:GOTO 700
1990 REM
2000 pun=0
2010 sub=1
2020 vi=3
2030 po=6
2040 punj=0
2050 GOSUB 2850
2060 GOSUB 2860
2070 GOSUB 3230
2080 GOSUB 3330
2090 IF punj<>0 THEN GOSUB 3430:punj=0
2100 GOSUB 3340
2110 GOSUB 3520
2120 GOSUB 3810
2130 m1=INT (RND*16)+2:m2=INT (RND*79)+3
2140 IF MID$(ma$(m1),m2,2)<>MID$(pue$,3,2) THEN GOTO 2130
2150 f1=INT (RND*16)+2:f2=INT (RND*79)+3
2160 IF MID$(ma$(f1),f2,2)<>MID$(pue$,3,2) OR (m1=f1 AND m2=f2) THEN GOTO 2150
2170 t1=f1:t2=f2
2180 comi=1:sy=1:pes=0:fl3=0:hj=0:buc=0:rod=0:mar=0:yt=0:cper=0:io$=CHR$(136)+CHR$(137):lr$=CHR$(152)+CHR$(153)
2190 MID$(ma$(m1),m2,2)="  "
2200 GOSUB 5270
2210 bz=0:FOR q=1 TO 52
2220 bz=bz+1:IF bz>5 THEN az$=MID$(ma$(f1),f2,2):q$=MID$(ma$(m1),m2,2) ELSE q$=MID$(io$,sy,2):az$=lr$
2230 IF bz=10 THEN bz=0
2240 PRINT FN at$(m1+1,m2+2);q$;FN at$(f1+1,f2+2);az$
2250 NEXT q
2260 dz$="--"
2270 yt=yt+1:IF yt<2 THEN GOTO 2510
2280 IF pes=1 THEN cper=cper+1:IF cper=20 THEN pes=0:cper=0
2290 yt=0
2300 t1=f1:t2=f2
2310 IF rod<>0 THEN IF buc=0 THEN mar=INT (RND*8)+5
2320 IF rod<>0 THEN GOTO 2380
2330 IF pes=1 THEN jx=-1:jz=-2 ELSE jx=1:jz=2
2340 IF m1>f1 THEN f1=f1+jx
2350 IF m1<f1 THEN f1=f1-jx
2360 IF m2<f2 THEN f2=f2-jz
2370 IF m2>f2 THEN f2=f2+jz
2380 IF rod<>0 THEN buc=buc+1:IF buc=mar THEN buc=0:rod=0:GOTO 2330
2390 IF rod=1 THEN f2=f2+bs
2400 IF rod=2 THEN f1=f1+bs
2410 IF f1=18 THEN f1=17:hj=1
2420 q$=MID$(ma$(t1),f2,2):IF q$<>MID$(pue$,3,2) AND q$<>"  " AND q$<>cz$ THEN f2=t2:hj=2:IF rod<>0 THEN hj=0:buc=0:rod=0:GOTO 2330
2430 q$=MID$(ma$(f1),t2,2):IF q$<>MID$(pue$,3,2) AND q$<>"  " AND q$<>cz$ THEN f1=t1:hj=1:IF rod<>0 THEN hj=0:buc=0:rod=0:GOTO 2330
2440 q$=MID$(ma$(f1),f2,2):IF q$<>MID$(pue$,3,2) AND q$<>"  " AND q$<>cz$ THEN f1=t1:f2=t2:hj=INT (RND*2)+1:IF rod<>0 THEN hj=0:buc=0:rod=0:GOTO 2330
2450 IF f1=t1 AND f2=t2 AND hj=1 THEN hj=0:rod=1:IF INT(RND*2)=1 THEN bs=-2 ELSE bs=2
2460 IF f1=t1 AND f2=t2 AND hj=2 THEN hj=0:rod=2:IF INT(RND*2)=1 THEN bs=-1 ELSE bs=1
2470 v$=CHR$(152)+CHR$(153):IF pes=1 THEN lr$=inverse1$+v$+inverse0$ ELSE lr$=v$
2480 IF t1<>f1 OR t2<>f2 THEN PRINT FN at$(t1+1,t2+2);MID$(ma$(t1),t2,2);FN at$(f1+1,f2+2);lr$
2490 IF pes=0 AND f1=m1 AND f2=m2 THEN GOTO 5080
2500 IF pes=1 AND f1=m1 AND f2=m2 THEN GOTO 5140
2510 az$=INKEY$
2520 IF az$<>"" THEN dz$=az$
2530 IF dz$="--" THEN GOTO 2270
2540 IF az$=d5$ AND po>0 THEN GOTO 4990
2550 q1=m1:q2=m2
2560 IF dz$=d1$ THEN m2=m2+2:GOTO 2610
2570 IF dz$=d2$ THEN m2=m2-2:GOTO 2610
2580 IF dz$=d3$ THEN m1=m1-1:GOTO 2610
2590 IF dz$=d4$ THEN m1=m1+1:GOTO 2610
2600 GOTO 2270
2610 ob=ASC(MID$(ma$(m1),m2,1))
2620 IF ob=154 THEN comi=comi+1:OUT (248),11:OUT (248),12:MID$(ma$(m1),m2,2)="  ":GOTO 2710
2630 IF ob=32 THEN GOTO 2710
2640 IF ob>187 AND ob<196 THEN coq=2:GOTO 2710
2650 IF ob>195 AND ob<204 THEN coq=3:GOTO 2710
2660 IF ob>209 AND ob<218 THEN coq=5:GOTO 2710
2670 IF ob=156 OR ob=157 THEN coq=1:GOTO 2710
2680 IF ob>217 AND ob<226 THEN coq=6:GOTO 2710
2690 IF ob>203 AND ob<210 THEN coq=4:GOTO 2710
2700 m1=q1:m2=q2:GOTO 2270
2710 IF az$="" THEN GOTO 2760
2720 IF dz$=d1$ THEN io$=CHR$(136)+CHR$(137)+CHR$(144)+CHR$(145)
2730 IF dz$=d2$ THEN io$=CHR$(138)+CHR$(139)+CHR$(146)+CHR$(147)
2740 IF dz$=d3$ THEN io$=CHR$(140)+CHR$(141)+CHR$(148)+CHR$(149)
2750 IF dz$=d4$ THEN io$=CHR$(142)+CHR$(143)+CHR$(150)+CHR$(151)
2760 PRINT FN at$(q1+1,q2+2);"  ";FN at$(m1+1,m2+2);MID$(io$,sy,2)
2770 IF comi=orq AND fl3=0 THEN q$=SPACE$(8):MID$(ma$(18),trj,8)=q$:PRINT FN at$(19,trj+2);q$:fl3=1
2780 IF pes=0 AND f1=m1 AND f2=m2 THEN GOTO 5080
2790 IF pes=1 AND f1=m1 AND f2=m2 THEN GOTO 5140
2800 IF m1=18 THEN GOTO 4940
2810 IF sy=1 THEN sy=3 ELSE sy=1
2820 IF ob<155 THEN GOTO 2270
2830 ON coq GOTO 3820,3920,4760,4810,4860,4900
2840 GOTO 2270
2850 PRINT vj$:PRINT cls$:PRINT vn$:RETURN
2860 IF sub=1 THEN PRINT vm$:PRINT cls$:PRINT vn$
2870 PRINT FN at$(24,8);"PpUuNnTtOoSs"
2880 PRINT FN at$(27,8);"RrEeCcOoRrDd"
2890 PRINT FN at$(24,42);"SsUuBbNnIiVvEeLl"
2900 PRINT FN at$(27,42);"PpOoCcIiOoNnEeSs"
2910 PRINT FN at$(24,70);"*+VvIiDdAaSs*+"
2920 z$="":FOR q=1 TO 10:z$=z$+CHR$(158)+CHR$(159):NEXT q
2930 PRINT FN at$(23,20);z$
2940 PRINT FN at$(25,20);z$
2950 PRINT FN at$(26,20);z$
2960 PRINT FN at$(28,20);z$
2970 PRINT FN at$(24,20);LEFT$(z$,2)
2980 PRINT FN at$(24,38);LEFT$(z$,2)
2990 PRINT FN at$(27,20);LEFT$(z$,2)
3000 PRINT FN at$(27,38);LEFT$(z$,2)
3010 PRINT FN at$(23,58);LEFT$(z$,10)
3020 PRINT FN at$(25,58);LEFT$(z$,10)
3030 PRINT FN at$(26,58);LEFT$(z$,10)
3040 PRINT FN at$(28,58);LEFT$(z$,10)
3050 PRINT FN at$(24,58);LEFT$(z$,2)
3060 PRINT FN at$(24,66);LEFT$(z$,2)
3070 PRINT FN at$(27,58);LEFT$(z$,2)
3080 PRINT FN at$(27,66);LEFT$(z$,2)
3090 PRINT FN at$(25,70);LEFT$(z$,14)
3100 PRINT FN at$(27,70);LEFT$(z$,14)
3110 PRINT FN at$(26,70);LEFT$(z$,2)
3120 PRINT FN at$(26,82);LEFT$(z$,2)
3130 RETURN
3140 p$=STR$(da1)
3150 q$=""
3160 FOR t=2 TO LEN(p$)
3170 u$=MID$(p$,t,1)
3180 q$=q$+u$+CHR$(ASC(u$)+77)
3190 NEXT t
3200 RETURN
3210 asq=da1-(LEN(q$)/2)
3220 q$=LEFT$(c$,asq*2)+q$:RETURN
3230 da1=pun:GOSUB 3140:da1=8:GOSUB 3210:PRINT FN at$(24,22);q$
3240 PRINT FN at$(27,22);re$
3250 da1=sub:GOSUB 3140:da1=3:GOSUB 3210:PRINT FN at$(24,60);q$
3260 da1=po:GOSUB 3140:da1=3:GOSUB 3210:PRINT FN at$(27,60);q$
3270 viau=vi:FOR q=1 TO 5
3280 IF viau>0 THEN q$=CHR$(136)+CHR$(137) ELSE q$="  "
3290 PRINT FN at$(26,70+q*2);q$
3300 viau=viau-1
3310 NEXT q
3320 RETURN
3330 FOR q=2 TO 19:PRINT FN at$(q,3);cot$:NEXT q:RETURN
3340 PRINT FN at$(12,28);LEFT$(cot2$,36)
3350 PRINT FN at$(17,28);LEFT$(cot2$,36)
3360 FOR q=13 TO 16
3370 PRINT FN at$(q,28);LEFT$(cot2$,2);SPACE$(32);LEFT$(cot2$,2)
3380 NEXT q
3390 da1=sub:GOSUB 3140:da1=3:GOSUB 3210
3400 PRINT FN at$(14,32);"PpRrEePpAaRrAaTtEe  PpAaRrAa"
3410 PRINT FN at$(15,31);"EeLl  SsUuBbNnIiVvEeLl  ";q$
3420 RETURN
3430 PRINT FN at$(4,28);LEFT$(cot2$,36)
3440 PRINT FN at$(9,28);LEFT$(cot2$,36)
3450 FOR q=5 TO 8
3460 PRINT FN at$(q,28);LEFT$(cot2$,2);SPACE$(32);LEFT$(cot2$,2)
3470 NEXT q
3480 da1=punj:GOSUB 3140
3490 PRINT FN at$(6,32);"HhAaSs  CcOoNnSsEeGgUuIiDdOo"
3500 PRINT FN at$(7,32);q$;"  PpUuNnTtOoSs"
3510 RETURN
3520 orq=640:ma$(1)=cot2$:ma$(18)=cot2$
3530 FOR q=2 TO 17:ma$(q)=pue$:NEXT q
3540 trj=INT (RND*73)+3:MID$(ma$(18),trj,8)=CHR$(162)+CHR$(163)+CHR$(164)+CHR$(164)+CHR$(164)+CHR$(164)+CHR$(165)+CHR$(166)
3550 ok2=INT(RND*5)+8
3560 FOR q=1 TO ok2
3570 l=INT (RND*5)+1:l=l*3:c=INT (RND*66)+2
3580 IF MID$(ma$(l),c,16)<>MID$(pue$,3,16) THEN GOTO 3570
3590 ok=INT(RND*10)+1
3600 u$="":FOR w=1 TO 8
3610 u$=u$+CHR$(165+(ok*2))+CHR$(166+(ok*2))
3620 NEXT w
3630 MID$(ma$(l),c,16)=u$
3640 MID$(ma$(l+1),c,16)=u$
3650 NEXT q
3660 orq=orq-(ok2*16)
3670 da1=INT (RND*7)+8:q$=CHR$(188)+CHR$(189)+CHR$(190)+CHR$(191):a$=CHR$(192)+CHR$(193)+CHR$(194)+CHR$(195):GOSUB 5350:orq=orq-(da1*4)
3680 da1=INT (RND*2)+1:q$=CHR$(196)+CHR$(197)+CHR$(198)+CHR$(199):a$=CHR$(200)+CHR$(201)+CHR$(202)+CHR$(203):GOSUB 5350:orq=orq-(da1*4)
3690 da1=INT (RND*3)+2:q$=CHR$(210)+CHR$(211)+CHR$(212)+CHR$(213):a$=CHR$(214)+CHR$(215)+CHR$(216)+CHR$(217):GOSUB 5350:orq=orq-(da1*4)
3700 q=INT (RND*4)+1:IF q<>1 THEN GOTO 3720
3710 da1=1:q$=CHR$(204)+CHR$(136)+CHR$(137)+CHR$(205):a$=CHR$(206)+CHR$(207)+CHR$(208)+CHR$(209):GOSUB 5350:orq=orq-4
3720 q=INT (RND*15)+1:IF q<>1 THEN GOTO 3740
3730 da1=1:q$=CHR$(218)+CHR$(219)+CHR$(220)+CHR$(221):a$=CHR$(222)+CHR$(223)+CHR$(224)+CHR$(225):GOSUB 5350:orq=orq-4
3740 FOR q=1 TO 2
3750 l=INT (RND*5)+1:l=l*3:c=INT (RND*80)+2
3760 IF MID$(ma$(l),c,2)<>MID$(pue$,3,2) THEN GOTO 3750
3770 MID$(ma$(l),c,2)=CHR$(156)+CHR$(157)
3780 NEXT q
3790 orq=orq-2
3800 RETURN
3810 FOR q=1 TO 18:PRINT FN at$(q+1,3);ma$(q):NEXT q:RETURN
3820 pes=1:punj=punj+500:MID$(ma$(m1),m2,2)="  ":GOTO 2270
3830 FOR e=1 TO 3
3840 FOR q=136 TO 142 STEP 2
3850 FOR s=1 TO 5
3860 PRINT FN at$(m1+1,m2+2);CHR$(q);CHR$(q+1)
3870 NEXT s
3880 NEXT q
3890 NEXT e
3900 dz$="--"
3910 RETURN
3920 GOSUB 3830
3930 GOSUB 3980
3940 IF vi=0 THEN GOTO 4170
3950 vi=vi-1
3960 GOSUB 3270
3970 GOTO 2200
3980 ph1=m1:ph2=m2
3990 IF coq=2 THEN mn$=CHR$(188)
4000 IF coq=3 THEN mn$=CHR$(196)
4010 IF coq=4 THEN mn$=CHR$(204)
4020 IF coq=5 THEN mn$=CHR$(210)
4030 IF coq=6 THEN mn$=CHR$(218)
4040 IF MID$(ma$(ph1),ph2,1)=mn$ THEN GOTO 4100
4050 ph2=ph2-2
4060 IF MID$(ma$(ph1),ph2,1)=mn$ THEN GOTO 4100
4070 ph1=ph1-1
4080 IF MID$(ma$(ph1),ph2,1)=mn$ THEN GOTO 4100
4090 ph2=ph2+2
4100 q$="    "
4110 PRINT FN at$(ph1+1,ph2+2);q$
4120 PRINT FN at$(ph1+2,ph2+2);q$
4130 MID$(ma$(ph1),ph2,4)=q$
4140 MID$(ma$(ph1+1),ph2,4)=q$
4150 PRINT FN at$(m1+1,m2+2);MID$(io$,sy,2)
4160 RETURN
4170 punj=punj+(comi*10)+(po*41):pun=pun+punj:GOSUB 3230
4180 q$=inverse1$+"*+*+*+  GgAaMmEe  OoVvEeRr  *+*+*+"+inverse0$
4190 FOR q=2 TO 9
4200 PRINT FN at$(21-q,30);MID$(ma$(20-q),28,34);FN at$(20-q,30);q$
4210 PRINT FN at$(q,30);MID$(ma$(q-1),28,34);FN at$(q+1,30);q$
4220 NEXT q
4230 PRINT FN at$(21-q,30);MID$(ma$(20-q),28,34)
4240 sy=1:fr=12
4250 FOR q=1 TO 150
4260 IF sy>fr/2 THEN PRINT FN at$(10,30);q$
4270 IF sy<(fr/2)+1 THEN PRINT FN at$(10,30);MID$(ma$(9),28,34)
4280 sy=sy+1:IF sy=fr THEN sy=0
4290 NEXT q
4300 da1=pun:GOSUB 3140:da1=8:GOSUB 3210:IF q$<=re2$ THEN GOTO 590
4310 FOR q=1 TO 10:a$=INKEY$:NEXT q
4320 PRINT vj$:PRINT cls$:PRINT vn$
4330 fl6=1:GOSUB 590:fl6=0
4340 PRINT FN at$(7,28);"*+*+  EeNnHhOoRrAaBbUuEeNnAa  *+*+"
4350 PRINT FN at$(9,21);"HhAaSs  CcOoNnSsEeGgUuIiDdOo  UuNn  RrEeCcOoRrDd"
4360 PRINT FN at$(11,25);"IiNnTtRrOoDdUuCcEe  TtUu  NnOoMmBbRrEe:;"
4370 PRINT FN at$(16,32);:FOR q=1 TO 13:PRINT CHR$(95);CHR$(96);:NEXT q:PRINT
4380 PRINT FN at$(18,30);q$;"  PpUuNnTtOoSs"
4390 pas=32:sy=0:per=20:lq=1:cad$=SPACE$(26)
4400 IF sy>(per/2) THEN io$="*+"
4410 IF sy<(per/2)+1 THEN io$="  "
4420 PRINT FN at$(15,pas);io$
4430 sy=sy+1:IF sy=per THEN sy=0
4440 a$=INKEY$:IF a$="" THEN GOTO 4400
4450 IF ASC(a$)=127 AND pas>32 THEN PRINT FN at$(15,pas);"  ":pas=pas-2:lq=lq-2:MID$(cad$,lq,2)="  ":GOTO 4400
4460 x=ASC(a$)
4470 IF x=13 THEN GOTO 4580
4480 IF x=32 OR (x>47 AND x<58) OR (x>96 AND x<123) OR x=124 THEN GOTO 4500
4490 GOTO 4400
4500 IF (x>96 AND x<123) OR x=124 THEN a$=CHR$(x-32)
4510 q$=a$:GOSUB 5430
4520 PRINT FN at$(15,pas);q$
4530 MID$(cad$,lq,2)=q$
4540 lq=lq+2
4550 pas=pas+2
4560 IF lq=27 THEN GOTO 4580
4570 GOTO 4400
4580 da1=sub:GOSUB 3140:da1=3:GOSUB 3210:su7$=q$
4590 da1=pun:GOSUB 3140:da1=8:GOSUB 3210:pu7$=q$
4600 OPEN "R",2,"M:RECOSUB2.DAT"
4610 FIELD 2,26 AS nom2$,6 AS sub2$,16 AS pun2$
4620 LSET nom2$=cad$
4630 LSET sub2$=su7$
4640 LSET pun2$=pu7$
4650 PUT 2,10
4660 FOR w=1 TO 10
4670 FOR q=1 TO 9
4680 GET 2,q
4690 pu4$=pun2$:su4$=sub2$:no4$=nom2$
4700 GET 2,q+1:IF pun2$>pu4$ THEN PUT 2,q:LSET nom2$=no4$:LSET pun2$=pu4$:LSET sub2$=su4$::PUT 2,q+1
4710 NEXT q
4720 NEXT w
4730 CLOSE 2
4740 GOSUB 860
4750 GOTO 1930
4760 po=po+1
4770 GOSUB 3260
4780 GOSUB 3980
4790 punj=punj+1000
4800 GOTO 2270
4810 vi=vi+1:IF vi>5 THEN vi=5
4820 GOSUB 3260
4830 GOSUB 3980
4840 punj=punj+5000
4850 GOTO 2270
4860 po=0
4870 GOSUB 3260
4880 GOSUB 3980
4890 GOTO 2270
4900 q$=SPACE$(8):MID$(ma$(18),trj,8)=q$:PRINT FN at$(19,trj+2);q$:fl3=1
4910 GOSUB 3980
4920 punj=punj+10000
4930 GOTO 2270
4940 punj=punj+(sub*300)+(po*41)+(vi*103)
4950 sub=sub+1
4960 punj=punj+(comi*10)
4970 pun=pun+punj
4980 GOTO 2050
4990 PRINT FN at$(m1+1,m2+2);"  "
5000 po=po-1:GOSUB 3260
5010 m1=INT (RND*16)+2:m2=INT (RND*79)+3
5020 q$=MID$(ma$(m1),m2,2)
5030 IF (m2/2=INT (m2/2)) OR (q$<>MID$(pue$,3,2) AND q$<>"  ") OR (m1=f1 AND m2=f2) THEN GOTO 5010
5040 MID$(ma$(m1),m2,2)="  "
5050 IF q$=MID$(pue$,3,2) THEN comi=comi+1
5060 PRINT FN at$(m1+1,m2+2);MID$(io$,sy,2)
5070 GOTO 2270
5080 GOSUB 3830
5090 f1=INT (RND*16)+2:f2=INT (RND*79)+3
5100 q$=MID$(ma$(f1),f2,2)
5110 IF (f2/2=INT (f2/2)) OR (q$<>MID$(pue$,3,2) AND q$<>"  ") OR (m1=f1 AND m2=f2) THEN GOTO 5090
5120 t1=f1:t2=f2
5130 GOTO 3940
5140 f1=INT (RND*16)+2:f2=INT (RND*79)+3
5150 q$=MID$(ma$(f1),f2,2)
5160 IF (f2/2=INT (f2/2)) OR (q$<>MID$(pue$,3,2) AND q$<>"  ") OR (m1=f1 AND m2=f2) THEN GOTO 5140
5170 t1=f1:t2=f2
5180 pes=0:punj=punj+2000
5190 PRINT FN at$(m1+1,m2+2);MID$(io$,sy,2)
5200 sfy=1:fr=8
5210 FOR q=1 TO 28
5220 IF sfy>fr/2 THEN PRINT FN at$(m1+1,m2+1);CHR$(204);FN at$(m1+1,m2+4);CHR$(205)
5230 IF sfy<(fr/2)+1 THEN PRINT FN at$(m1+1,m2+1);MID$(ma$(m1),m2-1,1);FN at$(m1+1,m2+4);MID$(ma$(m1),m2+2,1)
5240 sfy=sfy+1:IF sfy=fr THEN sfy=0
5250 NEXT q
5260 GOTO 2270
5270 q$="*+  RrEeAaDdYy  *+"
5280 cy=1:fr=12
5290 FOR q=1 TO 40
5300 IF cy>fr/2 THEN PRINT FN at$(10,34);q$
5310 IF cy<(fr/2)+1 THEN PRINT FN at$(10,34);MID$(ma$(9),32,18)
5320 cy=cy+1:IF cy=fr THEN cy=0
5330 NEXT q
5340 RETURN
5350 FOR q=1 TO da1
5360 l=INT (RND*5)+1:l=l*3:c=INT (RND*78)+2
5370 IF MID$(ma$(l),c,4)<>MID$(pue$,3,4) THEN GOTO 5360
5380 MID$(ma$(l),c,4)=q$
5390 MID$(ma$(l+1),c,4)=a$
5400 NEXT q
5410 RETURN
5420 STOP
5430 w$=""
5440 FOR w=1 TO LEN(q$)
5450 e$=MID$(q$,w,1)
5460 ad=ASC(e$)
5470 IF (ASC(e$)>64 AND ASC(e$)<93) OR ASC(e$)=92 THEN ad=ASC(e$)+32
5480 IF ASC(e$)>47 AND ASC(e$)<58 THEN ad=ASC(e$)+77
5490 IF ASC(e$)=42 OR ASC(e$)=46 OR ASC(e$)=58 OR ASC(e$)=95 OR ASC(e$)=44 THEN ad=ASC(e$)+1
5500 w$=w$+e$+CHR$(ad)
5510 NEXT w
5520 q$=w$
5530 RETURN
5540 FOR q=1 TO 18:PRINT ma$(q):NEXT q:RETURN
5550 STOP
5560 CLEAR:SAVE "SUB2"

Controls

       Q = UP
       A = DOWN
       P = RIGHT
       O = LEFT
   SPACE = USE POTION

Loading the program

 1.- Insert the CP/M disc on side 2
 2.- Write BASIC and wait for it to load
 3.- Remove the CP/M disk and insert the disk containing the Sublevel game
 4.- Type run "Sub" and press the "ENTER" key

Extras

The game came in the disc magazine, PCW User number 3 side B.

Download

  • Sublevel (game in dsk format, compressed with zip)
en/sublevel.txt · Last modified: 2022/06/30 15:02 by jevicac