HP 3000 Simulator Debugging In Progress ======================================= Listed below are problems in the HP 3000 simulator that are currently being debugged. ---------------------------- HP32002E.01.00 MPE Operation ---------------------------- - Attempting to RESTORE U00U232A.USL.SYS from tu.tape causes a SF 206 and leaves the USL subdirectory with a file that cannot be PURGEd. ----------------------------------------------------------- CARTRIDGE DISC (HP 30129A) DIAGNOSTIC OFF-LINE (D419A.01.4) ----------------------------------------------------------- - NOTE: The diagnostic seems to malfunction if Section Register bits 13 or 15 are turned on!!! - The diagnostic fails step 66 (retry counter test) if REALTIME is set. If FASTTIME, the diagnostic passes. Setting the STIME (full sector time) greater than about 5300 causes the failure; the REALTIME value is 138, corresponding to 347.22 usec, but it is multiplied by the sector delta (47), giving an equivalent value of 6527. The reported failure is E66 00 TOTAL INTERRUPTS 09 SHOULD BE 10. However, a trace shows 10 interrupts occurring. The diagnostic does writes a bad sector at 1/1/42 and then reads it: Channel loaded IOCW 040000 (Control) from address 102757 Channel loaded IOAW 007600 Set File Mask from address 102760 Channel loaded IOCW 040000 (Control) from address 102761 Channel loaded IOAW 006000 Address Record from address 102762 Channel loaded IOCW 067776 (Write) from address 102763 Channel loaded IOAW 045765 from address 102764 Channel loaded IOCW 020000 (Interrupt) from address 102765 Channel loaded IOAW 177777 from address 102766 Channel loaded IOCW 040000 (Control) from address 102767 Channel loaded IOAW 002400 Read from address 102770 Channel loaded IOCW 077600 (Read) from address 102771 Channel loaded IOAW 046120 from address 102772 Channel loaded IOCW 004000 (Conditional Jump) from address 102773 Channel loaded IOAW 102761 from address 102774 Channel loaded IOCW 034000 (End with Interrupt) from address 102775 Channel loaded IOAW 177777 from address 102776 The diagnostic expects one original try, then eight retries, then a final interrupt when the retry counter expires, for a total of 10. >>> The diagnostic sits in a timed loop, and if it expires before the final interrupt, it prints the error message with the count as of that point! The loop consists of an outer loop of 300 executions of an inner loop of 150 executions of the MTBA P+0 instruction. This produces a time of ~48,000 instructions. At 2.5 usec/instruction, this represents 120.0 msec. BUT...each failed sector read is followed by a 47-sector rotation before the sector may be reread, which requires 16.32 msec each (6527 instructions). Eight retries therefore takes 130.55 msec, so the timed loop expires. >>> The problem is that MTBA P+0 takes longer than the average 2.5 usec. It takes a minimum of 23 microinstructions (4.0 usec) from LUT entry, not including the EA time. Changing 00.020124 from 000454 -> 000620 (300. -> 400.) works around the issue. Note that simply decrementing sim_interval twice for the MTBA instruction works for the disc diagnostic but fails Step 532 of the tape diagnostic. This is because the tape data transfer service event time counts down twice as fast, while the multiplexer channel data transfer polls occur at the usual one per instruction, leading to a data overrun. -------------------------------------------- HP 30115A 9-TRACK MAGNETIC TAPE (D433A.01.4) -------------------------------------------- - (MTB) calculated crc word = 141400 E274 STEP-0434 COMP. AND READ CRCC ARE DIFFER. E116 STEP-0434 EXPECT.- OBTAIN. CRCC 120200 032400 WRZ writes 16 bytes of data, then 6 bytes of zeros, then 2 bytes (240, 200), then 4 bytes of zeros, then 3 bytes (357, 354, 156), then 1 byte of zero. More importantly, the CRC is erroneous, and diag expects the RDC to return the same erroneous CRC (meaning that calculating it won't work!) - (MTB) calculated crc word = 140000 E274 STEP-0437 COMP. AND READ CRCC ARE DIFFER. E116 STEP-0437 EXPECT.- OBTAIN. CRCC 000310 032400 Ditto. - (MT11) P020 HEAD ADJUSTING: HP 9162-0027 (YES/NO)? NO P022 STEP1114 WRITE/READ TEST (%177777) (YES/NO)? YES P056 TYPE SELECTED DRIVE ? 0 P025 LOAD TAPE(RING) IN DRIVE 0 AND RESPOND 'CR' sim> attach ms0 scratch.tape sim> go Q042 TYPE 'YES' (OPERATOR STOPS RUN BY 'CR') Q043 'NO' (TAPE WILL RUN UNTILL END) NO E238 SAME STEP - TAPE ERROR - IN READ DS E238 SAME STEP - TAPE ERROR - IN READ DS ... 00.047603: 100552 >>> Problem is diag attempts to write a record the size of the full tape and the tape library aborts the write after 32768 words. ---------------------------- TERMINAL DATA PD427A 01.01 ---------------------------- - NOTE: Test section 6 seems to pass, but there are no "receive overrun" debug messages! Is this correct?