News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Using external ROM with PLUS machines

Started by BrettH, 11:31, 10 December 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

BrettH

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.


roudoudou

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 ;)

andycadley

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)

BrettH

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

BrettH

Ahhh ... some very useful information here how the handling differs ...

https://www.cpcwiki.eu/index.php/Upper_ROM_Bank_Number

BrettH

This is probably the key bit of info:

On Amstrad Plus:
  • Each cartridge contains up to 32 physical roms.
  • The first 8 physical roms can be accessed as lower roms. And all the 32 physical roms can be accessed as upper roms.
  • ROM boards are seen as logical roms. They can be accessed only as upper roms and there can be up to 128 logical roms.

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.

arnoldemu

#6
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.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

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.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Powered by SMFPacks Menu Editor Mod