Re: R-DOS (REX DOS??) on an oceanic 1541 clone drive

From: Spiro Trikaliotis <ml-cbmhackers_at_trikaliotis.net>
Date: Mon, 6 Oct 2014 14:14:44 +0200
Message-ID: <20141006121444.GA5088@hermes.local.trikaliotis.net>
Hello Julian,

* On Mon, Oct 06, 2014 at 10:28:31PM +1100 Julian Perry wrote:

> Oceanic drive.
> It has a DOS ROM I'm not familiar with, and has the
> ID string "73,R-DOS 40 TR. 1541,00,00". Some googling has revealed
> that some people have guessed it as "REX DOS" - but I can
> find next-to nothing about it. ( I personally doubt it)
[...]
> There seems to be a total lack of information about this DOS - in
> particular I'm curious about the command strings to utilise the 40
> track capability hinted in the ID string.

I had to analyse a bug in OpenCBM which only occurred with Rex-DOS:

        http://sourceforge.net/p/opencbm/bugs/12/

I had received the ROM image of the REX-DOS back then. This image is
identical to yours.

There was also a discussion on the German Forum-64 about it:

   http://www.forum64.de/wbb3/board2-c64-alles-rund-um-den-brotkasten/board4-hardware/board104-diskettenlaufwerke/6113-probleme-mit-einer-rex/index2.html

> Does anyone have any info about this ROM?

I analysed it a little bit back then. These were the differences I found
out (in 2005):

------------------------------------------------------------------------
Well, there are different entry points. One that is most remarkable:

$D8F5 (open file with "@", that is, overwrite it) seems to be changed
quite a lot. $D8F5-$D8FC is identical. Than, the Oceanic "removes"
$D8FE-$D914 and replaces it with a (much smaller!) JSR $DDB7; BCC $D936.
Then, there are some common bytes, and after this, the implementation up
to $D940 is almost completely different.

It seems Rex wanted to fix the "Overwrite with '@'" Bug. I do not know
if they succeeded.

The RESET routine ($EAA0) is different again, but there seem not to be
many differences.

The REX-DOS seems to test only the $E000-$FFFF ROM in the RESET-Routine;
the test for $C000-$DFFF seems to be removed.

If a directory is loaded, the load address is $0801 instead of $0401
($ECC2 is $08 instead of $04).

$F11E (searching for the next free block in BAM, for B-A) is highly
modified. It seems they wanted to fix the B-A bug. This change affects
$F12D up to $F19B, thus, almost all jump in that region will most
probably fail.

If B-A fails, error $72 (disk full) is output instead of $67 (illegal
track or sector).

The stepper timings in $F2A4-$F2AE are changed - the fast stepper mode
is used whenever more than 5 steps are necessary (the original DOS has
a threshold of 200 instead!), and the floppy only has half of the time
to start of stop the motor.

$F383 up to $F38B is "highly" changed again.

$F463 up to $F483 is highly changed. This affects the calculation of the
next job to execute.

$F6DA is "missing", as well as other AND #$F0 in the conversion of
Binary to GCR. Thus, every entry point in $F6DA up to $F77E is wrong.

The same goes for $F7EA (AND #$F8) and other ANDs in the conversion
routine of GCR -> BIN, resulting in changed entry points in the $F7EA up
to $F89F area.

$F98B is halfed, giving only 0.75 for the motor to gain speed (instead
of 1.5 seconds with the original DOS).

$F9A5 to $F9B0 are different.

The format routine has some differences, making many entry points wrong,
especially in the $FB09 to FBD7 area.

It generates the $00/$00 empty pattern on format, $FCB1 - $FD11 are much
different again.

The (non-functional) "D" command is replaced with a "T" command, which
is located at $FFBF.


Ok, these are the biggest differences in short.
------------------------------------------------------------------------

Regards,
   Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/

Regards,
Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/

       Message was sent through the cbm-hackers mailing list
Received on 2014-10-06 13:00:07

Archive generated by hypermail 2.2.0.