home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 December
/
simtel1292_SIMTEL_1292_Walnut_Creek.iso
/
msdos
/
database
/
vcr.arc
/
VCR.BAS
next >
Wrap
BASIC Source File
|
1985-06-15
|
25KB
|
489 lines
1000 ' VIDEOCASSETTE CATALOGUE PROGRAM by Tom Gilday
1010 KEY OFF
1020 REM *******************************************************************
1030 REM SET-UP SECTION
1040 REM *************************
1050 REM
1060 MEMOR$="FREE"
1070 COU=0 ' RESET COUNTER TO 0
1080 COUMAX=0 ' RESET MAX TO 0 BEFORE INPUT
1090 MMODE=0 ' RESET EDITING MODE TO OFF
1100 ANS$="" ' RESET INPUT VARIABLE TO NULL
1110 AGAIN=2 ' SET VARIABLES TO UNIQUE
1120 FIRSTTIME=-1 ' VALUES SO WHEN WE SET
1130 EDI=1 ' SOMETHING LIKE MMODE
1140 DELE=4 ' EQUAL TO THEM THE ANSWER
1150 ADDD=5 ' WILL BE UNIQUE
1160 ONN=1:OFFF=0 '
1170 ENDD=99 '
1180 HARDCOPY=OFFF:HARDPRINT=0 ' HARDCOPY SET TO OFF
1190 RESETT=OFFF '
1191 KEY 1, CHR$(29) ' FLAG START OF SEARCH
1192 KEY 2, CHR$(17) ' FLAG HARDCOPY
1195 KEY 3, CHR$(16) ' FLAG ADD RECORD
1200 KEY 4, CHR$(25) ' FLAG DELETE RECORD
1210 KEY 5, CHR$(23) ' FLAG SELECTION CRITERIA
1220 KEY 6, CHR$(15) ' FLAG EDITING
1230 KEY 7, CHR$(14) ' FLAG END OF SESSION
1235 KEY 10, CHR$(28) ' FLAG END OF SEARCH
1240 REM
1250 REM THE DIMENSION IS THE MAXIMUM THAT YOU EXPECT TO FIND IN THE FILE.
1260 MIX = 1000
1270 REM
1280 DIM A$(MIX),B$(MIX),C$(MIX),D$(MIX),E$(MIX)
1281 DUMM1$=" "
1282 DUMM2$=" "
1283 DUMM3$=" "
1284 DUMM4$=" "
1285 DUMM5$=" "
1290 REM ********************************************************************
2000 REM SIGN-ON SCREEN
2010 REM ****************
2020 CLS:COLOR 14,0:LOCATE 7,25:PRINT"Data Update and Editing Module"
2030 LOCATE 10,10
2040 PRINT TAB(17);"This program will allow you to enter and update"
2050 PRINT TAB(15);"information to a file recording your videocassettes"
2060 PRINT:PRINT TAB(13);
2070 PRINT "please be patient while data is being loaded from the file"
2080 PRINT
2090 PRINT TAB(11);"this will take some time as the entire data file is being"
2100 PRINT TAB(19);"loaded to make the program faster to run"
2101 PRINT
2105 PRINT TAB(15);"This process will go faster if you use a ramdisk"
2106 PRINT
2107 PRINT TAB(15);"What disk drive is the file 'VCR.FIL' on ?";:INPUT DRIV$
2108 IF LEN(DRIV$)>1 THEN DIRECT$=DRIV$:DRIV$=MID$(DIRECT$,1,1)
2109 IF ASC(DRIV$)<64 OR ASC(DRIV$)>100 THEN PRINT "try again";:LOCATE 20,1
2110 IF ASC(DRIV$)>68 AND ASC(DRIV$)<97 THEN PRINT "try again";:LOCATE 20,1
2112 IF LEN(DIRECT$)>2 THEN DRIV$=DIRECT$+"\" ELSE DRIV$=DRIV$+":"
2120 FILNAME$=DRIV$+"vcr.fil" : COLOR 4,0
2128 REM ********************************************************************
2130 REM
3000 REM ********************************************************************
3010 REM READ IN OPENING INFORMATION
3020 REM *****************************
3030 MMODE=FIRSTTIME
3035 LOCATE 25,55:PRINT "Reading record # ";
3040 OPEN FILNAME$ FOR INPUT AS #1
3050 COU=COU+1
3060 INPUT #1, A$(COU),B$(COU),C$(COU),D$(COU),E$(COU)
3075 LOCATE 25,74:PRINT COU;
3080 IF EOF(1) THEN CLOSE #1:COUMAX=COU:GOTO 3500
3090 GOTO 3050
3100 REM
3500 REM ******************************************************************
3510 REM MAIN ROUTINE
3520 REM *****************
3530 REM **************************************************************
3540 REM SELECT OPTION
3550 REM **************
3560 CLS: COLOR 0,2
3570 LOCATE 3,20:PRINT" PLEASE CHOOSE ONE OF THESE OPTIONS "
3575 LOCATE 4,20:PRINT" "
3580 LOCATE 5,20:PRINT" AND HIT THE APPROPRIATE FUNCTION KEY "
3590 LOCATE 7,20:PRINT" F1 Start a search "
3595 LOCATE 8,20:PRINT" "
3600 LOCATE 9,20:PRINT" F2 Send the output to the printer "
3605 LOCATE 10,20:PRINT" "
3610 LOCATE 11,20:PRINT" F3 Add a new record to the file "
3620 LOCATE 12,20:PRINT" F4 Delete a record from the file "
3625 LOCATE 13,20:PRINT" "
3630 LOCATE 14,20:PRINT" F5 Specify the selection criteria to use "
3635 LOCATE 15,20:PRINT" "
3640 LOCATE 16,20:PRINT" F6 Edit a record "
3645 LOCATE 17,20:PRINT" "
3650 LOCATE 18,20:PRINT" F7 End this session "
3660 LATES$=""
3665 IF MEMOR$="OUTT" THEN COLOR 7,0 :GOSUB 22000: END
3670 LATES$=INKEY$:IF LATES$="" THEN 3670
3675 COLOR 7,0
3680 IF LATES$=CHR$(29) THEN MMODE=AGAIN:GOSUB 4000 : GOTO 3500
3690 IF LATES$=CHR$(16) THEN MMODE=ADDD :GOSUB 20000: GOTO 3500
3700 IF LATES$=CHR$(25) THEN MMODE=DELE :COU=1:GOSUB 18000:GOSUB 19000:GOTO 3500
3710 IF LATES$=CHR$(23) THEN RESETT=OFFF:GOSUB 4000 : GOTO 3500
3720 IF LATES$=CHR$(15) THEN MMODE=EDI :GOSUB 5400 : GOTO 3500
3730 IF LATES$=CHR$(17) THEN HARDCOPY=ONN : GOTO 3500
3740 IF LATES$=CHR$(14) THEN GOSUB 22000: END
3750 GOTO 3500
3780 REM **************************************************************
4000 REM **************************************************************
4010 REM MAIN SUBROUTINE
4020 REM ***************
4030 REM
4040 COU=0 ' SET COUNTER TO START AT 1
4050 ATT=1 ' DEFAULT ATTRIBUTE TO VOL.
4060 CLS
4080 GOSUB 11000 ' SET UP SELECTION SCREEN
4100 GOSUB 14000 ' SPECIFY SELECTION CRITERIA
4105 REVIEW$=INKEY$
4106 REVIEW$=""
4110 IF REVIEW$=CHR$(28) THEN RETURN
4115 COLOR 7,0
4120 IF RESETT=ONN THEN RESETT=OFFF:CLS:GOTO 4080 ' RESET CATEGORY
4140 LOCATE 1,1:CLS ' POSITION COLUMNS ON SCREEN
4150 GOSUB 7000 ' SET UP COLUMN HEADINGS
4160 IF HARDCOPY=ONN THEN HARDPRINT=0 ' HARDCOPY COLUMN HEADINGS
4170 REM *******************************************************************
5000 REM MAIN LOOP COUNTER
5010 REM *****************
5013 REVIEW$=""
5014 COLOR 2,5
5015 LOCATE 25,1:PRINT " HIT F10 TO STOP NOW ";
5016 LOCATE 25,25:PRINT " VOL. ";
5017 LOCATE 25,42:PRINT " RECORD ";
5018 LOCATE 25,57:PRINT " FREE MEMORY ";
5019 LOCATE 4,1
5020 FOR COU=1 TO COUMAX
5025 REVIEW$=INKEY$
5026 IF REVIEW$=CHR$(28) THEN COU=COUMAX
5030 REM
5040 REM UPDATE VOLUME COUNTER
5050 REM *********************
5060 A=CSRLIN:B=POS(0)
5070 COLOR 2,15
5080 LOCATE 25,31:PRINT " ";:PRINT USING "\ \";A$(COU);
5100 LOCATE 25,50:PRINT COU;
5101 LOCATE 25,70:PRINT FRE(0);
5102 IF FRE(0)<200 THEN 5105 ELSE 5110
5105 LOCATE 25,60:PRINT "OUT OF MEMORY ";:MEMOR$="OUTT":COU=COUMAX:GOTO 5290
5110 LOCATE A,B:COLOR 7,0 ' RETURN TO CURSOR POSITION
5120 REM
5130 REM TEST INPUT AGAINST STRING TO MATCH
5140 REM **********************************
5150 IF FIR$=CHR$(28) THEN COU=COUMAX ' IF FINISHED , END
5160 REM
5161 ON ATT GOTO 5165,5175,5185,5195,5205
5162 REM ************************
5165 IF A$(COU)=A$(0) THEN GOSUB 9000 :GOTO 5280
5166 GOTO 5290
5167 REM ************************
5175 IF LEN(B$(0))>LEN(B$(COU)) THEN 5290
5176 IF INSTR(B$(COU),B$(0)) THEN GOSUB 9000 :GOTO 5280
5177 GOTO 5290
5178 REM ************************
5185 IF LEN(C$(0))>LEN(C$(COU)) THEN 5290
5186 IF INSTR(C$(COU),C$(0)) THEN GOSUB 9000 :GOTO 5280
5187 GOTO 5290
5188 REM ************************
5195 IF LEN(D$(0))>LEN(D$(COU)) THEN 5290
5196 IF INSTR(D$(COU),D$(0)) THEN GOSUB 9000 :GOTO 5280
5197 GOTO 5290
5200 REM ************************
5205 IF LEN(E$(0))>LEN(E$(COU)) THEN 5290
5206 IF INSTR(E$(COU),E$(0)) THEN GOSUB 9000 :GOTO 5280
5207 GOTO 5290
5210 REM
5220 REM ******************
5230 REM IF THERE'S A MATCH
5240 REM ******************
5270 REM ' FOR SEARCH CRITERIA
5280 IF HARDCOPY=ONN THEN GOSUB 10000 ' PRINT HARDCOPY IF MATCH
5290 NEXT COU ' LAST ROW OF LOOP
5292 REVIEW$=""
5295 HARDPRINT=0
5296 PRINT"Press any key to continue ";:INPUT PAUSS$
5330 IF HARDCOPY=ONN THEN LPRINT CHR$(12) ' IF HARDCOPY, FORMFEED
5340 HARDCOPY=OFFF ' RESET HARDCOPY TO OFF
5360 RETURN
5370 REM ******************************************************************
5390 REM EDITING SUBROUTINE
5400 REM ******************
5410 COU=0
5430 GOSUB 18000 ' ASK FOR SPECIFIC RECORD
5440 IF REVIEW$<>"" THEN GOSUB 4040 :GOTO 5430 ' REVIEW RECORDS FIRST
5450 IF COU=0 THEN 6110 ' IF NOT, RESTART
5460 CLS:GOSUB 7000 ' PRINT COLUMN HEADINGS
5470 GOSUB 9000 ' PRINT CURRENT VALUES
5471 LOCATE 3,1
6040 GOSUB 11000 ' SET UP SELECTION SCREEN
6060 GOSUB 14000 ' ALLOW TO CHANGE DESCRIPT
6100 REM ' FOR ORIGINAL CATEGORY
6110 RETURN
6120 REM **************************************************************
7000 REM **************************************************************
7010 REM COLUMN HEADING SUBROUTINE
7020 REM ***************************
7030 COLOR 14,0
7040 PRINT " FILE TAPE "
7050 PRINT "RECORD VOL. ARTIST / SHOW COUNT SELECTION / EPISODE "
7060 PRINT "------ -------- ---------------------- ------ --------------------"
7070 COLOR 7,0
7080 RETURN
7090 REM ***************************************************************
8000 REM **************************************************************
8010 REM HARDCOPY COLUMN HEADING SUBROUTINE
8020 REM **********************************
8030 LPRINT:LPRINT:LPRINT:LPRINT
8040 LPRINT " FILE TAPE "
8050 LPRINT "RECORD VOL. ARTIST / SHOW COUNT SELECTION / EPISODE"
8060 LPRINT "------ -------- ---------------------- ------ --------------------"
8070 RETURN
8080 REM ***************************************************************
9000 REM ***************************************************************
9010 REM PRINT INFORMATION IN RECORD
9020 REM ***************************
9040 COLOR 6,0
9050 PRINT USING "\ \";STR$(COU);
9060 PRINT USING "\ \";A$(COU);
9070 PRINT USING "\ \";B$(COU);
9080 PRINT USING "\ \";C$(COU);
9090 PRINT USING "\ \";D$(COU);
9100 PRINT ,,,," ";
9110 PRINT USING "\ \";E$(COU)
9120 COLOR 7,0
9130 RETURN
9140 REM ***************************************************************
10000 REM ***************************************************************
10010 REM HARDCOPY PRINT INFORMATION IN RECORD
10020 REM ************************************
10030 HARDPRINT=HARDPRINT+1
10031 IF HARDPRINT=1 THEN GOSUB 8000
10040 REM
10050 LPRINT USING "\ \";STR$(COU);
10060 LPRINT USING "\ \";A$(COU);
10070 LPRINT USING "\ \";B$(COU);
10080 LPRINT USING "\ \";C$(COU);
10090 LPRINT USING "\ \";D$(COU);
10100 LPRINT ,,,," ";
10110 LPRINT USING "\ \";E$(COU)
10120 IF HARDPRINT<> 28 THEN 10150
10130 LPRINT CHR$(12)
10140 HARDPRINT=0
10150 RETURN
10160 REM ***************************************************************
11000 REM ***************************************************************
11010 REM REQUEST SELECTION CRITERIA
11020 REM ****************************
11030 ATT$="0"
11040 PRINT:PRINT:PRINT:COLOR 0,2
11050 PRINT " PLEASE CHOOSE ONE OF THE FOLLOWING ATTRIBUTES: "
11060 PRINT
11070 PRINT "1. VOLUME 2. ARTIST / SHOW "
11080 PRINT "3. TAPE COUNTER 4. SELECTION / EPISODE "
11090 PRINT "5. COMMENTS "
11100 PRINT
11110 PRINT "NOTE: YOUR SELECTION NEED ONLY INCLUDE SEVERAL LETTERS"
11120 PRINT " OF THE NAME YOU WANT TO SEARCH FOR "
11130 COLOR 7,0
11140 PRINT:PRINT "PLEASE SELECT AN ATTRIBUTE (1 - 5) TO SEARCH FOR OR CHANGE"
11150 ATT$=INKEY$ ' INPUT CRITERIA
11160 IF ATT$=CHR$(13) THEN 11190 ' USE DEFAULT IF RETURN
11170 IF ATT$="" THEN 11150
11180 ATT=VAL(ATT$)
11190 RETURN
11200 REM *******************************************************************
14000 REM *****************************************************************
14010 REM REQUEST SELECTION MATCH CRITERIA
14020 REM ********************************
14030 LOCATE 17,1
14040 COLOR 11,0
14050 FIR$="" ' RESET INKEY
14060 FIRNAME$="" ' RESET TEXT INPUT
14065 REM *****************************************************************
14070 PRINT "FOR THE CATEGORY : ";:COLOR 7,0
14071 ON ATT GOTO 14072,14073,14074,14075,14076
14072 PRINT "VOLUME";:GOTO 14080
14073 PRINT "ARTIST / SHOW";:GOTO 14080
14074 PRINT "TAPE COUNTER";:GOTO 14080
14075 PRINT "SELECTION / EPISODE";:GOTO 14080
14076 PRINT "COMMENTS";:GOTO 14080
14078 REM ****************************************************************
14080 COLOR 11,0: PRINT " FOR RECORD #";COU
14085 PRINT "THE EXISTING DESCRIPTION IS : ";:COLOR 7,0
14091 ON ATT GOTO 14092,14093,14094,14095,14096
14092 PRINT A$(COU):GOTO 14100
14093 PRINT B$(COU):GOTO 14100
14094 PRINT C$(COU):GOTO 14100
14095 PRINT D$(COU):GOTO 14100
14096 PRINT E$(COU):GOTO 14100
14098 REM ****************************************************************
14100 COLOR 11,0: PRINT "WHAT, IF ANYTHING, WOULD YOU LIKE TO CHANGE IT TO ?"
14101 PRINT " (IF NO CHANGE , JUST HIT RETURN ) :";
14110 REM ****************************************************************
14120 REM
14130 REM SETUP BOTTOM OF SCREEN
14135 REM **********************
14138 COLOR 2,15
14140 IF HARDCOPY=ONN THEN 14170
14150 LOCATE 23,1:PRINT " HIT F2 IF YOU WANT A HARDCOPY OF THE REPORT";
14160 LOCATE 23,60:PRINT " Hardcopy OFF ";
14165 LOCATE 24,1:PRINT " HIT F5 IF YOU WANT TO CHANGE THE SELECTION CATEGORY";
14167 LOCATE 25,1:PRINT " HIT F10 IF YOU WANT TO STOP NOW";
14180 LOCATE 20,45
14190 REM ************************************
14200 REM INPUT CHARACTERS FOR NEW DESCRIPTION
14210 REM ************************************
14215 GOSUB 14700
14220 FIR$="":COLOR 0,2
14230 FIR$=INKEY$
14240 IF FIR$=CHR$(13) THEN 14490 ' IF NONE, USE DEFAULT
14250 IF FIR$="" THEN 14230
14260 IF ASC(FIR$)>96 AND ASC(FIR$)<123 THEN FIR$=CHR$(ASC(FIR$)-32)
14270 REM **************************************
14280 REM TEST IF CHANGING EDITING/HARDCOPY MODE
14290 REM **************************************
14295 REM
14300 REM F2 TO TURN ON HARDCOPY ' SET HARDCOPY ON
14301 REM *********************************************
14310 IF FIR$<>CHR$(17) THEN 14320
14311 HARDCOPY=ONN : FIR$="" : A=CSRLIN:B=POS(0)
14314 LOCATE 23,60: PRINT " Hardcopy ON ";:LOCATE A,B
14316 GOTO 14230
14320 REM F10 TO END
14321 REM ************
14330 IF FIR$<>CHR$(28) THEN 14370
14360 GOTO 14640
14370 REM F5 TO RESELECT CATEGORY ' RESET SELECTION CRITERIA
14371 REM ******************************************************
14380 IF FIR$<>CHR$(23) THEN 14430
14390 RESETT=ONN ' SET MODE TO RESET
14400 FIR$="" ' RESET INKEY
14410 CLS : GOTO 14640
14430 REM ********************************
14450 IF FIR$=CHR$(8) THEN 14550 ' IF EDITING, DON'T ADD
14460 FIRNAME$=FIRNAME$+FIR$ ' ADD INPUT TO STRING
14470 COLOR 4,0 : PRINT FIR$; ' PRINT INPUT
14490 IF FIRNAME$="" THEN 14640
14500 REM ***********************************
14510 REM EDITING INPUT OF SELECTION CRITERIA
14520 REM ***********************************
14530 REM
14540 IF FIR$<>CHR$(8) THEN 14580 ' IF BACKSPACE, THEN EDIT
14550 IF FIRNAME$="" THEN 14220 ' IF FIRST CHARACT,RESTART
14560 LOCATE ,POS(0)-1:PRINT " "; ' ERASE CHAR ON SCREEN
14570 LOCATE ,POS(0)-2 ' RELOCATE CURSOR
14580 IF FIR$<>CHR$(13) THEN 14220
14600 REM ******************************************************************
14610 FIR$="" ' RESET INKEY
14611 ON ATT GOTO 14612,14613,14614,14615,14616
14612 A$(COU)=FIRNAME$:GOTO 14630
14613 B$(COU)=FIRNAME$:GOTO 14630
14614 C$(COU)=FIRNAME$:GOTO 14630
14615 D$(COU)=FIRNAME$:GOTO 14630
14616 E$(COU)=FIRNAME$:GOTO 14630
14617 REM
14630 FIRNAME$="" ' RESET INPUT STRING
14640 IF MMODE<>EDI AND ATT=5 THEN CLS
14670 RETURN
14680 REM ***************************************************************
14700 REM ***************************************************************
14701 REM SET UP INPUT FIELD
14710 REM ******************
14721 POSSIT=POS(0)
14730 ON ATT GOTO 14740,14750,14760,14770,14780
14740 COLOR 2,7:PRINT "<<";DUMM1$;">>";:LOCATE ,POSSIT+2:GOTO 14800
14750 COLOR 2,7:PRINT "<<";DUMM2$;">>";:LOCATE ,POSSIT+2:GOTO 14800
14760 COLOR 2,7:PRINT "<<";DUMM3$;">>";:LOCATE ,POSSIT+2:GOTO 14800
14770 COLOR 2,7:PRINT "<<";DUMM4$;">>";:LOCATE ,POSSIT+2:GOTO 14800
14780 COLOR 2,7:PRINT "<<";DUMM5$;">>";:LOCATE ,POSSIT+2
14800 COLOR 7,0: RETURN
18000 REM ***************************************************************
18010 REM SELECT THE RECORD TO DELETE OR EDIT
18020 REM ***********************************
18030 REM
18050 REVIEW$=INKEY$:REVIEW$="" ' ERASE STRAY INPUT
18055 PRINT
18060 PRINT "WOULD YOU LIKE TO REVIEW THE RECORDS BEFORE SELECTING ONE ?"
18070 REVIEW$=INKEY$ ' TEST FOR SPECIFIC INPUT
18080 IF REVIEW$=CHR$(13) THEN REVIEW$="": GOTO 18210 ' IF NOT THEN SEARCH
18090 IF REVIEW$="" THEN 18070
18100 IF REVIEW$="Y" OR REVIEW$="y" THEN MMODE=AGAIN :CLS :RETURN
18110 REVIEW$="": COUU$=INKEY$ : COUU$="":COUUN$="" :COUU=0
18160 PRINT "WHICH RECORD WOULD YOU LIKE TO USE "
18170 PRINT " (IF YOU KNOW WHICH ONE )? " ;
18180 INPUT COUUN$: IF COUUN$="" THEN 18200
18200 COU=VAL(COUUN$)
18210 RETURN
18220 REM *****************************************************************
19000 REM *****************************************************************
19010 REM DELETE RECORD
19020 REM *************
19022 CLS:GOSUB 7000:GOSUB 9000
19023 PRINT:PRINT "ARE YOU SURE YOU WANT TO DELETE IT ?"
19024 ANS$=""
19025 ANS$=INKEY$:IF ANS$="" THEN 19025
19026 IF ANS$="y" OR ANS$="Y" THEN 19030 ELSE 19110
19030 LOCATE 25,45:PRINT "MOVING RECORD #";
19035 FOR N=COU+1 TO COUMAX
19040 SWAP A$(N),A$(N-1)
19050 SWAP B$(N),B$(N-1)
19060 SWAP C$(N),C$(N-1)
19070 SWAP D$(N),D$(N-1)
19080 SWAP E$(N),E$(N-1)
19090 LOCATE 25,62:PRINT N;:NEXT
19100 COUMAX=COUMAX-1
19110 RETURN
19120 REM ***************************************************************
20000 REM ADD A RECORD
20009 REM ************
20010 REM
20011 PRINT
20012 PRINT "DO WANT TO ADD THE RECORD 1) TO THE END OF THE FILE , OR"
20013 PRINT " 2) AFTER A SPECIFIC RECORD ? ";
20014 ANS$=""
20015 ANS$=INKEY$:IF ANS$="" THEN 20015
20016 IF ANS$<>"1" AND ANS$<>"2" THEN RETURN
20017 IF ANS$="1" THEN COU=COUMAX+1:PRINT ANS$;:GOTO 20045
20018 IF ANS$="2" THEN PRINT ANS$;:GOTO 20020
20019 REM ***********************************************************
20020 PRINT "WOULD YOU LIKE TO REVIEW THE RECORDS BEFORE SELECTING ONE ?";
20021 REVIEW$=INKEY$
20022 IF REVIEW$=CHR$(13) THEN 20025
20023 IF REVIEW$="" THEN 20021
20024 IF REVIEW$="Y" OR REVIEW$="y" THEN MMODE=AGAIN :CLS :RETURN
20025 REVIEW$="": COUU$=INKEY$ : COUU$="":COUUN$="" :COU=COUMAX:PRINT " NO";
20026 PRINT "AT WHICH LOCATION (RECORD #) WOULD YOU LIKE TO ADD A RECORD";
20028 INPUT COUUN$: IF COUUN$="" THEN RETURN
20029 COU=VAL(COUUN$) :LOCATE 25,45:PRINT "MAKING ROOM AT RECORD #";
20030 FOR N=COUMAX TO COU STEP -1
20031 SWAP A$(N),A$(N+1)
20032 SWAP B$(N),B$(N+1)
20033 SWAP C$(N),C$(N+1)
20034 SWAP D$(N),D$(N+1)
20035 SWAP E$(N),E$(N+1)
20036 LOCATE 25,72:PRINT N;:NEXT N
20045 REM *************************************************************
20046 CLS
20047 COLOR 6,0
20048 LOCATE 5,20
20049 PRINT "FOR RECORD #";COU
20050 LOCATE 12,20:PRINT "VOLUME #.................";
20052 ATT=1:POSSIT=POS(0): GOSUB 14200
20060 LOCATE 14,20:PRINT "ARTIST / SHOW ...........";
20065 ATT=2:POSSIT=POS(0): GOSUB 14200
20080 LOCATE 16,20:PRINT "TAPE COUNTER ............";
20085 ATT=3:POSSIT=POS(0): GOSUB 14200
20100 LOCATE 18,20:PRINT "SELECTION / EPISODE......";
20105 ATT=4:POSSIT=POS(0): GOSUB 14200
20120 LOCATE 20,20:PRINT "COMMENTS.................";
20125 ATT=5:POSSIT=POS(0): GOSUB 14200
20140 COUMAX=COUMAX+1
20200 COLOR 7,0:RETURN
20210 REM ***************************************************************
22000 REM ***************************************************************
22001 REM END PROGRAM
22002 REM ***********
22003 REM
22004 ANS$=""
22005 PRINT:PRINT "DO YOU WANT TO UPDATE THE FILE FIRST FOR ANY CHANGES ?";
22006 ANS$=INKEY$:IF ANS$="" THEN 22006
22007 IF ANS$="y" OR ANS$="Y" THEN 22010 ELSE 22130
22008 REM
22010 REM CLOSE FILE WITH CHANGES
22020 REM ***********************
22030 COLOR 11,0
22050 LOCATE 25,55:PRINT "Writing record # ";
22060 DEF SEG
22080 OPEN FILNAME$ FOR OUTPUT AS #2
22090 FOR NN=1 TO COUMAX
22100 WRITE #2,A$(NN),B$(NN),C$(NN),D$(NN),E$(NN)
22105 LOCATE 25,74:PRINT NN;
22110 NEXT NN
22120 CLOSE #2
22130 COLOR 11,0:RETURN
22140 REM **************************************************************
0 NEXT NN
22120 CLOSE #2
22130 COLOR 11,0:RETURN
22140 REM *********************************************