          CTEXT  COMPTVA - TRANSLATE VIRTUAL ADDRESS.
 DPS      SPACE  4,10
**        DPS - DEFINE PAGE SIZE.
*
*         ENTRY  (PSMV) = CONTENTS OF PAGE SIZE MASK REGISTER.
*
*         EXIT   (PSMV) = PAGE SIZE MASK.
*                (SPTA) = SHIFT INSTRUCTION TO EXTRACT PAGE NUMBER.


 DPS      SUBR               ENTRY/EXIT
          LDC    SHNI+100
          STM    SPTA        SET SHIFT INTO PAGE TABLE SEARCH
          LDM    PSMV
          LMC    0#7F
          STD    T2
          STM    PSMV        SET PAGE SIZE MASK
 DPS1     SOM    SPTA        ADD TO SHIFT COUNT
          LDD    T2
          SHN    21-0        REMOVE LOWEST BIT
          STD    T2
          NJN    DPS1        IF MORE BITS PRESENT
          UJN    DPSX        RETURN
 LBA      SPACE  4,10
**        LBA - LOAD BYTE ADDRESS.
*
*         ENTRY  (A) = POINTER TO BYTE ADDRESS.
*
*         EXIT   (W4 - W5) = R-REGISTER VALUE.
*                (A) = CM ADDRESS.
*                (W6) = OFFSET FROM R-REGISTER.


 LBA      SUBR               ENTRY/EXIT
          STD    W6
          LDI    W6
          SHN    7
          STD    W5          SET UPPER PART OF R-REGISTER
          SHN    6
          STD    W4          R-REGISTER BITS 12-18
          LRD    W4
          LDML   1,W6
          SHN    -3
          STDL   W6          SET OFFSET
          LMC    RR
          UJN    LBAX        RETURN
 PVC      SPACE  4,10
**        PVC - PRESET VIRTUAL ADDRESS CONSTANTS.
*
*         ENTRY  NONE.
*
*         EXIT   (PTAV - PTAV+1) = PAGE TABLE ADDRESS.
*                (JPSV - JPSV+1) = JPS VALUE.
*                (MPSV - MPSV+1) = MPS VALUE.
*                (PSMV) = PAGE SIZE MASK.
*                (PTLV) = PAGE TABLE LENGTH MASK.
*
*         CALLS  DPS.
*
*         MACROS READMR.


 PVC      SUBR               ENTRY/EXIT
          LDN    PVCAL
          STD    T5
 PVC1     LDM    PVCA+1,T5
          STD    T4          SET DATA ADDRESS
          LDM    PVCA,T5     GET REGISTER NUMBER
          STD    RN
          READMR RDATA,ELPR
          LDM    RDATA+4
          SHN    10
          LMM    RDATA+5
          STIL   T4
          LDM    RDATA+6
          SHN    10
          LMM    RDATA+7
          STML   1,T4
          LCN    2
          RAD    T5
          PJN    PVC1        IF MORE REGISTERS TO READ
          RJM    DPS         DEFINE PAGE SIZE
          LJM    PVCX        RETURN

 PVCA     BSS    0           TABLE OF REGISTERS
          LOC    0
          CON    PPTA,PTAV
          CON    PJPS,JPSV
          CON    PMPS,MPSV
          CON    PPSM,PSMV-1
 PVCAL    CON    PPTL,PTLV-1
          LOC    *O

 PTAV     CON    0,0         PAGE TABLE ADDRESS
 JPSV     CON    0,0         JOB PROCESS STATE POINTER
 MPSV     CON    0,0         MONITOR PROCESS STATE POINTER
 PSMV     CON    0           PAGE SIZE MASK
 PTLV     CON    0           PAGE TABLE LENGTH VALUE
 MSA      SPACE  4,10
