Monday, October 3, 2022

Part 1b: Memory mapping plan for the ETA-3400X

The main reason I wanted to obtain an ETA-3400 was to be able to use the serial Fantom II monitor and Tiny BASIC myself. I had already run all the sample programs and wanted to try out the memory expansion unit.

As I mentioned previously obtaining an original ETA-3400 Memory I/O Accessory was not going to be an easy or cheap option, and there were other creators who had built their own 'modern' version of the ETA-3400.

One of the more popular units recently is from Dr. Scott Baker who published his design on Github and even made a few videos demonstrating it's operation.

You can find more about his design here: https://github.com/sbelectronics/eta-3400 or on his home page here: https://www.smbaker.com/designing-a-memory-io-eta-3400-addon-for-the-et-3400-trainer

This was the path I was going to go down until I ran into a few minor issues. I wasn't able to order boards from eBay US, and at that stage I wasn't going to order printed circuit boards (PCB's) using the Gerber files as the design only replicated the memory mapping of the original ETA-3400.

It seemed to me that if I was going to order PCBs, I could probably come up with something that took advantage of the unused space in the memory map for bigger and better stuff. At the time I wasn't sure what 'bigger and better stuff' was going to include, but I knew that 4K RAM was going to be a bit restrictive for BASIC programs. These days RAM is very cheap and large static RAM chips are easy to obtain.

This leads me to what the memory map looked like and what I was proposing:

Memory map showing original ET-3400 and ET-3400A memory maps, followed by the ETA-3400 memory map and lastly two memory mapping plans I have in-mind.

As you can see from the left two columns, there is a lot of wasted space in the memory map. In the middle column you can see how the ETA-3400 was mapped into memory, and the right two columns is how I plan to use it. If it was possible I wanted to be able to alter the memory map using a jumper or switch. I've left some of the memory untouched between $C200 and $C7FF for possible future upgrades. This might change later, but for now that's the plan. I had originally thought about moving the 7-segment Display and Keypad address block, but that is built into the ET-3400, so it's not a feasible option. Also 48K of RAM seemed like the ocean for Tiny BASIC. I couldn't imagine using all of that anyway.
quote 'if you build it, they will come'
- from 'Field of Dreams (1989)

If it was possible I wanted to be able to alter the map using a jumper or switch to select a compatible map with the original ETA-3400, or an alternate map that provides more RAM. In the original ETA-3400 the designers placed the ROMs and PIA in the lower 1/8 of memory making it awkward to simply increase the RAM in a linear block as would be needed by any BASIC interpreter. I'm not even sure yet whether Tiny BASIC can be modified to utilise more RAM, so the only way to find out is to build it and look at the disassembled BASIC code.

One thing that annoyed me with the original ETA-3400 is that you were required to remove the 512 bytes of RAM on the ET-3400 motherboard, as the ETA-3400 memory I/O Accessory had that memory mapped into it. If it wasn't removed, then there would be a memory clash in the lower 512 byte space potentially damaging 2112 or 2114 RAM chips which are becoming increasingly rare (read $expensive$). So every time you connect or disconnect the ETA-3400, you also had to install or remove RAM chips on the main ET-3400/ET-3400A.

In my plan I want to leave the 512 bytes on the ET-3400 and simply avoid selecting RAM on the ETA-3400X when addressing that space. By doing this there is less likely to be damage caused by mechanical or electronic means.

BTW, I didn't name my version of the ETA-3400 as the 'ETA-3400X' until some time into the design. After a while I realised that it could get very confusing for others while I posted results on the ET-3400 groups forum (https://groups.io/g/ET-3400). So I added the 'X' to indicate eXpanded !. I doubt I'm the first to think of that.

Next I discuss the circuit design to achieve the desired mapping.

No comments:

Post a Comment

Part 2o: The future of the ETA-3400X

You can find all the work I've done on the ETA-3400X and 8K ALTAIR 680 BASIC, except for the ETA-3400X Gerber files, on the ET-3400 grou...