DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦7b18ef4a1⟧ TextFile

    Length: 5632 (0x1600)
    Types: TextFile
    Names: »SOTIN.PRG«

Derivation

└─⟦71c82d5c0⟧ Bits:30004214 LISTAID - Partslist management system
    └─ ⟦this⟧ »SOTIN.PRG« 

TextFile

*******************************************************************************
* 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»