====== BLITZ ====== {{:otros:Blitz_p1.jpg?690|}} ===== Info ===== ^ Author | R.A. Waddilove | ^ Compatibility | Amstrad PCW 8256 / 8512 / 9512 | ^ Year | 1986 | ^ Gender | Arcade | ^ Controls | Keyboard | ^ Language | Spanish - Dutch | ^ Status | [[preserved|Preserved]] | ===== Screenshots ===== {{:otros:Blitz_screenshot01.png?220}} {{:otros:Blitz_screenshot02.png?220}} {{:otros:Blitz_screenshot03.png?220}} {{:otros:Blitz_screenshot04.png?220}} ===== Description ===== You are back from a mission when you discover that your plane is out of fuel and there is nowhere to land. However you fly over the cities of the main skyscrapers. The only solution is to use the rest of the bombs to destroy the city we fly over and make it flat so we can land. As we advance the level of difficulty grows. The game will end when we hit one of the buildings. ===== Listing ===== * **__Listing - BLITZ.BAS__** 10 con$=CHR$(27)+"e" 20 REM: OPTION RUN 30 REM By R.A.Waddilove 40 REM Computing with the Amstrad 50 MEMORY &HEFFF 60 GOSUB 830:REM initialise 70 GOSUB 1420:REM Machine Code 80 GOSUB 1050:REM Graphics 90 GOSUB 740:REM Instructions 100 WHILE NOT bored AND NOT dead% 110 IF bored=-1 THEN 310 120 level%=0:dead%=0:s%=0 130 WHILE NOT dead% 140 GOSUB 500:REM screen 150 WHILE NOT (dead% OR landed%) 160 x%=x%+1 170 IF x%=90 THEN POKE &HF000,x%:POKE &HF001,y%:POKE &HF002,16:CALL char%:POKE &HF000,x%+4:CALL char%:x%=0:y%=y%+2 180 CALL plane% 190 IF bx%=0 THEN GOSUB 350 ELSE GOSUB 430 200 FOR delay=1 TO 20/(level%*level%):NEXT 210 IF y%=46 AND x%=40 THEN landed%=-1 220 POKE &HF000,x%+8:POKE &HF001,y%:CALL p%:IF PEEK(&HF002) THEN dead%=-1 230 WEND 240 IF dead% THEN POKE &HF034,&H60:CALL plane%:POKE &HF034,&H20:PRINT CHR$(30):PRINT:PRINT:PRINT STRING$(5,7);" ***** Tough luck: you crashed *****" 250 IF landed% THEN PRINT CHR$(27);"Y";CHR$(32+15);CHR$(32+20);"***** Fine, now it gets a little harder... *****" 260 FOR delay=1 TO 5000:NEXT 270 IF s%>hi% THEN hi%=s% 280 WEND 290 PRINT CHR$(7);" ***** Once more? (j/n) *****" 300 a$=INPUT$(1):IF UPPER$(a$)="J" THEN dead%=0 ELSE IF UPPER$(a$)="N" THEN bored=-1 ELSE PRINT CHR$(7);:GOTO 300 310 WEND 320 PRINT CHR$(27);"e";CHR$(27);"E" 330 END 340 : 350 REM----- Drob Bomb? ----- 360 IF x%>80 OR y%>44 OR (x% MOD 4)<>0 THEN FOR delay=1 TO 10:NEXT:RETURN 370 IF INKEY$<>" " THEN FOR delay=1 TO 10:NEXT:RETURN 380 bx%=x%+4:by%=y%+2 390 POKE &HF000,bx%:POKE &HF001,by%:CALL p%:IF PEEK(&HF002) THEN hit%=1:s%=s%+5 ELSE hit%=0 400 POKE &HF000,bx%:POKE &HF001,by%:POKE &HF002,14:CALL char% 410 RETURN 420 : 430 REM----- Move Bomb----- 440 k$=INKEY$ 450 IF by%=46 OR hit%=3 THEN POKE &HF000,bx%:POKE &HF001,by%:POKE &HF002,16:CALL char%:bx%=0:PRINT CHR$(7);CHR$(27);"Y";CHR$(32);CHR$(39);USING "###";s%:RETURN 460 POKE &HF000,bx%:POKE &HF001,by%+2:CALL p%:IF PEEK(&HF002) THEN hit%=hit%+1:s%=s%+1 470 POKE &HF000,bx%:POKE &HF001,by%:POKE &HF002,16:CALL char%:by%=by%+2:POKE &HF001,by%:POKE &HF002,14:CALL char% 480 RETURN 490 : 500 REM -----screen----- 510 level%=level%+1 520 PRINT cls$; 530 FOR i%=0 TO 21 540 POKE &HF000,i%*4:POKE &HF001,48:POKE &HF002,12:CALL char% 550 NEXT 560 FOR i%=1 TO 20 570 k%=2*INT(RND*4) 580 in%=INT(RND*(level%+10)) 590 FOR j%=0 TO in% 600 POKE &HF000,i%*4:POKE &HF001,46-j%*2:POKE &HF002,k%:CALL char% 610 NEXT 620 k%=2*(4+INT(RND*2)) 630 POKE &HF000,i%*4:POKE &HF001,46-j%*2:POKE &HF002,k%:CALL char% 640 NEXT 650 PRINT "SCORE: 0 MAX SCORE:";hi%;" NIVEAU";level% 660 landed%=0:x%=0:y%=4:POKE &HF031,&HD8:POKE &HF032,&H5E:CALL plane% 670 bx%=0:by%=0 680 IF level%>1 THEN RETURN 690 PRINT CHR$(27);"Y";CHR$(32+5);CHR$(32+25);"";CHR$(13); 700 WHILE INKEY$<>"":WEND:WHILE INKEY$<>" ":WEND 710 PRINT " ":REM 73 spaces 720 RETURN 730 : 740 REM -----Instructions----- 750 PRINT:PRINT:PRINT "Druk een toets" 760 teller=1:a$=INKEY$:WHILE a$="":teller=teller+1:a$=INKEY$:WEND:RANDOMIZE teller 770 PRINT cls$:PRINT:PRINT " ***** B L I T Z *****" 780 PRINT:PRINT:PRINT" Gebruik de SPATIEBALK om een bom te laten vallen" 790 PRINT:PRINT:PRINT" Druk op de SPATIEBALK om te starten" 800 WHILE INKEY$<>"":WEND:WHILE INKEY$<>" ":WEND 810 RETURN 820 : 830 REM -----Initialise----- 840 PRINT CHR$(27);"f"; 850 cls$=CHR$(27)+"y"+CHR$(27)+"E"+CHR$(27)+"H" 860 PRINT cls$ 870 PRINT:PRINT TAB(5);"********* HCC AMSTRAD/SCHNEIDER GG *************************** BLITZ *********" 880 PRINT:PRINT TAB(5); "- Een vliegtuig moet landen vanwege brandstoftekort. Het vliegt echter steeds" 890 PRINT TAB(5);" boven steden met wolkenkrabbers." 900 PRINT TAB(5);"- Doel is om de stad 'vlak' te maken, dus de flats te bombarderen. Dat kan" 910 PRINT TAB(5);" door bommen te laten vallen." 920 PRINT TAB(5);"- Als het vliegtuigje geland is, herhaald zich dit spel, het wordt natuurlijk" 930 PRINT TAB(5);" wel moeilijker." 940 PRINT TAB(5);"- Het spel is afgelopen als het vliegtuig tegen een flat botst." 950 PRINT:PRINT:PRINT TAB(5);"Let op, voor gebruik van dit spel kan de computer het beste worden uit-" 960 PRINT TAB(5);"geschakeld. Vervolgens wordt CPM weer opnieuw opgestart en dan meteen BLITZ spelen." 970 PRINT:PRINT TAB(5);"De kans is anders groot dat het speelveld er enigszins vreemd uitziet." 980 PRINT TAB(5);"Dit wordt veroorzaakt doordat het beeldscherm 'gerold' heeft." 990 PRINT TAB(5);"Hierdoor raakt het beeldschermgeheugen in de war." 1000 hi%=100 1010 graphics%=&HF100 1020 char%=&HF014:p%=&HF026:plane%=&HF01D 1030 RETURN 1040 : 1050 REM -----graphics----- 1060 RESTORE 1080:FOR i%=0 TO 415:READ j%:POKE graphics%+i%,j%:NEXT 1070 RETURN 1080 REM brick0.pcw 1090 DATA 127,120,120,120,120,120,120,127,255,14,13,14,13,14,13,255,255,191 1100 DATA 112,176,112,176,127,255,254,254,14,14,14,14,254,254 1110 REM brick1.pcw 1120 DATA 127,120,120,120,120,120,120,127,255,7,7,7,7,7,7,255,255,224,224,224 1130 DATA 224,224,224,255,254,30,30,30,30,30,30,254 1140 REM brick2.pcw 1150 DATA 127,127,120,120,120,120,127,127,255,255,7,7,7,7,255,255,255,255,224 1160 DATA 224,224,224,255,255,254,254,30,30,30,30,254,254 1170 REM brick3.pcw 1180 DATA 127,95,120,88,120,88,127,95,254,253,14,13,14,13,254,253,191,127,176 1190 DATA 112,176,112,191,127,254,250,30,26,30,26,254,250 1200 REM top0.pcw 1210 DATA 0,0,1,99,118,127,125,127,15,127,255,255,170,255,247,255,240,254,255 1220 DATA 255,170,255,239,255,0,0,128,198,174,254,190,254 1230 REM top1.pcw 1240 DATA 0,0,0,0,3,13,127,127,3,3,63,255,255,85,255,255,192,192,252,255,255 1250 DATA 85,255,255,0,0,0,0,192,112,254,254 1260 REM ground.pcw 1270 DATA 255,119,221,119,223,253,255,255,255,119,221,119,223,255,255,255,255 1280 DATA 119,221,119,223,253,255,255,255,119,221,119,223,255,255,255 1290 REM bomb.pcw 1300 DATA 1,1,0,0,1,3,0,0,255,255,15,127,255,255,255,15,255,255,240,254,255 1310 DATA 255,255,240,128,128,0,0,128,192,0,0 1320 REM space.pcw 1330 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1340 REM plane0.pcw 1350 DATA 0,0,0,0,0,0,0,0,252,255,192,255,255,255,192,240,0,128,255,255,240 1360 DATA 255,0,0,0,0,255,255,0,255,0,0,15,63,170,255,0,255,0,0,128,227,175 1370 DATA 255,7,255,56,254,0,0,255,255,255,255,0,0,0,3,243,255,255,243,3,0 1380 REM plane1.pcw 1390 DATA 0,0,15,15,3,0,0,0,0,0,255,252,249,231,63,63,0,15,255,255,247,191,255 1400 DATA 0,63,252,192,159,255,224,0,0,183,0,255,248,0,0,0,0,239,7,255,63,3 1410 DATA 0,0,0,128,252,223,253,255,15,0,0,0,0,227,243,251,255,6,60 1420 REM -----Machine code----- 1430 RESTORE 1570 1440 address%=&HF000 1450 FOR i%=1 TO 20 1460 sum%=0:READ code$,check$ 1470 FOR j%=1 TO 21 STEP 2 1480 byte%=VAL("&H"+MID$(code$,j%,2)) 1490 POKE address%,byte% 1500 sum%=sum%+byte%:address%=address%+1 1510 NEXT 1520 IF sum%<>VAL("&H"+check$) THEN PRINT "Error in line";100+i%*10:END 1530 NEXT 1540 i%=&HF003:CALL i% 1550 RETURN 1560 : 1570 DATA 0000002A01001157001922,0CE 1580 DATA 18F02221F0222AF0C90147,488 1590 DATA F0CD0100E900C9012FF0CD,55D 1600 DATA 0100E900C90160F0CD0100,3D2 1610 DATA E900C9F31100002120F201,3EA 1620 DATA 4000EDB02A31F011080019,35A 1630 DATA 2231F0FBC9F3CD6CF0EB2A,738 1640 DATA 02F0260001C2F0097E2366,3DB 1650 DATA 6F012000EDB0FBC9CD6CF0,61A 1660 DATA 110700197E3202F0C92A01,2C7 1670 DATA F026000182F0094E23462A,373 1680 DATA 00F0260029292909C94059,2FC 1690 DATA 105CE05EB0618064506720,476 1700 DATA 6AF06CC06F907260753078,574 1710 DATA 007BD07DA0807083408610,4B1 1720 DATA 89E08BB08E809150942097,5DE 1730 DATA F099C09C909F60A230A500,5EB 1740 DATA A8D0AAA0AD70B000F120F1,691 1750 DATA 40F160F180F1A0F1C0F1E0,815 1760 DATA F100F20000000000000000,1E3 ===== 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 Blitz game 4.- Type run "Blitz" and press the "ENTER" key ===== Extras ===== * Program listing in high-circulation magazines of the time {{:otros:Blitz_programa_01.jpg?170}} {{:otros:Blitz_programa_02.jpg?170}} {{:otros:Blitz_programa_03.jpg?170}} {{:otros:Blitz_programa_04.jpg?170}} ===== Download ===== * {{:otros:Blitz (Ho) (Basic).zip|Blitz Dutch version }}(game in dsk format, compressed with zip) * {{:otros:Blitz (Sp) (Basic).zip|Blitz Spanish version }}(game in dsk format, compressed with zip) ===== Video ===== {{ youtube>LCPwCvsLjWY?large }}