*USE 'ASMB,R,N' (RTE-M II) OR 'ASMB,R,Z' (RTE-M III)
* 
*     IFN OPTION
*     NAME:   $MDI2 
*     SOURCE: 92064-18009 
*     RELOC:  PART OF 92064-16002 
*     PROGMR: E.J.W.  BASED ON RTE-III VERSIONS G.A.A.,L.W.A.,D.L.S.
* 
*     IFZ OPTION
*     NAME  : $MDI3 
*     SOURCE: 92064-18009 
*     RELOC:  PART OF 92064-16003 
*     PROGMR: E.J.W.  BASED ON RTE-III VERSIONS G.A.A.,L.W.A.,D.L.S.
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  ALL RIGHTS      * 
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       * 
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * 
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.        * 
*  **************************************************************** 
* 
* 
      IFN 
* BEGIN NON-DMS CODE ***************
      NAM $MDI2,0  92064-16002  REV.1726  770512
*** END NON-DMS CODE ***************
      XIF 
      IFZ 
***** BEGIN DMS CODE ***************
      NAM $MDI3,0  92064-16003  REV.1726  770512
******* END DMS CODE ***************
      XIF 
* 
      SUP 
* 
*   DISPATCHER ENTRY POINT NAMES
* 
      ENT $RENT,$ZZZZ,$XEQ
      ENT $MPFT,$EMRP,$CON
      SPC 1 
      IFZ 
***** BEGIN DMS CODE ***************
      ENT $MRMP,$ENDS,$MATA 
      ENT $SMAP 
      ENT $LPSA,$XDMP 
******* END DMS CODE ***************
      XIF 
      SPC 1 
* 
*   DISPATCHER EXTERNAL REFERENCE NAMES 
* 
      EXT $RSRE,$WATR,$TRRN,$IRT,$ABRE,$LIST
      EXT $MIC,$SGAF
* 
      MIC STR,105623B,1     SEQUENTIAL STORE VALUE
      SKP 
*        THE DISPA MODULE OF THE HP-2100 REAL TIME EXECUTIVE       *
*    PERFORMS THE FOLLOWING FUNCTIONS:                             *
*        1. IDLE LOOP WHEN NO PROGRAMS ARE SCHEDULED OR CANNOT BE  *
*           EXECUTED.                                              *
*        2. SWITCHES PROGRAM EXECUTION SUCH THAT THE HIGHEST       *
*           PRIORITY EXECUTABLE PROGRAM EXECUTES.                  *
*        3. SETS THE FENCE REGISTER ACCORDING TO PROGRAM TYPE.     *
*        4. LOADS, SWAPS, AND EXECUTES DISC RESIDENT PROGRAMS      *
* 
*     CALLING SEQUENCE
*     JMP $XEQ
* 
* 
$XEQ  LDB $ZZZZ     CHECK IF PROGRAM TO BE ABORTED
      SZB 
      JMP ABORT     YES GO HANDLE IT
      LDB $LIST     IF LIST NOT ENTERED 
      SZB,RSS       THEN NOTHING NEW SO 
      JMP $IRT      GO CONTINUE CURRENT PGM 
* 
      LDA SKEDD     LOAD TOP OF SCHEDULE LIST 
      CLB 
      STB $LIST     PREVENT NEEDLESS LIST SCANS 
      RSS           SKIP FIRST TIME 
X0035 LDA ZWORK,I   GET THE NEXT PGM IN THE LIST
      SZA          IF ZERO, THEN NO PROG SCHED
      JMP X0010    GO TO PROCESS SCHED LIST 
