// DATE 020122
// NOHALT
*
*** RUN MAINT.
*
// LOAD $MAINT,F1
// RUN
// COPY FROM-READER,TO-F1,RETAIN-R,LIBRARY-S,NAME-$I@E
       MACRO
       $I@E  &EXP-N,&PREC-S
.*
.*     5703-XM1 S/3 BASIC INTERPRETER SHORT/LONG PREC. 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 '$I@EQ - S/3 BASIC INTERPRETER SHORT/LONG PREC. EQUATES'
***********************************************************************
* STANDARD PRECISION DATA ELEMENT EQUATES                             *
***********************************************************************
*
I@PRCS EQU   7                         FLOATING POINT PRECISION
I@APRS EQU   6                         APPARENT FLT PT PRECISION
*
I@LPFS EQU   5                         PACKED FLT PT ELEMENT LENGTH
I@LUFS EQU   I@PRCS+1                  UNPACKED FLT PT ELEMENT LENGTH
*
I@PMRS EQU   I@LPFS-2                  PACKED MANTISSA RH BYTE DISP
I@PEXS EQU   I@LPFS-1                  PACKED FLT PT EXPONENT DISP
I@UMRS EQU   I@LUFS-1                  UNPACKED MANTISSA RH BYTE DISP
I@SGNS EQU   I@UMRS                    UNPACKED FLT PT SIGN BYTE DISP
*
I@SPSW EQU   @UCB                      STANDARD PREC SWITCH SETTING
I@ASTS EQU   X'00'                     ARITHMETIC ELEMENT STATUS INDR
*
I@ICBS EQU   X'F500'                   INTERNAL CONSTANT BASE VADDR
I@IVBS EQU   X'F531'                   INTERNAL VARIABLE BASE VADDR
*
***********************************************************************
       EJECT
***********************************************************************
* LONG PRECISION DATA ELEMENT EQUATES                                 *
***********************************************************************
*
I@PRCL EQU   15                        FLOATING POINT PRECISION
I@APRL EQU   11                        APPARENT FLT PT PRECISION
*
I@LPFL EQU   9                         PACKED FLT PT ELEMENT LENGTH
I@LUFL EQU   I@PRCL+1                  UNPACKED FLT PT ELEMENT LENGTH
*
I@PMRL EQU   I@LPFL-2                  PACKED MANTISSA RH BYTE DISP
I@PEXL EQU   I@LPFL-1                  PACKED FLT PT EXPONENT DISP
I@UMRL EQU   I@LUFL-1                  UNPACKED MANTISSA RH BYTE DISP
I@SGNL EQU   I@UMRL                    UNPACKED FLT PT SIGN BYTE DISP
*
I@LPSW EQU   @NOP                      LONG PRECISION SWITCH SETTING
I@ASTL EQU   X'20'                     ARITHMETIC ELEMENT STATUS INDR
*
I@ICBL EQU   X'F000'                   INTERNAL CONSTANT BASE VADDR
I@IVBL EQU   X'F049'                   INTERNAL VARIABLE BASE VADDR
*
***********************************************************************
.*     SELECT STANDARD OR LONG PRECISION
       AIF   (&PREC EQ 'S').STND       STANDARD PRECISION
       AIF   (&PREC EQ 'L').LONG       LONG PRECISION
.ERR2  MNOTE 00,'INVALID MACRO OPTION SPECIFIED.'
       AGO   .MEND
.*
.STND  ANOP
       EJECT
***********************************************************************
* -CURRENT- PRECISION DATA ELEMENT EQUATES (STANDARD)                 *
***********************************************************************
*
I@PREC EQU   I@PRCS                    FLOATING POINT PRECISION
I@APRC EQU   I@APRS                    APPARENT FLT PT PRECISION
*
I@LPFV EQU   I@LPFS                    PACKED FLT PT ELEMENT LENGTH
I@LUFV EQU   I@LUFS                    UNPACKED FLT PT ELEMENT LENGTH
I@LSFV EQU   I@LUFV-1                  SPECIAL UNPACKED FLT PT LENGTH
*
I@PMNR EQU   I@PMRS                    PACKED MANTISSA RH BYTE DISP
I@PEXP EQU   I@PEXS                    PACKED FLT PT EXPONENT DISP
I@UMNR EQU   I@UMRS                    UNPACKED MANTISSA RH BYTE DISP
I@SIGN EQU   I@SGNS                    UNPACKED FLT PT SIGN BYTE DISP
*
I@PRSW EQU   I@SPSW                    CURRENT PREC SWITCH SETTING
I@ASTA EQU   I@ASTS                    ARITHMETIC ELEMENT STATUS INDR
*
I@ICBA EQU   I@ICBS                    INTERNAL CONSTANT BASE VADDR
I@IVBA EQU   I@IVBS                    INTERNAL VARIABLE BASE VADDR
*
***********************************************************************
       AGO   .MCONT                    CONTINUE
.*
.LONG  ANOP
       EJECT
