--- title: "Phone Bok" type: "article" slug: "phone-bok" url: "http://localhost/article/phone-bok/" markdown_url: "http://localhost/article/phone-bok.md" published_at: "2026-01-25T14:45:21+00:00" modified_at: "2026-01-30T20:58:59+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "In this program, you can store up to 255 names, addresses and phone numbers. You can search through a file to modify a name, a street, a city, a state, a zip code or a phone number. You can create as many files as you need (actually 0 to 255). To modify a name, an…" category: - name: "Byte Power" slug: "byte-power" taxonomy: "category" url: "http://localhost/category/periodicals/byte-power/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Kristian Boisvert" slug: "boisvert-kristian" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-kristian/" publication_r: id: 38570 title: "Byte Power 1st Class Magazine" type: "periodical" url: "http://localhost/periodical/byte-power-1st-class/" authors_r: - name: "Kristian Boisvert" slug: "boisvert-kristian" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-kristian/" issues_articles: - id: 38572 title: "Byte Power Sept 1986" type: "issue" url: "http://localhost/issue/byte-power-2/" pubdate: "September 1986" archive_link: true article_media: - id: 63154 title: "Phone Book" type: "computer_media" url: "http://localhost/computer_media/phone-book/" --- # Phone Bok In this program, you can store up to 255 names, addresses and phone numbers. You can search through a file to modify a name, a street, a city, a state, a zip code or a phone number. You can create as many files as you need (actually 0 to 255). To modify a name, an address or a phone number, just enter the name to be modified and make the corrections. If you want to modify, say the zip code, just press ENTER until you’re asked to enter the new zip code. Anything you want to keep just press ENTER and the computer will keep that piece of information untouched. If you have selected a wrong command, say you wanted to see a name on the screen and you told the computer to enter a new name instead then press ENTER when the ‘NAME:’ prompt appears, this will cause the computer to return to the menu. ## Source Code: Phone Book ``` 1 CLS : IF PEEK 23681=0 THEN CLS : LIST 9999: STOP 3 PRINT AT 9,10;"PHONE BOOK";AT 11,3;"COPYRIGHT BYTE POWER 1986";AT 13,2;"WRITTEN BY KRISTIAN BOISVERT" 4 PAUSE 600 5 POKE 23658,8: LET FILE=1 10 DIM a$(250,120) 45 LET NU=0 50 CLS : PRINT AT 0,13;"MENU" 60 PRINT ''"1- ENTER NAME"''"2- DISPLAY A NAME ON SCREEN"''"3- CHANGE A NAME"''"4- LOAD NAMES FROM TAPE"''"5- SAVE NAMES ON TAPE"''"6- BEGIN A NEW FILE"''"7- QUIT PROGRAM" 70 LET Q$=INKEY$: IF Q$<"1" OR Q$>"7" THEN GO TO 70 75 IF Q$="6" THEN GO TO 4000 80 IF Q$="1" THEN GO TO 1000 85 IF Q$="2" AND NU<>0 THEN GO TO 2000 86 IF Q$="3" AND NU<>0 THEN GO TO 5000 87 IF Q$="4" THEN GO TO 6000 90 IF Q$="5" AND NU<>0 THEN GO TO 7000 95 IF Q$="7" THEN GO TO 8500 96 GO TO 70 1000 LET NU=NU+1: CLS : PRINT AT 0,10;"ENTER NAME" 1001 IF NU=251 THEN LET NU=250: PRINT '"WARNING: FILE FULL!"''"SAVE THIS FILE AND BEGIN A NEW ONE?": INPUT LINE T$: IF T$="Y" THEN GO SUB 7000: LET FILE=FILE+1: LET NU=0: GO TO 50 1005 LET F=NU 1010 INPUT "NAME:"; LINE A$(NU,1 TO 25): IF A$(NU,1 TO 25)=" " THEN LET NU=NU-1: GO TO 50 1020 INPUT "ADDRESS:"; LINE A$(NU,26 TO 58) 1030 INPUT "CITY:"; LINE A$(NU,59 TO 74) 1040 INPUT "STATE:"; LINE A$(NU,75 TO 100) 1050 INPUT "ZIP CODE:"; LINE A$(NU,101 TO 107) 1060 INPUT "PHONE NUMBER:"; LINE A$(NU,108 TO 120) 1090 GO SUB 2090 1100 INPUT "IS THIS CORRECT? (Y/N) "; LINE Q$ 1110 IF Q$="N" THEN GO TO 1001 1115 INPUT "ANOTHER? (Y/N) "; LINE Q$ 1116 IF Q$="N" THEN GO TO 50 1120 GO TO 1000 2000 CLS : PRINT AT 0,8;"DISPLAY A NAME": GO SUB 5010 2005 IF Q=1 THEN GO TO 50 2080 CLS : PRINT AT 0,8;"DISPLAY A NAME" 2081 GO SUB 2090: PAUSE 0: GO TO 50 2090 CLS : PRINT "FILE:";FILE;" #";F: PRINT AT 2,0;"NAME:";A$(F, TO 25) 2100 PRINT AT 4,0;"ADD.:";A$(F,26 TO 58) 2110 PRINT AT 6,0;"CITY:";A$(F,59 TO 74) 2120 PRINT AT 8,0;"STATE:";A$(F,75 TO 100) 2140 PRINT AT 10,0;"ZIP:";A$(F,101 TO 107) 2150 PRINT AT 12,0;"PHONE:";A$(F,108 TO 120) 2210 RETURN 4000 CLS : PRINT "ARE YOU SURE?" 4010 LET Q$=INKEY$ 4020 IF Q$="Y" THEN LET FILE=FILE+1: GO TO 10 4030 IF Q$<>"N" THEN GO TO 4010 4040 GO TO 50 5000 CLS : PRINT AT 0,9;"CHANGE A NAME": GO SUB 5010: IF Q=0 THEN GO TO 5080 5005 IF Q=1 THEN GO TO 50 5010 LET Q=0: INPUT "NAME:"; LINE Q$ 5020 IF Q$="" THEN LET Q=1: RETURN 5021 PRINT AT 2,0;"SEARCHING ";Q$;" " 5022 FOR F=1 TO NU 5023 IF LEN Q$<>25 THEN FOR G=1 TO 25-LEN Q$: LET Q$=Q$+" ": NEXT G 5024 IF Q$=A$(F, TO 25) THEN RETURN 5025 NEXT F 5026 PRINT "NAME NOT IN CURRENT FILE" 5060 PAUSE 600: CLS : GO TO 5000 5080 GO SUB 2090: INPUT "NEW NAME:"; LINE Q$: IF Q$="" THEN GO TO 5082 5081 LET A$(F, TO 25)=Q$ 5082 INPUT "NEW ADDRESS:"; LINE Q$: IF Q$="" THEN GO TO 5084 5083 LET A$(F,26 TO 58)=Q$ 5084 INPUT "NEW CITY:"; LINE Q$: IF Q$="" THEN GO TO 5086 5085 LET A$(F,59 TO 74)=Q$ 5086 INPUT "NEW STATE:"; LINE Q$: IF Q$="" THEN GO TO 5088 5087 LET A$(F,75 TO 100)=Q$ 5088 INPUT "NEW ZIP CODE:"; LINE Q$: IF Q$="" THEN GO TO 5090 5089 LET A$(F,101 TO 107)=Q$ 5090 INPUT "NEW PHONE NUMBER:"; LINE Q$: IF Q$="" THEN GO TO 5092 5091 LET A$(F,108 TO 120)=Q$ 5095 GO SUB 2090 5100 INPUT "IS THIS CORRECT? (Y/N) "; LINE Q$ 5110 IF Q$="N" THEN GO TO 5080 5120 INPUT "ANOTHER? (Y/N) "; LINE Q$ 5130 IF Q$="N" THEN GO TO 50 5140 GO TO 5000 6000 REM LOAD 6003 CLS : INPUT "LOAD FILE#";FI 6010 LOAD "FILE#"+STR$ FILE DATA A$() 6020 LOAD "#NAMESFILE"CODE 65534 6070 GO TO 50 7000 REM SAVE 7001 CLS 7002 PRINT "SAVE FILE#";FILE 7003 POKE 65534,FILE: POKE 65535,NU: SAVE "FILE#"+STR$ FILE DATA A$(): POKE 23736,181: SAVE "#NAMESFILE"CODE 65534,2 7010 INPUT "VERIFY? "; LINE Q$ 7020 IF Q$="Y" THEN VERIFY "FILE#"+STR$ FILE DATA A$(): VERIFY "#NAMESFILE"CODE 65534 7070 GO TO 50 8000 CLS : PRINT AT 10,5;"ERROR- COMMAND ABORTED" 8010 PAUSE 0: GO TO 50 8500 CLS : PRINT AT 10,0;"ARE YOU SURE?" 8510 LET Q$=INKEY$ 8515 IF Q$="Y" THEN NEW 8520 IF Q$="N" THEN GO TO 50 8530 GO TO 8510 9999 SAVE "PHONE BOOK" LINE 1: VERIFY "PHONE BOOK" ```