[Simh] C64 and C128

2015-07-01 Thread Bill Cunningham
I think maybe the simh doc too might have confused me a bit. 3.1.3 talks 
about word length, not addressability and that kind of confused me. I was 
looking into the PDPs and then commodore machines that ran CP/M which I guess 
was C128. I never had one. C64s and TRS-80 CoCos but not C128. So I began 
wondering word size? Which to me was a processor's register size. Not various 
system bus sizes. Addressability made me think of the address bus size and that 
varied. 

Well I wondered about a simh VM for the C128 that would use CP/M 2 or 3.

Bill
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-07-01 Thread Timothe Litt
On 30-Jun-15 21:48, Rich Alderson wrote:
[Snip]

A great summary, to which I'll add a couple of additional infobits:

The Intel 4004 (and 4040) use 4 bit data words, (mostly) 8-bit
instruction words  12-bit addresses.  (Some instructions use two 8-bit
instruction words.)  The external bus is 4 bits - different cycle types
for ROM, RAM and I/O.  Its documentation calls 8 bits both a word and a
byte, and its 4-bit word a 'character'.  Welcome to the wild world of
early computing; all terms are context-sensitive!  Adding 8-bit binary
numbers is double-precision, requiring several instructions.  The CPU
supports BCD as well.  The device was designed for a calculator, so it's
not quite as crazy as at seems.  At ~90KIPS, it isn't exactly speedy -
though I had a project that managed to do some speech synthesis with it
(!).  Some of its architecture can be seen in the x86.

CPU architectures usually have some extensions (warts) for various
reasons.  For example, the Z80 is an 8-bit machine, but has some
instructions that operate on 16 bits.  It, like the 4004/40, x86 and
VAX, has variable length instructions.  Many support multiple precision
data types (double is common); these consume/generate multiple 'words'
of memory and/or registers. 

Floating point throws another wrench into simplicity: floating point
numbers can have a word size that differs from integers. 

The PDP-10's idea of 'character' or byte is flexible.  36-bits comes
from the 6-bit BCD character of some industry predecessors.  But the
PDP-10 supports variable-size bytes - from 1 to 36 bits at arbitrary
alignment in words.  Most text, by convention, is stored in 7-bit
bytes.  But 6, 8, 9 and 12-bit characters are commonly used in
applications and the OS.  The -10 survived the transitions from 6 to 7
to 8-bit characters without architectural change.  And if it was active
today, it would be equally happy with 16 and 32-bit Unicode characters
as 'bytes'.  Hardware supports single, double  quad integers (modulo
how the sign bit is handled).

The implementation details can become visible, both functionally and for
performance.  The KL10 memory system groups 4 words into each cache
line, and it clever enough to request them in the right order (requested
word first).  The VAX fetches instructions in aligned words (or
multiples).  This is visible architecturally in the required sequence
for turning memory management on, and can have a significant impact on
performance following a branch.  Many modern CPUs have different data
path widths internally from the external bus (and register size).  And
the 'bits per address' usually diverges as memory gets cheaper and
programs larger.  Memory address 'banking' and 'mapping' provide more
physical memory than an instruction can address.

So life gets complicated - especially so as caches and other modern
micro-architectural innovations provide one view to the programmer in
user mode, another to the OS programmer and yet another to the
hardware.  Not to mention the layers of compatibility evidenced in
machines like the x86.

The only good news is that just about everyone has adopted IEEE floating
point format.  Well, one of them.

As a general rule, the 'word size' that most people use is the width in
bits of an integer register.  And addressing targets either 8-bit bytes
or words that are the width of a native integer register.  The external
bus's data path may be either wider or narrower than the apparent
address target.  Narrower to save pins and simplify the hardware; wider
to increase performance.  The external bus's address also can be either
wider or narrower than an instruction can generate.  Wider as the
architecture ages and more memory is needed.  Narrower early on to
simplify implementation and match the 'affordable' amount of memory.

Sorry if this adds any confusion; the one invariant in computer
architecture seems to be that if you wait long enough, complexity always
increases.




smime.p7s
Description: S/MIME Cryptographic Signature
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-07-01 Thread pigi

Il 01/07/2015 12:13, Timothe Litt ha scritto:

At ~90KIPS, it isn't exactly speedy -
though I had a project that managed to do some speech synthesis with it
(!).


O_O

Respect !!

