The add-on memory company I worked for was in a hurry to develop
memory for the 370/168.
... simple examination of the error reports, and simple
experiments from the front panel showed what was wrong. Due to a simple wiring blunder on the hand-wired write-buffer card, it was the address
for the N+1'th request that was used for the N+1'th write instead
of the older N'th address as intended.
And *how could IBM's "Memory Diagnostic" '3CC' miss such a trivial error?
Eventually I became a close colleague of the company's brilliant
Chief Scientist. He claimed to be the original inventor of March.
I alluded indirectly to this man (whom I playfully call the
"Mad Hungarian") earlier. (He and his pregnant wife snuck under a
fence to escape Hungary in 1956. I doubt if any old-timers here
can guess his name -- am I wrong?)
Al Kossow <aek@bitsavers.org> wrote or quoted:
I'm trying to guess the company
Advanced Memory Systems?
I think James mentioned AMS here in 2007.
James Dow Allen <user4353@newsgrouper.org.invalid> posted:
... simple examination of the error reports, and simple
experiments from the front panel showed what was wrong. Due to a simple wiring blunder on the hand-wired write-buffer card, it was the address
for the N+1'th request that was used for the N+1'th write instead
of the older N'th address as intended.
And *how could IBM's "Memory Diagnostic" '3CC' miss such a trivial error?
The simple test that caught the gross error that '3CC' missed was "March":
The MARCH Test for Memory:
Step 1: Set memory under test to all zeroes.
Step 2: for (A = Low; A <= High; A++) {
Read A and verify it is 0;
Write FFFFFFFF at A; // "march" 1's through 0's
}
Step 3: Repeat step 2, substituting FFFFFFFF for 0, and 0 for FFFFFFFF.
Step 4: Repeat with at least one more pattern to toggle parity and check bits.
James Dow Allen <user4353@newsgrouper.org.invalid> writes:
James Dow Allen <user4353@newsgrouper.org.invalid> posted:
... simple examination of the error reports, and simple
experiments from the front panel showed what was wrong. Due to a simple wiring blunder on the hand-wired write-buffer card, it was the address for the N+1'th request that was used for the N+1'th write instead
of the older N'th address as intended.
And *how could IBM's "Memory Diagnostic" '3CC' miss such a trivial error?
The simple test that caught the gross error that '3CC' missed was "March":
The MARCH Test for Memory:
Step 1: Set memory under test to all zeroes.
Step 2: for (A = Low; A <= High; A++) {
Read A and verify it is 0;
Write FFFFFFFF at A; // "march" 1's through 0's
}
Step 3: Repeat step 2, substituting FFFFFFFF for 0, and 0 for FFFFFFFF. Step 4: Repeat with at least one more pattern to toggle parity and check bits.
The two patterns which should follow these two are (in hex) 55555555 and AAAAAAAA.
(I tend to think of memory tests in octal, so its 252525252525 and 5252525252525252.)
On 10/16/25 4:51 AM, James Dow Allen wrote:
The add-on memory company I worked for was in a hurry to develop
memory for the 370/168.
I have some micocode floppy images at http://bitsavers.org/bits/IBM/Microcode_Floppies
but no one has ever told me very much about them or if
they would be useful for 370 emulation at the microcode
level. Apparently the later models had service processors
that you would IML that was attached to the floppy drive.
I took a look at some of the data--it is all in binary,
so, the only way it helps you to do 370 emulation is if
you already have a 370 bit-accurate emulator.
On 11/12/25 12:38 PM, MitchAlsup wrote:
I took a look at some of the data--it is all in binary,
so, the only way it helps you to do 370 emulation is if
you already have a 370 bit-accurate emulator.
My question was if this was code that ran on the service processor.
I wouldn't expect IML code to be anything other than binary.
| Sysop: | Tetrazocine |
|---|---|
| Location: | Melbourne, VIC, Australia |
| Users: | 14 |
| Nodes: | 8 (0 / 8) |
| Uptime: | 216:22:45 |
| Calls: | 184 |
| Files: | 21,502 |
| Messages: | 82,076 |