0100 3fff 0302 C ... 10K BASIK+SKEET
Monitoraufrufe:
202: [WIND, OUTCH, INKEY, INCH]
Verwendete IO-Ports bzw. Hardware:
keine []
Der BASIC-Interpreter verwendet direkte 2.02 Monitoraufrufe und das BASIC-Programm ruft ebenfalls 0xF130 INKEY (via CALL 224) direkt auf. DURCH DRUECKEN DER TASTE >SPACE< MUESSEN SIE DIE ANFLIEGENDEN WURFTAUBEN ABSCHIESSEN. WAEHLEN SIE BITTE SCHWIERIGKEITS STUFE A ODER B . WARTEN SIE EINIGE SEKUNDEN.
10 !##########################
20 !#       Programm         #
30 !#       S K E E T        #
40 !# bearbeitet:            #
50 !#       Rolf Zimmer      #
60 !#       W.-PIECK-STR. 17 #
70 !# MAERZ 1987             #
80 !##########################  
90 GOSUB 1450
100 A2$="SPIEL"
110 A3$="SKEET"
120 A4$=" S K E E T "
130 A5$="WURFTAUBENSCHIESSEN"
140 A6$="SPASS"
150 GOSUB 1510:CLS
160 PRINT AT(0,0);" "
170 PRINT AT(2,0);A1$:PRINT AT(4,0);CHR$(168),STRING$(30,CHR$(160)),CHR$(169)
180 PRINT AT(5,0);CHR$(161):PRINT AT(5,31);CHR$(161)
190 PRINT AT(6,0);CHR$(167),STRING$(30,CHR$(160)),CHR$(170)
200 PRINT AT(5,3);A2$:PRINT AT(5,20);A3$
210 PRINT AT(8,0);STRING$(32,CHR$(255))
220 FOR I=9 TO 13:PRINT AT(I,0);CHR$(255):PRINT AT(I,31);CHR$(255):NEXT
230 PRINT AT(29,0);"(c) R.Zimmer    1987"
240 PRINT AT(14,0);STRING$(32,CHR$(255))
250 PRINT AT(10,30-LEN(A4$));A4$:PRINT AT(12,30-LEN(A5$));A5$
260 PRINT AT(21,0);STRING$(32,CHR$(226))
270 PRINT AT(23,0);STRING$(32,CHR$(238))
280 GOSUB 1450:GOSUB 1510:ST=197
290 CALL 224:PRINT AT(22,20);"TASTE":PAUSE 2:PRINT AT(5,20);A6$
300 PRINT AT(22,0);STRING$(32,CHR$(ST))
310 PAUSE 2:CALL 224:TC=PEEK(231):ST=ST+1:IF ST=200 THEN ST=197
320 PRINT AT(5,20);A3$:GOSUB 1540:IF TC=0 THEN 290
330 IF TC=81 THEN END
340 O(0)=201:O(1)=207:O(2)=195:O(3)=166:O(4)=140 
350 S(0)=116:S(1)=20:S(2)=36:S(3)=52:S(4)=84:S(5)=100
360 GOSUB 1510:CLS:PRINT AT(0,0);" " 
370 M$="N"
380 PRINT AT(3,0);"DURCH DRUECKEN DER TASTE >SPACE<"  
390 PRINT AT(5,0);"MUESSEN SIE DIE ANFLIEGENDEN"    
400 PRINT AT(7,0);"WURFTAUBEN ABSCHIESSEN."
410 PRINT AT(10,0);"WAEHLEN SIE BITTE SCHWIERIGKEITS"
420 PRINT AT(12,0);"STUFE A ODER B ."
430 PRINT AT(14,0);"WARTEN SIE EINIGE SEKUNDEN.":PRINT AT(22,0);"STUFE: A/B"
440 M$="A"
450 PRINT AT(20,0);STRING$(11," ")
460 GOSUB 1530:CALL 224:TC=PEEK(231):IF TC=0 THEN 450:ELSE M$=CHR$(TC):PRINT "O K A Y"
470 IF M$="A"OR M$="B"THEN PAUSE 10:GOSUB 1510:CLS:GOTO 490
480 CLS:PRINT AT(20,0);"WIE BITTE?":GOTO 460
490 PRINT:PRINT:INPUT "Wieviele Tauben?";TA:CLS:PRINT AT(0,0);" "
500 PRINT AT(8,3);"ACHTUNG...":PAUSE 5:PRINT AT(10,3);"FERTIG..."
510 PAUSE 5:PRINT AT(12,3);"LOS!!!":PAUSE 5
520 CLS:PRINT AT(0,0);" ":A=0:B=0:PR=0
530 PRINT AT(8,0);"TAUBEN :",A
540 PRINT AT(9,0);"TREFFER:",B
550 PRINT AT(0,0);STRING$(32,CHR$(192))
560 IF A>0 THEN PR=INT(B/A*100):PRINT AT(11,0);"PROZENT:",PR," "
570 EW=INT(PR/3):IF EW>32 THEN EW=32
580 IF EW>0 THEN PRINT AT(0,0);STRING$(EW,CHR$(255)) 
590 N=INT(RND(1)*6.8):IF(N=C)OR(N=0)GOTO 590:ELSE C=N
600!
610 IF M$="A"GOTO 680
620 L=INT(RND(1)*5.8):ON L GOTO 630,640,650,660,670,680
630 Z=-4204:GOTO 690
640 Z=-4206:GOTO 690
650 Z=-4210:GOTO 690
660 Z=-4212:GOTO 690
670 Z=-4213:GOTO 690
680 Z=-4208
690 V=INT(RND(1)*4.9):P=INT(RND(1)*5.9)
700 ON C GOTO 710,720,730,740,750,760
710 E=-4672:F=E+31:G=1:GOTO 770
720 E=-4705:F=E-31:G=-1:GOTO 770
730 E=-4897:F=E-31:G=-1:GOTO 770
740 E=-4992:F=E+31:G=1:GOTO 770
750 E=-5116:F=E+759:G=33:GOTO 770
760 E=-5094:F=E+744:G=31:GOTO 770
770 FOR I=-4190 TO-4170:POKE I,32:NEXT
780!
790 FZ=Z:A=A+1:X=0:POKE FZ-984,36:POKE FZ+32,204
800!
810 FOR K=E TO F STEP G
820 POKE K-G,32:POKE K,O(V):IF K=F THEN POKE K,32
830 IF K=Z THEN 900
840 IF X<>0 GOTO 860
850 CALL 224:TC=PEEK(231):IF TC=0 THEN 880:ELSE X=1
860 IF Z<-5040 THEN POKE Z,32:GOTO 880
870 Z=Z-64:POKE Z,58:POKE Z+64,32:IF Z=K GOTO 900
880 NEXT K
890 POKE Z,32:IF A=TA THEN 1040:ELSE 530
900 CALL 232:POKE 242,199:POKE 246,32:CALL 232:B=B+1:POKE 242,32:POKE 246,199
910!
920 POKE K,202:POKE K+2,42
930 POKE K-2,42:POKE K+64,42
940 POKE K-64,42:POKE K+66,42
950 POKE K-66,42:POKE K-70,42
960 POKE K-6,42:POKE K+70,42
970 PAUSE 2
980 POKE K,32:POKE K+2,32:POKE K-2,32 
990 POKE K+2,32:POKE K+64,32
1000 POKE K-64,32:POKE K+66,32
1010 POKE K+70,32:POKE K-66,32
1020 POKE K-70,32:POKE K-6,32
1030 IF A<TA GOTO 530
1040!
1050 CLS:PRINT AT(0,0);" "
1060 PRINT AT(3,5);"SIE HABEN BEI"
1070 PRINT AT(5,4);A,"TAUBEN"
1080 PRINT AT(7,4);B,"MAL GETROFFEN!"
1090 IF PR>24 GOTO 1200
1100 IF M$="A"GOTO 1160
1110 PRINT AT(10,0);"SIE HABEN SICH FUER DEN ANFANG"
1120 PRINT AT(12,0);"ZUVIEL VORGENOMMEN, VERSUCHEN"
1130 PRINT AT(14,0);"SIE ES DOCH EINMAL MIT DER"
1140 PRINT AT(16,0);"EINFACHEN VARIANTE!"
1150 GOTO 1390
1160 PRINT AT(10,0);"ES IST ZWECKLOS MIT IHNEN,"
1170 PRINT AT(12,0);"SIE SOLLTEN LIEBER MIT"
1180 PRINT AT(14,0);"MURMELN SPIELEN!
1190 GOTO 1390
1200 IF PR>36 GOTO 1250
1210 PRINT AT(10,0);"SIE SOLLTEN WENIGER TRINKEN,"
1220 PRINT AT(12,0);"BEVOR SIE SICH AN SOLCH EIN"
1230 PRINT AT(14,0);"SCHWIERIGES SPIEL HERANWAGEN."
1240 GOTO 1390
1250 IF PR>50 GOTO 1270
1260 PRINT AT(10,0);"NA JA...!":GOTO 1390
1270 IF PR>70 GOTO 1310
1280 PRINT AT(10,0);"NICHT SCHLECHT, SIE MACHEN"
1290 PRINT AT(12,0);"SICH LANGSAM!"
1300 GOTO 1390
1310!
1320!
1330!
1340 CALL 232
1350 PRINT AT(10,2);"HERVORRAGEND, SIE SIND EIN"
1360 PRINT AT(12,2);"MEISTERSCHUETZE, SIE KOENNEN"
1370 PRINT AT(14,2);"EINEN AUSGEBEN!!!"
1380 PAUSE 80:FOR I=1 TO 32:PRINT:NEXT:CLS:PRINT AT(0,0);" "
1390 PRINT AT(22,5);"NOCH EINMAL: (J)/N"
1400 CALL 224:TC=PEEK(231):IF TC=0 GOTO 1400
1410 IF TC=74 OR TC=13 THEN CLS:PR=0:GOTO 420
1420 CLS:PRINT AT(0,0);" ":PRINT AT(12,8);"AUF WIEDERSEHEN!"
1430 PAUSE 10:CLS:END
1440 END
1450 DATA 205,48,241,50,231,0,201
1460 DATA 33,0,236,6,32,197,6,32,126,254,32,32,2,54,199,35,16,246,193,16
1470 DATA 240,201
1480 RESTORE 1450:FOR I=224 TO 230:READ W:POKE I,W:NEXT
1490 FOR I=232 TO 253:READ W:POKE I,W:NEXT:RETURN
1500!Grosses Fenster
1510 POKE 27,0:POKE 28,236:POKE 29,0:POKE 30,240:CALL*F6D1:RETURN 
1520!Unteres Fenster
1530 POKE 27,64:POKE 28,239:POKE 29,0:POKE 30,240:CALL*F6D1:RETURN
1540 IF INT(RND(1)*3+.5)<>2 THEN RETURN
1550 FOR I=1 TO 31:PRINT AT(22,I);CHR$(RND(1)*223+32):PRINT AT(22,I-1);" ":NEXT 
1560 PRINT AT(22,31);" ":RETURN