Superfile is a personal phone directory and restaurant menu program that stores contact information in DATA statements, organized into categories such as BBS systems, bike shops, pizza restaurants, friends, and veterinarians. Each DATA record consists of a name/number string, a category label, and a call-type flag (0=local, 1=area code, 2=toll) that is printed alongside search results. The program supports two search modes: category-based lookup using numeric shortcuts (1–12) or named category strings, and a substring name search that scans any portion of each record’s name field using a sliding window loop. Results are simultaneously output to both the screen and a printer via paired PRINT/LPRINT statements throughout. Several hidden keyword commands such as “listfile,” “dmenu,” “pmenu,” “cmenu,” and “palmenu” are accepted at prompts to access special functions including a full file listing and hardcoded pizza and food menus.
Program Structure
The program is divided into several functional regions, navigated primarily through GO TO jumps rather than subroutines:
- Lines 1–6: Title screen with animated BEEP fanfare, FREE memory display, and a startup keypress wait.
- Lines 19–50: Main menu display listing 12 named categories and call-type legend.
- Lines 100–150: Category search entry point; accepts special keyword commands and numeric/named category input.
- Lines 199–460: Name substring search loop and result display routing.
- Lines 500–621: Result formatting and output for both category and name searches.
- Lines 1000–7999: DATA statements containing the phone directory records.
- Lines 8000–8030: “listfile” mode — dumps all records sequentially to screen and printer.
- Lines 8500–8700: Numeric category alias translation (e.g., “1” → “Box”).
- Lines 9000–9996: Hardcoded pizza and food restaurant menus (Pizza Man, Doctor Munchies, and others implied by
cmenu/palmenu).
DATA Record Format
Each contact is stored as three DATA fields read into a$, b$, and f:
| Field | Variable | Contents |
|---|---|---|
| 1 | a$ | Name and phone number string (sometimes includes address) |
| 2 | b$ | Category label (e.g., “BBS”, “Bike”, “Pizza”, “Friends”) |
| 3 | f | Call type: 0=Local, 1=Area code, 2=Toll, 5=unlabeled |
The sentinel record at line 7999 uses a$="end" to signal end-of-file, after which RESTORE rewinds the DATA pointer for subsequent searches.
Substring Name Search
The name search (lines 400–460) implements a sliding-window substring match in BASIC. For a search string n$ of length x and a record name a$ of length y, a FOR loop iterates s from 1 to y-x+1, testing n$=a$(s TO s+x-1) at each position. This allows partial matches anywhere within the name field, which is why category 5 (“MISC Names”) is described in the menu as searchable by any part of the name. The search is case-sensitive, so capitalization must match the DATA entries exactly.
Dual Screen/Printer Output
Throughout the result display sections (lines 500–621), every PRINT statement is immediately followed by a matching LPRINT statement. This pattern is repeated for every combination of address flag (q$) and call-type flag (f), producing a total of around 20 paired output lines. The “listfile” mode at line 8000 similarly pairs PRINT a$, with LPRINT a$, on consecutive lines. Line 8000 also sets POKE 23692,255 to suppress the automatic scroll prompt, allowing continuous listing output without user intervention.
Navigation and Hidden Commands
The program accepts several special string commands at INPUT prompts that are not documented in the on-screen menu:
listfile— dumps the full DATA file to screen and printer (lines 8000–8030)pmenu— Pizza Man menu (line 9000)dmenu— Doctor Munchies menu (line 9200)cmenu— third restaurant menu (line 9400, not shown in listing)palmenu— fourth menu option (line 9500, not shown in listing)STOP(with trailing space) — cleanly halts executionm— returns to the main menu from most prompts
These commands are checked at both the top-level prompt (lines 108–114) and again after the category is entered (lines 121–124), providing two interception points.
Category Numeric Aliases
Lines 8500–8610 translate numeric inputs “1” through “12” into their corresponding category name strings before jumping to the search loop at line 199. Category “5” (MISC) is intentionally not translated — instead it displays a humorous scolding message and redirects to the name search, because MISC entries are only findable by substring name search, not by category match.
Call-Type Flag Value 5
The flag value f=5 appears in lines 503, 602, and 621, printing the name with trailing spaces but no call-type suffix. However, no DATA record in the listing actually uses f=5; values used are 0, 1, and 2. This code path appears to be dead code, possibly reserved for future use or a remnant of an earlier design.
Bugs and Anomalies
- Line 6 contains a sequence after the STOP:
LET i$=INKEY$:IF i$="" THEN GO TO 20. Because the precedingSTOPhalts execution, this code is unreachable under normal circumstances. - Line 150 reads
GO TO 8500but this is only reached when the category search path falls through without matching any special keyword command, which is the normal numeric/named category flow. This is correct behavior but the intermediate line 140 re-checks forlistfileredundantly, as it was already checked at line 112. - The DATA record at line 3760 for “John Peterson” uses a full address string as its category field rather than a category label like “Friends,” meaning it will never be found by category search but will appear in a name substring search displaying the address correctly as
b$. - Similarly, line 3840 for “Dave Clifford” uses a street address as
b$, while line 3841 duplicates the same phone number withb$="Friends", suggesting the address record was intentionally kept for the address-display path while the category record enables category lookup. - Line 9290 contains corrupted data — the PRINT statement trails off into what appears to be garbled tokenized BASIC or machine code content, indicating a damaged or overwritten line in the original file.
- The remainder of the listing after line 9290 consists of apparent memory garbage or corrupted token sequences, and does not represent valid BASIC lines.
Source Code
1 INK 0:PAPER 6:BORDER 6:CLS
2 BORDER 6:PAPER 6
3 PRINT AT 20,7;"BYTES FREE:";:PRINT FREE:PRINT AT 18,2;"Press any key to continue..."
4 PRINT AT 9,6;"*":PRINT AT 9,23;"*":PRINT AT 11,6;"*":PRINT AT 11,23;"*"
5 PRINT AT 8,6;"******************":PRINT AT 10,6;"* PHONE LISTINGS *":PRINT AT 12,6;"******************":LET m=12:BEEP .3,22:PAUSE m:BEEP .3,24:PAUSE m:BEEP .3,20:PAUSE m:BEEP .3,8:PAUSE m:BEEP 1.2,15
6 INPUT i$:IF i$="STOP " THEN STOP :LET i$= INKEY$:IF i$="" THEN GO TO 20
19 PAPER 7:INK 0:CLS
20 PAPER 7:CLS :BORDER 5:PRINT AT 0,8;"PHONE LISTINGS":PRINT :PRINT "Type 'm' at any prompt for menu"
30 PRINT :PRINT " FILE CATAGORIES:(PHONE #'s)"
31 PRINT :PRINT "(1)Box (2)Work (3)Bike"
32 PRINT "(4)Pizza (5)MISC Names (6)SF"
33 PRINT "(7)Friends (8)Bank (9)Judy"
34 PRINT "(10)BBS (11)Barz (12)Vet"
40 PRINT :PRINT " 'L'=Local Call 'A'=Area Call"
41 PRINT :PRINT " 'T'=Toll Call"
50 PRINT AT 16,0;"Names listed in the MISC. file are found by searching any part of the name. Ans 'n' to Catagorysearch? (y/n)"
100 INPUT "Want a Catagory search? (y/n)";z$:IF z$="STOP " THEN STOP
101 PAPER 5
108 IF z$="palmenu" THEN GO TO 9500
109 IF z$="cmenu" THEN GO TO 9400
110 IF z$="n" THEN GO TO 200
111 IF z$="m" THEN GO TO 20
112 IF z$="listfile" THEN GO TO 8000
113 IF z$="pmenu" THEN GO TO 9000
114 IF z$="dmenu" THEN GO TO 9200
115 INPUT "Catagory Please? ";m$
116 CLS :IF m$="m" THEN GO TO 20
117 IF m$="cmenu" THEN GO TO 9400
118 IF m$="STOP " THEN STOP
119 PRINT " SEARCHING FOR: ";m$:PRINT
120 READ a$,b$,f
121 IF m$="pmenu" THEN GO TO 9000
122 IF m$="dmenu" THEN GO TO 9200
123 IF m$="cmenu" THEN GO TO 9400
124 IF m$="palmenu" THEN GO TO 9500
130 IF a$="end" THEN RESTORE :PRINT :PRINT :PRINT b$:LPRINT :LPRINT :LPRINT b$:BEEP 1.4,20:BEEP .5,22:BEEP .9,23:BEEP 1.2,20:PAUSE 30:BEEP 1.4,20:BEEP .5,22:BEEP .7,23:BEEP .8,20:PAUSE 4:BEEP 2.8,27:GO TO 100
140 IF m$="listfile" THEN GO TO 8000
150 GO TO 8500
199 GO TO 500
200 INPUT "Name you are looking for? ";n$
205 IF n$="STOP " THEN STOP
206 IF n$="m" THEN GO TO 20
210 INPUT "Do you want the addresses? ";q$
211 IF q$="m" THEN GO TO 20
215 IF q$="STOP " THEN STOP
216 CLS
250 PRINT " SEARCHING FOR: ";n$:PRINT
300 READ a$,b$,f
310 IF a$="end" THEN RESTORE :PRINT :PRINT :PRINT b$:LPRINT :LPRINT :LPRINT b$:BEEP .05,40:BEEP .05,30:BEEP .05,40:BEEP .05,30:BEEP .05,40:BEEP .05,30:BEEP .05,40:BEEP .05,30:GO TO 200
400 LET x= LEN n$:LET y= LEN a$
410 FOR s=1 TO y-x+1
420 IF n$=a$(s TO s+x-1) AND q$="y" THEN GO TO 600
425 IF n$=a$(s TO s+x-1) AND q$="n" THEN GO TO 610
450 NEXT s
460 GO TO 300
500 IF m$=b$ AND f=0 THEN PRINT a$;" L",
501 IF m$=b$ AND f=0 THEN LPRINT a$;" L",
503 IF m$=b$ AND f=5 THEN PRINT a$;" ",
510 IF m$=b$ AND f=1 THEN PRINT a$;" A",
511 IF m$=b$ AND f=1 THEN LPRINT a$;" A",
520 IF m$=b$ AND f=2 THEN PRINT a$;" T",
521 IF m$=b$ AND f=2 THEN LPRINT a$;" T",
599 GO TO 120
600 IF q$="y" AND f=0 THEN PRINT a$,b$;" L",
601 IF q$="y" AND f=0 THEN LPRINT a$,b$;" L",
602 IF q$="y" AND f=5 THEN PRINT a$,b$;" ",
604 IF q$="y" AND f=1 THEN PRINT a$,b$;" A",
605 IF q$="y" AND f=1 THEN LPRINT a$,b$;" A",
607 IF q$="y" AND f=2 THEN PRINT a$,b$;" T",
608 IF q$="y" AND f=2 THEN LPRINT a$,b$;" T",
610 IF q$="n" AND f=0 THEN PRINT a$;" L",
611 IF q$="n" AND f=0 THEN LPRINT a$;" L",
612 IF q$="n" AND f=1 THEN PRINT a$;" A",
613 IF q$="n" AND f=1 THEN LPRINT a$;" A",
615 IF q$="n" AND f=2 THEN PRINT a$;" T",
620 IF q$="n" AND f=2 THEN LPRINT a$;" T",
621 IF q$="n" AND f=5 THEN PRINT a$;" ",
900 GO TO 300
1000 DATA "Donald G. Box: (213)667-1794 1609 Myra Ave, LA, CA 90027 ","Box",2
1040 DATA "SCI: 649-6314 ","BBS",1
1101 DATA "Davy's Locker!714-673-1434","Misc",1
1102 DATA "Cycle Mag:800-525-0643","Bike",0
1103 DATA "Columbia House:812-466-8125","Misc",2
1104 DATA "John Riley Law:800-221-1462","Bike",0
1110 DATA "Milano's: 662-7494","Pizza",0
1111 DATA "Palermo's: 663-1430","Pizza",0
1120 DATA "Spec II: 842-5187","Bike",0
1140 DATA "Rifle Fairing: (805)239-4235","Bike",2
1160 DATA "Hollywood Yamaha: 466-8451","Bike",0
1181 DATA "Terry Jarvis:669-1418","Friends",0
1182 DATA "Howards/Jarvis:665-5244","Friends",0
2090 DATA "Literia:(818)956-6164","BBS",0
3020 DATA "Oracle: 509-0897","BBS",0
3050 DATA "Buy phone: 474-0270","BBS",1
3060 DATA "Veterinarian: 384-1255","Vet",0
3070 DATA "LA BBS: 935-7570","BBS",0
3110 DATA "Charlatan: 656-4192","BBS",0
3130 DATA "DYM/28: 764-8000","BBS",0
3150 DATA "Eagle: 839-2264 ","BBS",0
3170 DATA "Computerfood: 559-9033","BBS",0
3190 DATA "Magnetic Fantasy: 388-5198","BBS",0
3210 DATA "DYM/25: 842-9452","BBS",0
3230 DATA "Tom Tcimpidis 366-1238","BBS",1
3360 DATA "C-64: (818)841-8249","BBS",1
3380 DATA "Odyssey: (818)845-1880","BBS",0
3390 DATA "Fred Blechman: (213)346-7024","Blechman",1
3440 DATA "Hollywood HONDA: 466-7191 Jim","Bike",0
3450 DATA "Mc Graw Ins:213-860-8166","Bike",0
3451 DATA "Mc Graw Ins:714-956-3020","Bike",0
3490 DATA "Speakeasy: 905-6262","BBS",1
3500 DATA "SFV GREEN MACHINE: 368-1661","BBS",1
3510 DATA "Pawn Shoppe: 859-2735","BBS",0
3520 DATA "Jailhouse: 999-4278","BBS",1
3530 DATA "Space Age: 782-6031","BBS",1
3540 DATA "CAL-BBS: 589-0372","BBS",0
3560 DATA "TSC Dowbbs: 516-9432","BBS",1
3570 DATA "Lusty's BBS: 318-6626","BBS",1
3580 DATA "Hollywood RCP/M: 653-6398","BBS",0
3590 DATA "Cinemaboard: 273-1314","BBS",0
3630 DATA "Doctor Munchie's: 666-1944","Pizza",0
3640 DATA "Swamps: 324-0218","BBS",1
3660 DATA "Shakey's Pizza: 633-2145","Pizza",0
3670 DATA "Cptn. Cork: 665-1269","Barz",0
3680 DATA "Gary's BBS: 779-7471","BBS",0
3690 DATA "Bankers & Hackers: 498-6581","BBS",1
3700 DATA "ZEBRA (timex): (212)296-2229","BBS",2
3730 DATA "John Murphy 803-3245/803-1675","Friends",1
3740 DATA "Free 800 BBS 1-800-438-2438","BBS",0
3760 DATA "John Peterson: 545-9581","2316 Walnut Ave. Manhattan Beach, Ca 90266",1
3780 DATA "Mothership: (818)765-7819","BBS",0
3790 DATA "Outer Limits: (818)275-4868","BBS",0
3800 DATA "Phun Phactory: (213)766-8252","BBS",0
3820 DATA "Ed Grey: (213)759-7406","Friends",0
3830 DATA "Ata Tursucu: 532-9445","Friends",1
3840 DATA "Dave Clifford 213-516-6648","13910 Halldale Ave. Gardena, CA, 90249",1
3841 DATA "Dave Clifford 213-516-6648","Friends",1
3880 DATA "Pizza Man: 466-9121","Pizza",0
3890 DATA "PC USERS(8-1-N):305-832-2503","BBS",2
3940 DATA "Chicken Delight: 465-7166","Pizza",0
7998 DATA " TYPE ""dmenu"", ""pmenu"",""cmenu"",or""palmenu"" for Pizza food menus","Pizza",0
7999 DATA "end"," END OF RUN",0
8000 CLS :POKE 23692,255
8001 READ a$,b$,f
8005 IF INKEY$="p" THEN PAUSE 1000
8010 IF a$="end" THEN RESTORE :GO TO 100
8020 PRINT a$,
8025 LPRINT a$,
8030 GO TO 8001
8500 IF m$="1" THEN LET m$="Box"
8510 IF m$="2" THEN LET m$="Work"
8520 IF m$="3" THEN LET m$="Bike"
8530 IF m$="4" THEN LET m$="Pizza"
8540 IF m$="5" THEN PRINT AT 7,0;"Look AIRHEAD...I'm gonna let youslide this time, but please readthe instructions before you use me again! (They're in the menu) ...DUMMY!":GO TO 200
8550 IF m$="6" THEN LET m$="SF"
8560 IF m$="7" THEN LET m$="Friends"
8570 IF m$="8" THEN LET m$="Bank"
8580 IF m$="9" THEN LET m$="Judy"
8590 IF m$="10" THEN LET m$="BBS"
8600 IF m$="11" THEN LET m$="Barz"
8610 IF m$="12" THEN LET m$="Vet"
8700 GO TO 199
9000 CLS :PRINT AT 0,12;"MENU"
9010 PRINT AT 2,7;"PIZZA MAN 466-9121"
9020 PRINT :PRINT "LARGE PIZZA":PRINT "Cheese 1 2 3"
9030 PRINT "$6.99 $7.99 $8.89 $9.79"
9040 PRINT "Sausage Pepperoni Salami Onion"
9041 PRINT "Bell Pepper Olive Jalapenos"
9042 PRINT "THE WORKS! $10.59 (ANYTHING)"
9043 PRINT "CHICAGO PIZZA (Pan) add $1.25"
9050 PRINT :PRINT "MISC. Potato Salad, Green Salad"
9051 PRINT "Baked Beans $.95 Fries $.75"
9052 PRINT "Garlic Bread $.80 Potato $.85"
9060 PRINT "Chicken, Cole Slaw, $.99"
9070 PRINT :PRINT "DESSERTS: Cheesecake $1.20 "
9080 PRINT "Brownies $.90 Carrot Cake $.99"
9090 PRINT "Puddings $.75 Pies $1.20"
9100 PRINT :PRINT "SUBMARINES $3.79-$3.99"
9110 PRINT "Sausage and Peppers Meatball"
9120 PRINT "Cold Cuts Half Pound Hamburger"
9130 PRINT "Fish w/fries Cold or Hot Ham"
9140 PRINT :PRINT "DINNERS $3.99-$6.99"
9150 PRINT "CHICKEN/REGULAR,RANCH,SOUTHERN"
9160 PRINT "RIBS BBQ/$5.99 BBQ COMBO/$4.99"
9170 PRINT "PLUS MANY MANY MORE GOODIES!"
9180 INPUT "Press ""t"" to back to the top of the menu";o$
9182 IF o$="t" THEN GO TO 9000
9190 GO TO 9996
9200 CLS :PAPER 5:PRINT AT 0,13;"MENU"
9210 PRINT :PRINT " DOCTOR MUNCHIES 666-1944"
9230 PRINT :PRINT " 10"" 12"" 16"""
9240 PRINT "CHEESE $4.15 $6.30 $8.40"
9250 PRINT "1 TOP 4.95 7.25 9.60"
9260 PRINT "2 TOP 5.75 8.20 10.75"
9270 PRINT "3 TOP 6.55 9.15 11.95"
9280 PRINT :PRINT "Pepperoni, Sausage, Onions"
9290 PRINT "Green Peppers"CHR$ PLOT AND [UDG-H]fW2 ERASE E STOP @R%[UDG-G] NEW V
5895 R CHR$ ▞ RUN f[UDG-G]W2 CHR$ F& CHR$ 6▞VW6R ERASE G CHR$ £S CODE R%4 POKE DB READ sR$TU"B READ c6 ERASE Hc VAL S CODE ] COS SIN %Et PAUSE # ABS COS LPRINT SIN "[UDG-F] RND[UDG-U]d PRINT "D▖R$[UDG-E]4R POKE b POKE DATA R ERASE I USR LPRINT CHR$ p ERASE K▝ COS CODE R"4▖[UDG-E]4 TAN T STOP DT BIN [UDG-E]t▌BCcR OPEN #sb ERASE K[UDG-A] LPRINT S CODE R$D[UDG-E] DATA DATA U%3[UDG-S] ERASE K[UDG-S]0R$6▞[UDG-G]6 ACS V STOP ▀G2[UDG-C]g&[UDG-G]W2 AND WF2 STOP C2 READ [UDG-D][UDG-C] ERASE K SIN 0R%6 RUN WF▞W& STOP 6▞[UDG-G]6 ACS V STOP CHR$ ▛6[UDG-C]C2 READ [UDG-D][UDG-C] ERASE K CHR$ 0R$[UDG-H]6 AND W"&[UDG-G]'2 AND 6▞[UDG-G]6 ACS V STOP WF2Cb READ [UDG-D][UDG-C] ERASE K ERASE 0R%&▀ PI7[UDG-G]6W2b RUN F AND WF2C2 READ [UDG-D][UDG-C] ERASE K LPRINT LPRINT S CODE R$%T4 TAN UE3[UDG-S] ERASE K PAUSE 0R#▝v[UDG-H]F▝ VERIFY VB RUN F AND w& ERASE L0R#"B STOP 6 PLOT AND R6 AND B& PLOT AND <=3[UDG-S]C▝ READ ERASE LR#[UDG-S]r PLOT VERIFY VB RUN F CHR$ w& ERASE L"0R#[UDG-G] BORDER B6 AND b& PLOT AND <=2C READ ▀[UDG-C] ERASE L2PS CODE R$d PRINT $tUB[UDG-F] RND[UDG-U]6E"STOP MERGE T4 DATA ▖[UDG-E]U2 ERASE LBPS CODE R%$[UDG-E]%3[UDG-S] AND "r PLOT NEW PAUSE W▛G&C▝ READ ERASE LR0R%$[UDG-E]%3[UDG-T]" AND "r PLOT NEW PAUSE W▛G& READ [UDG-C] ERASE Lq S[UDG-T] CODE S CODE S CODE R$U▌E$[UDG-S] ERASE L CHR$ @R$g&[UDG-G]W2B READ sR"POKE &VB READ [UDG-D]R ERASE L ERASE 0R%& PLOT AND CHR$ B READ v[UDG-G]2'&VB READ sR ERASE L STOP 0R%6 RUN WB READ [UDG-D][UDG-C]& PLOT VB RUN FB READ ▀R ERASE L PAUSE 0R$6▞VW6V6C6 RUN B6 SIN B READ [UDG-D][UDG-C] ERASE M0R$6▞Vbw26BC2 READ s[UDG-C]6 AND B READ [UDG-D][UDG-C] ERASE MR$ VERIFY & PLOT NEW [UDG-C]6 READ [UDG-D][UDG-C]6RB READ ▀[UDG-C] ERASE M" 72"'B""F PAUSE v PAUSE &F PAUSE F▞RF RUN # ACS ▝@ ERASE M1P INKEY$▝C ERASE 'B, PEEK NOT [UDG-D]C LPRINT ▝@ ERASE Q STR$ COS CODE R"U$ CLOSE # PAUSE u2 ERASE Q MOVE USR R"cc2 OPEN #3 RUN "cc2 OPEN #s▝ ERASE Q LPRINT @S CODE P ERASE Q LET pR"DD[UDG-E] DATA DATA U%2 ERASE R R%7WGF[UDG-C] VERIFY NEW BR READ sR ERASE RR%7WGF[UDG-C]7Vv PAUSE R READ sR ERASE R" R%7WGF[UDG-C]r PAUSE VERIFY V2b READ sR ERASE R2 R%7WGF[UDG-C]r PAUSE BEEP W6▛& PLOT PLOT BEEP 2b READ ▀R ERASE RB R$ AND [UDG-G] NEW wV[UDG-G] NEW [UDG-C]r PAUSE 6 AND r READ [UDG-D] ERASE RT R%&[UDG-G]v NEW R CHR$ VERIFY RUN 7F[UDG-G] PLOT AND [UDG-C] CHR$ AND [UDG-G] NEW wV[UDG-G] NEW [UDG-C] RUN "v NEW PLOT 66▞[UDG-C] STOP STOP STOP b READ R ERASE R TAN R'r POKE VERIFY V&2 CHR$ 6 CHR$ BEEP W6▛& PLOT PLOT ERASE CHR$ RUN "6 AND 6R STOP STOP STOP r READ [UDG-D] ERASE S R%& PLOT AND [UDG-C]7Vv PAUSE r READ [UDG-D] ERASE Sb R%& PLOT AND [UDG-C]f RUN & VERIFY [UDG-G] PAUSE b READ #R ERASE Sr R%& PLOT AND [UDG-C]r POKE VERIFY V&2r READ CR ERASE S▝ R%& PLOT AND [UDG-C]r RUN 6Rb ERASE RUN & PLOT PLOT BEEP 2r READ CR ERASE S[UDG-C] R%& PLOT AND [UDG-C]6[UDG-G]66[UDG-G]▞ VERIFY Vr READ CR ERASE S[UDG-Q]£S CODE S CODE P ERASE S LEN [UDG-Q]R"[UDG-F]D[UDG-E]D[UDG-E] DATA DATA U%2 ERASE S BIN R"▞[UDG-G] NEW 6 CHR$ STOP v[UDG-G]2'&V6B RUN "6 RUN W CHR$ 6[UDG-G]FR PLOT b7WGF[UDG-C][UDG-C] ERASE S ERASE S CODE S CODE R%fV7WF AND WG2r RUN 6RWF2 STOP C READ 3 ERASE S STOP @R%fV7WF AND WG2r RUN v▞[UDG-H]FR6R READ ▀ ERASE S PAUSE @R%fV7WF AND WG2r PLOT 6▞VW6R READ 3 ERASE T@R%fV7WF AND WG2r PLOT '&V'V VERIFY '2 READ 3 ERASE T@@S CODE P ERASE TQ FORMAT R"dTtUD[UDG-E]D[UDG-E] DATA DATA U%2 ERASE Tr@R$Vvw AND r RUN 6Rb7GF[UDG-C]r READ [UDG-D] ERASE T▝@R$ VERIFY VB STOP NEW PLOT PLOT F AND W2r RUN 6Rr READ [UDG-D] ERASE T[UDG-C]@R$ AND v NEW VERIFY NEW ▛v RUN & ATN 2[UDG-C]r READ [UDG-D] ERASE T LPRINT P ERASE U▘ VAL R"4▖[UDG-E]4 TAN T STOP bd[UDG-F]4▝ ERASE U[UDG-C]@R$6▞[UDG-G]6 ACS V STOP F[UDG-G]▞7'V VERIFY '2 RUN 6R[UDG-D] READ 3 ERASE U[UDG-S]@R$6▞[UDG-G]6 ACS V STOP [UDG-G]v[UDG-G] READ 3 ERASE U SIN @R$6▞[UDG-G]6 ACS V STOP VERIFY ▛v RUN & ATN 2[UDG-C] READ 3 ERASE U CHR$ @R%66[UDG-C]&V6 ATN [UDG-C] READ ERASE VS CODE R"E$[UDG-E] DATA ASN 2bDU54U%E2 ERASE V"@R$6 PLOT ffVRB READ cW▛&W76 PAUSE CC ERASE V2@R$ VERIFY [UDG-G] AND SIN READ [UDG-D]R[UDG-G]6RFV READ cR ERASE VB@R$&VW"READ [UDG-D]R▞V[UDG-G] NEW V ACS [UDG-G] STOP c ERASE VR@R$6▞[UDG-H]2R READ S6▞[UDG-G][UDG-C]R READ S ERASE Vb@R%& RUN 6RR READ S AND 'W66 PAUSE b READ S ERASE Vp P ERASE V▝@R$6▞VW6V6"READ F RUN 'F PLOT NEW [UDG-C]#R ERASE V[UDG-C]@R$6V66[UDG-G] NEW PAUSE "READ VERIFY V BORDER F"READ ERASE V[UDG-S]@R$6 PLOT AND [UDG-C]S7V VERIFY PLOT NEW [UDG-C]S ERASE W STOP 72"%B""F PAUSE v PAUSE &F PAUSE F▞RF RUN # ACS r@ ERASE W LET VAL INKEY$rC ERASE 'B,VrC ERASE %B, PEEK NOT [UDG-D]S LPRINT CHR$ P ERASE p VAL USR LPRINT CHR$ p ERASE p CHR$ LPRINT 72V BORDER FW"F PAUSE v PAUSE &F PAUSE F▞R VERIFY VERIFY V BORDER R# ACS ▝@ ERASE p MOVE @ INKEY$▝C ERASE .", PEEK # VAL$ NOT # LPRINT @ ERASE p LPRINT [UDG-Q]@ ERASE p LET USR ▝$B AND f[UDG-G] AND R,[UDG-T] LPRINT TAB b$f[UDG-G] AND R FLASH Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

