         PAGE
.****************************************************************
.
.        osa$ei_constant_definitions
.
.***************************************************************
.
.        EI MONITOR REQUEST CODES.
.
EIRQC    EQU       1                   .C170 ERROR
DSTRTXR  EQU       2                   .DEADSRT C180 ENVIRONMENT
MTRR#STD EQU       2                   .    DITTO
DONTHING EQU       3                   .DO NOTHING
MTRR#IHF EQU       4                   .INJECT HARDWARE FAULT.
.
.        RESTART TABLE DEFINITIONS.
.
RRLN170  EQU       7                   .170 STATE RSTRT. REGS. LENGTH
RRLN180  EQU       5                   .180 STATE RSTRT. REGS. LENGTH
.
.        BRCR INSTRUCTION OPTION FIELD EQUATES.
.
BRONSET  EQU       2                   .BRANCH ON BIT SET, DO NOT CLEAR
.
.        ERROR CODE EQUATES
.
BADINST  EQU       0(8)                .ILLEGAL INSTRUCTION
AORERR   EQU       1(8)                .ADDRESS OUT-OFF-RANGE ERROR
PERROR   EQU       20(8)               .PROCESSOR DETECTED ERROR
GENCODE  EQU       67(8)               .GENERAL ERROR CODE
.
.        MASK GENERATING EQUATES
.
M18      EQU       3421(8)             .18 BIT MASK
.
.        MCR mask bit equates.
.
bit_48   EQU       8000(16)            .DUE / PIF
bit_49   EQU       4000(16)            .Unassigned / Unimplimented instruction
bit_50   EQU       2000(16)            .Short warning / Free flag
bit_51   EQU       1000(16)            .Instruction spec / PIT
bit_52   EQU       0800(16)            .Addr spec error / Inter-ring pop
bit_53   EQU       0400(16)            .170 exchange / Critical frame flag
bit_54   EQU       0200(16)            .Access violation / Keypoint
bit_55   EQU       0100(16)            .Env spec error / Divide fault
bit_56   EQU       0080(16)            .External interrupt / Debug
bit_57   EQU       0040(16)            .Page fault / Arithmetic overflow
bit_58   EQU       0020(16)            .System call / Exponent overflow
bit_59   EQU       0010(16)            .SIT / Exponent underflow
bit_60   EQU       0008(16)            .Invalid seg ring 0 / FP loss of Sig
bit_61   EQU       0004(16)            .Out call in return / FP indefinite
bit_62   EQU       0002(16)            .Soft error / Arithmetic loss of Sig
bit_63   EQU       0001(16)            .Trap exception / Invalid BDP data
.
.        monitor mask equates.
.
mcr_mask EQU       0ffff(16)-bit_50-bit_53-bit_59-bit_62
.
.        USER CONDITION BIT EQUATES.
.
PIFB     EQU       0                   .PRIVILAGED INSTRUCTION
UIIB     EQU       1                   .UNIMPLEMENTED INSTRUCTION
FRFB     EQU       2                   .FREE FLAG
TIMB     EQU       3                   .PROCESS INTERVAL TIMER
.
.        MONITOR CONDITION BIT EQUATES.
.
XINB     EQU       5                   .EXCHANGE REQUEST
.
.        Equates for the c180 exchange package.
.
xp_p     EQU       (0+0)*8+2           .P REGISTER
xp_vmid  equ       (1+0)*8             .virtual machine id
xp_a0    equ       (1+0)*8+2           .c180 register A0
xp_dsp   EQU       (1+0)*8+2           .DYNAMIC SPACE POINTER
xp_pnd   equ       (1+1)*8             .Process not damaged
xp_tef   equ       (1+1)*8+1           .trap enables flag
xp_um    EQU       (1+2)*8             .USER MASK
xp_mm    equ       (1+3)*8             .MONITOR MASK
xp_ucr   EQU       (1+4)*8             .USER CONDITION REGISTER
xp_mcr   equ       (1+5)*8             .monitor condition register
xp_pit   equ       (1+10)*8            .Processor interval timer
xp_x0    equ       (1+16)*8            .c180 X0 register
xp_sta   equ       (1+32+1)*8          .segment table address
xp_utp   equ       (1+32+1)*8+2        .untranslatable pointer
xp_tp    equ       (1+32+2)*8+2        .trap pointer
xp_rn1   equ       (1+32+4)*8+2        .top of stack for ring 1
.
.        equates for the C170 version of the C180 exchange package.
.
xp_em    EQU       (1+3)*8+2           .EXIT MODE SELECTION
xp_rac   EQU       (1+3)*8+5           .CM REFERENCE ADDRESS
xp_mf    EQU       (1+4)*8+3           .MONITOR FLAG
xp_flc   EQU       (1+4)*8+5           .CM FIELD LENGTH
xp_emhf  equ       (1+5)*8+3
xp_ma    equ       (1+5)*8+5
xp_rae   EQU       (1+6)*8+4           .ECS RA
xp_fle   EQU       (1+7)*8+4           .ECS FL
xp_ca0   EQU       (1+8)*8+5           .A0 REGISTER
xp_cb0   EQU       (1+16)*8+5          .B0 REGISTER
xp_cx0   EQU       (1+24)*8            .X0 REGISTER
.
.        BIT POSITION EQUATES FOR TSFS
BSCIF    EQU       2
.
.        BYTE POSITION EQUATES FOR TXPBUF.
.
ma_p     EQU       0*8+1               .P REGISTER
ma_a0    EQU       0*8+3               .A0 REGISTER
ma_b0    EQU       0*8+5               .B0 REGISTER
ma_rac   EQU       1*8+1               .CM REFERENCE ADDRESS
ma_flc   EQU       2*8+1               .CM FIELD LENGTH
ma_em    EQU       3*8                 .EXIT MODE SELECTION BITS
ma_hrdwe EQU       3*8+1               .HARDWARE ERROR FLAG
ma_rae   EQU       4*8                 .ECS REFERENCE ADDRESS
ma_fle   EQU       5*8                 .ECS FIELD LENGTH
ma_ma    EQU       6*8+1               .MONITOR ADDRESS
ma_x0    EQU       8*8                 .X0 REGISTER
.
.        BIT POSITION EQUATES FOR TXPBUF.
.
BMHDWRE  EQU       4                   .HARDWARE ERROR FLAG
.
.        BIT POSITION EQUATES FOR TJXP
.
BEMHF    EQU       7                   .EXIT MODE HALT FLAG
BMF      EQU       7                   .C170 MONITOR FLAG
.
.        REGISTER USAGE IN OSANTH.
.
a_static AREG      03(16)              .static storage
a_wrk    AREG      0d(16)              .working storage
a_jps    AREG      0b(16)              .pointer to tjxp within monitor
a_rac    AREG      0c(16)              .contains the RAC from the SFSA
a_nos    AREG      0e(16)              .pointer to NOS
a_dscb   AREG      0f(16)              .dual state block pointer
.
x_rac    xreg      0b(16)
x_reg1   XREG      0d(16)
x_reg2   XREG      0e(16)
x_flc    XREG      0f(16)
         space     4
..
.        EI MONITOR CALL PROCEDURE.
.
.        PARAMETERS
.                   P1 - REQUEST CODE,
.                   P2 - EXIT CONDITION CODE.
.
         PROC
EIMTRCAL PNAME
         LOCAL     HALTEI
         ente      x2,f:(2,0)*256+16
         shfc      x0,x2,x0,64-8
         ENTE      X2,F:(2,1)          .EXIT CONDITION CODE
         EXCHANGE
         DO        SN:(F:(2,2))=SN:(NOHLT)
         ELSE
HALTEI   BSS       0
         HALT
         BRREQ     X0,X0,HALTEI
         DEND
         PEND
.
.***  End common deck OSA$EI_CONSTANT_DEFINITIONS
