News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Bryce

Disabling ROM 7

Started by Bryce, 11:02, 28 January 13

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Bryce

Hi all (LowerROM Board owners mainly),
      As I mentioned before, on a standard 6128, ROM 7 isn't connected to the /ROMDIS signal, so connecting the LowerROM Board will just disable ROM 0. On the cost down (pre-ASIC) 6128 and CPC+ models, the wiring is different and the LowerROM Board disables all internal ROMs including number 7. This of course results in the disk commands no longer being available (unless you have an external ROM 7 behind the LowerROM Board).
      Now TotO has informed me that he has a version 2 6128, ie: not a pre-ASIC board, but the 6128 board that used the SED9420 data separator, and it also disables ROM 7 when the LowerROM Board is connected. This means two things:

1 - Only version 1 6128s can't disable ROM 7 externally using /ROMDIS.

2 - If your 6128 is a version 2, then you can replace AMSDOS using the MegaFlash without making any internal changes.

Has anyone else got a LowerROM Board and a Version 2 6128 to confirm that this is the case on all version 2 boards?

TotOs board is a type MC0020C.

Bryce.

gerald

I did test 2 6128 with my flash board, which can replace FW/BASIC rom as well as ROM7.

I've permanently forced ROMDIS high using a wire to 5V, and started the CPC with and without enabling external ROM7

Without the external ROM7, CPC boots OK on external FW/BASIC, but AMSDOS (internal ROM7) is still there.
With the external ROM7, CPC boots OK on FW, initialise other high ROM until it get on AMSDOS and crash.

CPC board version are MC00020B and MC0020G

Is Toto's ROM 7 really disabled by the ROMDIS signal ? ie does he get the "press play than any key" message when using any load/run/cat commands using only the lower board rom ?



Bryce

Yes, that's what he says. When the LowerROM board is connected, it says unknown command to all the disk related RSX commands according to him. As soon as he disables the LowerROM Board the RSX commands are back. His other 6128 doesn't do this. ROM 7 is still available as expected when the LowerROM Board is connected.

Bryce.

TotO

#3
Quote from: gerald on 16:01, 28 January 13Is Toto's ROM 7 really disabled by the ROMDIS signal ? ie does he get the "press play than any key" message when using any load/run/cat commands using only the lower board rom ?

I have plugged the LowerROM board alone.
All RSX commands related to the AMSDOS return "Unknown Command", and CAT return "Ready" w/o doing things... When I disabble the board (or remove it), all work fine again.

It's why I think that ROM7 is disabled.

But, that not explain why the "G" revision of the board (released after B I though) not do the same.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

gerald

That's strange.

I checked on the MC00020G that the ROM7 OEn and CS are compliant with the schematics. So this should not work  ;D

Quote from: TotO on 17:03, 28 January 13
All RSX commands related to the AMSDOS return "Unknown Command", and CAT return "Ready" w/o doing things...
Without ROM7, the CAT/LOAD/RUN command would use the tape. So you should have a "Press play than any key" message.

I am more thinking your CPC has a flaw.
I would check the following :
  - If you have a 2nd LowerRom board, confirm the behaviour is the same, on both CPC
  - Try re-settling the Z80 and CRTC on they socket. You may have some weak contact on A15/ROMEn that are both used by the internal ROM and the LowerROM.
  - Try a spare Z80 (or swap with the other CPC). My 464 decided one day that it would not accept anymore my SSA1/DDI1/DART scanner, but was OK with the DDI only. Changing the Z80 fixed the problem.


By the way, it seems we do not have a schematic of the disk part for these version 2 6128 (with SED9420).
In the 6128 service manual, schematic is associated with PCB MC0009A.
The one in the amendment Service manual is associated with a MC00057A, but there is no disk interface.
By checking the OEn/CSn on the board, I've found that the gate allocation is different on MC00020G compared to MC00009A schematic.

TFM

Quote from: Bryce on 11:02, 28 January 13
::: If your 6128 is a version 2, then you can replace AMSDOS using the MegaFlash without making any internal changes.

