News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_HAL6128

How to change the content of an OS-ROM (Lower-Rom)?

Started by HAL6128, 09:39, 27 May 11

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

HAL6128

Don't know If I'm right here with my topic. How is it possible to change the content of the OS-ROM of a real CPC? For example: If I start WinCPC with Flynn's OS-Rom it starts in mode 2 (just a point). If I want to change the appearance during booting on a REAL CPC do I have to change the ROM (6128: 40025) with a adapted ROM physically or is it also possible to do that with a simple memory expansion connected?
Changing the content of the OS-ROM via Hex-Editor on PC (for example) is clear. Implementation to a Emulator is also clear, but how to do it on real CPC?
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

arnoldemu

Quote from: hal 6128 on 09:39, 27 May 11
Don't know If I'm right here with my topic. How is it possible to change the content of the OS-ROM of a real CPC? For example: If I start WinCPC with Flynn's OS-Rom it starts in mode 2 (just a point). If I want to change the appearance during booting on a REAL CPC do I have to change the ROM (6128: 40025) with a adapted ROM physically or is it also possible to do that with a simple memory expansion connected?
Changing the content of the OS-ROM via Hex-Editor on PC (for example) is clear. Implementation to a Emulator is also clear, but how to do it on real CPC?
You are correct here: one way is to replace the ROM 40025 with your adapted ROM.

It *is* possible to also do this with an expansion.

You will need to check a few expansion signals and use 16K ROM (to replace lower/OS rom).

The hardware will need to look for /ROMEN to be low, check A15=A14=0 and then return a /ROMDIS=0.
This is the way the hardware can check the OS rom is activated, and just the firmware/OS.

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

Bryce

Any external ROMBoard that can replace ROM0 will activate the external OS instead of the internal one if there's a valid ROM Image located there. Many of the older ROMBoards avoided ROM 0 (OS) and ROM 7 (CPM), but more modern solutions offered this option. My MegaROM has a jumper (J2) so that you can switch between the internal and external OS as you wish. More info here:  http://www.cpcwiki.eu/index.php/MegaROM

Bryce.

arnoldemu

Quote from: Bryce on 10:15, 27 May 11
Any external ROMBoard that can replace ROM0 will activate the external OS instead of the internal one if there's a valid ROM Image located there. Many of the older ROMBoards avoided ROM 0 (OS) and ROM 7 (CPM), but more modern solutions offered this option. My MegaROM has a jumper (J2) so that you can switch between the internal and external OS as you wish. More info here:  http://www.cpcwiki.eu/index.php/MegaROM

Bryce.

ROM0 is BASIC.
(in terms of the physical rom in the CPC - which is 32K, the lower 16K is the OS/firmware, the upper 16K is BASIC. Lower rom activates in the range &0000-&3fff (CPC), and upper (expansion) in the range &c000-&ffff.).

hal6128 is talking about the OS Rom which operates in the range &0000-&3fff.

Does the MegaROM support overriding this?
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

Oh, ok, I thought he was talking about ROM 0 upper 16K. So no, the MegaROM can't over-write the lower ROM. In fact I don't know of any external hardware that does? Is there any?

Bryce.

arnoldemu

Quote from: Bryce on 10:50, 27 May 11
Oh, ok, I thought he was talking about ROM 0 upper 16K. So no, the MegaROM can't over-write the lower ROM. In fact I don't know of any external hardware that does? Is there any?

Bryce.

I remember reading in AA about boards that did just this so you could put a 6128 rom inside a 464.
It was "big" business back in the day, along with external side switches and drive switches.

It would be a nice side project for you to create quickly ;)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

I'll have to take a look at exactly what's involved. It may be possible to make a tiny modification to the MegaROM to allow this. Everything that's needed is already there I think. Just a new jumper to turn it on and off. I never really considered it when I was designing the MegaROM, probably because nobody asked for it to be included.

Bryce.

redbox

Worth noting that it's easy to do this on the Plus as all of the ROMs are read from the cartridge.

If you modify the OS image, you simply replace it into bank 0 on the cartridge and it works - this is how it is easy to modify the Plus System Cartridge.

HAL6128

Yes, I was asking about Changing the Lower-Rom (OS) as arnoldemu said.

I'm interessted in doing (just) optical changes during/after booting the CPC (e.g. starting with mode 2, starting Logo or create a windows  hmm... cpc boot screen :), or a message of how much RAM + extension is available and so on...). Cosmetically changes - just for fun.
What is necessary to do this on real old-generation CPC? Could I achieve this only with a physically ROM-Change or via Extension?

I've seen a former project here at wiki: http://www.cpcwiki.eu/index.php/FO-DOS.
...
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

arnoldemu

You could do most of this through an extension rom (e.g. upper rom).
If you make it one of the higher rom numbers, then it will be initialised first.

EDIT: Os comes first, then scans the roms from higher to lower.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

Well, if as Arnoldemu stated above, that you just need to monitor two address lines and ROMEN and then set ROMDIS, then it's pretty easy to do with an extension like the one you've linked to (although I wonder how they managed it without any logic IC and just two diodes?). It's more or less just a cut down version of a ROMBoard. Doing it internally means de-soldering the ROM and replacing it with a Socket, which is easy enough if your soldering skills are up to speed. But you'd have to open the CPC evertime you wanted to swap back, or install a double-sized EPROM with both images and a switch.

Bryce.

Edit: Regarding Arnoldemus last comment: Also remember, that if it's a 6128 it scans for ROMs 15 to 0, but if it's a 464 it only scans ROMs 7 to 0.

Ynot.zer0

#11
Quote from: arnoldemu on 11:04, 27 May 11
I remember reading in AA about boards that did just this so you could put a 6128 rom inside a 464.
It was "big" business back in the day, along with external side switches and drive switches.
I purchased a 464 that has a 6128 Rom inside, when it boots it says "v3" on the screen. I did remove the case once before and noticed it had one of those adaptors soldered to the motherboard with the ROM placed into it - looked like it could be removed and the original 464 Rom put back.

Bryce

If someone has already socketed the ROM, then you can easily change it. I've socketed ROM7 in my 6128 to allow me to install ParaDOS.

Bryce.

arnoldemu

The board on the wiki replaces OS and BASIC in one go, so i can see that if romen is active, this board could send romdis to disable the internal rom. Perhaps linking romen to romdis.

I suppose all it needs to do is disable itself if it sees ROMDIS into it.. so to achieve the required setup it probably needs to be the closest hardware to the cpc to achieve that.

So in this case, no monitoring of address lines would be needed, and that simplified logic will do it.

EDIT: Bryce can now correct me because I don't know enough about electronics.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

:D No, you're right. I forget that no ROM inside the CPC needs to be used any more in this case, so you can actually always set ROMDIS anytime ROMEN is enabled. On a normal ROMBoard you need to check which ROM is being addressed and only when it's an expansion ROM do you set ROMDIS, this involves some logic of course, but if you are replacing every internal ROM, then it's a simple matter of connecting the signals.

Bryce.

Johnny Olsen

Phil Craven had built a romchanger - see Amstrad Computer User Mach 1989, page 38

Powered by SMFPacks Menu Editor Mod