* * * TEST SECTION 3 * * * * LOADS MICROPROGRAMS AND EXECUTES THEM * TST03 EQU * TEST3 NOP LDA TEST ARM MESSAGE JSB TMSG H030 LDA TRSS ARM RSS STA T.JMP INSTRUCTION LDA MACH1 IS THIS SZA,RSS A 2100? JMP T.450 NO,JUMP TO 21XX TESTING LDA MOD YES,IS MODULE CPA B1 1 BEING USED? JMP T.400 YES,GET MODULE 1 MACROS CPA B2 NO,IS MODULE 2 BEING USED? JMP T.401 YES,GET MODULE 2 MACROS JSB CMOD3 NO,FORM MOD #3 MICROCODE LDA MAC3 GET MODULE 3 MACROS T.402 EQU * STA MAC01 FORM MACRO TO CALL TSTM1 MICRO ADA B20 STA MAC02 FORM MACRO TO CALL TSTM2 MICRO ADA B20 STA MAC03 FORM MACRO TO CALL TSTM3 MICRO STA TMAC3 SAVE IT JMP T.403 T.400 EQU * LDA MAC1 LOAD A WITH MOD1 MACRO JMP T.402 T.401 EQU * JSB CMOD2 FORM MOD #2 MICROCODE LDA MAC2 LOAD A WITH MOD2 MACRO JMP T.402 T.403 EQU * JSB L2100 LOAD MICROCODE FOR 2100 STP17 JSB SSTEP STEP 17 CCA SET A & B CCB TO ALL 1'S STA TEMP7 SAVE AS EXPECTED STA TEMP8 A & B REGISTERS MAC01 NOP CALL TSTM1 TO TEST MICROJUMP CPA ONES IS A OK? RSS YES JMP T.404 NO,GO REPORT E007 CPB ONES IS B OK? JMP T.405 YES GO TO NEXT STEP T.404 EQU * STA TEMPA NO,SAVE A & B STB TEMPB FOR E007 LDA MAC01 SAVE STA BMAC MACRO JSB ER007 GO REPORT E007 T.405 EQU * STP20 JSB CSTEP STEP 20 LDA ZERO FORM EXPECTED STA TEMP7 A & B REGISTERS LDB ONES STB TEMP8 CCA SET A & B CCB TO ALL 1'S MAC02 NOP CALL TSTM2 MICROPROGRAM JMP T.406 GO REPORT E005 CPA ZERO IS A OK? RSS YES JMP T.407 NO,GO REPORT E007 CPB ONES IS B OK? JMP T.408 YES,GO TO NEXT STEP T.407 EQU * STA TEMPA NO,SAVE A & B STB TEMPB FOR E007 LDA MAC02 SAVE STA BMAC MACRO JSB ER007 GO REPORT E007 JMP T.408 T.406 EQU * STA TEMPA SAVE A & B STB TEMPB FOR E005 LDA MAC02 SAVE STA BMAC MACRO JSB ER005 GO REPORT E005 T.408 EQU * STP21 JSB CSTEP STEP 21 CLA CLEAR STA TEMP4 COUNTER T.409 EQU * LDA MAC03 GET BITS 0-9 OF MACRO AND MASK9 FOR FORMING EXPECTED B REG AND ONES FORM IT STA TEMP9 SAVE IT STA TEMP8 SAVE AS EXPECTED B REG CCA SET A & B CCB TO ALL 1'S STA TEMP7 SAVE AS EXPECTED A REG MAC03 NOP CALL TSTM3 MICROPROGRAM JMP T.410 GO REPORT E005 CPA ONES IS A OK? RSS YES JMP T.411 NO,GO REPORT E007 CPB TEMP9 IS B OK? JMP T.412 YES T.411 EQU * STA TEMPA NO,SAVE A & B STB TEMPB FOR E007 LDA MAC03 SAVE STA BMAC MACRO JSB ER007 GO REPORT E007 JMP T.412 T.410 EQU * STA TEMPA SAVE A & B STB TEMPB FOR E005 LDA MAC03 SAVE STA BMAC MACRO JSB ER005 GO REPORT E005 T.412 EQU * ISZ TEMP4 IF IN STEP 22,THEN DONE? T.JMP RSS SKIP IN STEP21,JMP T.414 STEP22 JMP T.413 YES STP22 JSB CSTEP STEP 22 T.LDA LDA M4 SET STA TEMP4 COUNTER LDA TJMP ARM STA T.JMP JMP INSTRUCTION LDA TMAC3 INSURE MAC03 STA MAC03 IS CORRECT T.414 EQU * LDA MAC03 INCREMENT ADA B7 THE MACRO STA MAC03 BY 7 JMP T.409 GO DO NEW MACRO T.413 EQU * LDA LDA1A ARM LDA STA T.LDA INSTRUCTION LDA TRSS ARM STA T.JMP RSS INSTRUCTION JSB REMOD RESTORE 2100 MICROCODE JSB REMX RESTORE 2100 MICROCODE JMP TEST3,I T.450 EQU * LDA MOD FORM CMA,INA CORRECT LDB MAC0 MACRO ADB B40 FOR INA,SZA CURRENT JMP *-2 MODULE # ADB B1 STB MAC01 ADB B20 FORM STB MAC02 REMAINING ADB B7 MACROS STB MAC03 STB TMAC3 JSB CMODX FORM CURRENT MOD MICROCODE JSB L21XX LOAD MICROCODE FOR 21XX JMP STP17 TJMP JMP T.414 JMP TO T.414 INSTRUCTION HED TSTSS * * * SPECIAL TESTING ROUTINE * * * * ENTERED WHEN SWITCH REGISTER BIT 1 IS SET * DURING PROGRAM EXECUTION. ROUTINE HALTS AND * ACCEPTS INFORMATION IN THE A AND B REGISTERS. * WHEN HALTED,OPERATOR ENTERS : * * A REGISTER - (8 BIT WCS ADDRESS)(8 MSB OF MICROWORD) * * B REGISTER - (16 LSB OF MICROWORD) * * PRESS RUN. PROGRAM HANGS IN A LOOP,WRITING AND * READING THE PATTERN SPECIFIED AT THE LOCATION * SPECIFIED. LOOPING CONTINUES UNTIL SWITCH * REGISTER BIT 1 IS CLEARED. * TSTSS EQU * CLA CLEAR CLB REGISTERS HLT63 HLT 63B STA TEMP1 SAVE STB TEMP4 ENTRY SS.1 EQU * LDA TEMP1 WRITE THE LDB TEMP4 PATTERN JSB WRITE ON WCS AND MASK3 GET STA TEMP7 ADDRESS JSB READ READ WCS LOCATION LIA 1 CLEARED SW REG RAR,SLA BIT 1 YET? JMP SS.1 NO,LOOP JMP BACK,I YES,RETURN TO START HED TSTMM * * * MULTIPLE MODULE TESTING ROUTINE * * * * CONTROLS TESTING TO RUN DIAGNOSTIC ON ALL WCS * MODULES PRESENT. ENTERED WHEN SWITCH REGISTER * BIT 0 IS SET AND DIAGNOSTIC HAS COMPLETED * CURRENT PASS ON LOWEST ORDER WCS MODULE PRESENT. * WHEN HALTED,OPERATOR ENTERS : * * HALT 102060- * * A REGISTER : * * BITS 0 THRU 5 - SELECT CODE OF NEXT HIGHER ORDER * WCS MODULE PRESENT. * * BITS 6 THRU 11 - CLEARED * * BITS 12 THRU 15 - CONTROL STORE MODULE BEING USED. * * * * B REGISTER : * * BITS 0 THRU 5 - SELECT CODE OF HIGHEST ORDER * WCS MODULE PRESENT. * * BITS 6 THRU 11 - CLEARED * * BITS 12 THRU 15 - CONTROL STORE MODULE BEING USED * * IF THERE IS NO 3RD WCS MODULE AND ONLY 2 WCS MODULES * WILL BE TESTED,CLEAR THE B REGISTER. * * PRESS RUN. PROGRAM WILL PERFORM DIAGNOSTIC ON EACH * WCS MODULE PRESENT. IT WILL DO THE LOWEST ORDER WCS * MODULE,THEN NEXT HIGHER,NEXT HIGHER(IF PRESENT) AND * THEN REPORT A PASS. MULTIPLE MODULE TESTING * CONTINUES UNTIL SWITCH REGISTER BIT 0 IS CLEARED. * * NOTE** IF ONE MODULE IS MAKING ERRORS,HIGHER ORDER * MODULES MAY BE EFFECTED. * TSTMM EQU * LDA PASS IN SAME CPA SPASS PASS? JMP MM.4 YES STA SPASS NO,FIRST TIME THRU THIS PASS LDA MMFLG HAS TSTMM SZA BEEN CONFIGURED? JMP MM.3 YES LDA JBACM SET PROGRAM OPTION STA JBAC1 BIT12 FOR USE STA JBAC2 WITH TSTMM CLA CLEAR REGISTERS CLB FOR TSTMM ENTRIES HLT60 HLT 60B HALT FOR ENTRIES STA TEMP7 SAVE A REGISTER STB TEMP3 SAVE B REG AND MASK6 GET MODULE ALF # OF NEXT STA TEMP8 HIGHER ORDER WCS CMA,INA MAKE INTO -# ADA MOD IS IT HIGHER SSA,RSS THAN LOW ORDER WCS? JMP MM.8 NO,INVALID LDA TEMP3 YES,NOW AND MASK6 CHECK NEXT ALF HIGHER ORDER WCS SZA,RSS IS IT PRESENT? JMP MM.9 NO,SKIP CMA,INA ADA TEMP8 SSA OK? JMP MM.9 YES MM.8 EQU * LDA TEMP7 NO,LOAD LDB TEMP3 ENTRIES HLT54 HLT 54B JMP HLT60+1 TRY AGAIN MM.9 EQU * LDA TEMP7 JSB CONF1 GO CONFIGURE LDA MOD SAVE NEXT ORDER LDB SC WCS SELECT CODE STA SAVE6 AND CONTROL STORE STB SAVE7 MODULE # LDA TEMP3 LOAD B REG ENTRY SZA DEFAULT CASE? JMP MM.1 NO CLA YES,ONLY TWO WCS STA SAVE8 MODULES ARE PRESENT STA SAVE9 JMP MM.2 MM.1 EQU * JSB CONF1 GO CONFIGURE LDA MOD SAVE HIGH ORDER LDB SC WCS SELECT CODE STA SAVE8 AND CONTROL STORE STB SAVE9 MODULE # MM.2 EQU * CCA SET TSTMM STA MMFLG CONFIGURATION FLAG HL74 HLT 74B GOOD CONFIGURATION MM.3 EQU * LDA SAVE4 FORM UP LOW ORDER ALF,ALF WCS MODULE SELECT ALF CODE AND CONTROL IOR SAVE5 STORE MODULE # JSB CONF1 GO CONFIGURE PROGRAM JMP MM.5 MM.4 EQU * LDA MOD ARE WE ON CPA SAVE4 2ND TIME THRU? RSS YES JMP MM.6 NO LDA SAVE6 FORM UP NEXT HIGHER ALF,ALF ORDER WCS MODULE ALF SELECT CODE AND IOR SAVE7 CONTROL STORE MODULE # JSB CONF1 GO CONFIGURE PROGRAM JMP MM.5 MM.6 EQU * LDA SAVE8 THIRD TIME THRU SZA,RSS IS WCS PRESENT? JMP MM.7 NO CPA MOD COMPLETED PASS? JMP MM.7 YES ALF,ALF NO,FORM UP HIGH ORDER ALF WCS MODULE SELECT IOR SAVE9 CODE AND CONTROL STORE MOD. # JSB CONF1 GO CONFIGURE MM.5 EQU * JMP BACK,I NO,GO DO IT MM.7 EQU * LDA PP8,I PUT ASTERIX AT AND MASK2 END OF PASS MSG IOR ASTRX TO INDICATE MULTIPLE STA PP8,I MODULE TESTING PASS JMP PMRTN,I REPORT PASS HED TSTLL * * * MICROCODE LOOP ROUTINE * * * * ENTERED WHEN SWITCH REGISTER BIT 6 IS SET DURING * PROGRAM EXECUTION. SELECTS MACROINSTRUCTION WHICH * CALLS LOOP IN MICROCODE OF CURRENT CONTROL STORE * MODULE. LOOPS UNTIL SWITCH REGISTER BIT 6 IS * CLEARED. * NOTE** IF A JMP MICROINSTRUCTION WON'T WORK(IE. * STEP 17 GIVES ERRORS),THEN THE PERFORMANCE OF * THIS ROUTINE IS UNPREDICTABLE. * TSTLL EQU * LDA MACH1 IS THIS SZA A 2100? JMP LL.0 YES LDA MOD NO,FORM CMA,INA MACRO LDB MAC0 TO ADB B40 CALL INA,SZA LOOP JMP *-2 IN 21XX ADB B36 STB MAC04 JMP LL.4 LL.0 EQU * LDA MOD GET CURRENT MODULE # ADA M2 SSA IS IT 1? JMP LL.1 YES ADA M1 NO SSA IS IT 2? JMP LL.2 YES LDA MAC3 NO,MUST BE 3 LL.3 EQU * ADA B100 FORM MACRO STA MAC04 TO CALL LOOP JMP LL.4 LL.1 EQU * LDA MAC1 USE MODULE 1 MACRO JMP LL.3 LL.2 EQU * LDA MAC2 USE MODULE 2 MACRO JMP LL.3 LL.4 EQU * MAC04 NOP CALL LOOP LIA 1 GET SW REG AND BIT6 IS BIT 6 SZA STILL SET? JMP LL.4 YES JMP BACK,I NO,RETURN TO START HED REMX * * * RESTORE 21XX MICROCODE ROUTINE * * * * RESTORES MICROCODE FOR 21XX FOR USE IN MODULE #3 * * CALLING SEQUENCE : * * JSB REMX * REMX NOP LDA BBUF1 INITIALIZE STA TEMP8 POINTERS LDB PMODX RMX.1 EQU * LDA B,I RESTORE HIGH STA TEMP8,I 8 BITS INB ISZ TEMP8 LDA B,I RESTORE LOW STA TEMP8,I 16 BITS INB ISZ TEMP8 CPB EMODX DONE UNCD JMPS? RSS YES JMP RMX.1 NO LDA TEMP8 BUMP ADA B732 POINTER STA TEMP8 LDA B,I RESTORE STA TEMP8,I THE INB CNDX JMP ISZ TEMP8 LDA B,I STA TEMP8,I JMP REMX,I HED CMODX * * * CHANGE 21XX MICROCODE ROUTINE * * * * MODIFIES MICROCODE FOR 21XX FOR USE IN CURRENT * CONTROL STORE MODULE. * * CALLING SEQUENCE : * * JSB CMODX * CMODX NOP LDA PMODX INITIALIZE STA TEMP7 VARIABLES LDA B2000 CMA,INA STA TEMP9 CLA STA TEMP1 LDA BBUF1 STA TEMP8 LDA B3 CMX.5 CPA MOD GOT MODULE #? JMP CMODX,I YES,RETURN STA TEMP4 NO,STORE IT LDB TEMP1 FORM ADB B2000 CURRENT STB TEMP1 MODIFICATION LDB TEMP7 POINT TO LOW INB 16 BITS OF MICROWORD ISZ TEMP8 CMX.1 EQU * CLE CLEAR EXTEND BIT LDA B,I CHANGE ADA TEMP1 LOW 16 BITS STA TEMP8,I OF MICROWORD SEZ,RSS EXTEND BIT SET? JMP CMX.2 NO LDA TEMP8 YES ADA M1 POINT BACK STA TEMP8 TO HIGH 8 ADB M1 BITS OF MICROWORD LDA B,I CARRY OVER INA OVERFLOW STA TEMP8,I INB BUMP ISZ TEMP8 POINTERS CMX.2 EQU * INB ISZ TEMP8 CPB EMODX DONE ALL UNCD JMPS? JMP CMX.3 YES INB NO,BUMP ISZ TEMP8 POINTERS AGAIN JMP CMX.1 CMX.3 EQU * LDA B733 BUMP ADA TEMP8 POINTER STA TEMP8 TO MX375+1 INB BUMP POINTER LDA MOD NEED TO CHANGE SLA CNDX JMP? JMP CMX.0 NO LDA B,I CHANGE ADA TEMP9 MICROCODE STA TEMP8,I CMX.4 EQU * LDA BBUF1 STA TEMP8 LDA TEMP4 INA JMP CMX.5 CMX.0 EQU * LDA B7771 RESTORE CORRECT STA TEMP8,I CNDX JMP JMP CMX.4 HED INIT * * * INITIAL CONFIGURATION ROUTINE * * * * CONFIGURES WCS SELECT CODE INTO I/O INSTRUCTIONS. * INDICATES PRESENCE OF DMA AND CONSOLE DEVICE(SLOW * OUTPUT). SAVES CONTROL STORE MODULE # FOR PROGRAM * USE. * INIT NOP CLC 0,C INTERRUPT OFF,CLEAR I/O LDA ETAB FORM RELATIVE CMA ERROR TABLE STA METAB INDEX LDA C.112 IS THERE A CONSOLE SZA DEVICE IN SYSTEM? JMP *+3 YES CCA NO,SET STA TFLAG NO TTY FLAG LDA C.115 CHECK AND MASK1 FOR SZA DMA JMP INIT2 DMA IS THERE CCA STA DMAFG NO DMA INIT2 EQU * LDA C.115 GET COMPUTER AND MASK6 TYPE ALF ADA M10 IS IT SSA A 2100? JMP INIT5 YES CCA NO,MUST BE A 21XX STA MFLAG SET MODULE 1 FLAG STA MACH2 SET 21XX FLAG LDB DBUF1 GO USE 2100 MICROPROGRAM JSB IBUFF BUFFER FOR DATA BUFFER JMP INIT6 INIT5 EQU * CCA SET 2100 STA MACH1 FLAG LDB DBUF2 GO USE 21XX MICROPROGRAM JSB IBUFF BUFFER FOR DATA BUFFER INIT6 EQU * JSB CONF GO CONFIGURE PROGRAM LDA MOD SAVE LOW ORDER LDB SC WCS SELECT CODE AND STA SAVE4 MODULE # FOR STB SAVE5 PROGRAM USE HLT74 HLT 74B CONFIGURATION COMPLETE JMP 130B GO START MAIN PROGRAM HED CONF * * * CONFIGURATION ROUTINE * * * * CONFIGURES CURRENT WCS SELECT CODE INTO I/O * INSTRUCTIONS. SAVE CONTROL STORE MODULE # FOR * PROGRAM USE. * * CALLING SEQUENCE : * * JSB CONF (INCLUDES LIA 1) * * OR * * LDA (MOD# & SELECT CODE) * JSB CONF1 * CONF NOP LIA 1 GET SW REG AND JMP INIT8 CONF1 NOP LDB CONF1 SET RETURN STB CONF ADDRESS INIT8 EQU * STA TEMP0 SAVE IT AND MASK0 IS SELECT ADA M10 CODE ENTRY SSA,RSS LESS THAN 10(OCTAL)? JMP INIT0 NO,OK CLB LDA TEMP0 LOAD BAD ENTRY HLT73 HLT 73B YES,SELECT CODE ENTERED WAS <7B JMP CONF+1 TRY AGAIN INIT0 EQU * LDA TEMP0 IS SELECT AND MASK0 CODE ENTRY ADA M26 GREATER THAN SSA 25 OCTAL? JMP INIT1 NO CLB LDA TEMP0 LOAD BAD ENTRY HLT51 HLT 51B YES,SELECT CODE ENTERED WAS >25B JMP CONF+1 TRY AGAIN INIT1 EQU * LDA TEMP0 AND MASK0 GET CURRENT WCS STA SC SELECT CODE LDA TEMP0 GET CURRENT AND MASK6 CONTROL STORE ALF MODULE # STA TEMP7 AND SAVE IT LDA MFLAG IS MACHINE SZA A 2100? JMP CONF2 NO,MUST BE 21XX LDA TEMP7 ADA M1 YES,TRYING TO SSA USE MODULE 0?