Compucolor.org – Virtual Media

Listing of file='CMAINT.BAS;01' on disk='vmedia/taylor_1-sector.ccvf'

1 REM CMAINT
2 REM RICKI A. VICK  12SEP80  1
5 CLEAR 511
6 LN= 5:TP= 111:BT= 24:REM  BOX COORDINATES LINE, TOP, BOTTOM
7 PLOT 15,27,18,6,15
10 PLOT 29,14,6,2,12,27,11,3,8,0
12 A1$= "NORTHERN VIRGINIA COMPUCOLOR II USERS GROUP"
13 A2$= "VOL/#   NAME     REV  CATEGORY             "
15 PRINT "   N O R T H E R N   V I R G I N I A"
20 PRINT "      C O M P U C O L O R   U S E R S   G R O U P"
30 PRINT "C A T A L O G   M A I N T A I N E N C E   P R O G R A M"
35 PRINT "SELECT THE PROCEDURE YOU WANT ";
40 PRINT "FROM THE MENU BELOW":PRINT
60 T1= 10
70 PRINT TAB( T1);"LIST ALL PROGRAMS BY CATALOG NUMBER"
75 PRINT TAB( T1);"PRINT ON PRINTER ALL PROGRAMS BY CATALOG NUMBER"
80 PRINT TAB( T1);"SEARCH CATALOG BY PROGRAM NAME"
90 PRINT TAB( T1);"DISPLAY CATALOG ENTRY FORM"
100 PRINT TAB( T1);"UPDATE CATALOG ENTRY FORM"
140 PRINT TAB( T1)"CREATE A NEW CATALOG FILE"
141 PRINT TAB( T1)"MODIFY A CATALOG FILE FOR ANOTHER VOLUME"
142 PRINT TAB( T1);"EXIT FROM CATALOG MAINTENANCE PROGRAM"
145 PRINT ""
150 PLOT 6,1
153 PRINT "MENU SELECTION (PRESS LETTER) ";
156 PLOT 6,2,15
160 POKE 33278,255
170 IF PEEK (33278)= 255THEN 170
180 WTG$= CHR$ (PEEK (33278))
190 IF WTG$= "L"THEN 2000
195 IF WTG$= "P"THEN 2000
200 IF WTG$= "S"THEN 3000
210 IF WTG$= "D"THEN 4000
220 IF WTG$= "U"THEN 5000
230 IF WTG$= "C"THEN 1000
235 IF WTG$= "M"THEN 7000
240 IF WTG$= "E"THEN 6000
400 IF WTG$< > "X"THEN 160
500 PLOT 15,27,18,6:POKE 33289,95:OUT 8,255:OUT 8,4:PLOT 27,13,27,117,20
510 LIST :PLOT 12,12,27,117,1:OUT 8,255:POKE 33265,0:POKE 33289,64:GOTO 1
1000 REM SET UP FILE OF PROGRAMS TO BE SUBMITTED
1100 PLOT 12
1110 PRINT "PROCEDURE:"
1120 PRINT "(1) INPUT NUMBER OF RECORDS FOR CATALOG (127 MAX)."
1125 PRINT "(2) PROGRAM WILL CREATE DATA FILE CATALG.RND."
1130 PRINT "(3) INPUT CATALOG INFORMATION AS REQUESTED BY PROGRAM."
1140 PRINT "NOTE: ALL ENTRIES WILL BE INITIALIZED TO THE SAME VALUE"
1160 PRINT
1170 INPUT "HOW MANY RECORDS FOR THIS CATALOG ? ";N1
1175 IF N1> 127OR N1< 1THEN 1000
1180 EOF= N1+ 1
1200 FILE "N","CATALG",N1+ 1,256,14
1210 FILE "R",1,"CATALG",1
1230 PUT 1,1,1;N1+ 1
1240 FILE "C",1
1300 REM PRINT SCREEN FORMAT
1350 GOSUB 8001
1400 REM INPUT CATALOG INFORMATION
1425 R= 2
1450 GOSUB 9000
1451 IF N1+ 1< 3THEN 1900
1455 FILE "R",1,"CATALG",1
1475 FOR R= 3TO N1+ 1
1477 PLOT 3,12,LN+ 23:PRINT R- 1;" DONE"
1480 PUT 1,R,1;N$[6],VOL$[1],A$[24],DATE$[7],REV$[1],MS$[1],L$[1]
1485 PUT 1,R,42;FR$[1],RATING$[1],SH$[40],SS$[40],D1$[57],D2$[57]
1486 PUT 1,R,238;CAT$[9]
1500 NEXT R
1550 FILE "C",1
1900 INPUT "PRESS RETURN TO GO TO THE MENU ! ";ANS$
1950 GOTO 10
2000 REM PRINT CATALOG OF DISK
2010 PRINT :N1$= " "
2050 IF WTG$= "P"THEN OUT 8,255:OUT 8,4:PLOT 27,13,27,117,1
2100 FILE "R",1,"CATALG",1
2120 GOSUB 3950
2150 GET 1,1,1;EOF
2200 FOR R= 2TO EOF
2250 GET 1,R,1;N$[6],VOL$[1]:GET 1,R,39;REV$[1]
2255 IF LEFT$ (N$,1)= " "THEN R= EOF:GOTO 2400
2260 GET 1,R,124;D1$[57]:GET 1,R,181;D2$[57],CAT$[9]
2270 GOSUB 2500
2371 PR= PR+ 1
2372 IF WTG$= "P"AND PR= 21THEN GOSUB 3950:GOTO 2400
2380 IF WTG$= "L"AND PR= 10THEN PRINT :INPUT "PRESS RETURN TO CONTINUE ! ";AA$:GOSUB 3950
2400 NEXT R
2410 IF WTG$= "P"GOTO 2480
2450 PRINT :INPUT "THAT'S ALL--PRESS RETURN TO GO TO THE MENU ! ";AA$
2480 FILE "C",1:OUT 8,255:POKE 33265,0:GOTO 1
2500 REM OUTPUT FORMATTER
2505 IF WTG$= "P"THEN OUT 8,4
2506 R$= STR$ (R- 1):R$= RIGHT$ (R$,(LEN (R$)- 1))
2510 PRINT " ";VOL$;"/";R$;TAB( 8);"";N$;TAB( 18);REV$;TAB( 22);CAT$
2520 PRINT "";TAB( 5);D1$:PRINT TAB( 5);D2$
2525 IF WTG$= "P"THEN OUT 8,255
2530 RETURN
3000 REM PERFORM NAME SEARCH OF CATALOG
3075 PRINT :PRINT :INPUT "NAME OF PROGRAM SOUGHT ?: ";N1$
3100 FILE "R",1,"CATALG",1
3200 GET 1,1,1;EOF
3225 GOSUB 3950
3250 FOR R= 2TO EOF
3260 GET 1,R,1;N$[6],VOL$[1]:GET 1,R,39;REV$[1]
3340 IF LEFT$ (N$,1)= " "THEN R= EOF:GOTO 3500
3350 IF N1$< > LEFT$ (N$,LEN (N1$))THEN GOTO 3500
3360 GET 1,R,124;D1$[57]:GET 1,R,181;D2$[57],CAT$[9]
3400 GOSUB 2500
3460 PR= PR+ 1:IF PR= 10THEN PRINT :INPUT "PRESS RETURN TO CONTINUE ! ";AA$:GOSUB 3950
3500 NEXT R
3900 PRINT :INPUT "THAT'S ALL--PRESS ENTER TO GO BACK TO THE MENU ! ";PROG
3920 FILE "C",1:GOTO 1
3950 IF WTG$= "P"THEN OUT 8,4
3960 PLOT 12:PRINT A1$:PRINT A2$:PLOT 3,37,1:PRINT "";N1$;"":PR= 2:PRINT
3970 IF WTG$= "P"THEN OUT 8,255
3980 RETURN
4000 REM SEARCH FOR PROGRAM BY NUMBER
4100 PRINT :PRINT :INPUT "WHAT PROGRAM NUMBER DO YOU WANT ? ";NUM
4150 NUM= NUM+ 1
4200 FILE "R",1,"CATALG",1
4250 GET 1,1,1;EOF
4300 GET 1,NUM,1;N$[6],VOL$[1],A$[24],DATE$[7],REV$[1],MS$[1],L$[1]
4350 GET 1,NUM,42;FR$[1],RATING$[1],SH$[40],SS$[40],D1$[57],D2$[57]
4360 GET 1,NUM,238;CAT$[9]
4400 REM DISPLAY CATALOG FORMAT
4450 GOSUB 8100
4500 REM DISPLAY CATALOG INFORMATION
4510 PLOT 3,15,LN:PRINT N$
4515 PLOT 3,34,LN:PRINT CAT$
4520 PLOT 3,57,LN:PRINT VOL$;"/";NUM- 1
4530 PLOT 3,9,LN+ 3:PRINT A$
4540 PLOT 3,43,LN+ 3:PRINT DATE$
4550 PLOT 3,60,LN+ 3:PRINT REV$
4560 PLOT 3,11,LN+ 6
4561 IF MS$= "1"THEN  PRINT "8K"
4562 IF MS$= "2"THEN  PRINT "16K"
4563 IF MS$= "3"THEN  PRINT "32K"
4570 PLOT 3,27,LN+ 6:PRINT L$
4571 IF L$= "A"THEN PLOT 3,28,LN+ 6:PRINT "SSEMBLY"
4572 IF L$= "B"THEN PLOT 3,28,LN+ 6:PRINT "ASIC"
4573 IF L$= "F"THEN PLOT 3,28,LN+ 6:PRINT "ORTRAN"
4574 IF L$= "S"THEN PLOT 3,28,LN+ 6:PRINT "OURCE"
4580 PLOT 3,48,LN+ 6:PRINT FR$
4590 IF  RATING$= "A"THEN RATING$= "10"
4591 PLOT 3,59,LN+ 6:PRINT RATING$
4600 PLOT 3,19,LN+ 9:PRINT SH$
4610 PLOT 3,19,LN+ 12:PRINT SS$
4620 PLOT 3,3,LN+ 17:PRINT D1$
4630 PLOT 3,3,LN+ 19:PRINT D2$
4640 PLOT 3,1,LN+ 23
4650 IF FL= 1THEN FL= 0:NUM= NUM- 1:GOTO 5350
4900 PRINT "PRESS RETURN FOR MENU,+ FOR NEXT,- FOR PREVIOUS  ! ";
4910 POKE 33278,255
4920 IF PEEK (33278)= 255THEN 4920
4925 PRINT
4930 IF PEEK (33278)= 43THEN NUM= NUM+ 1:IF NUM< = EOFTHEN 4300
4940 IF PEEK (33278)= 45THEN NUM= NUM- 1:IF NUM> 1THEN 4300
4950 GOTO 1
5000 REM UPDATE A CATALOG ENTRY
5100 PRINT :PRINT :INPUT "WHAT CATALOG ENTRY DO YOU WANT TO UPDATE ? ";NUM
5200 REM DISPLAY CATALOG FORMAT
5300 REM UPDATE INFORMATION IN CATALOG
5320 FL= 1:NUM= NUM+ 1:GOTO 4200
5350 R= NUM+ 1:GOSUB 9000
5900 INPUT "PRESS RETURN TO GO TO THE MENU ! ";ANS$:GOTO 10
6000 END
7000 REM MODIFY CATALOG FILE FOR ANOTHER VOLUME
7010 FILE "R",1,"CATALG",1
7020 GET 1,1,1;EOF,VLM$[1],SR
7030 PLOT 12:PRINT "CATALOG HOLDS ";EOF;" RECORDS"
7040 PRINT "VOLUME # ";VLM$
7050 PRINT "STARTING RECORD # ";SR
7060 PRINT :INPUT "NEW VOLUME # ? ";X$
7070 IF X$< > "0"THEN VLM$= X$
7080 INPUT "NEW STARTING RECORD # ? ";X$
7090 IF X$< > "0"THEN SR= VAL (X$)
7100 PUT 1,1,1;EOF,VLM$[1],SR
7110 FILE "C",1
7120 GOTO 10
8001 REM DISPLAY CATALOG FORMAT
8100 PLOT 6,6,12
8110 FOR Y= TPTO BT+ 23STEP - 12
8120 PLOT 2,0,Y,242,127,Y,255
8130 NEXT Y
8140 PLOT 2,0,TP,242,0,BT,127,BT,127,TP,255
8205 PLOT 3,0,LN- 4,14:PRINT A1$:PLOT 15,6,2
8215 PLOT 3,1,LN:PRINT "PROGRAM NAME:"
8216 PLOT 3,24,LN:PRINT "CATEGORY:"
8225 PLOT 3,48,LN:PRINT "VOL/PRG:"
8235 PLOT 3,1,LN+ 3:PRINT "AUTHOR:"
8245 PLOT 3,37,LN+ 3:PRINT "DATE:"
8255 PLOT 3,54,LN+ 3:PRINT "REV:"
8265 PLOT 3,1,LN+ 6:PRINT "MEM SIZE:"
8275 PLOT 3,17,LN+ 6:PRINT "LANGUAGE:"
8285 PLOT 3,37,LN+ 6:PRINT "FILES REQ:"
8295 PLOT 3,51,LN+ 6:PRINT "RATING:"
8305 PLOT 3,1,LN+ 9:PRINT "SPECIAL HARDWARE:"
8316 PLOT 3,1,LN+ 12:PRINT "SPECIAL SOFTWARE:"
8335 PLOT 3,24,LN+ 15:PRINT "DESCRIPTION"
8340 PLOT 3,0,LN+ 23
8999 RETURN
9000 REM INPUT CATALOG INFORMATION & PLACE IN FILE
9110 PLOT 3,0,LN+ 23,11:PRINT "NAME OF PROGRAM'S DISK FILE"
9115 PLOT 3,15,LN:INPUT "";X$:IF X$< > "0"THEN N$= X$
9116 PLOT 3,0,LN+ 23,11:PRINT "CATEGORY OF THIS DISK"
9118 PLOT 3,34,LN:INPUT "";X$:IF X$< > "0"THEN CAT$= X$
9120 PLOT 3,0,LN+ 23,11:PRINT "VOLUME NUMBER IN THIS CATEGORY 1 TO 9"
9125 PLOT 3,57,LN:INPUT "";X$:IF X$< > "0"THEN VOL$= X$
9130 PLOT 3,0,LN+ 23,11:PRINT "NAME OF THE SUBMITTER OR AUTHOR (IF KNOWN)"
9135 PLOT 3,9,LN+ 3:INPUT "";X$:IF X$< > "0"THEN A$= X$
9140 PLOT 3,0,LN+ 23,11:PRINT "DATE OF SUBMISSION IN THE FORM 31AUG80"
9145 PLOT 3,43,LN+ 3:INPUT "";X$:IF X$< > "0"THEN DATE$= X$
9150 PLOT 3,0,LN+ 23,11:PRINT "PROGRAM REVISION NUMBER 1 = FIRST SUBMISSION"
9155 PLOT 3,60,LN+ 3:INPUT "";X$:IF X$< > "0"THEN REV$= X$
9160 PLOT 3,0,LN+ 23,11:PRINT "MEMORY SIZE OF MACHINE TO RUN PROGRAM";
9161 PRINT "  8K OR 16K OR 32K"
9162 PLOT 3,11,LN+ 6:INPUT "";X$:IF X$< > "0"THEN MS$= X$
9163 IF X$< > "0"GOTO 9166
9164 IF MS$= "1"OR MS$= "2"OR MS$= "3"GOTO 9176
9165 GOTO 9160
9166 IF MS$= "8"THEN MS$= "1":GOTO 9176
9167 IF MS$= "16"THEN MS$= "2":GOTO 9176
9168 IF MS$= "32"THEN MS$= "3":GOTO 9176
9169 GOTO 9160
9176 PLOT 3,0,LN+ 23,11:PRINT "LANGUAGE:";
9177 PRINT "  ASSEMBLY   BASIC   FORTRAN   SOURCE"
9180 PLOT 3,27,LN+ 6:INPUT "";X$:IF X$< > "0"THEN L$= X$
9181 IF L$= "A"THEN PLOT 3,28,LN+ 6:PRINT "SSEMBLY":GOTO 9190
9182 IF L$= "B"THEN PLOT 3,28,LN+ 6:PRINT "ASIC":GOTO 9190
9183 IF L$= "F"THEN PLOT 3,28,LN+ 6:PRINT "ORTRAN":GOTO 9190
9184 IF L$= "S"THEN PLOT 3,28,LN+ 6:PRINT "OURCE":GOTO 9190
9189 GOTO 9176
9190 PLOT 3,0,LN+ 23,11:PRINT "NUMBER OF FILES REQUIRED";
9191 PRINT "  NONE OR 1,2,3, ETC"
9195 PLOT 3,48,LN+ 6:INPUT "";X$:IF X$< > "0"THEN FR$= X$
9200 PLOT 3,0,LN+ 23,11:PRINT "PROGRAM RATING ON A SCALE OF 1 TO 10"
9205 PLOT 3,59,LN+ 6:INPUT "";X$:IF X$< > "0"THEN RATING$= X$
9206 IF RATING$= "10"THEN  RATING$= "A"
9210 PLOT 3,0,LN+ 23,11:PRINT "SUCH AS NUMERIC KEYPAD OR JOY STICK"
9215 PLOT 3,19,LN+ 9:INPUT "";X$:IF X$< > "0"THEN SH$= X$
9220 PLOT 3,0,LN+ 23,11:PRINT "SUCH AS SOUNDWARE PATCH OR NO-ECHO PATCH"
9225 PLOT 3,19,LN+ 12:INPUT "";X$:IF X$< > "0"THEN SS$= X$
9230 PLOT 3,0,LN+ 23,11
9235 PLOT 3,3,LN+ 17:INPUT "";X$:IF X$< > "0"THEN D1$= X$
9236 PLOT 3,3,LN+ 19:INPUT "";X$:IF X$< > "0"THEN D2$= X$
9300 REM FILE#R DETERMINED BEFORE SUBROUTINE CALLED
9325 IF WTG$= "C"THEN FILE "R",1,"CATALG",1
9350 PUT 1,R,1;N$[6],VOL$[1],A$[24],DATE$[7],REV$[1],MS$[1],L$[1]
9355 PUT 1,R,42;FR$[1],RATING$[1],SH$[40],SS$[40],D1$[57],D2$[57]
9356 PUT 1,R,238;CAT$[9]
9360 FILE "C",1
9400 PLOT 3,1,LN+ 22
9999 RETURN