• The Other Half of the System/360

    From quadi@quadibloc@ca.invalid to comp.arch on Sun May 24 19:00:30 2026
    From Newsgroup: comp.arch

    The IBM System/360 is often thought of as the successor to the IBM 7094
    II. In a way, it was - that was IBM's previous big computer.

    The STRETCH had a 64-bit word, and so it anticipated one feature of the System/360. The word "byte" was coined for it, and it had bit addressing.

    But the IBM 360 was also intended to replace the 1401. Commercial machines were in a different architectural class from scientific machines.

    Neither the 1401, nor IBM's earlier 705, did arithmetic on packed decimal numbers. The numbers they did arithmetic on were formed out of six-bit characters.

    In the 1401, each character had an additional bit which served as a word
    mark associated with it. The 705 didn't do that. But in both of those computers, the address of a number was the address of the character
    containing its least significant digit. Just like it would be in a little- endian machine. But these machines were big-endian, and so during
    addition, the computer counted backwards to find successive digits to add
    and propagate the previous carry to.

    The System/360 was intended to replace both the 7090 series and the 1401 series, as well as other IBM machines.

    So the use of SS instructions for BCD arithmetic arose from trying to have this portion of the instruction set as similar to the previous commercial
    IBM machines as possible. But the 360 didn't indicate the end of a decimal integer by a word mark or by a special character; the SS instructions
    included length fields.

    Numbers were addressed by their most significant digits; the contents of
    the length field could be added to that address if required.

    As the 360 used an eight-bit byte instead of a six-bit character, it was decided to save storage by doing arithmetic on packed decimal numbers
    instead of character strings made up of digits.

    John Savard

    John Savard
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.arch on Sun May 24 22:49:58 2026
    From Newsgroup: comp.arch

    On Sun, 24 May 2026 19:00:30 -0000 (UTC), quadi wrote:

    The STRETCH had a 64-bit word, and so it anticipated one feature of
    the System/360. The word "byte" was coined for it, and it had bit
    addressing.

    The original meaning of “byte” was not “minimum directly-addressable
    unit of memory”, as at present, but “variable-length bitfield”.

    In the 1401, each character had an additional bit which served as a
    word mark associated with it. The 705 didn't do that. But in both of
    those computers, the address of a number was the address of the
    character containing its least significant digit. Just like it would
    be in a little- endian machine. But these machines were big-endian,
    and so during addition, the computer counted backwards to find
    successive digits to add and propagate the previous carry to.

    Addition and subtraction started from the lowest-addressed digit, and
    proceeded upward from there. This allowed for arithmetic (well,
    addition and subtraction, anyway) on arbitrary-length numbers.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From John Levine@johnl@taugh.com to comp.arch on Mon May 25 19:11:51 2026
    From Newsgroup: comp.arch

    According to quadi <quadibloc@ca.invalid>:
    The System/360 was intended to replace both the 7090 series and the 1401 >series, as well as other IBM machines.

    Right. I would say that it was more important to replace the 1401 and other commercial machines, since IBM sold a lot more of them than they did of the high
    end 709x. All of the microcoded 360 models, 25, 30, 40, 50, 65, and 85, had emulators for the older machines. IBM only provided emulators for models where the emulation would run faster than the original machine, so there were 1401 emulators for the /25 and /30 but you needed a /65 to emulate a 7090.

    So the use of SS instructions for BCD arithmetic arose from trying to have this portion of the instruction set as similar to the previous commercial
    IBM machines as possible. But the 360 didn't indicate the end of a decimal integer by a word mark or by a special character; the SS instructions included length fields.

    Numbers were addressed by their most significant digits; the contents of
    the length field could be added to that address if required.

    They didn't want word mark bits because they'd have made no sense in the halfword and fullword scientific instructions. The field lengths were
    hard coded into the second byte of SS instructions, but you could fake
    variable length operands with the EX (execute) instruction. It took
    a register operand and OR'ed the low byte of the register with the
    second byte of the target instruction before executing, so you could put
    a zero length in the instruction and the actual length in the
    register. It was a cute hack.
    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Mon May 25 20:23:57 2026
    From Newsgroup: comp.arch

    On Sun, 24 May 2026 22:49:58 +0000, Lawrence D’Oliveiro wrote:

    On Sun, 24 May 2026 19:00:30 -0000 (UTC), quadi wrote:

    The STRETCH had a 64-bit word, and so it anticipated one feature of the
    System/360. The word "byte" was coined for it, and it had bit
    addressing.

    The original meaning of “byte” was not “minimum directly-addressable unit of memory”, as at present, but “variable-length bitfield”.

    Yes, that's correct. On the STRETCH, not only were bytes bit-addressed,
    but they could cross the boundaries of the system's 64-bit words with no problem.

    The PDP-10, on the other hand, also had variable-length bytes, but they
    could not cross word boundaries. Even so, it was the machine that came
    closest to STRETCH in retaining the original meaning of a byte.

    John Savard
    --- Synchronet 3.22a-Linux NewsLink 1.2