ASMB,A,B 770223 REV.1708 DSN 111104 HED 12732A/12733A FLEXIBLE DISC DIAGNOSTIC * ORG 0 * * NAME : MFLEX * SOURCE: 12732-18003 * BINARY: 12732-16003 * PROGMR: H.L.CLAWSON * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * **************************************************************** * * SKP ORG 0 SUP * GENERAL OPERATING PROCEDURE * * A. LOAD DIAGNOSTIC CONFIGURATOR. * B. (HALT 102077) CONFIGURE PROGRAM INPUT DEVICE, * CONSOLE DEVICE, & LINE PRINTER (IF AVAILABLE). * LOAD DIAGNOSTIC PROGRAM WITH CONFIGURATOR LOADER. * C. (HALT 102077) SET P-REG = 100B. * SET S-REG BITS 5-0 = SC OF DISKETTE (CONTROL CHANNEL). * PRESS RUN. * D. (HALT 102074) LOAD S-REG WITH OPTIONS. PRESS RUN. * ***** S-REGISTER OPTIONS ***** * * 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 = SUPRESS ERROR MESSAGES * 10 = SUPRESS NON-ERROR MESSAGES * 9 = GO TO USER CONTROL SECTION * (ABORT CURRENT OPERATION) * 8 = SUPPRESS OPERATOR INTERVENTION TESTS * 7 = ECHO CONSOLE I/O ON LINE PRINTER * 6 = SPARE * 5 = ENABLE FORMAT & MARK COMMANDS * 4 = ENABLE FORMAT & MARK COMMANDS * 3 = GO TO OPDSN INPUT SECTION * (ABORT CURRENT OPERATION) * 2 = ALTER PATTERNS IN 'TRAK' * 1 = ENABLE FORMAT & MARK COMMANDS * 0 = ENABLE FORMAT & MARK COMMANDS * NOTE: STANDARD RUN SHOULD BE WITH S-REG = 0 * * TO RESTART WITHOUT RECONFIGURATING, SET P-REG = 2000B, * THEN GO TO D. * TO RECONFIGURE GO TO 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 XXXXXX) * 102075 USER SELECTION REQUEST * 102074 SELECT CODE INPUT COMPLETE * 102073 USER SELECT CODE ERROR * 106077 TRAP CELL HALT * * * * USER CONTROL SECTION * * SWITCH REGISTER BIT 9 IS SENSED AT THE END OF EACH TEST. * IF SET THE COMPUTER HALTS 102075. THE USER MAY THEN * SELECT A TEST SEQUENCE BY ENTERING BITS IN THE * A REGISTER. EACH BIT SET WILL CAUSE ONE TEST TO EXECUTE. * BITS 0-15 OF A CORRESPOND TO TESTS 0-15. * CLEAR A TO RUN STANDARD SEQUENCE OF TESTS. * HED PROGRAM ORGANIZATION CHART * ******************************************* * * CONFIGURATOR 100B * * * LINKAGE TABLE * * * CONTROL LINKAGE * * * DATA STORAGE 1777B * * ******************************************* * * EXECUTIVE CONTROL 2000B * * * TABLE OF I/O INSTRUCTIONS * * * STANDARD DIAGNOSTICS 3777B * * ******************************************* * * OPERATOR DESIGN 4000B * * * GENERAL ROUTINES 5777B * * ******************************************* * * OPDSN SYNTAX CHECK 6000B * * * DISKETTE ROUTINES 11577B * * ******************************************* * * OPDSN USER PROGRAM 11600B * * * 12077B * * ******************************************* * * I/O BUFFERS 12100B * * * N6477B * * ******************************************* * * DIAGNOSTIC N6500B * * * CONFIGURATOR N7777B * * ******************************************* * * * * N = 1 FOR 8K MEMORY * 3 FOR 16K MEMORY * 5 FOR 24K MEMORY * 7 FOR 32K MEMORY * 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 DMAH EQU 6 DMA HIGH CHANNEL DMAL EQU 2 DMA LOW CHANNEL DMA6 EQU 6 DMA CHANNEL 6 DMA7 EQU 7 DMA CHANNEL 7 CC EQU 10B DISKETTE COMMAND CHANNEL DC EQU 11B DISKETTE DATA CHANNEL CH EQU 10B INTERFACE TEST CHANNEL * * ORG 2 HLT 77B DISKETTE LOADER ROM JUMPS HERE JMP CFIG,I GO TO CONFIGURATION SECTION * * ORG 100B * JMP CFIG,I GO TO CONFIGURATION SECTION FAINL BSS 1 FAST INPUT (PHOTO READER) SLOPL BSS 1 SLOW OUTPUT (LIST) FAOPL BSS 1 FAST OUTPUT (DUMP OR PUNCH) SLINL BSS 1 SLOW INPUT (KEYBOARD) FWAM DEF ZZZZZ 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 SCFI BSS 1 SELECT CODE OF FAST INPUT DEVICE SCSO BSS 1 SELECT CODE OF SLOW OUTPUT DEVICE SCFO BSS 1 SELECT CODE OF FAST OUTPUT DEVICE SCSI BSS 1 SELECT CODE OF SLOW INPUT DEVICE CPTO BSS 1 COMPUTER TYPE/OPTIONS USSC BSS 1 USER CARD TYPE AND SELECT CODE MEMO BSS 1 MEMORY SIZE AND TYPE BSS 1 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 111104 DIAGNOSTIC SERIAL NUMBER FMTRL BSS 1 FORMATTER * * * 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 * * DBD EQU FWAM START OF OUTPUT BUFFER DBDI NOP START OF INPUT BUFFER DBCO NOP BUFFER SIZE ERLIM DEC 10 MAX NO. OF ERRORS OUTPUT BY 'COMPARE' COMCH OCT 10 DISKETTE COMMAND CHANNEL DATCH OCT 11 DISKETTE DATA CHANNEL CHAN OCT 6 CURRENT DMA CHANNEL TRACK DEC 67 NO. OF GOOD TRACKS ZEOLC NOP PASS COUNT RETRY NOP NUMBER OF RETRIES PERMITTED COP NOP CURRENT DISKETTE OPERATION STATW NOP LAST STATUS RETURNED STEXP NOP EXPECTED STATUS MASK NOP STATUS MASK CSEC NOP CURRENT SECTOR(TRACK X 30 + SECTOR) DRIV. NOP CURRENT DRIVE CMOD. NOP DMA/NON-DMA FLAG (104B=DMA) PATRN EQU * OCT 033066 OCT 033066 OCT 125252 OCT 052525 OCT 106615 OCT 106615 OCT 155555 OCT 155555 OCT 133333 OCT 133333 OCT 143306 OCT 143306 RN1 NOP RANDOM OCTAL PATTERN RN2 NOP PATNE DEF * * HED DISKETTE COMMAND CODES * * DISKETTE COMMAND CODES * READ OCT 000000 READ A BLOCK OF SECTORS WRT OCT 100000 WRITE A BLOCK OF SECTORS VRF OCT 040000 VERIFY A BLOCK OF SECTORS SEK OCT 140000 SEEK A TRACK AND SECTOR FMT OCT 140036 FORMAT A TRACK STEPT OCT 147637 STEP IN ONE TRACK BAD OCT 147677 MARK A TRACK DEFECTIVE DUMPS OCT 147737 DUMP A SECTOR STSRQ OCT 147777 REQUEST STATUS UNDF OCT 140037 UNDEFINED COMMAND * PASSW OCT 127207 DISKETTE CONTROLLER PASSWORD * SKP * * * * DISKETTE STATUS WORD * * P 0 0 0 EEEE 0 T S R W C DD * * * P: POWER OFF OR DRIVE NOT READY 100000 B * * EEEE: * 0000 NO ERROR 000000 B * 0001 NO DRIVE POWER 000400 B * 0010 DOOR OPEN 001000 B * 0011 NO DISC IN DRIVE 001400 B * 0100 INVALID COMMAND 002000 B * 0101 SECTOR NOT FOUND 002400 B * 0110 TRACK NOT FOUND 003000 B * 0111 CHECKWORD ERROR 003400 B * 1000 DATA OVERRUN 004000 B * 1001 VERIFY ERROR 004400 B * * * T: TRANSFER COMPLETE 000100 B * * S: SEEK COMPLETE 000040 B * * R: DRIVE NOT READY 000020 B * * W: WRITE PROTECTED DISC 000010 B * * C: DISKETTE CHANGE 000004 B * * DD: DRIVE NUMBER 3,2,1,0 B * HED OPDSN UTILITY COMMANDS - IMMEDIATE EXECUTION ONLY * STTBP EQU * * ASC 2,LP LIST PROGRAM ASC 1, LP.P DEF LP * ASC 2,LPP LIST PROGRAM ON LINE PRINTER ASC 1, LPP.P DEF LPP * ASC 2,EP ERASE OPDSN PROGRAM ASC 1, EPP DEF EP * ASC 2,GO EXECUTE OPDSN PROGRAM ASC 1, GOP DEF GO * ASC 2,DBRK REPLACE OCTAL WORDS ASC 1,II FIRST & LAST WORDS DBRKP DEF DBRK * HED OPDSN PROGRAM STATEMENTS - MAY BE EXECUTED IMMEDIATELY * XLIMP EQU * * ASC 2,CB COMPARE INPUT AND OUTPUT BUFFERS ASC 1,II NO. OF WORDS, NO. OF ERRORS CB.P DEF CB * ASC 2,CBP COMPARE BUFFERS - ERRORS ON PRINTER ASC 1,II NO. OF WORDS, NO. OF ERRORS CBP.P DEF CBP * ASC 2,LO LIST OUTPUT BUFFER ASC 1,II FIRST & LAST WORDS LO.P DEF LO * ASC 2,LOP LIST OUTPUT BUFFER ON PRINTER ASC 1,II FIRST & LAST WORDS LOP.P DEF LOP * ASC 2,LI LIST INPUT BUFFER ASC 1,II FIRST & LAST WORDS LI.P DEF LI * ASC 2,LIP LIST INPUT BUFFER ON PRINTER ASC 1,II FIRST & LAST WORDS LIP.P DEF LIP * ASC 2,EX EXIT OPDSN - RETURN TO STANDARD TESTS ASC 1, EXP DEF EX * ASC 2,TEST EXECUTE TEST ASC 1,I TEST NUMBER(0-15) TESTP DEF TEST * ASC 2,DBFK FILL BUFFER WITH ALTERNATING PATTERN ASC 1,KK OCTAL PATTERN DBFKP DEF DBFK * SPSP EQU *+1 ASC 2,DB FILL BUFFER WITH RANDOM DATA ASC 1, DBP DEF DB * ASC 2,DBSZ PRINT OUTPUT BUFFER SIZE ASC 1, DBSZP DEF DBSZ * ASC 2,MSG OUTPUT 4-CHAR MESSAGE ASC 1,AA MSGP DEF MSG * ASC 2,DLY DELAY ASC 1,I I: MILLISECONDS DLYP DEF TMRR,I HED OPDSN PROGRAM STATEMENTS - DISKETTE CONTROL * ASC 2,FALL FORMAT DISK ASC 1,II NO. OF PATTERNS, OFFSET FALLP DEF FALL (S-REG BITS 1,2,4, & 5 MUST BE SET) * ASC 2,WD WRITE ASC 1,I I: WORD COUNT (I<0: ALL OF DISC) WDP DEF WD (I=-1: SEQUENTIAL DATA - ALL OF DISC) * ASC 2,RD READ ASC 1,IA I: WORD COUNT (I<0: ALL OF DISC) * (I=-1: SEQUENTIAL DATA - ALL OF DISC) RDP DEF RD A:C=COMPARE BUFFERS * ASC 2,VRFY VERIFY (READ WITH CLOSE TOLERANCE) ASC 1,IA I: WORD COUNT (I<0: ALL OF DISC) * (I=-1: SEQUENTIAL DATA - ALL OF DISC) VRFYP DEF VRFY A:C=COMPARE BUFFERS * ASC 2,SK SEEK TRACK & SECTOR ASC 1,II TRACK,SECTOR SKP DEF SK * ASC 2,MOVE ADVANCE/BACKSPACE SECTORS ASC 1,I I: SECTOR COUNT MOVEP DEF MOVE I>0:ADVANCE I<0:BACKSPACE * I=0:POSITION TO LAST DATA TRANSFER * ASC 2,RAND RANDOM SEEK, READ, & WRITE ASC 1,IA I: ITERATION COUNT RANDP DEF RAND A:W=SEEK RANDOM SECTOR, THEN WRITE * RANDOM DATA, READ, & COMPARE BUFFERS * R=SEEK RANDOM SECTOR & READ SEQ. DATA * (MUST FOLLOW WRIT -1 COMMAND) * Z=SEEK RANDOM SECTOR & READ 0 SECTORS * (PHYSICALLY POSITIONS HEAD) * D=SEEK RANDOM SECTOR, THEN WRITE * RANDOM DATA, DUMP, & COMPARE BUFFERS * S=SEEK RANDOM SECTOR (NO HEAD MOVEMENT) * ASC 2,STAT PRINT LAST STATUS ASC 1, STATP DEF STAT * ASC 2,ST STATUS REQUEST COMMAND ASC 1,KK EXPECTED STATUS, MASK STP DEF ST PRINT IF MASKED STATUS NOT = EXPECTED * ASC 2,SD SET UP DRIVE XXXXXX ASC 1,I DRIVE NUMBER SDP DEF SD *