BUZZ BANG HARVEY — THE SOURCE
Recovered from the original 1984 disk. Written by Scott Rackey at 17, the summer before RPI.
HOW THIS WAS RECOVERED
The Internet Archive preserves the original floppy as a flux-level image. The disk turned
out to be copy-protected: standard sectors on the boot tracks, then a custom format everywhere
else — data fields hiding behind bare D5 AA 96 prologues with no address fields at all.
The sectors were decoded from the raw bitstream, their order reconstructed from the catalog chain,
Applesoft line-link arithmetic, and hi-res picture coherence, and every file extracted and verified.
The result: a complete, working, unprotected disk and every byte of source, 42 years later.
WHAT'S ON THE DISK
| File | Type | What it is |
|---|---|---|
| HELLO | Applesoft | Boot: title, sound prompt, intro, menu |
| INRO 2 | Applesoft | Second intro sequence |
| BUZZ(8-10), BUZZ(8-10)BACK, BUZZ(8-24) | Applesoft | The game: bizz-buzz-bang counting, three configurations |
| BUZZ(ALPH), ALPHARV | Applesoft | Alphabet variants |
| NOTE, NOTE.FIN, NOTE.Q | 6502 @ $0302 | The speaker routines (see below) |
| TXT/GEN | 6502 @ $6000 | 3KB hi-res text generator — draws text on the graphics screen |
| INTRO.PIC, TABLE.PIC1, HARVY.PIC | Hi-res @ $2000 | The pictures, including the invisible man himself |
| QUOTES, NAMES, SCORES, S* | Text | Level descriptions, high-score tables |
| SMILES | 6502 @ $1DFC | Smiley sprite/shape data |
Downloads: unprotected .dsk · individual files below.
THE SOUND STORY, IN 34 BYTES
Scott, 2026: “The first iteration got complaints because the sounds were too grating. You only had single bit control of the speaker… I experimented and managed a variable pulse timing that resulted in softer tones that actually had several frequencies.”
All three versions are on the disk, and they tell the story. NOTE is the original:
one speaker toggle (LDA $C030) per half-period — a hard square wave.
NOTE.FIN is the fix the game actually loads: three toggles with a tiny inner
delay loop — a pulse cluster, softer, with extra harmonics. NOTE.Q is the elegant
one: sound off replaces the speaker read with a harmless memory read (LDA $0300)
so the silent game burns the same cycles and plays at exactly the same speed.
===== NOTE_$0302 (32 bytes) 0302: AD 30 C0 LDA $C030 0305: 88 DEY 0306: D0 05 BNE $030D 0308: CE 01 03 DEC $0301 030B: F0 09 BEQ $0316 030D: CA DEX 030E: D0 F5 BNE $0305 0310: AE 00 03 LDX $0300 0313: 4C 02 03 JMP $0302 0316: 60 RTS 0317: 00 BRK 0318: 00 BRK 0319: 00 BRK 031A: 00 BRK 031B: 00 BRK 031C: 00 BRK 031D: 00 BRK 031E: 00 BRK 031F: 00 BRK 0320: 00 BRK 0321: 00 BRK ===== NOTE.Q_$0302 (32 bytes) 0302: AD 00 03 LDA $0300 0305: 88 DEY 0306: D0 08 BNE $0310 0308: AD 00 03 LDA $0300 030B: CE 01 03 DEC $0301 030E: F0 09 BEQ $0319 0310: CA DEX 0311: D0 F2 BNE $0305 0313: AE 00 03 LDX $0300 0316: 4C 02 03 JMP $0302 0319: 60 RTS 031A: EA NOP 031B: AE 00 03 LDX $0300 031E: 4C 02 03 JMP $0302 0321: 60 RTS ===== NOTE.FIN_$0302 (34 bytes) 0302: AD 30 C0 LDA $C030 0305: 88 DEY 0306: D0 10 BNE $0318 0308: AD 30 C0 LDA $C030 030B: A0 05 LDY #$05 030D: 88 DEY 030E: D0 FD BNE $030D 0310: AD 30 C0 LDA $C030 0313: CE 01 03 DEC $0301 0316: F0 09 BEQ $0321 0318: CA DEX 0319: D0 EA BNE $0305 031B: AE 00 03 LDX $0300 031E: 4C 02 03 JMP $0302 0321: 60 RTS 0322: D0 CD BNE $02F1
THE PICTURES