***********************************************************************
* -CURRENT- PRECISION DATA ELEMENT EQUATES (LONG)                     *
***********************************************************************
*
I@PREC EQU   I@PRCL                    FLOATING POINT PRECISION
I@APRC EQU   I@APRL                    APPARENT FLT PT PRECISION
*
I@LPFV EQU   I@LPFL                    PACKED FLT PT ELEMENT LENGTH
I@LUFV EQU   I@LUFL                    UNPACKED FLT PT ELEMENT LENGTH
I@LSFV EQU   I@LUFV-1                  SPECIAL UNPACKED FLT PT LENGTH
*
I@PMNR EQU   I@PMRL                    PACKED MANTISSA RH BYTE DISP
I@PEXP EQU   I@PEXL                    PACKED FLT PT EXPONENT DISP
I@UMNR EQU   I@UMRL                    UNPACKED MANTISSA RH BYTE DISP
I@SIGN EQU   I@SGNL                    UNPACKED FLT PT SIGN BYTE DISP
*
I@PRSW EQU   I@LPSW                    CURRENT PREC SWITCH SETTING
I@ASTA EQU   I@ASTL                    ARITHMETIC ELEMENT STATUS INDR
*
I@ICBA EQU   I@ICBL                    INTERNAL CONSTANT BASE VADDR
I@IVBA EQU   I@IVBL                    INTERNAL VARIABLE BASE VADDR
*
***********************************************************************
.*
.MCONT ANOP
       EJECT
***********************************************************************
* PRECISION INDEPENDENT DATA ELEMENT EQUATES                          *
***********************************************************************
*
I@STAT EQU   0                         DATA ELEMENT STATUS BYTE DISP
*
I@UEXP EQU   0                         UNPACKED FLT PT EXPONENT DISP
I@PMN1 EQU   0                         PACKED MANTISSA 1ST BYTE DISP
I@UMN1 EQU   1                         UNPACKED MANTISSA 1ST BYTE DISP
*
I@LCRF EQU   18                        CHARACTER ELEMENT FIELD LENGTH
I@LCRV EQU   I@LCRF+1                  CHARACTER ELEMENT TOTAL LENGTH
*
***********************************************************************
       EJECT
***********************************************************************
* ARITHMETIC FUNCTION REFERENCE EQUATES                               *
***********************************************************************
*
I@1SE1 EQU   0                         1ST BYTE OF STACK ELEMENT 1
I@RSE1 EQU   I@1SE1+I@LUFV-1           LAST BYTE OF STACK ELEMENT 1
*
I@1SE2 EQU   I@1SE1+I@LUFV             1ST BITE OF STACK ELEMENT 2
I@RSE2 EQU   I@1SE2+I@LUFV-1           LAST BYTE OF STACK ELEMENT 2
*
I@1SE3 EQU   I@1SE2+I@LUFV             1ST BYTE OF STACK ELEMENT 3
I@RSE3 EQU   I@1SE3+I@LUFV-1           LAST BYTE OF STACK ELEMENT 3
*
I@DEXP EQU   I@UEXP                    FLOATING VALUE EXPONENT DISP
I@MANL EQU   I@UMN1                    LEFTMOST BYTE OF MANTISSA
I@MANR EQU   I@UMNR                    RIGHTMOST BYTE OF MANTISSA
*
***********************************************************************
       EJECT
***********************************************************************
* PSEUDO INSTRUCTION COMPONENT EQUATES                                *
***********************************************************************
*
I@XOPC EQU   0                         DISP FOR INSTRUCTION OPCODE
I@XLNO EQU   I@XOPC+2                  DISP FOR STATEMENT NO. OPERAND
I@XVAD EQU   I@XOPC+2                  DISP FOR VIRTUAL ADDR OPERAND
I@XCNT EQU   I@XOPC+1                  DISP FOR INST EXECUTION COUNT
I@XCOD EQU   I@XOPC+1                  DISP FOR INST EXECUTION CODE
I@XBRC EQU   I@XOPC+3                  DISP FOR BRANCH CONDITION CODE
*
***********************************************************************
* COMPARE CONDITION STATUS CODE EQUATES                               *
***********************************************************************
*
I@CMLO EQU   X'02'                     COMPARE CONDITION - LOW
I@CMEQ EQU   X'04'                     COMPARE CONDITION - EQUAL
I@CMHI EQU   X'08'                     COMPARE CONDITION - HIGH
*
***********************************************************************
       EJECT
***********************************************************************
* RUN-TIME STACK ELEMENT EQUATES                                      *
***********************************************************************
*
I@SVAD EQU   1                         DISP FOR STACKED VIRTUAL ADDR
I@SCOD EQU   0                         DISP FOR STACKED EXECUTION CODE
I@SIDX EQU   1                         DISP FOR STACKED INDEX VALUE
*
***********************************************************************
* VIRTUAL MEMORY CORE PAGE REGION EQUATES                             *
***********************************************************************
*
I@PRTE EQU   0                         DISP FOR PAGE REF TABLE ENTRY
*
I@NXPT EQU   3                         NO. OF EXPANDABLE PAGING TABLES
I@NXPG EQU   32                        NO. OF EXPANSION PAGES (MAX)
I@LXPT EQU   I@NXPT*I@NXPG             LENGTH OF MAX TABLE EXPANSION
*
I@NCPG EQU   10                        NO. OF 8K SYSTEM PAGES (MAX)
*
***********************************************************************
* MISCELLANEOUS EXECUTION EQUATES                                     *
***********************************************************************
*
I@LPPZ EQU   3                         LENGTH OR PACKED PRINT ZONE
I@LFPZ EQU   18                        LENGTH OF FULL PRINT ZONE
*
I@NERR EQU   0                         NULL EXECUTION ERROR CODE
*
***********************************************************************
*
* END OF EXECUTION SYSTEM EQUATES CODING
*
.*     END OF MACRO; RESTORE PRINT ON.
.MEND  ANOP
       PRINT ON
       MEND
// CEND
// END
*
// READER CONSOLE
