I am currently experimenting with Chucky's re-engineered A3660 accelerator board for the Commodore Amiga (3000(T) and 4000(T)).

My ultimate goal is to add an additional 512kB EEPROM to the accelerator board at $00F00000. According to the Amiga Memory Map, the address range $00F00000 to $00F7FFFF is reserved for extended ROMs and is checked by the Kernel (exec.library) on boot time. As I understand; if a ROM is available on this address, exec.library will automatically embed it.

I would like to add 68060.library and workbench.library on the additional EEPROM.

So here are my rookie questions regarding the hardware requirements:

1.) How do I position the EEPROM at $00F00000? Are the memory addresses stored along with the corresponding assembly code lines?

2.) Do I need additional hardware components besides the 512kB EEPROM connected to (A0:A19) and (D0:D15) ?

I am sorry for these amateur's questions, but I need to build the prototype first in order to experiment with the Kickstart ROMs :-)

UPDATE 04/04/18:

Thanks Brian for your great answer!

More on this topic at this thread on EAB.

up vote 4 down vote accepted

The Amiga Kickstart ROM is modular. As such, you can build custom ROM images containing whatever selection of libraries, devices, and handlers you would like to be ROM resident. And, as you indicated, the total ROM image can be up to 1MB in size, even though all original Amigas shipped with a maximum of 512KB of ROM.

Once you build a custom ROM image, probably using the tools described in this guide, you just need to split up the binary image and write it to your 2 to 4 individual (E)EPROM chips, each chip containing the appropriate portion of the image depending on where it will appear in the memory map.

1.) How do I position the EEPROM at $00F00000? Are the memory addresses stored along with the corresponding assembly code lines?

You position it "electrically". It's not so simple as the "ORG" address in an assembly file. The Amiga's ROM is a sophisticated module representation and you must use sophisticated tools to build it, as described in link above. Then, you must make your 512KB visible at the correct address to the hardware...

2.) Do I need additional hardware components besides the 512kB EEPROM connected to (A0:A19) and (D0:D15)?

Yes. You will need some address decoding logic to properly select your new ROM when the Amiga addresses the range 0xF00000-0xF7FFFF. For a 68040/060 CPU, that would mean decoding (A20:A31).

As fas as the data bus, you wouldn't really want to hamstring the Amiga with 16-bit access to ROM. And I would assume that the ROM code is going to assume 32-bit access since that was the norm for Amigas that had a 32-bit bus. So you would probably need to either patch the ROM to work for 16-bit access on the A3000/A4000, or you should use 2x256KB EEPROMs and have them contain even/odd WORD data to allow 32-bit access.

  • I'm not sure that's exactly what the original post is looking for. I got the impression they were trying to implement an extended ROM (similar to the way HDD controller boot ROMs work) that get loaded at boot time, not to integrate the changes into a replacement for the main Kickstart ROM. The difference would be this would allow the additional two libraries to be loaded regardless of which Kickstart version was being used. – mnem Apr 4 at 14:03
  • I disagree. An extension ROM like you describe would be on a Zorro II/III board that uses AUTOCONFIG, not a CPU board. – Brian H Apr 4 at 15:47
  • I'm just pointing out that your answer is not addressing the original question (about implementing it as an extension ROM). Maybe add something about why you don't think that approach is a good idea and that your answer is providing an alternate method to solve the problem? – mnem Apr 4 at 16:00
  • 2
    @Brian H : Thank you so much for your great answer! It already helped me a lot to understand on which topics I need further reading. I now have a good idea of address decoding logic :-) My ultimate goal is to have the 68060.library loaded from the additional (E)EPROM on the CPU board along with the existing System ROMs, ending up with a Plug&Play edition of the A3660 :-) The goal is to leave the original System ROMs as they are and just add the content of the new ROM on the CPU board (mainly the 68060.library). Although, I don't know if my idea is even implementable...? – salocinx Apr 4 at 19:32
  • I started a thread on the English Amiga Board on this topic. I think a classic forum is more appropriate for finding a solution to my question, since I will need quite some help. Here's the link: eab.abime.net/showthread.php?p=1232256#post1232256 – salocinx Apr 4 at 19:33

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.