CPCWiki forum

General Category => Emulators => Topic started by: freemac on 09:46, 04 August 17

Title: arnoldemu's testbench fdctest "2D:FAIL 01"
Post by: freemac on 09:46, 04 August 17
Comparing test 2D with 2E :
Here I'm a lot confused between "head" from second param of command instruction (command instruction being first param :p), and "head" from CHRN params following.
It's said first "head" is about physical head, and second "head" is about logical head (one read from sector-info (sector-id...))
But here in the test, command "read track" (so "I don't care about logical informations" (comparing it to read data command)), physical head is switched in test 2E and also in 2E result so... I don't know if finally the result head (in CHRN) is logical or else physical one... and so then I don't know if the test 2E does result sectors in the same order than test 2D or not...........

May someone help me ? Mayday !
Title: Re: arnoldemu's testbench fdctest "2D:FAIL 01"
Post by: arnoldemu on 15:53, 04 August 17
It's said first "head" is about physical head, and second "head" is about logical head (one read from sector-info (sector-id...))
Command is 1 byte, followed by drive and head.

Head here is physical head, it is the /SIDE output from 765. drive is the physical drive output from 765 (US0 and US1).

In the command are C,H,R,N values. These are matched against ID in the data on the track.

MFM track has:

gap data, sync bytes, id marker, C,H,R,N,crc, gap data, sync bytes, data field code (data or deleted data), data bytes, crtc.

So in command, C,H,R,N are starting values and are matched against the data in the id field.
When that data matches it reads from the data field.

With multi-track, physical head is changed AND logical head is changed.

FDC reads R, then R+1 until R=EOT, then it will change physical head and logical head to read the 2nd side.