This is what I'm telling you since years, and you did never ever believe me. See, TFM is always right ;) ... but not without TotO to support him :laugh:
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TotO

#6
Quote from: gerald on 17:25, 28 January 13
Without ROM7, the CAT/LOAD/RUN command would use the tape. So you should have a "Press play than any key" message.
No, because I use the FW3.1 into the LowerROM.
Which means that the Tape support was removed... All commands return Ready, except RUN" or LOAD" (with the double-quote) that should return "File already open". And it's the case.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

That's ok, but it still doesn't explain why your board is disabling ROM 7. I have a feeling that the last owner has modded something that's not obvious to see.

Bryce.

gerald

Quote from: TotO on 21:28, 28 January 13
No, because I use the FW3.1 into the LowerROM.
That mean the tape support was removed... All Tape commands return Ready, except RUN" or LOAD" (with the double quote) that return "File already open". And it's the case.
Ok for the run/load command behaviour, but the unknown command may be just the result of the ROM not being registered, and not by being physically disabled by ROMDIS.
If you CPC has a problem, the rom7 may not be seen as a valid sideway rom (ie ROM byte 0 equal to 0,1 or 2), so not RSX are registered.







TotO

I have opened the case and seen nothing (cut or gate) everywhere on the top and where you usually does the ROM7 hack.


And on the back too...
Here the pictures, because not stored on CPCWiki for this model:
http://totoonthemoon.free.fr/images/cpc/PART1.JPG
http://totoonthemoon.free.fr/images/cpc/PART2.JPG
http://totoonthemoon.free.fr/images/cpc/PART3.JPG


But, sure, I will check again to know why.


"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TotO

Quote from: gerald on 21:55, 28 January 13
Ok for the run/load command behaviour, but the unknown command may be just the result of the ROM not being registered, and not by being physically disabled by ROMDIS.
If you CPC has a problem, the rom7 may not be seen as a valid sideway rom (ie ROM byte 0 equal to 0,1 or 2), so not RSX are registered.
But, if my ROM got a problem... It must be always? Not only using the LowerBoard, no?
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

No, the electronics on the LowerROM board could be effecting a weak bit on the Data or Address bus and unintentionally blocking the ROM 7 from being initialised. Try connecting the MegaFlash to it and see what happens when the external ROM 0 or 7 is enabled / disabled.

Bryce.

gerald

Quote from: TotO on 22:01, 28 January 13
But, if my ROM got a problem... It must be always? Not only using the LowerBoard, no?
Your ROM behaviour is the visible symptom.

Bryce : how you make sure the LowerROM EEPROM is not driving the data bus when ROM7 is selected ?
I understand that the ROMDIS from expansion connected to the LowerRom board (MegaFlash/Rom) is taken into account so external ROM can disable the LowerROM, but I do not see a way to prevent the internal ROM7 to drive the data bus without doing HW modification on the main board.

Bryce

There's nothing to stop it from driving the bus at the same time as the ROM 7. It's a timing glitch in the CPC that allows it to work, but obviously not on all CPCs. Unfortunately I don't have the schematics for the PCB version, so I can't check if something is different. I've checked the two 6128s I own (both version 1) and both retain ROM 7 functionality with the LowerROM Board connected.

Bryce.

gerald

Quote from: Bryce on 23:11, 28 January 13
There's nothing to stop it from driving the bus at the same time as the ROM 7. It's a timing glitch in the CPC that allows it to work,
That's called a bus contention. A glitch is a transient state. Here you have two devices that drive the data bus at the same time for about 1us.

Quote from: Bryce on 23:11, 28 January 13
but obviously not on all CPCs..
The contention will apear on all CPC (exept the + and pre-asic one), but the variation in internal/external device drive capability will make the ROM visible to the Z80 or not.

Quote from: Bryce on 23:11, 28 January 13I've checked the two 6128s I own (both version 1) and both retain ROM 7 functionality with the LowerROM Board connected.
That mean that your internal ROM has stronger drive than the external one so the contention is won by the internal ROM and the amsdos is registered.

