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 1 Guest are viewing this topic.

SyX

Quote from: SOS on 08:47, 09 June 16
Suggestion for improvement:
Some  >:( of the AMSDOS-RSX seems to return in the Z-Flag, if the RSX is successfully. (Z=1 is error in the |ERA-RSX) - but when execute |REN you can only guess the result.
My test against "|MD" with a new directory and an already existing directory brings me no difference in the F-Register.
Could it improved?  ;)     (|MD,|RD,...)
I took a breath while i was studying for this night android test and added error conditions to the rest of RSXs. Soft968 doesn't define any exit condition for disk RSXs at all, but i followed the firmware conventions (Carry Set = Success | Carry Unset = Error).

I haven't tested each command more than once, but i hope there is not errors (not too much :P). Until this is not well  tested, it will not be published in the official github... but because i will not be available during the next weeks and people looks very active those days, you can find this version attached to this message.

Kris

Fast update  :o


I will install and test it this evening; thank you for sharing :)

SOS

Quote from: SyX on 14:21, 09 June 16
Soft968 doesn't define any exit condition for disk RSXs at all, but i followed the firmware conventions (Carry Set = Success | Carry Unset = Error).

Great thank you, i will test it.
And nice &BEDF-Joke you made :P

TotO

Quote from: SOS on 14:28, 09 June 16And nice &BEDF-Joke you made :P
A shame that was not a BEEF joke!  ;D
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

SOS

Quote from: TotO on 14:51, 09 June 16
A shame that was not a BEEF joke!  ;D

Thank you, that you pointed me to the right things. Previously i'm not sure how i can easy check if ACME-Dos is installed, so now i know the range &BEE3 - &BEE6 :P :P


Meanwhile as i'm using my brain....
Oh dear  :picard: , i'm not native-english-speaker, now i have understand it !  :)

TotO

Quote from: CraigsBar on 11:41, 09 June 16I am completely disillusioned with the xmass at this stage [...] I hope to see the m4 and albiero boards get fat drivers sooner
I will refund you after receiving back your board.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

CraigsBar

Quote from: TotO on 15:18, 09 June 16
I will refund you after receiving back your board.
You misunderstood I think ;) I am not looking for a refund. I love the concept and modular design of your boards. I still would like all of them, but this one is driving me nuts! If you can make it work then perfect. Return the card to me and no refund is needed. But for me at the moment on 4 cpc's and a just cpc and 2 separate doms I am getting nowhere ????


Sent from my A3-A30 using Tapatalk

IRC:  #Retro4All on Freenode

Kris

New ROM installed and everything seems OK up to now !!


SOS

The new ROM works, MD+REN tested with the new flags, seems ok :)

SOS

@SyX , i have an other wish/request  ;D ;D    (thank you  ;D :D )
=>
Some thoughts about your documentation - move (MV)-Command:

I'm not an expert in the FAT-structure, but if i remember how long time it costs, when i move e.g. a 10GB-File in Windows from one Dir to another.
Compare it to the - copy 10GB-File from one Dir to another Dir - process, the Move-Command in Windows uses a "simple" reallocate of the existing FAT-Entry to the new destination.

Let's take a look to the Amstrad & Acme-DOS: It can be programmed a copy-based move-command. But it will be really,really  sloooooow.
A light-year-faster would be a RSX-based reallocate-based move-command.  ;) ;) ;)


Now i will be quiet  :blank:

SOS

#810
Quote from: SOS on 20:40, 09 June 16
Now i will be quiet  :blank:
Ok, i must break my promise.
I found an error:
All "CAS_IN_DIRECT" (&bc83) will returns an &0e error (an reset C-Flag, the CAS_IN_DIRECT will be too early exit in xmas 0.63 at &c1c6), if you want to load a a basic-file from the DOM.
Also the normal Basic-"Load"-command is affected, but:
The Basic (1.1) tests against the Z-Flag if an error occured (WHAT!?  :o ).

TotO

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

SyX

Hi SOS,

Of course, a |move command should reallocate the sectors used by the file/folder, nothing of making a slow boring copy + delete, hehehe.

Quote from: SOS on 20:40, 09 June 16
I found an error:
All "CAS_IN_DIRECT" (&bc83) will returns an &0e error (an reset C-Flag, the CAS_IN_DIRECT will be too early exit in xmas 0.63 at &c1c6), if you want to load a a basic-file from the DOM.
I can not reproduce that bug here, i have tested a few basic files of different sizes (since a simple hello world, to games abusing of basic as Elf, passing for basic programs filled with RSXs as 3D Munchies). Could you attach the problematic file for i can test?

The nice thing about your bug report, it's that i was using an old constant (practically code from the first day, i started) for that error code, and it should be $0F, instead of $0F (i love assembler enums!!! :P).

Quote from: SOS on 20:40, 09 June 16
Also the normal Basic-"Load"-command is affected, but:
The Basic (1.1) tests against the Z-Flag if an error occured (WHAT!?  :o ).
Yes, this is one of the funny bugs in the Basic rom, they should test against not Carry, instead of zero flag set. And it happens in both Basic versions, 1.0 and 1.1.

The fun thing is the other time that they make a call to CAS_IN_DIRECT in the basic rom (for loading binary files, i suppose), they check for the Carry flag as they should do :P... someday, i should finish my python interpreter rom, hahaha.

Quote from: SOS on 20:40, 09 June 16
Now i will be quiet  :blank:
No, feel free to speak and suggest all that you want, your bug reports are always interesting and take me mind out of Clojure :)

SOS

