ASMB,R,L,C       RTMLM
*     NAME:   RTMLM 
*     SOURCE: 91740-18053 
*     RELOC:  91740-16053 
*     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 RTMLM,8 91740-16053 REV 1926 790426 
* 
*   ENTRY POINT NAMES 
* 
      ENT RT.G1,RT.LC 
* 
*   EXTERNAL REFERENCE NAMES
* 
      EXT ABL1,ABL2,ABRC1,ABREC,ABRT1,BPLOC,CKS 
      EXT CLBPL,CLFL2,COML,CONSO,DBTAD,DIAG,DIAG2 
      EXT ENTPT,EXEC6,FRTRU,FT#ME,FWABP,FWAC,FWAM 
      EXT ICR,ISECU,LDSEG,LDSG3 
      EXT LST,LST4,MAPS,.MEM4,MLOCC 
      EXT NAMR.,OUTON,PRCMD 
      EXT PRINT,SCP,SEGFL,SERFG,TIMES 
      EXT TRUNC,TYOFF,UNDEF,WRTBT,?XFER 
* 
      EXT KCVT
* 
      EXT PNZQZ,PRAMS 
* 
* 
LOCC  EQU MLOCC 
FTIME EQU FT#ME 
      SUP 
**********************************************************
*   THE FUNCTION OF THIS LOADER IS TO RELOCATE AND LINK 
*   RELOCATABLE BINARY MODULES TOGETHER, AND PREPARE
*   THEM FOR EXECUTION ON AN RTM SYSTEM. AFTER
*   STARTING THIS LOADER WITH A ON LOADR COMMAND
*   A SNAPSHOT CAN BE READ IN.
*   THIS SNAPSHOT CONTAINS THE DEFAULT
*   MEMORY BOUNDS, SYSTEM COMMON, AND DEFINES THE 
*   CORE-RESIDENT LIBRARY ROUTINES FOR THE TARGET RTM 
*   SYSTEM. 
*       SYMBOL TABLE ENTRY FORMAT:
* 
*      WORD 5 -   OCT 0   (LINK OR FIXUP TABLE ADDRESS) 
*           4 -   DEF SYMBOL   (HOLDS SYMBOL VALUE) 
*           3 -   OCT XX000  CHAR 5 AND FLAGS 
*           2 -   ASC 1,  CHARS 3,4 OF NAME 
*           1 -   ASC 1,  CHARS 1,2 OF NAME 
*   SHOULD ONLY BE REFERENCED VIA POINTERS LST1 THRU LST5,
*   USING SUBROUTINES LSTI AND LSTP.
* 
************************************************************************
* 
RT.G1 LDA SCP 
      AND B10 
      SZA           PUT DEBUG IN LST? 
      JMP RTMLP     YES, FORCE LOAD DEBUG 
RTMLA CLA,INA 
      STA LDSG3     USE LDRIN ENTRY IN SEG 3
      LDB ONMSG   PRINT MESSAGE 
      JSB DIAG2     LOADER STARTED
      JSB PRCMD     PROCESS LOADER COMMANDS 
      JMP ABRT1     PROGRAM TERMINATION 
RTML2 LDA LOCC
      SZA,RSS       IF NO MODULES RELOCATED,
      JMP RTMLT      PROGRAM TERMINATION
      LDA B2
      STA ABRC1    STORE ADDRESS OF TIE-OFF RECORDS 
      DLD PNZQZ     GET PROGRAM NAME
      JSB TYOFF     OUTPUT CHARS 1,2,3,4 OF NAME
      LDA PNZQZ+2 
      AND UPCM
      IOR PRAMS    CHAR 5,TYPE
      LDB PRAMS+1   GET PRIORITY
      JSB TYOFF 
      LDA PRAMS+2 
      RAR,RAR       RES. CODE 
      RAR 
      IOR PRAMS+3 
      CLB           SPARE 
      JSB TYOFF 
      JSB TIMES     PROCESS TIME PARAMETERS 
      JSB TYOFF   OUTPUT TIME PARAMETERS
      CLA           SPARE 
      LDB .MEM4     LWAM
      JSB TYOFF     OUTPUT SPARES 
      LDA FWAM      GET LOW MAIN
      LDB LOCC      GET HIGH MAIN 
      JSB TYOFF      OUTPUT 
      LDA FWABP     GET LOW BASE PAGE 
      LDB BPLOC     GET HIGH BASE PAGE
      JSB TYOFF   OUTPUT LOW & HIGH BASE PAGE 
      LDA FWAC
      LDB COML
      JSB TYOFF 
      LDB DBTAD     GET DEBUG TRANSFER ADDRESS
      LDA SCP       LOAD WITH DEBUG?
      AND B10 
      SZA,RSS 
      LDB ?XFER     NO, USE PROGRAM XFER ADDRESS
      LDA JMP3
      JSB TYOFF 
      CLB,INB 
      JSB CLFL2     CLOSE ABSOLUTE OUTPUT FILE
      LDB EDREL     PRINT MESSAGE 
      JSB DIAG      "RELOCATION FINISHED" 
      LDA FWAM      GET # OF PAGES USED FOR RELOCATION
      CMA 
      ADA LOCC
      AND B76K
      ALF 
      RAL,RAL 
      ADA B2
      STA NUMB
      JSB KCVT
      DEF *+2 
      DEF NUMB
      STA PAGES,I 
      LDA CONSO     INTERACTIVE INPUT?
      SZA,RSS 
      JMP RTMLB     NO
      LDA P19 
      LDB PAGE
      JSB PRINT 
