ASMB,A,B,C,L 06/30/76 13184A/7970E DIAGNOSTIC HED ** HP - 13184A/7970E DIAGNOSTIC ** 13184 - 19001 ** * * 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, TAPE SPEED AND * DMA CHANNEL DESIRED. * * BITS 0 - 5 SELECT CODE * BIT 6 12.5 IPS * " 7 25.0 " * " 8 37.5 " * " 9 45.0 " * " 11 SET - USE DMA CHANNEL 2 * NOT SET - USE DMA CHANNEL 1 * * E. PRESS RUN AND WAIT FOR HALT 102074B. * F. LOAD SWITCH REGISTER: * * IF SET: * * 15 = HALT AT END OF EACH TEST * 14 = SUPPRESS ERROR HALTS * 13 = LOOP ON TEST(S) * 12 = LOOP ON DIAGNOSTIC * 11 = SUPPRESS ERROR MESSAGES * 10 = HALT AT EOT WITH MEMORY DATA REGISTER = * NEXT FORMAT I.D. * 9 = NOT USED * 8 * = FORMAT I.D. * 6 * 5 = INHIBIT DMA TRANSFERS, USE SKIP-FLAG READ * 4 = SUPPRESS REWIND TO LOAD POINT TESTS * 3 = SELECT UNIT 3 * 2 = SELECT UNIT 2 * 1 = SELECT UNIT 1 * 0 = SELECT UNIT 0 * * G. PRESS RUN. * H. RESTART - LOAD ADDRESS 2000B. * I. RECONFIGURE - LOAD ADDRESS 100B. * * CONTROL PROGRAM HALTS * * 102077 DIAGNOSTIC COMPLETED * 102076 NORMAL HALT AFTER CURRENT TEST(A=TEST #) * 102074 CONFIGURATION COMPLETED * 102073 CONFIGURATION HALT,NO SELECT CODE ENTERED * IN SWITCH REGISTER * 102072 CONFIGURATION HALT,NO TAPE DRIVE SPEED * ENTERED IN SWITCH REGISTER * 102071 UNIT SELECTED IS BUSY OR OFF-LINE * 102070 NO UNIT SELECTED IN SWITCH REGISTER * * 102057 DATA RECORD COULD NOT BE READ SUCCESSFULLY * 102056 ERROR BUFFER IS FULL * 102055 ERROR HALT (A= TEST #) * * 10200X FORMAT ERROR HALT, EXCEPT IF SWITCH REGISTER * BIT 10 IS SET * * 106077 TRAP CELL HALT * ORG 100B SUP START JMP INITI,I * * LINKS TO DIAGNOSTIC CONFIGURATOR * FSTIN BSS 1 FAST INPUT DEVICE SLWOT BSS 1 SLOW OUTPUT DEVICE FSTOT BSS 1 FAST OUTPUT DEVICE SLWIN BSS 1 SLOW INPUT DEVICE FWAM DEF END FIRST WORD AVAIL. MEMORY LWAMX BSS 1 LAST WORD AVAIL. MEMORY MGTP BSS 1 MAGNETIC TAPE LINK TMC BSS 1 1 MILL. SEC. TIME OUT CONSTANT BSS 1 FAST INPUT SELECT CODE OTSC1 BSS 1 SLOW OUTPUT SELECT CODE BSS 1 FAST OUTPUT SELECT CODE BSS 1 SLOW INPUT SELECT CODE CPTO BSS 1 COMPUTER TYPE & OPTIONS BSS 1 USERS CARD TYPE & SC MEM BSS 1 MEMORY SIZE BSS 1 INTERNAL SWITCH REGISTER TIMR BSS 1 1 MILL. SEC. TIMER SWRC BSS 1 SWITCH REGISTER CHECK I2ASC BSS 1 INTEGER TO ASCII CONVERSION O2ASC BSS 1 OCTAL TO ASCII CONVERSION ASCIO BSS 1 ASCII TO OCTAL OR INTEGER DSN OCT 112102 DIAG. SERIAL NUMBER FMTR BSS 1 FORMATTER ROUTINE EWORD OCT 125252 PARITY ERROR WORD SPC 1 A EQU 0 A - REGISTER B EQU 1 B - REGISTER DATA EQU 0 DATA CHANNEL CMMD EQU DATA+1 COMMAND CHANNEL SWRG EQU 1 SWITCH REGISTER DMA EQU 6 DMA CHANNEL 1 .INBF EQU 5700B INPUT BUFFER SPC 1 ANBUF BSS 1 ANPAT BSS 1 AREG BSS 1 AREG0 BSS 1 AREG1 BSS 1 AREG2 BSS 1 AREG3 NOP BASE1 BSS 1 BREG BSS 1 BREG1 BSS 1 BREG2 NOP BUFAD BSS 1 CURRENT INPUT BUFFER STARTING ADDR. CNT1 BSS 1 CNT11 BSS 1 COUNT BSS 1 CYCNT BSS 1 CYCLE COUNT DGCNT NOP DMACW BSS 1 DMA CONTROL WORD 1 ERBUF BSS 1 EXSTA NOP FLAG7 BSS 1 ID BSS 1 CURRENT TAPE FORMAT I.D. ITCNT BSS 1 RECNT BSS 1 DMA WORD COUNT AFTER READ ..SEP NOP SELCM BSS 1 SPACE ASC 1, STAT1 BSS 1 STAT2 NOP STATU BSS 1 CURRENT STATUS SWREG BSS 1 TBF00 BSS 1 TBF01 BSS 1 TBF02 BSS 1 TBF04 BSS 1 TBF05 BSS 1 TBF06 BSS 1 TBF08 BSS 1 TBF09 BSS 1 TMCN1 BSS 1 TMCN2 BSS 1 TNUMB BSS 1 CURRENT TEST NUMBER TIME BSS 1 WDCNT BSS 1 - (CURRENT EXPECTED RECORD LENGTH) SPC 1 THIRD DEC -3 N1 DEC -1 N2 DEC -2 N3 DEC -3 N4 DEC -4 N5 DEC -5 N8 DEC -8 N9 DEC -9 N11 DEC -11 N64 DEC -64 N400 DEC -400 N408 DEC -408 N1024 DEC -1024 D0 DEC 0 D1 DEC 1 D2 DEC 2 D4 DEC 4 D8 DEC 8 D16 DEC 16 D3 DEC 3 D6 DEC 6 D10 DEC 10 D12 DEC 12 D13 DEC 13 D14 DEC 14 D18 DEC 18 D19 DEC 19 D20 DEC 20 D21 DEC 21 D23 DEC 23 D25 DEC 25 D26 DEC 26 D39 DEC 39 D50 DEC 50 D9999 DEC 9999 N4000 DEC -4000 LWAM DEF IENT1 SWRCK DEF SW TG NOP * ADD1 DEF INTR1 ADD2 DEF INTR2 ADD3 DEF INTR3 ADD4 DEF INTR4 ADD5 DEF INTR5 ADD6 DEF INTR6 ADD7 DEF INTR7 ADD8 DEF INTR8 ANSI. DEF ANSI .ANSA DEF ANSIA .ANSB DEF ANSIB BASE. DEF BASE CMDS0 DEF RRF CMDS1 DEF BSR .CSRB DEF CSRB DEL0 DEF DELY0 DEF DELY0+2 DEF DELY0+4 DEF DELY0+6 DHT55 DEF HLT55 ERRBF DEF ERBFR .HEAD DEF HEAD IDPT DEF IDFOR INBUF DEF .INBF .IDFO DEF IDFOR INITI DEF IENT1 .LBF DEF LBF ..LBF DEF LBF MDIAI DEF STRT1 .MS00 DEF MS00 .MS01 DEF MS01 .MS02 DEF MS02 .MS03 DEF MS03 .MS04 DEF MS04 .MS05 DEF MS05 .MS06 DEF MS06 .MS07 DEF MS07 .MS12 DEF MS12 .MS13 DEF MS13 .MS14 DEF MS14 .MS16 DEF MS16 .MS17 DEF MS17 .MS19 DEF MS19 .MS20 DEF MS20 NTSTI DEF NTEST ONES DEF D0 PRSTI DEF PRSTA RECYL DEF RECYC SELCT DEF ATSEL SLCMS DEF ATSEL TBF10 DEF TBF09 TMPRD DEF .TMPR SPC 1 ERWRD DEF EWORD .KEYP DEF KEY KEYPT DEF KEY .TSRB DEF TSRB .TSAW DEF TSAW .CSAW DEF CSAW SPC 1 DATAC NOP DATA CHANNEL SELECT CODE CMMDC NOP COMMAND CHANNEL SELECT CODE DEFLG NOP DATA ERROR RECORD FLAG LPCYC NOP LOOP ENABLE FLAG ODD NOP ODD BYTE RECORD FLAG RDOP NOP READ OPERATION FLAG SPC 1 ASCZ OCT 30060 B7 OCT 7 B17 OCT 17 B37 OCT 37 B40 OCT 40 B100 OCT 100 B200 OCT 200 B377 OCT 377 B400 OCT 400 B500 OCT 500 B760 OCT 760 B1001 OCT 1001 B2000 OCT 2000 B3000 OCT 3000 B4000 OCT 4000 B3777 OCT 3777 B70K OCT 70000 DMAMS OCT 177737 MASK7 OCT 37477 MSK2M OCT 140000 MSKT8 OCT 177400 NOT15 OCT 77777 NOTET OCT 17737 NOTTM OCT 17577 PADAT OCT 401 STRIP OCT 17773 HLT55 OCT 102055 BHLT OCT 106077 SPC 1 * * SWITCH REGISTER MASKS * SW4 EQU D16 SW5 EQU B40 SW10 EQU B2000 SW11 EQU B4000 SW12 OCT 10000 SW13 OCT 20000 SW14 OCT 40000 SW15 OCT 100000 SPC 1 ATSEL EQU * OCT 1400 OCT 2400 OCT 4400 OCT 10400 OCT 0 RRF OCT 23 FSR OCT 3 FSF OCT 203 OCT 110 BSR OCT 41 BSF OCT 241 REW OCT 101 CLR OCT 110 RWO OCT 105 RRFPE OCT 20023 SPC 1 * THESE VALUES OVERLAID BY CONFIGURATION SECTION * DELY0 DEC 10 1600 CPI 45.0 IPS DEC 2 " " " " DEC 20 800 " " " DEC 3 " " " " DEC 30 556 " " " DEC 4 " " " " DEC 84 200 " " " DEC 10 " " " " * TIM1 NOP THESE VALUES USED BY TESTS TIM2 NOP 28-30 TIM3 NOP * * * TIMING CONSTANTS FOR COMMAND EXERCISE TIMER * .TMPR DEC 30 30 MSEC. FOR CMMD EXERCISE DEC 15 15 MSEC. FOR CMMD EXERCISE DEC 10 10 MSEC. FOR CMMD EXERCISE SPC 1 SKP * TRACK SINGLE ROTATING BIT PATTERN * TSRB EQU * OCT 2001 OCT 10000 OCT 20100 OCT 100002 OCT 4004 OCT 420 OCT 40 OCT 40200 OCT 1010 * * TRACK SAWTOOTH PATTERN * TSAW EQU * OCT 177773 OCT 175352 OCT 145212 OCT 5010 OCT 0 * * CHANNEL SAWTOOTH PATTERN * CSAW EQU * OCT 177577 OCT 37437 OCT 7407 OCT 1401 OCT 377 * * CHANNEL SINGLE ROTATING BIT PATTERN * CSRB EQU * OCT 402 OCT 2010 OCT 10040 OCT 40200 * MSIGN EQU SW15 SPC 1 JSUBA JSB ANSI.,I JSUBR JSB RAND TRAD1 JSB ADD1,I TRAD2 JSB ADD2,I TRAD3 JSB ADD3,I TRAD4 JSB ADD4,I TRAD5 JSB ADD5,I TRAD6 JSB ADD6,I TRAD7 JSB ADD7,I TRAD8 JSB ADD8,I SKP * FORMAT ID TABLE * SPC 1 IDFOR OCT 102000 9 TRACK PE 1600 CPI OCT 102001 9 TRACK NRZ 800 CPI OCT 102002 7 TRACK NRZI 800 CPI EVEN PARITY OCT 102003 " " " 556 " " " OCT 102004 " " " 200 " " " OCT 102005 " " " 800 " ODD " OCT 102006 " " " 556 " " " OCT 102007 " " " 200 " " " OCT 0 START OVER SPC 1 * ANSI FORMAT "A" PATTERN WORDS * SPC 1 ANSIA EQU * OCT 177777 OCT 67557 OCT 20040 OCT 130260 OCT 177660 OCT 67440 OCT 20157 OCT 130377 SPC 1 * ANSI FORMAT "B" PATTERN WORDS * SPC 1 ANSIB EQU * OCT 177777 OCT 137276 OCT 0 OCT 40501 OCT 177501 OCT 137000 OCT 276 OCT 40777 SKP KEY EQU * OCT 61470 OCT 22533 OCT 65552 OCT 22004 OCT 20452 OCT 26412 OCT 22004 OCT 20045 OCT 22413 OCT 4312 OCT 6353 OCT 4312 OCT 6740 OCT 2642 OCT 6740 OCT 2642 OCT 6740 OCT 2642 OCT 140 OCT 6042 OCT 2100 OCT 6003 OCT 73635 OCT 20755 OCT 22554 OCT 134500 * * DECREMENT THE TEST NUMBER * SPC 1 DECNO NOP LDB TNUMB ADB N1 STB TNUMB JMP DECNO,I SPC 1 * RANDOM NUMBER GENERATOR * SPC 1 RAND NOP LDA BASE LOAD THE BASE ADA PRIME SUBTRACT THE PRIME SSA SKIP IF IT'S STILL POSITIVE LDA BASE THE BASE ISN'T BIG ENOUGH CLE,ELA DOUBLE THE BASE OR REMAINDER STA BASE -FOR THE NEXT TRY JMP RAND,I SPC 1 PRIME DEC -31069 BASE BSS 1 SKP EOTTS NOP JSB STATS GET STATUS AND B40 TEST FOR EOT CPA B40 JMP EENT0 CHECK FOR THE HALT ISZ EOTTS EXIT P+2 JMP EOTTS,I EENT0 LDB SW10 SWITCH 10 SET? JSB SWRCK,I RSS JMP REWD NO, REWIND THE TAPE JMP EOTTS,I YES, EXIT AND STOP REWD LDA REW START THE DRIVE REWINDING JSB ACMMD JSB RWDET WAIT FOR IT TO FINISH CLA,CLE LDB .MS06 JSB FMTR,I 'EOT' JSB PCYCT ADD THE CYCLE COUNT JMP RECYL,I SPC 1 RWDET NOP REWIND DETECT ROUTINE JSB FLGWT WAIT FOR THE COMMAND FLAG JSB STATS GET STATUS AND B3000 CPA B3000 JMP *-3 LOOP UNTIL FINISHED REWINDING JMP RWDET,I * RWDWT NOP JSB FLGWT WAIT FOR COMMAND FLAG JSB STATS GET THE STATUS AND KEEP AND B3000 -CHECKING FOR REWIND STATUS CPA B3000 JMP *-3 LOOP UNTIL FINISHED REWINDING LDA STATU RETRIEVE THE STATUS AND SLA -CHECK THE OFF-LINE BIT JMP BENT0 IT'S SET, HALT JMP RWDWT,I SPC 1 * ** PROGRAM'S FORMAT FLAG SET ** SPC 1 FORFL NOP CLA JSB FORID CHECK THE RECORDING FORMAT JMP *+3 IT'S 9 TRACK INA,RSS IT'S 7 TRACK EVEN PARITY IOR MSIGN IT'S " " ODD " STA FLAG7 SET THE PROGRAM'S FORMAT FLAG JMP FORFL,I SKP * ** TAPE MARK STATUS CHECK ** SPC 1 * CALL: "A" - CONTAINS THE CURRENT STATUS WORD * * RETURN: P+1 - NO TAPE MARK FOUND OR HAS EXTRA STATUS * P+2 - GOOD TAPE MARK FOUND * "A" - CONTENTS ARE LOST SPC 1 TMARK NOP SZA,RSS IS THERE ANY STATUS ? JMP TMARK,I NO, EXIT P+1 AND NOTTM MASK OUT THE TAPE MARK BIT SZA,RSS IS THERE ANYOTHER STATUS ? ENT39 ISZ TMARK NO, INCREMENT THE RETURN ADDRESS JMP TMARK,I SPC 1 * TELEPRINTER CHECK ROUTINE * SPC 1 * RETURN: P+1 - THERE ISN'T A TELEPRINTER IN THE SYSTEM * P+2 - THERE IS A TELEPRINTER IN THE SYSTEM SPC 1 TTYCK NOP STA AREG1 SAVE A REGISTER LDA OTSC1 CPA D0 IS THERE A TTY SELECT CODE? JMP *+2 NO TTY ISZ TTYCK LDA AREG1 RESTORE A REG. JMP TTYCK,I SPC 1 * ** SWITCH 15 CHECK ROUTINE ** SPC 1 S15CK NOP LDB SW15 JSB SWRCK,I SWITCH 15 SET? RSS YES JMP S15CK,I IT'S NOT SET, EXIT LDA TNUMB LOAD TEST NUMBER LDB STATU AND STATUS HLT 76B STOP ! JMP S15CK,I SPC 1 * * SWITCH 11 CHECK * * JSB S11CK * < SWITCH 11 SET > * < SWITCH 11 NOT SET > *