This actually packs quite a punch. He’s clocking the machine at 2 MHz with 512 KB of SRAM memory. Compact Flash that is FAT formatted provides mass storage. He’s using a serial connection for a user interface. After the break you can see his oscilloscope is used as the monitor. This was easy to accomplish by connecting the serial out to Terminalscope, one of his previous projects.

WOW!! Talk about a flashback!! Takes me back to my “root”s. I cut my teeth on the old Rockwell PPS4 and PPS8 chip sets, and the “infamous” S-100 bus.
At least he doesn’t have to use 1K of core memory, or load from a punched tape, or from setting switches for each line of code.

Makes me wonder what’s buried in my ancient junk boxes in the attic. I know I kept some old chips up there.

@Matt you last name is Sarnoff? Are you going to put an RCA sticker on it?

Anyway what do you have planned for the OS? A port of Contiki would seem like an easy way to go but I saw that you want to write your own.
What do you have in mind.
Also what about video output?
Audio?
Just wondering. Nice work.

Yes it needs os you stupid fatface. How else could it load your program from whatever disk, memory card etc into the memory and execute it.
Otherwise the programs would have to be already flashed into some kind of eprom.

The “OS” in the Ultim809 (and other 8-bit computers) has a very limited role. It’s just a few KB of code in ROM that sets up the hardware and allows other programs to be run.

Other OSs (like OS-9, Contiki, etc.) are too complex for this project. It’s just going to be a single-tasking machine like a C64 or Spectrum.

For audio and video, I have some YM2149 and TMS9918 chips. There aren’t a lot of general-purpose video chips; most computers of the 80s used custom parts. The TMS9918 (ColecoVision, TI-99/4a, etc.) isn’t a great video chip, but they are common on eBay. The V9938 and V9958 (used in the Japanese MSX computers) are probably the most advanced, but come in a weird shrink-DIP package and can’t be socketed.

@matt: I found it tricky to source an appropriate video chip for my computer so went for the microcontroller solution. Have you considered something like the Parallax Propeller? That can generate very impressive (colour) video output, where common DIP AVRs or PICs tend to be rather memory-constrained.

This is pretty cool, but I still like the Z80. Also, it’s the only one I have quick access to. I’d say that the 6809 and Z80 are pretty close feature wise, although they both have features that the other one lacks.

Yes, it’s difficult to source obsolete video chips. I’d like to keep my system as “pure” as possible (using no microcontrollers), but, since the video circuitry will be on an expansion card, you will be able to drop in whatever video interface you want. Awesome stuff btw!

@matt: Thanks! I see your point, and putting it on an expansion card sounds like a good idea if you do find a more powerful video chip in future. I look forwards to seeing how the project progresses!

@baobrien: In my project the microcontrollers do execute many more instructions per second but they only have a fraction of the memory that the main CPU has access to. More importantly, I can’t easily develop or run new programs on them without another computer (unless I stuck an interpreter on the microcontroller) whereas the microprocessor has no problems with this task. I like to take advantages of both worlds. :-)

I have a terrible reaction to fragrances, ironically while stocking the fragrance section at Target a co-worker handed me a smell I was not allergic to, it was a berry concoction that didn’t contain the noxious ‘fragrance’ listed on the back of nearly every product sold in stores today.

I searched in vain through an entire walmart one day for fragrance-free Shampoo, even tried the pet section for pet shampoo (not tested on animals? Or tested on animals?).

I am on the fence, awesome hack, but instead motorize the window and turn on an exhaust fan, then shut after air has been completely exchanged.

This was awesome, I need a towel because I just jizzed myself. Great job Matt. I love seeing people do the programming the hard way.

This stuff takes me back, I never built a computer, but programming them was fun as hell, and if you can cut your chops on Assembly, you sir are one hell of a geek.

The Blackjack game was very nicely done.

A question that only people who worked the primitive stuff would know, how does it feel to have 128M of memory? The code sizes between this Blackjack and Blackjack written with today’s machines are not even comparable. I remember when 1K of memory meant something. My first hard drive was a 10 meg hard drive, and I could not figure out how I could use it all. Now, I can sneeze and lose gigs of micro SD cards.

Ah, the 6809, powerhouse of the Tandy Color Computer (and following II and III models). I loved my CoCo. Throw OS-9 on it and it felt like you could do anything. I actually had a bulletin board running on one of my CoCo II’s for about two years. Excellent processors.

@Matt,
Amazing! Truly amazing. You’ve gone and built something wonderfull.
—-
@Ben Ryves,
What’s wrong with the Z80? Or even the R6502? I taught myself R6502 assembler, its on the same par as M6800/M68B09 assembler. I even worked my way through Z80 stuff for arguing with a CP/M80 (softcard) arrangment for my Apple IIE. The only reason why I’ve got a grouchy laptop staring at me is because technology runs on.
—
@Matt, I might even build something of a sort myself.

@GCL: There is absolutely nothing wrong with the Z80, else it wouldn’t be such a popular chip for home-made computers (the availability of a ready-made operating system and software from the world of CP/M no doubt helps too). I was not familiar with the 6809, and as such found this an especially interesting project. :-)

@matt Contiki has a C64 port and even a Vic-20 port as well the AVR line.
Seems like it would be a good fit.
Or you could just port the C64 Kernel to it,
Yes I am from the old days. I took a microprocessors course in college that involved the old Heath kit trainers and writing 6800 code with a hex key pad.
I ended up writing a cross assembler and simulator in Fortran. I still had to type in the hex print out on the real hardware but debugging was a lot easier.
For the Video and software I would be tempted to try and source a VICII and SID chip but that is just because of my roots.
Maybe you could hack an ISA slot and use an old VGA or even EGA video board if you could find one.

@medwardl: The 6809E is the multiprocessor variant. You lose the on board oscillator but gain the extra bus signals you need for a multi-master bus. Hitachi made an extended version of this which gained some extra instructions. There were plenty of control systems which used multiple 6809s back in the day.

Back in the day Steve Gibson of Spinrite fame, wrote a screen saver called ChromaZone for Win 3.1 and 95 that was only 100k in size. He did it to prove the point of bloated software due to sloppy programming. If you write in today’s bloated, interpreted languages, it will take up a lot of memory and storage.

Because Steve Gibson wrote it in pure assembly language, it’s ridiculously tiny (about 100K), yet it delivers 100 completely different screen savers, and allows for infinitely more … which YOU create.

@nes;

I used some 4 axis controllers based on the 6809 back in the early 80s. It was used to control a welding machine doing repairs to nuclear power plants. We had to make elliptical welds inside a pipe to match the inside pipe radius.

@WetSmellyDog.
100kb? that is a lot of ram for just a screen saver. Now for 100 that isn’t too bad.
Even that is massive when you look at say a Timex/Sinclair, vic-20, or an early PET.
Take a look at Contiki sometime it is an OS and it only takes a few k.
Also assembly language isn’t needed as much as it was. C compilers are very good at optimizing code if he code it self isn’t bloated.

@Iwatcdr
The program itself is 100k not what is memory resident. Also this is on a standard X86 PC. I was only replying to the remark of software being large and bloated when it can be small and compact if the programmer does not use large and bloated interpreted programming software.