User Tools

Site Tools


en:crash_landing

CRASH LANDING

Info

Author ???????
Computer Amstrad PCW 8256 / 8512 / 9512
Year ????
Gender Arcade
Controls Keyboard
Languages English
Status Preserved

Screenshots

Description

You're almost out of fuel in New York, and there's only one way to land, get rid of all the empty buildings in the city.

The space bar will release the bombs to destroy the buildings. The program is somewhat lenient with us as it will allow us to take down some buildings without too much trouble, although our landing gear might get damaged.

If we manage to land safely, we will be greeted with an appropriate tune “Those Magnificent Men in their Flying Machines” and we can start a new level where the bombs are smaller.

Listing

  • Listing 1 - CRASHLND.BAS
10 DIM p(8,11):h!=HIMEM:MEMORY &HBFFE:FOR x=&HC070 TO &HC098:READ pk:POKE x,pk:NEXT x
20 DATA 243,62,129,211,241,62,130,211,242,175,95,103,22,184,58,153,192,111,41,41
30 DATA 41,25,17,154,192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201
40 char=220
50 count=11:ch=char:WHILE char<count+ch:POKE &HC099,(char):FOR r=1 TO 8:READ p(r,ct):POKE &HC099+r,(p(r,ct))
60 NEXT :cl=&HC070:CALL cl:char=char+1:WEND:MEMORY h!:RUN "crashlnd.ovl
70 DATA  120,204,204,199,192,192,96,63,57,57,17,255,0,255,0,255,0,128,128,241,25,31,25,241,0,0,0,0,0,79,124,79,0,0,0,0,0,255,0,255,0,0,0,0,0,252,15,252
80 DATA 0,4,128,2,64,1,0,0,0,0,3,15,30,62,126,254,0,0,0,128,192,96,48,24,255,255,255,126,62,30,15,3,12,198,115,31,7,28,112,192,
  • Listing 2 - CRASHLND.OVL
