Wednesday, September 23, 2026

Retirement Project - Fixing up the SWTPc 6809

Given that it is 50 years old, the SWTPc 6800 Computer System which I call my retirement project has been in need of some "fixes". 

Having made the BBUG ROM monitor changes to allow for extended address decoding, it was time to do some surgery on the motherboard. Might as well make some fixes.
Post close-up

Posts

The original SWTPc kit held the motherboard in place with seven plastic clips along the edge. They were designed to be pushed down from the top and clip in to the chassis bottom. A plastic arrow held the motherboard in place and could be easily unclipped. In theory.

The sad reality is the clips never engaged correctly with the chassis bottom, and often one whole end of the motherboard would be loose in the box.

Seven posts
Around 1979, just before heading to the ISEF, I replaced these clips with #6 screws, lock washers and multiple nuts. Four nuts supply the spacing, with a fifth nut holding the motherboard in place. The #6 screws are a tight fit through the holes in the motherboard, but everything is aligned. 

I took some pictures of these beauties in case someone needs to replicate them.

Feet

Chassis bottom with new feet,
and the adhesive of the original.
The original SWTPc 6800 Computer System kit supplied rubberized stick-on feet. Honestly, they held up pretty well nearly 50 years. Along the way, one of them had fallen off and gotten lost, and the replacement foot wasn't quite tall enough. I replaced them with rubber feet held in place with a #6 screw.

This meant drilling some additional holes in the pan of the chassis. Not a big deal, nor was the placement critical. One foot borrowed the #6 screw holding the clamp for the power cord. The other three used new hardware.

I eyeballed the placement of the other three screws, and the results were acceptable -- certainly compared to the old stick-on feet.


LM7805 Bypass Caps

Input and output 0.1 uF caps
lap-soldered across LM7805.
Because the SWTPc uses an unregulated 8 volt supply, every board has one or more LM7805 +5 volt regulators. Examining my bit rate generator board, I wondered the regulator was properly bypassed. I remembered an issue in a different project where an LM78xx regulator oscillated because it wasn't bypassed correctly. 

A search of the data sheet provided a concise answer:
  • All LM7805 regulators should have 0.1 uF ceramics across the input and output.
  • LM7805 regulators that supply 50 mA (or more) current should have 10 uF per 100 mA on the output.
These were simple rules to follow. A quick survey of the SWTPc schematics made it clear that the designers had never heard of the first rule. There were no input bypass caps at all. Output electrolytic bypass caps were present on those drawing more current, with an occasional 0.1 uF cap. The Tanner and Gimix boards were more heavily bypassed. My home-brew boards were no better than the SWTPc designs.

This problem was easy to solve. I have a bunch of 0.1 uF multi-layer ceramic caps. I added them to the boards:
  • 0.1 uF on input of bit rate generators card
  • 0.1 uF on input and output of MP-S cards
  • 0.1 uF on input and output of MP-C (modified to MP-S) card
  • 0.1 uF on input and output of MP-LA card
  • 0.1 uF on input of MC68B09 V2 CPU card
  • 0.1 uF on input of MP-B motherboard
For the MP-S, MP-C and MP-LA cards,  I lap-soldered the caps on the back-hand side of the board, rather than drill holes. Easily done in a few minutes.

I added some small-value electrolytic caps to the output of some LM7805's. Generally, boards that include these caps have a 100 uF unit, which is good enough for 1 A of current -- overkill for some boards.
  • 22 uF on output of bit rate generator card (more than necessary, 15 uF would be enough)
  • 10 uF on output of MP-B motherboard 
It could be that none of these bypass caps are required, but seems like they can't hurt.

Extended Decoder

Dec 1986 decoder circuit
December 1986, I added an extended address decoding circuit to the motherboard. The decoding avoided aliasing of the xExxx pages that prevented access to RAM or other devices. With the MC6809E V1 CPU card, this worked fine with BBUG, but the OS/9 ROMs had a different idea on how to program the DAT, so it didn't work with OS/9. I disabled the decoder and didn't figure out the problem until much later.

When I switched to the MC68B09 V2 CPU card the problem had reversed -- the decoder would work with OS/9, but not with BBUG. 

With BBUG updated to initialize the DAT in a compatible way, I could fix the decoder. The picture shows  the original decoder was a hastily improvised circuit using a 74LS21 4-input AND gate to detect all "1" values on S0-S3, connected to IC6 Pin 6 (Enable).

I sketched out some changes to decode several address lines, but I either never made those changes, or I removed them. The key to the MP-B motherboard is IC6 - a 74LS138 3 to 8 decoder. These other address changes messed with IC3 -- a different 74LS138. The MP-B I/O port data buffers are activated from IC6, so additional decoding against IC3 was an incorrect solution, as the data bus was active, even if no I/O slot was selected.

The new decoder board had simple requirements:
  • Disable Extended decode entirely
  • I/O accessible from FE000-FE07F (and FF780-FF7FF)
  • I/O accessible only from FF780-FF7FF
The I/O ports are aliased over a 2KB block -- each 16 byte I/O slot appears 128 times. This meant decoding S0-S3, A15-A12, A11, A6-A4. A15-A13 is handled by IC6, A6-A4 by IC3. A3-A0 is done by each I/O card. A10-A7 are not decoded. The decoder circuit just deals with S0-S3, A12 and A11.

