*DECK PICBSRC 
*TEXT    PASCAL SOURCE FOR PICB 
_$H+?                             _ PAGE HEADING OPTION ? 
_*************************************************
* *                                            * *
*   ******************************************   *
*   *                                        *   *
*   *           PASCAL SOURCE FOR            *   *
*   *    PROGRAM INITIATION CONTROL BLOCK    *   *
*   *                 (PICB)                 *   *
*   *                                        *   *
*   ******************************************   *
*   *                                        *   *
*   *   COPYRIGHT CONTROL DATA CORPORATION   *   *
*   *                  1981                  *   *
*   *                                        *   *
*   ******************************************   *
* *                                            * *
**************************************************
* 
*       THIS IS THE DEFINITION OF THE PICB.  IT IS COMPILED SEPARATELY
*       FROM CCP.  ITS TYPE DECLARATIONS MUST BE IN (ITS) GLOBL$, SO
*       THAT ALL SYMBOLS WILL BE ACCESSIBLE BY MPEDIT.  THE VAR PART
*       MUST BE IN A SEPARATE PROCEDURE (MODULE) SO THAT THE MODULE 
*       NAME AS SEEN ON THE OUTPUT FILE IS *PICB*.
? 
_$R-?                             _ NO RECURSION (NO QENTRY/QEXIT) ?
  
_************ 
*           * 
*   CONST   * 
*           * 
************? 
CONST 
PIFLTH = 9;                       _ FILL LENGTH -3 ?
  
_***********
*          *
*   TYPE   *
*          *
***********?
TYPE
B08BITS = 0..$FF; 
B012BITS = 0..$FFF; 
PICBCD = 0..$F;                   _ *CODE* FIELD - 4 BITS ? 
PICDBT = 0..7;                    _ *DBT* FIELD - 3 BITS ?
PICSFG = 0..1;                    _ *S* FLAG - 1 BIT ?
  
_**************************************************************** 
*                                                               * 
*   THE ONE(60/64-BIT)-WORD HEADER.  NOT A HEADER PER SE, BUT   * 
*   CONTAINS ONLY THE NDCB ADDRESS.                             * 
*                                                               * 
****************************************************************? 
PICBHT = PACKED RECORD
         PIHDF1 : INTEGER;        _ FILL ?
         PIHDF2 : INTEGER;        _ FILL ?
         PIHDF3 : B08BITS;        _ FILL ?
         L8NDCA : B08BITS;        _ LEFT 8 BITS OF NDCB ADDRESS ? 
         R16NDA : INTEGER;        _ RIGHT 16 BITS OF NDCB ADDRESS ? 
         END; 
  
_***************************************
*                                      *
*   THE DUMP PROCEDURE CONTROL BLOCK   *
*             (DPCB)                   *
*                                      *
***************************************?
DPCBTP = PACKED RECORD
         DPC0CD : PICBCD;         _ CODE ?
         DP0DBT : PICDBT;         _ DBT ? 
         DPCB0S : PICSFG;         _ *S* FLAG ?
         DPC0F1 : B08BITS;        _ FILL ?
         DPC0F2 : INTEGER;        _ FILL ?
         DPC0F3 : B08BITS;        _ FILL ?
         L8EAMM : B08BITS;        _ LEFT 8 BITS END ADS MACRO MEMORY ?
         R16EAM : INTEGER;        _ RIGHT 16 END ADS MACRO MEMORY ? 
_ 
*       60/64-BIT WORD 1
? 
         DPC1CD : PICBCD;         _ CODE ?
         DPC1F1 : B012BITS;       _ FILL ?
         DPC1F2 : INTEGER;        _ FILL ?
         DPC1F3 : INTEGER;        _ FILL ?
         DPC1F4 : INTEGER;        _ FILL ?