Hmmmm, strangely, it seems not to be affected each BASIC file.
My perception has to have suffered well after what felt like 50. Loading test an affected file.
I have not really been tested many DSK's, attached on the fly an affected file.
If you need more, please let me know.[attachmini=2]

SyX

Perfect test case!!! Thanks!!! :)

And as a i told you, another really fun and interesting bug :)

It looks that if a file size was an exactly multiple of the sector size, then we would get that Z flag set and not Carry, getting the error... although the file was read fully and the program worked perfectly :P

But the reason for that is because practically nobody checks by i/o errors in their loaders after a CAS_IN_DIRECT, and we love to optimize code in size... for example, this fix has reduced the rom size in 3 bytes and this optimizations feel so good xDDDD.

You can find attached to this message the fixed rom (v0.64b), as the other time if nobody finds any error, i will upload the rom to the github in a few days.

PS: The next time that i make another rom like this, i should make first the automatic test cases, hehehe.

HAL6128

Hi Syx,
I found an issue with openin/openout/Input command. It is not working from Basic. At least on my CPC. Maybe someone else could Check?
I created an ASCII file with Protext (programming Mode not document) which works very well (loading and saving). I wanted to load that file from Basic with openin"file", input#9,a$ etc. but the input command took about twenty times longer than regular to read in a character.
Second issue was that the character read in is a full line with 255 single chr$(255).


So, working with Protext is no Problem. Files will be saved and loaded as expected (fast and correct). But not with the Basic commands??? :-\
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

SyX

@HAL 6128: Sorry, that is "correct"!!! Those firmware functions for reading/writing byte to byte are not implemented yet (i have not tested at all, surely they made crazy things).  They are used by the basic during the input/output operations using streams or for reading/writing files without header, as ASCII files.

They will be implemented, but i have not enough free time for that yet. I left those for the end, because for the most part of the people that wants to play games or launch demos, these functions are not important and we have the alternative of protext (as appears in the github readme), that it's the reason for the low priority.

Another fact, it's that the released ROM is practically the same rom that we had when the board was released (except for all the bug fixes that the guys helped us to discover), but i wanted to finish all the rom functionality before to make a first release... but this moment was when i was getting more and more busy here, and instead of releasing, i made the big error of thinking that i could get enough time for finishing... then i closed the eyes and i opened them again, a year and a half had passed and i had not code one line at all and my perspectives of fixing my free time where null.

Without TotO encouragement me (Thanks!!! :)), maybe i would never released at all.

Fun thing, it's that this is my third disk rom, the two other tries failed because the hardware was never ready and the software was practically finished, because those boards had a microcontroller for handling the FAT.

In short, i need to finish this, hehehe.

HAL6128

Quote from: SyX on 22:12, 30 June 16
@HAL 6128: Sorry, that is "correct"!!! Those firmware functions for reading/writing byte to byte are not implemented yet (i have not tested at all, surely they made crazy things).  They are used by the basic during the input/output operations using streams or for reading/writing files without header, as ASCII files.

Yes, sorry, you are right, you have already told... damn, I'm getting old.  :picard:
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

TFM

Quote from: HAL 6128 on 14:00, 01 July 16
Yes, sorry, you are right, you have already told... damn, I'm getting old.  :picard:


It's not getting old, it's called deactivation...


TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

HAL6128

yeah... deactivation means removing all the additional x-mem banks from my X256 board?
At the end I will suffer from plain 128kByte, brrr.
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

TFM

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

madram


Hi!


Thanks again to TotO for the nice work on the hard side, and to SyX for the hard work on the soft side.

Quote from: SyX on 22:12, 30 June 16
Those firmware functions for reading/writing byte to byte are not implemented yet
[...]
these functions are not important


Allow me to disagree. They are very important to me!
I use them (in Orgams) for reading files by chunks of arbitrary size, but unlike Starkos, with same speed than DISC_IN_DIRECT (by picking in the 2k buffer and updating AMSDOS's variable accordingly). I've learned since that Prodatron already did this in Digitracker.
It allows to split big files (+40k) in banks. Incoming tools may work with bigger files yet (think more-than-fullscreen interlace gfx!).


What would be the alternative? To split in several files on disc and load them one by one ? That would be very inconvenient for several reasons:

       
       
  • It is an artificial workaround, messing the catalogue. There is no logical reason to have several files for a single source or gfx.
  • Due to catalogue access, it would be slower if several files are under 16k (and it would be so, since there is an header I have to load to a particular place). I'm fine to use external devices to enhance comfort, but not at the expense of the basic case without these devices.
  • Having to load the whole file (even if it is a split itself) would make it harder to optimally use the memory manager to come.
So, reducing both user friendliness and programming ease because things are a bit tricky to code? Come on! (:

arnoldemu

I am sure SyX will fix it when he has time to do so :)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

TotO

#823
@madram : Thank you for your feedback!  8)

I know SyX had done his best to cover most of the usages first into the beta version.
He probably have not expected that was early required to use CAS_IN_CHAR with 512K RAM and 128MB SSD.

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

Poliander

Is there a known incompatibility between AcmeDOS/FAT and SymbOS? I was able to format my DOM (|FORMAT) and create directories, copy files to it, but after I've copied SymbOS to D:\SYMBOS I ran it once, since then I can't copy files using |CPH to the drive. It says just "file length zero"...  :(
Schneider CPC 664 • X-MEM • Vortex F1-X Drive • CTM 644 • DMP 2160
Schneider CPC 6128 • Z-MEM • M4 Board • MultiPlay + Amiga Mouse • OSSC

Powered by SMFPacks Menu Editor Mod