--- title: "Mixed Game Bag 1" id: 51918 type: "computer_media" slug: "mixed-game-bag-1" url: "http://localhost/computer_media/mixed-game-bag-1/" markdown_url: "http://localhost/computer_media/mixed-game-bag-1.md" published_at: "2023-08-16T01:42:21+00:00" modified_at: "2026-04-04T20:17:54+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Three games in one package — Bingo caller, ten-pin bowling simulator, and a sci-fi Mastermind clone — each with animated graphics and machine code routines." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "Timex Computer Corporation" slug: "timex-computer-corporation" taxonomy: "post_tag" url: "http://localhost/tag/timex-computer-corporation/" - name: "TS 1000" slug: "ts1000" taxonomy: "post_tag" url: "http://localhost/tag/ts1000/" model: - name: "Timex/Sinclair 1000" slug: "ts-1000" taxonomy: "model" url: "http://localhost/model/ts-1000/" genre: - name: "Game" slug: "game" taxonomy: "genre" url: "http://localhost/type/game/" media_type: "Cassette" download_url: "https://archive.org/download/timex-sinclair-software-archive/MixedGameBag1 (1982)(Timex)(US)(TS1000)(Cassette).zip" mediadate: "1982" producer_company: - id: 11401 title: "Timex Computer Corporation" type: "company" url: "http://localhost/company/timex-computer-corporation/" related_products: - id: 14348 title: "Mixed Game Bag I" type: "product" url: "http://localhost/product/the-mixed-game-bag-1/" media_type_tags: "Game" --- This cassette contains three separate BASIC programs: a Bingo number caller, a ten-pin bowling simulator called “TS-BOWL,” and a number-guessing game called “Robot War.” The Bingo program generates a randomized shuffle of 75 numbers using a rejection-sampling DIM array technique, then displays each ball drawn with its correct B-I-N-G-O column letter and position on a visual card layout, accepting “BINGO” as keyboard input to reset. TS-BOWL simulates a full ten-frame bowling game using PLOT/UNPLOT for pin graphics and CHR$ 128 for the moving ball, tracking strikes, spares, and fill balls with an array of score and mark variables. Robot War is a Mastermind-style digit-guessing game with a science-fiction narrative framing, using STR$/VAL string-slicing to decompose 4-digit numbers into individual digits for correct-digit and correct-position scoring, along with machine code calls via USR for sound and animation effects. *** ## Program Analysis This listing is a compilation of three independent BASIC programs stored on a single cassette. They share no runtime state but do share some structural idioms. Each program is analyzed in turn below. ### Program 1: Bingo Number Caller The Bingo program occupies lines 100–8099 (the line 100 REM is a garbled autostart header artifact). The logical entry point is line 300, which chains three subroutines: the machine code initializer at 8000, the shuffle routine at 2000, and the display loop at 2100. ### Bingo — Shuffle Routine (lines 2000–2099) The shuffle uses a dual-array rejection sampler. `A(75)` holds the output sequence; `Q(75)` acts as a presence bitmap — `Q(X)=X` marks slot `X` as taken. For each position `N`, a random `X` in 1–75 is drawn; if `Q(X)=X` the slot is occupied and the loop retries at 2022. Otherwise, at line 2040 a linear scan of `A(1..N)` re-checks uniqueness (lines 2030–2040 are actually bypassed by the unconditional `GOTO 2050` at line 2027 — making the secondary scan dead code). The presence-flag check at 2025 is therefore the sole duplicate guard, and the dead secondary loop is a latent bug that goes unexercised. ### Bingo — Call Display (lines 2100–2199) Each number is mapped to its B-I-N-G-O letter via a cascade of `IF A(N)28` the ball has reached the pins and control passes to subroutine 800. ### TS-BOWL — Pin-Knock Subroutines (lines 1100–1899) Eight subroutines (one per landing row 8–14, plus 1100 for a strike on row 11) each `UNPLOT` specific pin coordinates and add pin-count increments to `S(Q)`. Second-ball logic (when `J=2`) corrects for double-counting pins already knocked: each subroutine stores the last landing row in a dedicated variable (`W`, `R`, `H`, `B`, `M`, `O`, `U`, `F`) and subtracts the overlap if the second ball lands at a related position. This is a hand-coded pin-adjacency model rather than a true collision simulation. ### TS-BOWL — Scoring (lines 2000–3999) Scoring follows standard ten-pin rules. Arrays `S(20)` (raw pin counts), `E(20)` (cumulative scores), `M$(20)` (marks: `[X]`=strike, `[/]`=spare, =open), and `I(20)` (fill ball counts displayed in the “FILL” column) are maintained. Bonus propagation for spares and strikes is spread across subroutines 2000 and 3000, which run at ball-end and frame-end respectively. The 10th-frame logic handles up to three virtual frames (`Q` reaching 12 or 13) via special-casing in lines 5000–5110 and 7005–7006. ### TS-BOWL — Notable Anomalies - Lines 7056 and 7059 are identical — the `GOTO 7060` skip at 7058 has no effect since both branches print the same thing. - The empty `FOR N=1 TO 20: NEXT N` at lines 6010–6030 in the intro is a busy-wait delay with no `PAUSE`. - Line 495: `IF Q=12 AND J=2 THEN GOTO 7000` — this ends the game mid-second-ball of the 12th virtual frame, which is correct for a double-strike 10th frame scenario. ### Program 3: Robot War Robot War is a Mastermind-style game in which the player guesses a 4-digit secret number generated by the computer. It is framed as a science-fiction battle between programmed robots. ### Robot War — Number Decomposition Both the player’s guess `N` and the computer’s secret `KT` are decomposed into digit arrays using `STR$` and slice-notation `VAL N$(H TO H)` in subroutines 7500 and 7600. Player digits go into `Q(1..4)`; secret digits into `S(1..4)`. This avoids repeated integer division and is a clean string-based decomposition idiom. ### Robot War — Scoring Logic (lines 1600–1799) Scoring uses a two-pass algorithm. The first pass (lines 1610–1620) finds exact matches (correct digit, correct position), incrementing both `A1` (correct digits) and `A2` (in-sequence), and marking matched secret slots in `G(H)`. The second pass (subroutine 1700) finds digits present but misplaced: for each player digit not already an exact match, it scans unmatched secret slots; a match increments `A1` only and marks the slot used. This correctly implements the classic Mastermind scoring without double-counting. ### Robot War — Machine Code and Sound Subroutine 1000 calls `USR 16608`, which is the standard ZX81 initialization entry point used here likely to trigger a display or sound effect. Subroutines 500/530 and 600 use sequences of `POKE` into the 16650–16725 range followed by `USR` calls to drive machine code routines for robot animation (flashing limbs) and laser sound effects. `S1` and `S2` are parameters POKEd into the sound routine at 16722 and 16715. ### Robot War — Game Flow and Loss Conditions The game allows 10 rounds (`R` up to 10). After each round, `A2` (exact matches) is compared against `G2` (previous round’s exact matches): if the score drops by two or more, subroutine 1500 (the “destroy” explosion sequence) fires immediately. An exact match (`N=KT`) or round 10 also triggers 1500, which displays either a victory or defeat message. The explosion is rendered with concentric rings of `[*]` characters and a machine code sound call. ### Shared Idioms Across All Three Programs - Machine code via `USR` with preceding `POKE` sequences is used in all three programs for sound/animation. - Dead-end utility routines at high line numbers (200–260, 9010–9060) for direct memory POKEing appear in programs 1 and 3 — these are developer debug tools left in the listing. - `FAST`/`SLOW` mode switching is used strategically: array initialization runs in FAST, display loops in SLOW. - All three programs use `INPUT Y$` as a simple press-ENTER-to-continue pause. ### Line Number Summary | Program | Line Range | Key Subroutines | | --- | --- | --- | | Bingo | 100–8099 | 2000 (shuffle), 2100 (call loop), 8000 (intro) | | TS-BOWL | 10–8000 | 800 (pin hit), 1000 (score calc), 2000 (mark/bonus), 6000 (intro), 7000 (game over) | | Robot War | 10–9060 | 1277 (digit split), 1600 (score), 1700 (misplace scan), 1500 (explosion), 7500/7600 (STR$ decompose) | ## Source Code ``` 100 REM E£RND7▘#▘ GOSUB #Q█TAN E£RND7▘#▘ GOSUB #▞?Q█F▌TAB [1]RNDE£RND7▘#▘ GOSUB #▞?Q█7▌TAB [J]RNDTAN E£RND7▘E▘ GOSUB #▞?Q█7▌TAB INT RNDTAN :-E£RND7)5 ▞4 GOSUB #6 COPYRNDQ█7▌TAB LIST RNDE COPYRND$TAB DIM RNDTAN <# E£RND7▘? )5 GOSUB #:+ GOSUB #Q█$TAB /INKEY$ TAN ▌#▞ ▘ GOSUB #£RND< GOSUB #WINKEY$ Y▞MYINKEY$ Y-MRNDINKEY$ Y▌MINKEY$ INKEY$ GOSUB #YINKEY$ 5#INKEY$ GOSUB [K]UINKEY$ INKEY$ XTAB #INKEY$ EWINKEY$ )5 GOSUB #6WINKEY$ FOR URNDINKEY$ XMRNDINKEY$ W#▌TAB #INKEY$ TAN 150 GOTO 270 200 INPUT A 220 INPUT B 230 PRINT B 240 POKE A,B 250 LET A=A+1 260 GOTO 220 300 GOSUB 8000 340 GOSUB 2000 360 GOSUB 2100 370 PRINT AT 20,2;"ALL NUMBERS USED**************" 999 STOP 1000 REM 1010 POKE 16625,128 1020 LET C=USR 16608 1099 RETURN 2000 REM 2005 FAST 2010 DIM A(75) 2012 DIM Q(75) 2020 FOR N=1 TO 75 2022 LET X=INT (RND*75)+1 2025 IF Q(X)=X THEN GOTO 2022 2027 GOTO 2050 2030 FOR J=1 TO N 2035 IF X=A(J) THEN GOTO 2022 2040 NEXT J 2050 LET A(N)=X 2052 LET Q(X)=X 2055 NEXT N 2080 SLOW 2099 RETURN 2100 REM 2110 GOSUB 1000 2112 PRINT AT 1,6;"BINGO NUMBERS CALLED" 2120 PRINT AT 3,6;"[B]";AT 3,11;"[I]";AT 3,16;"[N]";AT 3,21;"[G]";AT 3,26;"[O]" 2140 FOR N=1 TO 75 2145 IF A(N)<76 THEN LET B$="O" 2147 IF A(N)<61 THEN LET B$="G" 2149 IF A(N)<46 THEN LET B$="N" 2152 IF A(N)<31 THEN LET B$="I" 2154 IF A(N)<16 THEN LET B$="B" 2160 PRINT AT 21,2;"[U][N][D][E][R]█[T][H][E]█";B$;" ";A(N) 2162 IF B$="B" THEN LET K=5 2164 IF B$="N" THEN LET K=15 2166 IF B$="I" THEN LET K=10 2168 IF B$="G" THEN LET K=20 2170 IF B$="O" THEN LET K=25 2172 IF K=5 THEN LET D=A(N)+4 2174 IF K=10 THEN LET D=A(N)-11 2176 IF K=15 THEN LET D=A(N)-26 2178 IF K=20 THEN LET D=A(N)-41 2179 IF K=25 THEN LET D=A(N)-56 2180 PRINT AT D,K;A(N) 2185 INPUT Y$ 2186 IF Y$="BINGO" THEN RUN 2187 PRINT AT 21,2;"█████████████████████████" 2190 NEXT N 2199 RETURN 8000 REM 8010 GOSUB 1000 8020 PRINT AT 2,14;"BINGO" 8030 PRINT AT 3,9;"NUMBER GENERATOR" 8032 PRINT AT 5,2;"IT TAKES 30 SECONDS FOR SETUP" 8034 PRINT AT 7,2;"WHEN BINGO IS CONFIRMED..." 8035 PRINT AT 8,2;"ENTER BINGO" 8036 PRINT AT 9,2;"OTHERWISE JUST HIT ENTER KEY" 8038 PRINT AT 10,2;"TO CONTINUE WITH GAME" 8040 PRINT AT 20,2;"PRESS ENTER WHEN READY" 8042 INPUT Y$ 8099 RETURN 10 REM "BOWL" 30 GOSUB 6000 50 DIM S(20) 60 DIM M$(20) 62 DIM I(20) 64 DIM E(20) 73 LET K=1 74 LET T=0 75 LET R=0 76 LET W=0 77 LET H=0 78 LET U=0 79 LET O=0 80 LET Q=0 81 LET M=0 82 LET B=0 83 LET F=0 84 GOSUB 220 90 SLOW 91 LET Q=Q+1 92 IF Q=1 THEN GOTO 110 93 GOSUB 3000 94 IF Q>=11 THEN GOTO 5000 95 PRINT AT 0,0;"FRAME";AT 0,6;"SCORE";AT 0,12;"MARK";AT 0,17;"FILL" 96 IF Q<4 THEN LET A=1 97 IF Q>=4 THEN LET A=Q-3 98 FOR N=A TO Q-1 100 LET P=N-1 102 IF N>=6 THEN LET P=10+N 103 PRINT AT P+1,0;" ";N;AT P+1,6;E(N);AT P+1,13;M$(N);AT P+1,18;I(N) 105 NEXT N 110 PRINT AT 0,0;"FRAME";AT 0,6;"SCORE";AT 0,12;"MARK";AT 0,17;"FILL" 112 PRINT AT 10,10;" " 115 PLOT 50,20 120 PLOT 52,22 130 PLOT 52,18 140 PLOT 54,16 150 PLOT 54,24 160 PLOT 54,20 170 PLOT 56,14 180 PLOT 56,26 190 PLOT 56,18 200 PLOT 56,22 201 GOTO 280 220 FOR N=0 TO 63 240 PLOT N,12 250 PLOT N,28 260 NEXT N 263 PRINT AT 7,15;"X" 264 PRINT AT 15,15;"X" 269 RETURN 280 LET Y=INT (RND*7+1)+7 282 IF Y=11 THEN LET Y=8 285 IF Y>14 THEN LET Y=14 290 IF Y=8 OR Y=10 OR Y=12 OR Y=14 THEN LET X=2 295 IF Y=9 OR Y=11 OR Y=13 THEN LET X=1 400 PRINT AT Y,X;CHR$ 128 420 SLOW 490 FOR J=1 TO 2 495 IF Q=12 AND J=2 THEN GOTO 7000 497 IF M$(10)="[/]" AND M$(11)="[X]" THEN GOTO 7000 500 LET A$=INKEY$ 505 PRINT AT Y,X;CHR$ 0 510 IF A$="" THEN LET X=X+1 512 IF X>28 THEN GOTO 640 513 IF X>15 THEN GOTO 530 515 IF A$="7" THEN LET Y=Y-1 520 IF A$="6" THEN LET Y=Y+1 530 LET X=X+1 610 PRINT AT Y,X;CHR$ 128 620 GOTO 500 640 GOSUB 800 641 IF M$(Q)="[X]" THEN GOTO 652 642 LET Y=INT (RND*7+1)+7 643 IF Y>14 THEN LET Y=14 644 IF Y=8 OR Y=10 OR Y=12 OR Y=14 THEN LET X=2 645 IF Y=9 OR Y=11 OR Y=13 THEN LET X=1 648 IF K=2 AND M$(10)<>"[X]" THEN GOTO 7000 649 REM 650 NEXT J 652 LET H=0 653 LET R=0 654 LET U=0 655 LET O=0 656 LET B=0 657 LET M=0 658 LET F=0 659 LET W=0 660 IF M$(10)="[/]" AND M$(11)="[X]" THEN GOTO 7000 680 GOTO 90 800 REM 802 LET V=INT (RND*10) 803 REM LET V=7 804 REM LET Y=11 805 IF V<>5 AND Y=11 AND J=1 THEN GOSUB 1100 809 IF V<>5 AND Y=11 AND J=1 THEN RETURN 830 IF Y=8 THEN GOSUB 1200 832 IF Y=9 THEN GOSUB 1300 834 IF Y=10 THEN GOSUB 1400 835 IF Y=11 THEN GOSUB 1500 836 IF Y=12 THEN GOSUB 1600 837 IF Y=13 THEN GOSUB 1700 838 IF Y=14 THEN GOSUB 1800 840 GOSUB 2000 860 RETURN 1000 REM 1005 LET N=Q-4 1007 IF N<2 THEN LET N=2 1010 LET E(1)=S(1) 1020 FOR D=N TO Q 1030 LET E(D)=E(D-1)+S(D) 1040 NEXT D 1099 RETURN 1100 REM 1105 LET S(Q)=S(Q)+10 1110 UNPLOT 50,20 1112 UNPLOT 52,22 1114 UNPLOT 52,18 1116 UNPLOT 54,20 1118 UNPLOT 54,16 1120 UNPLOT 54,24 1122 UNPLOT 54,20 1124 UNPLOT 56,14 1126 UNPLOT 56,18 1128 UNPLOT 56,22 1129 UNPLOT 56,26 1130 PRINT AT 10,10;"[S][T][R][I][K][E]" 1132 GOSUB 2000 1140 RETURN 1200 REM 1202 UNPLOT 56,26 1208 LET S(Q)=S(Q)+1 1210 IF J=2 AND W=Y THEN LET S(Q)=S(Q)-1 1212 LET W=Y 1214 LET F=Y 1215 IF J=2 AND R-2=Y THEN LET S(Q)=S(Q)-1 1216 IF J=2 AND H-1=Y THEN LET S(Q)=S(Q)-1 1218 IF J=2 AND B-3=Y THEN LET S(Q)=S(Q)-1 1299 RETURN 1300 REM 1302 UNPLOT 54,24 1304 UNPLOT 56,26 1306 UNPLOT 56,22 1308 LET S(Q)=S(Q)+3 1310 IF J=2 AND W=Y THEN LET S(Q)=S(Q)-3 1311 IF J=2 AND F+1=Y THEN LET S(Q)=S(Q)-1 1312 LET W=Y 1314 LET H=Y 1315 IF J=2 AND R-1=Y THEN LET S(Q)=S(Q)-3 1317 IF J=2 AND B-2=Y THEN LET S(Q)=S(Q)-2 1399 RETURN 1400 REM 1402 UNPLOT 52,22 1404 UNPLOT 56,22 1405 UNPLOT 54,24 1406 UNPLOT 56,26 1409 LET S(Q)=S(Q)+4 1410 IF J=2 AND W=Y THEN LET S(Q)=S(Q)-4 1412 LET W=Y 1414 IF J=2 AND H+1=Y THEN LET S(Q)=S(Q)-4 1416 IF J=2 AND F+2=Y THEN LET S(Q)=S(Q)-1 1417 IF J=2 AND B-1=Y THEN LET S(Q)=S(Q)-3 1418 LET R=Y 1499 RETURN 1500 REM 1502 UNPLOT 50,20 1503 UNPLOT 52,22 1504 UNPLOT 54,20 1506 UNPLOT 54,24 1507 UNPLOT 56,26 1508 UNPLOT 56,22 1509 LET S(Q)=S(Q)+6 1510 IF J=2 AND W=Y THEN LET S(Q)=S(Q)-6 1512 LET W=Y 1513 LET B=Y 1514 IF J=2 AND R+1=Y THEN LET S(Q)=S(Q)-4 1516 IF J=2 AND F+3=Y THEN LET S(Q)=S(Q)-1 1517 IF J=2 AND H+2=Y THEN LET S(Q)=S(Q)-2 1518 IF J=2 AND M-1=Y THEN LET S(Q)=S(Q)-1 1599 RETURN 1600 REM 1602 UNPLOT 52,18 1603 UNPLOT 54,16 1604 UNPLOT 56,18 1605 UNPLOT 56,14 1606 UNPLOT 54,20 1607 LET S(Q)=S(Q)+5 1610 IF J=2 AND W=Y THEN LET S(Q)=S(Q)-5 1612 LET W=Y 1613 LET M=Y 1614 IF J=2 AND O-1=Y THEN LET S(Q)=S(Q)-3 1616 IF J=2 AND U-2=Y THEN LET S(Q)=S(Q)-1 1618 IF J=2 AND B+1=Y THEN LET S(Q)=S(Q)-1 1699 RETURN 1700 REM 1702 UNPLOT 54,16 1703 UNPLOT 56,14 1704 UNPLOT 56,18 1705 LET S(Q)=S(Q)+3 1710 IF J=2 AND W=Y THEN LET S(Q)=S(Q)-3 1712 LET W=Y 1714 IF J=2 AND U-1=Y THEN LET S(Q)=S(Q)-1 1715 IF J=2 AND M+1=Y THEN LET S(Q)=S(Q)-3 1716 LET O=Y 1799 RETURN 1800 REM 1802 UNPLOT 56,14 1805 LET S(Q)=S(Q)+1 1810 IF J=2 AND W=Y THEN LET S(Q)=S(Q)-1 1812 LET W=Y 1814 LET U=Y 1815 IF J=2 AND O+1=Y THEN LET S(Q)=S(Q)-1 1817 IF J=2 AND M+2=Y THEN LET S(Q)=S(Q)-1 1899 RETURN 2000 REM 2002 LET T=0 2004 IF J=1 AND S(Q)=10 THEN LET M$(Q)="[X]" 2006 IF J=2 AND S(Q)=10 THEN LET M$(Q)="[/]" 2007 IF Q=1 THEN GOTO 2100 2008 IF Q=12 THEN GOTO 2060 2010 IF M$(10)="[/]" AND Q>10 THEN LET S(10)=S(10)+S(Q) 2011 IF M$(10)="[/]" AND Q>10 THEN LET I(10)=I(10)+S(Q) 2014 IF M$(10)="[/]" AND Q>10 THEN RETURN 2040 IF M$(Q-1)="[/]" AND J=1 THEN LET S(Q-1)=S(Q-1)+S(Q) 2042 IF M$(Q-1)="[/]" AND J=1 THEN LET I(Q-1)=I(Q-1)+S(Q) 2050 IF Q<3 THEN GOTO 2100 2060 IF M$(Q-2)="[X]" AND M$(Q-1)="[X]" AND (M$(Q)=" " OR M$(Q)="[/]") AND J=1 THEN LET S(Q-2)=S(Q-2)+S(Q) 2065 IF M$(Q-2)="[X]" AND M$(Q-1)="[X]" AND (M$(Q)=" " OR M$(Q)="[/]") AND J=1 THEN LET I(Q-2)=I(Q-2)+S(Q) 2100 RETURN 3000 REM 3003 IF Q=13 THEN GOTO 3530 3005 IF Q<3 THEN GOTO 3500 3010 IF M$(Q-2)="[X]" AND (M$(Q-1)=" " OR M$(Q-1)="[/]") THEN LET S(Q-2)=S(Q-2)+S(Q-1) 3020 IF M$(Q-2)="[X]" AND (M$(Q-1)=" " OR M$(Q-1)="[/]") THEN LET I(Q-2)=I(Q-2)+S(Q-1) 3040 IF M$(Q-2)="[X]" AND M$(Q-1)="[X]" THEN LET S(Q-2)=S(Q-2)+S(Q-1) 3060 IF M$(Q-2)="[X]" AND M$(Q-1)="[X]" THEN LET I(Q-2)=I(Q-2)+S(Q-1) 3500 REM 3510 IF Q<4 THEN GOTO 3800 3530 IF M$(Q-3)="[X]" AND M$(Q-2)="[X]" AND M$(Q-1)="[X]" THEN LET S(Q-3)=S(Q-3)+S(Q-1) 3540 IF M$(Q-3)="[X]" AND M$(Q-2)="[X]" AND M$(Q-1)="[X]" THEN LET I(Q-3)=I(Q-3)+S(Q-1) 3800 REM 3810 GOSUB 1000 3999 RETURN 5000 REM 5005 LET T=0 5010 LET K=K+1 5012 IF Q=13 THEN GOTO 7000 5015 IF M$(Q-1)="[X]" THEN GOTO 5050 5020 IF K>=3 THEN GOTO 7000 5040 IF M$(10)=" " THEN GOTO 7000 5070 IF M$(10)="[X]" THEN GOTO 110 5090 IF M$(10)="[/]" THEN LET K=2 5110 IF M$(10)="[/]" THEN GOTO 110 5999 STOP 6000 REM 6002 CLS 6004 PRINT AT 10,11;"[T]S[-][B][O][W][L]" 6010 FOR N=1 TO 20 6030 NEXT N 6040 CLS 6050 PRINT "WELCOME TO [T]S[-][B][O][W][L] " 6052 FOR N=1 TO 5 6054 PRINT 6056 NEXT N 6058 PRINT "YOU WILL BOWL 10 FRAMES" 6060 PRINT 6062 PRINT "THE BALL-- █ IS CONTROLLED" 6064 PRINT "BY THE 6 AND 7 ARROW KEYS" 6066 PRINT "WITHOUT HOLDING DOWN THE " 6068 PRINT "SHIFT KEY" 6070 PRINT 6072 PRINT "ARE YOU READY ? Y/N" 6074 INPUT B$ 6076 IF B$="N" THEN GOTO 6040 6078 PRINT 6080 PRINT "HERE WE GO--GOOD LUCK" 6082 FOR N=1 TO 5 6084 NEXT N 6086 CLS 6999 RETURN 7000 REM 7005 IF Q=13 THEN LET S(10)=10+S(11)+S(12) 7006 IF Q=13 THEN LET I(10)=S(11)+S(12) 7010 FAST 7020 LET T=0 7030 PRINT AT 10,10;"[G][A][M][E] [O][V][E][R]" 7035 GOSUB 1000 7040 FOR N=1 TO 10 7050 LET T=T+S(N) 7052 LET P=N-1 7054 IF N>=6 THEN LET P=9+N 7055 IF N=10 THEN GOTO 7059 7056 PRINT AT P+1,0;" ";N;AT P+1,6;E(N);AT P+1,13;M$(N);AT P+1,18;I(N) 7058 GOTO 7060 7059 PRINT AT P+1,0;" ";N;AT P+1,6;E(N);AT P+1,13;M$(N);AT P+1,18;I(N) 7060 NEXT N 7080 PRINT AT 13,2;"[S][C][O][R][E]= ";T 7090 PRINT AT 14,10;"[G][O]--[A][G][A][I][N] ? Y/N" 7095 INPUT B$ 7096 IF B$="N" THEN GOTO 7999 7098 CLS 7099 SLOW 7100 GOTO 50 7999 SLOW 8000 STOP 10 REM Y█▞~~:£A #ACS 9ACS 9ACS 9ACS 9ACS 9ACS =#- ;#; GOSUB #£RND;)▘ ;##TAN :-E£RND7)5 ▞4 GOSUB #6 COPYRNDQ█7▌TAB LIST RNDE COPYRND$TAB DIM RNDTAN [G]# Y█▞,,::LN [▒]RND▖LN [▒]RNDY█▌LN [▒]RND▖# RETURN,COS Y█/ REM TAN Y█▞-:"LN [▒]RND▌LN [▒]RNDY█▖LN [▒]RND▌# RETURN▌COS Y█/ REM TAN Y▒▞*:?LN [▒]RND$# RETURN▒COS Y▒/ POKE TAN 170 DIM Q(4) 172 DIM S(4) 174 DIM G(4) 183 RAND 185 SLOW 195 GOSUB 1000 197 POKE 16685,11 198 POKE 16655,14 200 PRINT AT 5,12;"[R][O][B][O][T]█[W][A][R]" 202 LET X=0 206 GOSUB 300 208 LET Y=0 210 GOSUB 400 212 LET S1=15 213 LET S2=8 215 GOSUB 600 218 FOR N=1 TO 5 220 GOSUB 500 225 GOSUB 530 230 NEXT N 231 LET J1=-20 232 LET J2=-20 233 LET J3=-20 234 LET J4=-20 235 LET G1=0 237 LET G2=0 240 GOTO 1100 299 STOP 300 PRINT AT 20-X,0;"[▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒][▒]" 310 PRINT AT 19-X,3;" █ " 315 PRINT AT 18-X,3;"▐█▐" 317 PRINT AT 17-X,3;"▐█▐" 319 PRINT AT 16-X,2;" " 321 PRINT AT 15-X,2;" " 323 PRINT AT 14-X,2;" " 325 PRINT AT 13-X,3;" " 327 PRINT AT 12-X,3;" " 329 PRINT AT 11-X,3;" " 332 PRINT AT 10-X,3;"[0][0]" 334 PRINT AT 9-X,3;"▟▟" 399 RETURN 400 PRINT AT 19-Y,26;"[▒]█[▒]" 415 PRINT AT 18-Y,26;"▌█▌" 417 PRINT AT 17-Y,26;"▌█▌" 419 PRINT AT 16-Y,26;"[▒][▒][▒][▒]" 421 PRINT AT 15-Y,26;"[▒][▒][▒][▒]" 423 PRINT AT 14-Y,26;"[▒][▒][▒][▒]" 425 PRINT AT 13-Y,27;"[▒][▒]" 427 PRINT AT 12-Y,27;"[▒][▒]" 429 PRINT AT 11-Y,27;"[▒][▒]" 431 PRINT AT 10-Y,27;"[0][0]" 433 PRINT AT 9-Y,27;"▟▟" 499 RETURN 500 REM 503 GOSUB 600 507 POKE 16651,131 509 POKE 16664,131 511 POKE 16675,131 513 LET C1=USR 16650 518 POKE 16651,128 520 POKE 16664,128 524 POKE 16675,128 526 LET C1=USR 16650 529 RETURN 530 REM 532 POKE 16681,138 534 POKE 16694,138 536 POKE 16705,138 540 LET C1=USR 16680 542 POKE 16681,128 544 POKE 16694,128 546 POKE 16705,128 550 LET C1=USR 16680 560 REM GOSUB 600 599 RETURN 600 REM 605 POKE 16711,0 607 POKE 16713,8 608 POKE 16722,S2 609 POKE 16725,0 610 POKE 16715,S1 611 LET C1=USR 16710 615 POKE 16711,8 619 POKE 16713,23 621 POKE 16725,8 624 LET C1=USR 16710 699 RETURN 1000 REM 1010 LET C1=USR 16608 1099 RETURN 1100 REM 1110 GOSUB 1000 1114 PRINT AT 2,2;"WELCOME TO THE YEAR ";INT (RND*100)+3000 1118 PRINT AT 5,2;"SINCE THE LAST GREAT WAR IN" 1120 PRINT AT 6,2;INT (RND*100)+2000 1124 PRINT AT 8,2;"ALL NEW POLITICAL BATTLES" 1126 PRINT AT 9,2;"HAVE BEEN FOUGHT WITH ROBOTS" 1130 PRINT AT 11,2;"....THE ROBOT WHICH WAS" 1132 PRINT AT 12,2;"PROGRAMMED THE BEST--WON" 1134 PRINT AT 14,2;"THE LOSING POWER WAS ENSLAVED" 1136 PRINT AT 20,2;"PRESS ENTER FOR NEXT PAGE" 1138 INPUT Y$ 1140 GOSUB 1000 1142 PRINT AT 2,2;"AS RULER OF FEDERATION-";INT (RND*30) 1144 PRINT AT 4,2;"I *DEMAGON* HAVE SELECTED YOU" 1146 PRINT AT 5,2;"TO PROGRAM OUR CHAMPION BELOW" 1147 LET X=0 1148 GOSUB 300 1149 PRINT AT 15,9;"OUR BOY" 1150 PRINT AT 20,2;"PRESS ENTER FOR NEXT PAGE" 1152 INPUT Y$ 1156 GOSUB 1000 1160 PRINT AT 2,2;"OUR ENEMY HAS THE UNDEFEATED" 1162 PRINT AT 4,2;"KORKON-";INT (RND*40);" READY TO GO" 1163 LET Y=0 1164 GOSUB 400 1166 PRINT AT 15,6;"BOOOOO..HISS" 1168 PRINT AT 10,12;"[C][O][M][E]█[O][N]█[D][U][M][M][Y]" 1170 FOR N=1 TO 50 1172 NEXT N 1174 GOSUB 1000 1178 PRINT AT 2,2;"...TO PROGRAM..." 1180 PRINT AT 4,2;"JUST ENTER A 4 DIGIT NO." 1182 PRINT AT 6,2;"GREATER THAN 999" 1185 PRINT AT 8,2;"...IF THAT NUMBER MATCHES" 1187 PRINT AT 9,2;"KORKONS --WE WIN" 1189 PRINT AT 12,2;"..AT THE END OF EACH ROUND" 1192 PRINT AT 13,2;"WE WILL BE TOLD HOW MANY:" 1194 PRINT AT 14,2;"1. NUMBERS ARE CORRECT" 1196 PRINT AT 15,2;"2. NUMBERS ARE IN THE RIGHT" 1198 PRINT AT 16,5;"SEQUENCE" 1202 PRINT AT 18,2;"WE CAN THEN MODIFY OUR NUMBER" 1204 PRINT AT 20,2;"PRESS ENTER FOR NEXT PAGE" 1206 INPUT Y$ 1210 GOSUB 1000 1214 PRINT AT 2,2;"IF NOTHING IS CORRECT THERE" 1216 PRINT AT 3,2;"WILL BE NO SECOND ROUND" 1218 PRINT AT 5,2;"IF WE LOSE TWO POINTS BETWEEN" 1220 PRINT AT 6,2;"ROUNDS--SEE YOU IN CHAINS" 1225 PRINT AT 8,2;"YOU ONLY HAVE 10 ROUNDS" 1250 PRINT AT 10,2;"ENTER THE NUMBER AND BEGIN" 1252 PRINT AT 12,2;"[R][O][B][O][T]█[W][A][R]" 1254 INPUT N 1255 IF N<1000 THEN GOTO 1250 1256 PRINT AT 20,2;N 1258 GOSUB 7500 1260 LET R=1 1262 LET K1=INT (RND*9)+1 1264 LET K2=INT (RND*10) 1266 LET K3=INT (RND*10) 1268 LET K4=INT (RND*10) 1269 LET KT=K1*1000+K2*100+K3*10+K4 1271 GOSUB 7600 1272 GOSUB 1277 1275 GOTO 1300 1277 LET N1=INT (N/1000) 1280 LET N2=INT ((N-N1*1000)/100) 1284 LET N3=INT ((N-N1*1000-N2*100)/10) 1286 LET N4=N-N1*1000-N2*100-N3*10 1290 RETURN 1300 GOSUB 1000 1310 PRINT AT 2,9;"ROUND ";R;" OF 10" 1320 LET X=5 1322 LET Y=5 1324 GOSUB 300 1326 GOSUB 400 1330 PRINT AT 16,9;"DEPLOY SHIELDS" 1332 FOR J=1 TO 5 1334 NEXT J 1336 LET S1=10 1337 LET S2=3 1340 GOSUB 600 1350 PRINT AT 17,5;"COMMENCE LASER ATTACK" 1360 POKE 16655,9 1362 POKE 16685,5 1364 FOR J=1 TO 5 1366 GOSUB 500 1368 GOSUB 530 1370 NEXT J 1372 FOR H=1 TO 4 1373 LET G(H)=0 1374 NEXT H 1380 IF N=KT THEN GOSUB 1500 1381 IF R=10 THEN GOSUB 1500 1382 GOSUB 1600 1383 PRINT AT 16,9;"████████████████" 1384 PRINT AT 17,5;"██████████████████████████" 1385 PRINT AT 18,2;"NO. OF CORRECT DIGITS=";A1 1387 PRINT AT 19,2;"NO. IN SEQUENCE=";A2 1388 PRINT AT 20,2;"LAST GUESS WAS=";N 1389 PRINT AT 21,2;"ENTER NEXT TRY" 1390 INPUT N 1392 IF N<999 THEN GOTO 1389 1393 GOSUB 7500 1394 PRINT AT 21,19;N 1395 LET R=R+1 1397 GOSUB 1277 1398 GOSUB 7600 1400 GOTO 1300 1500 REM DESTROY 1505 LET QQ=4 1510 IF N=KT THEN LET QQ=25 1515 PRINT AT 10,QQ;"[*]" 1517 PRINT AT 9,QQ-1;"[*][*][*]" 1519 PRINT AT 11,QQ-1;"[*][*][*]" 1521 PRINT AT 8,QQ-2;"[*][*][*][*][*]" 1523 PRINT AT 12,QQ-2;"[*][*][*][*][*]" 1525 PRINT AT 7,QQ-3;"[*][*][*][*][*][*][*]" 1527 PRINT AT 13,QQ-3;"[*][*][*][*][*][*][*]" 1530 POKE 16711,128 1532 POKE 16725,128 1540 IF QQ=4 THEN POKE 16713,8 1542 IF QQ<>4 THEN POKE 16713,23 1544 LET C1=USR 16710 1550 FOR J=1 TO 11 1555 PRINT AT J+3,QQ-5;"██████████" 1560 NEXT J 1570 IF N=KT THEN PRINT AT 7,20;"BRAVO-BRAVO" 1572 IF N<>KT THEN PRINT AT 7,2;"YOU DUMMY" 1573 IF N<>KT THEN PRINT AT 9,2;"IT WAS ";KT 1575 FOR J=1 TO 25 1576 NEXT J 1580 GOSUB 1000 1582 PRINT AT 2,2;"TRY AGAIN Y/N" 1584 INPUT Y$ 1586 IF Y$="Y" THEN GOTO 6000 1588 PRINT AT 4,2;"SEE YOU NEXT TIME--" 1590 STOP 1599 RETURN 1600 REM 1602 LET A2=0 1604 LET A1=0 1610 FOR H=1 TO 4 1612 IF NOT Q(H)=S(H) THEN GOTO 1620 1614 LET A2=A2+1 1615 LET A1=A1+1 1616 LET G(H)=1 1620 NEXT H 1628 GOSUB 1700 1630 IF A1>4 THEN LET A1=4 1632 IF A2+1