from Ken Shirriff - September 07, 2015
I came across a list of "Questions about IBM 1401 not answered by manuals" at
http://bitsavers.trailing-edge.com/1401/1401-questions.html and figured it would be worth testing the real 1401 to see what the behavior is. With help from Stan, I spent a bunch of time stepping through instructions on the DE 1401 to see what happens and found answers to a few of the questions. This is probably more detail than most people want, but here it is.
Q: The flow charts in the IBM 1401 Data Flow manual (G24-1477-0) don't show a check for a word mark in the I-3 and I-6 cycles (reading the fourth and seventh characters of an instruction). If a word mark is found in the fourth or seventh character of an instruction, does the processor ignore it? A: A word mark at the fourth or seventh character of an instruction causes a fault (Storage Address and Process) at least on the instructions I tried. I tested branch instructions of various lengths. B. No branch B4. Fault: Storage Address, Storage, Process, B B44. Fault: Storage Address, Process B444. Branch B4444. No branch B44444. Fault: Storage Address, Process B444123. Branch if 3 in location 123. I.e d=3 B4441234. Branch if 4 in location 123. I.e. d=4 B44444444. No branchFor the ones that didn't branch, it's possible they would have branched if I set up B and B-START correctly.
Q: The flow charts also indicate that a B or V op code is processed without error if a word mark is discovered in the I-7 cycle (reading the eighth character of an instruction). When a BCE or BWZ instruction is processed, the A-register is assumed to contain the D-modifier. During the I-6 cycle, the memory contents are transferred from the B-register to the A-register. So a seven-character BCE or BWZ would use the units position of the B address as the D-modifier. Is this correct?
A: Yes, the last digit read is used as the D modifier.
I tested:
V4441232. Branched to 444 (Branch Word Mark or Zero, testing for 2 (no zone) at 123) V4441232 Branched to 444 if word mark in 123, i.e. d=3 V444123 Fail: Storage Address, Storage, B, Process V44412 Fail: Storage Address, Storage, B, Process V4421 Branch taken according to d=2 V443 Fail: Storage Address, Storage, B, Process V43 D V3 My notes are unclear. It accessed the pre-existing contents of B-STAR and then I'm not sure.
Q: The question whether the processor scans for a word mark after the seventh character of a clear storage instruction is murky. In the first reprinting of the System Operation Reference Manual, A24-3067-1, it explicitly says a word mark isn't required after a clear storage and branch instruction. In the second reprinting, A-3067-2, this sentence has been removed. It's also absent from the fifth reprinting of the "Brownie Book," A24-1403-5. In the I-7 chart in the data flow manual, it only checks for set word mark. However, a correspondent has told me that the flow chart for the 1401 emulator that was microcoded for S/360/30 says it doesn't scan for a word mark starting at the eighth character if the op code is comma or slash. One possibility is that the behavior changed when the grand strategy for the 1401 logic was changed at around serial number 25,000. This would lead one to wonder why the S/360/30 microcode emulator used the old behavior. Is there one answer (and what is it), or are there two?
A: A word mark isn't required, at least on the DE 1401.
Ken |