return to main page

Answers to unanswered 1401 questions

from Ken Shirriff - September 07, 2015
I came across a list of "Questions about IBM 1401 not answered by manuals" at 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 branch
For 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:
B4441234 Branches if a 3 is in location 123, otherwise doesn't branch. 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.
I tested
/44410144444 It accessed the pre-exiIt cleared 101 down to 100 and then branched to 444 despite the lack of a word mark after the instruction.


Started Sept 7, 2015
return to main page