home *** CD-ROM | disk | FTP | other *** search
Wrap
10 '**************** INVENTORY FOR PRECIOUS MOMENTS************************* 20 ' WRITTEN IN BASICA 09/85 30 ' FOR CAROLE SKIBBY------------BY ED KRUSE 40 '************************************************************************ 50 GOSUB 16000 60 ON ERROR GOTO 14000 70 DIM PM$(12),MP$(12),SPARE$(2),DESC$(12),SR(2001),SO(2001) 80 RESTORE 90 FOR I=1 TO 12:READ DESC$(I):NEXT I 100 DATA Item Number,Common Name,Title,Retired (Y/N),Signed (Y/N),Members Only Yr.,Marked Symbol,Type Code,Current Value,Initial Cost,Date of Purchase mm/yy,For Personal or Trade 110 GOSUB 7400:CLOSE 120 F1$="$$###.##" 130 F2$="$$#,###.##" 140 F3$="#######.##" 500 '********************* MAIN PROGRAM ************************************ 510 CLS 520 LOCATE 6,27:PRINT "(1) = ADD NEW PIECE":PRINT 530 PRINT TAB(27);"(2) = SEARCH AND HARDCOPYS":PRINT 540 PRINT TAB(27);"(3) = INSURANCE REPORT":PRINT 550 PRINT TAB(27);"(4) = CHANGE EXISTING FILE":PRINT 560 PRINT TAB(27);"(5) = REVIEW ALL FILES":PRINT 570 PRINT TAB(27);"(S) = SORT MAIN FILES":PRINT 580 PRINT TAB(27);"(Q) = END PROGRAM" 590 LOCATE 4,10:PRINT STRING$(60,176) 600 FOR I=5 TO 19:LOCATE I,10:PRINT CHR$(176);CHR$(176):NEXT I 610 LOCATE 20,10:PRINT STRING$(60,176) 620 FOR I=19 TO 5 STEP-1:LOCATE I,68:PRINT CHR$(176);CHR$(176):NEXT I 630 LOCATE 2,6:PRINT STRING$(68,178) 640 FOR I=3 TO 21:LOCATE I,6:PRINT CHR$(178);CHR$(178):NEXT I 650 LOCATE 22,6:PRINT STRING$(68,178) 660 FOR I=21 TO 3 STEP-1:LOCATE I,72:PRINT CHR$(178);CHR$(178):NEXT I 670 LOCATE 4,22:PRINT " Enesco PRECIOUS MOMENTS Collection " 680 LOCATE 24,60:PRINT "YOUR CHOICE:";:W$=INPUT$(1) 690 IF W$="S" OR W$="s" THEN GOSUB 12000:GOTO 740 700 IF W$="Q" OR W$="q" THEN 9000 710 W=VAL(W$):IF W <1 OR W >5 THEN 680 720 CLS 730 ON W GOSUB 1000,2000,3000,4000,5000 740 CLOSE:GOTO 500 1000 '************************ ADD NEW PEICE ******************************* 1010 GOSUB 6000 1020 LOCATE 23,25:PRINT "ENTER (Q) AT ANY LINE TO QUIT:" 1030 RC%=LFN%+1:LOCATE 3,65:PRINT RC% 1040 L=7:C=35:FL=6:GOSUB 8000:IF IN$="Q" THEN RETURN 1050 MP$(1)=IN$:IF RT=1 THEN RETURN 1060 L=8:C=30:FL=35:GOSUB 8000:IF IN$="Q" THEN RETURN 1070 MP$(2)=IN$:IF RT=1 THEN RETURN 1080 L=9:C=28:FL=40:GOSUB 8000:IF IN$="Q" THEN RETURN 1090 MP$(3)=IN$:IF RT=1 THEN RETURN 1100 L=10:C=35:FL=1:GOSUB 8000:IF IN$="Q" THEN RETURN 1110 MP$(4)=IN$:IF RT=1 THEN RETURN 1120 L=11:C=35:FL=1:GOSUB 8000:IF IN$="Q" THEN RETURN 1130 MP$(5)=IN$:IF RT=1 THEN RETURN 1140 L=12:C=35:FL=4:GOSUB 8000:IF IN$="Q" THEN RETURN 1150 MP$(6)=IN$:IF RT=1 THEN RETURN 1160 L=13:C=35:FL=10:GOSUB 8000:IF IN$="Q" THEN RETURN 1170 MP$(7)=IN$:IF RT=1 THEN RETURN 1180 L=14:C=35:FL=2:GOSUB 8000:IF IN$="Q" THEN RETURN 1190 MP$(8)=IN$:IF RT=1 THEN RETURN 1200 L=15:C=35:FL=7:GOSUB 8000:IF IN$="Q" THEN RETURN 1210 MP$(9)=IN$:IF RT=1 THEN RETURN 1220 L=16:C=35:FL=6:GOSUB 8000:IF IN$="Q" THEN RETURN 1230 MP$(10)=IN$:IF RT=1 THEN RETURN 1240 L=17:C=50:FL=5:GOSUB 8000:IF IN$="Q" THEN RETURN 1250 MP$(11)=IN$:IF RT=1 THEN RETURN 1260 L=18:C=50:FL=1:GOSUB 8000:IF IN$="Q" THEN RETURN 1270 MP$(12)=IN$:IF RT=1 THEN RETURN 1280 LOCATE 23,1:PRINT STRING$(79,32) 1290 LOCATE 23,30:PRINT "IS THIS CORRECT? ; (Y/N):";:W$=INPUT$(1) 1300 IF W$="Q" THEN RETURN 1310 IF W$="N" THEN GOSUB 10000:GOTO 1280 1320 IF W$ <>"Y" THEN 1280 1330 CLS:LOCATE 12,25:PRINT "WRITING FILE TO DISK" 1340 GOSUB 7400:REC%=LFN%+1:GOSUB 7000:GOSUB 7800:CLOSE 1350 CLS:LOCATE 12,25:PRINT "WRITE ANOTHER FILE? (Y/N):";:W$=INPUT$(1) 1360 IF W$="Y" THEN CLS:GOTO 1000 1370 CLS:GOSUB 12000 1380 RETURN 2000 '******************** SEARCH FOR CATAGORY ***************************** 2010 CLS:CNTR=0:AA=0:TCO=0:TVL=0:TAV=0:HC=0:CO=0:VA=0:CTR=0:TL=0:LCTR=0:PGC=1 2020 CLOSE:SCH$="":SC$="":PB=0:BP=0:PQ=0 2030 LOCATE 2,34:PRINT "SEARCH MENU:" 2040 LOCATE 5,25:PRINT "(1) = FOR ITEM NUMBER:":PRINT 2050 PRINT TAB(25);"(2) = FOR MEMBER YEAR:":PRINT 2060 PRINT TAB(25);"(3) = FOR SYMBOL:":PRINT 2070 PRINT TAB(25);"(4) = FOR RETIRED ONLY:":PRINT 2080 PRINT TAB(25);"(5) = FOR SIGNED ONLY:":PRINT 2090 PRINT TAB(25);"(6) = FOR TYPE ONLY:":PRINT 2100 PRINT TAB(25);"(7) = FOR YEAR PERCHASED:":PRINT 2110 PRINT TAB(25);"(8) = PRINT ALL FILES:":PRINT 2120 PRINT TAB(25);"(Q) = RETURN TO MAIN MENU:";:PRINT 2130 LOCATE 3,20:PRINT STRING$(40,176) 2140 FOR I=3 TO 21:LOCATE I,20:PRINT CHR$(176);CHR$(176):NEXT I 2150 LOCATE 22,20:PRINT STRING$(40,176) 2160 FOR I=21 TO 3 STEP-1:LOCATE I,58:PRINT CHR$(176);CHR$(176):NEXT I 2170 LOCATE 23,34:PRINT "ENTER CHOICE:";:C$=INPUT$(1) 2180 IF C$="Q" OR C$="q" THEN RETURN 2190 CH=VAL(C$):PB=0 2200 IF CH <1 OR CH >8 THEN 2170 2210 ON CH GOTO 2220,2250,2280,2310,2330,2350,2380,2400 2220 CLS:LOCATE 12,30:PRINT "ENTER ITEM NUMBER: ";:LINE INPUT SC$ 2230 SCH$=LEFT$(SC$+" ",6):N=1:TITLE$="ITEM NUMBER":BP=0:PQ=1:CLS:GOTO 2420 2240 ' 2250 CLS:LOCATE 12,30:PRINT "ENTER MEMBER YEAR; yyyy :";:LINE INPUT SC$ 2260 SCH$=LEFT$(SC$+" ",4):N=6:TITLE$="MEMBER YEAR":BP=0:CLS:GOTO 2420 2270 ' 2280 CLS:LOCATE 12,30:PRINT "ENTER SYMBOL: ";:LINE INPUT SC$ 2290 SCH$=LEFT$(SC$+" ",10):TITLE$="SYMBOL":N=7:BP=0:CLS:GOTO 2420 2300 ' 2310 CLS:SCH$="Y":N=4:TITLE$="RETIRED":BP=0:GOTO 2420 2320 ' 2330 CLS:SCH$="Y":N=5:TITLE$="SIGNED":BP=0:GOTO 2420 2340 ' 2350 CLS:LOCATE 12,30:PRINT "ENTER TYPE: ";:LINE INPUT SC$ 2360 SCH$=LEFT$(SC$+" ",2):TITLE$="TYPE:":N=8:BP=0:CLS:GOTO 2420 2370 ' 2380 CLS:LOCATE 12,30:PRINT "ENTER YEAR: TWO DIGETS:";:LINE INPUT SC$ 2390 SCH$=LEFT$(SC$+" ",2):TITLE$="YEARS PURCHASES:":BP=1:PB=1:CLS:GOTO 2420 2400 CLS:BP=1:PB=0:TITLE$="ALL FILES:":GOTO 2420 2410 ' 2420 CLS:LOCATE 12,25:PRINT "DO YOU WANT A HARDCOPY? (Y/N) ";:HC$=INPUT$(1) 2430 IF HC$ <CHR$(65) THEN 2420 2440 IF HC$="Y" OR HC$="y" THEN HC=1 ELSE HC=0 2450 LOCATE 14,20:PRINT "DO YOU WANT PERSONAL, TRADE OR ALL FILES?:" 2460 PRINT :PRINT TAB(25);"TYPE OF FILE = ";:LINE INPUT FF$:FF$=LEFT$(FF$,1) 2470 IF FF$ <"A" THEN FF$="A" 2480 CLS:IF HC=0 THEN 2550 2520 LPRINT "PAGE: ";PGC;TAB(30);TITLE$;" ";SC$;TAB(55);"Report Date: ";DATE$ 2530 LPRINT STRING$(78,61) 2540 IF LCTR=55 THEN RETURN 2550 GOSUB 7400:GOSUB 7610:RC%=1 2560 PRINT "Report Date: ";DATE$;TAB(35);TITLE$;" ";SC$ 2570 AAA$="" 2580 GET #3,RC%:REC%=VAL(RS$) 2590 IF OS$="ZZZZZZZ" THEN 2770 2600 GET #1,REC% 2610 IF FF$="A" THEN 2630 2620 IF FF$ <> PM$(12) THEN 2750 2630 IF BP=1 THEN 2670 2640 IF PQ=0 THEN 2660 2650 IF VAL(SCH$)=VAL(PM$(N)) THEN 2670 2660 IF SCH$ <>PM$(N) THEN 2750 2670 IF PB=0 THEN 2690 2680 IF SCH$ <> RIGHT$(PM$(11),2) THEN 2750 2690 GOSUB 13000 2700 CNTR=CNTR+1 2710 IF HC=0 THEN 2740 2720 LCTR=LCTR+5:IF LCTR <>55 THEN 2740 2730 PGC=PGC+1:LPRINT CHR$(12):GOSUB 2520:LCTR=0 2740 PRINT "Searching For: ";TITLE$;" ";SC$;STRING$(8,45);"Press Any Key To Pause-Or-`Q' = Quit" 2750 AAA$=INKEY$:IF AAA$ >"" THEN 2930 2760 RC%=RC%+1:GOTO 2580 2770 PRINT :PRINT TAB(50);"TOTAL COST: ";:PRINT USING F2$;TCO 2780 PRINT TAB(50);"TOTAL VALUE: ";:PRINT USING F2$;TVL 2790 IF HC=0 THEN 2830 2800 LPRINT STRING$(78,61) 2810 LPRINT TAB(50);"TOTAL COST: ";:LPRINT USING F2$;TCO 2820 LPRINT TAB(50);"TOTAL VALUE: ";:LPRINT USING F2$;TVL 2830 IF TCO=0 THEN TAV=TVL:AA=0:GOTO 2845 2840 TAV=TVL-TCO:AA=(TAV/TCO)*100:GOTO 2850 2845 IF TVL >0 THEN AA=100 2850 IF HC=0 THEN 2890 2860 LPRINT TAB(43);"APPRECIATION VALUE: ";:LPRINT USING F2$;TAV 2870 LPRINT TAB(5);"TOTAL # PCS. = ";CNTR;TAB(42);"APPRECIATION PERCENT:";:LPRINT USING F3$;AA;:LPRINT "%" 2880 LPRINT CHR$(12) 2890 PRINT TAB(43);"APPRECIATION VALUE: ";:PRINT USING F2$;TAV 2900 PRINT TAB(5);" TOTAL # PCS. = ";CNTR;TAB(42);"APPRECIATION PERCENT:";:PRINT USING F3$;AA;:PRINT "%" 2910 PRINT TAB(30);"PRESS RETURN:";:W$=INPUT$(1) 2920 GOTO 2000 2930 W$=INPUT$(1):IF W$="Q" THEN 2000 ELSE AAA$="":GOTO 2760 3000 '********************* INSURANCE REPORT ******************************* 3010 CLS:TP=0:CTR=0:TL=0:LCTR=1:PGC=1 3020 LOCATE 12,20:PRINT "DO YOU WANT PERSONAL, TRADE OR ALL FILES?" 3030 PRINT :PRINT TAB(25);"TYPE OF FILE = ";:LINE INPUT FF$:FF$=LEFT$(FF$,1) 3040 IF FF$ < "A" THEN FF$="A" 3050 IF FF$="A" THEN FA$="ALL FILES:" 3060 IF FF$="P" THEN FA$="PERSONAL FILES:" 3070 IF FF$="T" THEN FA$="TRADE FILES:" 3080 CLS:PRINT TAB(25);"INSURANCE REPORT: ";DATE$;SPC(10);FA$ 3090 PRINT STRING$(79,61) 3100 LPRINT TAB(56);"Name:" 3110 LPRINT TAB(56);"Street:" 3120 LPRINT TAB(56);"City,St. & Zip:":LPRINT 3130 LPRINT "PAGE: ";PGC;TAB(25);"INSURANCE REPORT: ";DATE$;SPC(10);FA$:LPRINT 3140 LPRINT STRING$(78,61) 3150 PRINT "ITEM#";SPC(12);"COMMON NAME";SPC(25);"MARK";SPC(8);"VALUE" 3160 LPRINT "FILE# ITEM#";SPC(11);"COMMON NAME";SPC(20);"MARK";SPC(14);"VALUE" 3170 LPRINT STRING$(78,61):PRINT STRING$(80,61) 3180 IF LCTR=50 THEN RETURN 3190 GOSUB 7400:GOSUB 7610:RC%=1 3200 GET #3,RC%:REC%=VAL(RS$) 3210 IF OS$="ZZZZZZZ" THEN 3340 3220 GET #1,REC% 3230 IF FF$="A" THEN 3250 3240 IF FF$ <>PM$(12) THEN 3330 3250 CTR=VAL(PM$(9)) 3260 PRINT PM$(1);SPC(6);PM$(2);SPC(6);PM$(7); 3270 PRINT USING F1$;CTR 3275 TP=TP+1 3280 TL=TL+CTR 3290 LPRINT REC%;TAB(9);PM$(1);SPC(3);PM$(2);SPC(3);PM$(7);SPC(6); 3300 LPRINT USING F1$;CTR 3310 LCTR=LCTR+1:IF LCTR <>50 THEN 3330 3320 PGC=PGC+1:LPRINT CHR$(12):GOSUB 3130:LCTR=1 3330 RC%=RC%+1:GOTO 3200 3340 PRINT STRING$(80,61) 3350 PRINT TAB(50);"TOTAL VALUE: ";:PRINT USING F2$;TL 3360 LPRINT STRING$(78,61):LPRINT 3370 LPRINT " TOTAL # PCS.= ";TP;TAB(50);"TOTAL VALUE: ";:LPRINT USING F2$;TL 3380 PRINT:PRINT TAB(50);"PRESS RETURN:";:W$=INPUT$(1) 3390 RETURN 4000 '***************** CHANGE EXISTING FILE ******************************* 4010 CLS:LOCATE 8,25:PRINT "FILES START AT #1 AND END AT #";LFN% 4020 LOCATE 10,30:PRINT "ENTER (Q) TO QUIT:" 4030 LOCATE 12,30:PRINT "FILE # TO EDIT = ";:LINE INPUT RC$ 4040 IF RC$="Q" OR RC$="q" THEN RETURN 4050 CLS:REC%=VAL(RC$):IF REC% >LFN% OR REC%=0 THEN 4000 4060 GOSUB 6000:GOSUB 7400:GET #1,REC%:GOSUB 7200 4070 LOCATE 3,65:PRINT REC%:GOSUB 11000:GOSUB 10000 4080 RT=0 4090 LOCATE 23,1:PRINT STRING$(79,32) 4100 LOCATE 23,24:PRINT "IS THIS CORRECT: (Y/N): (Q) TO QUIT: ";:W$=INPUT$(1) 4110 IF W$="Q" THEN RETURN 4120 IF W$="N" THEN GOSUB 10000:GOTO 4090 4130 IF W$ <>"Y" THEN 4090 4140 CLS:LOCATE 12,25:PRINT "WRITING CORRECTED FILE TO DISK" 4150 GOSUB 7000:GOSUB 7800:CLOSE 4160 CLS:LOCATE 12,25:PRINT "EDIT ANOTHER FILE: (Y/N): ";:W$=INPUT$(1) 4170 IF W$="Y" OR W$="y" THEN 4000 ELSE RETURN 4180 RETURN 5000 '***************** REVIEW ALL FILES *********************************** 5010 CLS:A$="" 5020 LOCATE 12,20:PRINT "DO YOU WANT PERSONAL, TRADE OR ALL FILES?" 5030 PRINT :PRINT TAB(25);"TYPE OF FILES = ";:LINE INPUT FF$:FF$=LEFT$(FF$,1) 5040 IF FF$ <"A" THEN FF$="A" 5050 IF FF$="A" THEN FA$="ALL FILES" 5060 IF FF$="P" THEN FA$="PERSONAL FILES" 5070 IF FF$="T" THEN FA$="TRADE FILES" 5080 CLS:GOSUB 6000 5090 LOCATE 5,27:PRINT " REVIEWING ";FA$;" " 5100 LOCATE 20,29:PRINT "PRESS ANY KEY TO PAUSE:" 5110 GOSUB 7400 5120 FOR REC%=1 TO LFN% 5130 GET #1,REC% 5140 IF FF$="A" THEN 5160 5150 IF FF$ <> PM$(12) THEN 5230 5160 LOCATE 3,65:PRINT REC% 5170 GOSUB 7200:GOSUB 11000 5180 FOR I=1 TO 1200:NEXT I 5190 A$=INKEY$:IF A$="" THEN 5230 5200 LOCATE 22,40:PRINT "RETURN TO CONTINUE--(Q) TO QUIT:";:A$=INPUT$(1) 5210 IF A$="Q" OR A$="q" THEN RETURN 5220 LOCATE 22,1:PRINT STRING$(80,32):A$="" 5230 NEXT REC% 5240 CLOSE 5250 LOCATE 22,50:PRINT "END OF FILES: PRESS RETURN:";:W$=INPUT$(1) 5260 RETURN 6000 '******************* SCREEN ROUTINE ********************************* 6010 LOCATE 1,22:PRINT "TOTAL NUMBER OF FILES ALLOWED IS 2000" 6020 LOCATE 5,9:PRINT STRING$(62,176) 6030 FOR I=6 TO 18:LOCATE I,9:PRINT CHR$(176);CHR$(176):NEXT I 6040 LOCATE 19,9:PRINT STRING$(62,176) 6050 FOR I=18 TO 6 STEP-1:LOCATE I,69:PRINT CHR$(176);CHR$(176):NEXT I 6060 L=7:C=12 6070 FOR J=1 TO 12 6080 LOCATE L,C:PRINT "(";J;")=";DESC$(J) 6090 L=L+1 6100 NEXT J 6110 LOCATE 3,10:PRINT "Todays Date:";DATE$;SPC(23);"File# - " 6120 LOCATE 19,31:PRINT " PRECIOUS MOMENTS " 6130 RETURN 7000 '********************** SET ARRAY DATA TO BUFFER ********************** 7010 FOR I=1 TO 12 7020 LSET PM$(I)=MP$(I) 7030 NEXT I 7040 RETURN 7200 '******************* WRITE BUFFER TO ARRAY *************************** 7210 FOR I=1 TO 12 7220 MP$(I)=PM$(I) 7230 NEXT I 7240 RETURN 7400 '****************** OPEN MAIN FILES ********************************** 7410 RT=0 7420 OPEN "R",1,DD$+"PRECIOUS.DAT" 7430 FIELD #1,6 AS PM$(1),35 AS PM$(2),40 AS PM$(3),1 AS PM$(4),1 AS PM$(5),4 AS PM$(6),10 AS PM$(7),2 AS PM$(8),7 AS PM$(9),6 AS PM$(10),5 AS PM$(11),1 AS PM$(12),5 AS SPARE$,5 AS FIL$ 7440 IF LOF(1)=0 THEN LSET FIL$=STR$(0):PUT 1,1 7450 GET #1,1:LFN%=VAL(FIL$) 7460 IF LFN% >2000 THEN CLOSE:GOTO 15000 7470 RETURN 7600 '********************** OPEN SORTED KEY FILE ************************* 7610 OPEN "R",3,DD$+"PRECIOUS.KEY",12 7620 FIELD #3,7 AS OS$,5 AS RS$ 7630 IF LOF(3)=0 THEN PUT#3,1 7640 RETURN 7800 '********************** WRITE BUFFER TO DISK **************************** 7810 PUT#1,REC% 7820 IF REC% <= LFN% THEN RETURN 7830 GET 1,1:LSET FIL$=STR$(REC%):PUT 1,1 7840 LFN%=REC%:RETURN 8000 '********************************************************************* 8010 ' PRINT FIELD NEXT TO DATA PROMPT 8020 '************************************************************************ 8030 IN$="":W$="":WD=0:WS=WD:WL%=WD:WX%=C 8040 IF FL=0 THEN FL=1 8050 LOCATE L,WX% 8060 PRINT STRING$(ABS(FL),43); 8070 LOCATE L,WX% 8080 '++++++++++++++++++++++WAITING FOR DATA INPUT++++++++++++++++++++++++++++ 8090 W$=INPUT$(1) 8100 IF W$=CHR$(127) THEN 8030 8110 IF W$=CHR$(8) AND WL%=0 THEN 8070 8120 IF W$=CHR$(8) AND WL% >0 THEN WX%=((C+WL%)-1):WL%=(WL%-1):IN$=LEFT$(IN$,WL%):LOCATE L,WX%:PRINT CHR$(43):GOTO 8070 8130 IF W$=CHR$(13) THEN RETURN 8140 WV=ASC(W$) 8150 IF WV > 96 AND WV <> 127 THEN WV=WV-32:W$=CHR$(WV) 8160 IF ABS(FL)=WL% THEN 8210 8170 IF FL >0 AND W$ >=" " AND W$ <="z" THEN 8220 8180 IF FL <0 AND W$>"/" AND W$<":" THEN 8220 8190 IF (W$="." OR W$=",") AND WD=0 THEN WD=1:GOTO 8220 8200 IF (W$="-" OR W$="+") AND WS=0 AND WL%=0 THEN WS=1:GOTO 8220 8210 GOTO 8090 8220 ' 8230 PRINT W$;:IN$=IN$+W$:WL%=WL%+1 8240 GOTO 8090 9000 '*********************** END PROGRAM ******************************* 9010 CLS:CLOSE 9020 FOR I=1 TO 24:PRINT STRING$(79,4):NEXT I 9030 LOCATE 10,20:PRINT STRING$(40,219) 9040 FOR I=11 TO 15:LOCATE I,20:PRINT CHR$(219);SPC(38);CHR$(219):NEXT I 9050 LOCATE 16,20:PRINT STRING$(40,219) 9060 LOCATE 12,32:PRINT "HAVE A NICE DAY" 9070 LOCATE 14,26:PRINT "MAY YOU FIND THAT RARE PIECE" 9080 FOR T=1 TO 4000:NEXT T 9090 CLS:END 10000 '********************* EDIT SUBROUTINE ******************************** 10010 IF FF$="T" THEN FA$="TRADE FILES:" 10020 RT=1 10030 LOCATE 23,1:PRINT STRING$(79,32) 10040 LOCATE 23,15:PRINT "ENTER LINE NUMBER TO CHANGE - OR (Q) TO QUIT: ";:LINE INPUT W$ 10050 IF W$="Q" THEN RT=1:RETURN 10060 W=VAL(W$):IF W <1 OR W >12 THEN 10000 10070 ON W GOSUB 1040,1060,1080,1100,1120,1140,1160,1180,1200,1220,1240,1260 10080 GOTO 10000 11000 '**************** WRITE ARRAY TO SCREEN DISPLAY *********************** 11010 LOCATE 7,35:PRINT MP$(1) 11020 LOCATE 8,30:PRINT MP$(2) 11030 LOCATE 9,28:PRINT MP$(3) 11040 LOCATE 10,35:PRINT MP$(4) 11050 LOCATE 11,35:PRINT MP$(5) 11060 LOCATE 12,35:PRINT MP$(6) 11070 LOCATE 13,35:PRINT MP$(7) 11080 LOCATE 14,35:PRINT MP$(8) 11090 LOCATE 15,35:PRINT MP$(9) 11100 LOCATE 16,35:PRINT MP$(10) 11110 LOCATE 17,50:PRINT MP$(11) 11120 LOCATE 18,50:PRINT PM$(12) 11130 RETURN 12000 '********************** SORT ROUTINE ********************************** 12010 CLS 12020 LOCATE 4,25:PRINT "SORT FOR PRECIOUS MOMENTS PROGRAM:" 12030 PRINT:PRINT TAB(25);" PLEASE WAIT WHILE I SORT DATA:" 12040 GOSUB 7400 12050 LOCATE 8,34:PRINT "LOADING ARRAY:" 12060 DR=0 12070 FOR REC%=1 TO LFN% 12080 GET 1,REC% 12090 SS=VAL(PM$(1)) 12100 IF REC%=1 AND PM$(1) <CHR$(32) THEN 12150 12110 DR=DR+1 12120 SO(DR)=SS:SR(DR)=REC% 12130 NEXT REC% 12140 GOTO 12190 12150 LOCATE 12,24:PRINT "CAN NOT FIND ANY DATA IN THIS FILE:" 12160 PRINT:PRINT TAB(25)"PLEASE CHECK FOR PROPER DATA DISK:" 12170 LOCATE 20,40:PRINT "PRESS RETURN:";:W$=INPUT$(1) 12180 RETURN 12190 LOCATE 12,30:PRINT "SORTING DATA IN ARRAY:" 12200 N=DR+1 12210 P=N 12220 P=INT(P/2) 12230 IF P=0 THEN 12360 12240 K=N-P:J=1 12250 I=J 12260 L=I+P 12270 IF SO(I) < SO(L) THEN 12330 12280 TS=SO(I):TR=SR(I) 12290 SO(I)=SO(L):SR(I)=SR(L) 12300 SO(L)=TS:SR(L)=TR 12310 I=I-P 12320 IF I >=1 THEN 12260 12330 J=J+1 12340 IF J <=K THEN 12250 12350 GOTO 12220 12360 ' 12370 LOCATE 16,35:PRINT "END OF SORT:" 12380 LOCATE 20,30:PRINT "WRITITNG DATA TO DISK:" 12390 GOSUB 7610:RD=1 12400 FOR I=1 TO DR+1 12410 SS$=STR$(SR(I)):IF VAL(SS$) <=0 THEN 12460 12420 LSET RS$=STR$(SR(I)):LSET OS$=STR$(SO(I)) 12430 'PRINT RD,RS$,OS$,SO(I) 12440 PUT #3,RD 12450 RD=RD+1 12460 NEXT I 12470 LSET OS$="ZZZZZZZ":LSET RS$="*****":PUT #3,RD 12480 'PRINT RD,RS$,OS$,SO(I) 12490 CLOSE:'PRINT "PRESS RETURN:";:W$=INPUT$(1) 12500 RETURN 13000 '********************* HARDCOPY SUBROUTINE **************************** 13010 IF FF$="T" THEN FA$="TRADE FILES:" 13020 IF FF$="A" THEN FA$="ALL FILES:" 13030 IF FF$="P" THEN FA$="PERSONAL FILES:" 13040 PRINT STRING$(79,61) 13050 PRINT TAB(35);"File# ";REC%" ----- ";FA$;" -----" 13060 PRINT PM$(1);SPC(2);PM$(2);SPC(2);PM$(7);SPC(2);PM$(11);SPC(2);PM$(10);SPC(2);PM$(9) 13070 PRINT SPC(8);PM$(3);SPC(1);PM$(8);SPC(4);PM$(4);SPC(4);PM$(5);SPC(4);PM$(6);SPC(4);PM$(12) 13080 PRINT STRING$(79,61) 13090 CO=VAL(PM$(10)):VL=VAL(PM$(9)) 13100 TVL=TVL+VL:TCO=TCO+CO 13110 IF HC=0 THEN RETURN 13120 LPRINT TAB(35);"File# ";REC%;SPC(20);FA$ 13130 LPRINT PM$(1);SPC(3);PM$(2);SPC(4);"Symbol:";PM$(7);SPC(5);"Type: ";PM$(8) 13140 LPRINT TAB(10);PM$(3);SPC(1);"Retired: ";PM$(4);SPC(8);"Signed: ";PM$(5) 13150 LPRINT TAB(4);PM$(12);TAB(10);"Member Yr: ";PM$(6);SPC(2);"Purchased: "; 13160 LPRINT PM$(11);SPC(2);"Cost: ";:LPRINT USING F1$;CO; 13170 LPRINT SPC(2);"Value: ";:LPRINT USING F2$;VL 13180 LPRINT STRING$(78,45) 13190 RETURN 14000 '*********************** ERROR ROUTINE ******************************* 14010 CLS:CLOSE 14020 LOCATE 6,20:PRINT "A ERROR HAS OCCOURED IN RUNNING THE PROGRAM":PRINT 14030 PRINT TAB(20);"PLEASE CHECK TO SEE IF YOU HAVE THE RIGHT DISK" 14040 PRINT:PRINT TAB(20);"IN DRIVE `";DD$;"' AND THAT THE FILES HAVE BEEN SORTED" 14050 LOCATE 14,20:PRINT "WHEN YOU HAVE CHECKED AND ARE READY TO CONTINUE" 14060 PRINT:PRINT TAB(35);"PRESS RETURN:";:W$=INPUT$(1) 14070 GOTO 500 15000 '************************ FILES FULL ROUTINE ******************* 15010 CLS 15020 LOCATE 12,24:PRINT "THE FILES ARE FULL--2000 RECORDS" 15030 LOCATE 14,23:PRINT "YOU SHOULD START ANOTHER DATA DISK" 15040 LOCATE 24,60:PRINT "PRESS RETURN:";:W$=INPUT$(1) 15050 GOTO 500 16000 '******************** ASSIGN DATA DRIVE ROUTINE ******************** 16010 CLS 16020 LOCATE 6,17:PRINT "BE SURE YOU DEPRESS THE CAPS LOCK KEY:" 16030 LOCATE 10,15:PRINT "ENTER DRIVE WHERE DATA DISK IS AT: A THRU D" 16040 LOCATE 12,25:PRINT "DATA DRIVE IS - ";:DA$=INPUT$(1) 16050 IF DA$ > CHR$(68) THEN CLS:FOR I=1 TO 50:NEXT I:GOTO 16000 16060 IF DA$ <"A" THEN DD$="A:":GOTO 16080 16070 DD$=DA$+":" 16080 PRINT DD$:FOR I=1 TO 100:NEXT I:RETURN EXT I:GOTO 16000 16060 IF DA$ <"A" THEN DD$="A:":GOTO 16080 16070 DD$=DA$+":" 16080 PRINT DD$:FOR I=1 TO 100:NEXT I:R