====== CRASH LANDING ====== {{:otros:Crash_Landing_p1.jpg?690|}} ===== Info ===== ^ Author | ??????? | ^ Computer | Amstrad PCW 8256 / 8512 / 9512 | ^ Year | ???? | ^ Gender | Arcade | ^ Controls | Keyboard | ^ Languages | English | ^ Status | [[preserved|Preserved]] | ===== Screenshots ===== {{:otros:Crash_Landing_screenshot01.png?220}} {{:otros:Crash_Landing_screenshot02.png?220}} {{:otros:Crash_Landing_screenshot03.png?220}} {{:otros:Crash_Landing_screenshot04.png?220}} ===== 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 * **__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 ===== * {{:otros:Crash Landing (Basic).zip|Crash Landing }}(game in dsk format, compressed with zip)