Forgot your password?
typodupeerror
Hardware

The Real Story of Hacking Together the Commodore C128 179

Posted by samzenpus
from the back-in-the-day dept.
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."
This discussion has been archived. No new comments can be posted.

The Real Story of Hacking Together the Commodore C128

Comments Filter:
  • Re:Mind blowing (Score:5, Interesting)

    by Webcommando (755831) on Monday December 09, 2013 @04:19PM (#45642839) Homepage Journal

    I went from a Vic20 to C128 instead of a C64. I was amazed that I could use CPM and a very advanced basic. The power of this machine enabled me and a good friend to build a robot in college made of nothing but old car parts, DC motors, relays, and plates with holes drilled in them for encoders. That directly led to my first job as an automation engineer.

    The C128 also was the last computer that fueled my dreams. I went to college to become a computer engineer so I could build what I called the "compatibility machine". This machine could execute all the major 8-bit computer software (they all had Z80's or 6502) without the user intervening or worrying what version of software they purchased. The C128 showed me it could be possible!

    By the time I left school the writing was on the wall that Mac / IBM style PCs would rule the world. It didn't stop me from getting an Amiga, but it was pretty clear that CBM was on the way out.

  • Hrmmmmm (Score:3, Interesting)

    by Anonymous Coward on Monday December 09, 2013 @04:19PM (#45642841)

    He is claiming a lot of "firsts" that I would swear were in my Apple ][e prior to Winter '85...

  • Re:U.S. Navy? (Score:5, Interesting)

    by wcrowe (94389) on Monday December 09, 2013 @04:49PM (#45643161)

    True. I was one of those guys initially. I was a CS major in 1985 and my computer experience consisted of mainframes, CP/M machines and IBM PCs. Anything else was a "toy". I had a new girlfriend who suggested I could do my CS homework at her house because her dad "had a computer". She didn't know what kind it was, but he was an engineer so I figured it was probably pretty nice. I took her up on her offer, figuring that the suggestion was nothing more than a ploy to get me to come over to her house. When we got to her house she took me to the room he used as his office and pointed. I literally guffawed. It was a Commodore 64. She was somewhat offended at my reaction and I quickly apologized. Over the next few weeks I was a frequent visitor to her house and I began playing with the C64. The more I worked with it, the more respect I had for the platform. I especially liked the serial interface and how components could be daisy-chained. Far from being a toy, the C64 had the capability to do some pretty advanced stuff. And it was a LOT less expensive than an IBM PC. Eventually, the girlfriend became my wife, and her dad gave me the Commodore after he moved on to a PC. The wife and I broke several years ago. I still have the C64.
       

  • by JoshDM (741866) on Monday December 09, 2013 @05:05PM (#45643323) Homepage Journal

    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!

  • Too little too late (Score:4, Interesting)

    by RedMage (136286) on Monday December 09, 2013 @05:05PM (#45643333) Homepage

    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

  • Re:Mind blowing (Score:5, Interesting)

    by Dogtanian (588974) on Monday December 09, 2013 @05:24PM (#45643519) Homepage

    The C65 should have been what made it to market, not the weird 128 with its obsolete the day it left the factory CP/M mode running at half the speed of its competitors.

    Whatever the merits or demerits of the two machines is irrelevant; the C128 came out in 1985, whereas the C65 [wikipedia.org] wasn't developed circa 1990-91.

    C64 diehards have an obsession with the C65 and Commodore's perceived mistake in abandoning it, but despite the latter's numerous crap decisions, I'm sorry to say that in this case they were absolutely right.

    The C64 was still selling as a budget option circa 1991 (*) viable due to sheer momentum. The 16/32-bit Amiga was not only established as the successor, it had already taken over (in Europe, at least) and was already nearing *its* own commercial peak(!)

    Trying to release a (sort of) new 8-bit format by that point, even a very good one, would have made absolutely no sense, flopped horribly and stood on the low-end Amiga models' toes, mudding the waters pointlessly.

    They could have sold it as cheaply as the C64 (i.e. the high manufacturing costs of a new machine selling at the same price as a "wringing the last profit from established cash cow model"), but what would the point of that have been?

    The C128 at least came to market when there was still *possibly* a gap in the market for a high-end 8-bit machine between the C64 and the new (but still very expensive) Amiga.

    (*) Apparently C= were still making them when they went bankrupt circa mid-1994(!)

  • Re:Mistake (Score:2, Interesting)

    by Anonymous Coward on Monday December 09, 2013 @05:30PM (#45643567)

    Well, he's saying that you can't write a program that simply twiddles random memory regions because all modern OSs employ protected memory schemes to avoid exactly this. Modern computers are multi-tasking systems that do hundreds or thousands of things at once and doing so would be disasterous.

    On an older computer without protected memory you can write such a program and the results are beyond bizzare. Most forget that these old systems are very very "Bare metal". They don't have the layers of abstraction, exception handlers, memory protection, etc that you take for granted. The theory operation for a modern system is to look for dangerous program behavior and to stop, halt, throw an exception, or otherwise bring everything to a screeching halt. The idea is that there is nothing worse than data corruption (Especially silent corruption!) and it's safer to stop than let an unknown or erroneous state continue. Old systems didn't have any of those luxuries, and the aftermath of a program randomly changing memory regions is fascinating. Weird video, weird sounds, drives making odd noises. Those computers were simple and changing a single register would often bring very significant results.

    I once read an account from a guy who wrote a simple "game of life" implantation. It worked great, but he forgot to add bounds. A self replicating/crawling pattern "escaped" the edge of the screen and continued crawling through other memory regions not intended for the game space. It said it was fascinating watching watching the computer glitch and and misbehave as the pattern activated registers for all sorts of things from keyboard lights to disk drives.

  • Re:Mistake (Score:4, Interesting)

    by Neo-Rio-101 (700494) on Monday December 09, 2013 @07:06PM (#45644943)

    sorry it should be SYS64767
    Getting old here.

  • by ewhac (5844) on Monday December 09, 2013 @08:37PM (#45645857) Homepage Journal

    I don't have time to correct all the errors in the parent post. So very briefly:

    • The 6502 had three 8-bit registers: A, X, and Y. A was the accumulator, and received the result of all arithmetic operations. X and Y could hold temporary data, arithmetic operands, and be used as index registers for memory load/store. There was also an 8-bit stack pointer register, SP, hard-mapped to the range 0x0100 - 0x01FF.
    • The 8080 had the 8-bit registers A, B, C, D, E, H, L, and a 16-bit stack pointer. In addition, the registers B & C, D & E, and H & L could be used to hold 16-bit quantities for some instructions.
    • The Z80 had all the registers of the 8080, plus a shadow copy of the registers for quick use by interrupt service routines.
    • The 6502's zero page (0x0000 - 0x00FF) got special treatment by the CPU, using only a single byte to address a location. As such, zero page usually got treated by software as a pile of "slow registers."
    • No instruction on the 6502 executed in fewer than two clock cycles. The fastest 6502 I ever saw was 2 MHz.
    • By contrast, 4 Mhz Z80 chips were widespread.
    • The Z80 helped popularize dynamic RAMs by containing a very basic DRAM refresh counter. The 6502 had no such thing; DRAM refresh was usually provided by custom logic, usually part of the video controller.
    • S-100 machines had huge power supplies because they had huge numbers of slots (eight or more being common), and had to have enough reserve power for all of them.
    • There was nothing special about the 6502's memory access patterns, and 6502 would get starved out like any other CPU if another device held the bus. On the C-64 in particular, every eight video lines, the VIC would grab the bus for 40 uSecs to fetch the next row of character cells, holding off the 6502 the whole time. This led to all kinds of problems with timing-sensitive operations, and was directly responsible for transfers to/from the 1541 floppy drive to be glacially slow.

    Schwab

Swap read error. You lose your mind.

Working...