Hello Folks...
With the help of our friend Bryce, I have finally built a MegaFlash and seriously enjoying it....
First ROM I installed was TFM's RMA+Booster in slot 15...
Again the software works pretty good and as a complete package it's all very professional, Nice one guys..
My query however is that when rebooting the CPC, the ROM Manager announces itself onscreen twice in succession with exactly the same header....Is this normal..?
Trying to find documentation for various toolkit and toolbox roms as indeed many others, is proving elusive.
Can anyone help please...
TC :)
Quote from: TheCorfiot on 18:40, 05 April 13
Hello Folks...
With the help of our friend Bryce, I have finally built a MegaFlash and seriously enjoying it....
First ROM I installed was TFM's RMA+Booster in slot 15...
Again the software works pretty good and as a complete package it's all very professional, Nice one guys..
Thanks' a lot for your kind words. That's a great source of motivation to polish ROManager even a bit more.
Quote from: TheCorfiot on 18:40, 05 April 13
My query however is that when rebooting the CPC, the ROM Manager announces itself onscreen twice in succession with exactly the same header....Is this normal..?
Never mind that's normal. It's a characteristica of the ROM Booster. The first time it initializes the ROMs 16-31, the second time it "just" initializes itself. So no byte is wasted :)
Quote from: TheCorfiot on 18:40, 05 April 13
Trying to find documentation for various toolkit and toolbox roms as indeed many others, is proving elusive.
Can anyone help please...
TC :)
Let me know which kind of documentation you need, I will try to get it.
Hiya mate
Thanks for the kind offer, the programmers toolkit and toolbox are good starting roms for me, oh and the enhanced basic..
Regarding the RMA ROM, i'm going to be cheeky and ask if it can be set to only display once as it fills up the screen with duplicate info, ie scroll and tbh users may take first impressions that it is a bug..this is purely professional critiscism, I really like the software and user interface very much and it runs without error...
Thx ;)
Well, I'm not sure what you mean... Do you mean the help window, in which all the help messages get scrolled throug when you go to "ROM management" for example?
Quote from: TheCorfiot on 23:51, 05 April 13
Regarding the RMA ROM, i'm going to be cheeky and ask if it can be set to only display once as it fills up the screen with duplicate info, ie scroll and tbh users may take first impressions that it is a bug..this is purely professional critiscism, I really like the software and user interface very much and it runs without error...
If you mean the Booster section of the ROM, then it displays twice because it initalises twice. It bothered me too so I disassembled it but couldn't see another way of doing it unfortunately.
A much better solution is to patch the Lower ROM in your CPC so that this initalises all ROMs from 31-0 (Toto and Syx did this with their Firmware 3.1 revision (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/firmware-3-1-megaflash/)). Then you don't need the Booster ROM.
However, you need to either make the lower ROM attachment for your MegaFlash (http://cpcwiki.eu/index.php/LowerROM) or if you have a Plus you can patch it in the cartridge by making a DIY cartridge (http://cpcwiki.eu/index.php/DIY_Cartridge).
Thanks for that, brilliant...
Looks like I will be removing the original rom from my motherboard then :)
Quote from: TheCorfiot on 11:03, 07 April 13
Thanks for that, brilliant...
Looks like I will be removing the original rom from my motherboard then :)
Sounds like the best option if you can do it :)
As I said before, you can use the Toto & SyX replacement, or you can alter things yourself. Arnoldemu has a great disassembly of the Lower ROM (http://www.cpctech.org.uk/docs/os.asm) on his website and from here you can see that KL ROM WALK and KL INIT BACK have the 16 ROM (&0f) limit which you can patch to 32. There might be a couple of other things to do, but that is the essence of it.
And whilst you're at it, you can patch the "Copyright text changing to the copyright symbol" bug that is shown on the start-up of all CPCs - this is located at 0688 and you'll see the text string is "Copyright" followed by &1f,&02,&04 (which is the cursor relocate) followed by &a4 (which is the copyright symbol). This one has always bothered me too :D
Quote from: redbox on 19:47, 07 April 13And whilst you're at it, you can patch the "Copyright text changing to the copyright symbol" bug that is shown on the start-up of all CPCs - this is located at 0688 and you'll see the text string is "Copyright" followed by &1f,&02,&04 (which is the cursor relocate) followed by &a4 (which is the copyright symbol). This one has always bothered me too :D
Haha, I noticed this back when I was running WinAPE at a really slow speed for testing/laughs. I couldn't believe something like that had been left in*. I'm glad someone else is aware of it and I didn't just imagine it. ;)
* especially because it's maybe even worse that – as obviously I didn't realise before, having only viewed the start-up rather than disassembling its code – it's all in the same string! I don't know which is worse, that or if they'd had two separate printing routines. Not that any method would have been excusable! : P
@Redbox
No problem there my friend, soldering iron will be coming out later this evening..lol
Hardware is my forte, sadly my software skills are pretty out of date so patching the CPC rom maybe beyond my scope, mind you i've been lucky in the patches I have carried out on Acorn MOS and Discfiling Roms....
Let you all know when it's done.
TC ;)
Quote from: TheCorfiot on 20:51, 07 April 13
patching the CPC rom maybe beyond my scope
If you want we can go through it here, would be an interesting exercise for others to see too.
And don't worry, physically changing the Lower OS ROM is well beyond my soldering skills...! :)
Cheers my friend, that would be great...
On another note, my cpc is now fitted with a socket in the lower rom position and a quickly flashed eeprom.
And FW 3.1 looks pretty neat....have reverted to the non booster version of Rom Manager so my OCD is now satisfied, and I also installed Roman to give it a go...
TC :)
Glad to hear that it worked w/o problems :-D
Quote from: TheCorfiot on 23:39, 07 April 13
On another note, my cpc is now fitted with a socket in the lower rom position and a quickly flashed eeprom.
And FW 3.1 looks pretty neat....have reverted to the non booster version of Rom Manager so my OCD is now satisfied, and I also installed Roman to give it a go...
Wow, that was quick, nice work!
Can you test something for me? If you're using Firmware 3.1 can you load a utility ROM (anything with RSXs, like Maxam or Protext etc) in one of the high positions (but not 16 or 23) in the MegaFlash and try to access the RSX commands of that ROM...?
Reason being I looked at the code for the Firmware 3.1 and can see it initialises the ROMs but am not 100% sure it accesses the commands properly on real hardware.
I can certainly do that my friend....
I have Maxam but no manual so I dont really know any of it's RSX commands...
If you could give me some of these commands and syntax I will try to test this tonight or tomorrow...
Be nice to clear this issue up ;)
TC
To list the commands of any installed ROM use the help command (it's one of Maxams commands and also in Utopia ROM).
|HELP, 3 will list the commands that the ROM in position 3 has to offer. |HELP (followed by no ROM number) lists all the ROMs installed. The command to start the main MAXAM program is |M
Bryce.
The Maxam manual can be downloaded from here
MAXAM - CPCWiki (http://www.cpcwiki.eu/index.php/MAXAM)
Other pages on cpcwiki cover maxam 1.5 and maxam 2
Quote from: Bryce on 10:36, 09 April 13
|HELP (followed by no ROM number) lists all the ROMs installed. The command to start the main MAXAM program is |M
Except the Maxam ¦HELP commands are coded to only do ROMs 0-15. But yes, ¦M should start Maxam regardless.
Quote from: TheCorfiot on 10:23, 09 April 13
Be nice to clear this issue up ;)
Well I got some time today and I tried it on my 6128 Plus and the higher ROMs do work when put into slots 15-31 and using Firmware 3.1. If you could check they also work on your (I'm assuming) normal 6128 then that would be helpful.
I'm guessing that the KL FIND COMMAND etc in the Firmware still work because the CPC only physically "sees" ROMs 0-15 anyway and there is some hardware which pages in slots 15-31 etc...? This would explain why KL FIND COMMAND in the OS still works even though it's limited to ROMs 0-15 - all we have to do is initialise the higher ROMs and the hardware takes care of the rest. Can someone with hardware knowledge confirm this?
Anyway, if you like Firmware 3.1 then that's great. If you want to patch the original 6128 OS to work with ROMs 0-31 in the MegaFlash then all you need to do is patch two locations using a Hex Editor. Location &0327 needs to be changed from &0f (15) to &1f (31) and location &0337 needs to be changed from &10 (16) to &20 (32).
(http://i.imgur.com/mjvyeIM.png)
(http://i.imgur.com/5uugdi5.png)
I've attached the patched ROM to this message too.
Well from a hardware perspective, any ROM from 0 to 255 is "paged in" one at a time. They don't come in bunches 0-15 or whatever. The firmware sends the ROM no. on the databus which then pages just that one ROM so that it's visible from &C000 onwards.
Bryce.
I also patched my 6128 Plus cartridge to initialise all MegaFlash ROMs in positions 0-31. :)
Amstrad Plus System Cartridge Patch v1.1 by redbox
English (QWERTY) Keyboard Layout
v1.0 The annoying f1/f2 menu on reset has been removed. To play Burnin' Rubber, type either |GAME, |JEUX, |SPIEL or |JUEGO .
v1.1 The initialise message has been altered to remove the 'Copright' bug and change the stated version from v4 to v4.1.
v1.1 The MegaFlash BIN file also initialises ROMs 0-31. Please note this version will not work in the WinAPE emulator.
(http://i.imgur.com/FPS5zKK.png) (http://i.imgur.com/FPS5zKK.png)
Quote from: Bryce on 15:48, 09 April 13
Well from a hardware perspective, any ROM from 0 to 255 is "paged in" one at a time. They don't come in bunches 0-15 or whatever. The firmware sends the ROM no. on the databus which then pages just that one ROM so that it's visible from &C000 onwards.
So why does ROM 15 over-ride ROM 7 then? Or am I getting confused...?
There must be something going on because KL FIND COMMAND only allows RSXs to be found in ROMs 0-15, yet if you initialise ROMs over 15 then the RSXs still work.
Quote from: redbox on 19:47, 07 April 13
And whilst you're at it, you can patch the "Copyright text changing to the copyright symbol" bug that is shown on the start-up of all CPCs - this is located at 0688 and you'll see the text string is "Copyright" followed by &1f,&02,&04 (which is the cursor relocate) followed by &a4 (which is the copyright symbol). This one has always bothered me too :D
Wow, you learn something new every day indeed. Why on earth would they leave it like that?
Probably they want to have the word (all letters) in the ROM, but only display the (c) character.
Quote from: redbox on 15:54, 09 April 13
So why does ROM 15 over-ride ROM 7 then? Or am I getting confused...?
There must be something going on because KL FIND COMMAND only allows RSXs to be found in ROMs 0-15, yet if you initialise ROMs over 15 then the RSXs still work.
I'm not sure how the firmware actually handles RSXs when you call one. As far as I know, some of the info is stored in RAM. but the rest is only on the ROM. You'd have to ask a firmware guru about this though. I haven't a clue.
Bryce.
Quote from: Bryce on 08:37, 10 April 13
I'm not sure how the firmware actually handles RSXs when you call one. As far as I know, some of the info is stored in RAM. but the rest is only on the ROM. You'd have to ask a firmware guru about this though. I haven't a clue.
Bryce.
true there is a a list stored in ram.
When a RSX is registered you pass it a datablock for the firmware to use. Part of this block is filled with a pointer to the previous registered RSXs.
As for why it only allows roms up to 16.. probably a limitation in the firmware that can be patched.
the command search works the same for rsx and rom commands, it just uses a different list as the search.
Ok, but what information is in the list in RAM? Does it just list what ROMs are installed and in which slot, or does it also store which commands each ROM holds?
I suspect that the 0 to 15 in KL FIND COMMAND could be a limit that a ROM can only have 16 RSXs, not that it only searches in ROMs 0 to 15. Or am I talking crap?
Bryce.
Many thanks to all you wonderful folks for the advice, tips and help....
Wish I could contribute more to the discussion regarding firmware, the cpc is a relatively new platform for me but I am learning a hell of a lot with your help and reading your posts....
Cheers
TC :)
Quote from: Bryce on 08:46, 10 April 13
I suspect that the 0 to 15 in KL FIND COMMAND could be a limit that a ROM can only have 16 RSXs, not that it only searches in ROMs 0 to 15. Or am I talking crap?
I checked and in KL FIND COMMAND it is using the CP &10 as a limit to ROM selection.
02d7 0eff ld c,$ff
02d9 0c inc c
02da cd7eba call $ba7e ;; HI: KL PROBE ROM
02dd f5 push af
02de e603 and $03
02e0 47 ld b,a
02e1 ccf102 call z,$02f1
02e4 dc1c06 call c,$061c ; MC START PROGRAM
02e7 f1 pop af
02e8 87 add a,a
02e9 30ee jr nc,$02d9 ; (-$12)
02eb 79 ld a,c
02ec fe10 cp $10 ; maximum rom selection scanned by firmware
02ee 38e9 jr c,$02d9 ; (-$17)
02f0 c9 ret
I think that what's actually going on is I was throwing a red-herring into the mix here - KL ROM WALK and KL INIT BACK don't use the KL FIND COMMAND routine which explains why it doesn't impact the start-up when you patch them.
So the question is: when is KL FIND COMMAND actually used? For example, if it is used in the Maxam/Utopia |HELP type commands it would explain why they only list RSXs in ROMS 0-15.
Interesting. Can you search the rest of the firmware to see if anything calls it?
Bryce.
Quote from: Bryce on 11:46, 10 April 13
Interesting. Can you search the rest of the firmware to see if anything calls it?
Nope, can't find anything.
I will patch it and see if the |HELP commands etc start working.
Cool. It would be nice if that solves it. Easier than having to edit Maxam and Utopia :)
Bryce.
Quote from: Bryce on 12:29, 10 April 13
Cool. It would be nice if that solves it. Easier than having to edit Maxam and Utopia :)
Well, I patched these two locations:
KL FIND COMMAND
02ec fe10 cp &10
RST 3 - LOW: FAR CALL
048c fe10 cp &10
and it didn't make any difference to the |HELP command in Maxam 1.5.
So I had a look at the Maxam ROM and it doesn't use KL FIND COMMAND. :(
ROMAN does have a Show RSX command that works anyway though in the higher ROM positions.
In case you want to directly edit the content of a ROM, then you can use the FutureOS version of the ROManager, it contains a simple HEX editor.
redbox - are there any disadvantages to using the patched ROM? I'm thinking of incompatibility with the 464, problems if no ROM box is conected, or problems with ROMs that just store data?
Just got the answer from Bryce - the only problem might be data ROMs, you just need to put 0xFF at the beginning.
Quote from: Munchausen on 11:56, 26 April 13
Just got the answer from Bryce - the only problem might be data ROMs, you just need to put 0xFF at the beginning.
Yep.
I've been using the patch on my 6128 Plus since I posted it, and no problems so far :)
I've just been trying the patch on a Classic 6128 using the LowerROM Board a MegaFlash. The CPC boots normally if no ROMs are installed above slot 15. As soon as I install anything (tried several ROMs: Utopia, BCPL) in a slot above 15 the CPC just cycles at boot. It gets as far as the Copyright message but resets when it's about to list the installed ROMs. Any idea what's up?
Bryce.
Quote from: Bryce on 11:35, 01 May 13
I've just been trying the patch on a Classic 6128 using the LowerROM Board a MegaFlash. The CPC boots normally if no ROMs are installed above slot 15. As soon as I install anything (tried several ROMs: Utopia, BCPL) in a slot above 15 the CPC just cycles at boot. It gets as far as the Copyright message but resets when it's about to list the installed ROMs. Any idea what's up?
Hmmm, this is exactly what happens in WinApe.
Have you tried the Firmware 3.1 from Syx/Toto? This has the same kind of patch so would be a good test.
Ok, did some more tests. One problem kind of solved. If AMSDOS isn't in position 7 then the cycling happens. I've now installed AMSDOS on the MegaFlash and enabled it. The CPC now boots, but Utopia (in slot 17) crashes the CPC when I try to start it with |U.
I'll try some other ROMs...
Edit: More weirdness: The same test as above on a CPC+ gives me "Press Play then any key" when I enter |U.
Bryce.
Quote from: Bryce on 11:49, 01 May 13
One problem kind of solved. If AMSDOS isn't in position 7 then the cycling happens.
I remember having problems with ParaDOS in slot 7 though, and I also had to completely wipe my MegaFlash and start again before I could get it all working. Also, my replacement OS is in the cartridge, not on a MegaFlash lower ROM extension.
Try Maxam 1.5, that works fine for me in a high slot.
And I would check to see if Firmware 3.1 makes a difference or not, as that has been tested on a 6128 (but again, directly in the socket and not in a lower ROM extension).
Ok, just tried BCPL in slot 17. It initialises fine (ie: shows up in the list at boot), but it also crashes when you start it. I've a feeling that some ROMs just don't like being that far up the list.
I'll try Maxam 1.5 now...
Nope, Maxam 1.5 in slot 17: Initialises on boot but crashes when you start it.
Bryce.
Same result on the CPC+.
Where have you got the patched firmware installed? On a LowerROM Board or did you install it internally / Cartridge?
Bryce.
Update: FW3.1 doesn't seem to even initialise the ROMs above 15. Somethings not right.
Quote from: Bryce on 12:03, 01 May 13
On a LowerROM Board or did you install it internally / Cartridge?
I use this one (http://www.cpcwiki.eu/imgs/3/38/Plus_en_patched_v1.1.zip) in the Cartridge.
Quote from: Bryce on 12:03, 01 May 13
Update: FW3.1 doesn't seem to even initialise the ROMs above 15. Somethings not right.
Seems like it's the Lower ROM board then...?
Ok, just tried that image in a Cartridge. Same result, Maxam 1.5 initialises, but crashes when you try to start it.
Bryce.
Quote from: Bryce on 12:23, 01 May 13
Ok, just tried that image in a Cartridge. Same result, Maxam 1.5 initialises, but crashes when you try to start it.
Strange.
I have my image in the cartridge. I have ROMAN in slot 15 and Maxam 1.5 in slot 25. Maxam starts with |M.
Did you wipe your MegaFlash? And have you got it just plugged in on it's own, i.e. no lower ROM board extension, even if it's not being used...?
Ok, here's the latest:
Setup:
CPC6128+, MegaFlash, No LowerROM Board attached, The image you linked to in Cartridge.
Protext in slot 17.
Same result: Initialises but doesn't start. I've even tried a different MegaFlash to rule out it being dodgy.
Are you sure you haven't modded anything else on your plus?
Bryce.
Ok, I've just tested Maxam 1.5 in slot 25, still no joy.
Same setup.
I use your DIY Cartridge as my cartridge, with a flash ROM in it. And I used ROMAN as the ROM manager to erase/load the MegaFlash.
I do vaguely remember having a problem at the beginning with the reset - but I think it stopped when I erased ParaDOS and I did this by erasing the MegaFlash with ROMAN (y for System Tools, then option 4 to erase all ROMs).
Will blow the image again I linked you to just to be sure.
Send me a complete dump of your MegaFlash if possible, then I'll try it on a fresh Flash IC.
Bryce.
Quote from: Bryce on 13:08, 01 May 13
Send me a complete dump of your MegaFlash if possible, then I'll try it on a fresh Flash IC.
Don't think I can do this as I have the USB HxC?
Okay, I'm getting random crashes now using that image I linked you to - seems about 1 in 5 times Maxam doesn't work as it either freezes or I get weird artefacts on the screen. I have also once had the "Press Play Then Any Key" message.
It is also much more likely to happen if I type |M straight after a reboot, happens less if I wait a few seconds.
I think I had a different version in Plus originally (the one that also has KL FIND COMMAND and the RST patched). Will retest again with that one.
Yep, as I thought, I had a different patched version in my Plus from testing the KL ROM WALK theory.
Have just used this again in the cartridge and no more random crashes, Maxam works every time.
So try the attached image in your cartridge and see if it makes a difference.
This version has the following patched:
KL FIND COMMAND
&02ed &20
KL ROM WALK
&0327 1f
KL INIT BACK
&0337 20
RST 3 - LOW: FAR CALL
&048d &20
(where as the version you had downloaded and Firmware 3.1 only have KL ROM WALK and KL INIT BACK patched).
This is interesting. If it works, how about a fully patched version for the 6128?
Quote from: Munchausen on 13:40, 01 May 13
This is interesting. If it works, how about a fully patched version for the 6128?
Try this:
I have to go out for a while, but I'll try both of them later and let you know.
Bryce.
Nice find redbox!!! :)
If somebody can confirm that works (sorry, but i don't have LowerRom board), i'll publish the fixed versions.
Quote from: Bryce on 11:56, 01 May 13
Ok, just tried BCPL in slot 17. It initialises fine (ie: shows up in the list at boot), but it also crashes when you start it. I've a feeling that some ROMs just don't like being that far up the list.
I'll try Maxam 1.5 now...
Nope, Maxam 1.5 in slot 17: Initialises on boot but crashes when you start it.
Bryce.
This will not happen when using ROManager in ROM position 15 (the version with the Booster of course). That all works just fine. :)
Confirmed. At least for the Classic 6128 version. It now works fine and Maxam starts in upper slots too.
Edit: Confirmed working for the Plus version on Cartridge too. Enough testing for today, time for a beer :)
Bryce.
Quote from: Bryce on 19:36, 01 May 13
Confirmed. At least for the Classic 6128 version. It now works fine and Maxam starts in upper slots too.
Edit: Confirmed working for the Plus version on Cartridge too. Enough testing for today, time for a beer :)
Yay! Am glad it worked.
I have uploaded the new image to the Wiki for the Plus (http://www.cpcwiki.eu/index.php/Plus_System_Cartridge#Downloads) and 6128 (http://www.cpcwiki.eu/index.php/ROM_Table#Lower_ROMs).
@SyX - yes, you will need to patch KL FIND COMMAND and RST 3 in your Firmware 3.1 too. I
knew it couldn't have been that simple to start with ;) ;) ;) ;) ;)
Quote from: redbox on 13:37, 01 May 13
KL FIND COMMAND
&02ed &20
KL ROM WALK
&0327 1f
KL INIT BACK
&0337 20
RST 3 - LOW: FAR CALL
&048d &20
I wonder if this would be also work with ROMs up to &7F (included), think I give it a try soon. Meanwhile thanks for the update!
Quote from: TFM/FS on 22:14, 01 May 13
I wonder if this would be also work with ROMs up to &7F (included), think I give it a try soon. Meanwhile thanks for the update!
Yeah, I wondered this...
It would also be nice to use ROM positions &84 to &87 on the Plus (and maybe higher) as then you could include some ROMs in the cartridge.
However, you'd need to avoid re-initialising &80, &81 and &83 as they contain the OS, BASIC and AMSDOS - so this would be beyond a simple patch. But these routines could possibly be rerouted to jump somewhere else in the OS ROM to make use of available space for a better routine (like SyX did by removing the TAPE routines in the 6128 OS).
Well, it's not that bad. The BASIC is not a problem at all, it's a foreground ROM anyway (and it's located at any empty ROM number anyway), A patch in ROM 7 can be introduced to check if it was initialized before. Now only the firmware is left...it starts with &01 so the OS would recognize it as normal background ROM, a crash would be the result. So... patch RST 0 and that's it ;-)
Ok, it's some work, but it can be done amigo ;)
I have updated the os.rom dissassembly on cpctech with comments for kl find command.
Quote from: TFM/FS on 02:27, 02 May 13
The BASIC is not a problem at all, it's a foreground ROM anyway (and it's located at any empty ROM number anyway)
A patch in ROM 7 can be introduced to check if it was initialized before.
So... patch RST 0 and that's it ;-)
That's a really interesting idea. Will look into it.
Quote from: arnoldemu on 08:57, 02 May 13
I have updated the os.rom dissassembly on cpctech with comments for kl find command.
Thanks - this is a great resource and none of this would have been possible without it!
And i have applied the fix to the FW3.1, now is version 3.12, jejeje. TotO will upload the new versions to the thread (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/firmware-3-1-megaflash/).
Thanks again redbox!!! (And sorry, i only have seen now, your comment with the fix in the FW3.1 thread, but i never got a notification :/ )
Done. ;)