ASMB,R
*USE 'ASMB,R,N' (RTE-M I/RTE-M II) OR 'ASMB,R,Z' (RTE-M III)
* 
*     IFN OPTION
*     NAME:   $MPF
*     SOURCE: 92064-18138 
*     RELOC:  92064-16027 
*     PROGMR: E.J.W.,J.U.F. 
*             BASED ON RTE-III VERSIONS G.A.A.,E.J.W.,D.L.S.
* 
*     IFZ OPTION
*     NAME  : $MPF3 
*     SOURCE: 92064-18138 
*     RELOC:  92064-16029 
*     PROGMR: E.J.W.,J.U.F. 
*             BASED ON RTE-III VERSIONS G.A.A.,E.J.W.,D.L.S.
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  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 
      NAM DVP43,0  92064-16027  REV.2001  791009
      EXT $OPSY 
      XIF 
      IFZ 
      NAM DVP43,0  92064-16029  REV.2001  791009
      XIF 
      ENT $POWR,IP43,CP43 
      EXT $CVEQ,$SCLK,$TIME,$XEQ,$UPIO,$LIST,$MESS
      EXT $CIC,$PWR5,$DLFL
      SUP 
* 
* 
* 
*     THIS IS THE RTE POWER FAIL AUTO RESTART ROUTINE.
* 
*     IT WORKS AS FOLLOWS:
* 
*     ON POWER FAILURE: 
*       1.  BOTH DMA CHANNELS (PORT A AND B) ARE STOPPED
*       2.  ALL REGISTERS ARE SAVED, ALSO RETURN ADDRESS
*       3.  FOR RTE-III ALL FOUR MAPS ARE SAVED.
*       4.  TURN OFF POWER-FAIL INTERRUPTS UNTIL POWER RETURNS
* 
*     ON POWER UP:
*       1.  IN RTE-III ALL FOUR MAPS ARE RESTORED 
*       2.  THE EQT ADDRESS FOR THIS ROUTINE IS FOUND, IT 
*           IS SET TO TIME OUT IN ONE TICK, AND THE "I WILL 
*           HANDLE TIME OUT" BIT IS SET.
*       3.  THE CURRENT SYSTEM TIME IS SAVED (THIS WILL BE THE
*           TIME OF POWER FAILURE). 
*       4.  THE CLOCK IS RESTARTED BY CALLING $SCLK WHICH WILL
*           SET UP FOR AN IMMEDIATE INTERRUPT.
*       5.  A RETURN WITH ALL REGISTERS RESTORED IS MADE TO THE 
*           POINT OF THE POWER FAIL INTERRUPT.
* 
* 
*     ON THE FOLLOWING TIME OUT ENTRY THE FOLLOWING ACTION IS 
*     TAKEN:
* 
*       1.  EACH EQT ENTRY IS CHECKED AND)
*           A) IF BUSY IT'S POWER FAIL  FLAG IS SET (BIT 13 OF
*              THEN THE DRIVER IS ENTERED AT I.XX. THE FACT THAT
*              IT IS A POWER FAIL ENTRY MAY BE DETECTED BY
*              CHECKING THE BUSY BIT (ON NORMAL ENTRIES IT IS 
*              NOT SET.)
* 
*           B) IF THE DEVICE IS BUSY AND IT'S POWER FAIL BIT
*              IS NOT SET THE DEVICE WILL BE SET DOWN, THE
*              POWER FAIL ROUTINE TIME OUT WILL BE SET BACK 
*              TO ONE TICK AND THE CLOCK RESTARTED AND THE
*              SYSTEM "UP" PROCESSOR WILL BE CALLED TO UP 
*              THE DEVICE.  THIS CAUSES THE SYSTEM TO REISSUE 
*              THE LAST REQUEST AND TO REENTER THE TIME OUT 
*              SECTION OF THIS REOUTNE. 
*              THE IMPLICATIONS OF THIS ARE THAT DISC TRANSFERS 
*              WILL BE RETRIED, TTY, PUNCH, PHOTO READER
*              REQUESTS WILL BE RE-DONE RESULSTING IN DOUBLE
*              LINES IN SOME CASES. 
* 
*              SOME DEVICES WILL BE REPORTED DOWN IS THEIR POWER
*              WAS ALSO CUT E.G. MAGTAPE, DISC.  THESE
*              DEVICES MAY BE UPPED BY THEIR DRIVERS WHEN THEY
*              COME BACK ON LINE  E.G. THE DISC.
* 
*           C) IF THE DEVICE IS DOWN THE SYSTEM UP PROCESSOR WILL 
*              BE CALLED TO UP THE DEVICE.  THIS WILL CAUSE 
*              THE DOWNED DEVICES TO HAVE NEW MESSAGES POSTED 
*              ON THE SYSTEM TTY. 
* 
*       2.  THE PROGRAM "AUTOR" WILL BE ABORTED AND RESCHEDULED.
*           (THE ABORT IS TO ALLOW FOR MOMENTARY POWER UPS.)
*           AUTOR SHOULD TAKE WHAT EVER ACTION IS NEEDED TO 
*           BRING UP THE SYSTEM IN TERMS OF ENABLING TERMINALS -
*           COMMUNICATION LINES ETC.  IN ORDER TO ALLOW TIME
*           SYNC. THIS ROUTINE WILL PROVIDE THE THREE WORD SYSTEM 
*           TIME AT POWER FAILURE ON THE FIRST READ REQUEST 
*           AFTER POWER UP.  THE SECOND READ REQUEST WILL 
*           RETURN THE SAME TIME BUT CAUSES THE ROUTINE TO
*           RESET TO HANDLE A TOTAL NEW POWER FAILURE 
      HED POWER UP/DOWN ENTRY POINT/ DOWN CODE. 
