[hatari-devel] reading DMA sector count in HDC mode ?

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


while trying to improve FDC/DMA emulation, I noticed that it's apparently not possible to read the value of the dma sector counter, you can only set it.

When trying to read it on my STF, I get the latest value that was read/written at $ff8604.

For example, consider this code :

	move.w  #$86,$ff8606	; data reg
	bsr	FDC_Tempo
	move.w	#$67,$ff8604
	bsr	FDC_Tempo

	move.w  #$90,$ff8606
	bsr	FDC_Tempo
	move.w  #$12,$ff8604	; DMA sector count

	move.w	$ff8604,res

	rts			; 44 cyles pause

In that case, 'res' will be $67, not $12 as could be expected, you get the latest value written (or read when) accessing the FDC/HDC.

Is this the same when in HDC mode ? For example :

	move.w  #$10,$ff8606
	bsr	FDC_Tempo
	move.w  #$12,$ff8604	; DMA sector count
	move.w	$ff8604,res

Do we get $67 too, or $12 ?

I think the dma sector counter is common to FDC/HDC mode, so it should be the same, but could someone with a hard drive confirm this ?

None of the doc I have are clear on this, they don't mention if sector count can be read or not. But as dma status has a bit to tell if sector count is 0 or not, this could confirm you can't read sector count, you can only know if it reached 0.


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/