// DATE 150720
// NOHALT
*
*** RUN MAINT.
*
// LOAD $MAINT,F1
// RUN
// COPY FROM-READER,TO-F1,RETAIN-R,LIBRARY-S,NAME-@B@E
       MACRO
       @B@E  &EXP-N
.*
.*     5703-XM1 S/3 BASIC COMPILER SYSTEM EQUATES
.*
       TEXT
       PRINT OFF
       AIF   (&EXP EQ 'Y').ON          PRINT ON REQUESTED ?
       AIF   (&EXP EQ 'N').OFF         PRINT OFF REQUESTED ?
.ERR   MNOTE 00,'INVALID MACRO OPTION SPECIFIED.'
       AGO   .MEND
.ON    ANOP
       PRINT ON
.OFF   ANOP
       TITLE '$B@EQU - S/3 BASIC COMPILER FIXED ADDRESS EQUATES'
***********************************************************************
*      COMPILER DISK INPUT/OUTPUT WORK BUFFER ADDRESSES               *
***********************************************************************
*
B$CSBF EQU   $ENDNU                    DISK RESIDENT PMC GENERATORS
B$LDRP EQU   X'1A00'                   LOADER PARAM COMM AREA CADDR
B$SABF EQU   X'1C00'                   STATEMENT ADDRESS TABLE BFR
B$BABF EQU   X'1D00'                   PMC BRANCH ADDRESS TABLE BFR
B$GTBF EQU   X'1E00'                   SOURCE TEXT INPUT BUFFER
B$PTBF EQU   X'1F00'                   PSEUDO CODE OUTPUT BUFFER
B$CSXA EQU   X'2000'                   STARTING CADDR FOR EXCESS CORE
       EJECT
***********************************************************************
* COMPILER STATEMENT PROCESSOR CORE ADDRESS ENTRY POINTS - 8K SYSTEM  *
* NOTE - AN EQUATE TO ZERO (0) INDICATES PERMANENT CORE RESIDENCY     *
***********************************************************************
*
B$CREM EQU   0                         REM
B$CDAT EQU   B$CSBF+X'00'              DATE
B$CDEF EQU   B$CSBF+X'00'              DEF
B$CDIM EQU   B$CSBF+X'73'              DIM
B$CLTA EQU   0                         LET (ARITHMETIC, SIMPLE)
B$CASA EQU   0                         ASSIGNMENT (ARITH. SIMPLE)
B$CLTM EQU   B$CSBF+X'00'              LET (ARITHMETIC, MULTIPLE)
B$CASM EQU   B$CSBF+X'08'              ASSIGNMENT (ARITH, MULTIPLE)
B$CLTC EQU   B$CSBF+X'69'              LET (CHARACTER)
B$CASC EQU   B$CSBF+X'71'              ASSIGNMENT (CHARACTER)
B$CFOR EQU   B$CSBF+X'00'              FOR
B$CNXT EQU   B$CSBF+X'00'              NEXT
B$CIFA EQU   B$CSBF+X'00'              IF (ARITHMETIC)
B$CIFC EQU   B$CSBF+X'00'              IF (CHARACTER)
B$CGTO EQU   B$CSBF+X'B3'              GO TO (SIMPLE)
B$CCGT EQU   B$CSBF+X'00'              GO TO (COMPUTED)
B$CGSB EQU   B$CSBF+X'90'              GO SUB
B$CRTN EQU   B$CSBF+X'CF'              RETURN
B$CGET EQU   B$CSBF+X'A3'              GET
B$CPUT EQU   B$CSBF+X'00'              PUT
B$CRST EQU   B$CSBF+X'A6'              RESET
B$CCLS EQU   B$CSBF+X'95'              CLOSE
B$CINP EQU   B$CSBF+X'00'              INPUT
B$CREA EQU   B$CSBF+X'CF'              READ
B$CRSR EQU   B$CSBF+X'E3'              RESTORE
B$CPRT EQU   B$CSBF+X'00'              PRINT
B$CPRU EQU   B$CSBF+X'00'              PRINT USING
B$CIMG EQU   B$CSBF+X'00'              IMAGE
B$CMAT EQU   B$CSBF+X'00'              MAT (ASSIGNMENT)
B$CMGT EQU   B$CSBF+X'65'              MAT GET
B$CMIN EQU   B$CSBF+X'D3'              MAT INPUT
B$CMRD EQU   B$CSBF+X'D0'              MAT READ
B$CMPT EQU   B$CSBF+X'9B'              MAT PUT
B$CMPR EQU   B$CSBF+X'9B'              MAT PRINT
B$CMPU EQU   B$CSBF+X'00'              MAT PRINT USING
B$CPSE EQU   B$CSBF+X'E7'              PAUSE
B$CSTP EQU   B$CSBF+X'D6'              STOP
B$CEND EQU   B$CSBF+X'00'              END
B$CEOF EQU   B$CEND                    END-OF-FILE
B$CDUM EQU   0                         TRUNCATED STATEMENT
B$STRL EQU   B$CSBF+X'00'              LET (CHAR,SIMPLE,SUBSTRING)  1-4
B$STML EQU   B$CSBF+X'00'              LET (CHAROULT,SUBSTRING)     1-4
B$STAS EQU   B$CSBF+X'1B'              ASSIGNMENT (C,S,SUBSTRING)   1-4
B$STMA EQU   B$CSBF+X'1B'              ASSIGNMENT (C,M,SUBSTRING)   1-4
B$STIF EQU   B$CSBF+X'06'              IF (CHARACTER,SUBSTRING)     1-4
       EJECT
