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

⟦954705c56⟧ TextFile

    Length: 7680 (0x1e00)
    Types: TextFile
    Names: »COMPHIP1.PRG«

Derivation

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

TextFile

*******************************************************************************
*DESIGN: NIF/ASD/SEPTEMBER 1985
*******************************************************************************
* PROCEDURE: COMPLETE
* PARAMETERS:PRIMARY DATABASE IN USE,PPLNAME,CONFIGNAME,MDBASE
* FUNCTION:  COMPLETES INFO IN PARTSLIST FROM THE CURRENTLY USED PPL & CUSTOM
*******************************************************************************

ERASE
IF MDBASE<>'DPL'
   @ 10,10 SAY 'SORTING THE DATABASE'
   SELECT PRIM
   COPY TO WORK
   USE WORK
   SORT ON REF:CODE TO &OPERDBF
   USE &OPERDBF
   DELETE FILE WORK
ENDIF
@ 10,10 SAY 'INSERTING INFORMATION FROM PPL'
@  1,10 SAY 'REFERENCE CODE BEING PROCESSED:'
*INSERT 'DEL' INTO GENERIC-NAME FIELD FOR ALL UNUSED COMPONENTS
SELECT PRIM
REPLACE ALL GEN:NAME WITH 'UNUSED' FOR $(REF:CODE,1,3)='DEL'
DELETE ALL FOR $(REF:CODE,1,3)='DEL'
*GIVE SOT'S A GENERIC NAME
REPLACE ALL GEN:NAME WITH REF:CODE FOR $(REF:CODE,1,3)='SOT'
DELETE ALL FOR $(REF:CODE,1,3)='SOT'

