Motorola MC6809 trainer

One of the items donated to the radio club by an SK estate last year (now I’ve forgotten which one) was this microprocessor training laboratory (MTL-1) from Cleveland Institute of Electronics (CIE).

Presumably, if you had an interest in learning computer hardware and programming, you’d enroll in a class and get one of these along with class materials.  I’ve seen similar trainers in the past, but never had the opportunity to use them.  The breadboard area lets you wire up circuits that let you do things with the 6809.

This one is based on a Motorola MC6809, a contemporary of the 6502 and Z80 microprocessors.  After watching the one YouTube video I’ve found along with a bit of random button pressing, I’ve managed to figure out how to to go to different addresses and enter assembly code.  I haven’t entered anything that runs though.  I’ll have to find some time to learn 6809 assembly first.

Aside from the copyright date on the back, there’s no other indication of when this particular unit dates to.  Fun fact: 1984 was my first year of high school,

Surprisingly, I’ve found very little documentation about this particular trainer online.  I’ve found one video on YouTube where someone used it to demonstrate testing a RAM chip, and a few photos of similar units on auction sites, but nothing in the way of manuals or even course materials that might have used the trainer.

This seems like it would be a fun thing to play with, especially for anyone with a retro-computing fetish. The hunt for documentation continues. I’ve already found a few PDFs about programming the 6809, so maybe I’ll be able to figure out enough do fun things with this.

Blinking LEDs with a Z80

In the parts bins that I acquired long ago, four of the many ICs in one of the bins were Z80 microprocessors. At the time, I thought it would be neat to try to do something with them, but had no time and no levels in low level hardware design.

Fast forward to post-PhD time and inspired by Ben Eater‘s 8-bit CPU and 6502 projects and videos, I learned enough about microprocessors and what connections to make with them to try doing something with the Z80. YouTube also presented me with a variety of Z80 related videos to watch. This one by Julian Ilett was one I found particularly informative.

Flashing LEDs – Z80 Style by Julian Ilett

The date codes on the Z80 chips indicates they’re 1987-1988 era chips, and not knowing how they were stored before I got them, I had no idea if any of them even worked. Grabbed one of the Z80 chips, plunked it into a breadboard and started wiring it up.

Off in the corner of the breadboard is a 555 set up as an astable oscillator and functions as the clock for the Z80. The clock goes runs between 6 – 475 Hz depending on the potentiometer setting.

After getting things wired up and applying power, some LEDs would light up, but then all the address bus LEDs would blink on and off but not in the expected binary counting pattern. Seemed like I had everything wired up correctly.

After studying Julian’s video and wiring some more, I tried triggering the reset pin and boom! LEDs blinked off, then came back on and the address bus LEDs started the expected binary counting pattern! Yay, it worked! Added a button for the reset pin to make resetting the Z80 easier.

Getting this going was fun, and a good learning experience. Gained a few XPs.

What next? Well, I could continue on and try to add enough to make a functional computer out of the Z80 and following the techniques in Ben’s 6502 video series. I’ll definitely need some more breadboards, and a few more components. I’ve got a few RAM chips I could try, but no idea of any of them actually work.

It’s kind of cool just turning it on and watching the LEDs blink though.

Making a breadboard based Z80 computer would be a fun project.

Dabbling with virtual machines

The software I’m using to do some of the Monte Carlo simulations (PCXMC) for my PhD research is Windows based (fortunately it runs without any issues under Wine) and single-threaded, which makes some of the larger simulation sets I’m doing extremely inefficient when running them on my computer. The PCXMC window would also pop up every 5 minutes or so when another simulation started up and interrupt whatever I was trying to do at the time. It was tolerable since the smaller sets only took a few hours to complete, but I decided I was going to need a better solution.

One solution I attempted was to try running multiple instances of PCXMC, but they ended up clobbering each other and was just ugly.

The next obvious solution was to run PCXMC in a virtual machine (VM). Until now, I haven’t had much need to learn much about creating and managing VMs but they seem like a perfect solution to the problem. I can spin up a few VMs to run PCXMC and have each of them run different parts of the larger simulation sets or different simulation sets.

Virtual Machine Manager , I’ve discovered, is a super handy utility that makes creating and keeping track of VMs super easy. It offers a nice intuitive GUI interface for creating and managing VMs. I can use a live ISO image of my choice to create a new VM with the amount of RAM, storage, and number of CPUs needed. Once I’ve got a VM set up and configured with everything it needs, it’s easy to clone however many copies of the VM that will reasonably fit into my hardware.

Virtual Machine Manger window
Virtual Machine Manager window

The first VM I created had 500 GB of storage, 8GB of RAM, and 2 CPUs. Created a few more with only 250 GB of storage, 8GB of RAM and 1 CPU. Put four of these to work on one of the larger simulation sets over the weekend. The first time I ran a version of the set, it took about 10 days to finish on my computer. With 4 VMs each running a different part of the simulation set, everything was finished in about 2.5 days. Sweet. I can peek in on each VM with a viewer application to see how each one is running, but otherwise they run quietly and hidden away on their own. No more PCXMC windows popping up on my desktop to interrupt me while I’m doing other things.

Quickly realized that these VMs were way more than was needed, and 4 VMs with 8 GB of RAM each didn’t leave my computer with much memory left for doing much else (it only has 24 GB RAM). Next task will be to create some VMs with one of the other lighter Fedora spins (LXQT maybe) and a smaller footprint (100 GB storage, 4 GB RAM) to run PCXMC with.

Computer upgrades

The computer got another hard drive upgrade when the 1TB drive holding my home directory started throwing errors and disappearing from the system. After causing a small amount of panic and a few reboots, the drive managed to stay stable enough for me to get it backed up to the LVM partition. Now it’s been replaced with a 1TB SSD which has given me a nice speed boost.

The nearly 10 year old mid-range (at the time) video card, a GTX 260, also got an upgrade to a much newer and higher end GTX 1660 Ti. The GTX 260 was getting pretty old, and I was starting to get some weird errors with the nouveau driver, so I figured it was time for an upgrade. The new card is about 2/3 the length of the GTX 260, which gives a little more room around the SATA ports and hard drives to work. Hopefully I’ll be able to put the GPU to some number crunching work at some point, and later maybe get into a bit of gaming (after the PhD of course).

Hard drive upgrades

One of the hard drives in my computer had been spitting out errors for a little while now, so over the weekend I revamped the storage in my computer. I’m also expecting the simulation work I’ll be doing for my PhD will require a decent amount of storage, so I picked up a couple 4 TB WD Blue hard drives from Newegg. They were a decent price, and brought my computer from a total of about 3 TB up to just over 10 TB of storage.

The failing drive (1 TB) got replaced, and I also took out an old 250 GB IDE drive that I was using as a place to temporarily dump files. That left a 1 TB drive, two 500 GB drives, and the 250 GB SSD.

After doing a bit of cable gymnastics in the case, the two new drives got installed and plugged in. Current configuration now has the SSD as the boot drive and root partition. I made the 1 TB drive my home directory, and decided to lump the 4 TB and 500 GB drives into a single LVM2 volume group for my primary storage. I considered a RAID 1 or 10 configuration, but with time and brain space constraints, a JBOD setup seemed like it would be easier. I might change my mind later on though.

If it turns out I need even more storage, the case still has one empty drive bay that I stick another drive into.