***********************************************************************
* CORE RESIDENT ROUTINE ENTRY POINTS AND PARAMETER ADDRESSES          *
* NOTE - THESE ADDRESS CONSTANTS ARE COPIED FROM THE 'COMMON CORE     *
*        ADDRESS EQUATE' SECTION OR THE ASSEMBLED LISTING FOR THE     *
*        COMPILER COMMON SECTION MODULE (BZCOMN).                     *
***********************************************************************
*
B$DIST EQU   X'0700'                   ENTRY - COMPILER DISTRIBUTOR
B$DST2 EQU   X'073A'                   ENTRY - STMT PROC SEG LOADER
B$LINE EQU   X'07D0'                   CURRENT STATEMENT LINE NO.
B$TYPE EQU   X'0739'                   CURRENT STATEMENT TYPE
B$SDPL EQU   X'07DA'                   STMT ADDR TABLE DPL CADDOR
B$SPAT EQU   X'07E0'                   CADDR OF STMT PROCESSOR TABLE
*
B$BTAB EQU   X'1996'                   ENTRY - BRANCH TABLE ROUTINE
B$BRVP EQU   X'19EE'                   BRANCH TABLE VIRTUAL PAGE NO.
B$BRVA EQU   X'19EF'                   BRANCH TABLE VIRTUAL PAGE DISP
B$BRLN EQU   X'19F1'                   BRANCH TABLE STMT LINE NO.
B$BDPL EQU   X'19E8'                   BRANCH ADD, TABLE DPL CADDR
B$BDSA EQU   X'19EA'                   BRANCH TBL FILE NEXT AVAIL SCR
*
B$GETC EQU   X'0867'                   ENTRY - SOURCE TEXT 'GET' RTN
B$NUMC EQU   X'0873'                   CHARACTER SKIP PARAMETER
B$GPTR EQU   X'0878'                   INPUT BUFFER POINTER
*
B$PUTC EQU   X'093A'                   ENTRY - COMPILER OUTPUT RTN
B$PFNC EQU   X'094E'                   'PUT' ROUTINE FUNCTION PARAM
B$PFWP EQU   X'0015'                   'PUT' RTN 'WRITE PAGE' CODE
B$PFAE EQU   X'0033'                   'PUT' RTN 'ADD ERROR' FUNC CODE
B$PFCL EQU   X'009D'                   RTN 'CLOSE' FUNC CODE
B$PARP EQU   X'0A41'                   'ADD RECORD' DATA PARAMETERS
B$PCAD EQU   X'0A40'                   CORE ADDR OF PMC STRIND
B$PNBY EQU   X'0A41'                   PMC STRING LENSTH PARAMETER
B$PVAD EQU   X'0A43'                   NEYT AVAILABLE VADDR FOR PMC
B$PCPG EQU   X'0A35'                   LAST PAGE FILLED WITH CONSTANTS
B$PCDL EQU   X'09D3'                   BYTE COUNT FOR LAST PUT STRING
B$PBNL EQU   X'0A01'                   NO. BYTES LEFT IN CURR PMC BFR
B$PERC EQU   X'0A39'                   COMPILER ERROR MESSAGE CODE
B$PECT EQU   X'0A44'                   COMPILER ERROR MESSAGE COUNT
*
B$FCON EQU   X'0A46'                   ENTRY - CONSTANT ROUTINE
B$CTYP EQU   X'0A5F'                   CONSTANT RTN TYPE PARAMETER
B$CCON EQU   X'001F'                   CONSTANT RTN CHAR CON CODE
B$SCON EQU   X'001B'                   CONSTANT RTN STRING CON CODE
B$CBFA EQU   X'0CBC'                   CONSTANT CORE BUFFER ADDR
B$CVPG EQU   X'0CA5'                   CONSTANT VIRTUAL PAGE NO.
B$CVPD EQU   X'0C5D'                   CONSTANT BUFFER POINTER DISP
B$CPCT EQU   X'0CA8'                   CONSTANT RTN SEGMENT COUNT
*
B$SYMB EQU   X'0DBC'                   ENTRY - SYMBOL TABLE ROUTINE
B$FACA EQU   X'0E53'                   FUNC AND ARRAY ATTRIBUTE CADDR
B$FSC1 EQU   X'0E4C'                   USER FUNC ARGUMENT 1ST DAR
B$FSC2 EQU   X'0E4D'                   USER FUNC ARGUMENT 2ND CHAR
B$FSVA EQU   X'0E4F'                   USER FUNC ARGUMENT VADDR
B$SVRB EQU   X'0E46'                   VARIABLE ALLOCATION BASE VADDR
B$SFAB EQU   X'0E48'                   SEE TABLE ALLOCATION BASE VADDR
B$SLVT EQU   X'1062'                   LETTER VAR SYMBOL TABLE CADDR
B$SLDT EQU   X'109C'                   LTR-DIG VAR SYMBOL TABLE CADDR
B$SCVT EQU   X'12E0'                   CHAR VAR SYMBOL TABLE CADDR
B$SNAT EQU   X'131A'                   ARITH ARRAY SYMBOL TABLE CADDR
B$SCAT EQU   X'13C8'                   CHAR ARRAY SYMBOL TABLE CADDR
B$SFNT EQU   X'143C'                   USER FUNC SYMBOL TABLE CADDR
*
B$CSCN EQU   X'14B0'                   ENTRY - CHARACTER SCAN RTN
*
B$SCAN EQU   X'1514'                   ENTRY - ARITHMETIC SCAN RTN
B$BCKT EQU   X'1590'                   SYMBOL ADDR OUTPUT PARAMETER
B$FAIS EQU   X'15AC'                   VADDR FOR 1ST INTERNAL CONSTANT
B$FAIW EQU   X'15A0'                   VADDR FOR 1ST INTERNAL VARIABLE
B$FVPE EQU   X'15A8'                   VADDR OR INTERNAL CON 'E'
B$FVPP EQU   X'15AA'                   VADDR OF INTERNAL CON 'PI'
B$FVPS EQU   X'15AC'                   VADDR OF INTERNAL CON 'SQR2'
B$FVME EQU   X'15A2'                   VADDR OF INTERNAL CON '-E'
B$FVMP EQU   X'15A4'                   VADDR OF INTERNAL CON '-PI'
B$FVMS EQU   X'15A6'                   VADDR OF INTERNAL CON '-SQR2'
*
B$LIST EQU   X'1853'                   ENTRY - ASSIGNMENT LIST RTN
B$LTYP EQU   X'18F2'                   LIST ELEMENT TYPE CODE BYTE
*
B$MATR EQU   X'18F3'                   ENTRY - MATRIX REFERENCE RTN
*
B$ZDBN EQU   X'19F2'                   ENTRY - DECIMAL TO BINARY CONV
B$BINO EQU   X'1A6A'                   BINARY NUMBER ACCUMULATOR
*
B$DL4T EQU   X'1A6B'                   ENTRY - DISK 4-TRACK LIOCR
*
B$RMRK EQU   X'1AE6'                   ENTRY - 'REM' STMT PROCESSOR
B$CSTR EQU   X'14CC'                   STRING ENTRY POINT FOR BECSCN1-4
B$CRAD EQU   X'150D'                   RETURN BR OPERAND IN BECSCN  1-4
B$CBAS EQU   X'14BB'                   BASE ADDRESS IN BECSCN       1-4
B$CRBS EQU   X'1509'                   SAVE AREA FOR RTRN BASE REG  1-4
B$LSTR EQU   X'1862'                   ENTRY PT BLISTA FOR STR RTN  1-4
B$LBSV EQU   X'18E7'                   BASE REG SV AREA IN BLISTA   1-4
B$LRTN EQU   X'18EB'                   RETURN ADDR SV AREA IN BLISTA1-4
B$LBAS EQU   X'185E'                   BLISTA BASE ADDRESS          1-4
       EJECT
***********************************************************************
* MISCELLANEOUS FIXED EQUATES                                         *
* NOTE - THESE ADDRESS CONSTANTS ARE COPIED FROM THE 'COMMON CORE     *
*        ADDRESS EQUATE' SECTION OF THE ASSEMBLED LISTING FOR THE     *
*        COMPILER COMMON SECTION MODULE (BZCOMN).                     *
***********************************************************************
*
B$INVT EQU   X'1B38'                   INPUT VERIFICATION TABLE ADDR
*
B$MFBK EQU   X'1B8F'                   MAT ASSIGN FUNCTION BUCKET ADP
*
B$SSTA EQU   X'1BAC'                   INDICATOR FOR 'STEP' ALLOWED
*
B$FORT EQU   X'1B0E'                   'FOR' TABLE STARTING ADDRESS
B$FTPT EQU   X'1B0D'                   'FOR' TABLE POINTER
B$FTND EQU   X'1B0B'                   'FOR' 1NBLE ENDING ADDRESS
*
B$DLNK EQU   X'1B37'                   'DATA' FILE LINKAGE OPERAND
B$WORK EQU   X'15A0'                   VIRTUAL ADDR CONSTANT FOR WORK
B$CWRK EQU   X'F500'                   VADDR CONSTANT FOR CWRK      1-4
*
B$PPWA EQU   X'0A35'                   CADDR CF BBPUTC PRECISION AREA
B$CPWA EQU   X'0CA6'                   CADDR OF BCFCON PRECISION AREA
B$DPWA EQU   X'0E46'                   CADDR OF BDSYMB PRECISION AREA
B$FPWA EQU   X'15AC'                   CADDR OF BFSCAN PRECISION AREA
B$PRM1 EQU   X'1AF3'                   BSTRIF PARAM WORKAREA        1-4
B$RTRN EQU   X'1AF5'                   BSTMLT-CONTROL RETURN ADDR   1-4
B$BROP EQU   X'1AF7'                   BSTMLT-RETURN BR VADDR OPRND 1-4
B$CADR EQU   X'1AF9'                   BSTMLT-CONTROL CADDR         1-4
B$TTAB EQU   X'1AFA'                   REL OPRTR-COND CODE TBL ADDR 1-4
B$TOD1 EQU   0                         DISP FOR TABLE OPERATOR      1-4
B$TCD2 EQU   1                         DISP FOR TABLE COND CODE     1-4
B$TLTH EQU   2                         LENGTH OF TABLE ENTRY        1-4
B$TOTB EQU   B$TTAB-B$TLTH             CODE TABLE BASE ADDRESS      1-4
       EJECT
