Works like a charm 8

As announced last time, I powered up the CPU. In all honesty, I was expecting to see a blank screen and was prepared to spend some quality debugging time in front of a scope and logic analyzer, but was positively surprised to see that the CPU worked on the very first attempt. I even let it run for a whole night, and found it still healthy in an endless loop of fibonacci sequences the next morning. Enjoy BYTEC/16’s first video running the same loop!

I have run out of excuses now and should finally start writing some “serious” BYTEC/16 software. While still cleaning up the development toolchain, I am working on a very simple monitor program in C which would allow me to load a.out binary programs over serial connection and execute them. My old Monitor/OS written in assembly does not work anymore because I have changed the instruction set and microcode several times since I wrote it. In retrospect, developing complex stuff in unfinished assembly language was not the greatest idea, but I had no ANSI C compiler for BYTEC/16 at that time. Once I have the monitor program ready, I will attempt to port some flavor of BASIC interpreter, one or two text-based games, a dhrystone benchmark program, and maybe a few more simple applications. A port of a serious operating system (like Contiki or Minix) is still on my wish list, but I must openly admit that given my current pace, I will be ready with that no sooner than in 2027.

8 thoughts on “Works like a charm

  1. Reply Bob May 10,2015 7:44 pm


    What kind of logic analyzer do you have for this project? I’ve been watching your progress and I’m impressed to state the least. Some day I’m going to be as cool as you are. :)

  2. Reply dawid May 11,2015 12:01 pm

    I am using a big old HP 1631D from mid 80s. It is a real beast, you can see it here. You can get excellent credit card sized logic analyzers for less than $200 these days (you hook them up to a PC, a tablet or a smartphone), but I liked the idea of using a 1631D more. It is more geeky ;)

  3. Reply Bob May 11,2015 1:36 pm

    Is there something more recent that you’ve tried out, and could perhaps recommend?

  4. Reply dawid May 11,2015 6:22 pm

    Check out this post on Big Mess o’ Wires. It is a review of Saleae Pro 8 but also lists alternatives (see Competing Models section). I am thinking of getting myself a DS Logic one day.

  5. Reply Bob May 28,2015 12:08 pm

    What is that window manager you’re running on your workstation?

  6. Reply dawid May 28,2015 7:57 pm

    It is MATE desktop environment with Marco window manager. They are forks of GNOME2 and Metacity, respectively.

  7. Reply Lawrence Manning Jun 24,2015 7:25 pm

    Love your blog. It is really inspirational, though I don’t care for your using x86 as a kind of guide. But that’s just preference; what you have achieved is amazing and I can’t wait to see your computer gain more peripherals.

    One question. Your CPU uses A LOT of bits for the microcode ROM. How would CPUs have been made with much smaller built in microcode store? I know random logic was used in some earlier CPUs, like the 6809, but what about others? Basically it seems like your design is achievable with 40 year old SSI parts, save for the microcode store.

  8. Reply dawid Jun 27,2015 2:05 pm

    Thanks Lawrence! Glad to hear what I do is still interesting to people. That’s not that obvious in the times of Arduinos, FPGAs and alike.
    You are right, my design is achievable with early TTLs (in fact I have some chips from the 80s in the prototype build). As for the microcode, I was quite liberal in the design because fast flash memory is cheap today. Back in the days, engineers would rather implement fewer microcode bits in favor of more glue logic, and/or use some bits of the actual instruction as control signals. In my case instruction opcode is 8 bits long and is used merely as a reference to microcode store. With a bit of tinkering, these bits could be used to select the operand, or ALU code, or something else, saving on microcode store.

Leave a Reply




Time limit is exhausted. Please reload the CAPTCHA.