Re: Format sequence

From: Spiro Trikaliotis (ml-cbmhackers_at_trikaliotis.net)
Date: 2006-05-12 08:35:09

Hello Ruud,

* On Thu, May 11, 2006 at 08:48:12PM +0200 Ruud@baltissen.org wrote:
 
> I had hoped that some one could point me to the exact point ie. $xxxx.

I believe you are searching for $EE40 (which start preparing the BAM),
$EEA0 (which start writing the BAM), or $EEA6 (which writes 18/1).

Are these the addresses you indentified yourself?
 
> What I still don't understand is why the diskdrive doesn't stop and
> outputs an error message. What is it waiting for ???

As I do not know exactly what you are doing, it is hard to guess.

Anyway, the write routine ($F56E) goes as follows:

1. First, it searches for the block header which it wants to write (in
   your case, 18/0 ($F589 JSR $F510)

2. Then, it waits 9 bytes (older 1541, 1540 and 2031: 8 bytes), which is
   the GAP between block header and sync for the data part.
   It uses the V flag for this, as this is the byte ready signal of the
   disc controller. If you miss emulating this, your floppy will go in
   an endless loop. ($F58C - $F592)

3. It sets the DC to write mode ($F594-$F5A0)

4. It writes a SYNC ($F5A3 - $F5AF) and writes the data out to the disc
   ($F5B1 - $F5BD for the "excess" bytes, $F5BF - $F5C8 for the rest)

5. It waits for the end of the last byte (as I already told, it misses
   one byte, but this is not important here), and sets the DC to read
   mode again ($F5CA-$F5D6).


My bet: You forgot point 2.

HTH,
   Spiro.

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

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.