***********************************************************************
* COMPILER SWITCHES                                                   *
* NOTE - THESE ADDRESS CONSTANTS ARE COPIED FROM THE 'COMMON CORE     *
*        ADDRESS EQUATE' SECTION OF' THE ASSEMBLED LISTING FOR THE    *
*        COMPILER COMMON SECTION MODULE (BZCOMN).                     *
***********************************************************************
*
B$ARSW EQU   X'0A45'                   'ADD RECORD' EXECUTIOW SWITCH
B$ARMK EQU   X'0001'                   'ADD RECORD' EXEC SWITCH MASK
*
B$ERSW EQU   X'0993'                   COMPILER ERROR SWITCH
B$ERMK EQU   X'0007'                   COMPILER ERROR SWITCH MASK
*
B$GBSW EQU   X'08AF'                   GETC 'BLANK' BYPASS SWITCH
B$GBWK EQU   X'0001'                   GETC 'BLANK' BYPASS SWITCH MASK
*
B$NXSW EQU   X'071D'                   'NEXT' UNRESOLVED BRANCH SWITCH
B$NXMK EQU   X'0007'                   'NEXT' UNRESOLVED BRANCH MASK
*
B$FSSW EQU   X'0E5C'                   USER FUNCTION SCAN SWITCH
B$FSMK EQU   X'0007'                   USER FUNCTION SCAN SWITCH MASK
*
B$ADSW EQU   X'159D'                   AVAILABLE ADDRESS SWITCH
B$ADMK EQU   X'0001'                   AVAILABLE ADDRESS SWITCH MASK
*
B$KWSW EQU   X'159E'                   EXPRESSION KEYWORD SWITCH
B$KWMK EQU   X'0001'                   EXPRESSION KEYWORD SWITCH MASK
*
B$FRSW EQU   X'16CC'                   FUNCTION REFERENCE SWITCH
B$FRMK EQU   X'0007'                   FUNCTION REFERENCE SWITCH MASK
*
B$IFSW EQU   X'16E5'                   INTRINSIC FUNCTION SWITCH
B$IFMK EQU   X'0007'                   INTRINSIC FUNCTION SWITCH MASK
*
B$CRSW EQU   X'0E42'                   CHARACTER REFERENCE SWITCH
B$CRMK EQU   X'0001'                   CHARACTER REFERENCE SWITCH MASK
*
B$CSSW EQU   X'14BC'                   CHARACTER EXPR SCAN SWITCH
B$CSMK EQU   X'0007'                   CHARACTER EXPR SCAN SWITCH MASK
*
B$MRSW EQU   X'0DDE'                   MATRIX REFERENCE SCAN SWITCH
B$MRMK EQU   X'0007'                   MATRIX REFERENCE SCAN SW MASK
*
B$MGSW EQU   X'18FF'                   MAT ASSIGNMENT 'GET' SWITCH
B$MGMK EQU   X'0007'                   MAT ASSIGNMENT 'GET' SW MASK
*
B$MBSW EQU   X'1903'                   MAT SYMBOL PROC BYPASS SWITCH
B$MBMK EQU   X'0007'                   MAT SYMBOL PROC BYPASS SW MASK
*
B$MPSW EQU   X'1981'                   MAT ASSIGNMENT 'PUT' SWITCH
B$MPMK EQU   X'0007'                   MAT ASSIGNMENT 'PUT' SW MASK
       EJECT
***********************************************************************
*      PSEUDO OP CODE EQUATES                                         *
***********************************************************************
*
B@CSVC EQU   2                         SUPERVISOR CALL
B@CHLT EQU   4                         HALT EXECUTION
B@CADD EQU   6                         ADD
B@CSUB EQU   8                         SUBTRACT
B@CMPY EQU   10                        MULTIPLY
B@CDIV EQU   12                        DIVIDE
B@CPWR EQU   14                        EXPONENTIATE
B@CNEG EQU   16                        NEGATE
B@CFN0 EQU   18                        FUNCTION CALL - NO ARGUMENT
B@CFN1 EQU   20                        FUNCTION CALL - 1 ARGUMENT
B@CFCI EQU   22                        FUNCTION CALL - INDIRECT
B@CMF1 EQU   24                        1 MATRIX FUNCTION CALL
B@CMF2 EQU   26                        2 MATRIX FUNCTION CALL
B@CMF3 EQU   28                        3 MATRIX FUNCTION CALL
B@CMSM EQU   30                        MATRIX-SCALAR MPY FUNC CALL
B@CSTF EQU   32                        STACK FLOATING VALUE
B@CSF1 EQU   34                        STACK ARITH VECTOR VALUE
B@CSF2 EQU   36                        STACK ARITH MATRIX VALUE
B@CUSF EQU   38                        UNSTACK FLOATING VALUE
B@CSTC EQU   40                        STACK CHARACTER FIELD
B@CSC1 EQU   42                        STACK CHARACTER ARRAY FIELD
B@CUSC EQU   44                        UNSTACK CHARACTER FIELD
B@CSD0 EQU   46                        STACK DOPE VECTOR
B@CSD1 EQU   48                        STACK DOPE VECTOR - REDIM 1
B@CSD2 EQU   50                        STACK DOPE VECTOR - REDIM 2
B@CSTA EQU   52                        STACK VIRTUAL ADDRESS
B@CSA1 EQU   54                        STACK ARITH VECTOR ADDRESS
B@CSA2 EQU   56                        STACK ARITH MATRIX ADDRESS
B@CSB1 EQU   58                        STACK CHARACTER ARRAY ADDRESS
B@CSTX EQU   60                        STACK EXECUTION CONTROL CODE
B@CCSA EQU   62                        COMPUTE STACKED ADDRESS
B@CCMF EQU   64                        COMPARE FLOATING VALUES
B@CCMC EQU   66                        COMPARE CHARACTER FIELDS
B@CBRC EQU   68                        BRANCH ON CONDITION
B@CBRA EQU   70                        BRANCH UNCONDITIONALLY
B@CBRD EQU   72                        BRANCH AND DELETE FUNC REF
B@CBNX EQU   74                        BRANCH AND SKIP EXECUTION
B@CBRS EQU   76                        BRANCH TO STACKED ADDRESS
B@CFOR EQU   78                        BEGIN 'FOR' LOOP
B@CNXT EQU   80                        CONTINUE 'FOR' LOOP
B@CGET EQU   82                        INPUT DATA ELEMENT
B@CPUT EQU   84                        OUTPUT DATA ELEMENT
B@CINI EQU   86                        INITIATE DATA INPUT
B@CADF EQU   88                        ACTIVATE DATA FILE
B@CRSR EQU   90                        RESTORE DATA FILE POINTER
B@CRST EQU   92                        RESET DATA FILE POINTER
B@CCLS EQU   94                        CLOSE A DATA FILE
B@CPRS EQU   96                        PRINT AND SPACE CARRIER
B@CPRU EQU   98                        PRINT USING IMAGE
B@CSTH EQU   100                       STATEMENT HEADER
B@CIMH EQU   102                       IMAGE STATEMENT HEADER
B@CEOP EQU   104                       END OF PSEUDO CODE PAGE
B@CDCA EQU   106                       DEFINE CONSTANT ADDRESS
B@CDDL EQU   108                       DEFINE DATA LINKAGE
B@CDWA EQU   110                       DEFINE WORK AREA
B@CEOF EQU   112                       END OF PROGRAM PMC
       EJECT
