ASMB,R,L,C RTMGN HED RTMGN RTM SYSTEM GENERATOR NAM RTMGN,3,90 92064-16022 REV.2026 800326 ************************************************** * * NAME: RTM GENERATOR MAIN CONTROL * PROGRAMMER: MIKE SCHOENDORF * DATE OF ORIGINAL ISSUE: OCTOBER 13, 1976 * * SOURCE: 92064-18120 * RELOCATEABLE: 92064-16022 ************************************************** A EQU 0 B EQU 1 ***************** - HIGH CORE - ****************** * * * - IDENTS - * * * ************************************************** * - FIXUP TABLES - * * ---------- * * * * * * ------- * * - LST - * ************************************************** * * * * * PROGRAM LOADING CONTROL * * * * * ************************************************** * * * * I/O TABLE GENERATION * * * * ************************************************** * * * * * PARAMETER INPUT * * * * * ************************************************** * * * SKP * * * * * * RTMGN PROGRAM TABLE FORMAT (IDENTS) * * WORD 1: IP1 - NAME 1,2 * WORD 2: IP2 - NAME 3,4 * WORD 3: IP3 - NAME 5,SC * * SC = 0 PROGRAM HAS BEEN LOADED * = XX (OCTAL) INT PRG * * * 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 ADDRS,ABRT1,BPAGA,BPLOC,CLBPL,CLFL2,CONSO,CRTIN EXT DCB2,EKHOS,ENTPT,ERROR,EXEC6 EXT FIXUP,FUT1,FUT4,FUTI,FUTS,KONSO EXT IDCB1,INACT,LDGEN,LENGT,LGUNT EXT LNKDR,LOCC,LST,LSTUL,LST1,LST4 EXT LST5,MAPS,.MEM1,.MEM2 EXT .MEM3,.MEM4,.MEM5,.MEM6,OPT.3 EXT PLK,PLK4,PLKS,PRCMD,PRINT EXT RDFL1,SSTBL,TIMES,TYPRO EXT UEXFL,UNDEF,?XFER,ZPRIV,ZRENT * ENT PNAME,PNAMA,PRAMS * * * * * .MEM. TABLE DEFINITIONS * * .MEM1 = FWABP * .MEM2 = LWABP * .MEM3 = FWAM * .MEM4 = LWAM * .MEM5 = FWAC * .MEM6 = LWAC * * * * 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 * * THE SPACE SUBROUTINE IS USED TO SPACE UP THE TELEPRINTER. * * CALLING SEQUENCE: * A = IGNORED * B = IGNORED * JSB SPACE * * RETURN: CONTENTS OF A AND B ARE DESTROYED. * SPACE NOP CLA STA FTIME CLEAR FIRST TIME THRU FLAG LDB ZBUFF OUTPUT BLANK LINE CLA,INA JSB PRIN1 JMP SPACE,I RETURN * ZBUFF DEF *+1 ASC 1,* FTIME NOP FIRST TIME THRU FLAG SKP * * ROUTINE TO RESERVE AND SET CORE ON THE * LOADER PRODUCED ABSOLUTE OUTPUT. * * CALLING SEQUENCE: * A = FINAL STARTING ADDRES * B = FINAL ENDING ADDRESS * * SETAD = ADDRESS OF THE OUTPUT DATA BUFFER * * JSB SETCR * * RETURN: A AND B ARE DESTROYED * SETCR NOP STA TEMP1 CMA,INA ADA ALBUF BUFFER ADDRESS STA PLKS OFFSET ADDRESS LDA TEMP1 STARTING ADDRESS STA PLK4 JSB PLK OUTPUT ROUTINE IN THE LOADER JMP SETCR,I * ALBUF DEF LBUF LBUF BSS 64 * * * SUBROUTINE TO DETERMINE IF ANSWER IS YES OR NO * MAYBE NOP JSB READ PRINT MESSAGE, GET REPLY LDA N2 GET FIRST TWO ASCII CHARACTERS JSB GETNA CCB CPA NO NO? CLB YES CPA YE YES? CLB,INB YES SSB,RSS ISZ MAYBE SSB JSB INERR PARMETER ERROR JMP MAYBE,I * NO ASC 1,NO YE ASC 1,YE SKP * * * * THE BUFCL SUBROUTINE STUFFS A 64 WORD BUFFER WITH CALL+1 * * CALLING SEQUENCE: * A = IGNORED * B = ADDRESS OF BUFFER * JSB BUFCL * CALL+1 = DATA TO BE STUFFED * * RETURN: CONTENTS OF A AND B ARE DESTROYED. * BUFCL NOP LDB ALBUF LDA N64 STA WDCNT SET BUFFER LENGTH = 64 LDA BUFCL,I GET STUFF DATA STA B,I CLEAR BUFFER WORD INB ISZ WDCNT ALL WORDS CLEAR? JMP *-3 NO - CONTINUE CLEARING ISZ BUFCL JMP BUFCL,I RETURN * N64 DEC -64 WDCNT NOP TEMPORARY WORD COUNTER SPC 5 * * SUBROUTINE TO CLEAR THE OUTPUT BUFFER * BUFC NOP JSB BUFCL OCT 0 JMP BUFC,I SKP * * ROUTINE TO COMPARE TWO NAME BUFFERS * * * CALLING SEQUENCE: * A = ADDRESS OF SOURCE NAME- 3 ENTRIES * B = ADDRESS OF TABLE 3 ENTRIES * JSB NACMP * * RETURN: A AND B ARE DESTROYED * (N+1) NAMES DO NOT COMPARE * (N+2) NAMES COMPARE * NACMP NOP STA TEMP1 SAVE SOURCE ADDRESS STB TEMP2 SAVE TABLE ADDRESS LDA N2 LOOP COUNT STA TEMP3 NACM1 LDA TEMP1,I SOURCE ENTRY CPA TEMP2,I TABLE COMPARE RSS YES,COMPARE, LOOK NEXT JMP NACMP,I NO IT DOESN'T RETURN ISZ TEMP1 BUMP SOURCE ISZ TEMP2 BUMP TABLE ISZ TEMP3 JMP NACM1 TRY AGAIN LDA TEMP2,I FIRST TWO COMPARE, LOOK LAST AND M400 LOOK UPPER ONLY STA B LDA TEMP1,I AND M400 CPA B ISZ NACMP BUMP RETURN FOR COMPARE! JMP NACMP,I * M400 OCT -400 TEMP1 NOP TEMP2 NOP TEMP3 NOP LWAM NOP * * HED ** SYSTEM BASE PAGE COMMUNICATION AREA ** *** SYSTEM BASE PAGE COMMUNICATION AREA *** * * * SYSTEM TABLE DEFINITION * * . EQU 1650B XI DEF .-1 ADDRESS OF INDEX REGISTER SAVE AREA EQTA DEF .+0 FWA OF EQUIPMENT TABLE INTLG DEF .+5 # OF INTERRUPT TABLE ENTRIES KEYWD DEF .+7 FWA OF KEYWORD BLOCK TBG DEF .+20 I/O ADDRESS OF TIME-BASE CARD SYSTY DEF .+21 EQT ENTRY ADDRESS OF SESSION CONSOLE * * DEFINITION OF SYSTEM LISTS (QUEUES) * * SKEDD DEF .+33 'SCHEDULE' LIST, * * DEFINITION OF MEMORY ALLOCATION BASES * * DUMMY DEF .+55 I/O ADDRESS OF DUMMY INT. CARD BPA1 DEF .+58 FWA USER BP LINK AREA LBORG DEF .+61 FWA OF RESIDENT LIBRARY AREA RTORG DEF .+62 FWA OF REAL-TIME COMMON RTCOM DEF .+63 LENGTH OF REAL TIME COMMON AREA AVMEM DEF .+65 LWA+1 MEMORY REAL TIME PARTITION BGORG DEF .+66 FWA OF BACKGROUND COMMON * * UTILITY PARAMETERS * BGLWA DEF .+87 LWA MEMORY BACKGROUND PARTITION BPCLR DEF .+43 HED RTMGN INITIALIZATION * * INITIAL TRANSFER IS MADE TO RTMGN BY INPUTTING * "ON,RTMGN,FI,LE,NM,E", WHERE "FILENM" IS THE INPUT * FILE NAME. IF NO FILE NAME, THE FIRST PARAMETER IS * THE LU OF THE INPUT. NO PARAMETERS 2 AND 3. PARA- * METER 4 IS THE ERROR LOG DEVICE LU. * * * THE FOLLOWING MESSAGES ARE PRINTED DURING THE INITIALIZATION * PHASE, WITH THE SPECIFICATIONS FOR EACH VALID RESONSE. * * * MESSAGE RESPONSE * * DEFINE OUTPUT DEVICES ENTER DEVICE LU, OR FILE NAME * FOR OUTPUT AND ECHO * * TYPE OF SYSTEM? ENTER 1 OCTAL DIGIT * * TBG CHNL? ENTER 2 OCTAL DIGITS * * PRIV. INT? ENTER 2 OCTAL DIGITS * * MEM SIZE? ENTER UP TO 3 DECIMAL DIGITS * * LWAM? ENTER UP TO 5 OCTAL DIGITS * * PRIV. DRIV. ACC. COM? ENTER YES OR NO * * FWA BP? ENTER UP TO 4 OCTAL DIGITS * * * RTMGN CLA GENERATOR CALLING STA KONSO STA LDGEN JSB LGUNT GET LOGICAL UNIT NUMBERS LDA OPT.3 STA LWAM CCA SET LINK DIRECTION FLAG STA LNKDR TO SYSTEM LINKS LDA P7 LDB MES01 RTMGN JSB PRIN2 PRINT MESSAGE * * DEFINE OUTPUT DEVICES * JSB SPACE NEW LINE OTPUT JSB INTER INTERACTIVE INPUT LDA P23 LDB MES31 DEFINE OUTPUT DEVICES JSB PRIN1 JSB PRCMD CALL LOADER SUBCONTROL JMP OTPUT ERROR, REPEAT INPUT * * SET TYPE OF SYSTEM * JSB SPACE NEW LINE TPSYS JSB INTER INTERACTIVE INPUT LDA P17 LDB MES14 TYPE OF SYSTEM? JSB READ PRINT MESSAGE, GET REPLY CLA,INA SET FOR 1 OCTAL DIGIT INPUT JSB DOCON GET DIGIT JMP TPSYS REPEAT INPUT STA SYSTM SAVE SYSTEM TYPE SZA,RSS MUST BE EITHER A 1, 2, OR 3 JMP ERRP1 INVALID PARAMETER CMA,INA ADA P3 SSA,RSS JMP TBG1 VALID PARAMETER ERRP1 JSB INERR ERROR JMP TPSYS REPEAT INPUT * * SET TIME BASE GENERATOR CHANNEL * TBG1 JSB SPACE NEW LINE CHNLT JSB INTER INTERACTIVE INPUT LDA P11 LDB MES30 TBG CHNL? JSB READ PRINT MESSAGE, GET REPLY LDA P2 SET FOR 2 OCTAL DIGITS INPUT JSB DOCON GET DIGITS, RETURN OCTAL JMP CHNLT REPEAT INPUT STA TBCHN SET TBG CHANNEL NO. * * GET PRIV. INT. CARD ADDR. * JSB SPACE NEW LINE DUMY JSB INTER INTERACTIVE INPUT LDA P12 LDB MES41 PRIV. INT? JSB READ PRINT MESSAGE, GET REPLY LDA P2 SET FOR 2 OCTAL DIGITS INPUT JSB DOCON GET DIGITS JMP DUMY ERROR, REPEAT INPUT STA PIOC SET ADDR. OF DUMMY CARD. * * DETERMINE IF PRIV. DRIVERS ACCESS COMMON * LDA SYSTM GET SYSTEM TYPE CPA P3 RTE-M-III? RSS JMP LWSAM NO JSB SPACE NEW LINE PRCOM JSB INTER INTERACTIVE INPUT LDA P30 LDB MES15 PRIV. DRIVERS ACCESS COMMON? JSB MAYBE JMP PRCOM ERROR, REPEAT INPUT STB PCOM SAVE IF PRIV. DIRVERS ACCESS COMMON * * SET MEMORY SIZE * JSB SPACE NEW LINE MEMSZ JSB INTER LDA P11 LDB MES16 MEM SIZE? JSB READ PRINT MESSAGE, GET REPLY LDA N3 SET FOR 3 DECIMAL DIGITS INPUT JSB DOCON GET DIGITS JMP MEMSZ ERROR, REPEAT INPUT STA MSIZE SAVE MEMORY SIZE JMP FWENT-1 * * SET LAST WORD OF AVAILABLE MEMORY * LWSAM JSB SPACE NEW LINE JSB INTER INTERACTIVE INPUT LDA P7 LDB MES24 LWAM? JSB READ PRINT MESSAGE, GET REPLY LDA P5 SET FOR 5 OCTAL DIGITS JSB DOCON GET DIGITS JMP LWSAM+1 ERROR, REPEAT INPUT CPA UDFE =77777? ADA N1 YES STA .MEM4 LWAM STA LWSA1 LAST WORD SAM SKP * * SET FWABP LINKAGE * JSB SPACE NEW LINE FWENT JSB INTER INTERACTIVE INPUT LDA P9 LDB MES27 FWA BP? JSB READ PRINT MESSAGE, GET REPLY LDA P4 JSB DOCON GET 4 OCTAL DIGITS, CONVERT JMP FWENT ERROR, REPEAT INPUT STA .MEM1 SAVE FWA BP SZA VALID (NON-ZERO) FWA BP SSA JMP FWERR ADA N8 SSA JMP FWERR CMA,INA ADA B1636 SSA,RSS JMP FWEN1 FWERR JSB INERR INVALID PARAMETER FWABP=0 JMP FWENT REPEAT FWABP LINKAGE INPUT FWEN1 LDA .MEM1 ADA N1 STA LWABP SAVE FOR INT PROCESSOR JSB SPACE NEW LINE JMP CLBUF SKP * B1636 OCT 1636 N1 DEC -1 N3 DEC -3 P2 DEC 2 P3 DEC 3 P4 DEC 4 P7 DEC 7 P9 DEC 9 P10 DEC 10 P17 DEC 17 P23 DEC 23 P32 DEC 32 * LWABP NOP LWSA1 NOP MSIZE NOP MEMORY SIZE OCTNO NOP OCTAL DIGIT PCOM NOP PRIV. DRIVERS ACCESS COMMON PIOC NOP ADDR. OF PRIV. I/O CARD SYSTM NOP SYSTEM TYPE TBCHN NOP TIME BASE GENERATOR CHANNEL * MES01 DEF *+1 ASC 4,* RTMGN MES14 DEF *+1 ASC 9,* TYPE OF SYSTEM? MES15 DEF *+1 ASC 15,* PRIV. DRIVERS ACCESS COMMON? MES16 DEF *+1 ASC 6,* MEM SIZE? MES24 DEF *+1 ASC 4,* LWAM? MES27 DEF *+1 ASC 5,* FWA BP? MES30 DEF *+1 ASC 6,* TBG CHNL? MES31 DEF *+1 ASC 12,* DEFINE OUTPUT DEVICES MES41 DEF *+1 ASC 6,* PRIV. INT? * * SKP CLBUF JSB BUFC CLEAR BUFFER TO OCTAL ZEROS LDA XI START ADDR OF AREA TO BE CLEARED LDB BPCLR END ADDRESS JSB SETCR CLEAR LOWER HALF LDA BPCLR LDB BGLWA JSB SETCR CLEAR UPPER HALF * LDA P1 .PRESET MEMORY PROTECT FLAG LDB B1770 . FOR FIRST INTERRUPT JSB STCR1 * LDA PIOC PRIV INT CARD ADD LDB DUMMY JSB STCR1 * * * 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 PU IN LST LDA UDFE STA LST4,I SET TO UNDEFINED ISZ UNDEF DON'T OUTPUT AS UNDEF SKP * * 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 SET BUFFER FOR ENTRY CALL JSB ENTPT SET ENTRY POINT IN LST CLA STA FTIME 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 SKP * * RELOCATE SYSTEM MODULES * LDA LST SET LST TABLE TO PROPER # OF ENTRIES STA LSTSV JSB SPACE NEW LINE JSB INTER INTERACTIVE INPUT LDA P14 LDB MES02 REL SYS MODS JSB RELOC RELOCATE SYSTEM MODULES DEC 1 MODULE TYPE NEEDED JMP ABRT1 ERROR FROM LOADER, EXIT LDA UNDEF WERE THERE ANY UNDEFINED? CMA,INA ADA UEXFL SZA,RSS JMP REL1 NO CONTINUE RELSE LDA AD YES JSB ERRER ERROR JMP ABRT1 EXIT REL1 LDB A$STR JSB SSTBL WAS $STRT LOADED? JMP RELSE NO, ERROR, LDA LST4,I YES, GET STARTING ADDRESS STA STRAD SAVE IT FOR CLEAN-UP AT END OF RTMGN LDB A$CIC $CIC NAME JSB SSTBL WAS $CIC LOADED? JMP RELSE NO, ERROR, START OVER LDA LST4,I BUILD A BP LINK FOR $CIC LDB .MEM2 FOR $CIC STB A$CIA SAVE FOR JSB INSTRUCTION STB LST5,I JSB STCR1 CCA ADA .MEM2 BUMP TO NEXT LINK STA .MEM2 JMP TBGEN YES, GO BUILD I/O TABLES * * ERRER NOP CLB JSB ERROR CALL ERROR SUBROUTINE JMP ERRER,I SKP * A$CIA NOP ADDRESS OF $CIC ROUTINE A$CIC DEF *+1 ASC 3,$CIC A$STR DEF *+1 ASC 3,$STRT ATBUF DEF TBUF TBUF BSS 5 * MES02 DEF *+1 ASC 7,* REL SYS MODS MES17 DEF *+1 ASC 7,* CHANGE ENTS? * AB ASC 1,AB AD ASC 1,AD INVALID ENTRY POINT IN INT REC D ASC 1,D RP ASC 1,RP * P6 DEC 6 P12 DEC 12 B1777 OCT 1777 B1770 OCT 1770 BBLNK OCT 20040 UDFE OCT 77777 * BLANK EQU P32 * CHRCT NOP CMFLG NOP COMMA FLAG = -1/0 = NOT IN/IN LSTSV NOP LST COUNT SAVE FOR REL UPDATE STRAD NOP $STRT START ADDRESS * SKP * * THE DOCON SUBROUTINE ANALYZES THE INPUT FOR THE * CHANNEL NO., TBG CHANNEL NO., AND LAST * WORD OF AVAILABLE MEMORY. * * CALLING SEQUENCE: * A = MAX NO. OF CHARACTERS PERMITTED IN RESPONSE. * THE SIGN OF A DETERMINES THE CONVERSION FROM * ASCII TO OCTAL (POS.) OR DECIMAL (NEG.). * B = IGNORED * JSB DOCON * * RETURN: * (N+1): CONTENTS OF A AND B ARE DESTROYED. AN INVALID * CHARACTER HAS BEEN DETECTED IN THE RESPONSE, OR * THE RESPONSE CONTAINS AN INVALID NO. CHARACTERS. * THE MESSAGE IS TO BE REPEATED ON RETURN. * (N+2): A = CONVERTED RESULT * DOCON NOP JSB GETOC GET OCTAL/DECIMAL, RETURN OCTAL JMP *+4 INVALID DIGIT JSB GETAL GET NEXT CHAR FROM LBUF CPA ZERO CHAR = ZERO? (END OF BUFFER) JMP *+3 YES - CONTINUE JSB INERR INVALID DIGIT ENTRY JMP DOCON,I RETURN ISZ DOCON INCR RETURN ADDRESS LDA OCTNO GET CONVERTED NUMBER JMP DOCON,I RETURN * ZERO DEC 0 SKP * * SUBROUTINE TO RELOCATE ALL MODULES (SYSTEM AND USER PROGRAMS). * * CALLING SEQUENCE: * * A = MESSAGE LENGTH * B = MESSAGE ADDRESS * JSB RELOC * * RETURN: * (N+1): CONTENTS OF A AND B ARE DESTROYED. LOADER * WAS NOT ABLE TO RELOCATE MODULE (ERROR EXIT). * (N+2): CONTENTS OF A AND B DESTROYED. LOADER RELOCATION * WORKED. * * RELOC NOP JSB PRIN1 PRINT MESSAGE LDA P2 STA ?XFER NON-ZERO TO LOAD MODULES JSB CLBPL CLEAR BASE PAGE LINKS STA PNAME CLEAR NAME FLAG STA LOCC CLEAR LOCC IN LOADER STA BPLOC SAME FOR BPLOC STA OPT.3,I CLEAR FIXUP TABLE LENGTH LDA LST,I SAVE LST LENGTH STA LSTCT LDA LSTSV RESTORE SYMBOL TABLE COUNT STA LST IN THE LOADER LDA RELOC,I GET MODULE TYPE STA TYPRO SAVE FOR LOADER SUB CONTROL SZA,RSS STA ?XFER ISZ RELOC SET RETURN ADDRESS JSB PRCMD GO RELOCATE MODULES JMP RELOC,I ERROR EXIT LDA .MEM2 SAVE LWABP STA BPFIX LDB LNKDR GET LINK DIRECTION FLAG CPB P1 USER LINKS ? JMP REL02 YES LDA LOCC UPDATE FWAM SZA,RSS LDA .MEM3 STA .MEM3 LDA BPLOC UPDATE FWABP SZA STA .MEM2 SYSTEM LINKS, UPDATE LWABP LDA LST STA LSTSV SAVE FOR RELOCATION ERROR REL03 ISZ RELOC JMP RELOC,I * REL02 LDA LSTCT RESTORE LST LENGTH STA LST,I JMP REL03 * BPFIX NOP LWABP TEMP STORE LSTCT NOP LST LENGTH SKP * * SUBROUTINE TO RESERVE AND SET CORE * * CALLING SEQUENCE: * A = DATA TO BE OUTPUT * B = ADDRESS OF DATA * JSB STCR1 * * RETURN: * A = DATA WORD OUTPUTTED * STCR1 NOP STA LBUF SAVE DATA TO BE OUTPUT LDA 1 SET A REG TO ADDRESS JSB SETCR GO OUTPUT IT LDA LBUF GET DATA JMP STCR1,I SPC 5 * SUBROUTINE TO OUTPUT MESSAGE * PRIN2 NOP JSB PRINT GO OUTPUT MESSAGE LDA LENGT LDB ADDRS JSB EKHOS GO ECHO IF NEEDED JMP PRIN2,I * * * SUBROUTINE TO OUTPUT MESSAGE ONLY IF ECHO, INTERACTIVE * INPUT, OR SESSION CONSOLE NEEDED OR USED. * * PRIN1 NOP STA LENGT MESSAGE LENGTH LDA CONSO OUTPUT TO SESSION CONSOLE? SZA JMP PRINA YES LDA INACT INTERACTIVE INPUT? SZA JMP PRINA YES LDA READX OUTPUT TO SESSION CONSOLE? SZA,RSS JMP PRINB NO, JUST ECHO IF NEEDED PRINA LDA LENGT JSB PRINT GO OUTPUT MESSAGE LDB ADDRS PRINB LDA LENGT JSB EKHOS GO ECHO IF NEEDED JMP PRIN1,I SKP * * THE INERR SUBROUTINE PRINTS THE DIAGNOSTIC FOR INVALID * RESPONSES DURING THE INITIALIZATION SECTION. * * CALLING SEQUENCE: * A = IGNORED * B = IGNORED * JSB INERR * * RETURN: CONTENTS OF A AND B ARE DESTROYED. * INERR NOP LDA PA SET INVALID DEVICE ERROR CODE JSB ERRER PRINT ERROR MESSAGE JMP INERR,I RETURN * PA ASC 1,PA PARAMETER ERROR SPC 5 * P24 DEC 24 P27 DEC 27 * MES20 DEF *+1 ASC 10,* # OF I/O CLASSES? MES21 DEF *+1 ASC 12,* # OF RESOURCE NUMBERS? MES22 DEF *+1 ASC 14,* BUFFER LIMITS (LOW,HIGH)? D$CLS DEF $CLS $CLS ASC 3,$CLAS D$RNT DEF $RNTB $RNTB ASC 3,$RNTB * $BLLO ASC 3,$BLLO $BLHI ASC 3,$BLUP