|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800)
Types: TextFile
Names: »UMOD.PRG«
└─⟦71c82d5c0⟧ Bits:30004214 LISTAID - Partslist management system
└─⟦this⟧ »UMOD.PRG«
└─⟦9ce0f2175⟧ Bits:30004308/disk3.imd Listaid database backup
└─⟦this⟧ »UMOD.PRG«
*******************************************************************************
*DESIGN: NIF/ASD/SEPTEMBER 1985
*******************************************************************************
*
*TASK:UMOD
*FUNCTION: UPDATES AN ALREADY EXISTING MODULEFILE
*
*******************************************************************************
*PROMPT USER FOR MODULEFILE IF NOT CALLED FROM ANOTHER PROGRAM
SET ESCAPE OFF
ERASE
SET FORMAT TO SCREEN
IF .NOT.CALL
STORE 'FILE' TO MSOURCE
@ 10,20 SAY 'ENTER POINTER FOR MODULEFILE: '+CONFIGNAME-'_'
@ $,$+1 GET MSOURCE PICTURE 'AAAA'
READ
STORE !(MSOURCE) TO MSOURCE
ENDIF
STORE CONFIGNAME-MSOURCE-'.PLS' TO OPERDBF
IF FILE(OPERDBF)
STORE 'E' TO MOPTION
USE &OPERDBF
COPY TO WORK.PLS
USE WORK.PLS
ERASE
STORE T TO MUPDATE
DO WHILE MOPTION<>'Q'
@ 4,1 SAY 'ENTER OPTION: ' GET MOPTION PICTURE '!'
@ 6,1 SAY 'E= EDIT COMPONENT DENOTED BY REFERENCE DESIGNATOR'
@ 7,1 SAY 'I= APPEND NEW COMPONENTS'
@ 8,1 SAY 'L= LIST WORKFILE'
@ 9,1 SAY 'V= VERIFY CHANGES'
@ 10,1 SAY 'U= MAKE UPDATE EFFECTIVE ON '+OPERDBF
@ 11,1 SAY 'Q= RETURN TO MENU WITHOUT FURTHER UPDATE OF '+OPERDBF
READ
DO CASE
CASE MOPTION='E'
* 'EDIT A RECORD'
CLEAR GETS
STORE ' ' TO MREFD
@ 12,1 SAY 'ENTER REFERENCE DESIGNATOR: '
DO WHILE MREFD=' '
@ 12,29 GET MREFD PICTURE 'AA####'
READ
IF MREFD=' '
@ 12,37 SAY "JUST DO AS YOU'RE TOLD "
ENDIF
ENDDO
ERASE
STORE T TO NEXT
DO WHILE NEXT
CLEAR GETS
SET DELETED OFF
IF MREFD<>' '
LOCATE FOR REF:DES=MREFD
IF REF:DES<>MREFD
@ 2,1 SAY MREFD +" NOT IN MODULE -- OPTION 'I' TO APPEND IT"
STORE F TO NEXT
ELSE
DO PLSEDIT
STORE F TO MUPDATE
ENDIF
ELSE
SKIP
IF EOF
GO TOP
ENDIF
STORE REF:DES TO MREFD
DO PLSEDIT
ENDIF
ENDDO
CASE MOPTION='I'
GO BOTTOM
STORE 'INITIAL STATE' TO MVALIDSTAT
STORE 'APPEND' TO MINTYPE
STORE 'C' TO MCONTINUE
STORE ' ' TO MREFD
STORE ' ' TO MREFC
STORE ' ' TO MRATE
STORE 0 TO MTOLV
STORE '%' TO MTOLT
DO WHILE MCONTINUE<>'S'.AND.MCONTINUE<>'D'
STORE 'C' TO MCONTINUE
STORE 'INITIAL STATE' TO MVALIDSTAT
IF MCONTINUE<>'F'
APPEND BLANK
ENDIF
DO MODIN
STORE F TO MUPDATE
DO WHILE MCONTINUE='F'
STORE 'C' TO MCONTINUE
STORE ' ' TO MGEN
ERASE
@ 10,10 SAY 'ENTER GENERIC NAME: ' GET MGEN PICTURE 'XXXXXXXXXXX'
READ
CLEAR GETS
DO PPLSEARCH
@ $+2,4 SAY 'SELECTED REF.CODE: ' GET MREFC PICTURE 'XXXXXX'
READ
CLEAR GETS
STORE 'PPL-SEARCH COMPLETED' TO MVALIDSTAT
DO MODIN
ENDDO
ENDDO
IF MCONTINUE='D'
DELETE
ENDIF
CASE MOPTION='V'
*DO VERIFY
@ $,$+3 SAY 'NOT IMPLEMENTED '
CASE MOPTION='U'
@ $,$+3 SAY 'RECORDS ARE BEING TRANSFERRED TO '+OPERDBF
PACK
REPLACE ALL NVALUE WITH 0 FOR $(REF:CODE,1,2)#'64'.AND.(.NOT.($(REF:CODE,1,1)$;
'458'))
REPLACE ALL RATED:VOLT WITH ' ' FOR $(REF:CODE,1,1)<>'5'
REPLACE ALL TOLERANCE WITH ' ' FOR .NOT.($(REF:CODE,1,1)$'458')
DELETE FILE &OPERDBF
INDEX ON $(REF:DES,1,2)+STR(VAL($(REF:DES,3,4)),4) TO WORK.NDX
SET INDEX TO WORK.NDX
COPY TO &OPERDBF
SET INDEX TO
DELETE FILE WORK.NDX
STORE T TO MUPDATE
ERASE
CASE MOPTION='Q'
IF .NOT.MUPDATE
@ $,$+3 SAY 'UPDATE HAS NOT BEEN MADE...PROCEED? (Y/N)'
@ $,$+2 GET MUPDATE
READ
ENDIF
IF MUPDATE
USE
DELETE FILE WORK.PLS
STORE 'READY' TO STATUS
USE &OPERDBF
GO BOTTOM
IF #<1
USE
DELETE FILE &OPERDBF
STORE OPERDBF+' DELETED --- NO ENTRIES' TO STATUS
ENDIF
ELSE
STORE 'E' TO MOPTION
ENDIF
CASE MOPTION='L'
GO TOP
STORE 'C' TO DUMMY
DO WHILE .NOT.EOF.AND.DUMMY='C'
ERASE
@ 1,0 SAY 'RECORD REFDES REFCOD NUMERIC VALUE TOL VOLT REM'
LIST NEXT 18
@ 22,0 SAY 'C= MORE OUTPUT, X= RETURN TO MENU ' GET DUMMY
READ
SKIP
ENDDO
ERASE
OTHERWISE
@ 4,17 SAY 'UNKNOWN OPTION'
ENDCASE
CLEAR GETS
ENDDO
ELSE
STORE 'FILE: '+OPERDBF+' DOES NOT EXIST -- USE DMOD' TO STATUS
ENDIF
RELEASE DUMMY,NEXT
RELEASE ALL LIKE M*
SET ESCAPE ON
RETURN
«eof»