$POWR NOP           POWER UP/DOWN ENTRY 
      SFC 4         UP? 
      JMP UP        YES GO DO UP THING. 
* 
      JMP DOWN,I    GO TO DOWN ROUTINE
DOWN  DEF DWN       POINTS TO WAIT WHILE SENSITIVE
*                                   CODE IS EXECUTING.
STF   STF 0        TURN ON THE INTERRUPT SYSTEM 
SW2   NOP   (CLF 0 IF NOT USER RETURN ELSE STC 5) 
      IFN 
      JMP PSAVE,I   RETURN TO POINT OF POWER FAILURE. 
* 
      XIF 
      IFZ 
      JRS MEMST PSAVE,I     RETURN TO PT OF PWR FAIL. 
* 
      XIF 
DOWNI DEF DOWN      INDIRECT FOR EXIT TO AVOID INTERRUPT
* 
EXIT2 LDA ASAVE     RESTORE A REGISTER
      LDB BSAVE     AND THE B REGISTER
      JSB DOWNI,I   RESET DOWN SWITCH AND EXIT
* 
*     DOWN ROUTINE
* 
DWN   STF 6B        STOP DMA!  PREVENT LONG DMA 
      STF 7B         TRANSFER FROM JAMMING CPU
      STA ASAVE     SAVE A-REG. 
      STB BSAVE     SAVE B-REG. 
      ERA,ALS 
      SOC           SET LEAST A FOR 
      INA           "O-REG" SIGN FOR "E-REG"
      STA EOSAV     SAVE E/O
      LDA $POWR     SAVE INTERRUPT LOCATION 
      STA PSAVE 
      IFN 
      LIB 6         CHECK IF MX CPU 
      SZB,RSS 
      JMP NOMX1 
* 
      XIF 
      STX XSAVE     SAVE X-REG
      STY YSAVE     SAVE Y-REG
NOMX1 LIA 5         SAVE ADDRESS WHERE WE 
      LIB 5         LAST VIOLATED IN CASE OF MP IN
      CPB A         PROGRESS - IF SO THEN ALSO
      STA $CIC      RESET THE INTERRUPT LOCATION
      STA $PWR5 
      LIA 2         SAVE THE DMA
      STA SDMA1     WORD COUNTS 
      LIA 3 
      STA SDMA2 
      LIA 1         SAVE THE SWITCH 
      STA SSAVE     REGISTER
      IFZ 
      RSA           SAVE STATUS OF
      STA MEMST      WHAT WAS LAST MAP USED 
      CLA           (A) = STARTING REG #
      LDB SMAPA     (B) = ADDR OF MAP SAVE AREA 
      LDX MD128     (X) = -128 TO SAVE ALL MAPS 
      XMM 
      XIF 
      LDA STC5      SET UP THE EXIT 
      SPC 1 
      IFN 
* BEGIN NON-DMS CODE ***************
      LDB $OPSY 
      CPB RTEM1     IF IN RTE-M I DON'T 
      LDA STF        TURN ON MEMORY PROTECT 
