Posted by retromaster on October 25, 2010
Cumulus Test ROM running on Oric
Cumulus LA Debugging Setup
Over the last week I worked on debugging the Cumulus 6502 interface. One of the shots above shows a small test program (coloured bars in hi-res graphics mode) I wrote for testing. The program resides on the 28C256 EPROM on the Cumulus board and is executed by the Oric on reset.
The problem with the Oric bus turned out to be due to the 74HCT221-based circuitry on the Cumulus board. This circuitry generates a couple of signals from the 6502 O2 signal coming from the Oric. Those signals are in turn used for controlling some Oric bus-related signals such as 28C256 output enable. The pulses generated by the 221 were too long, actually about twice the length specified in the datasheet.
I managed to solve the problem by manually adjusting the component values until I got proper the pulse widths. The problematic circuitry actually comes straight from the original Oric Microdisc schematics, with one difference: The original circuit uses an LS variant instead of the HCT that I used. According to the datasheets, there does not seem to be a difference, but I may have missed something.
There are still some problems though. Sometimes the Oric does not properly reset, most likely due to Cumulus affecting the reset sequence. Sometimes there is some wave interference on the video output. Other times, the video output looks as if the Oric never switches to the high-res mode, remaining in text mode (I get coloured bars, but longer). I’ll probably conceive a shorter program to reproduce these issues and debug using my current setup with the logic analyzer.
Posted in Projects, Retrocomputing | Tagged: 28C256, 6502, 74HCT221, 74LS221, Atmos, Cumulus, Floppy Emulator, Microdisc, Oric | 3 Comments »
Posted by retromaster on October 18, 2010
Repaired Oric Atmos Mainboard DRAM Closeup
Repaired Oric Atmos Mainboard Full View
It seems I keep hitting roadblocks with the Cumulus project. Fortunately, I was able to overcome the obstacles once more.
Couple of days ago, I tried the Cumulus prototype board with an Oric Atmos. The intent was to test whether the 6502 bus interface (the onboard ROM) was working properly. Needless to say, I was not surprised when it did not work the first time . I spent the better part of an evening trying to figure out with the logic analyzer where the problem was. The Atmos booted fine when Cumulus was detached, though.
So, the next morning, I just try to boot the Oric with the Cumulus board detached, and it does not work! Most of the time, it just gave some scrolling horizontal bars on the left side of the screen. Other times, there was just garbage on the screen.
I was quite dismayed, but I also thought that the Oric was not beyond repair. I first checked the 6502 with the logic analyzer, and the reset sequence and the first instructions seemed to execute fine. I double-checked the contents ROM with a programmer, which were also fine. Then, I went on to verify the RAS/CAS/W signals going to the DRAMs. This, together with the fact that the video sync signals were fine, indicated that the custom ULA chip was fine. I was quite relieved by that, as it would be nearly impossible to source (except from another working Oric).
The only things left were the DRAMs, which are, incidentally, the most common sources of problem on these older machines. A quick check confirmed that the IMS2600 chips on the machine were actually the same as the very popular 4164 DRAMs. So, I went out and luckily found a shop that somehow still carried them… Started replacing the chips one by one with sockets, and upon replacing the second one, I got the familiar Oric BASIC screen. What a relief!
So, basically, I am still not sure if it was the Cumulus board that caused the problem. The DRAMs on these aging machines are prone to breakage anyway, so it might have been a coincidence, as well. Anyway, I tracked the problem with Cumulus down to some circuitry based on a 74HCT221 that generated a couple of signals from the O2 clock output of the 6502. I actually copied the circuit over from the original Microdisc schematics, but it seems on my prototype, the pulse widths of the signals generated are much too long. I may actually build a small test circuit with a just 74HCT221 on it to play around with and test the circuitry.
Posted in Projects, Retrocomputing | Tagged: 4164, 74HCT221, 74LS221, Atmos, Cumulus, DRAM, IMS2600, Oric | 2 Comments »