***********************************************************************
*      PSEUDO INSTRUCTION EQUATES                                     *
***********************************************************************
*
B@LCOP EQU   1                         LENGTH OF PSEUDO OPCODE
B@LCER EQU   1                         LENGTH OF COMPILER ERROR CODE
B@LCVA EQU   @VADDR                    LENGTH OF VADDR OPERAND
B@LCCC EQU   1                         LENGTH OF CONDITION CODE OPRND
B@LCNN EQU   1                         LENGTH OF COUNT OPERAND
B@LCXX EQU   1                         LENGTH OF EXEC CTRL CODE OPRND
B@LCLN EQU   2                         LENGTH OF LINE NO. OPERAND
*
B@LSVC EQU   B@LCOP                    SUPERVISOR CALL
B@LHLT EQU   B@LCOP                    HALT EXECUTION
B@LADD EQU   B@LCOP                    ADD
B@LSUB EQU   B@LCOP                    SUBTRACT
B@LMPY EQU   B@LCOP                    MULTIPLY
B@LDIV EQU   B@LCOP                    DIVIDE
B@LPWR EQU   B@LCOP                    EXPONENTIATE
B@LNEG EQU   B@LCOP                    NEGATE
B@LFN0 EQU   B@LCOP+B@LCVA             FUNCTION CALL - NO ARGUMENT
B@LFN1 EQU   B@LCOP+B@LCVA             FUNCTION CALL - 1 ARGUMENT
B@LFCI EQU   B@LCOP+B@LCVA             FUNCTION CALL - INDIRECT
B@LMF1 EQU   B@LCOP+B@LCVA             1 MATRIX FUNCTION CALL
B@LMF2 EQU   B@LCOP+B@LCVA             2 MATRIX FUNCTION CALL
B@LMF3 EQU   B@LCOP+B@LCVA             3 MATRIY FUNCTION CALL
B@LMSM EQU   B@LCOP+B@LCVA             MATRIX-SCALAR MPY FUNC CALL
B@LSTF EQU   B@LCOP+B@LCVA             STACK FLOATING VALUE
B@LSF1 EQU   B@LCOP+B@LCVA             STACK ARITH VECTOR VALUE
B@LSF2 EQU   B@LCOP+B@LCVA             STACK ARITH MATRIX VALLE
B@LUSF EQU   B@LCOP                    UNSTACK, FLOATING VALUE
B@LSTC EQU   B@LCOP+B@LCVA             STACK CHARACTER FIELD
B@LSC1 EQU   B@LCOP+B@LCVA             STACK CHARACTER ARRAY FIELD
B@LUSC EQU   B@LCOP+B@LCNN             UNSTACK CHARACTER FIELD
B@LSD0 EQU   B@LCOP+B@LCVA             STACK DOPE VECTOR
B@LSD1 EQU   B@LCOP+B@LCVA             STACK DOPE VECTOR - REDIM
B@LSD2 EQU   B@LCOP+B@LCVA             STACK DOPE VECTOR - REDIM 2
B@LSTA EQU   B@LCOP+B@LCVA             STACK VIRTUAL ADDRESS
B@LSA1 EQU   B@LCOP+B@LCVA             STACK ARITH VECTOR ADDRESS
B@LSA2 EQU   B@LCOP+B@LCVA             STACK ARITH MATRIX ADDRESS
B@LSB1 EQU   B@LCOP+B@LCVA             STACK CHARACTER ARRAY ADDRESS
B@LSTX EQU   B@LCOP+B@LCXX             STACK EXECUTION CONTROL CODE
B@LCSA EQU   B@LCOP+B@LCNN             COMPUTE STACKED ADDRESS
B@LCMF EQU   B@LCOP                    COMPARE FLOATING VALUES
B@LCMC EQU   B@LCOP                    COMPARE CHARACTER FIELDS
B@LBRC EQU   B@LCOP+B@LCVA+B@LCCC      BRANCH ON CONDITION
B@LBRA EQU   B@LCOP+B@LCVA             BRANCH UNCONDITIONALLY
B@LBRD EQU   B@LCOP+B@LCVA             BRANCH AND DELETE FUNC REF
B@LBNX EQU   B@LCOP+B@LCVA             BRANCH AND SKIP EXECUTION
B@LBRS EQU   B@LCOP                    BRANCH TO STACKED ADDRESS
B@LFOR EQU   B@LCOP+B@LCVA             BEGIN 'FOR' LOOP
B@LNXT EQU   B@LCOP+B@LCVA             CONTINUE 'FOR' LOOP
B@LGET EQU   B@LCOP+B@LCVA             INPUT DATA ELEMENT
B@LPUT EQU   B@LCOP+B@LCXX             OUTPUT DATA ELEMENT
B@LINI EQU   B@LCOP+B@LCNN             INITIATE DATA INPUT
B@LADF EQU   B@LCOP+B@LCXX             ACTIVATE DATA FLIT
B@LRSR EQU   B@LCOP                    RESTORE DATA FILE POINTER
B@LRST EQU   B@LCOP                    RESET DATA FILE POINTER
B@LCLS EQU   B@LCOP                    CLOSE A DATA RILE
B@LPRS EQU   B@LCOP+B@LCXX             PRINT AND SPACE CARRIER
B@LPRU EQU   B@LCOP+B@LCXX             PRINT USING IMAGE
B@LSTH EQU   B@LCOP+B@LCLN             STATEMENT HEADER
B@LIMH EQU   B@LCOP+B@LCLN             IMAGE STATEMENT HEADER
B@LEOP EQU   B@LCOP                    END OF PSEUDO CODE PAGE
B@LDCA EQU   B@LCOP+B@LCVA             DEFINE CONSTANT ADDRESS
B@LDDL EQU   B@LCOP+B@LCVA             DEFINE DATA LINKAGE
B@LDWA EQU   B@LCOP+B@LCNN             DEFINE WORK AREA
B@LEOF EQU   B@LCOP                    END OF PROGRAM PMC
*
B@LERC EQU   B@LCER+B@LCLN             ERROR MESSAGE RECORD LENSTN
       EJECT
***********************************************************************
*      PSEUDO CONDITIONAL BRANCH EQUATES                              *
***********************************************************************
*
B@BRLO EQU   X'82'                     BRANCH CONDITION - LOW
B@BREQ EQU   X'84'                     BRANCH CONDITION - EQUAL
B@BRHI EQU   X'88'                     BRANCH CONDITION - HIGH
B@BRNL EQU   X'92'                     BRANCH CONDITION - NOT LOW
B@BRNE EQU   X'94'                     BRANCH CONDITION - NOT EQUAL
B@BRNH EQU   X'98'                     BRANCH CONDITION - NOT HIGH
       SPACE