*** END NON-DMS CODE ***************
      XIF 
      SPC 1 
      SFS 0         SWITCH BASED ON INTERRUPT SYSTEM
      LDA CLF0
      STA SW2 
WAIT  CLC 4         SET UP FOR MOMENTARY
      HLT 0         POWER FAILURE /WAIT FOR POWER 
      HED POWER UP ROUTINE
UP    LDA DWAIT      SET SWITCH FOR DOWN ROUTINE
      STA DOWN      TO AVOID LOSS OF INFORMATION. 
      LDA SW2 
      SSA,RSS       IF HALTED AT POWER DOWN 
      JMP HALT      GO HALT AGAIN 
* 
      CLC 0,C       INIT THE WHOLE I/O SYSTEM.
* 
      STC 4         CAN NOW ALLOW A DOWN INTERRUPT. 
* 
      IFZ 
      CLA           (A) = STARTING REG #
      LDB SMAPA     (B) = ADDR OF MAP SAVE AREA 
      LDX D128      (X) = +128 TO RESTORE ALL MAPS
      XMM 
* 
      LDA MEMST      GET MEU STATUS WORD
      AND B3777       SAVE FENCE ADDR AND PORTION BIT 
      LFA            LOAD FENCE 
* 
      XIF 
      LDB EQT#      SET UP TO SEARCH FOR
      CMB,INB       THE POWER FAIL
      STB EQTCO     EQT 
      LDB EQTA      ADDRESS 
      INB 
* 
NEXT  LDA B,I       GET WORD #2 
      CPA DEFI.     IS IT THE LOCAL IP43? 
      JMP FOUND     YES GO DO IT
* 
      ADB D15       NO INDEX TO NEXT EQT
      ISZ EQTCO     IF END THEN SKIP
      JMP NEXT      TRY NEXT ENTRY
* 
HALT  HLT 4,C       CPU HALTED OR NO
      JMP *-1       EQT ENTRY 
* 
FOUND ADB D2        INDEX TO WORD 4 
      LDA B,I       FETCH IT
      IOR B10K      SET THE "I WILL HANDLE TIME OUT"
      STA B,I       BIT 
      ADB D11       INDEX TO EQT15
      CCA,CCE       AND SET TIME OUT
      STA B,I       FOR NEXT TICK.
      STB EQ15      SAVE EQT15 ADDRESS
* 
      LDA TIME+2    IF TIME IN HAND 
      SZA           THEN DO NOT 
      JMP NIXTM     SAVE IT AGAIN 
* 
      DLD $TIME     GET THE TIME OF DAY 
D$TM  EQU *-1 
      DST TIME      AND SAVE IT 
      LDA D$TM      GET ADDRESS 
      RAL,CLE,SLA,ERA OF
      LDA A,I       DAY/YEAR
      ADA D2        AND 
      LDB A,I       SAVE THE TIME OF YEAR 
      STB TIME+2    TOO.
* 
NIXTM CLA,CCE       CLEAR THE EQT COUNT 
      STA EQTCO     FOR THE TIME OUT ROUTINE. 
      LDA EQ5,I     SET EQT IN PROCESS
      ALR,ERA       BUSY
      STA EQ5,I     SO WE UP IT AGAIN 
      JSB $SCLK     SET CLOCK FOR INTERRUPT 
      SPC 1 
      IFN 
* BEGIN NON-DMS CODE ***************
      LDA $OPSY 
      CPA RTEM1     IF RTE-M I, NEVER MEMORY PROTECT
      JMP NOMP
*** END NON-DMS CODE ***************
      XIF 
      SPC 1 
      LDA CLF0      SET EXIT SWITCH TO SYSTEM 
      LDB MPTFL     IF MP FLAG
      SZB           SAYS WE 
      STA SW2       WERE IN THE SYSTEM
NOMP  LDA DUMMY     IF PRIV. SYS
      SZA,RSS       MUST SET UP.  WELL? 
      JMP NOPRV     OK SO DON'T.
* 
      IOR STF       MAKE A STF DUMMY
      STA STFD      PUT IT DOWN 
STFD  NOP           AND DO IT 
      IOR STCD      NOW MAKE A STC DUMMY
      STA STCD      AND 
      IOR CLCD      A CLC DUMMY 
      STA CLCD      DO THE CLC
CLCD  CLC 0         NOW 
      SZB           IF IN SYSTEM ALSO 