*INITIALIZE FOR PPL COMPLETION
SET LINKAGE OFF
SET DELETED OFF
SELECT SECONDARY
STORE $(PPLNAME,1,2)-'PPL_'-$(PPLNAME,3,4)-'.DBF' TO MPPL
USE &MPPL
GO BOTTOM
STORE INT(#/2) TO MHALF
GO TOP
SELECT PRIMARY
GO TOP
DO WHILE $(REF:CODE,1,1)='C'.AND..NOT.EOF
   SKIP
ENDDO
*FILL FROM PPL
DO WHILE (.NOT.EOF)
   SELECT SECONDARY
   *SEARCH ROUTINE
   IF S.REF:CODE<>P.REF:CODE
      IF #>MHALF
         CONTINUE
         IF S.REF:CODE<>P.REF:CODE
            LOCATE FOR S.REF:CODE=P.REF:CODE
         ENDIF
      ELSE
         LOCATE FOR S.REF:CODE=P.REF:CODE
      ENDIF
   @ 1,55 SAY P.REF:CODE USING 'XXXXXX'
   ENDIF

   *COMPLETION
   IF S.REF:CODE=P.REF:CODE
      SELECT PRIMARY
      REPLACE P.GEN:NAME WITH S.GEN:NAME
      REPLACE P.SPEC:CODE WITH S.SPEC:CODE
      REPLACE P.PACKAGE WITH S.PACKAGE
      DO CASE
         CASE MDBASE='DPL'
              REPLACE P.ISSUE WITH S.ISSUE
              REPLACE P.MANUF WITH S.MANUF
              REPLACE P.AGENCY WITH S.AGENCY
              REPLACE P.MAIN:CHAR WITH S.MAIN:CHAR
              REPLACE P.CPP:NO WITH S.CPP:NO
              REPLACE REQUIRED WITH COUNTER*UNITMULT

                 IF S.ATTRITION
                    DO CASE
                       CASE $(REF:CODE,1,1)='6'
                            DO CASE
                               CASE REQUIRED<6
                                    REPLACE NATTR WITH 4
                               CASE REQUIRED<16
                                    REPLACE NATTR WITH 12
                               OTHERWISE
                                    REPLACE NATTR WITH 10
                            ENDCASE
                       OTHERWISE
                            DO CASE
                               CASE REQUIRED<3
                                    REPLACE NATTR WITH 7
                               CASE REQUIRED<11
                                    REPLACE NATTR WITH 12
                               CASE REQUIRED<26
                                    REPLACE NATTR WITH 15
                               CASE REQUIRED<51
                                    REPLACE NATTR WITH 22
                               CASE REQUIRED<101
                                    REPLACE NATTR WITH 33
                               OTHERWISE
                                    REPLACE NATTR WITH 40
                            ENDCASE
                    ENDCASE
                 ENDIF

         CASE MDBASE='PLL'
              REPLACE P.MANUF WITH S.MANUF
              REPLACE P.MAIN:CHAR WITH S.MAIN:CHAR
         CASE MDBASE='KIT'
              *INSERT ADDITIONAL KITLIST INFO AS WANTED
      ENDCASE
      STORE P.REF:CODE TO MREF
      IF .NOT.($(MREF,1,1)$'458')
         REPLACE P.TOLERANCE WITH S.TOLERANCE
         REPLACE P.RATED:VOLT WITH S.RATED:VOLT
         REPLACE P.CVALUE WITH S.CVALUE
      ENDIF
      DELETE
   ENDIF
   SELECT PRIMARY
   SKIP
   DO WHILE (*.OR.$(REF:CODE,1,1)='C').AND.(.NOT.EOF)
      SKIP
   ENDDO
ENDDO


*INITIALIZE FOR CUSTOM-COMPLETION
STORE $(CONFIGNAME,1,2)-'CUS_'-$(CONFIGNAME,3,4)-'.DBF' TO MCUS
SET DELETED ON
GO TOP
LOCATE FOR $(REF:CODE,1,1)='C'
IF $(REF:CODE,1,1)='C'.AND.FILE(MCUS)
   SELECT SECONDARY
   USE &MCUS
   SELECT PRIMARY
   DO WHILE .NOT.EOF
      SELECT SECONDARY
      LOCATE FOR S.REF:CODE=P.REF:CODE
      @ 1,55 SAY P.REF:CODE USING 'XXXXXX'
      SELECT PRIMARY
      IF S.REF:CODE=P.REF:CODE

         REPLACE P.GEN:NAME WITH S.GEN:NAME
         REPLACE P.SPEC:CODE WITH S.SPEC:CODE
         REPLACE P.CVALUE  WITH S.CVALUE
         DO CASE
            CASE MDBASE='DPL'
                 REPLACE P.MAIN:CHAR WITH S.MAIN:CHAR
                 REPLACE P.CPP:NO WITH S.CPP:NO
                 REPLACE REQUIRED WITH COUNTER*UNITMULT
                 IF S.ATTRITION
                    DO CASE
                       CASE $(REF:CODE,1,1)='6'
                            DO CASE
                               CASE REQUIRED<6
                                    REPLACE NATTR WITH 4
                               CASE REQUIRED<16
                                    REPLACE NATTR WITH 12
                               OTHERWISE
                                    REPLACE NATTR WITH 10
                            ENDCASE
                       OTHERWISE
                            DO CASE
                               CASE REQUIRED<3
                                    REPLACE NATTR WITH 7
                               CASE REQUIRED<11
                                    REPLACE NATTR WITH 12
                               CASE REQUIRED<26
                                    REPLACE NATTR WITH 15
                               CASE REQUIRED<51
                                    REPLACE NATTR WITH 22
                               CASE REQUIRED<101
                                    REPLACE NATTR WITH 33
                               OTHERWISE
                                    REPLACE NATTR WITH 40
                            ENDCASE
                    ENDCASE
                 ENDIF

            CASE MDBASE='PLL'
                 IF P.REM='                    '
                    REPLACE P.REM WITH S.DRAWING
                 ENDIF
                 REPLACE P.MAIN:CHAR WITH S.MAIN:CHAR
         ENDCASE
         DELETE
      ENDIF
      SKIP
      DO WHILE $(REF:CODE,1,1)#'C'.AND..NOT.EOF
         SKIP
      ENDDO
   ENDDO
ELSE
   IF $(REF:CODE,1,1)='C'
      STORE 'CUSTOM COMPONENTS FILE MISSING FOR THIS CONFIGURATION' TO STATUS
   ENDIF
ENDIF



*LIST MISING DEFINITIONS
GO TOP
SET DELETED ON
ERASE
LOCATE FOR .NOT.*
IF .NOT.*
   ERASE
   STORE ' ' TO DUMMY
   @ 2,10 SAY 'COMPONENTS FOR WICH SPECIFICATIONS ARE MISSING:'
   STORE 4 TO MROW
   STORE 10 TO MCOL
   DO WHILE .NOT.*
      @ MROW,MCOL SAY REF:CODE USING 'XXXXXX'
      STORE MCOL+10 TO MCOL
      IF MCOL>=50
         STORE 10 TO MCOL
         STORE MROW+2 TO MROW
      ENDIF
      IF MROW>20
         @ 22,0 SAY 'RETURN FOR MORE OUTPUT' GET DUMMY
         READ
         STORE 4 TO MROW
      ENDIF
      DELETE
      CONTINUE
   ENDDO
   DO WHILE MROW <=20
      @ MROW,MCOL SAY '                                   '
      STORE MROW+2 TO MROW
      STORE 1 TO MCOL
   ENDDO
   @ 22,0 SAY '      RETURN TO CONTINUE' GET DUMMY
   READ
ENDIF
RELEASE DUMMY
*RETURN
SET DELETED OFF
RECALL ALL
SELECT SECONDARY
USE
SELECT PRIM
USE &OPERDBF
RETURN



«eof»