News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

X-MASS, a mass-storage expansion for all CPC.

Started by TotO, 18:32, 14 December 14

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

TotO

#750
A fix is not easy as a ROM only have one entry point. So, it don't know if it is called because CPC start, reset or require to execute a RSX.
By the way, I can't do anything related to the AcmeDOS software from my side...

One think you can report are the values stored into the RAM at &BEA6, &BEA7:
- After the CPC is switched ON
- After executing the |CD,"/" command

Repeat this some times to know if a randown content is filled...  8)
(require to wait at less 10s to be sure the RAM content is lost when you switch it OFF)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Audronic

@Tot0

Ok Thanks.
These were just some thoughts thats all.

Is there reason for choosing the  2 Memory (&BEA6, &BEA7) locations to store the pointers.
Are there any other locations that could be chosen that are " safe '

Thanks   Ray
Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

TotO

&BE00 to &BE40: STACK
&BE40 to &BE80: STACK (or AMSDOS)
&BE80 to &C000: STACK

ACMEDOS use some free RAM following the AMSDOS memory for storing its data.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Audronic

Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

TFM

Quote from: TotO on 14:20, 06 June 16
Not fully fixed for everyone. Look that |CD,"/" must be done each time the CPC is turned on... :(


SyX can very easy add that CALL to that part doing the initialization of the ACMEDOS ROM at system start up. Or is there some reason not to do it at startup?
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

Just a suggestion: It may be a timing problem. Adding a delay after power-up before the DOM is initialised might solve the problem? Or reset the DOM 2 seconds after powerup?

Bryce.

netmercer

Hi,
it would be a piece of cake for Syx to reset the filesystem of ACMEDOS at cpc-reset in order to avoid the |CD,"/" command after a crash for example.
Because when a binary file is executed with RUN"filename, the firmware will initialized the upper roms before giving the control to the program; that means we would lose the active folder and every additional file read/write operation would go to the root, and no multipart or save game would load, for example.
It's a concession to be AMSDOS compatible.
Simply please read the README file on GitHup.

Believe me, it's not a bug, it's a feature !!!!  :-*

Kind regards
netmercer

Joseman

Quote from: netmercer on 21:59, 07 June 16

Because when a binary file is executed with RUN"filename, the firmware will initialized the upper roms before giving the control to the program; that means we would lose the active folder and every additional file read/write operation would go to the root, and no multipart or save game would load, for example.

If i undestand correctly:

- with run"loader.bin" the firmware will initialized the upper roms and we lose the active folder

- with run"disc.bas" that inside will load"loader.bin",&4000:call &4000, will NOT initialize the upper roms and we don't lose the active folder...




netmercer

Quote from: Joseman on 22:50, 07 June 16
If i undestand correctly:

- with run"loader.bin" the firmware will initialized the upper roms and we lose the active folder

- with run"disc.bas" that inside will load"loader.bin",&4000:call &4000, will NOT initialize the upper roms and we don't lose the active folder...



Hi,
no, the active folder on X-Mass is never lost, because there is no reset for the filesystem of ACMEDOS at initializing of the ACMEDOS ROM. This is the reason why |CD,"/" is necessary in some cases. For example if ACMEDOS's RAM is corrupted by a game or other program. Then the active folder might be undefined.

Kind regards
netmercer

Joseman

Quote from: netmercer on 23:24, 07 June 16

[...] if ACMEDOS's RAM is corrupted by a game or other program. Then the active folder might be undefined.


I have a multiload game with a custom loader made by me, do you know what variables must i save and after reload the firmware and call the roms again, restore to load correctly the levels?

I tried dozens of times, and i can't load correctly the levels, the call #BC77 returns error and no file is loaded, the HDD led blinks, so acmedos is active, but fails to load the level...

Tried to put the levels on the root directory but no... no sucess

TFM

Use a BASIC loader, so no ROMs need to be initialized again.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

netmercer

Quote from: Joseman on 23:31, 07 June 16
I have a multiload game with a custom loader made by me, do you know what variables must i save and after reload the firmware and call the roms again, restore to load correctly the levels?

I tried dozens of times, and i can't load correctly the levels, the call #BC77 returns error and no file is loaded, the HDD led blinks, so acmedos is active, but fails to load the level...

Tried to put the levels on the root directory but no... no sucess

Hi,
the pointer to the folder is stored in &BEA6 and &BEA7. if you are overwriting this area with your game levels, then you should perhaps save its contents, however.

Kind regards
netmercer

Joseman

Quote from: TFM on 23:47, 07 June 16
Use a BASIC loader, so no ROMs need to be initialized again.

The game is already loaded, all the ram used and overwritten. the loader is pure asm that change the original game loader.

Joseman

Quote from: netmercer on 00:02, 08 June 16
Hi,
the pointer to the folder is stored in &BEA6 and &BEA7. if you are overwriting this area with your game levels, then you should perhaps save its contents, however.

Kind regards
netmercer

Yes, i save #BE00 to #BEA9 before call the game, and restore it before call #BC77, but nothing, there is no way to make it work...

I'm out of ideas... the thing is that if i do a custom loader that loads a screen, and only execute the loader, then it works!, i can delete de firmware, restore the firmware, restore the roms, and it just simply works, but if i integrate the same loader (similar) to this game... then nothing... it doesn't work, whatever i do

SyX-in-faculty

@Joseman: Take a look to the source code of the loader in my pacman emulator.
I am in my night classes, but
basically you only need to save the drive in use, call to reinitialize the upper Roms and restore the drive number.
I always used that code in my cracks and projects since the 80s, because my CPCs configurations always were specials with a 5" 1/4 or 3" 1/2 B drive and the rom for handling this exotic drives was in rom position 6. And I had to fix a lot of cracks that only used A drive or only reinitialized rom 7.
Doing this, your projects will load in any exotic drive and exotic rom configuration (nada de cutrecargadores basic :p).

With respect to this elusive bug, well I have not got yet time for checking this, I am assuming that my code for returning to root when we get a non-sense folder cluster is not handling this case... It will be fixed, as the rest of things (sorry I only have read this page because I got an email while I was waiting to the next class).

Audronic

@Syx
@Tot0


Further thoughts :-

If you don't make the Hard drive the Default drive at Powerup.
But make |A drive the default (which is the normal default).
And then you call the Hard drive as |D.
Would that overcome the Problem (|CD,"/" )

Thanks    Ray

Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

TotO

#766
And each time you will switch from A: to D: you will lose the path.  :(
By the way it was not an option, because booting from X-MASS will allow to run an autoboot file to customise the users start-up!

As SyX said, a good way to process is detecting if the current path is valid. If not, going to the root.
Now, as requested, it will more help to let us know what are the memory values read at &BEA6 &BEA7 after some CPC boot. 8)

Thanks,

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

SOS

Quote from: TotO on 08:02, 08 June 16
.. booting from X-MASS will allow to run an autoboot file to customise the users start-up!

Have i missed something?
It's an already implemented feature?
If yes - how do i use it?

TotO

"will allow"
You have actually missed nothing.  8)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Kris

Just for information, the use of ¨ùcd,"/" works perfectly on my CPCold with the new version of the ROM: thanks for the update  :)
I will try to have a look to RAM values if it could be helpful to fix it definitively ;)




Audronic

Quote from: TotO on 08:02, 08 June 16

Now, as requested, it will more help to let us know what are the memory values read at &BEA6 &BEA7 after some CPC boot. 8)

Thanks,

  TotO.


The above were just some thoughts  :-X


Do you know of a monitor program that can allow me to look at the values (I am Not a Programmer). And where to get it.
And if we all use the same process then you will get consistent results.
Thanks   Ray

Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

TotO

#771
A monitor program? Hum...

PRINT PEEK(&BEA6) : PRINT PEEK(&BEA7)

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

Audronic

#772
The results are :-


after power up i get 255 for both addresses.
After issuing |cd,"/"
I get 0 (zero) for both addresses.


I had spent some time trying to read the addresses previously using examples from the AMSTRAD 6128 book BUT syntax errors only ??
PEEK (Address expression) ??

Ray

Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

TotO

#773
Thank you. 255 everytime? (others with problems reported me 255, 237, 249...)

Quote from: Audronic on 11:15, 08 June 16I had spent some time trying to read the addresses previously using examples from the AMSTRAD 6128 book BUT syntax errors only ??PEEK (Address expression) ??

May be you forget the PRINT previously!  ;D
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TotO

A new update will be ready soon.  8)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Powered by SMFPacks Menu Editor Mod