THE LEVELS
Seven levels of bizz-buzz-bang: divisible by or containing 3, 5, 7 — with Harvey reversing the count. Programmers will recognize the genre: this was commercial FizzBuzz, twenty years before FizzBuzz.
**** LEVEL 1 **** BUZZ-BANG <Y> ON BANGS --DIVISIBLE OR CONTAINS-(5)<U> ON BUZZES -DIVISIBLE OR CONTAINS-(7) **** LEVEL 2 **** BUZZ-BANG-REVERSING <Y> ON BANGS --DIVISIBLE OR CONTAINS-(5)<U> ON BUZZES -DIVISIBLE OR CONTAINS-(7)** COUNTING REVERSES ON BUZZES OR BANGS* **** LEVEL 3 **** BIZZ-BUZZ-BANG <I> ON BIZZES -DIVISIBLE OR CONTAINS-(3)<Y> ON BANGS --DIVISIBLE OR CONTAINS-(5)<U> ON BUZZES -DIVISIBLE OR CONTAINS-(7) **** LEVEL 4 **** BIZZ-BUZZ-BANG-REV. <I> ON BIZZES -DIVISIBLE OR CONTAINS-(3)<Y> ON BANGS --DIVISIBLE OR CONTAINS-(5)<U> ON BUZZES -DIVISIBLE OR CONTAINS-(7)** COUNTING REVERSES ON BUZZ-BIZZ-BANG **** LEVEL 5 **** BUZZ-BANG-HARVEY <Y> ON BANGS --DIVISIBLE OR CONTAINS-(5)<U> ON BUZZES -DIVISIBLE OR CONTAINS-(7)** HARVEY ON RIGHT WITH REVERSES *** **** LEVEL 6 *** BIZZ-BUZZ-BANG-HARVEY<I> ON BIZZES -DIVISIBLE OR CONTAINS-(3)<Y> ON BANGS --DIVISIBLE OR CONTAINS-(5)<U> ON BUZZES -DIVISIBLE OR CONTAINS-(7)** HARVEY ON RIGHT WITH REVERSES *** **** LEVEL 7 **** BIZZ-BUZZ-BANG-S-HAR<I> ON BIZZES -DIVISIBLE OR CONTAINS-(3)<Y> ON BANGS --DIVISIBLE OR CONTAINS-(5)<U> ON BUZZES -DIVISIBLE OR CONTAINS-(7)**ROTATING HARVEY-COUNTER CLKWISE **
THE BASIC
Detokenized straight from the disk sectors. Dense is right — some of these lines run to 200+ characters. Click to expand.
HELLO · Applesoft BASIC · 55 lines — Boot program. Title screen, sound question, loads the pictures, main menu.
0 D$= CHR$ (4) 5 PRINT D$;"BLOAD NOTE.FIN" 10 TEXT : HOME : CLEAR : VTAB 10: HTAB 10: INVERSE : SPEED=100: PRINT "BUZZ BANG HARVEY": VTAB 14: HTAB 15: NORMAL : SPEED=255: PRINT "BY SCOTT RACKEY" 12 VTAB 23: PRINT " (C)1984 QUEUE, INC." 15 D$= CHR$ (4) 20 GOSUB 300 21 PRINT D$;"BLOAD INTRO.PIC,A$2000" 22 HOME : VTAB 10: PRINT "DO YOU WANT SOUND (Y/N)?";: GET EN$: IF (EN$<>"Y") AND (EN$<>"N") THEN PRINT "": GOTO 22 23 IF EN$="N" THEN PRINT : PRINT D$;"BLOAD NOTE.Q" 24 HOME 25 VTAB 10: PRINT " THESE ARE THE PLAYERS:": GOSUB 200 40 INVERSE 50 POKE -16301,0: POKE -16300,0: POKE -16297,0: POKE -16304,0 60 HTAB 1: VTAB 21: PRINT "ELISE FRANK HAROLD PLEASE PRESS <RETURN> TO CONTINUE ";: GET EN$: GOSUB 300 64 NORMAL 65 TEXT : HOME : VTAB 10: HTAB 1: PRINT " -HOLD ON A SECOND, I'M FINDING HARVEY." 67 PRINT D$;"BLOAD HARVY.PIC" 68 GOSUB 300 69 POKE -16297,0: POKE -16300,0: POKE -16301,0: POKE -16304,0 70 INVERSE : HTAB 1: VTAB 22: PRINT " -AND THIS IS HARVEY..........................YUP, HARVEY IS INVISIBLE! (PLEASE PRESS <RETURN> TO CONTINUE)";: GET EN$: GOSUB 300 75 HOME : TEXT 80 VTAB 1: INVERSE : PRINT "**** WELCOME TO BUZZ BANG HARVEY ****" 90 VTAB 8: NORMAL : PRINT " IT'S PROBABLY A GOOD IDEA TO READ" 100 PRINT : PRINT "THE WRITTEN INSTRUCTIONS SUPPLIED WITH THIS PROGRAM, IF YOU HAVEN'T ALREADY.": GOSUB 200 103 HOME 106 VTAB 1: INVERSE : PRINT "**** WELCOME TO BUZZ BANG HARVEY ****": NORMAL : VTAB 9 110 VTAB 3: PRINT "HERE ARE JUST A FEW BASIC REMINDERS:": PRINT : PRINT : PRINT " YOU ARE SITTING AT A TABLE WITH THREE OTHER PLAYERS. THE FOUR OF YOU ARE" 130 PRINT : PRINT "TRYING TO COUNT UP TO FIFTY. EACH PERSON SAYS THE NEXT NUMBER WHEN IT'S HIS TURN, BUT THERE IS A CATCH!": GOSUB 200 140 HOME : INVERSE : PRINT "**** WELCOME TO BUZZ BANG HARVEY ****": NORMAL : PRINT : PRINT : PRINT " YOU DON'T ALWAYS SAY THE NUMBER!!! ": PRINT : PRINT : PRINT "SOMETIMES YOU SAY BUZZ, BANG OR BIZZ." 150 PRINT : PRINT "SOMETIMES THE COUNTING REVERSES DIRECT-" 160 PRINT : PRINT "ION, AND SOMETIMES YOU HAVE TO FIGURE OUT WHERE HARVEY IS AND WHAT HE SAID.... AND HARVEY IS NEVER WRONG!" 170 GOSUB 200 180 HOME : VTAB 10: PRINT " JUST REMEMBER THAT THE RULES FOR EACH LEVEL ARE PRINTED AT THE BOTTOM OF THE SCREEN. SO HERE WE GO -- GOOD LUCK!!!": GOSUB 200 184 GOSUB 300 185 PRINT 190 PRINT D$;"RUN BUZZ(8-24)" 200 QZ=127:QX=100: VTAB 24: PRINT "PLEASE PRESS <RETURN> TO GO ON: ";: GET EN$: POKE 768,QZ: POKE 769,QX: CALL 770: IF EN$="" THEN 500 210 RETURN 300 POKE 768,255: POKE 769,90: CALL 770: POKE 768,127: POKE 769,90: CALL 770: RETURN 500 TEXT : HOME : VTAB 10: PRINT "DO YOU WANT TO CLEAR THE HALL OF FAME (Y/N) ?";: GET IN$: IF IN$="N" THEN RETURN 505 PRINT D$;"NOMON C,I,O " 507 VTAB 12: HTAB 21: PRINT " " 510 PRINT D$;"OPEN NAMES" 520 PRINT D$;"DELETE NAMES" 530 PRINT D$;"OPEN NAMES" 540 PRINT D$;"WRITE NAMES" 550 FOR AJ=1 TO 40: PRINT "......": NEXT AJ 560 PRINT D$;"CLOSE NAMES" 570 PRINT D$;"OPENSCORES" 571 PRINT D$;"DELETESCORES" 572 PRINT D$;"OPENSCORES" 580 PRINT D$;"WRITE SCORES" 590 FOR AJ=1 TO 40: PRINT 0: NEXT AJ 600 PRINT D$;"CLOSESCORES" 610 RETURN
INRO 2 · Applesoft BASIC · 53 lines — Second intro sequence.
0 D$= CHR$ (4) 5 PRINT D$;"BLOAD NOTE" 10 TEXT : HOME : CLEAR : VTAB 10: HTAB 10: INVERSE : SPEED=100: PRINT "BUZZ BANG HARVEY": VTAB 14: HTAB 15: NORMAL : SPEED=255: PRINT "BY SCOTT RACKEY" 12 VTAB 23: PRINT " (C)1984 QUEUE, INC." 15 D$= CHR$ (4) 20 GOSUB 300 21 PRINT D$;"BLOAD INTRO.PIC,A$2000" 22 HOME 25 VTAB 10: PRINT " THESE ARE THE PLAYERS:": GOSUB 200 40 INVERSE 50 POKE -16301,0: POKE -16300,0: POKE -16297,0: POKE -16304,0 60 HTAB 1: VTAB 21: PRINT "ELISE FRANK HAROLD PLEASE PRESS <RETURN> TO CONTINUE ";: GET EN$: GOSUB 300 64 NORMAL 65 TEXT : HOME : VTAB 10: HTAB 1: PRINT " -HOLD ON A SECOND, I'M FINDING HARVEY." 67 PRINT D$;"BLOAD HARVY.PIC" 68 GOSUB 300 69 POKE -16297,0: POKE -16300,0: POKE -16301,0: POKE -16304,0 70 INVERSE : HTAB 1: VTAB 22: PRINT " -AND THIS IS HARVEY..........................YUP, HARVEY IS INVISIBLE! (PLEASE PRESS <RETURN> TO CONTINUE)";: GET EN$: GOSUB 300 75 HOME : TEXT 80 VTAB 1: INVERSE : PRINT "**** WELCOME TO BUZZ BANG HARVEY ****" 90 VTAB 8: NORMAL : PRINT " IT'S PROBABLY A GOOD IDEA TO READ" 100 PRINT : PRINT "THE WRITTEN INSTRUCTIONS SUPPLIED WITH THIS PROGRAM, IF YOU HAVEN'T ALREADY.": GOSUB 200 103 HOME 106 VTAB 1: INVERSE : PRINT "**** WELCOME TO BUZZ BANG HARVEY ****": NORMAL : VTAB 9 110 VTAB 3: PRINT "HERE ARE JUST A FEW BASIC REMINDERS:": PRINT : PRINT : PRINT " YOU ARE SITTING AT A TABLE WITH THREE OTHER PLAYERS. THE FOUR OF YOU ARE" 130 PRINT : PRINT "TRYING TO COUNT UP TO FIFTY. EACH PERSON SAYS THE NEXT NUMBER WHEN IT'S HIS TURN, BUT THERE IS A CATCH!": GOSUB 200 140 HOME : INVERSE : PRINT "**** WELCOME TO BUZZ BANG HARVEY ****": NORMAL : PRINT : PRINT : PRINT " YOU DON'T ALWAYS SAY THE NUMBER!!! ": PRINT : PRINT : PRINT "SOMETIMES YOU SAY BUZZ, BANG OR BIZZ." 150 PRINT : PRINT "SOMETIMES THE COUNTING REVERSES DIRECT-" 160 PRINT : PRINT "ION, AND SOMETIMES YOU HAVE TO FIGURE OUT WHERE HARVEY IS AND WHAT HE SAID.... AND HARVEY IS NEVER WRONG!" 170 GOSUB 200 180 HOME : VTAB 10: PRINT " JUST REMEMBER THAT THE RULES FOR EACH LEVEL ARE PRINTED AT THE BOTTOM OF THE SCREEN. SO HERE WE GO -- GOOD LUCK!!!": GOSUB 200 184 GOSUB 300 185 PRINT 190 PRINT D$;"RUN BUZZ(8-10)" 200 VTAB 24: PRINT "PLEASE PRESS <RETURN> TO GO ON: ";: GET EN$: POKE 768,93: POKE 769,41: CALL 770: POKE 768,82: POKE 769,100: CALL 770: IF EN$="" THEN GOSUB 500 210 RETURN 300 POKE 768,93: POKE 769,41: CALL 770: POKE 768,82: POKE 769,40: CALL 770: POKE 768,43: POKE 769,70: CALL 770: RETURN 500 TEXT : HOME : VTAB 10: PRINT "DO YOU WANT TO CLEAR THE HALL OF FAME (Y/N) ?";: GET IN$: IF IN$="N" THEN RETURN 505 PRINT D$;"NOMON C,I,O " 507 VTAB 12: HTAB 21: PRINT " " 510 PRINT D$;"OPEN NAMES" 520 PRINT D$;"DELETE NAMES" 530 PRINT D$;"OPEN NAMES" 540 PRINT D$;"WRITE NAMES" 550 FOR AJ=1 TO 40: PRINT "......": NEXT AJ 560 PRINT D$;"CLOSE NAMES" 570 PRINT D$;"OPENSCORES" 571 PRINT D$;"DELETESCORES" 572 PRINT D$;"OPENSCORES" 580 PRINT D$;"WRITE SCORES" 590 FOR AJ=1 TO 40: PRINT 0: NEXT AJ 600 PRINT D$;"CLOSESCORES" 610 RETURN
BUZZ(8-10) · Applesoft BASIC · 156 lines — Main game, numbers 8–10 range.
0 REM ** BUZZ BANG HARVEY ** 1 LOMEM:27697 2 D$= CHR$ (4): PRINT D$;"BLOAD NOTE" 4 HGR : HOME : DIM NI$(40): DIM SI(40): DIM NB$(40): DIM SB(40): DIM PI$(7) 5 PRINT D$;"BRUN TXT/GEN": CALL 1002 6 PRINT D$;"BLOAD SMILES,A$1DFC": POKE 232,252: POKE 233,29: ROT=0: SCALE=1: HCOLOR=3 7 FI$="QUOTES": GOSUB 5020: FOR I=1 TO 7:PI$(I)=NI$(I): NEXT I 10 NW=4:WR=0:SC=0 20 GOSUB 1500 22 POKE -16303,0 24 PRINT D$;"BLOAD TABLE.PIC1" 25 POKE -16300,0: POKE -16302,0: POKE -16297,0: POKE -16304,0 30 GOSUB 3300 60 HP=4:PE= INT ( RND (1)*4)+1 65 GOSUB 3400 67 VTAB 16: HTAB 11: PRINT "SCORE: 0" 70 HOME 80 IF LV<7 THEN VTAB 20: PRINT PI$(LV): GOTO 85 82 VTAB 20: PRINT PI$(7) 85 FOR NU=1 TO 50 100 CO=1 120 FD= INT (NU/10):LD=NU-(FD*10) 140 IF (LV>4) AND (HD=0) AND (NU>1) THEN GOSUB 700 180 IF (FD=7) OR (LD=7) THEN CO=2 200 IF (NU/7)= INT (NU/7) THEN CO=2 220 IF (FD=5) OR (LD=5) THEN CO=3 240 IF (NU/5)= INT (NU/5) THEN CO=3 260 IF (LV>2) AND (LV<5) OR (LV>5) THEN GOSUB 1000 270 FO=FR 280 IF ((LV=2) OR (LV>3) AND (LV<7)) AND (CO<>1) THEN GOSUB 1600 310 IF (LV>6) AND (NU>1) THEN GOSUB 1800 315 IF (HA) THEN GOSUB 750 320 GOSUB 900 340 GOSUB 800 370 HD=0 380 IF (LV=1) OR (LV=3) OR (LV>6) THEN GOSUB 1100: GOTO 440 400 IF ((LV=2) OR (LV>3)) AND (FR=1) THEN GOSUB 1200 420 IF ((LV=2) OR (LV>3)) AND (FR=0) THEN GOSUB 1100 440 NEXT NU 460 GOSUB 2000 480 GOTO 80 700 IF (PE=1) AND (HP=4) AND (FR=0) THEN HA=1: RETURN 705 IF (PE=1) AND (HP=1) AND (FR=1) THEN HA=1: RETURN 710 IF (PE=2) AND (HP=1) AND (FR=0) THEN HA=1: RETURN 715 IF (PE=2) AND (HP=2) AND (FR=1) THEN HA=1: RETURN 720 IF (PE=3) AND (HP=2) AND (FR=0) THEN HA=1: RETURN 725 IF (PE=3) AND (HP=3) AND (FR=1) THEN HA=1: RETURN 730 IF (PE=4) AND (HP=3) AND (FR=0) THEN HA=1: RETURN 735 IF (PE=4) AND (HP=4) AND (FR=1) THEN HA=1: RETURN 737 HA=0: RETURN 750 IF ((FR=0) AND (FO=0)) OR ((FO=1) AND (FR=1)) THEN POP :HD=1:HA=0: GOTO 440 760 IF ((FR=1) AND (FO=0)) OR ((FR=0) AND (FO=1)) THEN HA=0:HD=1: POP : GOTO 380 799 REM ** IO'S ** 800 REM 805 IF PE=1 THEN GOSUB 3300: GOSUB 3230:DU=DT: GOSUB 2600: GOSUB 3100 810 IF PE=2 THEN IF (CO>1) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT SA$ 820 IF (PE=2) AND (CO=1) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT NU;" " 830 IF PE=3 THEN IF (CO>1) THEN GOSUB 3210: HTAB 26: VTAB 3: PRINT SA$ 840 IF (PE=3) AND (CO=1) THEN GOSUB 3210: VTAB 3: HTAB 26: PRINT NU;" " 850 IF PE=4 THEN IF (CO>1) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT SA$ 860 IF (PE=4) AND (CO=1) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT NU;" " 870 RETURN 900 IF CO=2 THEN SA$="BUZZ" 910 IF CO=3 THEN SA$="BANG" 920 IF CO=4 THEN SA$="BIZZ" 930 RETURN 1000 IF (FD=3) OR (LD=3) THEN CO=4 1020 IF (NU/3)= INT (NU/3) THEN CO=4 1040 RETURN 1100 PE=PE+1: IF PE=5 THEN PE=1 1120 RETURN 1200 PE=PE-1: IF PE=0 THEN PE=4 1220 RETURN 1500 GOSUB 5600 1502 HGR : HOME : VTAB 10: PRINT "PLEASE TYPE THE LEVEL (1-7) THAT YOU WOULD LIKE TO START AT ";: GET LV: IF (LV<1) OR (LV>7) THEN 1500 1505 HOME : HGR : VTAB 10 1507 GOSUB 5600 1510 INPUT "PLEASE TYPE THE TIME IN SECONDS (1-60)THAT YOU ARE ALLOWED T0 ANSWER WITH ";IP: IF (IP<1) OR (IP>60) THEN 1510 1513 GOSUB 5600 1515 DT=60*IP:DU=DT: RETURN 1600 IF FR=1 THEN FR=0: RETURN 1620 IF FR=0 THEN FR=1: RETURN 1700 REM *** HARVY INCREMENT *** 1710 HP=HP-1: IF HP=0 THEN HP=4: RETURN 1800 IF (HP=PE-1) OR ((PE=1) AND (HP=4)) THEN GOSUB 1700: RETURN 1810 RETURN 2000 GOSUB 3300: GOSUB 3100: HTAB 8: VTAB 18: PRINT "LEVEL ";LV+1;"!":NU=1:HP=4:PE= INT ( RND (1)*4)+1:CO=1:HA=0:HD=0:LV=LV+1: GOSUB 3250: RETURN 2010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*4)+1:HA=0:HD=0: POP : GOTO 80 2200 POKE -16368,0: FOR TI=1 TO DU:B= PEEK (-16384): IF B<128 THEN NEXT TI: POP : POP : POP : GOTO 3000 2210 DU=DU-TI: RETURN 2500 GOSUB 2200: IF (B<176) OR ((B>185) AND (B<>201) AND (B<>213) AND (B<>217)) THEN 2500 2505 RETURN 2600 HTAB 8: VTAB 18: PRINT "YOUR MOVE? ";: GOSUB 2500: IF (B>160) AND (B<186) AND (CO=1) THEN IN=( VAL ( CHR$ (B-128)))*10: VTAB 18: PRINT CHR$ (B);: IF (NU>9) THEN GOTO 2610 2601 IF (B>185) THEN 2700 2602 IF IN/10=NU THEN SC=SC+LV: HTAB 20: VTAB 16: PRINT SC: RETURN 2603 POP : GOTO 3000 2610 GOSUB 2500: IF B>185 THEN 2610 2620 PRINT CHR$ (B);:IN=IN+ VAL ( CHR$ (B-128)): IF (IN<>NU) THEN POP : GOTO 3000 2640 SC=SC+LV: VTAB 16: HTAB 20: PRINT SC: RETURN 2700 IF ((B=213) AND (CO=2)) OR ((B=217) AND (CO=3)) OR ((B=201) AND (CO=4)) THEN VTAB 18: PRINT SA$:SC=SC+LV: VTAB 16: HTAB 20: PRINT SC: RETURN 2710 POP : GOTO 3000 3000 GOSUB 3100: GOSUB 3350: POKE 769,150: POKE 768,90: CALL 770: POKE 769,140: POKE 768,150: CALL 770: POKE 769,200: POKE 768,230: CALL 770:WR=WR+1: IF WR=NW THEN GOSUB 4000 3010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*4)+1:HA=0:HD=0: POP : GOTO 80 3100 HTAB 7: VTAB 4: PRINT " ";: HTAB 26: VTAB 3: PRINT " ": HTAB 25: VTAB 10: PRINT " ";: HTAB 8: VTAB 18: PRINT " ": RETURN 3200 XDRAW 2 AT 14,71: XDRAW 3 AT 12,70: POKE 769,75: POKE 768,140: CALL 770: POKE 769,75: POKE 768,120: CALL 770: XDRAW 3 AT 12,70: XDRAW 2 AT 14,71: GOSUB 3500: RETURN 3210 XDRAW 2 AT 117,54: XDRAW 3 AT 116,53: POKE 769,75: POKE 768,125: CALL 770: POKE 769,75: POKE 768,105: CALL 770: GOSUB 3240: XDRAW 3 AT 116,53: XDRAW 2 AT 117,54: GOSUB 3550: RETURN 3220 XDRAW 2 AT 235,69: XDRAW 3 AT 234,68: POKE 769,75: POKE 768,110: CALL 770: POKE 769,75: POKE 768,90: CALL 770: XDRAW 3 AT 234,68: XDRAW 2 AT 235,69: GOSUB 3600: RETURN 3230 POKE 769,75: POKE 768,85: CALL 770: POKE 769,150: POKE 768,60: CALL 770: RETURN 3240 FOR X=1 TO 30: NEXT X: RETURN 3250 FOR AX=1 TO 100: NEXT AX: POKE 769,170: POKE 768,120: CALL 770: POKE 769,150: POKE 768,90: CALL 770: POKE 769,150: POKE 768,75: CALL 770: POKE 769,160: POKE 768,60: CALL 770: FOR AX=1 TO 1000: NEXT AX: RETURN 3300 HCOLOR=3: DRAW 7 AT 18,64: DRAW 7 AT 31,64: DRAW 7 AT 120,45: DRAW 7 AT 134,45: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: XDRAW 6 AT 120,45: XDRAW 6 AT 134,45: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 3350 GOSUB 3300: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: RETURN 3360 XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3400 XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3500 IF FR=0 THEN ROT=32: DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 1 AT 18,64: XDRAW 1 AT 31,64: ROT=0: RETURN 3510 DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: RETURN 3550 IF FR=0 THEN ROT=32: DRAW 7 AT 122,45: DRAW 7 AT 136,45: XDRAW 1 AT 122,45: XDRAW 1 AT 136,45: ROT=0: RETURN 3560 ROT=0: DRAW 7 AT 118,45: DRAW 7 AT 132,45: XDRAW 1 AT 118,45: XDRAW 1 AT 132,45: RETURN 3600 IF FR=1 THEN ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 1 AT 235,60: XDRAW 1 AT 251,60: RETURN 3610 ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 4000 GOSUB 5000: GOSUB 5600: HGR : VTAB 8: HTAB 1: PRINT "YOUR SCORE IS ";SC: PRINT : PRINT "WOULD YOU LIKE TO PLAY AGAIN (Y/N) ?"; 4005 GET IP$: IF IP$<>"N" THEN POP : POP : GOTO 10 4010 TEXT : HOME : CALL 1005: NEW 5000 GET IQ$: HGR : GOSUB 5500:FI$="NAMES": GOSUB 5020: GOSUB 5028: GOSUB 5100: HGR : GOSUB 5200: GOSUB 5300: GOSUB 5500: GOSUB 5400: RETURN 5020 PRINT D$;"OPEN ";FI$ 5022 PRINT D$;"READ";FI$ 5024 FOR I=1 TO 40: INPUT NI$(I): NEXT I 5026 PRINT D$;"CLOSE";FI$ 5027 RETURN 5028 PRINT D$;"OPEN SCORES" 5030 PRINT D$;"READ SCORES" 5032 FOR I=1 TO 40: INPUT SI(I): NEXT I 5034 PRINT D$;"CLOSE SCORES" 5050 SPEED=130: HGR : VTAB 10: HTAB 5: PRINT "ENTERING INTELLECTUAL SOFTWARE'S": VTAB 12: HTAB 14: PRINT "HALL OF FAME": VTAB 20: GOSUB 5600: INPUT "PLEASE TYPE YOUR NAME HERE ";NA$: SPEED=255: RETURN 5100 IF SC<SI(40) THEN RETURN 5110 FOR I=1 TO 40: IF SC<SI(I) THEN NEXT I 5115 IF I=40 THEN NI$(40)=NA$:SI(40)=SC: RETURN 5120 TP=I: FOR J=TP TO 39:NB$(J+1)=NI$(J):SB(J+1)=SI(J): NEXT J:NI$(TP)=NA$:SI(TP)=SC: FOR J=(TP+1) TO 40:NI$(J)=NB$(J):SI(J)=SB(J): NEXT J: RETURN 5200 GOSUB 5600: HTAB 1: VTAB 1: PRINT "CONGRATULATIONS TO THESE HIGH SCORERS:" 5210 POKE -16302,0: HTAB 1: VTAB 3: FOR I=1 TO 20: PRINT NI$(I);: HTAB 10: PRINT SI(I);: HTAB 20: PRINT NI$(I+20);: HTAB 30: PRINT SI(I+20): NEXT I: RETURN 5300 VTAB 24: HTAB 1: PRINT "PLEASE HIT <RETURN> TO CONTINUE:";: GET IQ$: RETURN 5400 PRINT D$;"OPEN NAMES" 5402 PRINT D$;"DELETE NAMES" 5404 PRINT D$;"OPEN NAMES" 5410 PRINT D$;"WRITENAMES" 5420 FOR I=1 TO 40: PRINT NI$(I): NEXT I 5430 PRINT D$;"CLOSE NAMES" 5440 PRINT D$;"OPEN SCORES" 5442 PRINT D$;"DELETE SCORES" 5444 PRINT D$;"OPEN SCORES" 5450 PRINT D$;"WRITESCORES" 5460 FOR I=1 TO 40: PRINT SI(I): NEXT I 5470 PRINT D$;"CLOSE SCORES" 5480 RETURN 5500 VTAB 23: HTAB 1: PRINT D$;"NOMON C,I,O": VTAB 23: HTAB 1: PRINT " ": RETURN 5600 POKE 768,93: POKE 769,41: CALL 770: POKE 768,82: POKE 769,40: CALL 770: POKE 768,46: POKE 769,70: CALL 770: RETURN
BUZZ(8-10)BACK · Applesoft BASIC · 156 lines — Same, with reversing.
0 REM ** BUZZ BANG HARVEY ** 1 LOMEM:27697 2 D$= CHR$ (4): PRINT D$;"BLOAD NOTE" 4 HGR : HOME : DIM NI$(40): DIM SI(40): DIM NB$(40): DIM SB(40): DIM PI$(7) 5 PRINT D$;"BRUN TXT/GEN": CALL 1002 6 PRINT D$;"BLOAD SMILES,A$1DFC": POKE 232,252: POKE 233,29: ROT=0: SCALE=1: HCOLOR=3 7 FI$="QUOTES": GOSUB 5020: FOR I=1 TO 7:PI$(I)=NI$(I): NEXT I 10 NW=4:WR=0:SC=0 20 GOSUB 1500 22 POKE -16303,0 24 PRINT D$;"BLOAD TABLE.PIC1" 25 POKE -16300,0: POKE -16302,0: POKE -16297,0: POKE -16304,0 30 GOSUB 3300 60 HP=4:PE= INT ( RND (1)*4)+1 65 GOSUB 3400 67 VTAB 16: HTAB 11: PRINT "SCORE: 0" 70 HOME 80 IF LV<7 THEN VTAB 20: PRINT PI$(LV): GOTO 85 82 VTAB 20: PRINT PI$(7) 85 FOR NU=1 TO 50 100 CO=1 120 FD= INT (NU/10):LD=NU-(FD*10) 140 IF (LV>4) AND (HD=0) AND (NU>1) THEN GOSUB 700 180 IF (FD=7) OR (LD=7) THEN CO=2 200 IF (NU/7)= INT (NU/7) THEN CO=2 220 IF (FD=5) OR (LD=5) THEN CO=3 240 IF (NU/5)= INT (NU/5) THEN CO=3 260 IF (LV>2) AND (LV<5) OR (LV>5) THEN GOSUB 1000 270 FO=FR 280 IF ((LV=2) OR (LV>3) AND (LV<7)) AND (CO<>1) THEN GOSUB 1600 310 IF (LV>6) AND (NU>1) THEN GOSUB 1800 315 IF (HA) THEN GOSUB 750 320 GOSUB 900 340 GOSUB 800 370 HD=0 380 IF (LV=1) OR (LV=3) OR (LV>6) THEN GOSUB 1100: GOTO 440 400 IF ((LV=2) OR (LV>3)) AND (FR=1) THEN GOSUB 1200 420 IF ((LV=2) OR (LV>3)) AND (FR=0) THEN GOSUB 1100 440 NEXT NU 460 GOSUB 2000 480 GOTO 80 700 IF (PE=1) AND (HP=4) AND (FR=0) THEN HA=1: RETURN 705 IF (PE=1) AND (HP=1) AND (FR=1) THEN HA=1: RETURN 710 IF (PE=2) AND (HP=1) AND (FR=0) THEN HA=1: RETURN 715 IF (PE=2) AND (HP=2) AND (FR=1) THEN HA=1: RETURN 720 IF (PE=3) AND (HP=2) AND (FR=0) THEN HA=1: RETURN 725 IF (PE=3) AND (HP=3) AND (FR=1) THEN HA=1: RETURN 730 IF (PE=4) AND (HP=3) AND (FR=0) THEN HA=1: RETURN 735 IF (PE=4) AND (HP=4) AND (FR=1) THEN HA=1: RETURN 737 HA=0: RETURN 750 IF ((FR=0) AND (FO=0)) OR ((FO=1) AND (FR=1)) THEN POP :HD=1:HA=0: GOTO 440 760 IF ((FR=1) AND (FO=0)) OR ((FR=0) AND (FO=1)) THEN HA=0:HD=1: POP : GOTO 380 799 REM ** IO'S ** 800 REM 805 IF PE=1 THEN GOSUB 3300: GOSUB 3230:DU=DT: GOSUB 2600: GOSUB 3100 810 IF PE=2 THEN IF (CO>1) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT SA$ 820 IF (PE=2) AND (CO=1) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT NU;" " 830 IF PE=3 THEN IF (CO>1) THEN GOSUB 3210: HTAB 26: VTAB 3: PRINT SA$ 840 IF (PE=3) AND (CO=1) THEN GOSUB 3210: VTAB 3: HTAB 26: PRINT NU;" " 850 IF PE=4 THEN IF (CO>1) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT SA$ 860 IF (PE=4) AND (CO=1) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT NU;" " 870 RETURN 900 IF CO=2 THEN SA$="BUZZ" 910 IF CO=3 THEN SA$="BANG" 920 IF CO=4 THEN SA$="BIZZ" 930 RETURN 1000 IF (FD=3) OR (LD=3) THEN CO=4 1020 IF (NU/3)= INT (NU/3) THEN CO=4 1040 RETURN 1100 PE=PE+1: IF PE=5 THEN PE=1 1120 RETURN 1200 PE=PE-1: IF PE=0 THEN PE=4 1220 RETURN 1500 GOSUB 5600 1502 HGR : HOME : VTAB 10: PRINT "PLEASE TYPE THE LEVEL (1-7) THAT YOU WOULD LIKE TO START AT ";: GET LV: IF (LV<1) OR (LV>7) THEN 1500 1505 HOME : HGR : VTAB 10 1507 GOSUB 5600 1510 INPUT "PLEASE TYPE THE TIME IN SECONDS (1-60)THAT YOU ARE ALLOWED T0 ANSWER WITH ";IP: IF (IP<1) OR (IP>60) THEN 1510 1513 GOSUB 5600 1515 DT=60*IP:DU=DT: RETURN 1600 IF FR=1 THEN FR=0: RETURN 1620 IF FR=0 THEN FR=1: RETURN 1700 REM *** HARVY INCREMENT *** 1710 HP=HP-1: IF HP=0 THEN HP=4: RETURN 1800 IF (HP=PE-1) OR ((PE=1) AND (HP=4)) THEN GOSUB 1700: RETURN 1810 RETURN 2000 GOSUB 3300: GOSUB 3100: HTAB 8: VTAB 18: PRINT "LEVEL ";LV+1;"!":NU=1:HP=4:PE= INT ( RND (1)*4)+1:CO=1:HA=0:HD=0:LV=LV+1: GOSUB 3250: RETURN 2010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*4)+1:HA=0:HD=0: POP : GOTO 80 2200 POKE -16368,0: FOR TI=1 TO DU:B= PEEK (-16384): IF B<128 THEN NEXT TI: POP : POP : POP : GOTO 3000 2210 DU=DU-TI: RETURN 2500 GOSUB 2200: IF (B<176) OR ((B>185) AND (B<>201) AND (B<>213) AND (B<>217)) THEN 2500 2505 RETURN 2600 HTAB 8: VTAB 18: PRINT "YOUR MOVE? ";: GOSUB 2500: IF (B>160) AND (B<186) AND (CO=1) THEN IN=( VAL ( CHR$ (B-128)))*10: VTAB 18: PRINT CHR$ (B);: IF (NU>9) THEN GOTO 2610 2601 IF (B>185) THEN 2700 2602 IF IN/10=NU THEN SC=SC+LV: HTAB 20: VTAB 16: PRINT SC: RETURN 2603 POP : GOTO 3000 2610 GOSUB 2500: IF B>185 THEN 2610 2620 PRINT CHR$ (B);:IN=IN+ VAL ( CHR$ (B-128)): IF (IN<>NU) THEN POP : GOTO 3000 2640 SC=SC+LV: VTAB 16: HTAB 20: PRINT SC: RETURN 2700 IF ((B=213) AND (CO=2)) OR ((B=217) AND (CO=3)) OR ((B=201) AND (CO=4)) THEN VTAB 18: PRINT SA$:SC=SC+LV: VTAB 16: HTAB 20: PRINT SC: RETURN 2710 POP : GOTO 3000 3000 GOSUB 3100: GOSUB 3350: POKE 769,150: POKE 768,90: CALL 770: POKE 769,140: POKE 768,150: CALL 770: POKE 769,200: POKE 768,230: CALL 770:WR=WR+1: IF WR=NW THEN GOSUB 4000 3010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*4)+1:HA=0:HD=0: POP : GOTO 80 3100 HTAB 7: VTAB 4: PRINT " ";: HTAB 26: VTAB 3: PRINT " ": HTAB 25: VTAB 10: PRINT " ";: HTAB 8: VTAB 18: PRINT " ": RETURN 3200 XDRAW 2 AT 14,71: XDRAW 3 AT 12,70: POKE 769,75: POKE 768,140: CALL 770: POKE 769,75: POKE 768,120: CALL 770: XDRAW 3 AT 12,70: XDRAW 2 AT 14,71: GOSUB 3500: RETURN 3210 XDRAW 2 AT 117,54: XDRAW 3 AT 116,53: POKE 769,75: POKE 768,125: CALL 770: POKE 769,75: POKE 768,105: CALL 770: GOSUB 3240: XDRAW 3 AT 116,53: XDRAW 2 AT 117,54: GOSUB 3550: RETURN 3220 XDRAW 2 AT 235,69: XDRAW 3 AT 234,68: POKE 769,75: POKE 768,110: CALL 770: POKE 769,75: POKE 768,90: CALL 770: XDRAW 3 AT 234,68: XDRAW 2 AT 235,69: GOSUB 3600: RETURN 3230 POKE 769,75: POKE 768,85: CALL 770: POKE 769,150: POKE 768,60: CALL 770: RETURN 3240 FOR X=1 TO 30: NEXT X: RETURN 3250 FOR AX=1 TO 100: NEXT AX: POKE 769,170: POKE 768,120: CALL 770: POKE 769,150: POKE 768,90: CALL 770: POKE 769,150: POKE 768,75: CALL 770: POKE 769,160: POKE 768,60: CALL 770: FOR AX=1 TO 1000: NEXT AX: RETURN 3300 HCOLOR=3: DRAW 7 AT 18,64: DRAW 7 AT 31,64: DRAW 7 AT 120,45: DRAW 7 AT 134,45: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: XDRAW 6 AT 120,45: XDRAW 6 AT 134,45: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 3350 GOSUB 3300: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: RETURN 3360 XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3400 XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3500 IF FR=0 THEN ROT=32: DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 1 AT 18,64: XDRAW 1 AT 31,64: ROT=0: RETURN 3510 DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: RETURN 3550 IF FR=0 THEN ROT=32: DRAW 7 AT 122,45: DRAW 7 AT 136,45: XDRAW 1 AT 122,45: XDRAW 1 AT 136,45: ROT=0: RETURN 3560 ROT=0: DRAW 7 AT 118,45: DRAW 7 AT 132,45: XDRAW 1 AT 118,45: XDRAW 1 AT 132,45: RETURN 3600 IF FR=1 THEN ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 1 AT 235,60: XDRAW 1 AT 251,60: RETURN 3610 ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 4000 GOSUB 5000: GOSUB 5600: HGR : VTAB 8: HTAB 1: PRINT "YOUR SCORE IS ";SC: PRINT : PRINT "WOULD YOU LIKE TO PLAY AGAIN (Y/N) ?"; 4005 GET IP$: IF IP$<>"N" THEN POP : POP : GOTO 10 4010 TEXT : HOME : CALL 1005: NEW 5000 GET IQ$: HGR : GOSUB 5500:FI$="NAMES": GOSUB 5020: GOSUB 5028: GOSUB 5100: HGR : GOSUB 5200: GOSUB 5300: GOSUB 5500: GOSUB 5400: RETURN 5020 PRINT D$;"OPEN ";FI$ 5022 PRINT D$;"READ";FI$ 5024 FOR I=1 TO 40: INPUT NI$(I): NEXT I 5026 PRINT D$;"CLOSE";FI$ 5027 RETURN 5028 PRINT D$;"OPEN SCORES" 5030 PRINT D$;"READ SCORES" 5032 FOR I=1 TO 40: INPUT SI(I): NEXT I 5034 PRINT D$;"CLOSE SCORES" 5050 SPEED=130: HGR : VTAB 10: HTAB 5: PRINT "ENTERING INTELLECTUAL SOFTWARE'S": VTAB 12: HTAB 14: PRINT "HALL OF FAME": VTAB 20: GOSUB 5600: INPUT "PLEASE TYPE YOUR NAME HERE ";NA$: SPEED=255: RETURN 5100 IF SC<SI(40) THEN RETURN 5110 FOR I=1 TO 40: IF SC<SI(I) THEN NEXT I 5115 IF I=40 THEN NI$(40)=NA$:SI(40)=SC: RETURN 5120 TP=I: FOR J=TP TO 39:NB$(J+1)=NI$(J):SB(J+1)=SI(J): NEXT J:NI$(TP)=NA$:SI(TP)=SC: FOR J=(TP+1) TO 40:NI$(J)=NB$(J):SI(J)=SB(J): NEXT J: RETURN 5200 GOSUB 5600: HTAB 1: VTAB 1: PRINT "CONGRATULATIONS TO THESE HIGH SCORERS:" 5210 POKE -16302,0: HTAB 1: VTAB 3: FOR I=1 TO 20: PRINT NI$(I);: HTAB 10: PRINT SI(I);: HTAB 20: PRINT NI$(I+20);: HTAB 30: PRINT SI(I+20): NEXT I: RETURN 5300 VTAB 24: HTAB 1: PRINT "PLEASE HIT <RETURN> TO CONTINUE:";: GET IQ$: RETURN 5400 PRINT D$;"OPEN NAMES" 5402 PRINT D$;"DELETE NAMES" 5404 PRINT D$;"OPEN NAMES" 5410 PRINT D$;"WRITENAMES" 5420 FOR I=1 TO 40: PRINT NI$(I): NEXT I 5430 PRINT D$;"CLOSE NAMES" 5440 PRINT D$;"OPEN SCORES" 5442 PRINT D$;"DELETE SCORES" 5444 PRINT D$;"OPEN SCORES" 5450 PRINT D$;"WRITESCORES" 5460 FOR I=1 TO 40: PRINT SI(I): NEXT I 5470 PRINT D$;"CLOSE SCORES" 5480 RETURN 5500 VTAB 23: HTAB 1: PRINT D$;"NOMON C,I,O": VTAB 23: HTAB 1: PRINT " ": RETURN 5600 POKE 768,93: POKE 769,41: CALL 770: POKE 768,82: POKE 769,40: CALL 770: POKE 768,46: POKE 769,70: CALL 770: RETURN
BUZZ(8-24) · Applesoft BASIC · 161 lines — Main game, wider range.
0 REM ** BUZZ BANG HARVEY ** 1 LOMEM:27697 2 D$= CHR$ (4) 4 HGR : HOME : DIM NI$(40): DIM SI(40): DIM NB$(40): DIM SB(40): DIM PI$(7) 5 PRINT D$;"BRUN TXT/GEN": CALL 1002 6 PRINT D$;"BLOAD SMILES,A$1DFC": POKE 232,252: POKE 233,29: ROT=0: SCALE=1: HCOLOR=3 7 FI$="QUOTES": GOSUB 5020: FOR I=1 TO 7:PI$(I)=NI$(I): NEXT I 10 NW=4:WR=0:SC=0 20 GOSUB 1500 22 POKE -16303,0 24 PRINT D$;"BLOAD TABLE.PIC1" 25 POKE -16300,0: POKE -16302,0: POKE -16297,0: POKE -16304,0 30 GOSUB 3300 60 HP=4:PE= INT ( RND (1)*4)+1 65 GOSUB 3400 67 VTAB 16: HTAB 11: PRINT "SCORE: 0" 70 HOME 80 IF LV<7 THEN VTAB 20: PRINT PI$(LV): GOTO 85 82 VTAB 20: PRINT PI$(7) 85 FOR NU=1 TO 50 100 CO=1 120 FD= INT (NU/10):LD=NU-(FD*10) 140 IF (LV>4) AND (HD=0) AND (NU>1) THEN GOSUB 700 180 IF (FD=7) OR (LD=7) THEN CO=2 200 IF (NU/7)= INT (NU/7) THEN CO=2 220 IF (FD=5) OR (LD=5) THEN CO=3 240 IF (NU/5)= INT (NU/5) THEN CO=3 260 IF (LV>2) AND (LV<5) OR (LV>5) THEN GOSUB 1000 270 FO=FR 280 IF ((LV=2) OR (LV>3) AND (LV<7)) AND (CO<>1) THEN GOSUB 1600 310 IF (LV>6) AND (NU>1) THEN GOSUB 1800 315 IF (HA) THEN GOSUB 750 320 GOSUB 900 340 GOSUB 800 370 HD=0 380 IF (LV=1) OR (LV=3) OR (LV>6) THEN GOSUB 1100: GOTO 440 400 IF ((LV=2) OR (LV>3)) AND (FR=1) THEN GOSUB 1200 420 IF ((LV=2) OR (LV>3)) AND (FR=0) THEN GOSUB 1100 440 NEXT NU 460 GOSUB 2000 480 GOTO 80 700 IF (PE=1) AND (HP=4) AND (FR=0) THEN HA=1: RETURN 705 IF (PE=1) AND (HP=1) AND (FR=1) THEN HA=1: RETURN 710 IF (PE=2) AND (HP=1) AND (FR=0) THEN HA=1: RETURN 715 IF (PE=2) AND (HP=2) AND (FR=1) THEN HA=1: RETURN 720 IF (PE=3) AND (HP=2) AND (FR=0) THEN HA=1: RETURN 725 IF (PE=3) AND (HP=3) AND (FR=1) THEN HA=1: RETURN 730 IF (PE=4) AND (HP=3) AND (FR=0) THEN HA=1: RETURN 735 IF (PE=4) AND (HP=4) AND (FR=1) THEN HA=1: RETURN 737 HA=0: RETURN 750 IF ((FR=0) AND (FO=0)) OR ((FO=1) AND (FR=1)) THEN POP :HD=1:HA=0: GOTO 440 760 IF ((FR=1) AND (FO=0)) OR ((FR=0) AND (FO=1)) THEN HA=0:HD=1: POP : GOTO 380 799 REM ** IO'S ** 800 REM 805 IF PE=1 THEN GOSUB 3300: GOSUB 3230:DU=DT: GOSUB 2600: GOSUB 3100 810 IF PE=2 THEN IF (CO>1) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT SA$ 820 IF (PE=2) AND (CO=1) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT NU;" " 830 IF PE=3 THEN IF (CO>1) THEN GOSUB 3210: HTAB 26: VTAB 3: PRINT SA$ 840 IF (PE=3) AND (CO=1) THEN GOSUB 3210: VTAB 3: HTAB 26: PRINT NU;" " 850 IF PE=4 THEN IF (CO>1) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT SA$ 860 IF (PE=4) AND (CO=1) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT NU;" " 870 RETURN 900 IF CO=2 THEN SA$="BUZZ" 910 IF CO=3 THEN SA$="BANG" 920 IF CO=4 THEN SA$="BIZZ" 930 RETURN 1000 IF (FD=3) OR (LD=3) THEN CO=4 1020 IF (NU/3)= INT (NU/3) THEN CO=4 1040 RETURN 1100 PE=PE+1: IF PE=5 THEN PE=1 1120 RETURN 1200 PE=PE-1: IF PE=0 THEN PE=4 1220 RETURN 1500 GOSUB 5600 1502 HGR : HOME : VTAB 10: PRINT "PLEASE TYPE THE LEVEL (1-7) THAT YOU WOULD LIKE TO START AT ";: GET LV$:LV= VAL (LV$): IF (LV<1) OR (LV>7) THEN 1500 1505 HOME : HGR : VTAB 10 1507 GOSUB 5600 1510 INPUT "PLEASE TYPE THE TIME IN SECONDS (1-60)THAT YOU ARE ALLOWED T0 ANSWER WITH ";IP: IF (IP<1) OR (IP>60) THEN 1510 1513 GOSUB 5600 1515 DT=60*IP:DU=DT: RETURN 1600 IF FR=1 THEN FR=0: RETURN 1620 IF FR=0 THEN FR=1: RETURN 1700 REM *** HARVY INCREMENT *** 1710 HP=HP-1: IF HP=0 THEN HP=4: RETURN 1800 IF (HP=PE-1) OR ((PE=1) AND (HP=4)) THEN GOSUB 1700: RETURN 1810 RETURN 2000 GOSUB 3300: GOSUB 3100: HTAB 8: VTAB 18: PRINT "LEVEL ";LV+1;"!":NU=1:HP=4:PE= INT ( RND (1)*4)+1:CO=1:HA=0:HD=0:LV=LV+1: GOSUB 3250: RETURN 2010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*4)+1:HA=0:HD=0: POP : GOTO 80 2200 POKE -16368,0: FOR TI=1 TO DU:B= PEEK (-16384): IF B<128 THEN NEXT TI: POP : POP : POP : GOTO 3000 2210 DU=DU-TI: RETURN 2500 GOSUB 2200: IF (B<176) OR ((B>185) AND (B<>201) AND (B<>213) AND (B<>217)) THEN 2500 2505 RETURN 2600 HTAB 8: VTAB 18: PRINT "YOUR MOVE? ";: GOSUB 2500: IF (B>160) AND (B<186) AND (CO=1) THEN IN=( VAL ( CHR$ (B-128)))*10: VTAB 18: PRINT CHR$ (B);: IF (NU>9) THEN GOTO 2610 2601 IF (B>185) THEN 2700 2602 IF IN/10=NU THEN SC=SC+LV: HTAB 20: VTAB 16: PRINT SC: RETURN 2603 POP : GOTO 3000 2610 GOSUB 2500: IF B>185 THEN 2610 2620 PRINT CHR$ (B);:IN=IN+ VAL ( CHR$ (B-128)): IF (IN<>NU) THEN POP : GOTO 3000 2640 SC=SC+LV: VTAB 16: HTAB 20: PRINT SC: RETURN 2700 IF ((B=213) AND (CO=2)) OR ((B=217) AND (CO=3)) OR ((B=201) AND (CO=4)) THEN VTAB 18: PRINT SA$:SC=SC+LV: VTAB 16: HTAB 20: PRINT SC: RETURN 2710 POP : GOTO 3000 3000 GOSUB 3100: GOSUB 3350: POKE 769,110: POKE 768,150: CALL 770: POKE 769,255: POKE 768,245: CALL 770: FOR ZQ=1 TO 100: NEXT ZQ:WR=WR+1: IF WR=NW THEN GOSUB 4000 3010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*4)+1:HA=0:HD=0: POP : GOTO 80 3100 HTAB 7: VTAB 4: PRINT " ";: HTAB 26: VTAB 3: PRINT " ": HTAB 25: VTAB 10: PRINT " ";: HTAB 8: VTAB 18: PRINT " ": RETURN 3200 XDRAW 2 AT 14,71: XDRAW 3 AT 12,70: POKE 769,35: POKE 768,171: CALL 770: FOR ZQ=1 TO 220: NEXT ZQ: XDRAW 3 AT 12,70: XDRAW 2 AT 14,71: GOSUB 3500: RETURN 3210 XDRAW 2 AT 117,54: XDRAW 3 AT 116,53: POKE 769,35: POKE 768,111: CALL 770: FOR ZQ=1 TO 220: NEXT ZQ: GOSUB 3240: XDRAW 3 AT 116,53: XDRAW 2 AT 117,54: GOSUB 3550: RETURN 3220 XDRAW 2 AT 235,69: XDRAW 3 AT 234,68: POKE 769,35: POKE 768,95: CALL 770: FOR ZQ=1 TO 220: NEXT ZQ: XDRAW 3 AT 234,68: XDRAW 2 AT 235,69: GOSUB 3600: RETURN 3230 POKE 769,200: POKE 768,86: CALL 770: RETURN 3240 FOR X=1 TO 30: NEXT X: RETURN 3250 FOR AX=1 TO 100: NEXT AX: FOR QZ=1 TO 2: FOR ZQ=25 TO 12 STEP -1: POKE 769,45: POKE 768,ZQ: CALL 770: NEXT ZQ: NEXT QZ: FOR AX=1 TO 1000: NEXT AX: RETURN 3300 HCOLOR=3: DRAW 7 AT 18,64: DRAW 7 AT 31,64: DRAW 7 AT 120,45: DRAW 7 AT 134,45: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: XDRAW 6 AT 120,45: XDRAW 6 AT 134,45: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 3350 GOSUB 3300: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: RETURN 3360 XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3400 XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3500 IF FR=0 THEN ROT=32: DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 1 AT 18,64: XDRAW 1 AT 31,64: ROT=0: RETURN 3510 DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: RETURN 3550 IF FR=0 THEN ROT=32: DRAW 7 AT 122,45: DRAW 7 AT 136,45: XDRAW 1 AT 122,45: XDRAW 1 AT 136,45: ROT=0: RETURN 3560 ROT=0: DRAW 7 AT 118,45: DRAW 7 AT 132,45: XDRAW 1 AT 118,45: XDRAW 1 AT 132,45: RETURN 3600 IF FR=1 THEN ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 1 AT 235,60: XDRAW 1 AT 251,60: RETURN 3610 ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 4000 GOSUB 5000: GOSUB 5600: HGR : VTAB 8: HTAB 1: PRINT "YOUR SCORE IS ";SC: PRINT : PRINT "WOULD YOU LIKE TO PLAY AGAIN (Y/N) ?"; 4005 GET IP$: IF IP$="N" THEN 4012 4006 POP : POP : HGR : HTAB 1 4007 VTAB 10: PRINT "DO YOU WANT SOUND (Y/N)";: GET EN$: IF (EN$<>"N") AND (EN$<>"Y") THEN 4007 4008 IF EN$="N" THEN PRINT : PRINT D$;"BLOAD NOTE.Q" 4009 IF EN$="Y" THEN PRINT : PRINT D$;"BLOAD NOTE.FIN" 4010 GOTO 10 4012 TEXT : HOME : CALL 1005: NEW 5000 GET IQ$: HGR : GOSUB 5500:FI$="NAMES": GOSUB 5020: GOSUB 5028: GOSUB 5100: HGR : GOSUB 5200: GOSUB 5300: GOSUB 5500: GOSUB 5400: RETURN 5020 PRINT D$;"OPEN ";FI$ 5022 PRINT D$;"READ";FI$ 5024 FOR I=1 TO 40: INPUT NI$(I): NEXT I 5026 PRINT D$;"CLOSE";FI$ 5027 RETURN 5028 PRINT D$;"OPEN SCORES" 5030 PRINT D$;"READ SCORES" 5032 FOR I=1 TO 40: INPUT SI(I): NEXT I 5034 PRINT D$;"CLOSE SCORES" 5050 SPEED=130: HGR : VTAB 10: HTAB 5: PRINT "ENTERING INTELLECTUAL SOFTWARE'S": VTAB 12: HTAB 14: PRINT "HALL OF FAME": VTAB 20: GOSUB 5600: INPUT "PLEASE TYPE YOUR NAME HERE ";NA$: SPEED=255: RETURN 5100 IF SC<SI(40) THEN RETURN 5110 FOR I=1 TO 40: IF SC<SI(I) THEN NEXT I 5115 IF I=40 THEN NI$(40)=NA$:SI(40)=SC: RETURN 5120 TP=I: FOR J=TP TO 39:NB$(J+1)=NI$(J):SB(J+1)=SI(J): NEXT J:NI$(TP)=NA$:SI(TP)=SC: FOR J=(TP+1) TO 40:NI$(J)=NB$(J):SI(J)=SB(J): NEXT J: RETURN 5200 GOSUB 5600: HTAB 1: VTAB 1: PRINT "CONGRATULATIONS TO THESE HIGH SCORERS:" 5210 POKE -16302,0: HTAB 1: VTAB 3: FOR I=1 TO 20: PRINT NI$(I);: HTAB 10: PRINT SI(I);: HTAB 20: PRINT NI$(I+20);: HTAB 30: PRINT SI(I+20): NEXT I: RETURN 5300 VTAB 24: HTAB 1: PRINT "PLEASE HIT <RETURN> TO CONTINUE:";: GET IQ$: RETURN 5400 PRINT D$;"OPEN NAMES" 5402 PRINT D$;"DELETE NAMES" 5404 PRINT D$;"OPEN NAMES" 5410 PRINT D$;"WRITENAMES" 5420 FOR I=1 TO 40: PRINT NI$(I): NEXT I 5430 PRINT D$;"CLOSE NAMES" 5440 PRINT D$;"OPEN SCORES" 5442 PRINT D$;"DELETE SCORES" 5444 PRINT D$;"OPEN SCORES" 5450 PRINT D$;"WRITESCORES" 5460 FOR I=1 TO 40: PRINT SI(I): NEXT I 5470 PRINT D$;"CLOSE SCORES" 5480 RETURN 5500 VTAB 23: HTAB 1: PRINT D$;"NOMON C,I,O": VTAB 23: HTAB 1: PRINT " ": RETURN 5600 POKE 768,255: POKE 769,90: CALL 770: POKE 768,127: POKE 769,90: CALL 770: RETURN
BUZZ(ALPH) · Applesoft BASIC · 154 lines — Alphabet variant.
0 REM ** BUZZ BANG HARVEY ** 1 LOMEM:27697 2 D$= CHR$ (4): PRINT D$;"BLOAD NOTE" 4 HGR : HOME : DIM NI$(40): DIM SI(40): DIM NB$(40): DIM SB(40): DIM PI$(7) 5 PRINT D$;"BRUN TXT/GEN": CALL 1002 6 PRINT D$;"BLOAD SMILES,A$1DFC": POKE 232,252: POKE 233,29: ROT=0: SCALE=1: HCOLOR=3 7 FI$="QUOTES": GOSUB 5020: FOR I=1 TO 7:PI$(I)=NI$(I): NEXT I 10 NW=4:WR=0:SC=0:SA$="VOWEL" 20 GOSUB 1500 22 POKE -16303,0 24 PRINT D$;"BLOAD TABLE.PIC1" 25 POKE -16300,0: POKE -16302,0: POKE -16297,0: POKE -16304,0 30 GOSUB 3300 60 HP=4:PE= INT ( RND (1)*3)+2 65 GOSUB 3400 67 VTAB 16: HTAB 11: PRINT "SCORE: 0" 70 HOME 80 IF LV<7 THEN VTAB 20: PRINT PI$(LV): GOTO 84 82 VTAB 20: PRINT PI$(7) 84 OI= INT ( RND (1)*26)+1 85 REM 90 FOR NU=1 TO 26 100 CO=1 140 IF (LV>6) AND (HD=0) AND (NU>1) THEN GOSUB 700 150 IF ((LV=6) OR (LV=5)) AND ((OI=1) OR (OI=5) OR (OI=9) OR (OI=15) OR (OI=21)) THEN CO=2 270 FO=FR 280 IF (LV=6) AND (CO<>1) THEN GOSUB 1600 315 IF (HA) THEN HD=1:HA=0: GOTO 420 330 GOSUB 900 340 GOSUB 800 370 HD=0 390 IF (LV=6) AND (FR=1) THEN GOSUB 1200 395 IF (LV=6) AND (FR=0) THEN GOSUB 1100 400 IF (LV<>6) THEN GOSUB 1100 420 IF (LV=2) OR (LV=4) OR (LV=8) OR (LV=9) THEN NU=NU+1 422 IF ((LV=1) OR (LV=5) OR (LV=7)) AND (OI=26) THEN OI=1: GOTO 440 424 IF (LV=1) OR (LV=5) OR (LV=7) THEN OI=OI+1: GOTO 440 426 IF ((LV=2) OR (LV=8)) AND (OI=25) THEN OI=1: GOTO 440 428 IF ((LV=2) OR (LV=8)) AND (OI=26) THEN OI=2: GOTO 440 430 IF (LV=2) OR (LV=8) THEN OI=OI+2: GOTO 440 432 IF ((LV=3) OR (LV=9) OR (LV=6)) AND (OI=1) THEN OI=26: GOTO 440 434 IF (LV=3) OR (LV=9) OR (LV=6) THEN OI=OI-1: GOTO 440 436 IF ((LV=4) OR (LV>9)) AND (OI=2) THEN OI=26: GOTO 440 438 IF ((LV=4) OR (LV>9)) AND (OI=1) THEN OI=25: GOTO 440 439 IF (LV=4) OR (LV>9) THEN OI=OI-2: GOTO 440 440 NEXT NU 460 GOSUB 2000 480 GOTO 80 700 IF (PE=1) AND (HP=4) THEN HA=1: RETURN 710 IF (PE=2) AND (HP=1) THEN HA=1: RETURN 720 IF (PE=3) AND (HP=2) THEN HA=1: RETURN 730 IF (PE=4) AND (HP=3) THEN HA=1: RETURN 737 HA=0: RETURN 800 REM 805 IF PE=1 THEN GOSUB 3300: GOSUB 3230:DU=DT: GOSUB 2600: GOSUB 3100 810 IF PE=2 THEN IF (CO=2) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT SA$ 820 IF (PE=2) AND (CO=1) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT SE$;" " 830 IF PE=3 THEN IF (CO=2) THEN GOSUB 3210: HTAB 26: VTAB 3: PRINT SA$ 840 IF (PE=3) AND (CO=1) THEN GOSUB 3210: VTAB 3: HTAB 26: PRINT SE$;" " 850 IF PE=4 THEN IF (CO=2) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT SA$ 860 IF (PE=4) AND (CO=1) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT SE$;" " 870 RETURN 900 IF CO=1 THEN SE$= CHR$ (OI+192): IF ((LV=2) OR (LV=8)) AND (OI<>26) THEN SE$=SE$+ CHR$ (OI+193): RETURN 910 IF (CO=1) AND ((LV=2) OR (LV=8)) AND (OI=26) THEN SE$=SE$+"A": RETURN 920 IF (CO=1) AND ((LV=4) OR (LV>9)) AND (OI=1) THEN SE$=SE$+"Z": RETURN 930 IF (CO=1) AND ((LV=4) OR (LV>9)) AND (OI<>1) THEN SE$=SE$+ CHR$ (OI+191): RETURN 940 RETURN 1100 PE=PE+1: IF PE=5 THEN PE=1 1120 RETURN 1200 PE=PE-1: IF PE=0 THEN PE=4 1220 RETURN 1500 GOSUB 5600 1502 HGR : HOME : VTAB 10: PRINT "PLEASE TYPE THE LEVEL (1-7) THAT YOU WOULD LIKE TO START AT ";: GET LV: IF (LV<1) OR (LV>7) THEN 1500 1505 HOME : HGR : VTAB 10 1507 GOSUB 5600 1510 INPUT "PLEASE TYPE THE TIME IN SECONDS (1-60)THAT YOU ARE ALLOWED T0 ANSWER WITH ";IP: IF (IP<1) OR (IP>60) THEN 1510 1513 GOSUB 5600 1515 DT=60*IP:DU=DT: RETURN 1600 IF FR=1 THEN FR=0: RETURN 1620 IF FR=0 THEN FR=1: RETURN 1700 REM *** HARVY INCREMENT *** 1710 HP=HP-1: IF HP=0 THEN HP=4: RETURN 1800 IF (HP=PE-1) OR ((PE=1) AND (HP=4)) THEN GOSUB 1700: RETURN 1810 RETURN 2000 GOSUB 3300: GOSUB 3100: HTAB 8: VTAB 18: PRINT "LEVEL ";LV+1;"!":NU=1:HP=4:PE= INT ( RND (1)*3)+2:CO=1:HA=0:HD=0:LV=LV+1: GOSUB 3250: RETURN 2010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*3)+2:HA=0:HD=0: POP : GOTO 80 2200 POKE -16368,0: FOR TI=1 TO DU:B= PEEK (-16384): IF B<128 THEN NEXT TI: POP : POP : POP : GOTO 3000 2210 DU=DU-TI: RETURN 2500 GOSUB 2200: IF (B<193) OR (B>218) THEN 2500 2505 RETURN 2600 HTAB 8: VTAB 18: PRINT "YOUR MOVE? ";: GOSUB 2500: IF (CO=2) THEN 2700 2610 IF CHR$ (B)= MID$ (SE$,1,1) THEN 2630 2620 POP : GOTO 3000 2630 IF (LV=2) OR (LV=4) OR (LV=8) OR (LV>9) THEN 2650 2640 SC=SC+LV: HTAB 20: VTAB 16: PRINT SC: RETURN 2650 GOSUB 2500: IF CHR$ (B)= MID$ (SE$,2,1) THEN GOTO 2640 2660 GOTO 2620 2700 IF (B=214) AND (CO=2) THEN VTAB 18: PRINT SA$:SC=SC+LV: VTAB 16: HTAB 20: PRINT SC: RETURN 2710 POP : GOTO 3000 3000 GOSUB 3100: GOSUB 3350: POKE 769,150: POKE 768,90: CALL 770: POKE 769,140: POKE 768,150: CALL 770: POKE 769,200: POKE 768,230: CALL 770:WR=WR+1: IF WR=NW THEN GOSUB 4000 3010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*3)+2:HA=0:HD=0: POP : GOTO 80 3100 HTAB 7: VTAB 4: PRINT " ";: HTAB 26: VTAB 3: PRINT " ": HTAB 25: VTAB 10: PRINT " ";: HTAB 8: VTAB 18: PRINT " ": RETURN 3200 XDRAW 2 AT 14,71: XDRAW 3 AT 12,70: POKE 769,75: POKE 768,140: CALL 770: POKE 769,75: POKE 768,120: CALL 770: XDRAW 3 AT 12,70: XDRAW 2 AT 14,71: GOSUB 3500: RETURN 3210 XDRAW 2 AT 117,54: XDRAW 3 AT 116,53: POKE 769,75: POKE 768,125: CALL 770: POKE 769,75: POKE 768,105: CALL 770: GOSUB 3240: XDRAW 3 AT 116,53: XDRAW 2 AT 117,54: GOSUB 3550: RETURN 3220 XDRAW 2 AT 235,69: XDRAW 3 AT 234,68: POKE 769,75: POKE 768,110: CALL 770: POKE 769,75: POKE 768,90: CALL 770: XDRAW 3 AT 234,68: XDRAW 2 AT 235,69: GOSUB 3600: RETURN 3230 POKE 769,75: POKE 768,85: CALL 770: POKE 769,150: POKE 768,60: CALL 770: RETURN 3240 FOR X=1 TO 30: NEXT X: RETURN 3250 FOR AX=1 TO 100: NEXT AX: POKE 769,170: POKE 768,120: CALL 770: POKE 769,150: POKE 768,90: CALL 770: POKE 769,150: POKE 768,75: CALL 770: POKE 769,160: POKE 768,60: CALL 770: FOR AX=1 TO 1000: NEXT AX: RETURN 3300 HCOLOR=3: DRAW 7 AT 18,64: DRAW 7 AT 31,64: DRAW 7 AT 120,45: DRAW 7 AT 134,45: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: XDRAW 6 AT 120,45: XDRAW 6 AT 134,45: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 3350 GOSUB 3300: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: RETURN 3360 XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3400 XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3500 IF FR=0 THEN ROT=32: DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 1 AT 18,64: XDRAW 1 AT 31,64: ROT=0: RETURN 3510 DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: RETURN 3550 IF FR=0 THEN ROT=32: DRAW 7 AT 122,45: DRAW 7 AT 136,45: XDRAW 1 AT 122,45: XDRAW 1 AT 136,45: ROT=0: RETURN 3560 ROT=0: DRAW 7 AT 118,45: DRAW 7 AT 132,45: XDRAW 1 AT 118,45: XDRAW 1 AT 132,45: RETURN 3600 IF FR=1 THEN ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 1 AT 235,60: XDRAW 1 AT 251,60: RETURN 3610 ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 4000 GOSUB 5000: GOSUB 5600: HGR : VTAB 8: HTAB 1: PRINT "YOUR SCORE IS ";SC: PRINT : PRINT "WOULD YOU LIKE TO PLAY AGAIN (Y/N) ?"; 4005 GET IP$: IF IP$<>"N" THEN POP : POP : GOTO 10 4010 TEXT : HOME : CALL 1005: NEW 5000 GET IQ$: HGR : GOSUB 5500:FI$="NAMES": GOSUB 5020: GOSUB 5028: GOSUB 5100: HGR : GOSUB 5200: GOSUB 5300: GOSUB 5500: GOSUB 5400: RETURN 5020 PRINT D$;"OPEN ";FI$ 5022 PRINT D$;"READ";FI$ 5024 FOR I=1 TO 40: INPUT NI$(I): NEXT I 5026 PRINT D$;"CLOSE";FI$ 5027 RETURN 5028 PRINT D$;"OPEN SCORES" 5030 PRINT D$;"READ SCORES" 5032 FOR I=1 TO 40: INPUT SI(I): NEXT I 5034 PRINT D$;"CLOSE SCORES" 5050 SPEED=130: HGR : VTAB 10: HTAB 5: PRINT "ENTERING INTELLECTUAL SOFTWARE'S": VTAB 12: HTAB 14: PRINT "HALL OF FAME": VTAB 20: GOSUB 5600: INPUT "PLEASE TYPE YOUR NAME HERE ";NA$: SPEED=255: RETURN 5100 IF SC<SI(40) THEN RETURN 5110 FOR I=1 TO 40: IF SC<SI(I) THEN NEXT I 5115 IF I=40 THEN NI$(40)=NA$:SI(40)=SC: RETURN 5120 TP=I: FOR J=TP TO 39:NB$(J+1)=NI$(J):SB(J+1)=SI(J): NEXT J:NI$(TP)=NA$:SI(TP)=SC: FOR J=(TP+1) TO 40:NI$(J)=NB$(J):SI(J)=SB(J): NEXT J: RETURN 5200 GOSUB 5600: HTAB 1: VTAB 1: PRINT "CONGRATULATIONS TO THESE HIGH SCORERS:" 5210 POKE -16302,0: HTAB 1: VTAB 3: FOR I=1 TO 20: PRINT NI$(I);: HTAB 10: PRINT SI(I);: HTAB 20: PRINT NI$(I+20);: HTAB 30: PRINT SI(I+20): NEXT I: RETURN 5300 VTAB 24: HTAB 1: PRINT "PLEASE HIT <RETURN> TO CONTINUE:";: GET IQ$: RETURN 5400 PRINT D$;"OPEN NAMES" 5402 PRINT D$;"DELETE NAMES" 5404 PRINT D$;"OPEN NAMES" 5410 PRINT D$;"WRITENAMES" 5420 FOR I=1 TO 40: PRINT NI$(I): NEXT I 5430 PRINT D$;"CLOSE NAMES" 5440 PRINT D$;"OPEN SCORES" 5442 PRINT D$;"DELETE SCORES" 5444 PRINT D$;"OPEN SCORES" 5450 PRINT D$;"WRITESCORES" 5460 FOR I=1 TO 40: PRINT SI(I): NEXT I 5470 PRINT D$;"CLOSE SCORES" 5480 RETURN 5500 VTAB 23: HTAB 1: PRINT D$;"NOMON C,I,O": VTAB 23: HTAB 1: PRINT " ": RETURN 5600 POKE 768,93: POKE 769,41: CALL 770: POKE 768,82: POKE 769,40: CALL 770: POKE 768,46: POKE 769,70: CALL 770: RETURN
ALPHARV · Applesoft BASIC · 154 lines — Alphabet + Harvey variant.
0 REM ** BUZZ BANG HARVEY ** 1 LOMEM:27697 2 D$= CHR$ (4): PRINT D$;"BLOAD NOTE" 4 HGR : HOME : DIM NI$(40): DIM SI(40): DIM NB$(40): DIM SB(40): DIM PI$(7) 5 PRINT D$;"BRUN TXT/GEN": CALL 1002 6 PRINT D$;"BLOAD SMILES,A$1DFC": POKE 232,252: POKE 233,29: ROT=0: SCALE=1: HCOLOR=3 7 FI$="QUOTES": GOSUB 5020: FOR I=1 TO 7:PI$(I)=NI$(I): NEXT I 10 NW=4:WR=0:SC=0:SA$="VOWEL" 20 GOSUB 1500 22 POKE -16303,0 24 PRINT D$;"BLOAD TABLE.PIC1" 25 POKE -16300,0: POKE -16302,0: POKE -16297,0: POKE -16304,0 30 GOSUB 3300 60 HP=4:PE= INT ( RND (1)*3)+2 65 GOSUB 3400 67 VTAB 16: HTAB 11: PRINT "SCORE: 0" 70 HOME 80 IF LV<7 THEN VTAB 20: PRINT PI$(LV): GOTO 84 82 VTAB 20: PRINT PI$(7) 84 OI= INT ( RND (1)*26)+1 85 REM 90 FOR NU=1 TO 26 100 CO=1 140 IF (LV>6) AND (HD=0) AND (NU>1) THEN GOSUB 700 150 IF ((LV=6) OR (LV=5)) AND ((OI=1) OR (OI=5) OR (OI=9) OR (OI=15) OR (OI=21)) THEN CO=2 270 FO=FR 280 IF (LV=6) AND (CO<>1) THEN GOSUB 1600 315 IF (HA) THEN HD=1:HA=0: GOTO 420 330 GOSUB 900 340 GOSUB 800 370 HD=0 390 IF (LV=6) AND (FR=1) THEN GOSUB 1200 395 IF (LV=6) AND (FR=0) THEN GOSUB 1100 400 IF (LV<>6) THEN GOSUB 1100 420 IF (LV=2) OR (LV=4) OR (LV=8) OR (LV=9) THEN NU=NU+1 422 IF ((LV=1) OR (LV=5) OR (LV=7)) AND (OI=26) THEN OI=1: GOTO 440 424 IF (LV=1) OR (LV=5) OR (LV=7) THEN OI=OI+1: GOTO 440 426 IF ((LV=2) OR (LV=8)) AND (OI=25) THEN OI=1: GOTO 440 428 IF ((LV=2) OR (LV=8)) AND (OI=26) THEN OI=2: GOTO 440 430 IF (LV=2) OR (LV=8) THEN OI=OI+2: GOTO 440 432 IF ((LV=3) OR (LV=9) OR (LV=6)) AND (OI=1) THEN OI=26: GOTO 440 434 IF (LV=3) OR (LV=9) OR (LV=6) THEN OI=OI-1: GOTO 440 436 IF ((LV=4) OR (LV>9)) AND (OI=2) THEN OI=26: GOTO 440 438 IF ((LV=4) OR (LV>9)) AND (OI=1) THEN OI=25: GOTO 440 439 IF (LV=4) OR (LV>9) THEN OI=OI-2: GOTO 440 440 NEXT NU 460 GOSUB 2000 480 GOTO 80 700 IF (PE=1) AND (HP=4) THEN HA=1: RETURN 710 IF (PE=2) AND (HP=1) THEN HA=1: RETURN 720 IF (PE=3) AND (HP=2) THEN HA=1: RETURN 730 IF (PE=4) AND (HP=3) THEN HA=1: RETURN 737 HA=0: RETURN 800 REM 805 IF PE=1 THEN GOSUB 3300: GOSUB 3230:DU=DT: GOSUB 2600: GOSUB 3100 810 IF PE=2 THEN IF (CO=2) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT SA$ 820 IF (PE=2) AND (CO=1) THEN GOSUB 3200: HTAB 7: VTAB 4: PRINT SE$;" " 830 IF PE=3 THEN IF (CO=2) THEN GOSUB 3210: HTAB 26: VTAB 3: PRINT SA$ 840 IF (PE=3) AND (CO=1) THEN GOSUB 3210: VTAB 3: HTAB 26: PRINT SE$;" " 850 IF PE=4 THEN IF (CO=2) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT SA$ 860 IF (PE=4) AND (CO=1) THEN GOSUB 3220: HTAB 25: VTAB 10: PRINT SE$;" " 870 RETURN 900 IF CO=1 THEN SE$= CHR$ (OI+192): IF ((LV=2) OR (LV=8)) AND (OI<>26) THEN SE$=SE$+ CHR$ (OI+193): RETURN 910 IF (CO=1) AND ((LV=2) OR (LV=8)) AND (OI=26) THEN SE$=SE$+"A": RETURN 920 IF (CO=1) AND ((LV=4) OR (LV>9)) AND (OI=1) THEN SE$=SE$+"Z": RETURN 930 IF (CO=1) AND ((LV=4) OR (LV>9)) AND (OI<>1) THEN SE$=SE$+ CHR$ (OI+191): RETURN 940 RETURN 1100 PE=PE+1: IF PE=5 THEN PE=1 1120 RETURN 1200 PE=PE-1: IF PE=0 THEN PE=4 1220 RETURN 1500 GOSUB 5600 1502 HGR : HOME : VTAB 10: PRINT "PLEASE TYPE THE LEVEL (1-10) THAT YOU WOULD LIKE TO START AT ";: GET LV: IF (LV<1) OR (LV>10) THEN 1500 1505 HOME : HGR : VTAB 10 1507 GOSUB 5600 1510 INPUT "PLEASE TYPE THE TIME IN SECONDS (1-60)THAT YOU ARE ALLOWED T0 ANSWER WITH ";IP: IF (IP<1) OR (IP>60) THEN 1510 1513 GOSUB 5600 1515 DT=60*IP:DU=DT: RETURN 1600 IF FR=1 THEN FR=0: RETURN 1620 IF FR=0 THEN FR=1: RETURN 1700 REM *** HARVY INCREMENT *** 1710 HP=HP-1: IF HP=0 THEN HP=4: RETURN 1800 IF (HP=PE-1) OR ((PE=1) AND (HP=4)) THEN GOSUB 1700: RETURN 1810 RETURN 2000 GOSUB 3300: GOSUB 3100: HTAB 8: VTAB 18: PRINT "LEVEL ";LV+1;"!":NU=1:HP=4:PE= INT ( RND (1)*3)+2:CO=1:HA=0:HD=0:LV=LV+1: GOSUB 3250: RETURN 2010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*3)+2:HA=0:HD=0: POP : GOTO 80 2200 POKE -16368,0: FOR TI=1 TO DU:B= PEEK (-16384): IF B<128 THEN NEXT TI: POP : POP : POP : GOTO 3000 2210 DU=DU-TI: RETURN 2500 GOSUB 2200: IF (B<193) OR (B>218) THEN 2500 2505 RETURN 2600 HTAB 8: VTAB 18: PRINT "YOUR MOVE? ";: GOSUB 2500: IF (CO=2) THEN 2700 2610 HTAB 20: VTAB 18: PRINT CHR$ (B);: IF CHR$ (B)= MID$ (SE$,1,1) THEN 2630 2620 POP : GOTO 3000 2630 IF (LV=2) OR (LV=4) OR (LV=8) OR (LV>9) THEN 2650 2640 SC=SC+LV: HTAB 20: VTAB 16: PRINT SC: RETURN 2650 GOSUB 2500: PRINT CHR$ (B): IF CHR$ (B)= MID$ (SE$,2,1) THEN GOTO 2640 2660 GOTO 2620 2700 IF (B=214) AND (CO=2) THEN VTAB 18: PRINT SA$:SC=SC+LV: VTAB 16: HTAB 20: PRINT SC: RETURN 2710 POP : GOTO 3000 3000 GOSUB 3100: GOSUB 3350: POKE 769,150: POKE 768,90: CALL 770: POKE 769,140: POKE 768,150: CALL 770: POKE 769,200: POKE 768,230: CALL 770:WR=WR+1: IF WR=NW THEN GOSUB 4000 3010 GOSUB 1710: GOSUB 3360:NU=1:PE= INT ( RND (1)*3)+2:HA=0:HD=0: POP : GOTO 80 3100 HTAB 7: VTAB 4: PRINT " ";: HTAB 26: VTAB 3: PRINT " ": HTAB 25: VTAB 10: PRINT " ";: HTAB 8: VTAB 18: PRINT " ": RETURN 3200 XDRAW 2 AT 14,71: XDRAW 3 AT 12,70: POKE 769,75: POKE 768,140: CALL 770: POKE 769,75: POKE 768,120: CALL 770: XDRAW 3 AT 12,70: XDRAW 2 AT 14,71: GOSUB 3500: RETURN 3210 XDRAW 2 AT 117,54: XDRAW 3 AT 116,53: POKE 769,75: POKE 768,125: CALL 770: POKE 769,75: POKE 768,105: CALL 770: GOSUB 3240: XDRAW 3 AT 116,53: XDRAW 2 AT 117,54: GOSUB 3550: RETURN 3220 XDRAW 2 AT 235,69: XDRAW 3 AT 234,68: POKE 769,75: POKE 768,110: CALL 770: POKE 769,75: POKE 768,90: CALL 770: XDRAW 3 AT 234,68: XDRAW 2 AT 235,69: GOSUB 3600: RETURN 3230 POKE 769,75: POKE 768,85: CALL 770: POKE 769,150: POKE 768,60: CALL 770: RETURN 3240 FOR X=1 TO 30: NEXT X: RETURN 3250 FOR AX=1 TO 100: NEXT AX: POKE 769,170: POKE 768,120: CALL 770: POKE 769,150: POKE 768,90: CALL 770: POKE 769,150: POKE 768,75: CALL 770: POKE 769,160: POKE 768,60: CALL 770: FOR AX=1 TO 1000: NEXT AX: RETURN 3300 HCOLOR=3: DRAW 7 AT 18,64: DRAW 7 AT 31,64: DRAW 7 AT 120,45: DRAW 7 AT 134,45: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: XDRAW 6 AT 120,45: XDRAW 6 AT 134,45: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 3350 GOSUB 3300: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: RETURN 3360 XDRAW 8 AT 14,71: XDRAW 8 AT 117,54: XDRAW 8 AT 235,69: XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3400 XDRAW 2 AT 14,71: XDRAW 2 AT 117,54: XDRAW 2 AT 235,69: RETURN 3500 IF FR=0 THEN ROT=32: DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 1 AT 18,64: XDRAW 1 AT 31,64: ROT=0: RETURN 3510 DRAW 7 AT 18,64: DRAW 7 AT 31,64: XDRAW 6 AT 17,64: XDRAW 6 AT 30,64: RETURN 3550 IF FR=0 THEN ROT=32: DRAW 7 AT 122,45: DRAW 7 AT 136,45: XDRAW 1 AT 122,45: XDRAW 1 AT 136,45: ROT=0: RETURN 3560 ROT=0: DRAW 7 AT 118,45: DRAW 7 AT 132,45: XDRAW 1 AT 118,45: XDRAW 1 AT 132,45: RETURN 3600 IF FR=1 THEN ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 1 AT 235,60: XDRAW 1 AT 251,60: RETURN 3610 ROT=0: DRAW 7 AT 235,60: DRAW 7 AT 251,60: XDRAW 6 AT 237,60: XDRAW 6 AT 253,60: RETURN 4000 GOSUB 5000: GOSUB 5600: HGR : VTAB 8: HTAB 1: PRINT "YOUR SCORE IS ";SC: PRINT : PRINT "WOULD YOU LIKE TO PLAY AGAIN (Y/N) ?"; 4005 GET IP$: IF IP$<>"N" THEN POP : POP : GOTO 10 4010 TEXT : HOME : CALL 1005: NEW 5000 GET IQ$: HGR : GOSUB 5500:FI$="NAMES": GOSUB 5020: GOSUB 5028: GOSUB 5100: HGR : GOSUB 5200: GOSUB 5300: GOSUB 5500: GOSUB 5400: RETURN 5020 PRINT D$;"OPEN ";FI$ 5022 PRINT D$;"READ";FI$ 5024 FOR I=1 TO 40: INPUT NI$(I): NEXT I 5026 PRINT D$;"CLOSE";FI$ 5027 RETURN 5028 PRINT D$;"OPEN SCORES" 5030 PRINT D$;"READ SCORES" 5032 FOR I=1 TO 40: INPUT SI(I): NEXT I 5034 PRINT D$;"CLOSE SCORES" 5050 SPEED=130: HGR : VTAB 10: HTAB 5: PRINT "ENTERING INTELLECTUAL SOFTWARE'S": VTAB 12: HTAB 14: PRINT "HALL OF FAME": VTAB 20: GOSUB 5600: INPUT "PLEASE TYPE YOUR NAME HERE ";NA$: SPEED=255: RETURN 5100 IF SC<SI(40) THEN RETURN 5110 FOR I=1 TO 40: IF SC<SI(I) THEN NEXT I 5115 IF I=40 THEN NI$(40)=NA$:SI(40)=SC: RETURN 5120 TP=I: FOR J=TP TO 39:NB$(J+1)=NI$(J):SB(J+1)=SI(J): NEXT J:NI$(TP)=NA$:SI(TP)=SC: FOR J=(TP+1) TO 40:NI$(J)=NB$(J):SI(J)=SB(J): NEXT J: RETURN 5200 GOSUB 5600: HTAB 1: VTAB 1: PRINT "CONGRATULATIONS TO THESE HIGH SCORERS:" 5210 POKE -16302,0: HTAB 1: VTAB 3: FOR I=1 TO 20: PRINT NI$(I);: HTAB 10: PRINT SI(I);: HTAB 20: PRINT NI$(I+20);: HTAB 30: PRINT SI(I+20): NEXT I: RETURN 5300 VTAB 24: HTAB 1: PRINT "PLEASE HIT <RETURN> TO CONTINUE:";: GET IQ$: RETURN 5400 PRINT D$;"OPEN NAMES" 5402 PRINT D$;"DELETE NAMES" 5404 PRINT D$;"OPEN NAMES" 5410 PRINT D$;"WRITENAMES" 5420 FOR I=1 TO 40: PRINT NI$(I): NEXT I 5430 PRINT D$;"CLOSE NAMES" 5440 PRINT D$;"OPEN SCORES" 5442 PRINT D$;"DELETE SCORES" 5444 PRINT D$;"OPEN SCORES" 5450 PRINT D$;"WRITESCORES" 5460 FOR I=1 TO 40: PRINT SI(I): NEXT I 5470 PRINT D$;"CLOSE SCORES" 5480 RETURN 5500 VTAB 23: HTAB 1: PRINT D$;"NOMON C,I,O": VTAB 23: HTAB 1: PRINT " ": RETURN 5600 POKE 768,93: POKE 769,41: CALL 770: POKE 768,82: POKE 769,40: CALL 770: POKE 768,46: POKE 769,70: CALL 770: RETURN
Preserved flux by 4am / Internet Archive. Format reversal & extraction 2026. ← back to the game