• Please review our updated Terms and Rules here

AIM-65 ROMULAN RAMROBBER

Hugo Holden

Veteran Member
Joined
Dec 23, 2015
Messages
4,805
Location
Australia
The more I played around with the AIM-65, the more I realized (like in my SOL-20) it would be good to have extra ROM space. For example to hold small programs such as one to initialize the RM-65 video card, and or the AH5050 disk filer.

Possibly there might be some space hiding in the existing ROM's, but they are all original mask types in my AIM and I don't really want to change them.

Of course, additional memory could be added to the expansion connector, but that is currently used by the video card.

I looked at the idea of hijacking some of the upper RAM space in exchange for ROM.

There is only 4k of RAM in the AIM 65 though, that is with all the RAM sockets filled with 8 x 2114 IC's. A pair of IC's provides 1k of memory.

Also in the AIM-65, when the power supply is mounted in it, the bobbin of the line power transformer sits just above the surface of most of the 2114 RAM IC's and there is little physical clearance to fit a board that is taller than the IC's.

I decided to hijack (Rob) just half of the pair of 2114 IC's address space, in the upper part of memory, 512 byte addresses, from address 0E00 to 0FFF.

To do this I had to make an address decoder using the existing RAM select signal corresponding to address 0C00 and from the Address line A9.

I decided to use a 2716 ROM, simply because these are easy and run off +5V alone. It didn't really matter that most of the 2716 was not used.

I shifted the original 2114 IC's off to the side, where they were clear of the transformer bobbin. Added a 7400 IC as the address decoder to split the upper 1k address range in half and added a 2716 ROM.

Now it is very easy to run the program in the ROM to activate the RM-65 video card, without having to load it from tape or disk. After it is run the first time it creates a linkage to the F1 key which is helpful to switch back to the video card.

I constructed it on some proto board. To keep the thin Millmax pins correctly registered I put them into a machine pin socket before soldering the array into the board. Also, I put an insulating sheet on the bottom of the board. Easy to attach. I picked up some very nice 1mm diameter x 5 mm long screws and nuts last time I was in Akeharbara in Tokyo. These screws pass through plated through holes on spot board and are useful for attaching things.

The board also screws down to an existing mounting hole with a spacer and a longer 6-32 machine screw, so that is cannot fall out.
 

Attachments

  • ramroba.jpg
    ramroba.jpg
    767.6 KB · Views: 26
  • ramrobb.jpg
    ramrobb.jpg
    339.7 KB · Views: 24
I assume you wanted your design to directly plug into the two 2114 RAMs only?

Thinking a little more "out of the box", you could wire the two 'unused' 2716 address lines (A9 and A10) to two pins of the user VIA (Z1).

By writing to the two bits of Z1 you could then map 4 pages of 512 bytes from the 2716 EPROM into your 'robbed' address space. This should quadruple your potential ROM size.

You will need a common bit of code in each 512 byte page that is responsible for the page swapping.

Dave
 
I assume you wanted your design to directly plug into the two 2114 RAMs only?

Thinking a little more "out of the box", you could wire the two 'unused' 2716 address lines (A9 and A10) to two pins of the user VIA (Z1).

By writing to the two bits of Z1 you could then map 4 pages of 512 bytes from the 2716 EPROM into your 'robbed' address space. This should quadruple your potential ROM size.

You will need a common bit of code in each 512 byte page that is responsible for the page swapping.

Dave
Dave,

That is a very good idea to switch pages. I have done that trick before in my 2465B scopes with larger than required memory IC's to keep file duplicates, but I used a pcb mount switch ! Software control much better.

One thing about the project though, I did not want to make any hardware modifications to the AIM-65 or add any soldered wires. So the card at the moment just plugs in place of two of the two 2114's at positions Z17 & Z18 which are taken out of their sockets and moved onto the the card. Basically they end up being connected exactly where they were except for their chip select pin 8.

Where the card plugs into the sockets, it is no taller there than the surface of the IC's when they were there in their sockets. Luckily in the zone where the IC's and their sockets are placed on the card, they don't touch the transformer bobbin. There is not a lot of room because of the power supply.

So far I have used up 67 bytes of the now available 512 bytes with the video card initialization program, Likely I won't need them all. It is a time-saver to have that there because every time I use the computer I want the video display. The program initializes the CRTC controller in the RM-65 video card to the 22 row x 72 column 525 line mode which makes for a very good display.

I could have made the card simpler by just leaving the 2114's off the card and have the ROM step in for the whole upper 1k of memory, but since the machine only had 4k that would have a loss of 25% of the memory space, which would have been fairly significant. So I think it was worth keeping the two 2114's on the card, plus, they do not get separated from the machine, so the card can be removed and the machine put back to normal anytime.

It doesn't matter that the upper 512 bytes of RAM has gone when BASIC boots, because BASIC automatically detects where the memory finishes and fills the RAM with AA's.

The only worry with it, is exactly the same as many other "add to the IC socket cards", that the pins on them could affect the IC sockets. The ones I used are 0.45mm diameter (the thinnest I had in stock right now that I got from Mouser) Ideally though, they would be better off being flat types, since the sockets in the AIM are dual wipe types.

I also made the unit from what would be period correct parts, like the 7400 IC and the ROM, that 2716 ROM is one of those Czech mil spec ones with the gigantic die, but if you look closely also I used a 5400 ceramic body Nand gate. I bought up a lot of these 54 series parts many years ago when they were cheap.Though I had a lot of trouble finding the radiation hardened versions.

It would obviously be better with a pcb, now that the design is known to work, I guess one could be made. Always better to prototype it first though, or you end up with horrible pcb revisions.

In terms of the geometry, fortunately Rockwell put their RAM IC sockets on a 2.54 mm grid, which simplified things.

One "trick" though was to figure out where the pcb mounting hole for the screw would be located on the card when it was plugged in. You might notice on the diagram I did not specify that. I still don't know its exact location, but, the threaded hole where the screw goes in is hollow, all the way through to the metal base, what a stroke of luck. So I simply plugged the card in and put a round scribe tool through the hole from the bottom and was able to mark its exact position on the card.
 

Attachments

  • pgselect.jpg
    pgselect.jpg
    188.5 KB · Views: 8
Last edited:
That's what I thought - that you didn't want any 'dingly dangly' wires...

Dave
Dave,

Strangely your PETTESTER ROM helped this project, in an oddball way !

When I first wired the card up and had programmed the ROM (at offset 0000) it was not working and I was just seeing FF's at address 0E00 and above to 0FFF and I was not sure if that meant that they were the FF's in the un-programmed ROM area, or if the data bus might look like FF's with nothing selected and I had fouled up the wiring on the card. Of course, being used to the notion that the ROM doesn't need an offset because it activates from the address it is selected to work at.

So I thought, hmmm... I need a 2716 ROM full of data, so I reached for your PETTESTER ROM on my desk, put that in, and found your code and looked at the byte sequence starting at 0E00 and wrote that down. Then I put your ROM in the GQ-4x and found that byte sequence was starting at 0200, and the penny dropped, and I realized it was because A9 was high when the ROM is selected. And I reprogrammed my ROM with the file starting at 0200 and all worked out.
 
Back
Top