First Commit of my working state
[simh.git] / SDS / sds_diag.txt
1 SDS Diagnostics, using the SDS 930/940 Master Diagnostic Tape image (D930X4A.TAP)
2
3 Summary
4
5 930 0-16K Memory Test passed
6 930 16K-32K Memory Test passed
7 930 Instruction Test passed
8 930 P&S Register Test passed
9
10 ---
11 930 0-16K Memory Test
12
13 sim> att mt diag.tap
14 sim> d a 1
15 sim> d bpt4 1 ; stop every 1/2 cycle
16 sim> boot mt
17
18 HALT instruction, P: 00050 (STA 122,4)
19 sim> ex a
20 A: 00000000 ; error count
21 sim> c
22
23 HALT instruction, P: 37650 (STA 37722,4)
24
25 sim> ex a
26 A: 00000000 ; error count
27
28 ---
29 930 16K-32K Memory Test
30
31 sim> att mt diag.tap
32 sim> d a 2
33 sim> d bpt4 2 ; stop every 1/2 cycle
34 sim> boot mt
35
36
37 HALT instruction, P: 00050 (STA 6)
38 sim> ex a
39 A: 00000000 ; error count
40 sim> c
41
42 HALT instruction, P: 37650 (STA 37406)
43 sim> ex a
44 A: 00000000 ; error count
45 sim> c
46
47 ---
48 930 Instruction Diagnostic
49
50 sim> att mt diag.tap
51 sim> d a 3
52 sim> br 17 ; catch start of diagnostic
53 sim> boot mt
54
55 Breakpoint, P: 00017 (BRR 12,2)
56 sim> nobr 17
57 sim> br 112 ; catch end of diagnostic
58 sim> c
59
60 Breakpoint, P: 00112 (BRU 3)
61
62 ---
63 930 P&S Register Test
64
65 sim> att mt diag.tap
66 sim> d a 4
67 sim> br 60 ; catch end of pass
68 sim> boot mt
69
70 Breakpoint, P: 00060 (BRU 22)
71
72 ---
73 Bugs
74
75 1. IO: Channel WAR not cleared after memory store
76 2. IO: dev_map should contain _flags, not _v_flags
77 3. SYS: Errors in system tables
78 4. SYS: Character conversion table had 0 (space) as illegal, should be -1
79 5. IO: Channel CPW calculation wrong for 12b mode
80 6. RAD, DSK, MT: Instruction masks wrong for RAD, DSK, MT
81 7. IO: Missing subscripts in dev_disp references
82 8. RAD: typos referencing DSK
83 9. IO: SKS 3 call incorrect
84 10. DRM: Drum track mask width incorrect
85 11. CPU: Memory management trap left reason in bogus state, stopped simulator
86 12. CPU: Interrupts require api_lvl as well as api_lvlhi, like PDP-10, PDP-15
87 13. CPU: Bug in find interrupt request
88 14. CPU: Interrupt priority scheme recoded for left to right priority
89 15. CPU: overflow test coded backwards
90 16. CPU: Rotates operate mod 48, not with upper limit of 48 (manual incorrect)
91 17. CPU: RSH not handling >= 48 correctly
92 18. CPU: CNA is 2's complement not 1's complement
93 19. CPU: MUL failed to mask cross product correctly
94 20. CPU: EM2, EM3 test using wrong 'channel'
95 21. CPU: EM3 test tested EM2 instead
96 22. CPU: POP must save EM2, EM3 like BRM (manual incorrect)
97 23. CPU: Shifts need special EA calculation, direct cycles using 9b indexing
98 24. CPU: Shifts ignore addr<13:14>
99 25. CPU: Diagnostic uses undefined shift 'normalize cyclic'
100 26. CPU: Divide 2'c complement of AB leaves B<23> unchanged
101 27. CPU: Divide overflow test requires special cases for divd.h == divr
102 28. CPU: Divide uses non-restoring algorithm
103 29. CPU: Channel terminate output must be deferred until channel buffer clears
104 30. CPU: Channel terminate output to magtape is convert to scan, must be
105 handled in channel logic
106 31. SYS: duplicate entries for shifts
107 32. SYS: mask for shifts did not include indirect flag
108 33. MUX: Genie/SDS use inverted meanings for line enable flag
109 34. MT: missing fseek before write eof
110 35. MT: displayed characters only 7b wide instead of 8b
111 36. CPU: EOD 20000 used by diagnostic (EM change is NOP)
112 37. CPU: SKD sets all 24b of X, not just exponent
113 38. CPU: reset should not clear A, B, X