ASMB,R,L,C HED RTM RELOCATING LOADER * * ********************************************************* * * RTM LOADER MAIN CONTROL * MIKE SCHOENDORF * OCTOBER 8, 1976 * * SOURCE: 92064-18121 * RELOCATEABLE: 92064-16023 ********************************************************* * NAM RTMLD,3,90 92064-16023 REV.1740 770618 * * ENTRY POINT NAMES * ENT PNAME,PNAMA,PRAMS * * EXTERNAL REFERENCE NAMES * EXT ABRC1,ABRT1,BPLOC,CLFL2,COML,CONSO EXT DBTAD,DIAG,DIAG2,EXEC6,FWABP,FWAC EXT FWAM,INIT2,LDGEN,LGUNT,LNKDR,LOCC EXT MAPS,.MEM4,PRCMD,PRINT,SCP,TIMES EXT TYOFF,?XFER EXT KCVT * * 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. * ************************************************************************ * RTMLD CLA,INA STA LNKDR LINK DIRECTION FLAG STA LDGEN LOADER MAIN CONTROL CALLING JSB LGUNT GET LOGICAL UNIT NUMBERS LDB ONMSG PRINT MESSAGE JSB DIAG2 "LOADER STARTED" CLA SET TO ANY MODULE TYPE ALLOWED JSB PRCMD PROCESS LOADER COMMANDS JMP ABRT1 PROGRAM TERMINATION RTML2 LDA LOCC SZA,RSS IF NO MODULES RELOCATED, JMP RTML1 PROGRAM TERMINATION LDA B2 STA ABRC1 STORE ADDRESS OF TIE-OFF RECORDS DLD PNAME GET PROGRAM NAME JSB TYOFF OUTPUT CHARS 1,2,3,4 OF NAME LDA PNAME+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 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 SZA,RSS JMP RTMLB DON'T PRINT # PAGES 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 STA SCP SET FOR SEGMENT LOAD LDB SEGRL REL SEGMENT JSB DIAG JSB INIT2 INITIALIZE FOR SEGMENT LOAD JSB PRCMD GO RELOCATE IT JMP ABRT1 PROGRAM TERMINATION LDA LOCC ANY RELOCATION SZA JMP RTML2 YES, GO OUTPUT TY-OFF RECORDS RTML1 LDB OFMSG PRINT MESSAGE JSB DIAG2 "LOADER FINISHED" JMP EXEC6 PROGRAM TERMINATION SPC 1 JMP3 JMP 3,I PNAMA DEF PNAME PNAME REP 3 PROGRAM NAME NOP BSS 3 MODULE LENGTHS FOR MAIN PRAMS DEC 3 DEFAULT TYPE DEC 9999 DEFAULT PRIORITY REP 6 DEFAULT OTHER PARAMS NOP SPC 2 SEGRL DEF *+1 DEC 13 ASC 7,* REL SEGMENT NUMB NOP ONMSG DEF *+1 DEC 16 ASC 8,* LOADER STARTED EDREL DEF *+1 DEC 21 ASC 11,* RELOCATION FINISHED OFMSG DEF *+1 DEC 17 ASC 9,* LOADER 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 B10 OCT 10 B76K OCT 76000 P19 DEC 19 UPCM OCT 77400 * SPC 2 END RTMLD