The Real Story of Hacking Together the Commodore C128
szczys writes "Bil Herd was the designer and hardware lead for the Commodore C128. He reminisces about the herculean effort his team took on in order to bring the hardware to market in just five months. At the time the company had the resources to roll their own silicon (that's right, custom chips!) but this also meant that for three of those five months they didn't actually have the integrated circuits the computer was based on."
"roll their of silicon" should be, roll their OWN silicon.
The people I knew with 128s back then all used the 64 mode but used the 128 as an excuse to buy a better monitor. I never knew anyone using the CP/M mode.
Mostly random stuff.
I didn't know that there was a computer named after a rank of the United States Navy. I learned something new. Thanks for posting the link.
From the Article: "Commodore C-128, the last mass production 8 bit computer and first home computer with 40 and 80 column displays"
C-128 was in 1985, the Acorn BBC had 20, 40 & 80 column modes (and a teletext mode) in 1981.
Bil will be teaching a class at the Vintage Computer Festival East next spring. He also lectured about the 128 and Commodore repair at the same event in 2012. Details are on c128.com.
He is claiming a lot of "firsts" that I would swear were in my Apple ][e prior to Winter '85...
A lot of early personal computers have a similar story. Software is often written with breadboarded or nonexistent hardware.
What is unique about the idea of custom silicon LSI chips for a 1980's PC?
The original Atari 800 (a design later copied by Commodore for the VIC-20 and Commodore-64 computers) had three custom chips (ANTIC, CTIA, POKEY) which made up the majority of the machine's circuitry when designed in 1978. And the OS and other early programs were written without the benefits of that completed hardware.
Only two LSI parts were off the shelf; the 6502 CPU and the 6520 PIA. Atari later replaced the CTIA with the GTIA (delayed by design issues) and the 6502 with a custom "sally" variant that built in formerly external tristate allowing the ANTIC to shut off the CPU's access to RAM every-other clock cycle so the RAM could be accessed by the ANTIC graphics chip.
That design was in active production for over ten years.
Even the lowly 2600 was a basically a custom TIA chip that originally existed as discrete logic parts wirewrapped together.
I fail to see how this story is either unique or great. If anything, it seems average.
...to play Ultima V in dual SID mode.
After several C=64s and the 128, I moved to the Amiga, which got me into the VFX business thanks to the Video Toaster and Lightwave.
Looking forward to reading this article. If it's good I'll stash a copy next to my "Rise and Fall of Commodore" book.
Well, a ROM then was pretty small, but today, given how the BIOS has been redefined - w/ UEFI & all that, wouldn't it be possible again? Take a flash memory device that's 32GB, put an OS in it and make that the BIOS. For the rest of the stuff - the applications and all that, take a suitably sized SSD and put it on that. Anything portable would go on a USB drive.
Lock that OS BIOS, making it alterable only by the owner (in the same way that we currently alter BIOS) and all attacks that cripple an OS should disappear. Currently, the highest serial NOR flash memory density product is a 1Gb flash. How much of Windows 7 or 8 kernels can fit into it? How about Linux, XNU or the BSD kernels?
a couple of weeks later the marketing department in a state of delusional denial put out a press release guaranteeing 100% compatibility with the C64. We debated asking them how they (the Marketing Department) were going to accomplish such a lofty goal but instead settled for getting down to work ourselves.
"First they came for the slanderers and i said nothing."
I was in 5th or 6th grade, and I woke up to a new computer in my room. The printer immediately broke and I noticed the desk was half up-side down. My dad had assembled it and the desk in the dark, during the night, while I was asleep (I'm a heavy sleeper). He was no technician, but I appreciated the effort. I traded c64 games with kids at school and stacks of 5.25 floppies via mail. Commodore games were fantastic; much better than NES. Junior year of High School, I finally had the initiative to figure out what my dad had done to the printer, and it turned out to be a simple problem that I fixed. I used 80 column mode to type and print essays for school for the next two years. Much praise to my old man. Granted, first year of college and he helped me acquire a 386 with Windows 3.0, which I had for three years, then built my own. I'll never forget my C=128. Thanks, dad!
I was a big fan, and a game developer for the C64. Those were the days that a machine could be fully understood by an untrained person with a knack for programming. When the C128 came out, I was interested, especially in the 80 column screen and CP/M software compilers. But there were too many limits on the machine (no hard drive easily added, no real OS, etc.) and it didn't feel like enough of an advancement over the C64. My grandfather did buy one, and I had some time with his, but that never really sparked much either. My next machine would be the Amiga, and as soon as that become somewhat affordable by a college student (the A500), I never looked back.
RM
}#q NO CARRIER
THe 6502 was an amazing processor. the Apple II was also a 6502. Unlike it's near contemporaries, the 8086 and Z-80 (and 6800), the instruction set was reduced. It had only 2 data registers (A,B) and two 8 bit address registers ( X Y) and fewer complicated ways to branch. Instead it effectively memory mapped the registers by using instructions like, offset Y by A, treat that as an address and get the byte at that location. Because it could do all that in one clock cycle, This effectively gave it 256 memory mapped registers. It also didn't have separate input lines for perifprials, and instead memory mapped those.
Nearly every instruction took a microsecond. Thus while the clock rate was 1 Mhz, it was much faster than a 4 Mhz 8080 series chip since those could take multiple cycles to do one instruction. Few memory chips (mainly static memory) could keep pace with that clock rate so the memory would inject wait states that further slowed the instruction time. The 6502's leisurley microsecond time was well matched to meory speeds. Moreover, on the 6502 only half the clock cycle was used for the memory fetch. This left the other half free for other things to access memory on a regular basis.
The regularity of that free memory access period was super important. it meant you could do two things. First you could backside the video memory access onto that period. On the 8080s using main memory you could often see gltiches on video displays that would happens when the video access was overridden by the CPU access at irregular clock cycles. As a result most 8080 series based video systems used dedicated video card like a CGA or EGA. Hence we had all these ugly character based graphics with slow video access by I/O in the Intel computer world. In the 6502 world, we had main memory mapped graphics. This is why the C64/Amiga/Apple were so much better at games.
This regular clock rate on the main meory had a wonderful side effect. It meant you could use Dynamic memory which was faster, cheaper, denser, and MUCH MUCH lower power than static memory. With the irregular access rates of the 8080 refreshing a page of dynamic memory requird all sorts tricky circuitry that trried to opportunistically find bus idle times to increment the dynamic refresh address, occasionally having to halt the CPU to do an emergency refresh cycle before the millisecond window of memory lifetime expired. As a result, the 8080 seris computers like Cromenco, Imsai, altair and Northstar all had whopper power supplies and big boxes to supply the cooling and current the static memory needed.
So the C64s and Apples were much nicer machines. However they had a reputation of being gaming machines. At the time that didn't mean "high end" like it does now. It mean toys. the Big Iron micros were perceived as bussiness machines.
Oddly that was exactly backwards. But until Visicalc, the bussiness software tended to be written for the 8080 series.
I think it was this memory mapping style rather than formal I/O lines to dedicated cards for periphrials (keyboard decoders, video, etc..) that lead apple to strive for replacing chips with software. they software decoed the serial lines (rather than using USART chips) they soft sectored the floppy drives rather than using dedicated controller chips, etc... And that was what lead to making the macintosh possible: less hardware to fit in the box, lower cost chip count, lower power more efficient power supplies.
Eventually however the megahertz myth made the PCs seem like more powerful machines than the 68000 and powerPC.
Some drink at the fountain of knowledge. Others just gargle.
I've had hardware dumped on my desk the *day before* the proto is due to ship. I knocked up enough code in a week and a half, it worked great, and survived virtually intact into production.
But here's the rub: as long as I keep on working miracles, the hardware will keep on getting later.
The Commodore 64 had hardware pixel-level smooth scrolling and hardware sprites, putting it close to the 8-bit consoles (Sega Master System and Nintendo Entertainment System) in capability. The Apple IIGS had better color depth but no ability to scroll the screen, so games had to either flip screens or scroll jerkily, like ColecoVision and Spectrum and MSX games.
It was mostly just a C64 for playing jumpman. The only time I actually booted into C128 mode was to run this sweet word processor. I used to be able to slap some clip art in my homework and pull an A+ for creativity. This was going to be easy...
you never saw smooth scrolling and sprite movement on a PC.
This was true of CGA, but after EGA and VGA became popular, John Carmack figured out how to use these newer cards' scroll registers and built Commander Keen in 1990.
Excellent, my wife's been on me to upgrade my C64
Table-ized A.I.
Since I designed, wirewrapped, and programmed embedded 6502 and 8080 system in that era I am well prepared to assess your claims. In a nut shell you are an arrogant tard and the original poster is figuratively accurate inexact.
Your post is really bizarre.
Ok, with you there.
Well, that's just a bunch of crap: http://www.obelisk.demon.co.uk/6502/reference.html (look at the "Cycles" column.)
What the original poster was likely saying, since it becomes clear later in the article, was that all the 6502 instructions were divided up into alternating cycles of memory fetches and internal calculations with an exact period of 1 microsecond for those. The 8080 series would use 1,2,3,4 and more with wait states cycles for an instruction with no regular pattern (in terms of future predictable times) of when the bus would be busy.
So you are wrong, have a reading comprehension problem, and are an ass about it.
The Wikipedia article on the 6502 indicates that DRAM access times were on the order of 250ns - 450ns. In particular, 250ns access times are well-matched to 4 MHz clock rates; do the math. At 1 MHz, 250ns DRAM has time to go make a sandwich before it needs to supply the next memory cells.
Sigh, again you have a reading comprehension problem. The original author was discussing static memory. Moreover, the cycle time for memory access always involves some overhead. The time when the CPU reads the data bus needs to occur after the bus has settled which is not at the start of the memories data valid period. But most of all 250ns memory was rare and expensive. Most computers in that time period did use wait states. Why do you think processors even allowed wait states?
Again you are being an ass about this as well.
No. Then, as now, video display glitches were caused by updating video RAM directly outside of a VSync pulse. You could just as easily get video glitches on 6502s as on 808x machines.
that was an additional restriction on 8080 machines. But on 6502 machines one did not have to wait for the vertical sync to update the video memory. In fact that is EXACTLY what the original poster was pointing out, without trying to flaunt jargon like you.
This makes you look stupid now.
Which leads us to:
Patently false. Video memory on an 808x machine (even on CGA and EGA cards) was most certainly memory mapped.
yes it could be done. But then you had the problem of glitches or waiting for VSYNC (or if you liked to live dangerously, HSYNC). It wasn't pretty to build hardware or write code for. Your interaction with it didn't treat it like main memory but rather so
The software design only took three people to write, Fred Bowen, Terry Ryan, Von Ertwine, contrast that with some other projects ...
"Ah, but you weren't a true C64 department-store hacker until you entered the couple of POKEs that disabled RUN/STOP and RESTORE keys before entering that loop", GrahamCox
...
You're giving away your age
Several times in the article, he mentions that the C128 was the last 8-bit computer to be designed. This isn't true -- a year later, Tandy announced the CoCo3, also with 128KB and capable of 80 column text display. It didn't run CP/M, but instead it ran Microware OS-9.
While not originally designed under the auspices of Commodore, the Amiga was also designed with VLSI custom chips. The prototype did not have the chips available, either. Instead, their larger-scale prototypes were the size of a small room. The booth they used at a trade show to demonstrate the Amiga was designed to hide the fact that the walls of the booth itself consisted of the prototypes of the custom chips hidden behind curtains.
It would be cool if we could find a photograph of it.
RIP Jay Miner.
Kriston
I never did anything with the 128. My first machine was the Timex Sinclair 1000 (I even had the 16k expansion ram), and then got a Vic20 (and got an 8k ram expansion pack, and soldered in my own ram to make it 16k). My 3rd computer was an Amiga 1000. I've owned about 8 computers since then, and been given more. I've used multi-million dollar machines that don't belong to me, gotten an AD in Electronics Engineering, and a BSc in Computer Science, worked for spook houses (Edward Snowden has mentioned people I have worked for), and many places that have complicated/integrated hardware/software. The read over at hack-a-day reminds me of building (wire-wrapping) my first computer.
BTW I beg to differ, the Atari custom chips(CT/GTIA, etc.) for their 8bit were by FAR superior to anything the c64 had. They were designed by most of the same guys who did that, hmmm, what was it called? Oh yeah, the Amiga which was also chock full of hmmm... similar yet more powerful custom chips...
Meanwhile by the Amiga time, Atari had inherited the Commodore guys who guess what, only popped very basic custom chips at least until the Falcon, but then it was FAR too late...
I used CP/M mode, but though I enjoyed for the accomplishment of getting stuff to work on something "new", I really only used a single program on there (Personal Ancestral File), and most of my efforts went toward making that software work more smoothly for my mother. CP/M was dull overall; hacking "enhanced" C64 operation, playing w/ the 80 column chip, etc. was much more fun.