**        MSA - MAKE SYSTEM VIRTUAL ADDRESS.
*
*         ENTRY  (A) - ADDRESS OF EXCHANGE PACKAGE ADDRESS.
*                (BA - BA+2) = PROCESS VIRTUAL ADDRESS.
*
*         EXIT   (CM - CM+2) = SYSTEM VIRTUAL ADDRESS.
*
*         CALLS  LBA.


 MSA1     LDN    0           FLAG INVALID/MISSING SEGMENT

 MSA      SUBR               ENTRY/EXIT
          RJM    LBA         LOAD BYTE ADDRESS
          ADN    16D         SEGMENT TABLE LENGTH
          CRDL   T1
          ADN    34D-16D     SEGMENT TABLE ADDRESS
          CRDL   T2
          ADN    1
          CRDL   T3
          LDDL   T1
          SBD    BA
          MJN    MSA1        IF NOT A VALID SEGMENT
          LDN    T2
          RJM    LBA         LOAD ADDRESS OF SEGMENT TABLE
          ADD    BA
          CRDL   W0          FETCH ASID
          LDDL   W1
          ZJN    MSA1        IF NOT A VALID ASID
          STDL   CM
          LDDL   BA+1        COPY REMAINDER OF PVA
          STDL   CM+1
          LDDL   BA+2
          STDL   CM+2
          LDN    1
          UJN    MSAX        RETURN
 SPT      SPACE  4,10
**        SPT - SEARCH PAGE TABLE.
*
*         ENTRY  (CM - CM+2) = SYSTEM VIRTUAL ADDRESS.
*
*         EXIT   (A) = ADDRESS OF WORD.
*
*         CALLS  LBA.


 SPT      SUBR               ENTRY/EXIT
          LDDL   CM+1
          SHN    20-11
          SCN    77          EXTRACT PAGE NUMBER
          STDL   T3
          LDDL   CM+2
          SHN    -11
          RADL   T3
 SPTA     SHN    -0
          LMDL   CM          EXCLUSIVE OR WITH ASID
          SHN    1
          STDL   T2          PAGE TABLE INDEX
          LDDL   T3
          LPML   PSMV
          STD    T5          BYTE NUMBER/2**9
          LDDL   T3
          SBD    T5          PAGE NUMBER
          STDL   T4
          LDC    PTAV
          RJM    LBA         SET ADDRESS OF PAGE TABLE
          LDM    PTLV
          SHN    11
          LMC    777
          STDL   T3          SET PAGE TABLE LENGTH MASK
          LDN    32D
          STD    T1          SET SEARCH LIMIT
 SPT1     LDDL   T2          PAGE TABLE INDEX
          LPDL   T3          PAGE TABLE LENGTH MASK
          ADDL   W6          PAGE TABLE OFFSET FROM R
          LMC    RR
          CRDL   W0          PAGE TABLE ENTRY
          LDDL   W0
          SHN    21-17
          PJN    SPT2        IF INVALID PAGE
          SHN    2
          SCN    0#F
          STDL   W0          EXTRACT ASID
          LDDL   W1
          SHN    4-20
          RADL   W0          COMPLETE ASID
          LMDL   CM
          NJN    SPT2        IF NOT CORRECT ASID
          LDDL   W1          EXTRACT PAGE NUMBER
          LPN    77
          SHN    20-6
          STDL   W1
          LDDL   W2
          SHN    -6
          RADL   W1
          LMDL   T4
          ZJN    SPT3        IF PAGE FOUND
 SPT2     AODL   T2          INCREMENT PAGE TABLE INDEX
          SOD    T1          DECREMENT SEARCH COUNT
          NJN    SPT1        IF MORE TO SEARCH
          LJM    SPTX        RETURN

 SPT3     LDDL   W3          CREATE RMA
          STD    T2
          SHN    -14
          STD    T1
          LDD    CM+2
          LPC    770
          SHN    11
          LMD    T5          INCLUDE UPPER BITS OF BYTE NUMBER
          SHN    6
          LMC    RR
          LRD    T1
          LJM    SPTX        RETURN
          SPACE  4,10
          ENDX
