ASMB,A,B,L,C HED PAPER TAPE READER PUNCH DIAGNOSTIC ORG 0 DSN=146200 JUNE 2, 1977 REV.1725 SUP * GENERAL OPERATING PROCEDURE * * A. LOAD DIAGNOSTIC CONFIGURATOR AND SET IT UP. * B. LOAD DIAGNOSTIC MAIN PROGRAM * C. LOAD ADDRESS 100B. * D. LOAD SWITCH REG. WITH SELECT CODE AND OPTIONS * E. PRESS RUN AND WAIT FOR HALT 107074. * F. LOAD SWITCH REGISTER * IF SET =: * 15 = HALT AT END OF EACH TEST * 14 = SUPRESS ERROR HALTS * 13 = LOOP ON LAST TEST * 12 = LOOP ON DIAGNOSTIC * (SUPPRESS ALL OPERATOR INTERVENTION) * 11 = SUPRESS ERROR MESSAGES * 10 = SUPRESS NON-ERROR MESSAGES * 9 = GO TO USER CONTROL SECTION * AT END OF PRESENT TEST * 8= SUPPRESS OPERATOR INTERVENTION TESTS * 7 * = DIAGNOSTIC OPTIONS * 0 * NOTE: STANDARD RUN SHOULD BE WITH SW. REG. = 0 * USER CONTROL WILL ASK FOR A 32 BIT WORD. * EACH BIT WILL = 1 TEST * * G. PRESS RUN. * H. RESTART - LOAD ADDRESS 2000B * I. RECONFIGURE IF TESTING I/O INTERFACE - LOAD ADDRESS 100B * * 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 * 102074 SELECT CODE INPUT COMPLETE * 102073 USER SELECT CODE ERROR * 102072 RESERVED * 102071 RESERVED * 102070 RESERVED * * 106077 TRAP CELL HALT * * * HED PROGRAM ORGANIZATION CHART * ******************************************* * * CONFIGURATOR 100B * * * LINKAGE TABLE * * ******************************************* * * EXECUTIVE 130B * * * LINKAGE * * ******************************************* * * CONSTANTS 150B * * * AND * * * STORAGE * * ******************************************* * * 2000B * * * EXECUTIVE CONTROL * * * * * ******************************************* * * IF USED * * * BASIC I/O TESTS (TEST 00) * * * ZCEND * * ******************************************* * * TABLE OF TEST POINTERS * * * TABLE OF I/O INSTR POINTERS * * ******************************************* * * * * * * * * * * * * * * * * * MAIN DIAGNOSTICS (1-31) * * * * * * * * * * * * * * * * * ******************************************* * * * * * * * * * * * * * * * * * * * * HED CONFIGURATOR LINKAGE TABLE A EQU 0 A REGISTER REFERENCE B EQU 1 B REGISTER REFERENCE SW EQU 1 SWITCH REGISTER REFERENCE INTP EQU 0 INTERRUPT CHANNEL REFERENCE * * ORG 100B * JMP SETUP CHECK FOR PROPER CONFIGURATION 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 DSNL OCT 146200 DIAGNOSTIC SERIAL NUMBER FMTR BSS 1 FORMATTER * * * CONTROL LINKAGE AND DATA REFERENCES * CFIG DEF ZCONF CONFIGURATION SECTION MSGC DEF ZMSGC MESSAGE WITH NO HALT MSGH DEF ZMSGH MESSAGE WITH HALT ERMS DEF ZERMS ERROR MESSAGE SWRT DEF ZSWRT SWITCH REGISTER CHECK ROUTINE TSTN OCT 0 CURRENT TEST NUMBER EXRT DEF ZEXRT RETURN TO CONTROL PROGRAM NOP RESERVED * HED POINTERS AND TABLES * * * BASE PAGE POINTERS AND TABLES * * IOIP DEF IODP POINTER TO I/O INST TABLE TSTP DEF TSTD POINTER TO TEST # TABLE STDA OCT 177 POINTER TO STANDARD TESTS STDB OCT 0 DEFAULT TEST HDMP DEF HDMS POINTER TO HEADER MESSAGE * * * HDMS EQU * OCT 6412 ASC 19,PAPER TAPE READER AND PUNCH DIAGNOSTIC ASC 6, DSN XXXXXX/ * * * * PUNCH INSTRUCTION POINTER TABLE SPC 1 IODP DEF PUOTB DEF PUSTC DEF PUSFS DEF TTYCW DEF PULIB DEF PUCLC DEF T5PSC DEF INTPU DEF PUMTB DEF T5PI1 DEF T5PI2 DEF PIOA1 DEF PIOA2 DEF PIOA3 DEF PIOA4 DEF PIOA5 DEF PIOA6 DEF PIOA7 DEF PIOA8 DEC -1 SPC 1 * TEST SEQUENCE POINTER TABLE SPC 1 TSTD DEF TST.0 DEF TST01 DEF TST02 DEF TST03 DEF TST04 DEF TST05 DEF TST06 DEF TST07 DEF TST10 DEF TST11 DEF TST12 DEF TST13 DEF TST14 DEC -1 SPC 4 SPC 1 * READER INSTRUCTION POINTER TABLE SPC 1 IODR DEF RDSTC DEF RDSFS DEF RDLIA DEF RDRLA DEF T5RSC DEF T5RDR DEF RDRSC DEF RDVR1 DEF RDVR2 DEF RIOA1 DEF RIOA2 DEF RIOA3 DEF RSRSC DEC -1 * * * * * SPC 1 * LINKS SPC 1 CONF DEF CONFG SO.SO DEF PINTR RDLNK DEF RDDVR BIT05 OCT 40 PULNK OCT 0 RRLNK OCT 0 X.CFG DEF IODR XZISC DEF ZISC XSTEX DEF ZSTEX .TST0 DEF TST00 * * * HED COMMON SUBROUTINES * SYNC NOP LDA ND100 INITIALIZE STA SNCTR XTHRU 100 HRSYN JSB READ RETURN W. 1. BYTE READ SZA,RSS LEADER GONE? JMP *+3 NO - DO ANXTHRU STA FIBYT STORE FIRST BYTE AWAY JMP SYNC,I YES, EXIT ISZ SNCTR TOO MANY TIMES? JMP HRSYN NO, TRY AGAIN JSB ERMS,I YES, DIE DEF SYTOM TELL OPPERATOR SYNC XTHRU JMP SYNC+1 DO AGAIN * ND100 DEC -1000 SNCTR OCT 0 FIBYT OCT 0 SPC 1 * SPC 1 LEADR NOP OUTPUT ALL ZEROS LEADER LDB ND060 INITIALIZE STB SPAD2 60 COUNTER CLB OUTPUT A 60 JSB PUDVR ZERO LEADER ISZ SPAD2 JMP *-2 CMB OUTPUT AN ALL JSB PUDVR ONES SYNC CHARACTER JMP LEADR,I EXIT * ND060 DEC -60 SPAD2 OCT 0 D22 DEC 22 * * * * * SKP * SPC 1 PUDVR NOP PUNCH ROUTINE (SIO) STB SPAD3 SAVE (BREG) LDA USSC CHECK IF TAPE LOOP MUST BE RAL PUNCHED ON A TTY. SSA JMP TTYCW-3 YES, OMIT PUNCH STATUS CHECK PULIB LIB PUNCH CHECK PUNCH SZB STATUS JSB LTSRP LDB PUTMC INITIALIZE STB SPAD4 XTHRU COUNTER LDB PUTMC+1 TTYCW OTB PUNCH PUT TTY INTO OUTPUT MODE LDB SPAD3 REGAIN PUOTB OTB PUNCH DATA & OUTPUT PUSTC STC PUNCH,C HIT THE PUNCH PUSFS SFS PUNCH READY TO JMP *+3 RESUME? PUCLC CLC PUNCH DISALLOW PUINT JMP PUDVR,I YES, EXIT ISZ SPAD4 NO, BUMP XTHRU COUNTER JMP PUSFS AND REITERATE CLF 0 INTSYS OFF FOR TCP JSB ERMS,I BUMPED OUT, SOMETHING IS DEF PUTMO WRONG, REPORT TO TCP JMP PUDVR,I * PUNCH EQU 00B SPAD3 OCT 0 SPAD4 OCT 0 PUTMC OCT 100000 OCT 110000 * * * * * SKP * LTSRP NOP LOW TAPE STATUS REPORT JSB ERMS,I DEF LTMSG JMP LTSRP,I SPC 1 * SPC 1 READ NOP READ ROUTINE (SIO) LDA PUTMC INITIALIZE THE TIMES STA SPADL THRU THE SFS ROUTINE RDSTC STC RDR,C HIT THE READER RDSFS SFS RDR READY TO READ? JMP CNTR1 RUN THRU THE DROP OUT COUNTER RDLIA LIA RDR GOTCHA JMP READ,I EXIT WITH A = READ CHARACTER CNTR1 ISZ SPADL INCREMENT TIMES THRU COUNTER JMP RDSFS NO DROP THRU YET CLF 0 JSB ERMS,I DROP THRU HAS OCCURRED, REPORT DEF RDTOM TO TCP VIA ERMS JMP READ,I BACK TO ROUTINE * RDR EQU 00B SPADL OCT 0 SPC 1 * SPC 1 RESYN NOP RE-SYNC IF NECESSARY JSB SYNC MAKE SURE RESYNC IS NECESSARY JSB READ ENTIRE 1. BLOCK IS PASSED SZA UNTIL LEADER IS REACHED JMP *-2 AGAIN. NO STILL IN BLOCK JSB READ YES, CHECK FOR 2. FEEDHOLE SZA JMP *-2 JMP RESYN,I * * * * * SKP * PUSSR NOP PUNCH START-STOP ROUTINE ISZ DOYET DO IT YET? JMP PUSSR,I NO, EXIT JSB STPIT DO A STOPIT LDB NXTMR,I NEXT STB DOYET TIMES - CONSTANT ISZ NXTMR ISZ XTHRU XTHRU? JMP PUSSR,I NO, EXIT JSB PUSET YES, RESET EVERYTHING JMP PUSSR,I AND EXIT SPC 1 * SPC 1 PUSET NOP LDB NXTMC INITIALIZE STB DOYET DOYET LDB NDN.8 RESET STB XTHRU XTHRU CTR LDB NXTM1 RESET STB NXTMR TIMER JMP PUSET,I * NDN.8 DEC -8 NXTM1 DEF NXTMC SPC 1 * SPC 1 STPIT NOP STA STPAD SAVE (AREG) LDA OCTCC GET TC JSB TMRR,I EXECUTES 100 MS DELAY LDA STPAD RESTART (AREG) JMP STPIT,I AND EXIT * STPAD OCT 0 OCTCC DEC 100 DOYET OCT 0 NXTMC DEC -5 DEC -22 DEC -13 DEC -35 DEC -17 DEC -26 DEC -4 DEC -32 NXTMR DEF NXTMC XTHRU OCT 0 * * * * * SKP RSCHK NOP INSURE READER PRESENCE LDA RDCHN GET READER SELECT CODE SZA ZERO? JMP RSCHK,I NO, OK TO EXECUTE TEST LDA RSCHK YES, GET RETURN ADDRESS ADA XNEG2 LDA A,I AND EXIT FROM THE TEST JMP A,I THAT CALLED THIS ROUTINE. RDCHN OCT 0 SPC 1 * SPC 1 PSCHK NOP INSURE PUNCH PRESENCE LDA PUCHN GET PUNCH SELECT CODE SZA IS THE PUNCH PRESENT? JMP PSCHK,I YES, GO AND EXECUTE TEST LDA PSCHK NO, RETFL ADA XNEG2 LDA A,I ADDRESS, AND JMP A,I EXIT * PUCHN OCT 0 XNEG2 DEC -2 SPC 1 * SPC 1 BPRCK NOP BOTH PUNCH AND READER CHECK LDA RDCHN GET READER SELECT CODE SZA,RSS PRESENT? JMP *+4 NO, GO SET UP RETURN ADDRESS LDA PUCHN YES, NOW CHECK FOR PUNCH SZA PRESENT? JMP BPRCK,I YES, BOTH PRESENT, EXECUTE TEST LDA BPRCK NO, GET RETURN JMP RETFL ADDRESS AND EXIT * * * * * SKP SETUP NOP CLC INTP,C OFF THE INTERRUPT SYSTEM LIA SW GET SWITCH REGISTER CONTENTS STA USSC SAVE (SWR) FOR TCP ALF,ALF POSITION THE READER SELECT CODE RAL,RAL FOR ISOLATION. AND XM.77 MASK OFF ALL BUT READER S.C. STA RDCHN SZA IS SWR VALUE GREATER THAN ZERO? JSB CONF,I YES, GO TO CONFIGURATION ROUTINE LIA SW NO, NOW CHECK THE PUNCH AND XM.77 ELIMINATE ALL SAVE THE PUNCH SC STA PUCHN SZA IS PUNCH SC PRESENT IN THE SWR? JMP CFIG,I YES, DO CONFIGURATION ROUTINE LIA SW NO, INSURE READER ALF,ALF IS PRESENT TO PREVENT RAL,RAL THE DIAGNOSTIC BEING CONFIGURED AND XM.77 NO READER OR NO PUNCH SZA,RSS IS THERE A READER? JMP CONF,I NO, CRASH AND TRY AGAIN CLA CLEAR S-REG OTA SW HLT 74B YES, GO AHEAD AFTER THE HALT JMP XSTEX,I AND DO THE DIAGNOSTIC * XM.77 OCT 77 * * * SPC 5 TST.0 EQU * SPC 1 NOP JSB PSCHK WANT TO RUN TEST? JSB MSGC,I YES, TELL THE OPERATOR DEF PIOMS JSB .TST0,I DO TST00 (BIO ON PUNCH) JMP TST.0,I EXIT * * * * * SKP MKBUF NOP MAKE ERROR MESSAGE BUFFER STA SPADD SAVE THE STB SPADE A AND B REGISTERS LDA NEG.4 INITIALIZE FOUR TIMES THRU STA SPADG THIS ROUTINE COUNTER MKBF1 LDA SPADD FOR NEXT TIME THRU ROUTINE AND MASK1 LEAVE ONLY BIT 0 STA B SAVE BIT 0 IN THE B REGISTER LDA SPADD GET THE WORD AGAIN RAR POSITION NEXT BIT IN BIT 0 STA SPADF STORE IN TEMPORARY SCRATCH PAD RAR POSITION FOR NEXT TIME THRU STA SPADD AND STORE BACK IN SCRATCH PAD LDA SPADF GET WORD BACK FROM TEMP SPAD AND MASK1 MASK OFF BITS 15 THRU 1 ALF,ALF (AREG0-7)-(AREG8-15) IOR B PUT THE TWO BITS TOGETHER IOR NUMSK ADD THE ASCII NUMBER MASK STA SPADE,I STORE IN THE OUTPUT BUFFER LDA SPADE DECREMENT THE CMA,INA POINTER TO THE CMA OUTPUT BUFFER STA SPADE ADDRESS ISZ SPADG COUNT 4 TIMES THRU ROUTINE JMP MKBF1 NOT FOURTH TIME, DO AGAIN JMP MKBUF,I EXIT, THE BUFFER IS COMPLETE * SPADD BSS 1 SCRATCH SPADE BSS 1 PAD REGISTERS SPADF BSS 1 D THRU G FOR SPADG BSS 1 THIS ROUTINE MASK1 OCT 1 BIT STRIPPER NEG.4 DEC -4 8 BIT COUNTER CONSTANT NUMSK OCT 30060 ASCII IOR MASK * ABBGM ASC 2,E040 ASC 3, BAD= ARB76 OCT 30060 AREGISTER BITS 7&6 ARB54 OCT 30060 AR B 5&4 ARB32 OCT 30060 AR B 3&2 ARB10 OCT 30060 AR B 1&0 OCT 20040 SPACE-SPACE ASC 3,GOOD= BRB76 OCT 30060 BREGISTER BITS 7&6 BRB54 OCT 30060 5&4 BRB32 OCT 30060 3&2 BRB10 OCT 30060 1&0 OCT 27400 ASCII/ M.377 OCT 377 NEG.1 DEC -1 ND008 DEC -8 .BIT1 OCT 2 SPADX OCT 0 TEMP4 OCT 0 HED MESSAGES * SPC 1 PUTMO ASC 10,E031 PUNCH TIME OUT/ SPC 1 P.TOM ASC 17,E032 PUNCH ROUTINE NOT COMPLETED SPC 1 LTMSG ASC 11,E033 LOW TAPE SUPPLY/ SPC 3 * SPC 1 RDTOM ASC 11,E041 READER TIME OUT/ SPC 1 OVRUN ASC 13,E042 MISSING SYNC CHARTR/ SPC 1 RSMSG ASC 6,H043 RESYNC/ SPC 1 IRDTO ASC 18,E044 READER INTRPT DRIVER TIME OUT/ SPC 3 SYTOM ASC 16,E045 SYNC CHARTR NOT FOUND AFTER ASC 11, 1000 (OCTAL) CHARTRS/ SPC 1 * SPC 1 PIOMS ASC 10,H050 BI-O ON PUNCH/ SPC 1 T3MSG ASC 15,H051 ALL CHARTR COMBINATIONS, ASC 5,PUNCH ONLY OCT 6412 ASC 14, TURN PUNCH ON, PRESS RUN/ SPC 1 T4MSS ASC 15,H052 ALL CHARTR COMBINATIONS, ASC 3,VERIFY OCT 6412 ASC 14, TEAR TAPE AT PUNCH, PLACE ASC 11, IN READER, PRESS RUN/ SPC 1 INMS1 ASC 18,H054 PLACE LOOP IN READER-PRESS RUN OCT 6412 ASC 16, TO START READ, SET BIT0 TO 1 OCT 6412 ASC 16, TO EXIT TEST, SET BIT0 TO 0/ SPC 1 T1MSG ASC 10,H055 BI-O ON READER/ SPC 1 SKP POMSG ASC 22,H056 TURN PUNCH ON, PRESS RUN. PUNCH ROUTINE OCT 6412 ASC 21, WILL START. LOAD THE TAPE BEING PUNCHED OCT 6412 ASC 10, INTO THE READER. OCT 6412 ASC 16, TO START READ, SET BIT0 TO 1 OCT 6412 ASC 13, TO EXIT, SET BIT0 TO 0/ SPC 1 T5M1H ASC 14,H057 TO COMPLETE, TEAR TAPE, ASC 6, PRESS RUN/ SPC 1 T7MSG ASC 18,H060 TO MAKE LOOP, PUNCH ON AND RUN/ SPC 1 INITM ASC 9,H061 RESET BIT 0/ * T10MS ASC 21,H062 OUTPUT BIT0-7 TO PUNCH. TO START SET OCT 6412 ASC 21, BIT13, PRESS RUN. TO EXIT CLEAR BIT13/ * RSTM1 ASC 15,H063 READER SPEED TEST. PLACE ASC 7,LOOP IN READER OCT 6412 ASC 14, BIT 5=0 FOR 2748-58, BIT ASC 13,5=1 FOR 2737. PRESS RUN./ * RMXEM ASC 11,E064 2737 SPEED SLOW/ * HPREM ASC 12,E065 2748-58 SPEED SLOW/ * RSEND ASC 11,H066 TEST 11 COMPLETE/ * PSTM1 ASC 11,H100 PUNCH SPEED TEST. OCT 6412 ASC 15, BIT 6=0 FOR 2895 OR BIT 6=1 ASC 10, FOR 2753-PRESS RUN/ * TLYEM ASC 11,E101 2753 SPEED SLOW/ * FCTEM ASC 11,E102 2895 SPEED SLOW/ * PSEND ASC 11,H103 TEST 12 COMPLETE/ * * * MSEND EQU * HED EXECUTIVE CONTROL ORG 2000B ZSTEX CLC INTP,C TURN I/O SYSTEM OFF, CLEAR FLAG LDA DSNL ADD DSN TO DIAGN HEADER MESSAGE, CCE LOAD DSN, (LOWER BYTE) LDB HDMP DETERMEN STORAGE LOCATION ADB D22 OF CONVERTED DSN & JSB O2AS,I GO TO OCTAL-ASCII CONVER. JSB MSGC,I OUTPUT HEADER MESSAGE DEF HDMS CLA CLEAR PASS STA ZEOLC COUNT ZEXCZ LDB ZSW9 CHECK FOR USER SELECTION REQ JSB SWRT,I JMP ZUSR IT'S USERS CHOICE ZNUSR LDA STDA GET STANDARD TEST RUN LDB STDB * JMP ZEXC * ZUSR LIA SW READ S-REG AND CLEAR AND ZSWM9 BIT 9 OTA SW LDA ZSINA RETRIEVE PREVIOUS RUN LDB ZSINB HLT 75B WAIT FOR USER INPUT ZEXC STA ZUINA SAVE STB ZUINB USER STA ZSINA INPUT STB ZSINB PROGRAM CCA SET TEST NUMBER STA TSTN TO -1 STA ZCFTT AND STORE CLA STA ZTSTA CLEAR TEST RUN FLAG * SKP