10 OPTION RUN
20 BOMB%=3
30 PRINT CHR$(27)+"f":GOSUB 470
40 GOSUB 390
50 PRINT c$:GOSUB 300:Y%=6
60 IF BOMB%=0 THEN BOMB%=4
70 IF Y%<30 THEN M$=BM$:GOSUB 260:X%=X%+1
80 IF Y%=30 THEN IF X%<=55 THEN M$=BM$:GOSUB 260:X%=X%+1 ELSE IF X%>55 THEN M$=PARA$+CHR$(220)+CHR$(221)+CHR$(222):GOSUB 270:X%=X%+1: IF X%=80 THEN 190  
90 IF X%=87 THEN M$="   ":GOSUB 260:X%=1:Y%=Y%-1:M$=SPACE$(89):GOSUB 260:Y%=Y%+2
100 IF Y%>=16 THEN IF MID$(B$(Y%-15),X%+2,1)<>" "THEN 220:OUT 247,192:PRINT B$;
110 I$=INKEY$:IF I$=" "THEN IF NOT(B%) THEN IF Y%<>30 THEN B%=-1:BX%=X%:BY%=Y%+1
120 IF I$=CHR$(27) THEN MEMORY h!:END
130 IF NOT(B%) THEN 70
140 M$=BOMB$(BOMB%):SWAP BX%,X%:SWAP BY%,Y%:GOSUB 260
150 M$=SPACE$(BOMB%):GOSUB 260:SWAP BX%,X%:SWAP BY%,Y%
160 IF BY%>=16 THEN MID$(B$(BY%-15),BX%+1,BOMB%)=SPACE$(BOMB%)   
170 BY%=BY%+1:IF BY%=31 THEN B%=0
180 GOTO 70
190 IF BOMB%<4 THEN M$="WELL DONE! YOU MADE IT!":X%=3:Y%=8:GOSUB 260:GOSUB 630 ELSE M$="BRILLIANT! YOU ARE AN ACE PILOT":X%=3:Y%=8:GOSUB 260:GOSUB 630:M$="HERE IS A FINAL ENCORE FOR YOU!":GOSUB 260:FOR i=1 TO 2000:NEXT i:GOSUB 630:MEMORY h!:END
200 M$="HIT [EXIT] TO QUIT,ANYOTHER KEY TO PLAY AGAIN........"
210 X%=3:Y%=9:GOSUB 290:IF INPUT$(1)=CHR$(27) THEN MEMORY h!:END ELSE BOMB%=BOMB%-1:GOTO 50
220 FOR A%=0 TO 9:OUT 247,192:PRINT B$;:M$=BM$:GOSUB 260:M$=" ***":GOSUB 260:NEXT A%
230 M$=" "+CHR$(220)+CHR$(221)+STRING$(3,226):GOSUB 260:x%=x%+2:FOR y%=y% TO 28:OUT 247,192:FOR i=1 TO 40:NEXT i:M$=STRING$(2,226)+CHR$(7):GOSUB 260:x%=x%+1:NEXT y%
240 M$=STRING$(10,226)+CHR$(7):y%=29:GOSUB 260:FOR i =1 TO 5:M$=CHR$(7):OUT 247,192:GOSUB 260:NEXT i:x%=x%+1:y%=30:FOR i=1 TO 5:OUT 247,192:M$=CHR$(7)+STRING$(3,226)+CHR$(226)+CHR$(221)+CHR$(222)+STRING$(3,226):GOSUB 260:NEXT i
250 M$=" ":GOSUB 260:M$="YOU HAVE CRASHED!":X%=3:Y%=5:GOSUB 260:BOMB%=4:GOTO 200
260 PRINT AT$CHR$(32+Y%)CHR$(32+X%)M$:RETURN
270 FOR i=400 TO (x%^1.4):NEXT i: PRINT AT$CHR$(32+(Y%-1))CHR$(32+(X%-1))M$:RETURN
280 FOR i=400 TO (x%^1.2):NEXT i: PRINT AT$CHR$(32+(Y%-1))CHR$(32+(X%-1))M$:RETURN
290 PRINT AT$CHR$(32+Y%)CHR$(32+X%)M$;:RETURN
300 x%=30:y%=6:m$="PRESS [SPACE] TO DROP BOMBS":GOSUB 260:y%=0:m$="":GOSUB 260
310 FOR A%=1 TO 18:B$(A%)=SPACE$(90):NEXT:FOR X%=7 TO 81 STEP 3
320  R%=INT(RND*(16)+(10-(bomb%*3))):MID$(B$(R%),X%,3)=CHR$(150)+CHR$(154)+CHR$(156)
330 FOR A%=R%+1 TO 18
340 MID$(B$(A%),X%,3)=CHR$(151)+CHR$(154)+CHR$(157)
350 NEXT A%:NEXT X%
360 FOR A%=1 TO 12:PRINT:NEXT:FOR A%=1 TO 18:PRINT B$(A%):NEXT
370 X%=1:Y%=4:B%=0:PRINT TAB(4)R$SPACE$(81)RO$;
380 X%=1:Y%=0:M$="                                                                    ":y%=1:GOSUB 260:M$="":RETURN
390 DIM B$(25):R$=CHR$(27)+CHR$(112):RO$=CHR$(27)+CHR$(113)
400 GOSUB 510
410 PRINT CHR$(27)+"0":B$=CHR$(7)
420 BM$=CHR$(226)+CHR$(220)+CHR$(221)+CHR$(222):AT$=CHR$(27)+"Y"
430 PARA$=" "+CHR$(227)+CHR$(228)+STRING$(3,8)+CHR$(10)+" "+CHR$(229)+CHR$(230)
440 C$=CHR$(27)+"E"+CHR$(27)+"H":PRINT CHR$(27)+"B0"+CHR$(27)+"C"
450 PRINT C$
460 RANDOMIZE(PEEK(64504!)):PRINT C$:RETURN
470 BOMB$(3)=CHR$(223)+CHR$(224)+CHR$(225)
480 BOMB$(2)=CHR$(223)+CHR$(225)
490 BOMB$(1)=CHR$(225)
500 BOMB$(4)=CHR$(223)+CHR$(224)+CHR$(224)+CHR$(225):RETURN
510 GOSUB 520:GOSUB 610:RETURN
520 REM "Music"
530 DATA 229,213,197,221,229,42,27,192,237,91,25,192,205,29,192,62
540 DATA 12,211,248,221,225,193,209,225,201,0,0,0,0,243,125,203
550 DATA 61,203,61,47,230,3,79,6,0,221,33,49,192,221,9,62
560 DATA 11,0,0,0,4,12,13,32,253,14,63,5,32,248,60,254
570 DATA 13,32,2,61,61,211,248,68,79,254,11,32,9,122,179,40
580 DATA 9,121,77,27,221,233,77,12,221,233,251,201
590 h!=HIMEM:MEMORY &HBFFF:FOR n=&HC000 TO &HC05B:READ d%:POKE n,d%:NEXT
600 A=&HC000:B=&HC019:C=&HC01B:RETURN
610 DIM e(10):FOR n%=0 TO 9:READ f:e(n%)=f:NEXT:RETURN
620 DATA 189.8765,210,234.4015,254.612,284,318,351,372,415,470
630 time$="953339933339933349559949111111111119000003000009"
640 note$="756666756666756666567777654321234567000007000007"
650 FOR i=1 TO LEN(time$):d=(VAL(MID$(time$,i,1))/9):f%=VAL(MID$(note$,i,1))     
660 f2=e(f%):t=3500000!/(f2*2):t=INT(t/4-30.125)
670 IF t<0 THEN t=1
680 f2=INT(f2*(d/3)):IF f2<0 THEN f2=1
690 POKE B,f2-256*INT(f2/256):POKE B+1,INT(f2/256)
700 POKE C,t-256*INT(t/256):POKE C+1,INT(t/256):CALL A:NEXT i:RETURN

Controls

     SPACE = RELEASE BOMB
      EXIT = LEAVE GAME

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 Crash Landing game
 4.- Type run "Crashlnd" and press the "ENTER" key

Download

en/crash_landing.txt · Last modified: 2022/06/30 10:31 by jevicac