ASMB,A,B,L,C HED EIG (WORD,BYTE,BIT) DIAGNOSTIC ORG 0 DSN 101112 24 AUGUST 1977 REV 1728 SUP * GENERAL OPERATING PROCEDURE * * A. LOAD DIAGNOSTIC CONFIGURATOR AND CONFIG. * B. LOAD DIAGNOSTIC PROGRAM. * C. LOAD ADDRESS 100B * D. LOAD SW REG WITH SELECT CODE * E. PRESS RUN WAIT FOR HALT 102074 * F. ENTER PROGRAM OPTION: (8-15) * IF SET =: * 15 = HALT AT END OF EACH TEST * 14 = SUPPRESS ERROR HALTS * 13 = LOOP ON LAST TEST * 12 = LOOP ON DIAGNOSTIC * (SUPPRESS ALL OPERATOR INTERVENTION) * 11 = SUPPRESS ERROR MESSAGES. * 10 = SUPPRESS NON-ERROR MESSAGES. * 9 = GO TO USER CONTROL SECTION * AT END OF PRESENT TEST * 8 = SUPPRESS OPERATOR INTERVENTION TESTS * * 7 * = RESERVED * 0 * * * * * G. PRESS RUN. * H. RESTART - LOAD ADDRESS 2000B * I. RECONFIGURE - RETURN TO STEP C * * GENERAL COMPUTER HALTS * * 1020XX E OR H 000 TO 067 * 1060XX E OR H 100 TO 167 * 1030XX E OR H 200 TO 267 * 1070XX E OR H 300 TO 367 * * CONTROL PROGRAM HALT MESSAGES * * 102077 END OF DIAG (A = PASS COUNT) * 102076 END OF TEST (A = TEST #) * 102075 USER SELECTION REQUEST * 102073 USER SELECT CODE ERROR * 102072 RESERVED * 102071 RESERVED * 102070 RESERVED * * 106077 TRAP CELL HALT * * 106070 - * 106076 CONFIG. HALTS SEE DIAG. CONFIG. MANUAL HED DEFINITION OF MNEMONICS OR ABBERVIATION * ** DEFINITION OF MNEMONICS OR ABBREVIATIONS ** * * * A, A-REG - A-REGISTER. * ACT - ACTUAL. * ADDR - ADDRESS. * B, B-REG - B-REGISTER. * CNT - COUNT. * CONFIG - CONFIGURE, CONFIGURATOR. * CONST - CONSTANT. * DEC - DECIMAL. * DGT - DIGIT. * E, E-REG - EXTEND REGISTER. * EXP - EXPECT, EXPECTED. * INCR - INCRMENT. * INSTR - INSTRUCTION. * INTP - INTERRUPT. * MEM - MEMORY. * MPT - MEMORY PROTECT. * NEG - NEGATIVE * NOS, NUM, NUMB - NUMBER. * O-REG, OVR, - OVERFLOW REGISTER. * P, P-REG - P-REGISTER. * PARAM - PARAMETER. * POS - POSITIVE. * REG - REGISTER. * RTN - RETURN. * SC, SELECT CODE * SUBT - SUBTRACT * SYS, SYST - SYSTEM. * TP, TABLE POINTER. * WD, WDS- WORD, WORDS. * := - REPLACED BY, I.E. A:=B, WHERE AS A IS REPLACED BY VALUE B. HED TEST DESCRIPTION * TEST SELECTION BY OPERATOR: * ********************************************************************** * A-REG SETTING * TEST TO BE * TEST NAME: * * IF SET: * SELECTED * * ********************************************************************** * * * * * 0 * 0 * LBT TEST (LOAD BYTE) * * 1 * 1 * SBT TEST (STORE BYTE) * * 2 * 2 * CBT TEST (COMPARE BYTE) * * 3 * 3 * SFB TEST (SCAN BYTE) * * 4 * 4 * MBT TEST (MOVE BYTE) * * 5 * 5 * CMW TEST (COMPARE WORD) * * 6 * 6 * MVW TEST (MOVE WORD) * * 7 * 7 * TBS TEST (TEST BITS) * * 8 * 8 * SBS TEST (SET BITS) * * 9 * 9 * CBS TEST (CLEAR BITS) * ********************************************************************** * * IF A-REG IS CLEAR THEN ALL TESTS ARE RUN. * * THE FOLLOWING INSTRUCTIONS ARE TESTED FOR INTERRUPABILITY: * * CBT * CMW * MBT * MVW * SFB * * * THE FOLLOWING INSTRUCTIONS ARE TESTED FOR MEMORY PROTECT * (IF MEMORY PROTECT IS AVAILABLE): * * CBS * MBT * MVW * SBS * SBT HED 2100 DIAGNOSTIC A EQU 0 A REGISTER REFERENCE B EQU 1 B REGISTER REFERENCE SW EQU 1 SWITCH REGISTER REFERENCE INTP EQU 0 INTERRUPT CHANNEL REFERENCE CH EQU 10B I-O CHANNEL SELECT CODE * ORG 100B * JMP CFIG,I GO TO CONFIGURATION SECTION FAIN BSS 1 FAST INPUT (PHOTO READER) SLOP BSS 1 SLOW OUTPUT (LIST) FAOP BSS 1 FAST OUTPUT (DUMP OR PUNCH) SLIN BSS 1 SLOW INPUT (KEYBOARD) FWAM DEF FWAA FIRST WORD OF AVBL. MEMORY LWAM BSS 1 LAST WORD OF AVBL. MEMORY BSS 1 NOT USED (MAG TAPE) OTMC BSS 1 1 MILL SEC TIME OUT COUNT BSS 4 SELECT CODES FOR I/O CPTO BSS 1 COMPUTER TYPE/OPTIONS USSC BSS 1 USER CARD TYPE AND SELECT CODE MEMO BSS 1 MEMORY SIZE AND TYPE ISWR BSS 1 INTERNAL SWITCH REGISTER TMRR BSS 1 1 MILL SEC TIMER SWRC BSS 1 CONFIGURATOR SWITCH CK PTR I2AS BSS 1 INTEGER TO ASCII CONVERSION O2AS BSS 1 OCTAL TO ASCII CONVERSION AS2N BSS 1 ASCII CONVERSION DSN OCT 101112 DIAGNOSTIC SERIAL NUMBER FMTR BSS 1 FORMATTER * * CONTROL LINKAGE AND DATA REFERENCES * CFIG DEF .CONF CONFIGURATION SECTION MSGC DEF .MSGC MESSAGE WITH NO HALT MSGH DEF .MSGH MESSAGE WITH HALT ERMS DEF .ERMS ERROR MESSAGE SWRT DEF .SWRT SWITCH REGISTER CHECK ROUTINE TSTN OCT 0 CURRENT TEST NUMBER EXRT DEF .EXRT RETURN TO CONTROL PROGRAM NOP RESERVED SKP * STDA OCT 1777 STDB OCT 0 * TSTP DEF *+1 TABLE OF TEST NUMBERS DEF TST00 LOAD BYTE TEST DEF TST01 STORE BYTE TEST DEF TST02 COMPARE BYTE TEST DEF TST03 SCAN BYTE TEST DEF TST04 MOVE BYTE TEST DEF TST05 COMPARE WORDS TEST DEF TST06 MOVE WORDS TEST DEF TST07 TEST-BITS DEF TST08 SET-BITS DEF TST09 CLEAR-BITS .M1 DEC -1 * IOID DEF *+1 TABLE OF I-O CHANNEL CONFIGURATION DEF SC1 DEF SC2 DEF SC3 DEF SC4 DEF SC5 DEF SC6 IOM OCT 177700 * IOSC NOP * INSTX DEF *+1 DEF CBTA+2 DEF II2+2 DEF MBTA+2 DEF MBTB+2 DEF II4+2 DEF CMWA+2 DEF II5+2 DEF MVWA+2 DEF MVWB+2 DEF II6+2 DEC -1 HED DIAGNOSTIC CONSTANTS & STORAGE LOCATIONS SAVA NOP SAVB NOP EOLC NOP TSTA NOP SINA NOP SINB NOP UINA NOP UINB NOP BTMP NOP M40 DEC -40 DEC -10,-9,-8,-7,-6,-5,-4,-3,-2,-1 . OCT 0 DEC 1,2,3,4,5,6,7,8,9,10 .40 DEC 40 .60 OCT 60 .77 OCT 77 .177 OCT 177 .M2 DEC -2 D100 DEC -100 BT5 OCT 40 SW15 OCT 100000 SW14 OCT 40000 SW13 OCT 20000 SW12 OCT 10000 S812 OCT 010400 SW9 OCT 1000 MBT9 OCT 176777 .100 OCT 100 .200 OCT 200 .300 OCT 300 B7700 OCT 7700 M70K OCT 070000 H2 OCT 102000 H6 OCT 106000 H3 OCT 103000 H7 OCT 107000 TSH OCT 106077 * * CAUTION IN USING THESE CONTANTS * DO NOT CHANGE THERE ORDER AND * THE VALUE MAY BE MODIFIED BY * THE PROGRAM.. * CFTT DEC -1 TSTF DEF *+1 ASC 3,TEST .TSTN ASC 2,XX// PSC ASC 6,PASS XXXXXX/ A.E OCT 105 PCB DEF *+1 STORE DECIMAL TEST OCT 0 NUMBER IN OCT 0 STRING PCBX ASC 1,XX HDMX DEF HDM1+3 * * SKP AREG BSS 1 BREG BSS 1 EREG BSS 1 OREG BSS 1 PATTN OCT 125252 SKIP BSS 1 TN2 BSS 1 TEST CASE NUM TP BSS 1 TABLE POINTER WCP BSS 1 WORD COUNT PARAM WRD1 BSS 1 WORD OPRAND 1 WRD2 BSS 1 WORD OPRAND 2 INTFL BSS 1 INTP FLAG * * INTERRUPT RETURNS * JSBX JSB *+1,I DEF RTXZ JSB2 JSB *+1,I DEF RT2 JSB3 JSB *+1,I DEF RT3 JSB4 JSB *+1,I DEF RT4 JSB5 JSB *+1,I DEF RT5 JSB6 JSB *+1,I DEF RT6 CISK0 DEF CPSK0 CISK1 DEF CPSK1 CISK2 DEF CPSK2 PTR2 DEF II2 PTR3 DEF II3 PTR4 DEF II4 PTR5 DEF II5 PTR6 DEF II6 * * DEF STATEMENTS * A.CBT DEF CBTTB A.CMW DEF CMWTB A.DS DEF DS A.LB DEF LB A.LBT DEF LBTTB A.LBX DEF LBX A.MBT DEF MBTTB A.MVW DEF MVWTB A.OCT DEF OCT A.SBT DEF SBTTB A.SFB DEF SFBTB A.TBS DEF TBSTB A.WD DEF WD A.WD1 DEF WD1 A.SBS DEF SBSTB A.CBS DEF CBSTB WDX DEF WD+35 * * DATA STRING * DS BSS 40 * * MEMORY PROTECT * FENCE DEF * MPPAR EQU 5 CBSMP DEF CBS3 MBTMP DEF MBT3A MVWMP DEF MVW3A SBSMP DEF SBS3 SBTMP DEF SBT3 MPCKX BSS 1 PMMTN JSB *+1,I DEF MPCHK * HED SUBROUTINES ************************************************************************ * * SUBROUTINES FOR SETTING UP OPERANDS BEFORE EXECUTING * THE INSTRUCTION * ************************************************************************ * * EXAMINE NEXT TEST PARAMETER * * RETURN CONDITIONS: * * IF TEST PARAM > -1 THEN NO SKIP * IF TEST PARAM =-1 THEN SKIP 1 * IF TEST PARAM = -2 THEN SKIP 2 * ETC. * NXTP NOP CLA CLEAR STA INTFL INPT FLAG ISZ TN2 INCR TEST-CASE NUMBER LDA TP,I NEXT TEST PARAM FROM TEST TABLE SSA IF A<0 THEN JMP NXTP1 GOTO NXTP1 CLA ELSE A:=0 NXTP2 ADA NXTP ADD A TO RETURN ADDR JMP A,I JUMP TO LOCATION POINTED TO BY A NXTP1 ISZ TP INCR TEST TABLE POINTER BY 1 CMA,INA MAKE TEST PARAM POSITIVE JMP NXTP2 ADD TO A FOR SKIP RETURN * * RECORD SKIP CONDITION FOR COMPARE INSTRUCTIONS AND * SAVE A,B,E,O REGISTERS * CPSK0 NOP CLF INTP CLEAR INTP ISZ CPSK0 INCR RETURN ISZ CPSK0 ADDR P+3 STA AREG SAVE A-REG CLA A:=0 JSB CPSK RECORD SKIP CONDITION JMP CPSK0,I RETURN P+3 * CPSK NOP STA SKIP RECORD SKIP CONDITION STB BREG SAVE B-REG JSB SEO SAVE E,O-REG JMP CPSK,I RETURN * CPSK1 NOP CLF INTP CLEAR INTP ISZ CPSK1 INCR RETURN ADDR FOR P+2 STA AREG SAVE A-REG LDA .+1 A:=SKIP CONDITION JSB CPSK RECORD SKIP CONDITION,SAVE B,E,O-REG JMP CPSK1,I RETURN P+2 CPSK2 NOP CLF INTP CLEAR INTP STA AREG SAVE A-REG LDA .+2 A:=2 JSB CPSK RECORD SKIP CONDITION,SAVE B,E,O-REG JMP CPSK2,I RETURN P+1 * * SAVE A,B,E,O REGISTERS * SABEO NOP STA AREG SAVE A-REG STB BREG SAVE B-REG JSB SEO SAVE E,O-REG JMP SABEO,I RETURN * * SAVE E AND O REGISTERS * SEO NOP CLA CLEAR A-REG SEZ IS E-REG SET ? LDA .+1 YES - SET EREG TO 1 STA EREG NO - SET EREG TO 0 LDA .+1 A:=1 SOS IS O-REG SET ? CLA YES - SET OREG TO 1 STA OREG NO - SET OREG TO 0 JMP SEO,I RETURN * * GET DATA FROM TEST TABLE * TPX NOP NOP DEBUG LDA TP,I GET DATA FORM TEST TABLE ISZ TP INCR TEST TABLE JMP TPX,I RETURN * * CHECK SKIP CONDITION * CKSK NOP JSB TPX NEXT ENTRY IN TEST TABLE XOR SKIP COMPARE SKIP SZA,RSS CONDITION RESULT JMP CKSK,I OK - RETURN JSB LTN PRINT TEST-CASE NUMBER E003 JSB ERMS,I REPORT ERROR DEF ME03,I DEF ME00 JMP CKSK,I RETURN * SAVE1 BSS 1 SAVE2 BSS 1 * * CHECK DATA STRING * CKDS NOP NOP DEBUG JSB TPX GET DATA FROM TEST TABLE STA SAVE1 SAVE DATA CMA,INA TWO'S COMP STA WCP SAVE NEGATIVE VALUE STA SAVE2 LDA WRD1 BYTE ADDR OF SOURCE LDB A.DS ADDR OF DESTINATION STRING STA AREG SAVE ADDR STB BREG CKDS1 LDA AREG,I GET DATA FROM SOURCE STRING LDB BREG,I GET DATA FROM DISTINATION STRING NOP DEBUG CPA B JMP CKDS4 OK JSB LTN PRINT TEST-CASE NUMBER E010 JSB ERMS,I DEF ME010,I DEF ME00 CKDS4 ISZ AREG INCR ADDR POINTER ISZ BREG IN A & B REG ISZ WCP LAST LOCATION IN STRING ? JMP CKDS1 NO LDA .40 NUMBER OF LOCATION IN STRING ADA SAVE2 SUBTRACT NUMBER USED CMA,INA TWO'S COMP STA WCP SAVE NEGATIVE VALUE LDA PATTX GET PATTERN STORED IN STRING LDB SAVE1 NUMBER OF WORDS TRANSFERED INTO STRING ADB A.DS ADDR OF STRING STB SAVE1 SAVE ADDR OF UNUSED STRING CKDS2 LDB SAVE1,I GET DATA IN UNUSED STRING NOP DEBUG CPA B IS STRING ALTERED BY TEST INSTR JMP CKDS3 OK JSB LTN PRINT TEST-CASE NUMBER E004 JSB ERMS,I REPORT ERR DEF ME004,I DEF ME00 CKDS3 ISZ SAVE1 INCR STRING ADDR ISZ WCP LAST ADDR ? JMP CKDS2 NO JMP CKDS,I RETURN * * SET UP STRING ADDR FOR A & B-REG ENTRY * DSABR NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE ADA A.WD ADDR OF DATA TABLE LDA A,I GET DATA FROM TABLE STA WRD1 SAVE DATA FOR WORD 1 OPERAND NOP JSB TPX NEXT ENTRY IN TEST TABLE ADA A.WD ADDR OF DATA TABLE LDA A,I GET DATA FROM TABLE STA WRD2 SAVE DATA FOR WORD 2 OPERAND NOP DEBUG JMP DSABR,I RETURN * * GET WORD COUNT * WCX NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE STA WCP SAVE VALUE AS A WORD COUNT JMP WCX,I RETURN * * LOAD DATA STRING WITH PATTERN * ENTER WITH PATTERN IN A-REG * STDS NOP STA PATTX SAVE PATTERN LDB M40 -40 STB SAVE2 SAVE VALUE LDB A.DS ADDR OF DATA STRING STDS1 STA B,I STORE PATTERN IN DATA STRING INB INCR ADDR IN BREG ISZ SAVE2 LAST LOCATION IN STRING ? JMP STDS1 NO JMP STDS,I RETURN * PATTX BSS 1 * * LOAD BYTE ADDR * LBA NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE ADA A.LB ADDR OF DATA TABLE STA WRD1 STORE ADDR JMP LBA,I RETURN * LBB NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE ADA A.LBX ADDR OF DATA TABLE STA WRD1 STORE ADDR JMP LBB,I RETURN * PATX NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE ADA A.LBX ADDR OF DATA TABLE LDA A,I GET PATTERN JSB STDS STORE PATTERN JMP PATX,I RETURN * SBA NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE ADA A.OCT ADDR OF DATA TABLE STA WRD2 STORE ADDR JMP SBA,I RETURN * CKLB NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE ADA A.OCT ADDR OF DATA TABLE LDB A,I GET DATA IN TABLE LDA AREG GET ACTUAL DATA NOP DEBUG CPA B COMPARE DATA JMP CKLB1 OK JSB LTN PRINT TEST-CASE NUMBER E005 JSB ERMS,I REPORT ERR DEF ME005,I DEF ME00 CKLB1 LDA WRD1,I BYTE ADDR:= INA BYTE ADDR +1 LDB BREG GET ACTUAL BYTE ADDR NOP DEBUG CPA B COMPARE BYTE ADDR JMP CKLB,I OK - RETURN JSB LTN PRINT TEST-CASE NUMBER E006 JSB ERMS,I REPORT ERR DEF ME006,I DEF ME00 JMP CKLB,I RETURN * CKSB NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE ADA A.LBX ADDR OF DATA TABLE LDA A,I GET DATA FROM TABLE LDB DS ADDR OF DATA STRING NOP DEBUG CPA B COMPARE DATA JMP CKSB,I RETURN JSB LTN PRINT TEST-CASE NUMBER E007 JSB ERMS,I REPORT ERR DEF ME007,I DEF ME00 JMP CKSB,I RETURN * CKSF NOP NOP DEBUG JSB TPX NEXT ENTRY IN TEST TABLE ADA A.WD ADDR OF DATA TABLE LDA A,I GET DATA FROM TABLE LDB BREG RESTORE B-REG CONDITIONS AFTER TEST INSTR NOP DEBUG CPA B COMPARE DATA JMP CKSF,I RETURN JSB LTN PRINT TEST-CASE NUMBER E011 JSB ERMS,I REPORT ERR DEF ME011,I DEF ME00 JMP CKSF,I RETURN * MOVE NOP LDA MOVE,I ADDR OF 1'ST WORD LDB ME.X ADDR OF STRING LDA A,I GET WORD STA B,I STORE WORD LDA MOVE,I GET ADDR OF INA 2'ND WORD LDA A,I GET WORD INB NEXT ADDR IN STRING STA B,I STORE WORD ISZ MOVE INCR RETURN ADDR JMP MOVE,I RETURN P+2 * ME.X DEF ME. * * LOAD TEST NUMBERS INTO A REGISTER * LTN NOP CLF INTP TURN OFF I-O SYST LDA TN2 CONVERT CLE TEST LDB LTN1 NUMBER JSB O2AS,I TO LDA TN2 ASCII AND OUTPUT ALF A:=TEST-CASE NUMBER ALS,ALS SHIFTED LEFT 6 BITS AND IOR TSTN MERGE IN TEST NUMB JMP LTN,I RETURN * LTN1 DEF ME00+9 ASCII MESSAGE * * TURN ON MEMORY PROTECT LOGIC * * ENTER WITH (A)=EXIT ADDRESS AND * (B)=FENCE ADDRESS * MEMTN NOP STA MPCKX STORE EXIT ADDRESS LDA PMMTN GET INTERRUPT ADDRESS STA MPPAR STORE INTP ADDR LDB FENCE MPT FENCE OTB MPPAR LOAD FENCE REGISTER STF INTP TURN OFF INTERRUPT SYS STC MPPAR TURN ON MEM. PROTECT LOGIC JMP MEMTN,I EXIT * * MEMORY PROTECT VIOLATION ROUTINE * MPCHK NOP CLF INTP TURN OFF INTERRUPT SYS LIA MPPAR GET VIOLATION REGISTER SSA CHECK FOR PARITY ERROR JMP MPCK1 PARITY ERROR! CLF MPPAR TURN OFF PARITY LOGIC LDA TSH RESTORE STA MPPAR TRAP CELL HALT STF MPPAR TURN ON PARITY LOGIC JMP MPCKX,I EXIT