STCD  STC 0         DO THE STC. 
NOPRV LDA EOSAV     RESTORE THE REGISTERS 
      CLO 
      SLA,ELA 
      STO 
      LDA SDMA1 
      STC 2 
      OTA 2 
      LDA SDMA2 
      STC 3 
      OTA 3 
      IFN 
      LIB 6         IF MX CPU 
      SZB,RSS 
      JMP NOMX2 
* 
      XIF 
      LDX XSAVE     RESTORE X-REG 
      LDY YSAVE     RESTORE Y-REG 
NOMX2 LDA SSAVE 
      OTA 1 
      LDA FENCE 
      SPC 1 
      IFN 
* BEGIN NON-DMS CODE ***************
      LDB $OPSY 
      CPB RTEM1     IF RTE-M I SKIP OTA 5 
      RSS 
*** END NON-DMS CODE ***************
      XIF 
      SPC 1 
      OTA 5 
      LDA TBG       CONFIGURE THE TBG STF 
      SZA            IF THERE IS ONE
      IOR STF       AND 
      STA STFTB     STORE IT
      JMP EXIT2     GO RETURN TO POINT OF INTERRUPT 
* 
      SPC 3 
      SPC 1 
      IFN 
* BEGIN NON-DMS CODE ***************
RTEM1 DEC -7
*** END NON-DMS CODE ***************
      XIF 
      SPC 1 
STC5  STC 5 
CLF0  CLF 0 
DWAIT DEF WAIT
ASAVE NOP 
BSAVE NOP 
EOSAV NOP 
* 
XSAVE NOP 
YSAVE NOP 
* 
      IFZ 
MEMST NOP 
SMAPA DEF SMAP
SMAP  BSS 32        DO NOT CHANGE ORDER - SYSTEM MAP
      BSS 32              -USER   MAP 
      BSS 32              -PORT-A MAP 
      BSS 32              -PORT-B MAP 
MD128 DEC -128
D128  DEC 128 
B3777 OCT 3777
      XIF 
* 
SDMA1 NOP 
SDMA2 NOP 
SSAVE NOP 
EQ5   NOP           EQT IN PROCESS FLAG 
EQ15  NOP 
EQTCO NOP 
PSAVE DEF HALT      P-REG SAVE (HLT DEF IF HALTED)
TIME  OCT 0,0,0     TIME SAVE LOCATION
A     EQU 0 
B     EQU 1 
      SPC 3 
DEFI. DEF IP43
D15   DEC 15
D3    DEC 3 
B10K  OCT 10004 
D2    DEC 2 
      HED TIME OUT SECTION
CP43  NOP           ENTRY HERE FOR TIME OUT ONLY
      CLA           CLEAR THE EQT IN PROCESS FLAG 
      STA SW2       CLEAR SWITCH TO SHOW NO PFAIL 
      STA EQ5 
STFTB STF 0         SET CLOCK AGAIN OR NOP IF NONE
      CCB           SET UP TO TIME OUT AGAIN
      STB EQ15,I    SET IN EQT15
      ISZ $DLFL     INCREMENT DELAY 'TIME-OUT' FLAG 
      NOP           WATCH OUT FOR A SKIP
* 
NOTIM LDA EQTCO     GET CURRENT EQT COUNT 
      CPA EQT#      IF DONE 
      JMP AUTOR     GO START AUTOR
* 
      SZA,RSS       IF FIRST TIME 
      STB BSAVE     SET BSAVE FOR AUTOR COUNT 
      SZA,RSS 
      STB EOSAV     SET EOSAV FOR TIME CALL 
* 
      ISZ EQTCO     STEP THE EQT NUMBER 
      LDA EQTCO     GO SET UP 
      JSB $CVEQ     THE EQT ADDRESSES 
      LDA EQT5,I    GET EQT5
      RAL,CLE,SLA   IF DMA WAIT 
      CCE,SSA,RSS   THEN
      RSS           FORGET RESTART
      JMP NOTIM 
* 
      LDA EQT1,I    CHECK IF SYS IS CLEARING
      SSA           WELL? 
      JMP NOTIM     YES  LET TIME OUT CATCH IT. 
* 
      LDA EQT4,I    DEVICE DOWN OR BUSY 
      ALF,RAR       CHECK HIS "I KNOW ABOUT PF" 
      SEZ,CCE,SLA   BIT 
      JMP DVR       SET AND BUSY GO DO IT 