Best regards from Italy,
dott. Piergiorgio.

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-07-01 Thread Rhialto
On Tue 30 Jun 2015 at 19:56:06 -0400, Bill Cunningham wrote:
 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?

If you want to play with the C64 and its siblings, you can have a look
at VICE, the Versatile Commodore Emulator, http://vice-emu.sourceforge.net/

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- The Doctor: No, 'eureka' is Greek for
\X/ rhialto/at/xs4all.nl-- 'this bath is too hot.'


pgpy7f4cZTuhz.pgp
Description: PGP signature
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-06-30 Thread Johnny Billquist

On 2015-07-01 04:13, Bill Cunningham wrote:

- Original Message -
*From:* Johnny Billquist mailto:b...@softjar.se
*To:* simh@trailing-edge.com mailto:simh@trailing-edge.com
*Sent:* Tuesday, June 30, 2015 10:07 PM
*Subject:* Re: [Simh] C64 and C128

On 2015-07-01 01:56, Bill Cunningham wrote:
  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?

You are asking very weird questions.
What do you mean by word size?

Johnny

 I read in some specs either for 6502 or Z80A the term memory
word size. These are all 8 bit cpus I know that but they have
different sized address buses. Rich straightened me out. The term
memory was throwing me off. I these cases Word Size would be 8
bit. Like todays 64 bit machines. Word size is now considered 64
on 64 bit processors. Although the 6502 had 8 bit registers except
maybe for one, and a 16 bit address bus. They are 8 bit word sized.
Under control now. Thanks though.


But you are conflating many different things here.

If we start with something like the Z80, the memory address is 16 bits, 
while the data bus holds 8 bits. The basic CPU register size is 8 bits, 
but you have native instructions that also handle 16 bit data, and 
registers can be used in pairs, to have 16-bit CPU registers. And 
addresses are always expressed as 16-bit quantities.


The 6502 is similar to the Z80, but some addresses are sortof only 
expressed as 8-nit quantities, and I'm not sure you have any 16 bit 
registers in there that are for generic use, nor any native 16-bit 
instructions/operations.


A modern CPU is no easier. You might have 48 address bits on the 
physical address bus. 256 bits on the physical data bus. The virtual 
address is 64 bits, and the CPU have instructions that can work on 8, 
16, 32, 64 and possibly also larger data sizes. The registers normally 
holds 64 bits, though, and addresses are normally expressed as 64-bit.


Johnny

--
Johnny Billquist  || I'm on a bus
  ||  on a psychedelic trip
email: b...@softjar.se ||  Reading murder books
pdp is alive! ||  tryin' to stay hip - B. Idol
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-06-30 Thread Clem cole
The C64 and C128 were based on the MOS Technology 6502 which Commodore 
eventually became the IP owner.I do not know of an 8502 processor. 

As I said previously this is the same chip as used by Apple, Atari and many 
others. 

It did not run CP/M which needed an Intel 8080 based instruction set (the Zilog 
Z80 is an 8080 superset). 

Clem
Sent from my iPhone

 On Jun 30, 2015, at 7:21 PM, Bill Cunningham bill...@suddenlink.net wrote:
 
 Did the C64 not run CP/M? I know the 128 did. It had a 8502 processor and 
 Z80A processor I believe. One was for CP/M. What good is a commodore machine 
 without CP/M ;)
  
 Bill
  
 ___
 Simh mailing list
 Simh@trailing-edge.com
 http://mailman.trailing-edge.com/mailman/listinfo/simh
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-06-30 Thread Johnny Billquist

On 2015-07-01 01:56, Bill Cunningham wrote:

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?


You are asking very weird questions.
What do you mean by word size?

Johnny



- Original Message -
*From:* Kevin Handy mailto:khandy2...@gmail.com
*To:* Bill Cunningham mailto:bill...@suddenlink.net
*Cc:* simh@trailing-edge.com mailto:simh@trailing-edge.com
*Sent:* Tuesday, June 30, 2015 7:46 PM
*Subject:* Re: [Simh] C64 and C128

The C64 did not run cp/m out of the box, because it did not have any
kind of Intel 8080 based processor. You could buy a cartridge (iirc)
that would allow you to run cp/m, but it was basically bolting a
cp/m machine onto the side of the C64.

The C128 had both the C64 processor, and a Z80 processor built in,
and it could run cp/m. The floppy drive speed was really lousy
though (300 baud serial bus iirc).