_ 
*       60/64-BIT WORD 2
? 
         DPC2CD : PICBCD;         _ CODE ?
         DP2DBT : PICDBT;         _ DBT ? 
         DPCB2S : PICSFG;         _ *S* FLAG ?
         L8DBSN : B08BITS;        _ LEFT 8 BITS DUMP BOOT NAME ?
         R16DBN : INTEGER;        _ RIGHT 16 DUMP BOOT NAME ? 
         DPC2F1 : INTEGER;        _ FILL ?
         DPC2F2 : INTEGER;        _ FILL ?
_ 
*       60/64-BIT WORD 3
? 
         DPC3CD : PICBCD;         _ CODE ?
         DPC3F1 : B012BITS;       _ FILL ?
         DPC3F2 : INTEGER;        _ FILL ?
         DPC3F3 : INTEGER;        _ FILL ?
         DPC3F4 : INTEGER;        _ FILL ?
_ 
*       60/64-BIT WORD 4
? 
         DPC4CD : PICBCD;         _ CODE ?
         DP4DBT : PICDBT;         _ DBT ? 
         DPCB4S : PICSFG;         _ *S* FLAG ?
         L8BMFR : B08BITS;        _ LEFT 8 BA MICRO FILE REG AREA ? 
         R16BFR : INTEGER;        _ RIGHT 16 BA MICRO FILE REG AREA ? 
         DPC4F1 : B08BITS;        _ FILL ?
         L8EMFR : B08BITS;        _ LEFT 8 EA MICRO FILE REG AREA ? 
         R16EFR : INTEGER;        _ RIGHT 16 EA MICRO FILE REG AREA ? 
_ 
*       60/64-BIT WORD 5
? 
         DPC5CD : PICBCD;         _ CODE ?
         DP5DBT : PICDBT;         _ DBT ? 
         DPCB5S : PICSFG;         _ *S* FLAG ?
         L8BMPR : B08BITS;        _ LEFT 8 BA MICRO PAGE REG AREA ? 
         R16BPR : INTEGER;        _ RIGHT 16 BA MICRO PAGE REG AREA ? 
         DPC5F1 : B08BITS;        _ FILL ?
         L8EMPR : B08BITS;        _ LEFT 8 EA MICRO PAGE REG AREA ? 
         R16EPR : INTEGER;        _ RIGHT 16 EA MICRO PAGE REG AREA ? 
_ 
*       60/64-BIT WORD 6
? 
         DPC6CD : PICBCD;         _ CODE ?
         DPC6F1 : B012BITS;       _ FILL ?
         DPC6F2 : INTEGER;        _ FILL ?
         DPC6F3 : INTEGER;        _ FILL ?
         DPC6F4 : INTEGER;        _ FILL ?
         END; 
  
_***************************************
*                                      *
*   THE LOAD PROCEDURE CONTROL BLOCK   *
*             (LPCB)                   *
*                                      *
***************************************?
LPCBTP = PACKED RECORD
         LPC0CD : PICBCD;         _ CODE ?
         LP0DBT : PICDBT;         _ DBT ? 
         LPCB0S : PICSFG;         _ *S* FLAG ?
         L8MICN : B08BITS;        _ LEFT 8 BITS MICRO CODE NAME ? 
         R16MIN : INTEGER;        _ RIGHT 16 MICRO CODE NAME ?
         LPC0F1 : INTEGER;        _ FILL ?
         LPC0F2 : INTEGER;        _ FILL ?
_ 
*       60/64-BIT WORD 1
? 
         LPC1CD : PICBCD;         _ CODE ?
         LPC1F1 : B012BITS;       _ FILL ?
         LPC1F2 : INTEGER;        _ FILL ?
         LPC1F3 : INTEGER;        _ FILL ?
         LPC1F4 : INTEGER;        _ FILL ?
_ 
*       60/64-BIT WORD 2
? 
         LPC2CD : PICBCD;         _ CODE ?
         LP2DBT : PICDBT;         _ DBT ? 
         LPCB2S : PICSFG;         _ *S* FLAG ?
         BY1MAN : B08BITS;        _ BYTE 1 MACRO CODE NAME ?
         B23MAN : INTEGER;        _ BYTES 2,3 MACRO CODE NAME ? 
         B45MAN : INTEGER;        _ BYTES 4,5 MACRO CODE NAME ? 
         BY6MAN : B08BITS;        _ BYTE 6 MACRO CODE NAME ?
         LPC2F1 : B08BITS;        _ FILL ?