* 
*     NO PROGRAM SCHEDULED--SETUP FOR IDLE LOOP 
*                                                                  *
*        THE IDLE LOOP SECTION CONSISTS OF:                        *
*              CLEARING XEQT WORD TO SIGNIFY THAT NO PROGRAM       *
*                   CURRENTLY EXECUTING.                           *
*              STORE ADDRESS OF 4 DUMMY WORDS INTO XSUSP-XSUSP+3   *
*                   DUE TO I/O PROCESSING.                         *
*              SET MEMORY PROTECT REGISTER TO ZERO.                *
*              CALL INTERRUPT RESTORE ROUTINE, $IRT 
*              JUMP TO *                                           *
*                                                                  *
      STA XEQT      SET BP POINTERS TO DUMMY ID 
      LDB VSUSP 
      STB XSUSP 
      INB 
      STB XA        SET POINTERS TO DUMMY REGS
      STB XB
      STB XEO 
      STB XI        SET X,Y REG POINTER TO DUMMY
      JMP X0029     SET UP MP FENCE, EXIT 
* 
IDLE  JMP *        IDLE LOOP
* 
VSUSP DEF *+1 
      DEF IDLE
      NOP 
      NOP 
      SKP 
ABORT LDA B,I       GET POSSIBLE NEXT PGM 
      STA $ZZZZ     AND SET IT FOR ABORT
      CLA           CLEAR THE XSUSP ADDRESS 
STABI STA B,I       FOR THE NEXT START
      ADB DM8       BACK UP TO ID-SEG ADDRESS 
      STB A         SAVE THE ID-SEG. ADDRESS
      STB TMP       A FEW TIMES 
      JSB $ABRE     RELEASE ANY RE-ENTRANT MEMORY.
* 
      LDB TMP 
      JSB $WATR     SCHEDULE ANYONE WAITING 
      LDB TMP 
      LDA B 
      ADA D12 
      SPC 1 
      IFZ 
***** BEGIN DMS CODE ***************
      STA CNT       SAVE ADDR OF NAME WORD
******* END DMS CODE ***************
      XIF 
      SPC 1 
      ADA D8        INDEX TO FLAG WORD
      STA TEMP      SAVE ADDR OF FLAG WORD
      LDA A,I 
      ALF,ALF       GET FLAG WORD 
      SLA             ANY RESOURCES HELD? 
      JSB $TRRN      YES, RELEASE THEM
* 
      CLA           IF CURRENTLY
      STA TEMP,I     (CLEAR FLAG WORD)
      SPC 1 
      IFZ 
***** BEGIN DMS CODE ***************
      LDA CNT,I 
      SZA           OF,PROG,8?
      JMP $XEQ       NO 
* 
      LDA TMP        YES
      ADA D14 
      LDA A,I       GET PROG TYPE 
      AND D15 
      CPA D1        IF IT IS MEM RES TYPE 
      JMP $XEQ       SKIP ALL THE PTTN JAZZ 
* 
      LDA TMP       OF,PROG,8 IN PTTN 
      JSB MATEN     GO SET UP POINTERS
      CLB 
      STB MID,I     CLEAR RESIDENT WORD IN PART 
******* END DMS CODE ***************
      XIF 
      SPC 1 
      JMP $XEQ      ABORTION DONE.
* 
D12   DEC 12
      SKP 
*        THE SWITCHING SECTION USES THE SCHEDULE LIST TO DETERMINE *
*        WHICH PROGRAM TO EXECUTE-STARTING FROM TOP OF LIST.       *
*              IF PROGRAM FROM LIST OF LOWER OR EQUAL PRIORITY,    *
*                   THEN EXECUTION OF CURRENT PROGRAM CONINUES.   * 
*              IF PROGRAM FROM LIST OF HIGHER PRIORITY AND         *
*                   TYPE EITHER REAL TIME RESIDENT OR BACKGROUND   *
*                        RESIDENT, EXECUTION SWITCHING TAKES PLACE.*
*                   TYPE IS BACKGROUND DISC RESIDENT,              *
*                        GO TO BACKGROUND DISC PROCESSING.         *
*                   TYPE IS REAL TIME DISC RESIDENT, GO TO REAL    *
*                        TIME DISC RESIDENT PROCESSING             *
* 
X0010 STA ZWORK    SCHED LIST PROG ID SEG ADDRESS 
      ADA D6
      STA ZPRIO     PRIORITY ADDRESS
      ADA D8
      STA ZTYPE    TYPE ADDRESS 
      ADA D7
      STA ZMPID     MAP WORD ADDRESS
