[Simh] C64 and C128
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
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
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
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
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
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
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
- 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
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
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
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
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