***********************************************************************
*      PSEUDO PRINT INSTRUCTION EXECUTION CONTROL CODES               *
***********************************************************************
*
* PRINT AND SPACE (PRS) INSTRUCTION CODES
*
B@PRPN EQU   1                         PRINT AND NO SPACE
B@PRPL EQU   2                         PRINT AND SPACE TO LONG ZONE
B@PRPS EQU   3                         PRINT AND SPACE TO SHORT ZONE
B@PRPR EQU   4                         PRINT AND RETURN CARRIAGE
B@PRSL EQU   5                         SPACE TO LONG ZONE
B@PRSS EQU   6                         SPACE TO SHORT ZONE
B@PRRC EQU   7                         RETURN THE CARRIAGE
B@PRRL EQU   8                         RETURN CARRIAGE CONDITIONALLY
*
* PRINT USING (PRU) INSTRUCTION CODES
*
B@PUI0 EQU   1                         NULL IMAGE SPECIFICATION
B@PUI1 EQU   4                         1ST SEGMENT OF IMAGE STRING
B@PUI2 EQU   5                         SECONDARY IMAGE STRING SEGMENT
*
B@PUNL EQU   2                         NULL PRINT USING LIST
B@PUNS EQU   3                         NULL CHARACTER STRING
B@PUD1 EQU   6                         PRIMARY DATA ELEMENT
B@PUD2 EQU   7                         SECONDARY DATA ELEMENT
*
B@PUTM EQU   X'10'                     PRINT USING TERMINATION MASK
B@PURE EQU   X'20'                     MAY PRINT USING END-OF-ROW MASK
       EJECT
***********************************************************************
*      BASIC STATEMENT TYPE CODES                                     *
***********************************************************************
*
B@TREM EQU   3                         REM
B@TDAT EQU   6                         DATA
B@TDEF EQU   9                         DEF
B@TDIM EQU   12                        DIM
B@TLTA EQU   15                        LET (ARITHMETIC, SIMPLE)
B@TASA EQU   18                        ASSIGNMENT (ARITH, SIMPLE)
B@TLTM EQU   21                        LET (ARITHMETIC, MULTIPLE)
B@TASM EQU   24                        ASSIGNMENT (ARITH, MULTIPLE)
B@TLTC EQU   27                        LET (CHARACTER)
B@TLTS EQU   121                       LET (CHAR, SIMPLE, SUBSTR)   1-4
B@TMLS EQU   122                       LET (CHAR, MULT, SUBSTR)     1-4
B@TASC EQU   30                        ASSIGNMENT (CHARACTER)
B@TASS EQU   123                       ASSIGN (CHAR, SIMPLE, SUBSTR)1-4
B@TMAS EQU   124                       ASSIGN (CHAR, MULT, SUBSTR)  1-4
B@TFOR EQU   33                        FOR
B@TNXT EQU   36                        NEXT
B@TIFA EQU   39                        IF (ARITHMETIC)
B@TIFC EQU   42                        IF (CHARACTER)
B@TIFS EQU   125                       IF (CHAR, SUBSTR)            1-4
B@TGTO EQU   45                        GO TO (SIMPLE)
B@TCGT EQU   48                        GO TO (COMPUTED)
B@TGSB EQU   51                        GO SUB
B@TRTN EQU   54                        RETURN
B@TGET EQU   57                        GET
B@TPUT EQU   60                        PUT
B@TRST EQU   63                        RESET
B@TCLS EQU   66                        CLOSE
B@TINP EQU   69                        INPUT
B@TREA EQU   72                        READ
B@TRSR EQU   75                        RESTORE
B@TPRT EQU   78                        PRINT
B@TPRU EQU   81                        PRINT USING
B@TIMG EQU   84                        IMAGE
B@TMAT EQU   87                        MAT (ASSIGNMENT)
B@TMGT EQU   90                        MAT GET
B@TMIN EQU   93                        MAT INPUT
B@TMRD EQU   96                        MAT READ
B@TMPT EQU   99                        MAT PUT
B@TMPR EQU   102                       MAT PRINT
B@TMPU EQU   105                       MAT PRINT USING
B@TPSE EQU   108                       PAUSE
B@TSTP EQU   111                       STOP
B@TEND EQU   114                       END
B@TEOF EQU   117                       END-OF-FILE
B@TDUM EQU   120                       TRUNCATED STATEMENT
       EJECT
***********************************************************************
*      BASIC STATEMENT KEYWORD LENGTH EQUATES                         *
***********************************************************************
*
* PRIMARY STATEMENT KEYWORDS
*
B@LREM EQU   3                         REM
B@LDAT EQU   4                         DATA
B@LDEF EQU   3                         DEF
B@LDIM EQU   3                         DIM
B@LLET EQU   3                         LET
B@LKFR EQU   3                         FOR
B@LNEX EQU   4                         NEXT
B@LKIF EQU   2                         IF
B@LGTO EQU   4                         GO TO
B@LGSB EQU   5                         GO SUB
B@LRTN EQU   6                         RETURN
B@LKGT EQU   3                         GET
B@LKPT EQU   3                         PUT
B@LKRT EQU   5                         RESET
B@LKCL EQU   5                         CLOSE
B@LINP EQU   5                         INPUT
B@LREA EQU   4                         READ
B@LKRR EQU   7                         RESTORE
B@LPRT EQU   5                         PRINT
B@LKPU EQU   10                        PRINT USING
B@LIMG EQU   1                         IMAGE (:)
B@LMAT EQU   3                         MAT
B@LMGT EQU   6                         MAT GET
B@LMIN EQU   8                         MAT INPUT
B@LMRD EQU   7                         MAT READ
B@LMPT EQU   6                         MAT PUT
B@LMPR EQU   8                         MAT PRINT
B@LMPU EQU   13                        MAT PRINT USING
B@LPSE EQU   5                         PAUSE
B@LSTP EQU   4                         STOP
B@LEND EQU   3                         END
*
* SECUNDARY (EMBEDDED) STATEMENT KEYWORDS
*
B@LKTO EQU   2                         TO
B@LSTE EQU   4                         STEP
B@LTHN EQU   4                         THEN (SAME LENGTH AS GOTO)
*
* OTHER SECONDARY STATEMENT KEYWORDS
*
B@LKON EQU   2                         ON
       EJECT
***********************************************************************
*      COMPILER STATEMENT PROCESSOR DISK REGION EQUATES (PHYSICAL)    *
***********************************************************************
*
B@DSCY EQU   @DSBCY                    STATEMENT PROCESSOR CYLINDER
B@DSS1 EQU   @DSCS1                    SECTOR ADDR FOR 1ST STMT PROC
B@DSNS EQU   24                        NO. OF STMT PROCESSOR SECTORS
*
B@CPMK EQU   X'FF'                     CORE RESIDENT PROCESSOR MASK
*
* STATEMENT PROCESSOR PHYSICAL SECTOR ADDRESSES
*
B@DREM EQU   B@CPMK                    REM
B@DDAT EQU   X'24'                     DATA
B@DDEF EQU   X'34'                     DEF
B@DDIM EQU   X'04'                     DIM
B@DLTA EQU   B@CPMK                    LET (ARITHMETIC, SIMPLE)
B@DASA EQU   B@CPMK                    ASSIGNMENT (ARITH, SIMPLE)
B@DLTM EQU   X'38'                     LET (ARITHMETIC, MULTIPLE)
B@DASM EQU   X'38'                     ASSIGNMENT (ARITH, MULTIPLE)
B@DLTC EQU   X'40'                     LET (CHARACTER)
B@DASC EQU   X'40'                     ASSIGNMENT (CHARACTER)
B@DFOR EQU   X'28'                     FOR
B@DNXT EQU   X'44'                     NEXT
B@DIFA EQU   X'48'                     IF (ARITHMETIC)
B@DIFC EQU   X'4C'                     IF (CHARACTER)
B@DGTO EQU   X'44'                     GO TO (SIMPLE)
B@DCGT EQU   X'50'                     GO TO (COMPUTED)
B@DGSB EQU   X'20'                     GO SUB
B@DRTN EQU   X'5C'                     RETURN
B@DGET EQU   X'40'                     SET
B@DPUT EQU   X'40'                     PUT
B@DRST EQU   X'50'                     RESET
B@DCLS EQU   X'54'                     CASE
B@DINP EQU   X'00'                     INPUT
B@DREA EQU   X'0C'                     READ
B@DRSR EQU   X'5C'                     RESTORE
B@DPRT EQU   X'2C'                     PRINT
B@DPRU EQU   X'30'                     PRINT USING
B@DIMG EQU   X'3C'                     IMAGE
B@DMAT EQU   X'08'                     MAT (ASSIGNMENT)
B@DMGT EQU   X'44'                     MAT GET
B@DMIN EQU   X'38'                     MAT INPUT
B@DMRD EQU   X'3C'                     MAT READ
B@DMPT EQU   X'4C'                     MAT PUT
B@DMPR EQU   X'48'                     MAT PRINT
B@DMPU EQU   X'54'                     MAT PRINT USING
B@DPSE EQU   X'50'                     PAUSE
B@DSTP EQU   X'54'                     STOP
B@DEND EQU   X'58'                     END
B@DEOF EQU   B@DEND                    END-OF-FILE
B@DDUM EQU   B@CPMK                    TRUNCATED STATEMENT
B@DSLT EQU   X'10'                     LET - SUBSTRINS              1-4
B@DSIF EQU   X'1C'                     IF - SUBSTRING               1-4
B@DSML EQU   X'10'                     LET - MULTIPLE, SUBSTRING    1-4
       EJECT
***********************************************************************
*      COMPILER DISK REGION EQUATES (LOGICAL)                         *
***********************************************************************
*
B@DWCY EQU   @DWBCY                    BASE CYL FOR SYSTEM WORK FILE
B@DWT1 EQU   @DWTB1                    SECTOR ADDR FOR 1ST TEXT BLOCK
*
B@DVCY EQU   @DVBCY                    BASE CYL FOR VIRTUAL MEMORY
B@DVC1 EQU   @VENTA                    SECTOR ADDR FOR 1ST PMC PAGE
*
B@DTCY EQU   @DCBCY                    BASE CYL FOR COMPILER TABLES
B@DTS1 EQU   @DCST1                    STMT ADDRESS TABLE 1ST SECTOR
B@DTSN EQU   16                        NO. OF SECTORS IN STMT TABLE
B@DTB1 EQU   @DCBT1                    BRANCH ADDR TABLE 1ST SECTOR
B@DTBN EQU   16                        NO. OF SECTORS IN BRANCH TABLE
       EJECT
***********************************************************************
*      CHARACTER EQUATES - SPECIAL USAGE CHARACTERS                   *
***********************************************************************
*
B@EOST EQU   @EOS                      END-OF-STATEMENT (CARR RETURN)
B@CVAR EQU   C'$'                      CHARACTER VARIABLE DESIGNATOR
B@ALLA EQU   C'*'                      'ALL' ARRAY ELEMENTS SYMBOL
B@EXPC EQU   C'E'                      ARITHMETIC EXPONENT SYMBOL
B@DIGS EQU   C'#'                      IMAGE STMT DIGIT SPEC CHAR
B@FOFL EQU   C'*'                      IMAGE SCAN SPEC OVERFLOW CHAR
       SPACE