* 
      LDA XEQT    ANY PROGRAM CURRENTLY EXECUTING?
      SZA,RSS       YES, TEST FOR HIGHEST PRIORITY
      JMP X0030     NO, EXECUTE NEW SCHEDULED PROG
      ADA D15      CHECK STATUS OF XEQT ID SEGMENT
      LDA A,I 
      AND D15       MASK TO MAJOR STATUS
      CPA D1
      RSS          SCHEDULED-SO GO TO CHECK PRIORITY
      JMP X0030    NOT SCHEDULED -SO GO SWITCH
      LDA XPRIO,I   LOAD TEST PROGRAM PR
      CMA,INA       MAKE NEGATIVE 
      ADA ZPRIO,I   SUPTRACT FROM CURRENT PGM PR. 
      SSA,RSS       IF SIGN A=0 THEN PROG OF HIGHER PR
      JMP RNOLD     CURR PROG HIGHER PRIOR THAN SCHED PROG
* 
X0030 EQU * 
      IFN 
* BEGIN NON-DMS CODE ***************
      CLA           FORCE MPFT INDEX TO ZERO
      STA MPN       STORE MPFT INDEX
*** END NON-DMS CODE ***************
      XIF 
      SPC 1 
      IFZ 
***** BEGIN DMS CODE ***************
      LDA ZMPID,I   GET MAP ID WORD 
      AND B1700      AND SAVE MPFT INDEX
      ALF,ALF 
      RAL 
      STA MPN 
      LDA ZTYPE,I   SCHED PROG HIGHER PRIOR THAN CURR PROG
      AND D15 
      STA TMP 
      CPA D1        CHECK IF REAL TIME RESIDENT 
      JMP X0F40     YES 
      CPA D2        CHECK IF REAL TIME PTTN RESIDENT
      JMP X0200     YES 
      JMP X0035     NOT LEGAL TYPE, IGNOR 
* 
X0200 JSB FND       SET UP PTTN, RETURNS (A) = #PGS 
      LDB MLNK      SET (B) = PTTN ENTRY ADDR 
      JSB $SMAP     GO SET UP USER MAP
      JMP X0N40     NOW SET UP USER PROG PTRS 
* 
* 
X0F40 LDA $MRMP     GET ADR MEM RES MAP 
      USA 
      LDA $EMRP     SET PTRS FOR MEMORY RESIDENT PROG 
      INA           INCREMENT FOR LAST WORD PROG + 1
      STA RTDRA 
      STA AVMEM 
      STA BKDRA 
      STA BKLWA 
      LDA ADMEM 
      STA MID 
******* END DMS CODE ***************
      XIF 
      SPC 1 
X0N40 LDA ZWORK 
      STA MEMID     SET ID FOR MEM RES PROG 
      ADA MI        GET ADR FOR INDEX REGISTERS 
      STA XI        SET POINTER TO INDEX REGISTERS
      ADA D30 
      STA $CON      SET POINTER TO CONSOLE LU (WORD 29) 
* 
*         LOAD PROGRAM ID SEG ADR IN XEQT AREA
* 
      LDA ZWORK     IF SAME AS CURRENT PGM
      CPA XEQT      THEN
      JMP $RENT     SKIP BASE PAGE SET UP.
      JSB $X041     SET UP BASE PAGE ID SEG PTRS
      LDB XSUSP,I  CHECK IF PROGRAM SUSPENDED 
      CMB,INB,SZB   IF SO THEN
      JMP $RENT     GO SET IT UP
      LDB XPENT,I   GET PRIMARY ENTRY PT. 
      STB XSUSP,I   SET ENTRY ADDRESS 
