CPCWiki forum

General Category => Technical support - Hardware related => Topic started by: BrettH on 11:31, 10 December 24

Title: Using external ROM with PLUS machines
Post by: BrettH on 11:31, 10 December 24
Hi,

I'm trying to get Matt's PICOROM working on the Plus machines.

https://github.com/mattcallow/CPC_PICOROM

Using his firmware that works fine on the CPC machines just hangs the PLUS machine.

Matt says the first thing it does is pulls ROMDIS high to disable all internal ROMs ... but the PLUS machine has no internal ROMs, right?

Is there some documentation somewhere describing how to interface an external ROM with the PLUS?  How does it work with the cartridge - do we still need BASIC on cartridge or can an external ROM completely replace the cartridge?

Thanks,
Brett.

Title: Re: Using external ROM with PLUS machines
Post by: roudoudou on 11:41, 10 December 24
there is a mapping redirection from the cartridge to regular mapping (different on GX/464 and 6128...)

there is also a cipher on cartridge port + some obscur delay (to ME!) so i guess it's not that easy to make this

i lost my test cartridge (to detect GX/464/6128)ut i can dig a little and come back ;)
Title: Re: Using external ROM with PLUS machines
Post by: andycadley on 11:48, 10 December 24
You still need the cartridge, because the ASIC checks a valid ACID chip is present before allowing the machine to start up.

The Plus maps the cartridge ROMs further up the normal ROM positions (from 128 onwards) but then has special handling of the Lower ROM, BASIC and the Disk ROM so that they also appear in the usual places.

I don't know that there is anything specifically different about adding external ROMs on the Plus, but obviously it always possible there are edge cases (or just other Plus incompatibilities being hit)
Title: Re: Using external ROM with PLUS machines
Post by: BrettH on 23:44, 10 December 24
Thanks guys!

I did try it with the BASIC cartridge but it was the same effect.  Will do some more experimenting.

The PICOROM disables the internal ROMs and then uses its own copies of the firmware & BASIC, then whatever additional ROMs. you want to load in the remaining slots.  I've used the PLUS version of the firmware/BASIC.

Anyway, will keep experimenting.

https://github.com/0ddjob/CPC_PICOROM_PLUS
Title: Re: Using external ROM with PLUS machines
Post by: BrettH on 00:21, 12 December 24
Ahhh ... some very useful information here how the handling differs ...

https://www.cpcwiki.eu/index.php/Upper_ROM_Bank_Number
Title: Re: Using external ROM with PLUS machines
Post by: BrettH on 00:47, 12 December 24
This is probably the key bit of info:

On Amstrad Plus:

At the moment the PICOROM firmware expects to replace the lower ROM and then the remaining upper ROMs, so this isn't behaviour isn't compatible with the PLUS.
Title: Re: Using external ROM with PLUS machines
Post by: arnoldemu on 14:53, 12 December 24
Is this helpful?
https://www.cpcwiki.eu/index.php/Arnold_V_Specs_Revised

It says that ROMDIS from an expansion should disable a rom within the cartridge.

I assume the rom index written to port dfxx is fully decoded (all 8 bits). Also I assume that the i/o port address is decoded with a single bit like other rom boards.

I think that if the CPC6128 OS, BASIC and 'CPC' version of AMSDOS are used on the board then it should all be good. The Plus OS and AMSDOS have additional code in there to show the menu and enter burning rubber. So if you have a mismatch of CPC OS and Plus AMSDOS or Plus OS and CPC AMSDOS then it'll not work properly.

The bit you refer to about the physical roms accessible is lower ROMs is when the hardware has been activated through the unlock sequence and happens with Plus enabled software, burning rubber and carts, it doesn't happen normally when the machine is booted, so I'd be less concerned with that if it's to act like a normal rom board.

Title: Re: Using external ROM with PLUS machines
Post by: arnoldemu on 15:06, 12 December 24
Looking at the PICOROM I see it is using a sequence of:

LD BC,&DFFC
OUT (C),C

LD BC,&DFFF
OUT (C),C

LD BC,&DFFE
OUT (C),C

plus it then seems to want to read from FF00 to read back something from the Pi?

On Plus that'll activate one of the cartridge pages and on CPC it'll likely activate nothing.
So for Plus I suggest when any of these are chosen that ROMDIS is activated so FFxx can be read as expected.

Powered by SMFPacks Menu Editor Mod