Decoder showing jumpers
Decoder operation is jumper-selectable. This allows me to test each change and back out changes if something didn't work. The first jumper selects between the FFxxx I/O address or the FExxx / FFxxx aliased I/O address. The second jumper enables/disables extended decoding entirely. 

The 74LS21 has the first AND gate connected across S0-S3. The second gate is wired as a two-input AND that uses the output of the first AND gate and jumper-selectable A12 or a pull-up. The output of the second AND goes another jumper selecting IC6 pin 6 (Enable) to the output of the AND or a pull-up. A11 goes to IC6 pin 4 (Enable*) to ensure the I/O data bus buffers activate only on the lower 2 KB of the 4 KB memory page.

Clean mount of decoder
Circuit uses a bit of perf board and a 3M Scotchflex socket I've used for other projects. Surprisingly, I did not have a 74LS21 in my junk box. I salvaged the soldered unit I had hastily assembled in 1986. That worked out. The board is cleanly mounted on a spacer to the motherboard and all of the connections are made with wire-wrap wire.

Testing

Testing, much to my surprise, went perfectly. The disable jumper worked as before. Enabling the aliased extended decoding allowed me to use the xE pages of memory, and a special burn of the BBUG ROM allowed me to test I/O at FF780-FF7FF. This worked as expected. I could enable and use the FExxx block of RAM on the MC68B09 V2 CPU board and access it using the DAT,

Not sure why I was afraid of all these "fixes". I suppose I was shy about changing the motherboard in a way that might break the computer entirely.


Saturday, September 19, 2026

Cancer and my Absence

Cancer

I have yet to write about it here, but it is not a secret. December 2023, I was diagnosed with Stage IV Pancreatic cancer. Those who are close enough to follow me on Facebook know the whole story, so I won't repeat it here. I just want to acknowledge the issue.

Treatment

I've been treated since January 2024. I've undergone two different rounds of chemotherapy. The first, Abraxane / Gemzar cost me my hair, but ultimately was not sufficiently effective. Next was a Folfirinox regimen and remained through 18 treatments. While my oncologist decided the treatment was doing me more harm than good, each treatment has changed the landscape of my disease. I do not consider any of the effort wasted. The upside is, my hair grew back.

From July 2025-January 2026, I participated in a Phase I clinical trial for a type of immunotherapy. The sponsor ultimately cancelled the trial because it wasn't sufficiently effective.

Because of my otherwise good health and the relative stability of my main lesion, my doctors recommended this spring to treat my liver metastasises with Y90. Since the liver mets were where the action was, it seemed like a good course of action while I waited for another clinical trial.

The Y90 treatments were successful and appear to have eliminated the visible tumors on my liver. Unfortunately, this left a large amount of necrotic material around my liver.

Inactivity

I apologize for my recent inactivity. The area surrounding my liver became subject to a massive bacterial infection. Since mid-July, I had been subject to increased fatigue, pain and declining appetite which ultimately landed me in the hospital for eight days late in August. 

More Treatment

As with many advanced cancer patients, my issues were complex. Not only did I have a severe infection, turns out I had several gallstones and a large quantity of "gunk" blocking my common duct causing jaundice. Everyone was very surprised to discover the gallstones, since I had my gallbladder removed over 27 years ago. 

With the gallstones and gunk removed, and a drain on the large abscess near my liver, my improvement was immediately apparent on the labs the next day. 

Home

I've been home since early September, but progress has been slow. I'm using extremely strong IV antibiotics three times a day. my abdominal pain has gradually subsided. I'm eager to get back do working on projects and recently planned some for this fall.

Obviously, I haven't been able to dig the hole for the tower, When I started that, I never thought it would take six months to dig down four feet. It may take a while yet.

I feel very lucky as a pancreatic cancer patient. Most are not diagnosed until their cancer has reached a very advanced stage. They end up with very little time. Mine was caught a bit earlier, and for that I'm fortunate. 

Focus

Even without a lot of formal medical treatment for the last year and a half, I've been focused on my health. A key provision is keeping weight on. Although I weighed about 230 lbs in much of my adult life, I'm currently around 155 lbs -- having lost about 10 lbs during my last hospital stay. I'm working hard to get back to 165 lbs. Good nutrition is the key -- I don't eat junk. There's little added sugar, refined flour, or processed foods in my diet. This is what kills us. Lots of protein, fruits, vegetables, beans, nuts, seeds. Carefully choosing what you eat is probably the best medicine.

I'm also exercising. My other hobby teaching martial arts. I'm 5th Dan in Taekwondo, and I enjoy teaching at a local studio. I haven't been there in nearly three months now. I miss it greatly. Two weeks out of the hospital, and I'm finally strong enough to make some kicks. Once I'm off these IV antibiotics, I should be able to return.

Meditation and prayer are a part of my health focus. It's not just me praying -- I have a whole host of folks from a lot of different religious traditions. I seriously believe the appeals to the divine work. We're all connected to our Creator and each other in this way. I'm very thankful for those who pray for me.