On Tue, Jun 30, 2015 at 5:21 PM, Bill Cunningham
bill...@suddenlink.net mailto:bill...@suddenlink.net wrote:

__
 Did the C64 not run CP/M? I know the 128 did. It had a 8502
processor and Z80A processor I believe. One was for CP/M. What
good is a commodore machine without CP/M ;)
Bill

___
Simh mailing list
Simh@trailing-edge.com mailto:Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh




___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh




--
Johnny Billquist  || I'm on a bus
  ||  on a psychedelic trip
email: b...@softjar.se ||  Reading murder books
pdp is alive! ||  tryin' to stay hip - B. Idol
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-06-30 Thread Bill Cunningham

  - Original Message - 
  From: Johnny Billquist 
  To: simh@trailing-edge.com 
  Sent: Tuesday, June 30, 2015 10:07 PM
  Subject: Re: [Simh] C64 and C128


  On 2015-07-01 01:56, Bill Cunningham wrote:
   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?

  You are asking very weird questions.
  What do you mean by word size?

  Johnny


  I read in some specs either for 6502 or Z80A the term memory word size. 
These are all 8 bit cpus I know that but they have different sized address 
buses. Rich straightened me out. The term memory was throwing me off. I these 
cases Word Size would be 8 bit. Like todays 64 bit machines. Word size is now 
considered 64 on 64 bit processors. Although the 6502 had 8 bit registers 
except maybe for one, and a 16 bit address bus. They are 8 bit word sized.
  Under control now. Thanks though. 
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-06-30 Thread Rich Alderson
 From: Bill Cunningham bill...@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:

  SystemBits/Word   Bits/Addr
  ===   =

CDC 160448 15
CDC 160-A   12   6 or 12
CDC 660060 18
DEC PDP-1   18 12
DEC PDP-7   18 13
DEC PDP-10  36 18
IBM 709436 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:

  SystemBits/Word   Bytes/Word   Bits/Addr
  ===   ==   =

IBM System/360 324  24
DG Nova162  15
DEC PDP-11 162  16
DEC VAX324  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 80088   14
  Intel 80808   16
  Zilog Z80A8   16
  MOS Tech 6502 8   16
  Motorola 680916   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.
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

[Simh] C64 and C128

2015-06-30 Thread Bill Cunningham
Did the C64 not run CP/M? I know the 128 did. It had a 8502 processor and 
Z80A processor I believe. One was for CP/M. What good is a commodore machine 
without CP/M ;)

Bill
___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-06-30 Thread Kevin Handy
The C64 did not run cp/m out of the box, because it did not have any kind
of Intel 8080 based processor. You could buy a cartridge (iirc) that would
allow you to run cp/m, but it was basically bolting a cp/m machine onto the
side of the C64.

The C128 had both the C64 processor, and a Z80 processor built in, and it
could run cp/m. The floppy drive speed was really lousy though (300 baud
serial bus iirc).

On Tue, Jun 30, 2015 at 5:21 PM, Bill Cunningham bill...@suddenlink.net
wrote:

  Did the C64 not run CP/M? I know the 128 did. It had a 8502
 processor and Z80A processor I believe. One was for CP/M. What good is a
 commodore machine without CP/M ;)

 Bill


 ___
 Simh mailing list
 Simh@trailing-edge.com
 http://mailman.trailing-edge.com/mailman/listinfo/simh

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] C64 and C128

2015-06-30 Thread Bill Cunningham
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?

  - Original Message - 
  From: Kevin Handy 
  To: Bill Cunningham 
  Cc: simh@trailing-edge.com 
  Sent: Tuesday, June 30, 2015 7:46 PM
  Subject: Re: [Simh] C64 and C128


  The C64 did not run cp/m out of the box, because it did not have any kind of 
Intel 8080 based processor. You could buy a cartridge (iirc) that would allow 
you to run cp/m, but it was basically bolting a cp/m machine onto the side of 
the C64. 


  The C128 had both the C64 processor, and a Z80 processor built in, and it 
could run cp/m. The floppy drive speed was really lousy though (300 baud serial 
bus iirc).



  On Tue, Jun 30, 2015 at 5:21 PM, Bill Cunningham bill...@suddenlink.net 
wrote:

Did the C64 not run CP/M? I know the 128 did. It had a 8502 processor 
and Z80A processor I believe. One was for CP/M. What good is a commodore 
machine without CP/M ;)

Bill


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh


___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh