Hi there,
Here you can download it:
http://www.colorado-boys-muenchen.de/users/futureos/files/MF_ROManager.zip (http://www.colorado-boys-muenchen.de/users/futureos/files/MF_ROManager.zip)
Enjoy!
Oooh great! At last :) :) :)
Great News!!! :D
I will test when i return to home ;)
.
.
.
Tested every function and all work GREAT :D
Fanstatic Work TFM!!! :D
Hey SyX, Thank's a lot for testing :-DDD
Guess next step will be some smaller updates and the 464 version (which means a major change).
I used it a bit (erase some ROMs, install new ones), seems to be working perfectly :)
Works fine! I still have free slots, so the shrink was not that important to me. But still nice!
I did not try it yet, but congrats : using 2 ROMs like previously was clearly a no-go to me!
Good job!
PS. What did you do to reduce ROM size ?
@Nurgle & NoRecess: Thank's guys!!!
Quote from: norecess on 02:56, 27 September 11
I did not try it yet, but congrats : using 2 ROMs like previously was clearly a no-go to me!
Good job!
PS. What did you do to reduce ROM size ?
It's called CPCT. Used it because I met Madram 2001 at the CPC Klassentreffen and we had a great chat, so I know he codes faithfully / precisely. Just for curiosity I tried the cheese cruncher too. But CPCT is far better in compression rate.
And now my 9 cents ...
You can download the ROManage for the MegaFlash now as a single 16 KB ROM which includes the famous Inicron ROM Booster.
The ROM (installed at position 15) allows you the usage of all 32 ROMs of the MegaFlash. All 32 ROMs get initialized throug the CPC firmware. Also the ROM contains the ROManager for the management of the MegaFlash. You can start it by typing !RMA.
Download at www.futureos.de (http://www.futureos.de) (download section)
END OF LINE
Very nice solution :) I'm impressed.
Bryce.
Quote from: TFM/FS on 21:18, 28 September 11
You can download the ROManage for the MegaFlash now as a single 16 KB ROM which includes the famous Inicron ROM Booster.
Very nice TFM, well done.
Such a shame you didn't feel you could share your disassembly of the Booster ROM (http://www.cpcwiki.eu/forum/index.php?topic=2723.msg31252#msg31252) because then we could have all learnt from it.
It's nice to get BOOSTER (where its primary functionality is to deal with ROMs) integrated in ROMManager (where it's primary functionality is also to deal with ROMs).
Cool !
Thank you guys! My pleasure :-DDD
Quote from: redbox on 21:34, 28 September 11
Such a shame you didn't feel you could share your disassembly of the Booster ROM (http://www.cpcwiki.eu/forum/index.php?topic=2723.msg31252#msg31252) because then we could have all learnt from it.
Ha-ha, the typical misunderstanding between you and me :laugh: I'm very lucky to share - as soon as I find it :)
Quote from: norecess on 21:35, 28 September 11
It's nice to get BOOSTER (where its primary functionality is to deal with ROMs) integrated in ROMManager (where it's primary functionality is also to deal with ROMs).
Cool !
Yes, and &500 bytes of the ROM are still free ;)
That would be great.
I assumed you would have needed the disassembly to incorporate it into your ROM? Or how did you do it?
Quote from: redbox on 21:59, 28 September 11
That would be great.
I assumed you would have needed the disassembly to incorporate it into your ROM? Or how did you do it?
When I find that files - I promise - you get them first.
I used Softbrenner to create that ROM.
Ahhh, I see now... you added your ROM manager to the existing Booster ROM. Good idea that! :)
Apologies for the misunderstanding on my part.
Quoteyou added your ROM manager to the existing Booster ROM
So,.. to sum up, there are 6 versions of the ROMManager and now, you also introduced a "hack" on top of BOOSTER ROM ? Damn, I don't envy you at all :)
More seriously, I hope you have some kind of batch file to manage your release (cf. "DoBuild.bat") otherwise all new versions are going to be a nightmare for you to manage.
Quote from: norecess on 00:04, 29 September 11
So,.. to sum up, there are 6 versions of the ROMManager and now, you also introduced a "hack" on top of BOOSTER ROM ? Damn, I don't envy you at all :)
Well, I'm a lazy person, so I keep things easy (for me at least). Without SyX help and Madrams CPCT there would be only dust ;-) And not to forget your kind words, that's motivating much :-)
Quote from: norecess on 00:04, 29 September 11
More seriously, I hope you have some kind of batch file to manage your release (cf. "DoBuild.bat") otherwise all new versions are going to be a nightmare for you to manage.
Well, something more primitive, way more primitive. But I don't even need a PC for it. I can do it all with a CPC (ok, it's emulated at the moment...). However it works fine without a PC (Don't ask me for logic here, that's a philosophical point ;-) )
BTW - I just tested last released version, it works very well ! Sincerely, good job! You progressed. :)
The only thing that I dislike is the fact that the ROM init message is shown 2 times at startup - is that normal and intended ? If yes (because of BOOSTER) then perhaps you could detect you are called a second time and then, skip the init message?
Otherwise, once again - congratulations, the ROM Manager starts to be really useful now ;)
The double init is a 'feature' of the Booster ROM. I'm not sure yet if it's because of an error in the code or if it finds itself again during the walk from 31 to 1 and does it then.
Do you have an idea why UTOPIA's |HELP does not work anymore when using BOOSTER ?
Quote from: norecess on 03:44, 29 September 11
The only thing that I dislike is the fact that the ROM init message is shown 2 times at startup - is that normal and intended ? If yes (because of BOOSTER) then perhaps you could detect you are called a second time and then, skip the init message?
Well, I know, that's a "feature" of the Booster part of the ROM, but it occupies RAM only once. So it's just nasty, but doesn't harm or shrink memory. It's due to technical reasons (Initialize ROMs 31, 30, 29... 3, 1, 1, 0). If I ever have time I'll care about this, but probably Redpoint will come over with some advanced code before.
Quote from: redbox on 07:06, 29 September 11
The double init is a 'feature' of the Booster ROM. I'm not sure yet if it's because of an error in the code or if it finds itself again during the walk from 31 to 1 and does it then.
You're right with the latter one.
Quote from: TFM/FS on 18:43, 29 September 11
You're right with the latter one.
Makes sense - I'm pretty sure I've seen the routine that stops the Booster getting stuck in an infinite loop (i.e. starting all over again when it finds itself during the walk).
So this routine should be quite easy to modify so that it skips ROM position 15 (because Booster should be in this position) during the walk. Maybe it wasn't included in this version because the author intended Booster to work in positions other than 15 as well?
I'm getting there unraveling the rest of the ROM code, but not been finding it easy. I've isolated the main routines, but it has some funny stuff going on which copies into RAM conditionally that I haven't got the bottom of yet...
Actually, I tend to think I don't like this "BOOSTER" thing.
It's like a black box that everybody is afraid of ; I mean, nobody here seems to exactly understand what it does for real.
I guess it's time to really understand this piece of code or write our own implementation.
Quote from: redbox on 19:26, 29 September 11
So this routine should be quite easy to modify so that it skips ROM position 15 (because Booster should be in this position) during the walk. Maybe it wasn't included in this version because the author intended Booster to work in positions other than 15 as well?
Well, it must scan for a position which contains the Booster ROM (better than a static number). But this would exclude modifications of the ROM (mostlikely).
So, therefore Ingo (ZAQ) decided to have to double initialisation, but the init-routine of the Booster checks if it has been already initialized, and then it just does not initialize a second time. I think this is a quite good idea. Nevertheless 2 line on the screen are wasted ;-)
Quote from: norecess on 19:33, 29 September 11
Actually, I tend to think I don't like this "BOOSTER" thing.
It's like a black box that everybody is afraid of ; I mean, nobody here seems to exactly understand what it does for real.
I guess it's time to really understand this piece of code or write our own implementation.
Most demos are black boxes and people tend to like some of them :-)
The Booster works reliable since the 90ies (at least in may case) and I never had problems with it. Used it with ROM-RAM-Box, SF2 also. There were never problems. That's all I can say.
However, better solutions would be appreciated :)
QuoteUsed it with ROM-RAM-Box, SF2 also. There were never problems. That's all I can say.
It actually does conflict with Utopia (cf. HELPR command), that I use regularly to see how large is a ROM in RAM (cf. memory usage of the ROM in RAM). Or did I miss anything special in my setup ?
Quote from: norecess on 20:27, 29 September 11
It actually does conflict with Utopia (cf. HELPR command), that I use regularly to see how large is a ROM in RAM (cf. memory usage of the ROM in RAM). Or did I miss anything special in my setup ?
Well, I must say I never have Utopia "on board", because it's not soooo compatible to others. And it's functions are in some OS, that I use more often ;-) So I can't tell. But a good point to mention.
What happens if you press space on RESET, do you still have problems with utopia?
As with Utopia, does it mess with Maxam's |Help command?
Yeah sorry I meant |HELP command.
No problem with RESET stuff.
My "tick" of work around is to install the ROM of which the RSX commad shall be used in the lowest position.
Ok an example: Maxam and utopia both conatin the !HELP command.
Now, let's assume Maxam is located at ROM positioin 4 and Utopia at positon 8, then the !HELP command will be used from the Maxam ROM, because it's ROM number is lower.
But...
Now, let's assume Maxam is located at ROM positioin 4 and Utopia at positon 2, then the !HELP command will be used from the Utopia ROM, because it's ROM number is lower.
Ok? I hope this helps, but maybe I missed the point.
No it's something else. You should try by yourself. :)
Actually, Arnor's sourcecode is buggy when BOOSTER is present. You have this |HELP command from UTOPIA that allow you to list ROMS (but also gives precious info about memory usage). When BOOSTER is present, then it only reports... ROM 0. (BASIC)
I'm not sure if you can do anything for it.
What NoRecess said; Booster completely breaks the |Help command for some reason, it's not an issue of priority; it just won't work, even if there's only one ROM with this command.
I tried that on emlators, WinCPC has no problems. WinApe crashes. Strange effect.
I haven't tried on an emu, but it's what my CPC does :)
Quote from: Gryzor on 05:52, 03 October 11
I haven't tried on an emu, but it's what my CPC does :)
Can you try to use the HELP command of another ROM (by placing the ROM at ROM position 1)?. Maybe the HELP command of some ROMs has a problem, but not the HELP command of others? Just an idea :-X
I'm pretty sure [nb]read "guessing", but it's an informed guess[/nb] that the Utopia HELPR command walks the ROMs, and it does this by using the firmware.
The Booster ROM patches said firmware to allow access to 31-15 as well, but I think it's a non-standard patch. Therefore, the Utopia commands won't work.
I don't completely understand the Booster ROM yet, but when I do it's probably something that can be fixed.
Quote from: redbox on 16:49, 04 October 11
The Booster ROM patches said firmware to allow access to 31-15 as well, but I think it's a non-standard patch. Therefore, the Utopia commands won't work.
There is no 'standard' way to patch ;) :laugh: . And since the Booster is the only one actually capable of doing it, well, it makes it the standard. The problem is that Utopia is just not capable to adapt to new situatons. The programmers never expected to find more than 16 ROMs.
You may be able to get Utopia working with 16 ROMs, but for anything else you have to patch Utopia not the Booster :) The question is... is it actually worth to invest time into this?
No.. perhaps it's the MegaFlash that miss a feature, cf. only allow 16 ROMs at a time, and a switch would make ROMs 16 to 31 the ones from 0 to 15.
Quote from: norecess on 17:57, 04 October 11
No.. perhaps it's the MegaFlash that miss a feature, cf. only allow 16 ROMs at a time, and a switch would make ROMs 16 to 31 the ones from 0 to 15.
It's the OS that restricts it to 16 ROMs, not the MegaFlash.
You can make a hardware mod to alter the page-in range like you've said, but you'd still have to patch the OS to scan the new range.
I did consider having this type of feature when I was developing it. The MegaROM does have similar features, but on the MegaFlash it would have meant adding another IC plus the jumpers, which raises the price and makes the PCB quite a bit bigger too. So I decided the feature wouldn't be used by enough users to justify everyone else having to foot the bill for a feature they don't use. I could make a schematic and instructions to mod the MegaFlash to have this feature, but does anyone really want/need it?
Bryce.
Quote from: Bryce on 20:24, 04 October 11
I could make a schematic and instructions to mod the MegaFlash to have this feature, but does anyone really want/need it?
The only time I could see really using it would be:
- Testing software/OS Patches to access the entire ROM range
- If you're using an alternative OS (maybe FutureOS)
It would be interesting to see how it's done from an academic point of view, but not much more... I think you made the right choice in the development of the MegaFlash :)
PS - I put a bad ROM image in mine the other day and the CPC wouldn't boot. So I unplugged it, turned the CPC on, plugged it in and then ran the management software to delete the bad image. Is this okay, or officially a bad idea...?!
Well contrary to all those claims that "It could damage your CPC / expansion etc." It's not actually as bad as you might think. It might crash the CPC on occasions, but it's extremely unlikely that you would damage the hardware. It doesn't cause any spikes or short circuits, so the worst it could do is change a 1 to a 0 or a 0 to a 1 on some bus / data line or a control signal, which might crash the CPC, but nothing more.
Bryce.
Thanks Bryce.
I'm such a good programmer it doesn't happen often ;)
But when it does, I won't worry too much now!
QuoteIt's the OS that restricts it to 16 ROMs, not the MegaFlash.
Don't forget that this OS is used by, huh, 99.99% of CPCs in the world? :)
Well, other option could be having a key press check in the initialization of rom in the position 15, and if you have the key R pressed, then launch the ROManager for parking the problematic roms. It could use another key to not initialize the upper roms, etc ...
Quote from: SyX on 14:29, 05 October 11
Well, other option could be having a key press check in the initialization of rom in the position 15, and if you have the key R pressed, then launch the ROManager for parking the problematic roms. It could use another key to not initialize the upper roms, etc ...
Now this could be a really smart idea for a 'developer' ROM.
Is it possible to write a ROM (that you put in position 15) that stops the OS walking all other ROMs...?
Quote from: redbox on 20:43, 04 October 11
- If you're using an alternative OS (maybe FutureOS)
Not really, FutureOS need one ROM between 0 and 15, the other three can have higher numbers. If you put ROM A at positon 0, then you activate the autostart feature.
Quote from: norecess on 21:14, 04 October 11
Don't forget that this OS is used by, huh, 99.99% of CPCs in the world? :)
Only in your household ;-)
Quote from: SyX on 14:29, 05 October 11
Well, other option could be having a key press check in the initialization of rom in the position 15, and if you have the key R pressed, then launch the ROManager for parking the problematic roms. It could use another key to not initialize the upper roms, etc ...
Well, the Booster routine is ommitted if you press Space. The idea is good, but CPC-OS probably makes trouble here. However I add the "R" to my 2DO list.
Quote from: redbox on 15:07, 05 October 11
Is it possible to write a ROM (that you put in position 15) that stops the OS walking all other ROMs...?
You can use the park ROM option of the ROManager. It's made for such purposes.
Quote from: TFM/FS on 17:47, 05 October 11
Not really, FutureOS need one ROM between 0 and 15, the other three can have higher numbers.
What I meant to say was it could be useful if you were to write your own OS. The only one I could think of as an example was FutureOS :)
Quote from: TFM/FS on 17:47, 05 October 11
You can use the park ROM option of the ROManager. It's made for such purposes.
If you've put bad ROM code into the MegaFlash, it could stop your CPC from booting which means you can't get into the ROManager to park the ROM.
So if you're testing ROMs, putting in a R keypress or something to halt the walk would be very useful as then you can skip your buggy ROM and boot the CPC as normal.
Quote from: redbox on 19:49, 05 October 11
What I meant to say was it could be useful if you were to write your own OS. The only one I could think of as an example was FutureOS :)
Just mentioned it, why not provide some information when time is right :-)
Quote from: redbox on 19:49, 05 October 11
If you've put bad ROM code into the MegaFlash, it could stop your CPC from booting which means you can't get into the ROManager to park the ROM.
So if you're testing ROMs, putting in a R keypress or something to halt the walk would be very useful as then you can skip your buggy ROM and boot the CPC as normal.
I take this together.... Ok, assuming you prevent a ROM walk, then you have no DOS. Well, in this case you need some ROM management to delete the "bad" ROM. So maybe it's better to start into the ROM management, then to inhibit the ROM walk. Well, a complex topic, we can assume a variety of things to go wrong.
Any other ROMs with a similar |Help command I could test with Booster?
Arnor Utopia's HELPR ?
VDOS: ROMS
Softbrenner: ROMHELP