RTMLB LDA P19 
      LDB PAGE
      JSB MAPS
      LDB SNAP      PRINT MESSAGE 
      JSB DIAG      "INPUT SNAP REQUEST"
      JSB PRCMD     PROCESS SNAP REQUEST
      JMP ABRT1     PROGRAM TERMINATION 
      LDA B2        SET TO SEGMENT LOAD 
      STA SCP 
      LDB SEGRL     * REL SEGMENT 
      JSB DIAG
      JSB INIT2     REINITIALIZE POINTERS 
      JSB PRCMD     PROCESS LOADER COMMANDS 
      JMP ABRT1     PROGRAM TERMINATION 
      LDA LOCC      IF NO MODULES RELOCATED 
      SZA           PROGRAM TERMINATION 
      JMP RTML2 
RTMLT LDB OFMSG     PRINT MESSAGE 
      JSB DIAG2     RTMLG FINISHED
      JMP EXEC6     PROGRAM TERMINATION 
* 
RTMLP CLA 
      STA SEGFL     LAST SEGMENT FLAG 
      LDA B3
      STA LDSG3     SET FOR RETURN TO MAIN
      JMP LDSEG     LOAD IN LOADER SEGMENT 3
* 
* 
RT.LC LDB DEBUG     PUT DEBUG IN LST
      JSB ENTPT 
      LDA UDFE      SET TO UNDEF
      STA LST4,I
      JMP RTMLA 
      SPC 1 
JMP3  JMP 3,I 
* 
INIT2 NOP 
      JSB CLBPL     CLEAR BASE PAGE LINKS 
      LDA ABL2
      STA ABL1
      CLA 
      STA UNDEF     START SEARCH AT BEGINNING OF LST
      STA FRTRU     FIRST TIME THRU FLAG
      STA ?XFER     "HAVE MAIN FLAG"
      STA LOCC      PROGRAM RELOCATION BASE 
      STA BPLOC     BASE PAGE RELOCATION BASE 
      STA COML      "COMMON USED" FLAG
      STA LST,I     LOADER SYMBOL TABLE LENGTH
      STA NAMR.     ALLOW A NAM RECORD
      STA OUTON     ABSOLUTE OUTPUT FILE CLOSED 
      STA FTIME     OUTPUT TYOFF RECORD ONLY AT START 
      STA ISECU     SECURITY CODE 
      STA ICR       LABEL 
      STA WRTBT     NO RELOCATION YET 
      STA TRUNC     DON'T TRUNCATE ON ABORT 
      STA ABREC     CLEAR RECORD LENGTH 
      STA CKS       CLEAR CHECKSUM
      STA SERFG     LIBRARY LOAD FLAG 
      JMP INIT2,I 
* 
      SPC 2 
* 
NUMB  NOP 
SEGRL DEF *+1 
      DEC 13
      ASC 7,* REL SEGMENT 
ONMSG DEF *+1 
      DEC 16
      ASC 8,* LOADER STARTED
EDREL DEF *+1 
      DEC 21
      ASC 11,* RELOCATION FINISHED
OFMSG DEF *+1 
      DEC 16
      ASC 9,* RTMLG FINISHED
PAGE  DEF *+2 
PAGES DEF *+2 
      ASC 1,* 
      BSS 1 
      ASC 8, PAGES REQUIRED 
SNAP  DEF *+1 
      DEC 11
      ASC 6,* SNAPSHOT? 
B2    OCT 2 
B3    OCT 3 
B10   OCT 10
B76K  OCT 76000 
P19   DEC 19
UPCM  OCT 77400 
UDFE  OCT 77777 
* 
DEBUG DEF *+1 
      ASC 3,DEBUG 
* 
      SPC 2 
      END 
                                                                    