***********************************************************************
*      CHARACTER EQUATES - SPECIAL CHARACTERS (COLLATING SEQUENCE)    *
***********************************************************************
*
B@BLNK EQU   C' '                      BLANK
B@DPNT EQU   C'.'                      DECIMAL POINT
B@LESS EQU   C'<'                      'LESS THAN' OPERATOR
B@LPAR EQU   C'('                      LEFT PARENTHESIS
B@PLUS EQU   C'+'                      PLUS SIGN
B@POWR EQU   C'!'                      POWER SIGN
B@MULT EQU   C'*'                      MULTIPLICATION SIGN
B@RPAR EQU   C')'                      RIGHT PARENTHESIS
B@SCLN EQU   C';'                      SEMICOLON
B@MINS EQU   C'-'                      MINUS SIGN
B@DIVD EQU   C'/'                      DIVISION SIGN
B@CMMA EQU   C','                      COMMA
B@GRTR EQU   C'>'                      'GREATER THAN' OPERATOR
B@COLN EQU   C':'                      COLON
B@SQUO EQU   C''''                     SINGLE QUOTE
B@EQUL EQU   C'='                      EQUAL SIGN
B@NEQL EQU   C'"'                      'NOT EQUAL' OPERATOR
       EJECT
***********************************************************************
*      CHARACTER EQUATES - BASIC ALPHABET (COLLATING SEQUENCE)        *
***********************************************************************
*
B@LET$ EQU   C'$'                      1ST LETTER IN BASIC ALPHABET
B@LET# EQU   C'#'                      2ND LETTER IN BASIC ALPHABET
B@LET@ EQU   C'@'                      3RD LETTER IN BASIC ALPHABET
*
B@LETA EQU   C'A'                      4TH LETTER IN BASIC ALPHABET
*                                      * (1ST LETTER IN STD ALPHABET)
B@LETB EQU   C'B'                      5TH LETTER IN BASIC ALPHABET
B@LETC EQU   C'C'                      6TH LETTER IN BASIC ALPHABET
B@LETD EQU   C'D'                      7TH LETTER IN BASIC ALPHABET
B@LETE EQU   C'E'                      8TH LETTER IN BASIC ALPHABET
B@LETF EQU   C'F'                      9TH LETTER IN BASIC ALPHABET
B@LETG EQU   C'G'                      10TH LETTER IN BASIC ALPHABET
B@LETH EQU   C'H'                      11TH LETTER IN BASIC ALPHABET
B@LETI EQU   C'I'                      12TH LETTER IN BASIC ALPHABET
B@LETJ EQU   C'J'                      13TH LETTER IN BASIC ALPHABET
B@LETK EQU   C'K'                      14TH LETTER IN BASIC ALPHABET
B@LETL EQU   C'L'                      19TH LETTER IN BASIC ALPHABET
B@LETM EQU   C'M'                      16TH LETTER IN BASIC ALPHABET
B@LETN EQU   C'N'                      17TH LETTER IN BASIC ALPHABET
B@LETO EQU   C'O'                      18TH LETTER IN PASIC ALPHABET
B@LETP EQU   C'P'                      19TH LETTER IN BASIC ALPHABET
B@LETQ EQU   C'Q'                      20TH LETTER IN BASIC ALPHABET
B@LETR EQU   C'R'                      21ST LETTER IN BASIC ALPHABET
B@LETS EQU   C'S'                      22ND LETTER IN BASIC ALPHABET
B@LETT EQU   C'T'                      23RD LETTER IN BASIC ALPHABET
B@LETU EQU   C'U'                      24TH LETTER IN BASIC ALPHABET
B@LETV EQU   C'V'                      25TH LETTER IN BASIC ALPHABET
B@LETW EQU   C'W'                      26TH LETTER IN BASIC ALPHABET
B@LETX EQU   C'X'                      27TH LETTER IN BASIC ALPHABET
B@LETY EQU   C'Y'                      28TH LETTER IN BASIC ALPHABET
B@LETZ EQU   C'Z'                      29TH LETTER IN BASIC ALPHABET
*                                      * (LAST LETTER IN STD ALPHABET)
       EJECT
***********************************************************************
*      CHARACTER EQUATES - BASIC NUMERIC SET (COLLATING SEQUENCE)     *
***********************************************************************
*
B@DEC0 EQU   C'0'                      1ST NUMERAL
B@DEC1 EQU   C'1'                      2ND NUMERAL
B@DEC2 EQU   C'2'                      3RD NUMERAL
B@DEC3 EQU   C'3'                      4TH NUMERAL
B@DEC4 EQU   C'4'                      5TH NUMERAL
B@DEC5 EQU   C'5'                      6TH NUMERAL
B@DEC6 EQU   C'6'                      7TH NUMERAL
B@DEC7 EQU   C'7'                      8TH NUMERAL
B@DEC8 EQU   C'8'                      9TH NUMERAL
B@DEC9 EQU   C'9'                      10TH NUMERAL
       SPACE
***********************************************************************
*      INTERNAL CONSTANT AND VARIABLE EQUATES                         *
***********************************************************************
*
B@ICON EQU   X'50'                     AMPERSAND IS THE
*                                      * INTERNAL CONSTANT DESIGNATOR
B@CIEX EQU   C'E'                      2ND CHARACTER IN 'E'
B@LIEX EQU   2                         LENGTH OF 'E'
*
B@CIPI EQU   C'P'                      2ND CHARACTER IN 'PI'
B@LIPI EQU   3                         LENGTH OF 'PI'
*
B@CIS2 EQU   C'S'                      2ND CHARACTER IN 'SQR2'
B@LIS2 EQU   5                         LENGTH OF 'SQR2'
       EJECT
***********************************************************************
*      DATA STATUS AND EXPONENT EQUATES                               *
***********************************************************************
*
B@STAT EQU   0                         DISP FOR ELEMENT STATUS BYTE
B@SEXP EQU   4                         DISP FOR SHORT PREC EXPONENT
B@LEXP EQU   8                         DISP FOR LONG PREC EXPONENT
*
B@TRAC EQU   X'80'                     TRACE STATUS INDICATOR -
*                                      * 0 = NO TRACE, 1 = TRACE
B@DTYP EQU   X'40'                     ELEMENT TYPE STATUS INDICATOR -
*                                      * 0 = ARITHMETIC, 1 = CHARACTER
B@PREC EQU   X'20'                     PRECISION STATUS INDICATOR -
*                                      * SHORT PREC, 1 = LONG PREC
B@SIGN EQU   X'10'                     SIGN STATUS INDICATOR -
*                                      * 0 POSITIVE, 1 = NEGATIVE
B@CTYP EQU   X'20'                     CHARACTER STATUS TYPE INDR -
*                                      * 0 = ELEMENT, 1 = STRING SEG
B@CCNT EQU   X'1F'                     CHARACTER STATUS COUNT MASK
*
B@ZPOS EQU   X'F0'                     POSITIVE ARITHMETIC ZONE MASK
B@ZNEG EQU   X'D0'                     NEGATIVE ARITHMETIC ZONE MASK
*
B@NXZR EQU   128                       ZERO NORMALIZED EXPONENT
B@NXLO EQU   B@NXZR-98                 MINIMUM NORMALIZED EXPONENT
B@NXHI EQU   B@NXZR+99                 MAXIMUM NORMALIZED EXPONENT
       SPACE
***********************************************************************
*      SUBROUTINE PARAMETER EQUATES                                   *
***********************************************************************
*
B@CHAR EQU   0                         CURRENT TEXT CHARACTER DISP
B@GETS EQU   0                         SETS GETC TO GET SAME CHARACTER
B@GETC EQU   1                         SETS GETC TO GET NEXT CHARACTER
B@GETE EQU   255                       SETS GETC TO SCAN TO CARR RET
       EJECT
***********************************************************************
*      MISCELLANEOUS SYSTEM CONSTANTS                                 *
***********************************************************************
*
B@BLSZ EQU   256                       SYSTEM BLOCK SIZE
B@LSDF EQU   4                         LENGTH OF SEGMENT DESCRIPTOR
*
B@LBIN EQU   2                         LENGTH OF BINARY INTEGER
B@LDMN EQU   B@LBIN                    LENGTH OF BINARY DIMENSION
*
B@LDIN EQU   4                         LENGTH OF DECIMAL INTEGER (MAX)
B@LDDM EQU   B@LDIN                    LENGTH OF DEC DIMENSION (MAX)
B@LDSN EQU   B@LDIN                    LENGTH OF DEC STMT NO. (MAX)
*
B@LSNO EQU   B@LBIN                    LENGTH OF BINARY STMT NO.
B@LTYP EQU   1                         LENGTH OF STATEMENT TYPE COOS
B@SDMK EQU   X'80'                     STMT DEACT MASK FOR TYPE CODE
*
B@NIFN EQU   24                        NUMBER OF INTRINSIC FUNCTIONS
B@LIFN EQU   3                         LENGTH OF INTRINSIC FUNC SYMBOL
B@NSKW EQU   4                         NO. OF EMBEDDED STMT KEYWORDS
B@LSKW EQU   2                         LENGTH OF KEYWORD IDENTIFIER
B@LUFN EQU   2                         LENGTH OF USER FUNC IDENTIFIER
*
B@NFRT EQU   10                        NUMBER OF 'FOR' TABLE ENTRIES
B@LFRT EQU   2*@VADDR                  LENGTH OF 'FOR' TABLE ENTRY
B@SFRT EQU   B@NFRT*B@LFRT             'FOR' TABLE SIZE (NEST 9 DEEP)
*
B@NSPT EQU   40                        NO. OF STMT PROC TABLE ENTRIES
B@LSPT EQU   @CADDR+1                  LENGTH OF STMT PROC TABLE ENTRY
B@PTAB EQU   @CADDR-2                  DISP FOR PROC ENTRY POINT BASE
B@PTAD EQU   @CADDR-1                  DISP FOR PROC ENTRY POINT DISP
B@PTSA EQU   B@LSPT-1                  DISP FOR PROC PHYS SECTOR ADDR
*
B@NIVT EQU   87                        NO. OF INPUT VER. TBL ENTRIES
B@LIVT EQU   1                         LENGTH OF INPUT VER. TBL ENTRY
*
B@LCNA EQU   @VADDR+2*B@LDMN           COMPILE-TIME NAT ENTRY LENGTH
B@LCCA EQU   @VADDR+B@LDMN             COMPILE-TIME CAT ENTRY LENGTH
B@LCFN EQU   @VADDR+@VADDR             COMPILE-TIME FNT ENTRY LENGTH
       EJECT
***********************************************************************
*      FUNCTION AND ARRAY TABLE ELEMENT EQUATES                       *
***********************************************************************
*
B@AFLG EQU   0                         DOPE VECTOR ARRAY FLAG DISP
B@D1MK EQU   X'80'                     ARRAY FLAG DEFINED VECTOR MASK
B@D2MK EQU   X'C0'                     ARRAY FLAG DEFINED MATRIX MASK
B@DAMK EQU   X'80'                     ARRAY FLAG DEFINED ARRAY MASK
*
B@ACD1 EQU   B@LDMN-1                  ARITH ARRAY CURR 1ST DIM DISP
B@ACD2 EQU   B@ACD1+B@LDMN             ARITH ARRAY CURR 2ND DIM DISP
B@AMAX EQU   B@ACD2+B@LDMN             ARITH ARRAY MAXIMUM SIZE DISP
B@ABAS EQU   B@AMAX+@VADDR             ARITH ARRAY BASE VADDR DISP
*
B@CDMN EQU   B@LDMN-1                  CHAR ARRAY DIMENSION DISP
B@CBAS EQU   B@CDMN+@VADDR             CHAR ARRAY BASE VADDR D1SP
*
B@FVAD EQU   @VADDR-1                  USER FUNC EXPRESSION VADDR DISP
       EJECT
***********************************************************************
*      BASIC SYSTEM PARAMETER EQUATES                                 *
***********************************************************************
*
B@NLTR EQU   29                        NO. OF LETTERS IN BASIC ALPHABET
B@NDGT EQU   10                        NO. OF DECIMAL DIGITS
*
B@NICN EQU   6                         NO. OF INTERNAL CONSTANTS
B@NIVR EQU   1                         NO. OF INTERNAL VARIABLES
B@NIEL EQU   B@NICN+B@NIVR             NO. OF INTERNAL ELEMENTS
B@NLRV EQU   B@NLTR                    NO. OF LETTER VARIABLES
B@NLDV EQU   B@NDGT*B@NLTR             NO. OF LETTER-DIGIT VARIABLES
B@NCRV EQU   B@NLTR                    NO. OF CHARACTER VARIABLES
B@NAAR EQU   B@NLTR                    NO. OF ARITHMETIC ARRAYS
B@NCAR EQU   B@NLTR                    NO. OF CHARACTER ARRAYS
B@NUFN EQU   B@NLTR                    NO. OF USER DEFINED FUNCTIONS
*
B@LISP EQU   5                         SHORT PREC INTERNAL LENGTH
B@LILP EQU   9                         LONG PREC INTERNAL LENGTH
B@LESP EQU   8                         SHORT PREC EXTERNAL LENGTH
B@LELP EQU   16                        LONG PREC EXTERNAL LENGTH
B@LCRV EQU   19                        CHARACTER VARIABLE LENGTH
B@LADV EQU   3*B@LDMN+@VADDR           ARITHMETIC DOPE VECTOR LENGTH
B@LCDV EQU   1*B@LDMN+@VADDR           CHARACTER DOPE VECTOR LENGTH
B@LFNA EQU   @VADDR                    USER FUNCTION ADDRESS LENGTH
B@PROD EQU   B@NIEL*B@LISP             LENGTH OF INTRNL CON AREA SP 1-4
       EJECT
***********************************************************************
*      VIRTUAL MEMORY ALLOCATION EQUATES                              *
***********************************************************************
*
B@SIES EQU   B@NIEL*B@LISP             SHORT PREC INTNL ELEMT AREA SIZE
B@SLVS EQU   B@NLRV*B@LISP             SHORT PREC LETTER VAR AREA SIZE
B@SLDS EQU   B@NLDV*B@LISP             SHORT PREC LTR-DIG VAR AREA SIZE
B@SAVS EQU   B@SIES+B@SLVS+B@SLDS      SHORT PREC MAX ARITH AREA SIZE
*
B@SIEL EQU   B@NIEL*B@LILP             LONG PREC INTNL ELEMT AREA SIZE
B@SLVL EQU   B@NLRV*B@LILP             LONG PREC LETTER VAR AREA SIZE
B@SLDL EQU   B@NLDV*B@LILP             LONG PREC LTR-DIG VAR AREA SIZE
B@SAVL EQU   B@SIEL+B@SLVL+B@SLDL      LONG PREC MAX ARITH AREA SIZE
*
B@SCRV EQU   B@NCRV*B@LCRV             CHARACTER VARIABLE AREA SIZE
*
B@SADV EQU   B@NAAR*B@LADV             ARITH DOPE VECTOR AREA SIZE
B@SCDV EQU   B@NCAR*B@LCDV             CHAR DOPE VECTOR AREA SIZE
B@SFNA EQU   B@NUFN*B@LFNA             USER FUNC ADDRESS AREA SIZE
B@SFAT EQU   B@SADV+B@SCDV+B@SFNA      FUNC AND ARRAY TABLE AREA SIZE
*
B@NVPG EQU   256                       NO. OF VIRTUAL PAGES
B@LVPG EQU   256                       LENGTH OF A VIRTUAL PAGE
*
B@VMC1 EQU   @VENTA                    BEGINNING PAGE FOR PSEUDO CODE
B@VMSZ EQU   B@NVPG*B@LVPG-256*256     VIRTUAL MEMORY SIZE (MOD 2**16)
*
B@VMTB EQU   B@VMSZ                    FUNC AND ARRAY BASE VADDR
B@VMSB EQU   B@VMSZ-B@SAVS-B@SCRV-B@SFAT  SHORT PREC VAR BASE VADDR
B@VMLB EQU   B@VMSZ-B@SAVL-B@SCRV-B@SFAT  LONG PREC VAR BASE VADDR
       EJECT
***********************************************************************
*      LOADER PARAMETER AREA EQUATES                                  *
***********************************************************************
*
B@LL01 EQU   @VADDR                    LENGTH AND DISPLACEMENT FOR
B@DL01 EQU   B@LL01-1                  * REGION-1 1ST AVAILABLE VADDR
*
B@LL02 EQU   @VADDR                    LENGTH AND DISPLACEMENT FOR
B@DL02 EQU   B@DL01+B@LL02             * 1ST VADDR FOLLOWING REGION-1
*
B@LL03 EQU   @VADDR                    LENGTH AND DISPLACEMENT FOR
B@DL03 EQU   B@DL02+B@LL03             * REGION-2 1ST AVAILABLE VADDR
*
B@LL04 EQU   @VADDR                    LENGTH AND DISPLACEMENT FOR
B@DL04 EQU   B@DL03+B@LL04             * 1ST VADDR FOLLOWING REGION-2
*
B@LL05 EQU   @VADDR                    LENGTH AND DISPLACEMENT FOR
B@DL05 EQU   B@DL04+B@LL05             * 1ST INTERNAL CONSTANT VADDR
*
B@LL06 EQU   @VADDR                    LENGTH AND DISPLACEMENT FOR
B@DL06 EQU   B@DL05+B@LL06             * 1ST INTERNAL VARIABLE VADDR
*
B@LL07 EQU   B@NLRV*@VADDR             LENGTH AND DISPLACEMENT FOR
B@DL07 EQU   B@DL06+B@LL07             * LETTER VARIABLE SYMBOL TABLE
*
B@LL08 EQU   B@BLSZ                    LENGTH AND DISPLACEMENT FOR
B@DL08 EQU   B@DL07+B@LL08             * LETTER-DIG SYMBOL TBL BLOCK 1
*
B@LL09 EQU   B@BLSZ                    LENGTH AND DISPLACEMENT FOR
B@DL09 EQU   B@DL08+B@LL09             * LETTER-DIG SYMBOL TBL BLOCK 2
*
B@LL10 EQU   B@NLDV*@VADDR-2*B@BLSZ    LENGTH AND DISPLACEMENT FOR
B@DL10 EQU   B@DL09+B@LL10             * LETTER-DIG SYMBOL TBL BLOCK 3
*
B@LL11 EQU   B@NCRV*@VADDR             LENGTH AND DISPLAREMENT FOR
B@DL11 EQU   B@DL10+B@LL11             * CHARACTER VAR SYMBOL TABLE
*
B@LL12 EQU   B@NAAR*@VADDR             LENTH AND DISPLACEMENT FOR
B@DL12 EQU   B@DL11+B@LL12             * ARITHMETIC ARRAY SYMBOL TABLE
*
B@LL13 EQU   B@NCAR*@VADDR             LENGTH AND DISPLACEMENT FOR
B@DL13 EQU   B@DL12+B@LL13             * CHARACTER ARRAY SYMBOL TABLE
*
B@LL14 EQU   B@NUFN*@VADDR             LENGTH AND DISPLACEMENT FOR
B@DL14 EQU   B@DL13+B@LL14             * USER FUNCTION SYMBOL TABLE
*
B@LL15 EQU   B@BLSZ                    LENGTH AND DISPLACEMENT FOR
B@DL15 EQU   B@DL14+B@LL15             * FUNC AND ARRAY TABLE BLOCK 1
*
B@LL16 EQU   B@SFAT-B@BLSZ             LENGTH AND DISPLACEMENT FOR
B@DL16 EQU   B@DL15+B@LL16             * FUNC AND ARRAY TABLE BLOCK 2
*
***********************************************************************
*      END OF COMPILER SYSTEM EQUATES CODING                          *
***********************************************************************
.*     END OF MACRO; RESTORE PRINT ON.
.MEND  ANOP
       PRINT ON
       MEND
// CEND
// END
*
// READER CONSOLE
