Compucolor.org – Virtual Media

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

100 REM ****************************************************
110 REM **                                                **
120 REM **  PROGRAM FOR THE ADDITION, UPDATING, LISTING   **
130 REM **                                                **
140 REM **  AND DELETION OF DATA ON COMPONENTS HELD IN    **
150 REM **                                                **
160 REM **  STOCK AS PARTS FOR EQUIPMENT.   D. MASON 1982 **
170 REM **                                                **
180 REM ****************************************************
190 CLEAR 500
200 PLOT 12,3,15,5,14,6,28
210 PRINT "  P A R T S   S T O C K S  "
220 PLOT 15,6,3,3,0,15
230 PRINT SPC( 14);:INPUT "INSERT INDEX DISC - HIT 'RETURN : ";Z$:IF XZ= 99THEN PLOT 28,11:GOTO 290
240 FILE "T",260
250 FILE "R",1,"PARTS.INX",1:FILE "R",2,"EQPT.INX",1:GOTO 270
260 PRINT :PRINT :PRINT SPC( 15)"FILE NOT ON DISC ":PRINT :PRINT :GOTO 230
270 PLOT 12,3,20,1,6,28
280 PRINT "  EDITING PARTS STOCKS  ":PLOT 6,3
290 PLOT 3,0,5:PRINT "SELECT FUNCTION :     << ADD, UPDATE, LIST, DELETE, END >>"
300 PLOT 3,18,5:INPUT "";FUN$
310 IF FUN$< > "A"AND FUN$< > "U"AND FUN$< > "L"AND FUN$< > "D"AND FUN$< > "E"THEN PLOT 28,11:GOTO 290
320 IF FUN$= "E"THEN GOTO 1370
330 FOR T= 8TO 29:PLOT 3,0,T,11:NEXT
340 PLOT 3,10,29:PRINT "(  EQUIPMENT NUMBER PREFIXES :  )":PLOT 11:PRINT SPC( 10)"(    AMP; ISI; SON; TEK; T/M    )
350 PLOT 3,20,8:PRINT "PART NUMBER ";:PLOT 6,38:FOR I= 1TO 16:PRINT " ";:NEXT :PLOT 3,32,8:INPUT "";PN$:PLOT 6,3
351 IF FUN$< > "A"THEN PRINT :PRINT SPC( 14);:INPUT "ENTER DISC NUMBER (OR ENTER '0') : ";D
352 IF D= 0THEN X= 1:Y= 2100:GOTO 360
354 X= (420* (D- 1)+ 1):Y= X+ 419
360 GOSUB 1650: REM  ** GO TO SUBROUTINE SEARCH **
370 PLOT 3,0,29,11
380 PLOT 3,10,30:PRINT "( ** ALWAYS HIT 'E' AT END OF SESSION ** )"
390 PLOT 3,0,9
400 IF FUN$= "A"GOTO 460
410 IF FUN$= "U"GOTO 710
420 IF FUN$= "L"GOTO 1090
430 IF FUN$= "D"GOTO 1270
440 REM **************************************************
450 REM
460 REM            ** ENTER NEW DATA **
470 REM
480 GOSUB 1470
490 IF TE= 1THEN PT$= PN$:PLOT 3,25,10,6,39:PRINT PN$
500 IF TE= 2THEN EN$= PN$:PLOT 3,25,13,6,39:PRINT PN$
510 IF TE= 1THEN K= 11:GOTO 540
520 K= 10
530 PLOT 3,25,K,6,39:INPUT "";PT$:K= K+ 1
540 PLOT 3,25,K,6,39:INPUT "";DE$:K= K+ 2
550 IF TE= 2THEN K= K+ 2:GOTO 590
560 PLOT 3,0,29,6,3,11:PRINT :PRINT SPC( 10)"( ** PREFIXES :  AMP; ISI; SON; TEK; T/M; ** )"
570 PLOT 3,25,K,6,39:INPUT "";EN$:K= K+ 2:PLOT 6,3
580 PLOT 3,0,30,11:PRINT SPC( 10)"( ** ALWAYS HIT 'E' AT END OF SESSION ** )"
590 PLOT 3,25,K,6,39:INPUT "";LO$:K= K+ 2
600 PLOT 3,25,K,6,39:INPUT "";QT:K= K+ 3
610 PLOT 3,25,K,6,39:INPUT "";CM$:K= K+ 3
620 PLOT 3,25,K,6,39:INPUT "";SM$:K= K+ 2
630 PLOT 3,25,K,6,39:INPUT "";AT$:K= K+ 2
640 PLOT 3,25,K,6,39:INPUT "";SA$:K= K+ 2:PLOT 6,3
650 PUT 3,IN,1;PT$[8],DE$[25],EN$[16],LO$[7],QT,CM$[16],SM$[16],AT$[8],SA$[8]
660 FILE "C",3
670 PUT 1,IN,1;PT$[8]:PUT 2,IN,1;EN$[16]
680 FOR J= 8TO 29:PLOT 3,0,J,11:NEXT :PLOT 3,0,15:GOTO 230
690 REM **************************************************
700 REM
710 REM            ** UPDATE STOCKS **
720 REM
730 GET 3,KI,1;PT$[8],DE$[25],EN$[16],LO$[7],QT,CM$[16],SM$[16],AT$[8],SA$[8]
740 GOSUB 1470
750 K= 10
760 PLOT 3,25,K,6,39:PRINT PT$:K= K+ 1
770 PLOT 3,25,K,6,39:PRINT DE$:K= K+ 2
780 PLOT 3,25,K,6,39:PRINT EN$:K= K+ 2
790 PLOT 3,25,K,6,39:PRINT LO$:K= K+ 2
800 PLOT 3,25,K,6,39:PRINT QT:K= K+ 3
810 PLOT 3,25,K,6,39:PRINT CM$:K= K+ 3
820 PLOT 3,25,K,6,39:PRINT SM$:K= K+ 2
830 PLOT 3,25,K,6,39:PRINT AT$:K= K+ 2
840 PLOT 3,25,K,6,39:PRINT SA$:K= K+ 2
850 IF TE= 2THEN PU$= PN$:PLOT 3,25,10,6,39:PRINT PN$
860 IF TE= 3THEN EU$= PN$PLOT 3,25,13,6,39:PRINT PN$
870 IF TE= 2THEN K= 11:GOTO 900
880 K= 10:PU$= "":EU$= ""
890 PLOT 3,25,K,6,39:INPUT "";PU$:K= K+ 1
900 PLOT 3,25,K,6,39:INPUT "";DU$:K= K+ 2:IF DU$= ""THEN DU$= DE$
910 IF TE= 3THEN K= K+ 2:GOTO 950
920 PLOT 3,0,29,6,3,11:PRINT :PRINT SPC( 10)"( ** PREFIXES :  AMP; ETC; SON; TEK; T/M; ** )"
930 PLOT 3,25,K,6,39:INPUT "";EU$:K= K+ 2:PLOT 6,3
940 PLOT 3,0,30,11:PRINT SPC( 10)"( ** ALWAYS HIT 'E' AT END OF SESSION ** )"
950 PLOT 3,25,K,6,39:INPUT "";LU$:K= K+ 2:IF LU$= ""THEN LU$= LO$
960 PLOT 3,25,K,6,39:INPUT "";QU:K= K+ 3:IF QU= 0THEN QU= QT
970 PLOT 3,25,K,6,39:INPUT "";CU$:K= K+ 3:IF CU$= ""THEN CU$= CM$
980 PLOT 3,25,K,6,39:INPUT "";SU$:K= K+ 2:IF SU$= ""THEN SU$= SM$
990 PLOT 3,25,K,6,39:INPUT "";AU$:K= K+ 2:IF AU$= ""THEN AU$= AT$
1000 PLOT 3,25,K,6,39:INPUT "";SE$:K= K+ 2:PLOT 6,3:IF SE$= ""THEN SE$= SA$
1010 IF PU$= ""THEN PU$= PT$
1020 IF EU$= ""THEN EU$= EN$
1030 PUT 3,KI,1;PU$[8],DU$[25],EU$[16],LU$[7],QU,CU$[16],SU$[16],AU$[8],SE$[8]
1040 FILE "C",3
1050 PUT 1,KI,1;PU$[8]:PUT 2,KI,1;EU$[16]
1060 FOR J= 8TO 29:PLOT 3,0,J,11:NEXT :PLOT 3,0,15:GOTO 230
1070 REM **************************************************
1080 REM
1090 REM           ** LIST STOCK DETAILS **
1100 REM
1110 GET 3,KI,1;PT$[8],DE$[25],EN$[16],LO$[7],QT,CM$[16],SM$[16],AT$[8],SA$[8]
1120 GOSUB 1470
1130 K= 10
1140 PLOT 3,25,K,6,3:PRINT PT$:K= K+ 1
1150 PLOT 3,25,K,6,3:PRINT DE$:K= K+ 2
1160 PLOT 3,25,K,6,3:PRINT EN$:K= K+ 2
1170 PLOT 3,25,K,6,3:PRINT LO$:K= K+ 2
1180 PLOT 3,25,K,6,3:PRINT "      ":PLOT 3,25,K:PRINT QT:K= K+ 3
1190 PLOT 3,25,K,6,3:PRINT CM$:K= K+ 3
1200 PLOT 3,25,K,6,3:PRINT SM$:K= K+ 2
1210 PLOT 3,25,K,6,3:PRINT AT$:K= K+ 2
1220 PLOT 3,25,K,6,3:PRINT SA$
1230 FILE "C",3
1235 PRINT SPC( 12);:INPUT "HIT 'ENTER' TO CONTINUE : ";Z$
1240 FOR J= 8TO 29:PLOT 3,0,J,11:NEXT :PLOT 3,0,15:GOTO 230
1250 REM **************************************************
1260 REM
1270 REM            ** DELETE A RECORD **
1280 REM
1290 PUT 3,KI,1;"-99"[16]:FILE "C",3
1300 PRINT SPC( 12);:INPUT "INSERT INDEX DISC - HIT 'ENTER' : ";Z$
1310 PUT 1,KI,1;"-99"[8]
1320 PUT 2,KI,1;"-99"[8]
1330 PRINT :PRINT
1340 PRINT :PRINT SPC( 20)"RECORD DELETED":GOTO 290
1350 REM **************************************************
1360 REM
1370 REM            ** END EDITING SESSION **
1380 REM
1390 FILE "C",1,2:FOR I= 8TO 28:PLOT 3,0,I,11:NEXT
1400 PLOT 3,15,14:PRINT "EDITING COMPLETED":PRINT :PRINT
1410 PRINT SPC( 15);:INPUT "DO YOU WANT ANOTHER EDIT SESSION ? : ";Y$
1420 IF Y$< > "Y"AND Y$< > "N"THEN PLOT 28,11:GOTO 1410
1430 IF Y$= "Y"THEN GOTO 190
1440 PRINT :PRINT SPC( 12);:INPUT "INSERT PROGRAM DISC - HIT 'ENTER' : ";Z$:PLOT 1
1450 REM **************************************************
1460 REM
1470 REM            ** PAGE LAYOUT **
1480 REM
1490 PLOT 3,5,8,6,7:PRINT "COMPONENT :-":PLOT 6,3:PRINT
1500 PRINT SPC( 10)"PART NUMBER";:PRINT SPC( 4);:PLOT 6,39:FOR T= 1TO 8:PRINT " ";:NEXT :PLOT 6,3:PRINT
1510 PRINT SPC( 10)"DESCRIPTION";:PRINT SPC( 4);:PLOT 6,39:FOR T= 1TO 25:PRINT " ";:NEXT :PLOT 6,7:PRINT
1520 PRINT :PRINT SPC( 5)"EQPT PART NO :    ";SPC( 2);:PLOT 6,39:FOR I= 1TO 15:PRINT " ";:NEXT
1530 PLOT 6,7
1540 PRINT :PRINT :PRINT SPC( 5)"LOCATION :";:PLOT 6,3:PRINT SPC( 4)"BIN # ";:PLOT 6,39:PRINT "       ":PRINT
1550 PLOT 6,7:PRINT SPC( 5)"QTY IN STOCK :      ";:PLOT 6,39:PRINT "    ":PRINT
1560 PLOT 6,7:PRINT SPC( 5)"COMPONENT":PLOT 6,3
1570 PLOT 6,7:PRINT SPC( 9)"MANUFACTURER :  ";:PLOT 6,39:FOR T= 1TO 16:PRINT " ";:NEXT :PRINT :PRINT
1580 PLOT 6,7:PRINT SPC( 5)"COMPONENT":PLOT 6,3
1590 PLOT 6,7:PRINT SPC( 9)"SUPPLIER :      ";:PLOT 6,39:FOR T= 1TO 16:PRINT " ";:NEXT :PLOT 6,3:PRINT :PRINT
1600 PLOT 6,7:PRINT SPC( 5)"ALTERNATIVE TYPES:  ";:PLOT 6,39:FOR T= 1TO 8:PRINT " ";:NEXT :PRINT :PRINT :PLOT 6,3
1610 PRINT SPC( 25);:PLOT 6,39:FOR T= 1TO 8:PRINT " ";:NEXT :PLOT 6,3
1620 RETURN
1630 REM **************************************************
1640 REM
1650 REM            ** SEARCH SUBROUTINE **
1660 REM
1680   REM  **  FIRST DETERMINE NATURE OF PN$ BY ITS LENGTH **
1690   IF LEN (PN$)> 8THEN PN$= LEFT$ (PN$+ "         ",16):TE= 2:GOTO 1710:REM  *PN$ IS AN EQPT NUMBER *
1700    PN$= LEFT$ (PN$+ "        ",8):TE= 1:REM  *PN$ IS A PART NUMBER *
1710 IN= 2101:REM  * 'IN' WILL MARK FIRST FREE FILE NUMBER
1720 HG= 8:IF TE= 2THEN HG= 16
1730     FOR KI= XTO Y
1740     GET TE,KI,1;HG$[HG]
1750     IF IN< KITHEN GOTO 1770
1760     IF VAL (HG$)= - 99THEN IN= KI:REM  * MARKS FIRST FREE FILE NUMBER
1770     IF HG$= PN$THEN FD= 1:GOTO 1810
1780     IF VAL (HG$)= - 99THEN TS= TS+ 1:IF TS= > 20THEN FD= 0:TS= 0:GOTO 1810
1790     NEXT
1800 IF IN= 2101AND I= 2100THEN PRINT :PRINT SPC( 20)"FILE IS FULL":GOTO 290
1810 IF FUN$= "A"AND FD= 1THEN PRINT :PRINT SPC( 20)"ENTRY ALREADY LISTED":GOTO 290
1820 IF (FUN$= "U"OR FUN$= "D"OR FUN$= "L")AND (FD= 0)THEN PRINT :PRINT SPC( 20)"ENTRY NOT LISTED":GOTO 290
1830 PLOT 28,11
1840 IF FD= 1THEN DD= INT ((KI- 1)/ 420)+ 1:KI= KI- (420* (DD- 1)):GOTO 1860:REM  * DISC, REC NO'S FOR EXISTING ENTRY
1850 DD= INT ((IN- 1)/ 420)+ 1:IN= IN- (420* (DD- 1)):REM  * DISC, RECORD NO'S FOR FREE ENTRY
1860 PRINT :PRINT SPC( 10)"INSERT DATA DISC "DD;:INPUT  " AND HIT 'RETURN' : ";Z$
1870 FILE "R",3,"DATA.RND",1:GET 3,1,1;DN:FILE "C",3
1880 IF DN< > DDTHEN PRINT :PRINT SPC( 12)"WRONG DATA DISC. THIS IS DISC "DN:PRINT :GOTO 1860
1890 FILE "R",3,"STOCKS",1;420,108,16
1900 FOR T= 8TO 29:PLOT 3,0,T,11:NEXT
1910 XZ= 99:RETURN