* 
*      CHECK IF PT OF SUSPENSION IN LIBRARY AREA
* 
$RENT EQU * 
      IFZ 
***** BEGIN DMS CODE ***************
      LDA ZWORK     GET PROG TRYING DISPATCH
      CPA MID,I     HAS SETUP CHANGED? (TRY TO SAVE TIME) 
      RSS           NO,GO TO IT 
      JSB FIX       GO SET BACK UP
******* END DMS CODE ***************
      XIF 
      SPC 1 
      LDB XTEMP+4   GET THE RENT BIT
      ADB D15 
      LDB B,I       GET THE WORD
      BLF,RBL       ROTATE TO PUT RENT BIT IN SIGN
      SSB,RSS       IF RENT NOT IN CONTROL
      JMP X0028     GO SET FENCE
      SLB           IF MEMORY MOVED 
      JSB $RSRE     GO RESTORE IT 
      LDA LBORG     SET THE LIBRARY FENCE 
      JMP X0029     GO SET IT UP
* 
* 
* 
$X041 NOP           SET UP B.P. ID SEG PTRS 
      LDB DM12       (12 WORDS) 
      STB TMP 
      LDB XQDEF     PUT THEM AT XEQT
      STA XEQT
X0041 JMP MIC  OR STA B,I  IF NO MICRO
      INA 
      INB 
      ISZ TMP 
      JMP X0041 
      JMP $X041,I   RETURN WHEN DONE
* 
XQDEF DEF XLINK 
* 
RNOLD LDA XEQT      RESET POINTERS FOR CURR PROG
      STA ZWORK      SINCE WE WILL NOT RUN SCHED PROG 
      ADA D14 
      STA ZTYPE 
      ADA D7
      STA ZMPID 
      JMP $RENT 
* 
MIC   STR 12        CALL MICROCODE
      JMP $X041,I   RETURN
* 
      SPC 1 
      IFZ 
***** BEGIN DMS CODE ***************
FIX   NOP           ROUTINE TO RESET MAT POINTERS FOR CURRENT PROG
      LDA ZTYPE,I   GET PROG TYPE 
      AND D15 
      CPA D1
      JMP X0F40     GO RESET MEM RES INFO 
* 
      LDA ZMPID,I 
      AND B1700 
      RAL 
      ALF,ALF       GET MP FENCE INDEX
      STA MPN 
      JSB FND       GO SET MAT POINTERS, BNDRY WORDS
      JMP FIX,I 
******* END DMS CODE ***************
      XIF 
      SPC 1 
* 
* 
*     SET MEMORY PROTECT ACCORDING TO PROG TYPE 
* 
* 
X0028 LDA MPN       GET MPFT INDEX
      ADA $MPFT 
      LDA A,I       GET FENCE 
X0029 STA FENCE 
      OTA 5B
* 
*    RESTORE REGISTERS, MEMORY PROTECT, AND TURN ON INTERRUPT SYSTEM
* 
      JMP $IRT      GO EXECUTE THE PROGRAM
      SPC 3 
*         XEQ PROCESSOR--BUFFERS, CONSTANTS, POINTERS, ETC
* 
* 
ZWORK NOP          SCHED LIST ID SEGMENT ADDRESS
ZPRIO NOP          SCHED LIST PRIORITY LIST 
ZTYPE NOP          SCHED LIST TYPE ADDRESS
ZMPID NOP          SCHED LIST MAP & MPFTI WORD
TEMP  NOP          TEMPORARY WORKING STORAGE AREA 
TMP   NOP           TEMPORARY WORKING STORAGE 
* 
D1    DEC 1 
D2    DEC 2 
D3    DEC 3 
D4    DEC 4 
D6    DEC 6 
D7    DEC 7 
D8    DEC 8 
D14   DEC 14
D15   DEC 15
D30   DEC 30
D22   DEC 22
DM1   DEC -1
DM8   DEC -8
DM12  DEC -12 
* 
$EMRP NOP           FWA SAM-1 (SET BY GENERATOR)
$MPFT NOP           ADDR M.P. FENCE TABLE (SET BY GENERATOR)
ADMEM DEF MEMID 
MEMID NOP           ID SEG ADDR OF CUR MEM.RES. PROG
MPN NOP             INDEX TO MPFT, BP FLAG
B1700 OCT 1700      MASK FOR MP INDEX 
MID   NOP           ID SET ADDR 
MI    DEC -2        NEG # OF INDEX REGS 
      SPC 2 
