ASMB,B,R,L,C HED RTS RELOCATING LOADER/2100 * *************************************************************** * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975. 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. * *************************************************************** * * * THE TERM RTS/2100 IS SYNONYMOUS WITH RTE-C AND * THE TERMS ARE USED INTERCHANGEABLY THROUGHOUT * THIS DOCUMENT * ********************************************************* * * RTE-C LOADER MAIN CONTROL * REV.A JACK COOLWY 15MAY73 * REV.B D.L.S. 10MAR75 COPYRIGHT * ********************************************************* * NAM LOADR * * ENTRY POINT NAMES * ENT PNAME,PNAMA,PRAMS ENT LOADR * * EXTERNAL REFERENCE NAMES * EXT LOEND EXT PRCMD EXT BPLOC,LOCC,BPAG4 EXT B2,MD24,MD60,UPCM EXT CNTR,?XFER,OPT.3 EXT FWABP,LTG,ABRC1,FWAM,FWAC,COML EXT PACK,PUNCH,LST EXT LISTO,ASR33,B7 EXT DIAG,ABORT * B EQU 1 * SUP ********************************************************** * THE FUNCTION OF THIS LOADER IS TO RELOCATE AND LINK * RELOCATABLE BINARY MODULES TOGETHER, AND PREPARE * THEM FOR EXECUTION ON AN RTS SYSTEM. AFTER * LOADING THIS LOADER INTO CORE USING THE BBL OR BBDL, * THE SIO DRIVERS TO BE USED ARE LOADED AND CONFIGURED * THE SNAPSHOT CAN THEN BE READ IN FROM THE PHOTO * READER BY TYPING TR ON THE TTY. * THIS SNAPSHOT CONTAINS THE DEFAULT * MEMORY BOUNDS, SYSTEM COMMON, AND DEFINES THE * CORE-RESIDENT LIBRARY ROUTINES FOR THE TARGET RTS * 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. * ************************************************************************ * LOADR JMP BEGIN SET ENTRY POINT AT 100 BSS 4 DEF LOEND SET UP LOC 105B WITH LAST WRD USED BSS 2 BEGIN NOP START UP LOADER LDA ABJMP SET UP LOC 100 FOR STA LOADR SUBSEQUENT STARTUPS LIA 1 GET SSW CONTENTS SSA,RSS IF BIT 15 IS CLA NOT SET, ASR33=0 STA ASR33 SET, ASR33 = NON-ZERO LDA 106B GET LAST WORD OF FREE MEMORY STA OPT.3 SAVE STA LTEMP LDA M1020 ZERO BASE PAGE LINK TABLE STA CNTR LDB BPAG4 GET ADDRESS OF THE LINK TABLE CLA STA B,I INB ISZ CNTR JMP *-3 STA PNAME STA ?XFER CLEAR "HAVE MAIN" FLAG STA LOCC STA BPLOC STA COML INITIALIZE "COMMON USED " FLAG STA LST INITIALIZE SYM TAB LENGTH LDA LISTO RESET THE BIT TO OUTPUT MAP AND B7 HEADING (BIT # 3), BUT KEEP STA LISTO BITS 0-2. JSB LTG PUNCH LEADER. LDB ONMSG PRINT MESSAGE JSB DIAG "LOADER STARTED" JSB PRCMD PROCESS LOADER COMMANDS JMP RESET RETURN HERE AFTER ABORT LDA PRCMD NORMAL RETURN ADA M1 SET UP PRCMD TO ALLOW STA PRCMD RESTART AT LOC 100 AS WELL AS RUN BUTTON LDA LOCC SZA,RSS IF NO MODULES RELOCATED, JMP NOINP DONT OUTPUT SPECIAL RECORDS LDA B2 STA ABRC1 STORE ADDRESS OF TIE-OFF RECORDS DLD PNAME GET PROGRAM NAME JSB TYOFF PUNCH 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 DLD PRAMS+4 ADA MD24 24-COMPLEMENT HOURS ADB MD60 60-COMPLEMENT MINUTES JSB TYOFF OUTPUT HOURS AND MINUTES DLD PRAMS+6 GET SECONDS & TENS OF MSECS ADA MD60 60-COMPLEMENT SECS ADB M100 100-COMPLEMENT T.MSECS JSB TYOFF OUTPUT SECONDS AND TENS OF MILLISECONDS 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 LDA JMP3 LDB ?XFER GET TRANSFER ADDRESS JSB TYOFF JSB LTG NOINP HLT 77B RESET LDA LTEMP STA 106B JMP BEGIN RESTART SPC 1 ABJMP JMP ABORT JMP3 JMP 3,I LTEMP NOP M1020 DEC -1020 LENGTH OF BP LINKS TABLE(EXCL.LOC 0-4) M100 DEC -100 M1 DEC -1 PNAMA DEF PNAME PNAME REP 3 PROGRAM NAME NOP BSS 3 MODULE LENGTHS FOR MAIN PRAMS DEC 3 DEFAULT TYPE DEC 99 DEFAULT PRIORITY REP 6 DEFAULT OTHER PARAMS NOP SPC 2 TYOFF NOP PUNCH TWO-WORD TIE-OFF RECORD JSB PACK WORD 1 FROM (A) LDA B WORD 2 FROM (B) JSB PACK JSB PUNCH JMP TYOFF,I ONMSG DEF *+1 DEC 14 ASC 7,LOADER STARTED * SPC 2 END LOADR