ASMB,R,L,C        RTMGM 
*     NAME:   RTMGM  GEN. MAIN CONTROL FOR SEGMENTED GEN.-LOADER
*     SOURCE: 91740-18057 
*     RELOC:  91740-16057 
*     PGMR:   MIKE SCHOENDORF 
* 
*  ***************************************************************
*  * (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.       *
*  ***************************************************************
* 
* 
      HED  RTE-M SYSTEM GENERATOR-LOADER
* 
      NAM RTMGM,8 91740-16057 REV 1740 770912 
***************** - HIGH CORE - ******************
*                                                *
*                    - IDENTS -                  *
*                                                *
**************************************************
*                 - FIXUP TABLES -               *
*                    ----------                  *
*                                                *
*                                                *
*                     -------                    *
*                     - LST -                    *
**************************************************
*                                                *
*                                                *
*           PROGRAM LOADING CONTROL              *
*                                                *
*                                                *
**************************************************
*                                                *
* 
*               I/O TABLE GENERATION             *
* 
*                                                *
**************************************************
*                                                *
*                                                *
*                  PARAMETER INPUT               *
*                                                *
*                                                *
**************************************************
* 
* 
* 
      SKP 
* 
* 
*  LST FORMAT 
* 
*  WORD 1: LST1 - NAME 1,2
*  WORD 2: LST2 - NAME 3,4
*  WORD 3: LST3 - NAME 5, ORDINAL 
*  WORD 4: LST4 - IDENT ADDRESS 
*  WORD 5: LST5 - BP LINK ADDRESS 
* 
* 
* 
*  ENTERNS AND EXTERNS
* 
      EXT ATBUF,CM#LG,DO#ON,ENTPT,ER#OR,FIXUP 
      EXT GENRT,GE#AL,GE#NA,GI#IT,GNFLG 
      EXT GNSG1,GNSG2,GREAD,GTIME,IN#RR,INTER,LDSEG 
      EXT LDSG3,LST1,LST4,LST5
      EXT OUTON,PRCMD,PRIN1 
      EXT SAVE2,SEGFL,SP#CE,SYSTM,TBUF# 
      EXT UNDEF,ZPRIV,ZRENT 
* 
* 
      ENT RTLG1,RTMLC,RTMLI 
* 
CMFLG EQU CM#LG 
DOCON EQU DO#ON 
GETAL EQU GE#AL 
GETNA EQU GE#NA 
GINIT EQU GI#IT 
INERR EQU IN#RR 
READ  EQU GREAD 
SPACE EQU SP#CE 
TBUF  EQU TBUF# 
* 
*    .MEM. TABLE DEFINITIONS
* 
*       .MEM1 = FWABP 
*       .MEM2 = LWABP 
*       .MEM3 = FWAM
*       .MEM4 = LWAM
*       .MEM5 = FWAC
*       .MEM6 = LWAC
* 
      SKP 
* 
* 
*  ERROR CODES
* 
*  AD: INVALID ENTRY POINT
*  CH: INVALID CHANNEL NUMBER 
*  DR: INVALID DRIVER NAME
*  DU: DUPLICATE PROGRAM NAME 
*  EQ: INVALID EQT. NO. IN INT. RECORD
*  IN: PARAMETER INTERVAL EXECUTION ERROR 
*  LU: INVALID DEVICE REFERENCE NUMBER
*  ON: INVALID ON PARAMETER 
*  NA: PARAMETER NAME ERROR 
*  PA: PARAMETER ERROR
*  PD: PARTITION ALREADY DEFINED
*  PR: PARAMETER PRIORITY ERROR 
*  PS: NOT ENOUGH MEMORY LEFT FOR PARTITION 
*  PT: PARTITION DEFINITION ERROR 
*  SO: SYSTEM OVERFLOW
*  TB: SYMBOL TABLE/ID SEGMENT OVERFLOW 
* 
* 
      SUP 
* 
      SKP 
RTLG1 LDA P6        LOAD IN GENERATOR SEGMENT 1 
LDSGA CLB 
      STB SEGFL     LAST SEGMENT FLAG 
      JMP LDSEG     LOAD IN SEGMENT 
* 
      SKP 
* 
* 
*  RTMLI CONTROLS THE LOADING OF THE SEGMENT WHILE
*  RTMLC CONTROLS THE EXECUTION OF THAT SEGMENT.
* 
RTMLI LDA GNFLG     WHERE GO FLAG (INITIALIZATION)
      SZA,RSS 
      JMP DEDEV     DEFINE OUTPUT DEVICES 
      CPA P1
      JMP CENTS     CHANGE ENTRIES
      CPA P2
      JMP FIXI      DO FIXUP
      CPA P3
      JMP RESLB     PUT IN ZPRIV ZRENT
      JMP SNAP2     PROCESS SNAP REQUEST
      SPC 5 
RTMLC LDA GENRT     WHERE GO FLAG 
      CPA P1
      JMP ENTRA     CHANGE ENTRIES
      CPA P2
      JMP FIXC      DO FIXUP
      JMP RTMGR     PUT IN ZPRIV ZRENT
      SKP 
* 
*  DEFINE OUTPUT DEVICES
* 
DEDEV CLA,INA 
      STA GNFLG     SET FOR CHANGE ENTRIES
      CLA,INA 
      STA GENRT     SET FOR CHANGE ENTS 
      JSB SPACE 
OTPUT JSB INTER 
      LDA P23 
      LDB MES31     *DEFINE OUTPUT DEVICES
      JSB PRIN1 
      JSB PRCMD     CALL LOADER SUBCONTROL
      JMP OTPUT     ERROR, REPEAT INPUT 
      LDA OUTON     ANY OUTPUT DEVICE DECLARED? 
      SZA,RSS 
      JMP ERROO     NO, OUTPUT ERROR
      CLA,INA 
      STA GNSG1 
      LDA P6        LOAD IN GEN SEGMENT 1 AND START 
      JMP LDSGA     EXECUTION AT SET TYPE OF SYSTEM 
* 
ERROO LDA OO        ERROR MESSAGE 
      CLB           ERROR CODE
      JSB ER#OR 
      JMP OTPUT 
* 
OO    ASC 1,OO
      SKP 
* 
* 
CENTS LDA P2
      STA GNFLG     SET FOR FIXUP 
      STA LDSG3     SET FOR PUTTING ENTRY IN LST
      LDA P3
      JMP LDSGA     LOAD IN LOADER SEGMENT 3
ENTRA LDA P2
      STA GENRT     SET FOR FIXUP 
      LDA SYSTM     RTE-M-I SYSTEM? 
      CPA P1
      JMP ENTRX     YES 
      LDB D$CLS     ADDRESS OF ENTRY
      JSB ENTPT     PUT IN LST
      LDA UDFE
      STA LST4,I    SET TO UNDEFINED
      ISZ UNDEF     DON'T OUTPUT AS UNDEF 
      LDB D$RNT     ADDRESS OF ENTRY
      JSB ENTPT     PUT IN LST
      LDA UDFE
      STA LST4,I    SET TO UNDEFINED
      ISZ UNDEF     DON'T OUTPUT AS UNDEF 
* 
*  CHANGE ENTRY POINTS
* 
ENTRX JSB SPACE     NEW LINE
ENTRY JSB INTER     INTERACTIVE INPUT 
      LDA P14 
      LDB MES17     CHANGE ENTS?
      JSB READ      PRINT MESSAGE, GET REPLY
      CLA 
      STA CHRCT 
      LDA N2
      JSB GETNA     GET FIRST 2 CHARACTERS
      CPA EN        END?
      JMP END?      YES,CHECK TO SEE IF NOT ENTRY 
ENTRI JSB GINIT     REINITIALIZE INPUT
      CCA 
      STA CMFLG 
ENTLN JSB GETAL     GET NEXT CHARACTER
      CPA BLANK     REACHED COMMA YET?
      JMP ENTFN     YES 
      ISZ CHRCT     CHARACTER COUNTER 
      JMP ENTLN 
ENTFN LDA N2        MOVE 2 CHARACTERS TO TBUF 
      JSB GETNA 
      CLB 
      CPA RP        MICROCODE REPLACEMENT?
      JMP RP1       YES 
      CPA AB        ABSOLUTE? 
      JMP AB1       YES 
ENTER JSB INERR     NEITHER MICROCODE RELACEMENT NOR ABSOLUTE 
      JMP ENTRY     ERROR, REPEAT INPUT 
RP1   INB 
AB1   ADB P3
      STB TBUF+4
      CCA 
      STA CMFLG 
      JSB GETAL     GET NEXT CHAR. IN RESPONSE
      CPA BLANK     REACHED COMMA YET?
      RSS 
      JMP ENTER     ERROR 
      LDA BBLNK     INITIALIZE TBUF 
      STA TBUF      WITH BLANKS 
      STA TBUF+1
      STA TBUF+2
      LDA P6        SET FOR 6 OCTAL DIGITS INPUT
      JSB DOCON     GET VALUE OF RP OR AB 
      JMP ENTRY     REPEAT INPUT
      STA TBUF+3
      JSB GINIT     BUFFER INITIALIZE 
      LDA CHRCT     GET NO. OF CHAR. IN ENTRY POINT 
      CMA,INA 
      JSB GETNA     PUT ENTRY POINT IN TBUF 
      LDA TBUF+2
      IOR TBUF+4
      STA TBUF+2
      LDB ATBUF 
      JSB ENTPT 
      CLA 
      STA GTIME 
      JMP ENTRY     GET NEXT CHANGE 
END?  LDA N2
      JSB GETNA     GET NEXT 2 CHARACTERS 
      CPA D         D?
      RSS           YES, DONE 
      JMP ENTRI     NO, MUST BE ENTRY POINT 
      LDA P3
      STA GNSG1 
      LDA P6
      JMP LDSGA     LOAD IN GEN SEG 1 
      SKP 
FIXI  LDA P3
      STA LDSG3     SET FOR PUTTING ENTRY IN LST
      JMP LDSGA     LOAD IN LOADER SEGMENT 3
FIXC  JSB FIXUP     DO FIXUP FOR CLASS I O AND RESOURCE 
      LDA P6        NUMBERS 
      STA GNSG1     LOAD IN LOADER SEGMENT 2
      JMP LDSGA 
      SKP 
RESLB LDA P4
      STA GNFLG     SET FOR SNAP
      STA LDSG3     SET FOR PUTTING ENTRY IN LST
      LDA P3
      JMP LDSGA     LOAD IN LOADER SEGMENT 3
RTMGR LDA P4
      STA GENRT     SET FOR SNAP
      LDB .ZPRV     PUT .ZPRV IN LST
      JSB ENTPT 
      LDA LST1      SAVE LST ADDRESS
      STA ZPRIV 
      LDA N4
      STA LST5,I    SET .ZPRV FOR MICROCODE 
      LDA B2001     REPLACEMNT "RSS"
      STA LST4,I
      LDB .ZRNT     PUT .ZRNT IN LST
      JSB ENTPT 
      LDA LST1      SAVE LST ADDRESS
      STA ZRENT 
      LDA N4
      STA LST5,I    SET .ZRNT FOR MICROCODE 
      LDA B2001     REPLACEMENT "RSS" 
      STA LST4,I
      LDB $SSGA 
      JSB ENTPT     PUT $SSGA IN LST
      CLA 
      STA LST4,I    SET ITS ADDRESS TO 0
      LDA LST4      SAVE LST ADDRESS FOR FIXUP
      STA SAVE2 
      LDA P2
      STA GNSG2     SET TO RELOCATE RESIDENT LIBRARY NEXT 
      LDA P9
      JMP LDSGA     LOAD IN GEN SEG 2 
      SKP 
SNAP2 JSB INTER 
      LDA P11 
      LDB MES09     * SNAPSHOT? 
      JSB PRIN1 
      JSB PRCMD     GO PROCESS SNAP REQUEST 
      JMP SNAP2     ERROR, TRY AGAIN
      LDA P9
      STA GNSG2     SET FOR SNAP RETURN 
      JMP LDSGA     LOAD IN GENERATOR SEGMENT 2 
      SKP 
* 
AB    ASC 1,AB
D     ASC 1,D 
EN    ASC 1,EN
RP    ASC 1,RP
* 
B2001 OCT 2001
P1    DEC 1 
P2    DEC 2 
P3    DEC 3 
P4    DEC 4 
P6    DEC 6 
P9    DEC 9 
P11   DEC 11
P14   DEC 14
P23   DEC 23
N2    DEC -2
N4    DEC -4
* 
BBLNK OCT 20040 
BLANK OCT 40
UDFE  OCT 77777 
* 
CHRCT NOP 
* 
D$CLS DEF $CLS
$CLS  ASC 3,$CLAS 
D$RNT DEF $RNTB 
$RNTB ASC 3,$RNTB 
$SSGA DEF *+1 
      ASC 3,$SSGA 
.ZPRV DEF *+1 
      ASC 3,.ZPRV 
.ZRNT DEF *+1 
      ASC 3,.ZRNT 
* 
MES09 DEF *+1 
      ASC 6,* SNAPSHOT? 
MES17 DEF *+1 
      ASC 7,* CHANGE ENTS?
MES31 DEF *+1 
      ASC 12,* DEFINE OUTPUT DEVICES
      END 
      SKP 
        