Screenshot 1 Screenshot 2
2bc0 45ae 00e0 B ... 99BOMBER
Monitoraufrufe:
202: [KILL]
Direkter Monitoraufruf geändert CALL*F50B KILL die INKEY Routine verhält sich im Vergleich zum A2 Monitor etwas behäbig, vielleicht hätte man die Speicherzelle 0x0004 erst auf 0 setzen sollen, wie implizit beim A2 Monitor schon erreicht. --- Sie fuehren 3 Flakstellungen. Mittels Kursortasten koennen sie die Stellung wechseln. Als Feuertaste dient >SPACE<. Sie duerfen keinen der 99 Bomber durchlassen.
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   10 REM BILDS.AUFBAU
   20 GOTO 110
   30 POKE 27,00 
   40 POKE 28,236
   50 POKE 29,255
   60 POKE 30,239
   70 POKE 35,AB 
   80 CALL*F50B
   90 WINDOW
  100 RETURN 
  110 AB=32:GOSUB 30:GOSUB 920
  120 PAUSE 40:F=5
  130 AB=32:GOSUB 30
  140 PRINT AT(0,0);" "
  150 FOR I=0 TO 31:PRINT AT(7,I);CHR$(250):NEXT I
  160 FOR I=8 TO 31:PRINT AT(I,21);CHR$(161):NEXT I    
  170 PRINT AT(1,2);"MRB Z 1013     H.&> N.BARTSCH" 
  180 PRINT AT(3,2);">GAME BASIC    6500 GERA"  
  190 PRINT AT(5,2);" 6,7 kByte     Otto-Dix-Str.14"
  200 PRINT AT(9,0);"Sie fuehren 3 Flak-"
  210 PRINT AT(11,0);"stellungen. Mittels "
  220 PRINT AT(13,0);"Kursortasten koennen"
  230 PRINT AT(15,0);"sie die Stellung"
  240 PRINT AT(17,0);"wechseln. Als Feuer-"
  250 PRINT AT(19,0);"taste dient >SPACE<."
  260 PRINT AT(21,0);"Sie duerfen keinen"
  270 PRINT AT(23,0);"der 99 Bomber durch-"
  280 PRINT AT(25,0);"lassen."
  290 WINDOW 14,19,22,31
  300 PRINT;"CSAVE :"
  310 PRINT:PRINT;"BREAK :"
  320 PRINT:PRINT;"START :"
  330 PRINT AT(19,22);" "
  340 LL=18 
  350 PRINT AT(LL,30);CHR$(203)
  360 I$=INKEY$:IF I$=""THEN 360
  370 IF I$=CHR$(85)THEN PRINT AT(LL,30);" ":LL=LL-2
  380 IF I$=CHR$(32)THEN PRINT AT(LL,30);" ":LL=LL+2
  390 IF LL<14 THEN LL=14
  400 IF LL>18 THEN LL=18
  410 IF I$=CHR$(13)THEN 430
  420 GOTO 350
  430 WINDOW
  440 IF LL= 14 THEN GOSUB 3710:GOTO 300
  450 IF LL= 16 THEN AB=32:GOSUB 30:END
  460 IF LL= 18 THEN 480
  470 REM SPIELAUFBAU
  480 C=29:Z=1:G=15:B=0:L=0:N=0    
  490 AB=32:GOSUB 30:WINDOW 10,31,0,31         
  500 PRINT AT(1,2);"SCHUSSZAHL:"
  510 PRINT AT(2,2);"TREFFER   :"   
  520 PRINT AT(3,2);"BOMBERZAHL:"   
  530 PRINT AT(1,26);CHR$(174)+CHR$(158)+CHR$(173)
  540 PRINT AT(2,26);CHR$(159)+CHR$(32)+CHR$(192)
  550 PRINT AT(3,26);CHR$(171)+CHR$(248)+CHR$(172)
  560 FOR X=13 TO 26
  570 PRINT AT (X,1);":":PRINT AT (X,29);":" 
  580 NEXT X
  590 FOR I=2 TO 28
  600 PRINT AT (26,I);"_"  
  610 NEXT I
  620 PRINT AT(10,0);" "
  630 FOR I=0 TO F
  640 PRINT AT(28,0);">>>ACHTUNG 99BOMBER GREIFEN AN!"  
  650 PAUSE 5
  660 PRINT AT(28,0);"                               "
  670 FOR D=0 TO 3
  680 BEEP
  690 PAUSE 1
  700 NEXT D
  710 NEXT I
  720 F=1
  730 PRINT AT(26,G);CHR$(157)
  740!BOMBERBERECHNUNG
  750 IF N=99 THEN 9190
  760 E=INT(16*RND(1)+10)
  770 IF C=28 THEN N=N+1
  780 C=C-1
  790 PRINT AT(M,H);CHR$(32)
  800 PRINT AT(E,C);CHR$(148)
  810 IF C=1 THEN 3430
  820 IF C=G+1 THEN PRINT AT(2,27);CHR$(148):ELSE PRINT AT(2,27);" "
  830 M=E:H=C
  840 GOSUB 2900
  850 IF C=G THEN GOSUB 3240
  860 IF T$=CHR$(32)THEN GOSUB 3010
  870 PRINT AT(1,13);B
  880 PRINT AT(2,13);L
  890 PRINT AT(3,13);N
  900 GOTO 730
  910!UP
  920 AB=42:GOSUB 30:PRINT AT(0,T0);CHR$(42)
  930 T=255:TA=190:TB=143:TC=191:TD=142  
  940 RESTORE 980
  950 FOR I=1 TO 6
  960 READ EC
  970 A=-5015+EC
  980 DATA 1,2,3,11,12,13
  990 POKE A,T:NEXT I
 1000 RESTORE 1040
 1010 FOR I=1 TO 2
 1020 READ EC
 1030 A=-5016+EC
 1040 DATA 1,11
 1050 POKE A,TA:NEXT I
 1060 RESTORE 1100
 1070 FOR I=1 TO 2
 1080 READ EC
 1090 A=-5012+EC
 1100 DATA 1,11
 1110 POKE A,TB:NEXT I
 1120 RESTORE 1160
 1130 FOR I=1 TO 4
 1140 READ EC
 1150 A=-4984+EC
 1160 DATA 1,5,11,15
 1170 POKE A,T:NEXT I
 1180 RESTORE 1210
 1190 FOR I=1 TO 2:READ EC
 1200 A=-4985+EC
 1210 DATA 1,11
 1220 POKE A,TA:NEXT I
 1230 RESTORE 1260
 1240 FOR I=1 TO 2:READ EC
 1250 A=-4983+EC
 1260 DATA 1,11
 1270 POKE A,TD:NEXT I
 1280 RESTORE 1310
 1290 FOR I=1 TO 2:READ EC
 1300 A=-4981+EC 
 1310 DATA 1,11
 1320 POKE A,TC:NEXT I
 1330 RESTORE 1360
 1340 FOR I=1 TO 2:READ EC
 1350 A=-4979+EC
 1360 DATA 1,11
 1370 POKE A,TB:NEXT I
 1380 RESTORE 1410
 1390 FOR I=1 TO 4:READ EC
 1400 A=-4953+EC
 1410 DATA 1,7,11,17
 1420 POKE A,T:NEXT I
 1430 RESTORE 1460
 1440 FOR I=1 TO 2:READ EC
 1450 A=-4952+EC
 1460 DATA 1,11
 1470 POKE A,TD:NEXT I
 1480 RESTORE 1510
 1490 FOR I=1 TO 2:READ EC
 1500 A=-4948+EC
 1510 DATA 1,11
 1520 POKE A,TC:NEXT I
 1530 RESTORE 1560
 1540 FOR I=1 TO 4:READ EC
 1550 A=-4921+EC
 1560 DATA 1,7,11,17
 1570 POKE A,T:NEXT I
 1580 RESTORE 1610
 1590 FOR I=1 TO 2:READ EC
 1600 A=-4920+EC
 1610 DATA 1,11
 1620 POKE A,TB:NEXT I
 1630 RESTORE 1660
 1640 FOR I=1 TO 2:READ EC
 1650 A=-4916+EC
 1660 DATA 1,11
 1670 POKE A,TA:NEXT I
 1680 RESTORE 1710
 1690 FOR I=1 TO 6:READ EC
 1700 A=-4888+EC
 1710 DATA 1,5,6,11,15,16
 1720 POKE A,T:NEXT I
 1730 RESTORE 1760
 1740 FOR I=1 TO 2:READ EC
 1750 A=-4889+EC
 1760 DATA 1,11
 1770 POKE A,TC:NEXT I
 1780 RESTORE 1810
 1790 FOR I=1 TO 2:READ EC
 1800 A=-4887+EC
 1810 DATA 1,11
 1820 POKE A,TB:NEXT I
 1830 RESTORE 1860
 1840 FOR I=1 TO 2:READ EC
 1850 A=-4885+EC
 1860 DATA 1,11
 1870 POKE A,TA:NEXT I
 1880 RESTORE 1910
 1890 FOR I=1 TO 8:READ EC
 1900 A=-4855+EC
 1910 DATA 1,2,3,5,11,12,13,15
 1920 POKE A,T:NEXT I
 1930 RESTORE 1960
 1940 FOR I=1 TO 2:READ EC
 1950 A=-4856+EC
 1960 DATA 1,11
 1970 POKE A,TC:NEXT I
 1980 RESTORE 2010
 1990 FOR I=1 TO 2:READ EC
 2000 A=-4852+EC
 2010 DATA 1,11
 2020 POKE A,TD:NEXT I
 2030 RESTORE 2060
 2040 FOR I=1 TO 12:READ EC
 2050 A=-4820+EC
 2060 DATA 2,12,34,44,60,66,70,76,92,98,102,108
 2070 POKE A,T:NEXT I
 2080 RESTORE 2110
 2090 FOR I=1 TO 2:READ EC
 2100 A=-4728+EC
 2110 DATA 1,11
 2120 POKE A,TB:NEXT I
 2130 RESTORE 2160
 2140 FOR I=1 TO 2:READ EC
 2150 A=-4724+EC
 2160 DATA 1,11
 2170 POKE A,TA:NEXT I
 2180 RESTORE 2210
 2190 FOR I=1 TO 4:READ EC
 2200 A=-4696+EC
 2210 DATA 1,5,11,15
 2220 POKE A,T:NEXT I
 2230 RESTORE 2260
 2240 FOR I=1 TO 2:READ EC
 2250 A=-4697+EC
 2260 DATA 1,11
 2270 POKE A,TC:NEXT I
 2280 RESTORE 2310
 2290 FOR I=1 TO 2:READ EC
 2300 A=-4695+EC 
 2310 DATA 1,11
 2320 POKE A,TB:NEXT I
 2330 RESTORE 2360
 2340 FOR I=1 TO 2:READ EC
 2350 A=-4693+EC
 2360 DATA 1,11
 2370 POKE A,TA:NEXT I
 2380 RESTORE 2410
 2390 FOR I=1 TO 2:READ EC
 2400 A=-4691+EC
 2410 DATA 1,11
 2420 POKE A,TD:NEXT I
 2430 RESTORE 2460
 2440 FOR I=1 TO 6:READ EC
 2450 A=-4663+EC
 2460 DATA 1,2,3,11,12,13
 2470 POKE A,T:NEXT I
 2480 RESTORE 2510
 2490 FOR I=1 TO 2:READ EC
 2500 A=-4664+EC
 2510 DATA 1,11
 2520 POKE A,TC:NEXT I
 2530 RESTORE 2560
 2540 FOR I=1 TO 2:READ EC
 2550 A=-4660+EC
 2560 DATA 1,11
 2570 POKE A,TD:NEXT I
 2580 RESTORE 2610
 2590 FOR I=1 TO 15:READ EC
 2600 A=-4542+EC
 2610 DATA 1,33,65,97,98,99,129,131,161,163,193,195,225,226,227
 2620 POKE A,T:NEXT I
 2630 RESTORE 2660
 2640 FOR I=1 TO 12:READ EC
 2650 A=-4442+EC
 2660 DATA 1,2,3,33,35,65,67,97,99,129,130,131
 2670 POKE A,T:NEXT I
 2680 RESTORE 2710
 2690 FOR I=1 TO 19:READ EC
 2700 A=-4438+EC
 2710 DATA 1,3,4,6,7,33,34,36,37,39,65,68,71,97,100,103,129,132,135
 2720 POKE A,T:NEXT I
 2730 RESTORE 2760
 2740 FOR I=1 TO 15:READ EC
 2750 A=-4526+EC
 2760 DATA 1,33,65,97,98,99,129,131,161,163,193,195,225,226,227
 2770 POKE A,T:NEXT I
 2780 RESTORE 2810
 2790 FOR I=1 TO 12:READ EC
 2800 A=-4426+EC
 2810 DATA 1,2,3,33,35,65,66,67,97,129,130,131
 2820 POKE A,T:NEXT I
 2830 RESTORE 2860
 2840 FOR I=1 TO 7:READ EC
 2850 A=-4422+EC
 2860 DATA 1,3,33,34,65,97,129
 2870 POKE A,T:NEXT I
 2880 PRINT AT(29,23);">1988<"
 2890 RETURN
 2900 REM GESCHUETZVERSCHIEBUNG           
 2910 T$=INKEY$
 2920 IF T$=CHR$(8) THEN P=G:G=G-12
 2930 IF T$=CHR$(9) THEN P=G:G=G+12 
 2940 IF G<3 THEN G=3
 2950 IF G>27 THEN G=27
 2960 IF P=G THEN Z=Z+1
 2970 IF Z=2 THEN P=0:Z=1
 2980 IF P=0 THEN 3000
 2990 PRINT AT(26,P);"_"
 3000 RETURN
 3010! SCHIESSEN
 3020 IF B>160 THEN PAUSE 50:GOTO 3420
 3030 IF B=45 THEN 3040:ELSE 3070
 3040 IF C<11 AND B=45 THEN WINDOW 28,31,0,31:CLS:GOTO 3070
 3050 PRINT AT(29,5);"GESCHUETZ MUSS NACHLADEN !!"
 3060 RETURN
 3070 B=B+1:PRINT AT(28,0);" "
 3080 IF G<>C THEN Q=23:ELSE Q=E
 3090 FOR I=1 TO 2 
 3100 FOR U=25 TO Q  STEP -1
 3110 PRINT AT(2,27);"*"
 3120 PRINT AT(U,G);"*"
 3130 NEXT U
 3140 FOR U=25 TO Q  STEP -1
 3150 PRINT AT(U,G);CHR$(32)
 3160 PRINT AT(2,27);" "
 3170 NEXT U
 3180 NEXT I
 3190 IF G=C THEN L=L+1:C=29:E=0:ELSE RETURN 
 3200 FOR J=10 TO 0 STEP -1
 3210 BEEP
 3220 NEXT J
 3230 RETURN
 3240!ZURUECKSCHIESEN
 3250 G1=G
 3260 DJ=INT(11*RND(1)+2.5)
 3270 IF DJ>7 AND E<23 AND C>11 THEN 3280:ELSE RETURN
 3280 PRINT AT(2,27);CHR$(161)
 3290 FOR I=(E+2) TO 26
 3300 BEEP
 3310 GOSUB 2900
 3320 IF G<>G1 THEN PRINT AT(I-1,G1);" ":I=26:RETURN
 3330 PRINT AT(I,G1);CHR$(161) 
 3340 PRINT AT(I-1,G1);" "
 3350 NEXT I
 3360 PRINT AT(I-1,G1);CHR$(204)
 3370 PRINT AT(I,G1);CHR$(130) 
 3380 PRINT AT(I-2,G1);CHR$(213)
 3390 PRINT AT(I-1,G1+1);CHR$(156)
 3400 PRINT AT(I-1,G1-1);CHR$(152)
 3410 GOTO 3510
 3420!SPIELAUSWERTUNG
 3430 PAUSE 30:AB=32:GOSUB 30
 3440 PRINT AT(7,4);"SIE HABEN MIT ":PRINT AT(7,17);B:PRINT AT(7,21);"SCHUSS"
 3450 PRINT AT(9,4);L:PRINT AT(9,8);"BOMBER ABGESCHOSSEN !"
 3460 PRINT AT(11,4);"DER":PRINT AT(11,7);N:PRINT AT(11,11);"BOMBER IST DURCHGE-"
 3470 PRINT AT(13,4);"BROCHEN UND IHRE STELLUNG"
 3480 PRINT AT(15,4);"VERNICHTET."
 3490 PRINT AT(0,0);" "
 3500 PAUSE 20:GOTO 3590
 3510 WINDOW 28,31,0,31        
 3520 PRINT "   >> GESCHUETZ VERNICHTET <<"
 3530 PRINT AT(29,0);" ":PAUSE 50:AB=32:GOSUB 30
 3540 PRINT AT(11,4);"SIE SIND VON EINER LUFT-"
 3550 PRINT AT(13,4);"BODENRAKETE GETROFFEN WURDEN."
 3560 PRINT AT(15,4);"LEIDER VERLOREN !"
 3570 PRINT AT(0,0);" "
 3580 PRINT AT(14,0);" "
 3590 PAUSE 40
 3600 GOTO 130
 3610 PRINT AT(0,0);" "
 3620 PRINT AT(5,0);" SIE HABEN DEN ANGRIFF ERFOLG-"     
 3630 PRINT AT(7,0);" REICH ABGEWEHRT !"
 3640 FOR I=1 TO 10
 3650 PRINT AT(20,11);">GEWONNEN<"
 3660 PAUSE 5  
 3670 PRINT AT(20,10);"           " 
 3680 PAUSE 5
 3690 NEXT I
 3700 PAUSE 20:GOTO 130
 3710 WINDOW 14,19,22,31:CLS
 3720 PRINT "NAME :"
 3730 PRINT "99BOMBER"
 3740 PAUSE 10
 3750 CSAVE "99BOMBER
 3760 RETURN