XRoar and 16k D.O.S. files

Hardware Hacking, Programming and Game Solutions/Cheats
pser1
Posts: 1665
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

XRoar and 16k D.O.S. files

Post by pser1 »

Hi,
I can't spot what I am doing wrong, but I cannot start XRoar whith any of the DOS-ROMS 16k long (DOSxxdir)
Well, XRoar starts but without the DOS.
Has anyone tried this?
Any advice will be very appreciated.

By the way, I have noticed that DDOS12A has a flaw in the KILL command, it just modifies back to '1' (free) the sectors used by the first extent of the deleted file.
But forgets about the other extents ...
Testing DDOS11C with the same disks, it works well and ends up with the correct free bytes.
Unassembling both on two different XRoar sessions, there is a massive change at the end of the function DDosDeleteFile ($CFB6), the changes
affect from $CFEE to $D00A

Maybe I have got the wrong version ... I don't remember the differences between 11C and 12A (or 11 vs 12)

regards

EDIT: The second part of this message has been copied in the new thread "Problems with DDOS12A and command KILL"
pere
Last edited by pser1 on Sun Apr 26, 2015 3:46 pm, edited 2 times in total.
zephyr
Posts: 1474
Joined: Mon Jul 21, 2008 1:18 am

Re: XRoar and 16k D.O.S.

Post by zephyr »

pser1 wrote: By the way, I have noticed that DDOS12A has a flaw in the KILL command, it just modifies back to '1' (free) the sectors used by the first extent of the deleted file.
But forgets about the other extents ...
Testing DDOS11C with the same disks, it works well and ends up with the correct free bytes.
Unassembling both on two different XRoar sessions, there is a massive change at the end of the function DDosDeleteFile ($CFB6), the changes
affect from $CFEE to $D00A
This post links to the last updated copies of v1.2 and v1.2a.
viewtopic.php?f=8&t=4779#p10779
pser1
Posts: 1665
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar and 16k D.O.S.

Post by pser1 »

thanks Steve,
these are the files I am using and they do not work properly with files that use more than one extent in their dir entry.
The sectors of the second extent are not marked as free at the end of the KILL command, so losing free space (in these cases)
But DDOS11C works perfect.

regards
pere
zephyr
Posts: 1474
Joined: Mon Jul 21, 2008 1:18 am

Re: XRoar and 16k D.O.S.

Post by zephyr »

It must be an error in Philip Scott's patch code. I don't have enough free time to check it at the moment. :(
pser1
Posts: 1665
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar and 16k D.O.S.

Post by pser1 »

Hi, Steve

I will give a peek at the whole document.
The code area that conflicts is this:
From $CFEE to $D000 is different code. DDOS11C works OK, DDOS12A doesn't
I attach here a VDK image to be used as test with both DOS
You can KILL any file that just uses an extent: DONKEY, BTRACK, ASTRO (this one should be Unprotected previously)
Both versions of DOS will work right.
But any of the others that use more than one extent in their directory entry, will fail giving as result the wrong free bytes number
In fact they just free the sectors of the very first extent, forgetting about the other extents ...

cheers
pere

PS. The contents of the disk (with a full VDIR)

Code: Select all

    Name     1LSN  No BLS  Bytes
BORIS   .BIN  324  36           
              252  36           
              216   6 202  19914
SPORES  .BIN  180  36           
              144  31 122  17018
ASTRO   .BINp 108  29  94   7262
GALAX   .BIN   72  36           
               36   7 135  10887
FROGGER .BIN    0  36           
              378  70 139  27019
DONKEY  .BIN  450  84  56  21304
BTRACK  .BIN  540  98   9  24841
MRDIG   .BIN  648  72           
               43  13 146  21650
 24064  FREE BYTES 
OK
EDIT: Message copied to the new thread: "Problems with DDOS12A and command KILL"
Attachment deleted. Posted in the other thread
Last edited by pser1 on Sun Apr 26, 2015 3:30 pm, edited 1 time in total.
pser1
Posts: 1665
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar and 16k D.O.S.

Post by pser1 »

Reading Philip Scott's patch document and referred to Problem2, he says that there are two ways to solve it:
patch a) that impies solving Problem 1 too, and
patch b) that implies reserving some RAM from $7FEF to store the patch there (code is PIC so could be allocated anywhere)

In DDOS12A, Problem1 is solved and patch a) for Problem2 has also been applied. Alright!

Strangely, someone added patch b) too, but placed it adding C000, so that the final 'killed code' is $CFEF onwards
Besides that, to be of use it needs bytes $0183/184 be modified so that they point to the new code
But this is NOT needed once we have applied patch a)
So, this part should be restored to the previously existent code there (can be copied from DDOS11C)

I am still comparing both DOS versions to find out more differences (documented or not)

cheers
pere

EDIT: Message copied to the thread "Problems with DDOS12A and command KILL"
Sorry I cannot delete it from this one
Last edited by pser1 on Sun Apr 26, 2015 3:34 pm, edited 1 time in total.
sorchard
Posts: 530
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: XRoar and 16k D.O.S.

Post by sorchard »

pser1 wrote:I cannot start XRoar whith any of the DOS-ROMS 16k long
Hi Pere,
Forgive my ignorance, I'm not sure which DOS you mean. I tried DOSPlus4.9B from the download section (it has a 16K image) and this starts up fine in xroar. I guess xroar already recognises that one. I would be happy to try a different ROM if you can point me in the right direction.
Stew
pser1
Posts: 1665
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar and 16k D.O.S.

Post by pser1 »

Hi Stew!
all DOS files 8192 bytes long do load flawlessly in XRoar.
The problem I have found, happens when I try to load the special modified DOS files to give them a very nice DIR function.
I can use them going MAP1, and copying them from RAM to ROM area, but wanted to use them with XRoar ... fail

I attach here the five files that were uploaded time ago by Zephyr.

cheers
pere
Attachments
special DIR DOS-ROMs.zip
DOS files longer than 8192 bytes (16132 bytes)
(35.37 KiB) Downloaded 271 times
sorchard
Posts: 530
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: XRoar and 16k D.O.S. files

Post by sorchard »

The ROMs do load into xroar, but 4 bytes out of position with the first 4 bytes missing. Strange. To compensate, I added 4 bytes at the start but now the ROMs load 8 bytes of position. Even stranger. So instead I removed 4 bytes from the end and now they work. (See attached)

It seems that the length of a 16K cartridge ROM should be 16128 bytes to work in xroar.

For ref I added the following lines to my xroar.conf to define a couple of new cartridges:

Code: Select all

cart ddos10dir
  cart-desc DragonDOS V1.0 (dir)
  cart-type dragondos
  cart-rom ddos10dir.rom
cart ddos41dir
  cart-desc DragonDOS V4.1 (dir)
  cart-type dragondos
  cart-rom ddos41dir.rom

 machine-cart ddos41dir
Attachments
dir_dos_roms_16128.zip
(35.37 KiB) Downloaded 274 times
Stew
pser1
Posts: 1665
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar and 16k D.O.S. files

Post by pser1 »

Hi Stew,
good point!
You are right, if we want to use a 16k ROM we should deduct the range FF00 to FFFF that cannot be used (it's SAM domain)
So $4000-$100 = $3F00 => 16128 exactly as you have said.
No problem deleting from the end, because there is Nothing there ...
Well, now we could use these better formatted DIR functions in XRoar too.

thanks a lot
pere
Post Reply