ASMB,R,L NAM CONFG,3 91711-16203 REV.2001 791102 EXT EXEC,$LIBR,$LIBX B EQU 1 * * * THIS IS THE RTE-M1 START UP PROGRAM * * IT ALTERS THE SYSTEM TABLES FOR THE CORRECT * CONSOLE AND DIAGNOSTIC TARGET DEVICE * SELECT CODES AS FOUND IN THE SWITCH REGISTER * (0-5)= CONSOLE , TARGET DEV =(6-11). * * WHEN EVERYTHING IS READY TO GO, THE DIAGNOSTIC * PROGRAM IS SCHEDULED. IF THE DIAGNOSTIC PROGRAM * TERMINATES,THIS PROGRAM CONTINUES. CONFG NOP JSB $LIBR TURN INTERUPT SYSTEM OFF NOP LIA 1 GET CONSOLE & TARGET DEVICE S.C. ALSO AND B77 MASK FOR CONSOLE ONLY STA CONSL SAVE IT IN CONSL LIA 1 GET THE SAME WORD AGAIN AND MSK2 MASK FOR TARGET DEVICE THIS TIME CLB RIGHT JUSTIFY IT LSR 6 STA DEVSC SAVE IT IN DEVSC * * NOW FIX TABLES (EQT,INT,DRT) FOR WHERE CONSOLE * ACTUALLY IS AND WHAT DRIVER IT NEEDS * * RR JSB FIXC FIX CONSOLE LDA DEVSC ANY DEVICE S.C. ENTERED? SZA JSB FDEV YES JSB $LIBX TURN INT SYS BACK ON DEF *+1 DEF *+1 * NOW * * RUN DIAGNOSTIC * * JSB SON SCHEDULE DIAG. FATHER-SON * JSB EXEC TERMINATE PROGRAM DEF *+3 DEF D6 DEF ZERO NOP D6 DEC 6 ZERO NOP * PROGRAM CONSTANTS * CONSL NOP CONSOLE S.C. FLAG NOP NON-ZERO IF CONSOLE S.C. <10 OR >77 EQT OCT 1650 BASE PAGE POINTER TO EQT TABLE DRT OCT 1652 BASE PAGE POINTER TO DRT TABLE INT OCT 1654 BASE PAGE POINTER TO INTERUPT TABLE B22 OCT 22 MSK1 OCT 177700 B77 OCT 77 MSK2 OCT 7700 DEVSC NOP DIAGNOSTIC TARGET DEVICE S.C. * * * NOP SKP SON NOP * * PROGRAM "SON" SCHEDULES THE DIAGNOSTIC OR VERIFICATION * PROGRAM WITH A FATHER-SON RELATIONSHIP. * WHEN THE PROGRAM TERMINATES IT WILL RETURN HERE * JSB EXEC SCHEDULE PROGRAM DEF RTN WHERE TO RETURN TO DEF ICODE SCHEDULE WITHOUT WAIT DEF NAME PROGRAM NAME DEF IPRM1 1ST PARAMETER TO PASS DEF IPRM2 2ND " " " * DEF IPRM3 3RD * DEF IPRM4 4TH * DEF IPRM5 5TH * * RTN JMP SON,I RETURN TO CONFG * * ICODE DEC 9 NAME ASC 3,DIAG PROGRAM TO BE SCHEDULED IPRM1 OCT 1 LOG LU IPRM2 OCT 2 TEST LU *IPRM3 *IPRM4 *IPRM5 * * SKP FDEV NOP * * * FIX EQT,INTERUPT TABLES FOR CORRECT S.C. ON EQT3,LU4 * * NOP LDB EQT,I GET ADDRESS OF EQT1 WD1 ADB D33 OFFSET FOR EQT3 WD4 LDA B,I GET THE CONTENTS AND MSK1 MASK OFF THE S.C. ADA DEVSC ADD NEW S.C. STA B,I PUT IT BACK * * FIX INT TABLE * NOP LDB INT,I ADDRESS OF S.C. 6 INT. TABLE ADB B2 OFFSET FOR S.C. 10 ADB DEVSC OFFSET FOR DEVICE S.C. +10 ADB MB10 BACK OFF TO CORRECT INT ENTRY LDA EQT,I GET ADDRESS OF EQT1 WD1 ADA F5 OFFSET FOR EQT3 WD1 STA B,I PUT IT IN THERE * * NOP JMP FDEV,I F5 DEC 30 D33 DEC 33 SKP FIXC NOP * * * THIS SUBROUTINE FINDS OUT WHAT KIND OF CONSOLE * IS AT THE GIVEN SELECT CODE AND THEN ALTERS * THE EQT,DRT AND INT TABLES FOR THAT DRIVER * AND SELECT CODE * * NOP CLA OTA 1 CLEAR S.R. * * CHECK FOR CORRECT S.C. BOUNDS * LDA CONSL GET CONSOLE S.C. ADA MB10 <10 ? SSA,RSS JMP AA NO, GO AROUND * STA FLAG YES, SET FLAG <=> 0 JMP FIXC,I EXIT * AA LDA CONSL GET CONSOLE S.C. ADA MB1C >77 ? SSA JMP BB NO, GO AROUND * STA FLAG YES, SET FLAG <=> 0 JMP FIXC,I EXIT * * RECONFIGURE TEST I/O INSTRUCTIONS * FOR THE CORRECT S.C. * BB LDA CN1 ADA CONSL STA CN1 LDA CN2 ADA CONSL STA CN2 LDA CN3 ADA CONSL STA CN3 LDA CN4 ADA CONSL STA CN4 LDA CN5 ADA CONSL STA CN5 NOP * * EXECUTE TEST I/O INSTRUCTIONS * LDA MRSET CN1 CLF 0 CN2 OTA 0 CN3 SFS 0 IS THIS A DVR00 CONSOLE ? * JMP SKP YES , MAKE NO DRT TBL CHANGE * DVR05 LDB DRT,I NO, CHANGE DRT TBL FOR LU1 = EQT2 LDA B,I AND .3700 MASK OFF EQT REFERENCE ADA D2 ADJUST TO EQT 2 STA B,I PUT IT BACK * LDA D5 SAVE CONSOLE DRIVER TYPE STA CNDVR * SKP LDA C120K CLEAN UP CONSOLE INTF. CN4 OTA 0,C CN5 STC 0,C * * NOW PLACE CORRECT CONSOLE S.C. IN EQT TABLE * NOP LDA CNDVR GET CONSOLE DRIVER TYPE SZA,RSS DVR00 CONSOLE? JMP D00 YES * LDA B22 NO, SET OFFSET TO 22B STA TEMP LDA EQT,I GET ADDRESS OF EQT1 WD1 ADA B17 OFFSET TO EQT2 WD1 STA TEMP2 SAVE IN TEMP2 FOR LATER JMP II * D00 LDA B3 SET OFFSET TO WD4 STA TEMP SAVE IT LDA EQT,I GET ADDRESS OF EQT1 WD1 STA TEMP2 SAVE IT * * * PLACE ADDRESS OF SYS. CONSOLE EQT WD1 INTO * BASE PAGE LOCATION 1675B * II LDB SCON GET ADDRESS LDA TEMP2 GET WD1 ADDRESS OF PROPER EQT STA B,I PUT IT IN * * LDB EQT,I GET ADDRESS OF EQT1 WD1 ADB TEMP OFFSET BY TEMP (22 OR 3) * TO WD4 OF CORRECT EQT LDA B,I PICK OUT WD4 AND MSK1 MASK OFF S.C. ADA CONSL ADD NEW S.C. STA B,I PUT IT BACK * * NOW CHANGE INT TABLE * NOP LDB INT,I GET ADDRESS OF S.C. 6 INT. TBL ADB B2 OFFSET FOR S.C. 10 ADB CONSL OFFSET FOR S.C. + 10 ADB MB10 BACK OFFSET TO S.C. * LDA TEMP2 WD1 ADDRESS OF CORRECT EQT STA B,I PUT IT INTO CORRECT INT. TBL WD * JMP GO EXIT * *CONSTANTS * MB1C OCT -100 MB10 OCT -10 MRSET OCT 150077 .3700 OCT 3700 D2 OCT 2 C120K OCT 120001 CNDVR NOP CONSOLE DRIVER TYPE D5 OCT 5 SCON OCT 1675 SYS CON. BASE PG POINTER B17 OCT 17 B2 OCT 2 TEMP NOP B3 OCT 3 TEMP2 NOP * * GO JMP FIXC,I EXIT END CONFG