Verwendete IO-Ports bzw. Hardware:
BUGs:
braucht ROM-Basic
beim Starten bricht das Programm mit der Fehlermeldung ?OM ERROR IN 5 ab.
Offensichtlich ist kein Speicher mehr frei (CLEAR 1000,12279=0x2FF7) also hilft nur noch Zeile 2 und 3 löschen
?SN ERROR IN 20 (KC87 Programm?)
20 WINDOW:CLS:WINDOW0,23,39,39
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
2 WINDOW:CLS:PRINT " MOMENT BITTE,DIE MASCHINENCODEPROGRAMME":PRINT
3 PRINT " WERDEN EINGELESEN !!!":PRINT:PRINT:PRINT:PRINT:PRINT
5 CLEAR 1000,12279:GOSUB 1580
10 GOSUB 10000
20 WINDOW:CLS:WINDOW 0,23,39,39:PRINT AT(0,39);" "
30 PRINT AT(23,0);STRING$(40,""):GOSUB 3000
40 PRINT AT(12,14);"SPEED (9..1)"
50 S$=INKEY$:IF S$=""OR VAL(S$)>9 OR VAL(S$)<1 THEN 50:ELSE G=VAL(S$)
60 PRINT AT(12,14);" "
70 SC=12800:B=1:Z=1:BO=12900:TE=13000:BS=13400:RA=13500:RT=13700:BL=13800
80 DEF FN Z(X)=INT(RND(1)*7)+1
90 S$=INKEY$:G1=G1+1
100 IF S$<>""THEN S=ASC(S$):ELSE S=0
110 IF S=8 THEN CALL*300C
120 IF S=9 THEN CALL*3070
130 IF S=10 THEN CALL*30D4
140 IF S=11 THEN CALL*3138
150 IF S$="F"THEN CALL*319C:BEEP
160 IF S$="B"THEN CALL BOMB:BEEP
170 IF PEEK(12292)=1 THEN GOSUB 5000:GOTO 20
180 IF RND(1)<.125 THEN POKE DEEK(12288)+125,255
190 IF RND(1)>.5 THEN DOKE DEEK(12288)+162,-22889
200 CALL TEST:CALL BS:CALL RA:CALL RT
201 CALL 14000
203 IF RND(1)<.04 THEN CALL BLITZ
204 PRINT AT(0,0);STRING$(40,""):PRINT AT(0,5);" SCORE:",DEEK(12293)
205 PRINT AT(0,20);" HIGH-SCORE:",HI
206 G1=G1+1:IF G1<G THEN 90
207 G1=0:CALL SCROLL
208 IF Z=7 AND B=1 THEN HS=INT(RND(1)*9)+3
210 ON Z GOSUB 230,300,400,500,550,600,650
220 GOTO 90
230 ON B GOSUB 234,238,242,246,250,254,258,262,266,270,274
231 B=B+1:IF B=12 THEN B=1:Z=FN Z(X):RETURN:ELSE RETURN
234 PRINT SPC(21)"";:RETURN
238 PRINT SPC(19)"";:RETURN
242 PRINT SPC(17)"";:RETURN
246 PRINT SPC(15)"";:RETURN
250 PRINT SPC(14)"";:RETURN
254 PRINT SPC(14)"";:RETURN
258 PRINT SPC(14)"";:RETURN
262 PRINT SPC(14)"";:RETURN
266 PRINT SPC(18)"";:RETURN
270 PRINT SPC(19)"";:RETURN
274 PRINT SPC(21)"";:RETURN
300 ON B GOSUB 305,305,305,305,309,310,311,312,313,305,305,305
302 B=B+1:IF B=12 THEN B=1:Z=FN Z(X)
303 RETURN
305 PRINT SPC(23);:RETURN
309 PRINT SPC(22)"";:RETURN
310 PRINT SPC(18)"";:RETURN
311 PRINT SPC(21)"";:RETURN
312 PRINT SPC(18)"";:RETURN
313 PRINT SPC(22)"";:RETURN
400 ON B GOSUB 405,405,407,408,409,405,405
402 B=B+1:IF B=7 THEN B=1:Z=FN Z(X)
403 RETURN
405 PRINT SPC(23);:RETURN
407 PRINT SPC(17)""CHR$(142);:RETURN
408 PRINT SPC(16);" ";:RETURN
409 PRINT SPC(17)""CHR$(191);:RETURN
500 ON B GOSUB 505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520
501 IF B<16 THEN 503
502 ON B-16 GOSUB 521,522,523,524,525,526,527,528,529
503 B=B+1:IF B=25 THEN B=1:Z=5
504 RETURN
505 PRINT SPC(20)"";:RETURN
506 PRINT SPC(18)"";:RETURN
507 PRINT SPC(15)"";:RETURN
508 PRINT SPC(14)"";:RETURN
509 PRINT SPC(9)"";:RETURN
510 PRINT SPC(7)"";:RETURN
511 PRINT SPC(7)"";:RETURN
512 PRINT SPC(7)"";:RETURN
513 PRINT SPC(9)"";:RETURN
514 PRINT SPC(11)"";:RETURN
515 PRINT SPC(12)"";:RETURN
516 PRINT SPC(11)"";:RETURN
517 PRINT SPC(7)"";:RETURN
518 PRINT SPC(10)"";:RETURN
519 PRINT SPC(7)"";:RETURN
520 PRINT SPC(11)"";:RETURN
521 PRINT SPC(12)"";:RETURN
522 PRINT SPC(11)"";:RETURN
523 PRINT SPC(9)"";:RETURN
524 PRINT SPC(7)"";:RETURN
525 PRINT SPC(7)"";:RETURN
526 PRINT SPC(12)"";:RETURN
527 PRINT SPC(16)"";:RETURN
528 PRINT SPC(19)"";:RETURN
529 PRINT SPC(21)"";:RETURN
550 ON B GOSUB 555,556,557,558,559,560,561,562,563,564,565,555
551 B=B+1:IF B=12 THEN B=1:Z=FN Z(X)
552 RETURN
555 PRINT SPC(23);:RETURN
556 PRINT SPC(22)"";:RETURN
557 PRINT SPC(22)"";:RETURN
558 PRINT SPC(21)" ";:RETURN
559 PRINT SPC(17)" ";:RETURN
560 PRINT SPC(15)""CHR$(191)"";:RETURN
561 PRINT SPC(15)""CHR$(142)"";:RETURN
562 PRINT SPC(17)" ";:RETURN
563 PRINT SPC(21)" ";:RETURN
564 PRINT SPC(22)"";:RETURN
565 PRINT SPC(22)"";:RETURN
600 ON B GOSUB 605,606,607,608,609,610,611,612,613,614,615,616,617,618,619
601 IF B<15 THEN 603
602 ON B-15 GOSUB 620,621,622,623,624,625,605,605
603 B=B+1:IF B=23 THEN B=1:Z=2
604 RETURN
605 PRINT SPC(23);:RETURN
606 PRINT CHR$(191)SPC(21)"";:RETURN
607 PRINT ""CHR$(191)SPC(13)"";:RETURN
608 PRINT ""CHR$(191)SPC(11)"";:RETURN
609 PRINT ""CHR$(191)SPC(8)"";:RETURN
610 PRINT "";:RETURN
611 PRINT "";:RETURN
612 PRINT "";:RETURN
613 PRINT ""CHR$(142)SPC(8)"";:RETURN
614 PRINT ""CHR$(142)SPC(8)"";:RETURN
615 PRINT ""SPC(9)"";:RETURN
616 PRINT ""CHR$(191)SPC(8)"";:RETURN
617 PRINT " ";:RETURN
618 PRINT ""CHR$(191)SPC(7)"";:RETURN
619 PRINT ""CHR$(191)" ";:RETURN
620 PRINT " ";:RETURN
621 PRINT ""CHR$(127)" ";:RETURN
622 PRINT ""CHR$(142)" ";:RETURN
623 PRINT " ";:RETURN
624 PRINT ""CHR$(142)SPC(8)"";:RETURN
625 PRINT ""SPC(22);:RETURN
650 ON B GOSUB 655,656,657,658,659,660,661,662,663,664,665,665
652 B=B+1:IF B=12 THEN B=1:Z=FN Z(X)
653 RETURN
655 PRINT SPC(HS)" "SPC(18-HS);:RETURN
656 PRINT SPC(HS)" "SPC(18-HS);:RETURN
657 PRINT SPC(HS)" "SPC(18-HS);:RETURN
658 PRINT SPC(HS)""SPC(18-HS);:RETURN
659 PRINT SPC(HS)""SPC(18-HS);:RETURN
660 PRINT SPC(HS)""CHR$(142)""SPC(18-HS);:RETURN
661 PRINT SPC(HS)" "SPC(18-HS);:RETURN
662 PRINT SPC(HS)" "SPC(18-HS);:RETURN
663 PRINT SPC(HS)" "SPC(18-HS);:RETURN
664 PRINT SPC(HS)" "CHR$(142)" "SPC(18-HS);:RETURN
665 PRINT SPC(23);:RETURN
1000 REM FLUGZEUG-LEFT
1010 DATA "2A00303E2006052B112800BE280521043036011910F5"
1020 DATA "2102303E26BEC8342A0030545D1BED5300303E05010800EDB011200019545D"
1030 DATA "1B3D20F12A003011080019112800060536201910FBC9"
1040 REM FLUGZEUG-RIGHT
1050 DATA "2A0030110800193E200605112800BE280521043036011910F5"
1060 DATA "2102303E08BEC8352A00302322003011060019545D133E05010800EDB811"
1070 DATA "300019545D133D20F12A00302B112800060536201910FBC9"
1080 REM FLUGZEUG-DOWN
1090 DATA "2A003011C800193E200608BE280521043036012310F5"
1100 DATA "2103303E12BEC8342A003011280019220030191919E519EBE13E06010800EDB037"
1110 DATA "112F00ED52E511280019EBE13D20EB2A0030112800A7ED52060836202310FBC9"
1120 REM FLUGZEUG-UP
1130 DATA "2103303E01BEC8E52A003011270037ED523E200608BE280521043036012310F5"
1140 DATA "E1352A003011270037ED52220030545D012800093E05010800"
1150 DATA "EDB001200009EB09EB3D20F10608EB36202310FBC9"
1160 REM FIRE
1170 DATA "2A0030117D00193EF8BEC82A003011A70019E53A0230D607470E003E20BE20040C"
1180 DATA "2310F9413EFFBE280104E1E5C536C52310FB2A0030117D001935C1E1362023C506"
1190 DATA "FF000010FCC110F3C9"
1200 REM LEFTSCROLL
1210 DATA "2128EC1127EC019803EDB00617214FEC11280036201910FB2A00302B"
1220 DATA "22003021023034","CD70300E12112702CD0500C9
1230 REM BOMBE
1240 DATA "2A003011A200193E97BEC03A0230D602471128003E2077237719BE"
1250 DATA "201C23BE201836A62B3697C5E5D56B62010010EDB0D1E1C110E1"
1260 DATA "772377C93EFFBEC83620C9"
1270 REM KAMPFSTATION
1280 DATA "2107303614214AEF0123003EC4EDB1AFB9200D2107303E06BEC8772192ED18"
1290 DATA "E8E5C5117A0037ED52E5112400D9210000110000D906050E057ED95F19D90D"
1300 DATA "28032318F51910F0D911340B37ED522821E111240006050E0536200D280323"
1310 DATA "18F81910F32A05","3011640019220530C1E1189AE1C1E1E5C52BE511270021"
1320 DATA "073046E1E53E200E0037ED52BE20090C10F7E1C1E1C3D332E1E541C536C637"
1330 DATA "ED5236C4E5D5C5626B010008EDB0C1D1E110EA2104303601C1E1362037ED52"
1340 DATA "10F9C1E1C3D332"
1350 REM EXPLOSION
1360 DATA "2100EC","1101EC","01C00336FFEDB0C9"
1370 REM CLS
1380 DATA "2100EC","1101EC","01C0033620EDB0C9"
1390 REM TEST-BODENSTATION
1400 DATA "2176EF011E003E9FEDB1AFB9C8E5C5111D0137ED52E5D9110000210000D911"
1410 DATA "1F0006080E0A7ED95F19D90D28032318F51910F0D911111B37ED522005E1C1"
1420 DATA "E118C5E1111F0006080E0A36200D28032318F81910F32A053011C800192205"
1430 DATA "30C1E118A4"
1440 REM RAKETENSCROLL
1450 DATA "2129EC1102000613C50126003E9EEDB1AFB9200519C110F0C9E5C5D5115100"
1460 DATA "37ED52E5D9210000110000D911260006070E037ED95F19D90D28032318F519"
1470 DATA "10F0D9E511CA0BA7ED52201BE1E1DB82E61F200E000000000000000011F100"
1480 DATA "1936C6D1C1E118","A7E111700CA7ED52281FE111260006070E0336200D28"
1490 DATA "032318F81910F32A05301132001922053018D3E10607E511270037ED52EBE1"
1500 DATA "C5EDA0EDA0EDA0C11125001910E9A7ED5206032B362010FB18D8"
1510 REM RAKETENTEST
1520 DATA "2A003001A000091100000608AF863001142310F95FEB112304A7ED52"
1530 DATA "C819112603A7ED52C821043036012100EC0128003E9DEDB1AFB9C82A05301132"
1531 DATA "00A7ED52220530C9"
1540 REM BLITZ
1550 DATA "21F0EC0128003E7FEDB1AFB9C8E5C51128002B19E506053E20BE2807210430"
1560 DATA "360118031910F3E1E53E98083E9B060577081910FB545D010010EDB0E10605"
1570 DATA "11280036201910FBC1E118BC"
1571 REM SCROLL-HELI
1572 DATA "E5D5C5A728243E05E5112800A7ED52EBE1010A00EDB03D2806111E001918E9"
1573 DATA "060A2B362010FBC1D1E1C9E511A000193E05E511280019EBE1010A00EDB011"
1574 DATA "3200A7ED523D20EBE1060A36202310FB18D6"
1575 REM FLATTERN-HELI
1576 DATA "212BEC110A000612C5011E003EA1EDB1AFB92005C11910F0C9E5D5C5112C00"
1577 DATA "37ED52E5D9210000110000D90605111F000E0A7ED95F19D90D28032318F519"
1578 DATA "10F0D9E511AA1DA7ED522016E1E1060936A02310FB110500A7ED5236A4C1D1"
1579 DATA "E118ACE1115C1B"
1580 DATA "A7ED52200AE1060936E22310FB18E8E111280001C800E5097EE1D6202013CD"
1581 DATA "4C3619C5D5E5545D010005EDB0E1D1C118E5111F0006053E200E0A770D2803"
1582 DATA "2318F91910F42A0530112C011922053018A7"
1583 REM FIGHT-HELI
1584 DATA "212BEC110A000612C5011E003EA1EDB1AFB92005C11910F0C9D9C1C53E1490"
1585 DATA "210330BE2813962FE680D9E5D9E1112C0037ED52CD4C36D918C3D9E5D9E111"
1586 DATA "7300192B3E20772B772BBE28EB36A0233694E5545D010005EDB0E118E9"
1594 H$="0123456789ABCDEF"
1595 FOR AF=12300 TO 14200 STEP 100
1600 READ A$,B$,C$:C$=A$+B$+C$
1610 IF AF<>13000 AND AF<>13100 AND AF<>13400 AND AF<>13500 AND AF<>14000 THEN 1630
1620 READ A$:C$=C$+A$
1630 PRINT "* ";
1640 FOR I=AF TO AF+LEN(C$)/2-1
1650 HW=INSTR(MID$(C$,2*(I-AF)+1,1),H$)*16+INSTR(MID$(C$,2*(I-AF)+2,1),H$)-17
1660 POKE I,HW:NEXT I,AF
1670 RETURN
3000 DOKE 12288,-4399:POKE 12290,38:POKE 12291,18:POKE 12292,0
3010 DOKE 12293,0
3020 PRINT AT(18,1);CHR$(191)+" "
3030 PRINT AT(19,1);" "
3040 PRINT AT(20,1);""
3050 PRINT AT(21,1);CHR$(191)+""
3060 PRINT AT(22,1);" "
3070 RETURN
5000 FOR I=1 TO 25
5010 CALL*30D4:CALL*3070:CALL*300C:CALL*3070:NEXT:CALL 13200
5020 FOR I=57 TO 48 STEP-1:POKE 13210,I
5030 CALL 13200:PAUSE 1:CALL 13300
5040 PAUSE 1
5050 BEEP:NEXT:GOSUB 7000
5055 PRINT AT(12,12);"NOCHEINMAL ?":A$=INKEY$
5060 S$=INKEY$:IF S$=""THEN 5060
5070 IF S$<>"J"THEN WINDOW:END
5080 IF DEEK(12293)>HI THEN HI=DEEK(12293)
5090 RETURN
7000 DATA 172,.5,162,.5,144,1,172,1,172,1,172,1,193,1,193,.5
7010 DATA 172,.5,162,1,193,1,193,.5,128,.5,144,2,172,.5,162,.5
7020 DATA 144,1,172,1,172,1,172,1,193,1,193,.5,172,.5,162,1
7030 DATA 229,1,229,1,216,2
7040 RESTORE 7000
7050 OUT 136,128:T=300
7060 FOR I=1 TO 27
7070 READ H,L
7080 IF H=0 THEN 7100
7090 IF H>0 THEN OUT 128,7:OUT 128,H:ELSE OUT 128,39:OUT 128,-H
7100 FOR QQ=1 TO L*T:NEXT:OUT 128,3
7110 NEXT
7120 OUT 136,0:RETURN
10000 WINDOW:CLS:PRINT AT(0,0);" "
10010 GOSUB 3000
10020 FOR I=1 TO 17:CALL*3070:CALL*3138:PAUSE 2:NEXT
10030 FOR I=1 TO 20:CALL*300C:PAUSE 2:NEXT
10040 FOR I=1 TO 8:CALL*3070:CALL*30D4:PAUSE 2:NEXT
10050 FOR I=1 TO 8:BEEP:CALL*319C:CALL*3138:PAUSE 2:NEXT:CALL 12900:BEEP
10060 S$=INKEY$:IF S$=""THEN 10060:ELSE RETURN