On Toto's CPC, the internal ROM is weaker, so it is not registered. TFM CPC looks like it also had weak internal ROM.

The only advice I would have is :
  - either disable the internal ROM7 by removing it physically or patching the board to allow proper control of OEn/CEn.
  - or use an external Flash/Rom board the the AMSDOS rom in slot 7 (slot 7 being active) so the external Flash/Rom board will drive the ROMDIS when ROM7 is accessed. This will disable the LowerROM EEPROM while both ROM 7 (internal AND external) will drive the SAME data. Using a alternate ROM like PARADOS will bring contention back.



Bryce

#15
Yes, I'm well aware of what's happening. I didn't want to use the word bus contention because many people here won't know what that means. Glitch (like bug) can mean almost anything, including a transient state.
The version 2 6128s have a slightly different schematic (SED9420 separator), which I thought might be responsible for the varying results.
TFMs CPC is a Pre-ASIC version I think.

As far as the design of the LowerROM Board is concerned. It's not my design, I just did the layout and produced a few of them. The original design was from ACU as far as I can remember. The only other change I made was to allow two ROMs to be stored on the EPROM (the original design only had one image) and the reset button. If I were to design my own LowerROM board I would have done it completely different with proper decoding, but it also would have been a bit more expensive. At the time I built them, people were looking for a very low-cost Lower ROM replacement and as usual, low-cost usually means you have to cut corners somewhere. It's still a very good solution to play 464 only games on a 6128 and to get BASIC 1.1 on a 464.

In my original posting about the LowerROM, I mentioned that it disabled ROM 7 (as I expected it to), but I later found that my 6128 wasn't disabling ROM 7 when I connected it.

Bryce.

gerald

I think we should use bus contention wording and describe what it means (a shortcut) so people are aware of what is really happening.

Once they are properly informed, that can take they own decision.
They also have to understand that the LowerROM board may or may not inhibit the AMSDOS ROM, but at the expense of an increased power consumption and a potential break of either EPROM or AMSDOS ROM.

We should not leave the feeling that there are CPC that works and CPC that doesn't.
There is no magic, the only way to safely disable the AMSDOS ROM is patch the motherboard.

Now I think that the LowerRom has a real use but we should think of a proper way to disable all internal ROMs via the ROMDIS signal.

Bryce

Well as you mention yourself: There is no way of disabling ROM 7 on the original 6128s without modifying something inside the CPC and that's something most people aren't likely to do themselves. As I'm not up to speed on the CPC firmware, maybe this could be done in code? No idea, maybe some of the coders here could make suggestions.

There's not really a realistic chance of the LowerROM board damaging the internal ROMs, or what do you mean by: "a potential break of either EPROM or AMSDOS ROM."?

