← back to the game

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

FileTypeWhat it is
HELLOApplesoftBoot: title, sound prompt, intro, menu
INRO 2ApplesoftSecond intro sequence
BUZZ(8-10), BUZZ(8-10)BACK, BUZZ(8-24)ApplesoftThe game: bizz-buzz-bang counting, three configurations
BUZZ(ALPH), ALPHARVApplesoftAlphabet variants
NOTE, NOTE.FIN, NOTE.Q6502 @ $0302The speaker routines (see below)
TXT/GEN6502 @ $60003KB hi-res text generator — draws text on the graphics screen
INTRO.PIC, TABLE.PIC1, HARVY.PICHi-res @ $2000The pictures, including the invisible man himself
QUOTES, NAMES, SCORES, S*TextLevel descriptions, high-score tables
SMILES6502 @ $1DFCSmiley 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

Intro picture
INTRO.PIC
Table picture
TABLE.PIC1
Harvey: bowler hat over an empty suit
HARVY.PIC — rendered from the recovered bytes

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