Posted on

6809 Pull-up Resistors

As many of the Dragon and Coco community will be aware, the Dragon MSX 2+ board has been in development for around a year now. This evolution of the WordPak 2+ board by CocoDemus features three main ICs for audio and video supported by a CPLD.

It has been working flawlessly with real disk drives, the DragonDrive and the DragonMMC. With workarounds it has also been working well with the Coco SDC. By workarounds I mean that the VDK image would need to be selected using Pere Serrat’s extended DOSPLUS (which is how the Coco SDC usually boots for Dragon machines), but then a BANK command would need to be issued which would retain the VDK image, but reboot into another DOS – typically SUPERDOS E8 or Eurohard DOS 4.2.

After much head-scratching and experimentation between myself and Pere, Darren Atkinson (the designer of the Coco SDC) came up with a suggestion as to what might be wrong. He suggested that the 6809 SYNC command used in the various DOS versions might be susceptible to all of the additional circuitry that was connected (with the Coco SDC and the Dragon MSX 2+, there is a lot!).

Essentially the SYNC command is designed to put the 6809 busses and R/W lines into an open-collector or high-impedance state, whilst the 6809 waits for an external interrupt to be fired. The theory as to what was causing the issue was that the additional circuitry could be causing stray capacitance to trigger spurious activity within the CocoSDC – and essentially crash the device. The solution – which is fitted to all Coco 3s by default, is to connect 4k7 pull-up resistors between +5V and R/W and each of the address lines.

I originally modified an Oojamaflip 2020, as this was the simplest and safest way to test this out, and lo and behold, it worked. The Dragon MSX 2+ and Coco SDC were now able to operate in perfect harmony with no DOS banking required.

This lead to the development of two off-the-shelf products that could be used to implement this fix. One being an updated version of the Oojamaflip 2020 – the aptly named Oojamaflip 2021, and the other being a very compact CPU adapter board (6309/6809 Pull-up Adapter – Kit Version).

Of course there is absolutely no reason why you cannot modify your own Dragon to add these resistors somewhere else. Underneath the motherboard is a possibility if you are feeling brave – though do watch for areas where the solder mask is not protecting adjacent tracks properly.

Posted on

Dragon 64 RAM Faults

One of my Dragon 64s is set up so that I can test RAM easily. I’ve made some little PCBs up, which allow me to plug in a mounted ZIF socket into a standard DIL socket on the lower four RAM positions, as per the image below:

D64 RAM modified for testing

Whilst I was undertaking this testing, it became apparent to me, that before even getting to the memory test program, a RAM fault would generally appear on the boot screen. In fact, faulty RAM would fill the majority of the screen with a single character.

Through a bit of trial and error I discovered that the single character shown could be used to work out which chip(s) had failed.

Another way to reproduce this fault was simply to leave one or more sockets empty, with the populated sockets containing known good chips.

I’ve not replicated the testing on the upper row of four DRAM chips, but I have worked out what symbol corresponds to which of the lower sockets are faulty, as presented in the table below. RAM A-D are the bottom row of RAM, from left to right respectively. If anyone knows how faults would show in the upper row of RAM chips, please do let me know.