*                MPFT INDEX 
* 
*  BUILT BY THE GENERATOR AS FOLLOWS: 
*        0  PARTITION RESIDENT PROGRAM, NO COMMON 
*        1  MEMORY RESIDENT PROGRAM, NO COMMON
*        2  RT COMMON, ANY PROGRAM
*        3  -- NOT USED --
*        4  SSGA, ANY PROGRAM 
* 
* 
*           MAT ENTRY 
* 
*EACH MAT ENTRY WILL BE AS FOLLOWS: 
* 
*  WORD    PURPOSE
*   0       LINKAGE (ADR NEXT ENTRY IN LIST) (-1 IF NOT DEFINED)
*   1       - NOT USED- 
*   2       ID SEG ADR
*   3       BEGINNING PAGE ADR OF PARTITION 
*            BITS 0-9 
*   4       NUMBER PAGES OCCUPIED BY PARTITION
*            BITS 0-9,RESERVED FLAG BIT 15
*   5       STATUS   ,REAL TIME FLAG BIT 15 
* 
* 
*THE FOLLOWING ARE SET AT GENERATION TIME:
*   BEGINNING PAGE ADR (WORD 3) 
*   NUMBER PAGES IN PART (WORD 4) 
*   REAL TIME FLAG (WORD 5) 
*   RESERVED FLAG (WORD 4)
* 
      SPC 2 
      IFZ 
***** BEGIN DMS CODE ***************
PGN NOP             PROG LENGTH 
MLNK NOP            LINKAGE WORD
CNT   NOP           PARTITION # 
B77   OCT 77
B2000 OCT 2000      BIT 10 SET
B76K  OCT 76000 
D21   DEC 21
$LPSA NOP           LAST PAGE SAM (SET BY GENERATOR)
$MRMP NOP           ADDR MEM RES MAP (SET BY GENERATOR) 
$ENDS NOP           #PAGES OCCUPIED BY SYSTEM ,LIBR (SET BY GENERATOR)
$MATA NOP           ADR FIRST ENTRY MAT (SET BY GENERATOR)
* 
*ROUTINE TO SET USER MAP
*CALL:    AREG=LENGTH IN PAGES
*         BREG=ADR MAT ENTRY
* 
* 
$SMAP NOP 
      STB XADR      MAT ENTRY ADR 
      STA XPGN      JPROG LENGTH IN PAGES 
      ADB D2
      LDA B,I       GET ID ADR
      ADA D22 
      LDA A,I       GET LOW MAIN
      AND B76K      GET START PAGE
      ALF 
      RAL,RAL       GET IN LOW 5 BITS 
      LDB $ENDS     GET PAGE #  USER STARTS ON
      STB STUSR     START USER WITH NO COMMON 
      CMB,INB 
      ADB A 
      SZB,RSS       B=0,NO COMMON 
      JMP MAPUS     NO COMMON 
* 
      STA STUSR     SAVE START REG USER 
      LDA $ENDS     A REG START COMMON
      ADA D32       GET TO USER MAP 
      CBX           BREG HAS # REGISTERS
      LDB $ENDS     ADR OF START REG VALUE
      XMS           MAP COMMON
