|
|
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: 5632 (0x1600)
Types: TextFile
Names: »SOTIN.PRG«
└─⟦71c82d5c0⟧ Bits:30004214 LISTAID - Partslist management system
└─⟦this⟧ »SOTIN.PRG«
└─⟦9ce0f2175⟧ Bits:30004308/disk3.imd Listaid database backup
└─⟦this⟧ »SOTIN.PRG«
*******************************************************************************
* DESIGN: NIF/ASD/SEPTEMBER 85 *
*******************************************************************************
* *
* PROCEDURE: 'SOTIN' CALLED FROM: TASK:'DSOT','USOT' *
* THIS COMMANDFILE IS PART OF THE 'LISTAID' PARTSLIST MANAGEMENT SYSTEM *
* IT PROVIDES USER INTERFACE FOR DEFINITION OF COMPONENTS IN SOT-KITS *
*******************************************************************************
*
* PARAMETERS:INITIALIZED VARIABLES:MTOL,MRATE,MVALIDSTAT,MCONTINUE,OPERDBF
* MREFC
SET CONFIRM OFF
STORE NVALUE TO OLDVALUE
STORE 'INIT' TO OLDREFC
ERASE
*ACCEPT USER-INPUT
DO WHILE MVALIDSTAT<>'NO OBJECTION'
@ 1,19 SAY ' '
@ 1,1 SAY 'VALIDATION STATE:'
@ 1,19 SAY MVALIDSTAT
@ 3,1 SAY OPERDBF
@ 5,1 SAY 'ENTER COMMAND: '
@ 5,16 GET MCONTINUE PICTURE '!'
DO CASE
CASE MINTYPE='CREATION'
@ 7,1 SAY 'C= CONTINUE, S= COMPLETE THIS ENTRY AND EXIT, D= EXIT'
CASE MINTYPE='EDIT'
@ 7,1 SAY 'A= ABORT CHANGE, M= MAKE CHANGE, D= DELETE, R= RECALL'
@ 7,$+1 SAY ', F= FIND REF.CODE'
IF *
@ 5,20 SAY 'RECORD MARKED FOR DELETION'
ELSE
@ 5,20 SAY 'RECORD NOT MARKED FOR DELETION'
ENDIF
CASE MINTYPE='APPEND'
@ 7,1 SAY 'C= CONTINUE, S= COMPLETE THIS ENTRY AND EXIT, D= EXIT'
@ 7,$+1 SAY ', F= FIND REF.CODE'
ENDCASE
READ
CLEAR GETS
IF .NOT.(MCONTINUE$'DF'.OR.(MINTYPE='EDIT'.AND.MCONTINUE='A'))
@ 10,22 SAY 'ENTER REFERENCE CODE:'
@ 10,43 GET MREFC PICTURE '!!!###'
READ
CLEAR GETS
IF MCONTINUE#'D'.AND.MCONTINUE<>'F'
IF $(MREFC,1,3)#'SOT'.AND.$(MREFC,1,1)#'C'.AND.VAL($(MREFC,1,6))<100001;
.AND.$(MREFC,1,3)#'DEL'
IF ($(MREFC,1,1)='4'.OR.$(MREFC,1,1)='5')
IF $(MREFC,2,1)#' '
STORE 'NO OBJECTION' TO MVALIDSTAT
ENDIF
ELSE
STORE 'REFERENCE CODE SYNTAX ERROR' TO MVALIDSTAT
ENDIF
ELSE
STORE 'NO OBJECTION' TO MVALIDSTAT
ENDIF
IF $(MREFC,1,3)='SOT'
STORE 'MORE LEVELS OF SOT KITS ARE NOT ALLOWED' TO MVALIDSTAT
ENDIF
*MAKE SURE THAT COMPONENTTYPE HAS NOT BEEN CHANGED
IF MREFC#OLDREFC.AND.OLDREFC#'INIT'.AND.MVALIDSTAT='NO OBJECTION'
STORE 'REFERENCE CODE HAS BEEN CHANGED' TO MVALIDSTAT
STORE 'INIT' TO OLDREFC
ERASE
ENDIF
IF MVALIDSTAT='NO OBJECTION'
STORE MREFC TO OLDREFC
ENDIF
*GET REST OF PARAMETERS
IF MVALIDSTAT='NO OBJECTION'
DO CASE
*RESISTOR
CASE $(MREFC,1,1)='4'
@ 12,17 SAY "ENTER RESISTANCE IN OHM'S:"
@ 12,43 GET NVALUE
*CAPACITOR
CASE $(MREFC,1,1)='5'
@ 12,19 SAY 'ENTER CAPACITANCE IN nF:'
@ 12,43 GET NVALUE
@ 14,23 SAY 'ENTER RATED VOLTAGE: V'
@ 14,43 GET MRATE PICTURE '####'
ENDCASE
IF $(MREFC,1,1)='4'.OR.$(MREFC,1,1)='5'
@ $+2,9 SAY 'ENTER TOLERANCE <%=REL. , A=ABS.>:'
@ $,43 GET MTOLV PICTURE '##.##'
@ $,48 GET MTOLT PICTURE '!'
ENDIF
READ
*RESISTOR + CAPACITOR SYNTAX CHECK
IF ($(MREFC,1,1)='4'.OR.$(MREFC,1,1)='5').AND.MVALIDSTAT='NO OBJECTION'
IF NVALUE=0
STORE 'VALUE MUST BE GREATER THAN ZERO' TO MVALIDSTAT
ELSE
IF MTOLT#'%'.AND.MTOLT#'A'
STORE 'ILLEGAL TOLERANCE-TYPE' TO MVALIDSTAT
ELSE
IF MTOLV=0
STORE 'TOLERANCE EXCEEDING PHYSICAL CONSTRAINTS' TO MVALIDSTAT
ELSE
IF VAL(MRATE)<=0.AND.$(MREFC,1,1)='5'
STORE "THIS CAPACITOR WOULDN'T STAND ANY VOLTAGE" TO MVALIDSTAT
ELSE
STORE STR(VAL(MRATE),4) TO MRATE
STORE 'NO OBJECTION' TO VALIDSTATE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
*OVERRULE SYNTAXCHECK
STORE # TO MCURRENT
GO BOTTOM
DO CASE
CASE MCONTINUE='D'
IF (#=1)
STORE 'MODULE_FILE DELETED: '+ OPERDBF TO STATUS
STORE 'NO OBJECTION' TO MVALIDSTAT
ELSE
STORE 'NO OBJECTION' TO MVALIDSTAT
ENDIF
CASE MCONTINUE='F'
STORE 'NO OBJECTION' TO MVALIDSTAT
ENDCASE
GO MCURRENT
ENDDO
*REPLACE RECORDS WITH MEMVARS
IF MCONTINUE<>'F'.AND..NOT.(MINTYPE='EDIT'.AND.MCONTINUE='A')
REPLACE REF:CODE WITH MREFC
IF $(MREFC,1,1)='4'.OR.$(MREFC,1,1)='5'
IF MTOLV>=1
STORE STR(MTOLV,3) TO MVAL
ELSE
STORE '.'-$(STR(MTOLV,5,2),4,2) TO MVAL
ENDIF
REPLACE TOLERANCE WITH MVAL-MTOLT
IF $(MREFC,1,1)='5'
REPLACE RATED:VOLT WITH MRATE
ENDIF
ENDIF
ELSE
REPLACE NVALUE WITH OLDVALUE
ENDIF
SET CONFIRM ON
RELEASE OLDREFC,OLDVALUE
ERASE
RETURN
*TO CALLING COMMANDFILE
«eof»