_ 
*       60/64-BIT WORD 3
? 
         LPC3CD : PICBCD;         _ CODE ?
         LP3DBT : PICDBT;         _ DBT ? 
         LPCB3S : PICSFG;         _ *S* FLAG ?
         L8NASZ : B08BITS;        _ LEFT 8 BITS NCB AREA SIZE ? 
         R16NAS : INTEGER;        _ RIGHT 16 NCB AREA SIZE ?
         LPC3F1 : B08BITS;        _ FILL ?
         L8BANA : B08BITS;        _ LEFT 8 BITS BA NCB AREA ? 
         R16BAN : INTEGER;        _ RIGHT 16 BA NCB AREA ?
_ 
*       60/64-BIT WORD 4
? 
         LPC4CD : PICBCD;         _ CODE ?
         LPC4F1 : B012BITS;       _ FILL ?
         LPC4F2 : INTEGER;        _ FILL ?
         LPC4F3 : INTEGER;        _ FILL ?
         LPC4F4 : INTEGER;        _ FILL ?
_ 
*       60/64-BIT WORD 5
? 
         LPC5CD : PICBCD;         _ CODE ?
         LPC5F1 : B012BITS;       _ FILL ?
         LPC5F2 : INTEGER;        _ FILL ?
         LPC5F3 : INTEGER;        _ FILL ?
         LPC5F4 : INTEGER;        _ FILL ?
         END; 
  
_************************************** 
*                                     * 
*   THE SAM PROCEDURE CONTROL BLOCK   * 
*            (SPCB)                   * 
*                                     * 
**************************************? 
SPCBTP = PACKED RECORD
         SPC0CD : PICBCD;         _ CODE ?
         SP0DBT : PICDBT;         _ DBT ? 
         SPCB0S : PICSFG;         _ *S* FLAG ?
         L8SAMN : B08BITS;        _ LEFT 8 BITS SAM CODE NAME ? 
         R16SAN : INTEGER;        _ RIGHT 16 SAM CODE NAME ?
         SPC0F1 : INTEGER;        _ FILL ?
         SPC0F2 : INTEGER;        _ FILL ?
_ 
*       60/64-BIT WORD 1
? 
         SPC1CD : PICBCD;         _ CODE ?
         SPC1F1 : B012BITS;       _ FILL ?
         SPC1F2 : INTEGER;        _ FILL ?
         SPC1F3 : INTEGER;        _ FILL ?
         SPC1F4 : INTEGER;        _ FILL ?
_ 
*       60/64-BIT WORD 2
? 
         SPC2CD : PICBCD;         _ CODE ?
         SPC2F1 : B012BITS;       _ FILL ?
         SPC2F2 : INTEGER;        _ FILL ?
         SPC2F3 : INTEGER;        _ FILL ?
         SPC2F4 : INTEGER;        _ FILL ?
         END; 
  
_*********************
*                    *
*   THE FILL ARRAY   *
*                    *
*********************?
PICBFT = ARRAY [1..PIFLTH] OF INTEGER;
  
_******************************** 
*                               * 
*   THE PICB TYPE DECLARATION   * 
*                               * 
********************************? 
PICBTP = RECORD 
         PICBHD : PICBHT;         _ HEADER ?
         DPCB : DPCBTP;           _ DPCB ?
         LPCB : LPCBTP;           _ LPCB ?
         SPCB : SPCBTP;           _ SPCB ?
         PICBFL : PICBFT;         _ FILL ?
         END; 
  
_*************************
*                        *
*   THE PICB PROCEDURE   *
*                        *
*************************?
PROCEDURE PICB; 
VAR 
PICB : PICBTP;
BEGIN 
END;
  
_***********************
*                      *
*   THE MAIN PROGRAM   *
*                      *
***********************?
BEGIN 
END.
*ENDTEXT
