CLA SET UP STA ZBF5 FLAGS STA ZBI5 FOR TEST STA ZBTMP ZBS51 STC CH TURN ON ZBS52 STF CH CARD STF INTP AND INTERRUPTS STC 1 * STF 1 * CLC 1 * CLF 1 * NO INTERRUPT JMP *+1,I * SHOULD OCCURR DEF *+1 * HERE JSB *+1,I * DEF *+1 * ZBF5 NOP * ISZ ZBTMP INT. SHOULD BE HERE ISZ ZBTMP CLF INTP TURN I/O SYSTEM OFF LDA ZBI5 DID IT INTERRUPT? SZA JMP *+4 E014 JSB ERMS,I E014 NO INT DEF ZBE14 JMP ZBIO6 ABORT REST OF SECTION LDA ZBTMP CHECK FOR CORRECT INTERRUPT CPA Z.2 ? JMP *+3 E026 JSB ERMS,I E026 INT EXECUTION ERROR DEF ZBE26 ZBS53 CLF CH TURN OFF CH FLAG JMP ZBIO6 GO TO NEXT SECTION * ZBD5 DEF ZBF5-1 ZBD5A DEF ZBF5+1 * ZBE12 ASC 16,E012 INT DURING HOLD OFF INSTR/ ZBE13 ASC 12,E013 SECOND INT OCURRED/ ZBE14 ASC 06,E014 NO INT/ ZBE15 ASC 12,E015 INT RTN ADDR ERROR/ ZBE26 ASC 13,E026 INT EXECUTION ERROR/ * * * * SKP ZBI5 NOP CLF INTP TURN I/O SYSTEM OFF LDA ZBD5 CHECK TO SEE IF ALL CPA ZBF5 INSTRUCTION COMPLETED JMP *+3 YES E012 JSB ERMS,I E012 INT DURING HOLD OFF DEF ZBE12 LDA ZBD5A CHECK RETURN ADDRESS LDB CPTO IF 210X SSB ADD ONE INA CPA ZBI5 JMP ZBI5A E015 JSB ERMS,I E015 INT RTN ADDR ERROR DEF ZBE15 JMP ZBIO6 ZBI5A JSB ZTCJI SET SECOND INT TRAP DEF ZBT5 STF INTP TURN I/O SYSTEM ON JMP ZBI5,I CONTINUE TEST * * ZBT5 NOP CLF INTP TURN I/O SYSTEM OFF E013 JSB ERMS,I E013 SECOND INT OCURRED DEF ZBE13 * * * * * SKP * CLC CH AND CLC 0 * ZBIO6 JSB ZTCJI SET JSB INSTRUCTION DEF ZBI61 ZBS61 STC CH SET CH CONTROL ZBS62 STF CH SET CH FLAG STF INTP TURN ON INTERRUPTS ZBS63 CLC CH CLEAR CH CONTROL NOP GIVE IT A CHANCE NOP CLF INTP TURN INTS OFF ZB60 JSB ZTCJI SET JSB INSTRUCTION DEF ZBI62 ZBS64 CLF CH CLEAR CH FLAG ZBS65 STC CH SET CH CONTROL ZBS66 STF CH SET CH FLAG STF INTP TURN ON INTS CLC INTP CLEAR I/O SYSTEM NOP GIVE IT A CHANCE NOP CLF INTP TURN OFF INTS JMP ZBIO7 * * ZBI61 NOP CLF INTP TURN OFF INTS E016 JSB ERMS,I E016 CLC CH ERROR DEF ZBE16 JMP ZB60 * ZBI62 NOP CLF INTP TURN OFF INTS E017 JSB ERMS,I E017 CLC 0 ERROR DEF ZBE17 JMP ZBIO7 * ZBE16 ASC 9,E016 CLC CH ERROR/ ZBE17 ASC 9,E017 CLC 0 ERROR/ * * * * * SKP * EXTERNAL & INTERNAL PRESET TEST * ZBIO7 LDB ZS812 CHECK TO SUPPRESS JSB SWRT,I ? JMP H025 YES - SKIP PRESET TEST H024 JSB MSGC,I TELL OPERATOR DEF ZBM24 PRESS PRESET * ZBS71 CLF CH CLEAR CH FLAG STF INTP TURN ON INTS JSB ZTCJI SET TRAP CELL JSB INSTRUCTION DEF ZBI70 HLT 24B WAIT FOR OPERATOR CLA,INA SET UP FLAGS FOR TESTS SFS INTP CHECK INTP FLAG CLA NOT SET SO CLEAR FLAG RAL MOVE TO NEXT FLAG CLF INTP TURN OFF ONTPS ZBS72 SFS CH CHECK CHANNEL FLAG INA NOT SET SO FLAG IT RAL MOVE TO NEXT FLAG LIB 0 CHECK I/O BUSS SZB SHOULD BE ZERO INA NOT SO FLAG IT RAL MOVE TO NEXT FLAG STF INTP CHECK CONTROL ON CARD NOP GIVE IT A CHANCE NOP CLF INTP TURN OFF INTPS * * * * * * * * * * * * * * * * * * * * * * * SKP ZB70 SLA,RSS CHECK FOR ERRORS JMP *+3 E022 JSB ERMS,I E022 DID NOT CLEAR CONTROL DEF ZBE22 RAR SLA,RSS JMP *+3 E023 JSB ERMS,I E023 I/O LINES NOT CLEAR DEF ZBE23 RAR SLA,RSS JMP *+3 E020 JSB ERMS,I E020 FLAG NOT SET DEF ZBE20 RAR SLA,RSS JMP *+3 E021 JSB ERMS,I E021 DID NOT DIABLE INTS DEF ZBE21 H025 JSB MSGC,I TELL OPERATOR DEF ZBM25 BASIC I/O IS COMPLETE JMP ZBIO,I RETURN TO CALLER * ZBI70 NOP CONTROL FAILED CLF INTP TURN OFF INTPS INA JMP ZB70 * ZBE20 ASC 15,E020 PRESET DID NOT SET FLAG/ ZBE21 ASC 17,E021 PRESET DID NOT DISABLE INTS/ ZBE22 ASC 17,E022 PRESET DID NOT CLEAR CONTROL/ ZBE23 ASC 18,E023 PRESET DID NOT CLEAR I-O LINES/ ZBM24 ASC 12,H024 PRESS PRESET, RUN/ ZBM25 ASC 08,H025 BI-O COMP/ SKP ZBIOD DEF *+1 DEF ZBS21 DEF ZBS22 DEF ZBS23 DEF ZBS24 DEF ZBS25 DEF ZBS26 DEF ZBS27 DEF ZBS31 DEF ZBS32 DEF ZBS33 DEF ZBS41 DEF ZBS42 DEF ZBS51 DEF ZBS52 DEF ZBS53 DEF ZBS61 DEF ZBS62 DEF ZBS63 DEF ZBS64 DEF ZBS65 DEF ZBS66 DEF ZBS71 DEF ZBS72 DEC -1 * ZCEND EQU * * * * * * * * * * * * * * * * * * * * * * * * * * HED MESSAGES E031 ASC 5,E031 XMA/ E032 ASC 5,E032 XMB/ E033 ASC 5,E033 XMM/ E034 ASC 5,E034 XMM/ E035 ASC 5,E035 XMM/ E036 ASC 5,E036 XMM/ E037 ASC 5,E037 SYA/ E040 ASC 5,E040 SYB/ E041 ASC 5,E041 USA/ E042 ASC 5,E042 USB/ E043 ASC 5,E043 PAA/ E044 ASC 5,E044 PAB/ E045 ASC 5,E045 PBA/ E046 ASC 5,E046 PBB/ E047 ASC 12,E047 INTERFERENCE ERROR/ E304 ASC 6,E304 A-REG/ E305 ASC 6,E305 B-REG/ E306 ASC 6,E306 X-REG/ E307 ASC 6,E307 A-REG/ E310 ASC 6,E310 B-REG/ E311 ASC 6,E311 X-REG/ E312 ASC 6,E312 A-REG/ E313 ASC 6,E313 A-REG/ E314 ASC 6,E314 A-REG/ E315 ASC 6,E315 A-REG/ E122 ASC 5,E122 MWF/ E123 ASC 5,E123 MWF/ E124 ASC 5,E124 MWI/ E125 ASC 5,E125 MWI/ E126 ASC 5,E126 MWW/ E127 ASC 5,E127 MWW/ HED *** XMA-XMB *** TRANSFER MAPS INTERNALLY PER A B ORG 4000B * * * * * XMA/XMB - TRANSFER MAPS * CALLING SEQUENCE: * LDA WORD1 * XMA/B. * * WORD FORMAT: * A/B(15)=0=SYSTEM * A/B(15)=1=USER * A/B(0) =0=PORT1 * A/B(1) =1=PORT2 * * EG. A=100001 XFER USER TO PORT2 * A=000000 XFER SYSTEM TO PORT1 * A=000001 XFER SYSTEM TO PORT2 * * TEST 02 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE * REQUIRED TO EXECUTE AN XMA/B INSTRUCTION. * * TEST 02 IS MADE UP OF EIGHT SUBTESTS, EACH OF WHICH TEST ONE * FUNCTION OF THE XMA/B INSTRUCTIONS. * * * * IF AN ERROR IS DETECTED IN TST02, ONE OF TWO MESSAGES WILL BE * OUTPUT OT THE CONSOLE, "E031 XMA" OR "E032 XMB". IN EITHER * CASE, THE A,B,X AND Y REGISTERS WILL CONTAIN THE FOLLOWING * INFORMATION: * * T=HALT CODE * A=GOOD PATTERN * B=BAD PATTERN * X=FAILING REGISTER * Y=ADDRESS OF THE FAILURE * * * SKP TST02 EQU * SPC 1 NOP JSB RDZRO CLEAR THE READ TABLE LDA PTRN1 MAKE THE SYSTEM LDB PTRN2 TABLE CONTENTS JSB MKTBL EQUAL TO OCT 040000 PATTERN1/2 JSB XMMSY WRITE THE SYSTEM MAP REGISTERS SPC 1 NOP CHANGE TO JMP *-N FOR LOOP/ LDA XFRS1 XFER SYSTEM TO PORTA WORD XMA USING THE XMA INSTRUCTION NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 JSB P1XMM READ PORTA MAP LDA LTSYS VERIFY PROPER OPERATION LDB RTPTA OF XMA SYS-PA, BY JSB TBCMP COMPARING THE TABLES JSB XMAER ERROR DETECTED, REPORT. NOP CHANGE TO JMP *-N FOR LOOP/ SPC 2 LDA PTRN2 SET UP THE SYSTEM LDB PTRN1 TABLE CONTENTS JSB MKTBL FOR THE NEXT OCT 040000 TRANSFER JSB XMMSY WRITE THE SYSTEM MAP REGISTERS NOP SPC 1 LDA XFRS2 XFER THE CONTENTS OF THE XMA SYSTEM MAP TO THE PORT B MAP NOP SPC 1 JSB P2XMM READ THE PORT B MAP LDA LTSYS VERIFY PROPER OPERATION LDB RTPTB OF XMA SYS-PB, BY JSB TBCMP COMPARING THE TABLES JSB XMAER REPORT THE DETECTED ERROR NOP CHANGE TO JMP *-N FOR LOOP/ SPC 2 JSB CLTBL ZERO BOTH TABLES LDA PTRN1 SET UP THE USER LDB PTRN2 TABLE CONTENTS JSB MKTBL FOR XFER TO OCT 020000 PORT A MAP JSB XMMUS LOAD THE USER MAP REGISTERS SPC 1 LDA XFRU1 SETUP AND EXECUTE XMA THE USER TO PORT A TRANSFER NOP CHANGE TO JMP *-N FOR LOOP/ SKP JSB P1XMM READ THE CONTENTS OF PORT A MAP LDA LTUSR AND COMPARE THE TWO TABLES LDB RTPTA FOR PROPER OPERATION JSB TBCMP OF THE TRANSFER JSB XMAER REPORT THE DETECTED ERROR NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA PTRN2 CHANGE THE PATTERN IN LDB PTRN1 THE LOADER TABLE JSB MKTBL AND LOAD UP OCT 020000 THE USER MAP JSB XMMUS REGISTERS NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA XFRU2 SETUP AND EXECUTE THE USER MAP XMA TO PORTB MAP TRANSFER NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 JSB P2XMM READ THE CONTENTS OF PORT B MAP LDA LTUSR AND COMPARE THE TWO TABLES LDB RTPTB FOR PROPER OPERATION JSB TBCMP OF THE TRANSFER JSB XMAER REPORT ERROR NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 JSB RDZRO CLEAR READ TABLE LDA PTRN1 LOAD UP THE LDB PTRN2 SYSTEM MAP JSB MKTBL LOAD TABLE, OCT 040000 AND STORE INTO JSB XMMSY SYSTEM MAP SPC 1 LDB XFRS1 EXECUTE THE XMB XMB INSTRUCTION NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 JSB P1XMM READ THE PORT A MAP LDA LTSYS AND DO A LDB RTPTA COMPARISON OF JSB TBCMP THE TWO TABLES JSB XMBER REPORT XMB FAILURE NOP SPC 2 LDA PTRN2 CHANGE THE PATTERN LDB PTRN1 IN THE SYSTEM MAP TABLE JSB MKTBL AND RELOAD THE OCT 040000 SYSTEM MAP JSB XMMSY LOAD TABLE SKP LDB XFRS2 EXECUTE XMB XMB SYSTEM TO PORT B MAP SPC 1 NOP CHANGE TO JMP *-N FOR LOOP/ JSB P2XMM READ THE PORT B MAP LDA LTSYS AND VERIFY PROPER EXECUTION LDB RTPTB OF XMS BY COMPARING JSB TBCMP THE TWO TABLES JSB XMBER REPORT THE FAILURE NOP CHANGE TO JMP *-N FOR LOOP/ SPC 2 LDA PTRN1 SET UP THE USER MAP LDB PTRN2 LOAD TABLE WITH A JSB MKTBL RECOGNIZABLE OCT 020000 PATTERN AND LOAD UP JSB XMMUS THE USER MAP SPC 1 LDB XFRU1 EXECUTE THE XMB XMB USER TO PORT A MAP NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 JSB P1XMM READ THE PORT A MAP LDA LTUSR AND VERIFY PROPER EXECUTION LDB RTPTA OF XMS BY COMPARING JSB TBCMP THE TWO TABLES JSB XMBER REPORT PROBLEM NOP SPC 2 LDA PTRN2 CHANGE THE PATTERN IN THE LDB PTRN1 USER LOAD TABLE AND LOAD JSB MKTBL THE USER MAP OCT 020000 * JSB XMMUS * SPC 1 LDB XFRU2 EXECUTE THE XMB XMB USER TO PORT B MAP NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 JSB P2XMM READ THE PORT B MAP AND LDA LTUSR VERIFY PROPER EXECUTION OF LDB RTPTB XMS BY COMPARING JSB TBCMP TWO TABLES JSB XMBER REPORT DIFFERENCE BETWEEN TABLES NOP CHANGE TO JMP *-N FOR LOOP/ JMP TST02,I SKP XFRS1 OCT 0 XFRS2 OCT 1 XFRU1 OCT 100000 XFRU2 OCT 100001 SPC 2 XMAER NOP JSB RGSVE SAVE THE REGISTERS LDY XMAER GET THE FAIL FLAG LDX REGNR GET THE FAILING REGISTER JSB ERMS,I PREPORT XMA DEF E031 FAILURE JSB RGRS2 RESTORE X & Y JMP TCPHR CONTINUE SPC 3 XMBER NOP JSB RGSVE SAVE REGISTERS LDX REGNR GET FAILING REGISTER NUMBER LDY XMBER AND THE FAIL FLAG JSB ERMS,I REPORT XMB DEF E032 FAILURE JSB RGRS2 RESTORE X & Y TO CONTINUE JMP TCPHR CONTINUE SPC 3 HED *** MEM DIAGNOSTIC *** - XMM * XMM - EXCHANGE MAPS AND MEMORY * CALLING SEQUENCE: * * LDA WORD1 * LDB WORD2 * LDX WORD3 * XMM * * * * * WORD FORMAT: * * WORD 1 - MAP ADDRESS OF FIRST REGISTER * TO BE LOADED BY XMM * * REGISTER 0-31 - SYSTEM MAP * REGISTER 32-63 - USER MAP * REGISTER 64-95 - PORT 1 MAP * REGISTER 96-127- PORT 2 MAP * * WORD 2 - ADDRESS OF THE FIRST WORD * OF THE MEMORY TABLE TO BE * USED FOR THE LOAD. THIS * TABLE CONTAINS THE ABSOLUTE * PAGE NUMBERS BEING ASSIGNED * TO THE MAP REGISTERS. * * * WORD 3 - NUMBER OF REGISTERS TO BE LOADED * * (POSITIVE NUMBER LOADS THE REGISTERS) * (NEGATIVE NUMBER LOADS MEMORY) * * * * * * SKP * * * * * TST00 - XMM * * THIS TEST VERIFIES PROPER OPERATION OF THE HARDWARE AND * FIRMWARE REQUIRED TO EXECUTE AN XMM INSTRUCTION. THE TEST * STARTS BY DOING A REGISTER ADDRESS TEST, ONE REGISTER AT A * TIME. WHEN ALL REGISTERS HAVE BEEN LOADED, READ AND VERIFIED * FOR LOAD/READ ABILITY, EACH MAP IS THEN TESTED USING VARIOUS * DATA PATTERNS, SUCH AS,ALL ONES, OR ALL ZEROS, ALTERNATE * ONES AND ZEROS, ETC. WHEN ALL FOUR MAPS HAVE BEEN TESTED * IN THIS MANNER, THE ABILITY TO EXECUTE LOAD/READ INSTRUCTIONS * ACROSS MAP BOUNDRIES IS VERIFIED. FINALLY THE XMM LOAD/READ * IS PERFORMED GIVING ALL FOUR MAPS AS THE CHARACTER COUNT * AND THE ROUTINE IS EXITED. * * * IF AN ERROR IS DETECTED WHILE RUNNING TST00, THE COMPUTER WILL * HALT WITH THE FOLLOWING INFORMATION AVAILABLE: * * T REGISTER = HALT CODE * A REGISTER = GOOD PATTERN * B REGISTER = BAD PATTERN * X REGISTER = FAILING REGISTER * Y REGISTER = ADDRESS OF FAILURE * * * * * SKP TST00 EQU * SPC 1 NOP SPC 1 * SINGLE REGISTER XMM - LOAD, READ AND COMPARE SPC 1 JSB LTZRO CLEAR THE LOAD TABLE LDA ND128 STA TSTA1 INITIALIZE ROUTINES CLA XTHRU STA TSTA2 COUNTER INA AND REGISTER NUMBER STA TSTA3 AND REGISTER COUNT TSTA. LDA TSTA2 GET THE REGISTER NUMBER LDB TSTA4 AND THE TABLE POINTER LDX TSTA3 AND THE COUNT XMM AND LOAD THE MAP REGISTER NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA TSTA2 GET REGISTER NUMBER