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