Skip to content

Refurbishing a Horizon 4000 RAMdisk

TI-99/4A Ksarul and IM sent over a Horizon 4000 that wasn't working right. To wit, it wouldn't be detected at all by what passes for an OS on the TI-99/4A.

I got it working, and it didn't take too long. Along the way, I noticed some odd things about the design. My notes are below, in case someone else ends up working on a similarly broken board.

It turns out that U9, which was specced as a 6264 on the schematics, was a 62256. Although the 62256 passed a quick test with the TL866, it wasn't working with the 32/8 jumper in either position (and, per the documentation, that jumper was the selector between a 6264 (8) and a 62256 (32)).

There's bad weirdness going on with the 32/8 switch. It's on the schematic right next to R3, and if the schematic can be trusted, that jumper merely switches the power source for one of the chip selects on the CSR RAM from mains to battery. You don't want that. That doesn't switch pin 26 from a chip-enable (6264) to an address line (62256). Leave the jumper at the 8 position to keep it wired to the main voltage rail and avoid unnecessary battery drain ...

... the other CS (or A13 if you're using a 62256, which is what the aforementioned 32/8 switch should be frobbing) is more or less held high by the power LED, a diode, and a resistor before it hits the base of Q2. That's not a reliable way to do this. I think it works on a 6264 because TTL is voltage-tolerant, and chip-select is really tolerant. I can see a 62256 address line having issues with this. If I were redesigning it, I'd wire it high to the main voltage rail through a dedicated 4.7k resistor and depend on the !CS2 mentioned in bullet point one. No need for a 32/8 switch if that is done.

The '156 that is ultimately handling the !CS2 signal is open-collector, so it needs to stay connected to the main voltage rail. That bit I wouldn't change.

The power circuit needs to have R9 removed, and both CR10 and CR11 replaced with wires. This achieves several things: makes the circuit compatible with modern switching 7805 replacements, removes the voltage drop from the main power rail, and eliminates the need to add the same amount of voltage to the regulator's ground connection to compensate for the previous diode. CR12 handles any direct backwash from the battery power circuit (+5B), so CR10 and CR11 are both unnecessary and harmful.

After replacing U9 with a 6264 and moving the jumper to the 8 position, the RAMdisk fired up fine. Everything past that was either cosmetic (fixing the power circuit so that it didn't shed scads of waste heat) or investigative. These are weird boards, designed weirdly, and there's room for improvement. For example, the 74HC154s should not be HC, they should be HCT and they should not be on the battery-backup circuit.

I'm sure there's more weirdness in the design, but that's good enough for one post. Hope this helps someone else trying to fix one of these boards.

No more AtariAge.

TI-99/4A Well, there I was basking in the warmth that was the TI-99/4A AtariAge forum. I felt comfortable, I was among friends (some of whom I wouldn't like in real life, I think, but at least civil people).

However, I forgot rule one for non-Americans: don't point out the decline of the American civilization to Americans, even if you are or used to be one. It never ends well.

So, to avoid more bloodshed, I've withdrawn from AA. I'm pretty turned off on the whole TI-99/4A scene at the moment; if I do any more hardware work on this machine, I will post here rather than AA.

Sorry, Ksarul/IM/Tursi/ralphb. You guys are okay. I don't much care for the country that two of you live in (three, if we count China), but that doesn't (or, rather, shouldn't) affect our friendship.

Your cohorts at AA, however ... I don't care to associate with people like that.

You guys can always reach me here, or via email.

Cheers.

Internal power / disable switch for the Axiom Parallax printer interface.

TI-99/4A The Axiom Parallax sidecar Centronics printer interface has only nine chips inside, and they're all small LS TTL glue.

The console +5VDC supply should be able to handle the additional (minimal) current draw, especially if the console has an F18A and the now-useless 4116s were removed. One less wall wart to get in the way, plus the Axiom runs cooler because the linear regulator isn't dumping ~+4VDC as waste heat.

So I tried it. It works. Here's what you have to do:

  • Ensure that you've actually got +5VDC on pin 1 of the expansion bus (lower left as you're looking at it). If you have a speech synthesizer, you don't, because TI didn't run the line. If that's the case, crack the synthesizer open and run a wire between pin 1 on the socket and pin 1 on the card edge. Be careful not to oversolder the card edge -- solder it to the very edge and clean up with desoldering braid.
  • Disassemble the Axiom. There are a lot of screws and standoffs. Keep track what goes where.
  • Desolder and remove the 7805 voltage regulator. Note the orientation of the 7805 -- pin 3 is the pin on the right-hand side as you're facing the regulator, and that's the one we care about. The board quality is just a tad above crappy; if I had to do it over again, I'd snip the leads and pull what's left out of the hole rather than do a full desolder, because I lost the through-plating on the (now unused) voltage supply pin.
  • On the bottom of the board, solder a wire between pin 1 on the socket and the solder pad of where pin 3 of the 7805 used to be. The pad may not have been run through to the bottom of the board; if so, poke the wire through the hole and solder to the pad on the top of the board.
  • Remove the old power jack, because you'll need that hole for the disable switch.

  • There's another modification that the Axiom should have if you're using an UberGROM.

    As documented, the UberGROM uses spacebar-at-powerup to bring up the recovery code.

    Well, the Axiom does the same thing -- it goes into diagnostic mode when spacebar is held at powerup, and keeps outputting chr(0x01) through chr(0xff) until you release it. And the UberGROM never sees the spacebar held down, so it never invokes the recovery code.

    And if you're like me, you probably have your sidecar connectors wired down with something like double-sided tape to keep them from shifting and crashing the console. Thus, unplugging the Axiom is a PITA when building up UberGROMs on real hardware.

    Luckily, disabling the Axiom at boot-time is simple. Do this:

  • locate pins 20 (!CE) and 18 (!OE) on the ROM/EPROM,
  • disconnect them. There's a trace on the bottom of the PCB that wires them together -- take a razor knife and break that connection.
  • prepare a single-pole dual-throw switch (i.e., two positions, three wire lugs). Solder a 4.7k resistor and a length of wire to the leftmost lug (which we'll call 1), and regular wire to the middle and right lug (which we'll call 2 and 3).
  • Wrap electrical tape or heat shrink tubing around all of the switch solder joins (both sides of the resistor especially). You don't want anything shorting out inside.
  • Feed the three wires in through the top of the PCB. There are a bunch of viable holes: pick one that feels suitable.
  • Connect 1 to +5VDC. There's a nice big lug to the left of pin 24 on the ROM/EPROM; that's a safe place to hook up.
  • Connect 2 to 18 (!OE).
  • Connect 3 to 20 (!CE).
  • Test before reassembly. If it all works, reassemble. Put the switch where the power input used to go.

  • What you're doing is forcing the EPROM output-enable signal to be logic-high all the time when the switch is engaged, essentially disabling the EPROM. When the switch is disengaged, !OE gets the same signal as !CE (the chip-select line) and the EPROM is enabled when the decode glue kicks in. This method takes advantage of the old ROMs having separate chip-enable and output-enable, and makes it easy to turn off the EPROM without messing with the chip select logic.

    (Also of interest: the Axiom can use either a 2716 or a 2732. Pin 21 (A11 on 2732) is grounded on the PCB, so both will work. Just put the firmware in the bottom half of the 2732 and you're good to go -- no need to fill the ROM by double-copying.)