User Tools

Site Tools


en:blitz

BLITZ

Info

Author R.A. Waddilove
Compatibility Amstrad PCW 8256 / 8512 / 9512
Year 1986
Gender Arcade
Controls Keyboard
Language Spanish - Dutch
Status Preserved

Screenshots

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);"<Druk op de SPATIEBALK >";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

blitz_programa_01.jpg blitz_programa_02.jpg blitz_programa_03.jpg blitz_programa_04.jpg

Download

Video

en/blitz.txt · Last modified: 2022/06/30 02:30 by jevicac