* 
      LDA EQT5      EITHER DOWN OR PF BIT NOT SET 
      STA EQ5       SAVE EQT5 ADDRESS IN CASE 
      LDA EQT5,I    WE GO DOWN WHILE PROCESSING 
      ALR,RAL       SET DEVICE DOWN 
      ERA,RAR       AND 
      STA EQT5,I     AND
      JMP $UPIO     GO RESTART
* 
DVR   LDA EQT4,I    SET SELECT
      AND B77       CODE IN 
      LDB EQT2,I    A-REG AND 
      JSB B,I       CALL AT I.XX
      JMP NOTIM     GO DO NEXT EQT. 
* 
AUTOR ISZ BSAVE     FIRST TIME HERE?
      JMP SAUTO     NO - GO SCHEDULE AUTOR
* 
      LDA DOF       YES - ABORT AUTOR 
      LDB D11       BY CALLING SYSTEM 
      JSB $MESS     MESSAGE PROCESSOR 
      SZA           A RETURN INDICATES
      JMP NOAUT     NO AUTOR
* 
SAUTO JSB $LIST     SECOND ENTRY
      OCT 201       SCHEDULE BY NAME
      DEF OF2 
NOAUT CLA           CLEAR THE TIME OUT
      STA EQ15,I    FLAG IN EQT 15
      JMP $XEQ      START THE SYSTEM
* 
DOF   DEF *+1 
      ASC 2,OFF,
OF2   ASC 4,AUTOR,1 
D11   DEC 11
B77   OCT 77
N3    DEC -3
D4    DEC 4 
      HED TIME REQUEST SECTION
IP43  NOP 
      LDA EQT6,I    GET THE REQUEST CODE
      RAR,SLA       IF NOT READ GO COMPLETE 
      JMP REJ 
* 
      LDA EQT8,I    MUST HAVE A 
      ADA N3        THREE WORD
      SSA           BUFFER
      JMP REJ       ELSE IGNOR
* 
      LDA EQT7,I    BUFFER ADDRESS TO A 
      LDB TIME      SET THREE WORD
      STB A,I       TIME MESSAGE
      INA           IN
      LDB TIME+1    USER
      STB A,I       BUFFER
      INA 
      LDB TIME+2
      STB A,I 
      CCA           IF FIRST CALL AFTER TIME OUT
      CPA EOSAV     AFTER POWER UP
      ISZ EOSAV     SET FLAG TO ZERO AND SKIP 
      JMP CLEAR     NOT FIRST ENTRY JMP 
* 
I.EX  LDB D3        SET TLOG = 3
REJ   LDA D4        IMMEADIATE COMPLETION 
      JMP IP43,I    RETURN TO USER
* 
CLEAR CLA           SECOND OR LATER ENTRY 
      STA TIME+2    CLEAR THE TIME IN HAND FLAG 
      JMP I.EX      AND EXIT
* 
* 
* 
      HED ** SYSTEM BASE PAGE COMMUNICATION AREA ** 