* 
MAPUS CLA,INA 
      CAX           SET TO MAP BASE PAGE REGISTER 
      LDA D32       FIRST REG IN USER MAP 
      LDB XADR
      ADB D3        GET TO START PARTITION WORD 
      LDB B,I 
      ELB,BRS       GET TO START PARTITION WORD 
      STB STVAL     STORE START VALUE 
      LDB STVAL     GET ADR START VALUE 
      XMS           MAP BASE PAGE 
* 
      SEZ,RSS       E=1,DONT INCREMENT START VALUE
      ISZ STVAL 
      LDA D32 
      ADA STUSR     START REG IN USER MAP 
      LDX XPGN      GET LENGTH PROG 
      LDB STVAL 
      XMS           MAP 
* 
      LDB STUSR     PROTECT REST OF MAP 
      ADB XPGN
      STB STUSR 
      CMB,INB 
      ADB D32 
      SZB,RSS       IF B=0,FINISHED 
      JMP $SMAP,I 
* 
      CBX           GET # REGISTERS IN X
      LDA STUSR     GET START REGISTER
      ADA D32 
      LDB PRTCT     GET PROTECT VALUE 
      XMS 
      JMP $SMAP,I   YES,RETURN
* 
PRTCT OCT 140000    READ & WRITE PROTECT
STVAL NOP 
XADR  NOP 
XPGN  NOP 
STUSR NOP 
D32   DEC 32
* 
* 
*            EXTERNAL ROUTINE TO SET USER MAP 
* 
*         CALL: LDA IDADR     AREG HAS ID SEG ADR 
*               JSB $PVMP 
*               --RETURN
*           AREG=0 ON RETURN IS ERROR--SAYS PROGRAM 
*                  NOT IN PARTITION 
* 
* 
$XDMP NOP 
      STA XADR      TEMP SAVE OF ID ADR 
      LDB A 
      ADB D14 
      LDA B,I 
      AND D15       IS PROG MEM RES 
      CPA D1
      JMP MRPV      YES,GO SET MEM RES MAP
      ADB D7        GET MPID WORD 
      LDA B,I 
      STA XPGN      TEMP SAVE 
      AND B77 
      MPY D6
      ADA $MATA     GET PART ADR
      LDB A         B HAS MAT ENTRY 
      ADA D2
      LDA A,I 
      CPA XADR      IS PROG STILL IN PARTITION
      JMP *+3       YES ,CONTINUE 
      CLA           NO,ERROR
      JMP $XDMP,I   ERROR RETURN
      LDA XPGN
      AND B76K
      ALF 
      RAL,RAL       GET LENGTH
      JSB $SMAP     GO SET MAP
      CCA           MAKE SURE A NOT 0 
      JMP $XDMP,I   RETURN
MRPV  LDA $MRMP 
      USA           SET MEM RES MAP 
      JMP $XDMP,I 
      SKP 
*     JSB FND       TO SET UP PTTN POINTERS 
*     <RETURN>      (A) = # OF PAGES OF PTTN
* 
FND   NOP           PARTITION FOUND SO SET IT UP
      LDA ZWORK 
      JSB MATEN     GO SET UP MAT POINTERS
      LDB MID,I     GET OWNER OF PART 
* 
FNDR  ADB D21 
      LDA B,I       GET PROG LENGTH 
      AND B76K
      STA PGN       SAVE PAGE ADDR TEMPORARILY
      ADA DM1       FILL OUT PAGE 
      INB 
      LDB B,I 
      STB RTDRA 
      ADA B 
      STA AVMEM 
      STA BKDRA 
      STA BKLWA 
      LDA PGN       GET PAGE ADDR 
      AND B76K      MASK AND SHIFT TO GET #PGS
      ALF 
      RAL,RAL 
      JMP FND,I     RETURN
