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 listReceived on 2014-10-06 13:00:07
Archive generated by hypermail 2.2.0.