.     EQU 1650B     ESTABLISH ORIGIN OF AREA
* 
* SYSTEM TABLE DEFINITION * 
* 
EQTA  EQU .+0      FWA  OF  EQUIPMENT TABLE 
EQT#  EQU .+1       # OF EQT ENTRIES
DRT   EQU .+2      FWA  OF  DEVICE REFERENCE TABLE
LUMAX EQU .+3       # OF LOGICAL UNITS (IN DRT) 
INTBA EQU .+4      FWA  OF  INTERRUPT TABLE 
INTLG EQU .+5       # OF INTERRUPT TABLE ENTRIES
TAT   EQU .+6      FWA  OF  TRACK ASSIGNMENT TABLE
KEYWD EQU .+7      FWA  OF  KEYWORD BLOCK 
* 
* I/O MODULE/DRIVER COMMUNICATION 
* 
EQT1  EQU .+8      ADDRESSES
EQT2  EQU .+9 
EQT3  EQU .+10      OF
EQT4  EQU .+11
EQT5  EQU .+12      CURRENT 
EQT6  EQU .+13
EQT7  EQU .+14      15-WORD 
EQT8  EQU .+15
EQT9  EQU .+16      EQT 
EQT10 EQU .+17
EQT11 EQU .+18      ENTRY 
EQT12 EQU .+81
EQT13 EQU .+82
EQT14 EQU .+83
EQT15 EQU .+84
CHAN  EQU .+19     CURRENT DMA CHANNEL #
TBG   EQU .+20     I/O ADDRESS OF TIME-BASE CARD
SYSTY EQU .+21     EQT ENTRY ADDRESS OF SYSTEM TTY
* 
* SYSTEM REQUEST PROCESSOR /'EXEC' COMMUNICATION *
* 
RQCNT EQU .+22     # OF REQUEST PARAMETERS -1 
RQRTN EQU .+23      RETURN POINT ADDRESS
RQP1  EQU .+24      ADDRESSES 
RQP2  EQU .+25
RQP3  EQU .+26       OF REQUEST 
RQP4  EQU .+27
RQP5  EQU .+28       PARAMETERS 
RQP6  EQU .+29
RQP7  EQU .+30       (SET FOR MAXIMUM OF
RQP8  EQU .+31        9 PARAMETERS) 
RQP9  EQU .+32
* 
* DEFINITION OF SYSTEM LISTS (QUEUES) * 
* 
SKEDD EQU .+33      'SCHEDULE' LIST,
SUSP2 EQU .+35      'WAIT' LIST,
SUSP3 EQU .+36      'AVAILABLE MEMORY' LIST,
SUSP4 EQU .+37      'DISC ALLOCATION'  LIST,
SUSP5 EQU .+38      'OPERATOR SUSPEND' 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 .+49       'A REGISTER' AT SUSPENSION 
XB    EQU .+50       'B REGISTER' 
XEO   EQU .+51       'E AND OVERFLOW
* 
* SYSTEM MODULE COMMUNICATION FLAGS * 
* 
OPATN EQU .+52     OPERATOR/KEYBOARD ATTENTION FLAG 
OPFLG EQU .+53     OPERATOR COMMUNICATION FLAG
SWAP  EQU .+54     RT DISC RESIDENT SWAPPING FLAG 
DUMMY EQU .+55     I/O ADDRESS OF DUMMY INT. CARD 
IDSDA EQU .+56     DISC ADDR. OF FIRST ID SEGMENT 
IDSDP EQU .+57      -POSITION WITHIN SECTOR 
* 
* DEFINITION OF MEMORY ALLOCATION BASES * 
* 
BPA1  EQU .+58     FWA R/T DISC RES. BP LINK AREA 
BPA2  EQU .+59     LWA R/T DISC RES. BP LINK AREA 
BPA3  EQU .+60     FWA BKG DISC RES. BP LINK AREA 
LBORG EQU .+61     FWA OF RESIDENT LIBRARY AREA 
RTORG EQU .+62     FWA OF REAL-TIME AREA
RTCOM EQU .+63     LENGTH OF REAL TIME COMMON AREA
RTDRA EQU .+64     FWA OF R/T DISC RESIDENT AREA
AVMEM EQU .+65     FWA OF SYSTEM AVAILABLE MEMORY 
BKORG EQU .+66     FWA OF BACKGROUND AREA 
BKCOM EQU .+67     LENGTH OF BACKGROUND COMMON AREA 
BKDRA EQU .+68     FWA OF BKG DISC RESIDENT AREA
* 
* UTILITY PARAMETERS
* 
TATLG EQU .+69     LENGTH OF TRACK ASSIGNMENT TABLE 
TATSD EQU .+70      # OF TRACKS ON SYSTEM DISC
SECT2 EQU .+71      # SECTORS/TRACK ON LU 2 (SYSTEM)
SECT3 EQU .+72      # SECTORS/TRACK ON LU 3 (AUX.)
DSCLB EQU .+73     DISC ADDR OF RES LIB ENTRY PTS 
DSCLN EQU .+74      # OF RES LIB ENTRY POINTS 
DSCUT EQU .+75     DISC ADDR OF RELOC UTILITY PROGS 
DSCUN EQU .+76      # OF RELOC UTILITY PROGS
LGOTK EQU .+77     LOAD-N-GO: LU,STG TRACK,# OF TRKS
LGOC  EQU .+78      CURRENT LGO TRACK/SECTOR ADDRESS
SFCUN EQU .+79     SOURCE FILE LU AND DISC ADDRESS
MPTFL EQU .+80      MEMORY PROTECT ON/OFF FLAG (0/1)
FENCE EQU .+85      MEM PROTECT FENCE ADDRESS 
BKLWA EQU .+87     LWA OF MEMORY IN BACKGROUND
* 
      ORG *         LENGTH OF $POWR 
      END $POWR 
                                              