* 
* 
* 
*   SET UP POINTERS TO ENTRY IN MAT 
*   AREG HAS ID ADR ON ENTRY
* 
MATEN NOP 
      ADA D21       GET MAP ID WORD 
      LDA A,I 
      AND B77       GET PARTITION # 
      STA CNT 
      MPY D6        MULTIPLY BY MAT ENTRY LENGTH
      ADA $MATA 
      STA MLNK      (1) SET MAT ENTRY POINTER 
      ADA D2
      STA MID       (3) ID SEG ADR
      JMP MATEN,I 
******* END DMS CODE ***************
      XIF 
      SPC 1 
      HED SYSTEM START UP 
********************************************************************
*        THE START SECTION:                                        *
*              CLEARS INTERRUPT SYSTEM                             *
*              INITIALIZES MAPS IN RTE-M III                       *
********************************************************************
* 
$ZZZZ NOP 
      CLC 0         CLEAR INTERRUPT SYSTEM
      LDB STABI 
      LDA $MIC
      SZA,RSS       ANY MICRO?
      STB X0041      NO, PUT STA B,I THERE
* 
      LDA $MPFT 
      ADA D4
      LDA A,I       GET START OF SSGA 
      ADA DM1 
      STA $SGAF 
      SPC 1 
      IFZ 
***** BEGIN DMS CODE ***************
      LDA $MRMP     GET ADDRESS MEM RES MAP 
      USA           LOAD USER MAP 
      CLA 
      XMA           SET DMA1 FROM SYS MAP 
      INA 
      XMA           SET DMA2 FROM SYS MAP 
      LDA BPA2      GET LAST USER LINK
      INA           INCREASE TO FIRST SYSTEM LINK 
      IOR B2000     SET BIT 10 TO SHOW LOWER MAPPED 
      LFA           SET FENCE FOR BP
******* END DMS CODE ***************
      XIF 
      SPC 1 
      JMP $ZZZZ,I   END DISPATCHER INITIALIZE 
* 
      ORG *         SIZE OF MODULE
      HED ** SYSTEM BASE PAGE COMMUNICATION AREA ** 
* 
* 
*** SYSTEM BASE PAGE  COMMUNICATION  AREA *** 
* 
XI    EQU 1647B 
.     EQU 1650B     ESTABLISH ORIGIN OF AREA
* 
* SYSTEM TABLE DEFINITION * 
* 
* DEFINITION OF SYSTEM LISTS (QUEUES) * 
* 
SKEDD EQU .+33      'SCHEDULE' LIST,
* 
* DEFINITION OF EXECUTING PROGRAM  ID SEGMENT' *
* 
XEQT  EQU .+39     ID SEGMENT ADDR. OF CURRENT PROG.
XLINK EQU .+40       'LINKAGE'
XTEMP EQU .+41       'TEMPORARY (5-WORDS) 
XPRIO EQU .+46       'PRIORITY' WORD
XPENT EQU .+47       'PRIMARY ENTRY POINT'
XSUSP EQU .+48       'POINT OF SUSPENSION'
XA    EQU 1731B 
XB    EQU 1732B 
XEO   EQU 1733B 
* 
* 
* DEFINITION OF MEMORY ALLOCATION BASES * 
* 
BPA2  EQU .+59     LWA R/T DISC RES. BP LINK AREA 
LBORG EQU .+61     FWA OF RESIDENT LIBRARY AREA 
RTDRA EQU .+64     FWA OF R/T DISC RESIDENT AREA
AVMEM EQU .+65     FWA OF SYSTEM AVAILABLE MEMORY 
BKDRA EQU .+68     FWA OF BKG DISC RESIDENT AREA
* 
* UTILITY PARAMETERS
* 
$CON  EQU 1736B     POINTER TO CURRENT SESSION TABLE
FENCE EQU .+85      MEM PROTECT FENCE ADDRESS 
* 
BKLWA EQU .+87     LWA OF MEMORY IN BACKGROUND
* 
* 
* 
A     EQU 0B        LOCATION OF A REGISTER
B     EQU 1B        LOCATION OF B REGISTER
* 
      ORG *         PROGRAM LENGTH
      END $ZZZZ 
    