10 SCREEN 1,3:SCNCLR 15 FOR X=1 TO 6:COLOR(X)=0:NEXT X 20 PRINT SPC(29);:PRINT INVERSE(1);" A D D R E S S B O O K " 21 GOSUB 11000 22 ON ERROR GOTO 10000 25 OPEN "R",#3,"ADDRESS" ,72 26 FIELD #3,15 AS FIRST$,15 AS LAST$,30 AS ADDRESS$,12 AS PHONE$ 27 RGET #3,1 28 NUMBER=CVI(FIRST$) 29 ON ERROR GOTO 0 30 FOR X=1 TO 6:READ MENU$(X):NEXT X 35 SCNCLR 36 CHO=0 40 DATA " FIND "," PRINT LIST "," ADD "," DELETE "," CHANGE "," QUIT " 45 PRINT AT (20,3);"MAKE SURE YOU QUIT OR THE FILE WON'T BE CLOSED" 46 PRINT AT (20,4);" ----" 50 PRINT AT (35,6);MENU$(1):PRINT AT (35,8);MENU$(2):PRINT AT(35, 10);MENU$(3):PRINT AT (35,12);MENU$(4):PRINT AT (35,14);MENU$(5):PRINT AT (35,16);MENU$(6) 60 PENA 3:BOX(200,35;260,48),1 61 PENA 4:BOX(200,51;260,64),1 62 PENA 5:BOX(200,67;260,80),1 63 PENA 6:BOX(200,83;260,96),1 64 PENA 7:BOX(200,99;260,112),1 65 PENA 9:BOX(200,115;260,128),1 70 ASK MOUSE X%,Y%,B% 72 IF X%>=200 AND X%<=260 AND Y%>=35 AND Y%<=48 AND B%=4 THEN COL=1:GOTO 200 73 IF X%>=200 AND X%<=260 AND Y%>=51 AND Y%<=64 AND B%=4 THEN COL=2:GOTO 200 74 IF X%>=200 AND X%<=260 AND Y%>=67 AND Y%<=80 AND B%=4 THEN COL=3:GOTO 200 75 IF X%>=200 AND X%<=260 AND Y%>=83 AND Y%<=96 AND B%=4 THEN COL =4:GOTO 200 76 IF X%>=200 AND X%<=260 AND Y%>=99 AND Y%<=112 AND B%=4 THEN COL=5:GOTO 200 77 IF X%>=200 AND X%<=260 AND Y%>= 115 AND Y%<=128 AND B%=4 THEN COL =6 :GOTO 200 80 GOTO 70 200 REM ************************************** 210 REM * MAKE YOUR CHOICE * 220 REM ************************************** 230 ON COL GOTO 1000,2000,3000,4000,5000,6000 240 GOTO 35 1000 REM ****************************************** 1010 REM * FIND * 1020 REM ****************************************** 1021 CHO=0 1030 WINDOW #1,320,10,640,100,"FIND IT" 1040 CMD 1 1045 PENA 1:BOX(30,0;65,13),1 1046 PENA 2:BOX(30,16;65,29),1 1047 PENA 3:BOX(30,32;65,44),1 1048 PENA 4:BOX(30,47;65,60),1 1049 PENA 5:BOX(30,63;65,76),1 1050 PRINT AT(10,1);" FIRST NAME" 1060 PRINT AT(10,3);" LAST NAME" 1070 PRINT AT(10,5);" ADDRESS " 1080 PRINT AT(10,7);" PHONE NUMBER" 1090 PRINT AT(10,9);" RETURN TO MAIN MENU" 1100 REM 1110 ASK MOUSE X%,Y%,B% 1111 IF X% >=30 AND X%<=65 AND Y%>=0 AND Y%<=13 AND B%=4 THEN CHO=1 1112 IF X%>=30 AND X%<=65 AND Y%>=16 AND Y%<=29 AND B%=4 THEN CHO=2 1113 IF X%>=30 AND X%<=65 AND Y%>=32 AND Y%<=44 AND B%=4 THEN CHO=3 1114 IF X%>=30 AND X%<=65 AND Y%>=47 AND Y%<=60 AND B%=4 THEN CHO=4 1115 IF X%>=30 AND X%<=65 AND Y%>=63 AND Y%<=76 AND B%=4 THEN CHO=5 1120 IF CHO<1 OR CHO>5 THEN 1110 1140 ON CHO GOTO 1200,1300,1400,1500,1600 1150 GOTO 1110 1200 REM **** FIRST NAME 1201 START=1 1210 CLOSE 1:CMD 0 1220 SCNCLR 1230 INPUT"FIRST NAME TO SEARCH FOR";FIR$ 1240 FOR SEARCH=START TO NUMBER 1250 RGET #3,SEARCH 1260 IF LEFT$(FIRST$,(LEN(FIR$))) =FIR$ THEN FOUND=SEARCH:FOUNDFLAG=1:GOTO 1273 1270 NEXT SEARCH 1271 IF ONCE=0 THEN 1275 ELSE 1294 1273 IF FOUNDFLAG=1 THEN FOUNDFLAG=0:ONCE=1:GOTO 1280 1275 SCNCLR 1276 PRINT "COULDN'T LOCATE ";FIR$:SLEEP 990000:CHO=0:GOTO 1000 1280 PRINT FOUND,"FIRST NAME: ";FIRST$ 1290 PRINT SPC(15);"LAST NAME: ";LAST$ 1291 PRINT SPC(15);"ADDRESS : ";ADDRESS$ 1292 PRINT SPC(15);"PHONE # : ";PHONE$ 1293 START=FOUND+1:PRINT:GOTO 1240 1294 PRINT"HIT LEFT MOUSE BUTTON" 1295 ASK MOUSE X%,Y%,B%:IF B%<>4 THEN 1295 1296 ONCE=0:CHO=0:GOTO 1000 1300 REM **** LAST NAME 1301 START=1 1310 CLOSE 1:CMD 0 1320 SCNCLR 1330 INPUT "LAST NAME TO SEARCH FOR";LAS$ 1340 FOR SEARCH=START TO NUMBER 1350 RGET #3,SEARCH 1360 IF LEFT$(LAST$,(LEN(LAS$)))=LAS$ THEN FOUND=SEARCH:FOUNDFLAG=1:GOTO 1373 1370 NEXT SEARCH 1371 IF ONCE=0 THEN 1375 ELSE 1394 1373 IF FOUNDFLAG=1 THEN FOUNDFLAG=0:ONCE=1:GOTO 1380 1375 SCNCLR 1376 PRINT "COULDN'T LOCATE ";LAS$:SLEEP 990000:CHO=0:GOTO 1000 1380 PRINT FOUND,"FIRST NAME: ";FIRST$ 1390 PRINT SPC(15);"LAST NAME: ";LAST$ 1391 PRINT SPC(15);"ADDRESS : ";ADDRESS$ 1392 PRINT SPC(15);"PHONE # : ";PHONE$ 1393 START=FOUND+1:PRINT:GOTO 1340 1394 PRINT "HIT LEFT MOUSE BUTTON" 1395 ASK MOUSE X%,Y%,B%:IF B%<>4 THEN 1395 1396 ONCE=0:CHO=0:GOTO 1000 1400 REM **** ADDRESS 1401 START=1 1410 CLOSE 1:CMD 0 1420 SCNCLR 1430 INPUT "ADDRESS TO SEARCH FOR";ADD$ 1440 FOR SEARCH=START TO NUMBER 1450 RGET #3,SEARCH 1460 IF LEFT$(ADDRESS$,(LEN(ADD$)))=ADD$ THEN FOUND=SEARCH:FOUNDFLAG=1:GOTO 1473 1470 NEXT SEARCH 1471 IF ONCE=0 THEN 1475 ELSE 1494 1473 IF FOUNDFLAG=1 THEN FOUNDFLAG=0 :ONCE=1:GOTO 1480 1475 SCNCLR 1476 PRINT "COULDN'T LOCATE ";ADD$:SLEEP 990000:CHO=0:GOTO 1000 1480 PRINT FOUND,"FIRST NAME: ";FIRST$ 1490 PRINT SPC(15);"LAST NAME: ";LAST$ 1491 PRINT SPC(15);"ADDRESS : ";ADDRESS$ 1492 PRINT SPC(15);"PHONE # : ";PHONE$ 1493 START=FOUND+1:PRINT:GOTO 1440 1494 PRINT"HIT LEFT MOUSE BUTTON" 1495 ASK MOUSE X%,Y%,B%:IF B%<> 4 THEN 1495 1496 ONCE=0:CHO=0:GOTO 1000 1500 REM **** PHONE NUMBER 1501 START=1 1510 CLOSE 1:CMD 0 1520 SCNCLR 1530 INPUT"PHONE NUMBER TO SEARCH FOR";PHO$ 1540 FOR SEARCH=START TO NUMBER 1550 RGET #3,SEARCH 1560 IF LEFT$(PHONE$,(LEN(PHO$)))=PHO$ THEN FOUND=SEARCH:FOUNDFLAG=1:GOTO 1573 1570 NEXT SEARCH 1571 IF ONCE=0 THEN 1575 ELSE 1594 1573 IF FOUNDFLAG=1 THEN FOUNDFLAG=0 :ONCE=1:GOTO 1580 1575 SCNCLR 1576 PRINT "COULDN'T LOCATE ";PHO$:SLEEP 990000:CHO=0:GOTO 1000 1580 PRINT FOUND, "FIRST NAME : ";FIRST$ 1590 PRINT SPC(15);"LAST NAME : ";LAST$ 1591 PRINT SPC(15);"ADDRESS : ";ADDRESS$ 1592 PRINT SPC(15);"PHONE # : ";PHONE$ 1593 START=FOUND+1:PRINT:GOTO 1540 1594 PRINT "HIT LEFT MOUSE BUTTON" 1595 ASK MOUSE X%,Y%,B%:IF B%<> 4 THEN 1595 1596 ONCE=0:CHO=0:GOTO 1000 1600 REM **** RETURN TO MAIN MENU 1610 CLOSE 1:CMD 0 1620 SCNCLR:GOTO 35 2000 REM ****************************************** 2010 REM * PRINT LIST * 2020 REM ****************************************** 2030 CLOSE 1:CMD 0:SCNCLR 2040 INPUT"(S)creen or (P)rinter";file$ 2050 IF FILE$="S" OR FILE$="s" then FILE=1:GOTO 2080 2060 IF FILE$="P" OR FILE$="p" THEN FILE=2:GOTO 2080 2070 GOTO 2030 2080 REM 2090 OPEN "O",#2,"PRT:" 2100 SCNCLR 2110 IF FILE=2 THEN PRINT #FILE,"### FIRST LAST ADDRESS PHONE " 2111 IF FILE=1 THEN PRINT "### FIRST LAST ADDRESS PHONE" 2120 PRINT 2130 FOR X=2 TO NUMBER 2135 RGET #3,X 2136 IF LEFT$(FIRST$,7)="NOTHING" THEN 2150 2140 IF FILE=2 THEN PRINT #FILE,USING"###";X;:PRINT #FILE," ";:PRINT #FILE,FIRST$;LAST$;ADDRESS$;PHONE$ 2141 IF FILE=1 THEN PRINT USING"###";X;:PRINT " ";:PRINT FIRST$;LAST$;ADDRESS$;PHONE$ 2150 NEXT X 2160 PRINT:PRINT"HIT LEFT MOUSE BUTTON" 2165 CLOSE 2:CLOSE 1 2170 ASK MOUSE X%,Y%,B%:IF B%<> 4 THEN 2170 2171 SCNCLR:GOTO 35 3000 REM ****************************************** 3010 REM * ADD * 3020 REM ****************************************** 3030 CLOSE 1:CMD 0:SCNCLR 3040 INPUT "ENTER FIRST NAME TO ADD : ",FIR$ 3050 INPUT "ENTER LAST NAME TO ADD : ",LAS$ 3060 INPUT "ENTER ADDRESS TO ADD : ",ADD$ 3070 INPUT "ENTER PHONE NUMBER TO ADD : ",PHO$ 3071 FOR SEARCH=2 TO NUMBER:RGET #3,SEARCH 3072 IF LEFT$(FIRST$,7)="NOTHING" THEN RECORD=SEARCH:NUMBER=NUMBER-1:GOTO 3080 3073 NEXT SEARCH 3074 DIDNT=1 3075 NUMBER=NUMBER+1:RECORD=NUMBER 3080 LSET FIRST$=FIR$:LSET LAST$=LAS$:LSET ADDRESS$=ADD$:LSET PHONE$=PHO$ 3081 IF DIDNT=1 THEN DIDNT=0 :GOTO 3090 3082 NUMBER=NUMBER+1 3090 RPUT #3,RECORD 3092 LSET FIRST$=MKI$(NUMBER):LSET LAST$="NOTHING":LSET ADDRESS$="NOTHING":LSET PHONE$="NOTHING":RPUT #3,1 3093 SCNCLR:GOTO 35 3200 REM SCNCLR:PRINT FIRST$;" ";LAST$;" IS ALREADY IN HERE":SLEEP 990000:SCNCLR:GOTO 35 4000 REM ************************************** 4010 REM * DELETE * 4020 REM ************************************** 4030 CLOSE 1:CMD 0:SCNCLR 4040 INPUT"RECORD NUMBER TO DELETE";RECORD 4041 IF RECORD=0 THEN SCNCLR:GOTO 35 4050 IF RECORD >NUMBER THEN PRINT"HIGHEST RECORD IS";NUMBER:GOTO 4040 4060 RGET #3,RECORD 4070 PRINT "THAT RECORD IS : ";FIRST$ 4080 PRINT " ";LAST$ 4090 PRINT " ";ADDRESS$ 4100 PRINT " ";PHONE$ 4110 PRINT:INPUT"DO YOU STILL WANT TO DELETE THIS RECORD";QUEST$ 4120 IF QUEST$="Y" OR QUEST$="y" THEN 4140 4130 GOTO 4030 4140 LSET FIRST$="NOTHING":RPUT #3,RECORD 4150 PRINT:PRINT"THAT RECORD IS NOW DELETED" 4160 SLEEP 990000:SCNCLR:GOTO 35 5000 REM ************************************** 5010 REM * CHANGE * 5020 REM ************************************** 5030 CLOSE 1:CMD 0:SCNCLR 5040 INPUT"RECORD NUMBER TO CHANGE";RECORD 5050 IF RECORD=0 THEN SCNCLR:GOTO 35 5060 IF RECORD>NUMBER THEN PRINT "HIGHEST RECORD IS";NUMBER:GOTO 5040 5070 RGET #3,RECORD 5080 PRINT "1. FIRST : ";FIRST$ 5090 PRINT "2. LAST : ";LAST$ 5100 PRINT "3. ADDRESS : ";ADDRESS$ 5110 PRINT "4. PHONE$ : ";PHONE$ 5120 PRINT:PRINT INVERSE(1) "ENTER CHOICE TO CHANGE";:INPUT " ",CHAN 5130 IF CHAN=0 THEN 5030 5140 IF CHAN=1 THEN PRINT:INPUT"NEW FIRST NAME";FIR$:LSET FIRST$=FIR$ 5150 IF CHAN=2 THEN PRINT:INPUT"NEW LAST NAME ";LAS$:LSET LAST$=LAS$ 5160 IF CHAN=3 THEN PRINT:INPUT"NEW ADDRESS ";ADD$:LSET ADDRESS$=ADD$ 5170 IF CHAN=4 THEN PRINT:INPUT"NEW PHONE # ";PHO$:LSET PHONE$=PHO$ 5180 RPUT #3,RECORD 5190 GOTO 5030 6000 REM ************************************* 6010 REM * END THE PROGRAM * 6020 REM ************************************* 6030 CLOSE 3:CLOSE 1:CLOSE 2:CMD 0:SCNCLR 6040 FOR X= 1 TO 23:PRINT AT (X+1,X);"BYE":NEXT X:END 10000 IF ERL=25 THEN OPEN "N",#3,"ADDRESS",72:FIELD #3,15 AS FIRST$,15 AS LAST$,30 AS ADDRESS$,12 AS PHONE$ 10010 LSET FIRST$=MKI$(1):RPUT #3,1 10020 RESUME 27 11000 PRINT:PRINT SPC(38);:PRINT INVERSE(1);" B Y " 11010 PRINT:PRINT SPC(31);:PRINT INVERSE(1);" T O M M I L L E R " 11020 PRINT:PRINT SPC(22);:PRINT INVERSE(1);" V E R S I O N - 1 1 1 - 2 7 - 8 5 " 11030 PRINT:PRINT:PRINT:PRINT SPC(29);"HIT LEFT MOUSE BUTTON" 11040 ASK MOUSE X%,Y%,B%:IF B%<>4 THEN 11040 11050 return