As far as jargon is concerned, I often get told that I use words that no-one else would understand, so I tend to over-compensate sometimes and use generic words that aren't 100% accurate, but explain the situation. If this was purely an electronics forum I would probably use different terminology, but on a retro forum you can't really assume that everyone will understand (and I'm too lazy to explain all the details sometimes :D )

Bryce. 

gerald

Quote from: Bryce on 13:07, 29 January 13
There's not really a realistic chance of the LowerROM board damaging the internal ROMs
The shortcut can do it, but yes, the probability is quite low as the contention will happen at most 1/4 of the time (thanks to CRTC stealing cycles) and only when accessing the ROM itself and if bits are different.
But you surely want to avoid the "Bryce broke my ROM!!!" kind of message  ;D

Quote from: Bryce on 13:07, 29 January 13
As far as jargon is concerned, I often get told that I use words that no-one else would understand, so I tend to over-compensate sometimes and use generic words that aren't 100% accurate, but explain the situation. If this was purely an electronics forum I would probably use different terminology, but on a retro forum you can't really assume that everyone will understand (and I'm too lazy to explain all the details sometimes :D )
I think we should use the proper wording whenever we can, and fall back to generic word when there is no other way. Too much generic wording may cause confusion as well. So I will not explain the electromigration risk of the LowerRom  :laugh:

Quote from: Bryce on 13:07, 29 January 13
maybe this could be done in code
No way, this is harware  :( .

Bryce

#19
Ok, update, just to confuse the hell out of everyone (including myself).

As I am at home today and have the luxury of time to mess about with CPCs :) I decided to test it all again. Here's what I've just discovered:

The final version LowerROM Board ALWAYS disables ROM 7 on all of my 6128s - ie: it doesn't initialise ROM 7. So no bus contention is possible unless (as Gerald mentioned) you connected an external ROM 7 that had a different OS other than AMSDOS. In this case the internal EPROM would be enabled and answer in parallel to the external ROM 7. Not a problem if they have the same contents, but would cause contention issues if the OS was different.

The confusing bit comes from the fact that I have been using my prototype LowerROM at home, not a final version. And for some reason (although the schematic is identical) this board is letting ROM 7 initialise. This may be due to dodgy soldering or the fact that it's built on a vero board, but eitherway it's not reacting like the final version.

Now this brings me to the next question - aimed at TotO: Your MC0020C board disables (doesn't initialise) ROM 7, this is how it should be. But you said your other CPC did initialise ROM 7 and it even allowed you to use RSX commands, so what caused that to happen on a final version LowerROM Board and what version Mainboard is it? Can you check this again and confirm it is really doing this?

Bryce.

Edit: Regarding the "could this be done in code", I was more thinking of changing the firmware to ignore ROM 7 completely and re-direct ROM 7 references to actually look at ROM 31 for example? This would look like the ROM 7 still existed and the internal one would never get initialised? Would that be possible? (as I mentioned, I haven't a clue about Firmware).

TotO

#20

Here my personal message:

Quote
Hello Bryce,

I have plugged the LowerROM board on my second 6128 (AZERTY) and the ROM7 look to be disabled.
All RSX commands related to the AMSDOS return "Unknown Command", and CAT return "Ready" w/o doing things...
I got a MC0020C mainboard with a MC6845P CRTC (Type 2, as displayed on the screen)
If I disable the LowerBoard, all work fine.
Strange ???
I don't said that all work on my first CPC, but that not work on my second.
I don't notice that on the first, but I may check again this sunday.

QuoteRegarding the "could this be done in code", I was more thinking of changing the firmware to ignore ROM 7 completely and re-direct ROM 7 references to actually look at ROM 31 for example? This would look like the ROM 7 still existed and the internal one would never get initialised? Would that be possible? (as I mentioned, I haven't a clue about Firmware).
Need to see what can be done.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

Ah, ok. I assumed by the "It doesn't work on my second CPC" meant that it did work on your first CPC. In that case all is ok and working as it should be. I think you'll find that your other CPC also losses it's RSX commands when the LowerROM is connected.

Update on my Prototype LowerROM - I replaced the badly oxidised connector on the prototype board and ROM 7 is no longer initialising. Before I did that, I also tested whether it was happening 100% of the time. It was actually hit and miss. Sometimes ROM 7 was there, sometimes it wasn't. Either way, a clean connection resolved the issue.

Bryce.

TotO

#22
Sorry to be confuse.
I said "my second" (used the week), because I have not noticed that on the first (used the week-end)
In all cases, that show a problem that nobody has reported since... It's why I though that I get ROM7 disabled.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TFM

Quote from: Bryce on 15:37, 29 January 13
Update on my Prototype LowerROM - I replaced the badly oxidised connector on the prototype board and ROM 7 is no longer initialising. Before I did that, I also tested whether it was happening 100% of the time. It was actually hit and miss. Sometimes ROM 7 was there, sometimes it wasn't. Either way, a clean connection resolved the issue.

Could that be used to introduce a switch? So ROM7 could be switched on and off.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TFM

Quote from: Bryce on 13:07, 29 January 13
... As I'm not up to speed on the CPC firmware, maybe this could be done in code? No idea, maybe some of the coders here could make suggestions.

That's not an well option, since a lot of programs (games, apps. ect..) initialize ROM 7 as DOS ROM. If the DOS would be underneath another ROM number, the program would crash.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Powered by SMFPacks Menu Editor Mod