[Simh] C64 and C128

Rich Alderson simh at alderson.users.panix.com
Tue Jun 30 21:48:20 EDT 2015


> From: "Bill Cunningham" <billcun at suddenlink.net>
> Date: Tue, 30 Jun 2015 19:56:06 -0400

> I remember those floppy drives where big and heavy. I never had cp/m or
> a c128. I am reading that an 8502 and Z80A (which I can't find anything
> on) was inside. The Z80A was about 4 MHz. The Z80A word size I do not
> know. It was of course an 8 bit with a 16 bit address bus I believe. Now
> which is "memory word" size?

The Z80A ran at 4MHz.  It is a faster variant of the Z80, which ran at 2.5MHz.

You can leave off the word "memory" and the scare quotes in your question, and
stop worrying about addressing in the same breath.  The 2 are orthogonal.

Before the IBM System/360 came along, computers were word-addressed, character-
addressed, bit-addressed, or digit-addressed (decimal).

Bit-addressed computers represent characters as sequences of bits (the term
"byte" originally meant "sequence of bits representing a character", not just
"eight bits").  Decimal digits require 4 bits to be represented in binary, so
that's the "word" size there.  Character-addressed machines generally used 6
bits to represent a character, so that's the "word" size there.

Word-addressed computers comfortably operate on large numbers of bits at one
time, with data paths which transfer all of the data in parallel (except in
some very special cases like the PDP-8/s).  The size of the word in bits is the
defining characteristic of the computer.  Let's list a few examples of word-
addressed machines:

          System        Bits/Word       Bits/Addr
          ======        =========       =========

        CDC 1604            48             15
        CDC 160-A           12           6 or 12
        CDC 6600            60             18
        DEC PDP-1           18             12
        DEC PDP-7           18             13
        DEC PDP-10          36             18
        IBM 7094            36             15

OK, that's enough for starters.  In each of those systems, the amount of data
which will be found at each consecutive address is the same number of bits, and
that is what the computer operates on.

OK, enter the System/360.  IBM had for years been manufacturing word-addressed
"scientific" computers (like the 709/7090/7094) and character-addressed
"business" computers (like the 1401).  They wanted to make a single line of
computers which could do both kinds of computing (character-oriented or larger
word-data oriented) equally well; the result was something of a compromise for
both sets of customers, but's beside the point.

What IBM did was take the "byte" notion, give it a fixed length, make it the
addressable element, and DEFINE THE WORD TO BE MULTIPLE BYTES (in this case,
four).  So the byte addresses go 0, 1, 2, 3, ... but the word addresses go
0, 4, 8, 12, ...  Data gets moved into and out of registers as words (or
halfwords or doublewords, but that's another story).[1]  From one memory
location to another, data moved in bytes.

SO:  Now we have a new definition of "word size", one in which 8-bit bytes are
constant and addressable.

So people started building computers to work with the 880lb (400Kg) gorilla.
Some examples of computer systems that use this model:

          System        Bits/Word       Bytes/Word       Bits/Addr
          ======        =========       ==========       =========

        IBM System/360     32                4              24
        DG Nova            16                2              15
        DEC PDP-11         16                2              16
        DEC VAX            32                4              32

At the same time, microprocessors began to appear, with smaller data sizes, and
it gets complex all over again.  The addressable unit is the 8-bit byte, and
registers only handle 8 bits, but addressing may be larger:

          Microchip     Bits/Word       Bits/Addr
          =========     =========       =========

          Intel 8008        8               14
          Intel 8080        8               16
          Zilog Z80A        8               16
          MOS Tech 6502     8               16
          Motorola 6809    16               16
          Motorola 68000   16               24
          Motorola 68030   32               32
          Intel 8086       16               20
          Intel 80286      16               24
          Intel 80386      32               32

Obviously, "word size" here is how large a register is into which data from
some number of bytes in memory can be stuffed.

I hope that clears up your confusion.

                                                                Rich

[1] As is the fact that different models hide the fact that they're really
    moving 8 bits = 1 byte or 16 bits = 2 bytes = a halfword at a time in the
    hardware, because that's an implementation detail which the 8 bits/32 bits
    System/360 ignores.


More information about the Simh mailing list