         SYSTEM   SIG7
         DEF      LPB,LPH,LPW,LPD,STPB,STPH,STPW,STPD,FREEM
         REF      J:TCB,NUMVP,PPLIST,NUMPAGES,P:ENTFLG,VPLIST,P:PADR
         REF      LPH:1
         SREF     P:WINDOW
         CSECT    1
*
* LOAD/STORE PHYSICAL DATA
*
LPB      BAL,5    LSPD              LB,0     *8,7
LPH      BAL,5    LSPD              LH,0     *8,7
LPW      BAL,5    LSPD              LW,0     *8,7
LPD      BAL,5    LSPD              LD,0     *8,7
STPB     BAL,5    LSPD              STB,0    *8,7
STPH     BAL,5    LSPD              STH,0    *8,7
STPW     BAL,5    LSPD              STW,0    *8,7
STPD     BAL,5    LSPD              STD,0    *8,7
*
*
LSPD     EQU      %
         LCI      14
         PSM,2    *J:TCB            SAVE REGISTERS
         STW,8    P:PADR
         MTW,0    P:ENTFLG          HAVE WE BEEN HERE BEFORE
         BEZ      INITT             NO: INITIALIZE DATA
LSPD1    AI,5     -LPH:1            GET INDEX INTO INSTRUCTION TABLES
         ANLZ,4   INST,5            R4 := PHYSICAL ADDRESS
         LW,13    4
         EXU      SHIFT,5           CONVERT TO WORD ADDRESS
         LW,6     13
         AND,6    =X'1FE00'         R6 := ADR. OF BEGINNING OF PAGE
         LW,3     NUMVP             R3 := NUMBER OF PAGES GRABBED
         CW,6     PPLIST,3          FIND PHYSICAL PAGE
         BE       GOTIT             FOUND IT.
         BDR,3    %-2               KEEP LOOKING
         LW,3     NUMVP             IT'S NOT THERE
         CI,3     NUMPAGES          HAVE WE GRABBED ALL THE
         BL       %+2               PAGES WE CAN?
         BAL,15   FREEM             YEP: FREE THEM ALL.
         AI,3     1                 USE NEXT VIRTUAL PAGE
         LW,9     VPLIST,3          SR2 := VP ADDRESS.
         CAL1,8   M:CVM             MAP TO THE PAGE
         STW,6    PPLIST,3          KEEP TRACK OF PAGES
         STW,3    NUMVP             AND PAGE COUNT
GOTIT    EQU      %
         SW,13    6                 GET VIRTUAL ADDRESS
         AW,13    VPLIST,3
         EXU      INST1,5           SET UP INDEX REGISTER
         EXU      INST2,5           PERFORM THE OPERATION
         LCI      14                RESTORE REGISTERS
         PLM,2    *J:TCB
         B        *15               BYE
INST     EQU      %
         DO       2
         LB,0     *P:PADR,7
         LH,0     *P:PADR,7
         LW,0     *P:PADR,7
         LD,0     *P:PADR,7
         FIN
INST1    EQU      %
         DO       2
         AND,4    =3
         AND,4    =1
         NOP
         NOP
         FIN
INST2    EQU      %
         LB,0     *13,4
         LH,0     *13,4
         LW,0     *13
         LD,0     *13
         STB,0    *13,4
         STH,0    *13,4
         STW,0    *13
         STD,0    *13
SHIFT    EQU      %
         DO       2
         SLS,13   -2
         SLS,13   -1
         NOP
         SLS,13   1
         FIN
*
*
INITT    EQU      %
         LI,3     NUMPAGES
         LI,6     -1
         LI,9     P:WINDOW
         BEZ      %+3
         LW,9     P:WINDOW
         B        %+2
         CAL1,8   M:GP
INITT1   STW,9    VPLIST,3
         STW,6    PPLIST,3          NULL PAGE
         CAL1,8   M:FVP             FREE THE PAGE
         AI,9     X'200'            NEXT PAGE ADDRESS
         BDR,3    INITT1            INITIALIZE ALL PAGES
         STW,6    VPLIST            NULL PAGE
         STW,6    PPLIST            NULL PAGE
         STW,3    NUMVP             NO PAGES USED YET
         MTW,1    P:ENTFLG          WE HAVE INITIALIZED
         B        LSPD1             GO DO OUR THING
*
* FREE ALL PAGES GOTTEN
*
FREEM    EQU      %
*
* MAY BE CALLED INTERNALLY OR EXTERNALLY
*
         LW,3     NUMVP
         LI,8     -1
FREEM1   STW,8    PPLIST,3          NULL PAGE
         LW,9     VPLIST,3          VP ADDRESS
         CAL1,8   M:FVP             FREE PAGE POINTED TO BY SR2
         BDR,3    FREEM1            DO THEM ALL
         B        *15
*
* FPTS
*
M:CVM    GEN,1,7,24 1,7,6
         GEN,1,31 1,9
M:FVP    GEN,1,7,24 1,5,9
M:GP     GEN,8,24 8,NUMPAGES
         END
