Author Topic: arnoldemu's testbench fdctest "33:FAIL 01"  (Read 791 times)

0 Members and 1 Guest are viewing this topic.

Offline freemac

  • 464 Plus
  • *****
  • Posts: 326
  • Country: 00
  • Liked: 253
  • Likes Given: 250
arnoldemu's testbench fdctest "33:FAIL 01"
« on: 09:35, 04 August 17 »
Because I'm implementing a NEC FDC :p, I just continue this test bench :picard2:

I compare test 33 and 35 :
  • 33 does test read_data with MT (multitrack), from sector id 41 to 49, each side having sector id 41 to 49.
  • 35 does test read_data with MT (multitrack), from sector id 1 to 9, each side having sector id 1 to 9.
Test 33 does read 9 tracks.
Test 35 does read 9*2 tracks.

Is FDC clever enough to detect sort of dsk format ?
And how clever ? is it just memorizing last passed sector ID and ignore the next same one ? or else does it memorize all of them ? Or does it follow a simple written rule (if sectors on first side are 4X and in another are 0X then it's a double side multitrack) ?
« Last Edit: 10:22, 04 August 17 by freemac »

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.336
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2274
  • Likes Given: 3478
Re: arnoldemu's testbench fdctest "33:FAIL 01"
« Reply #1 on: 15:51, 04 August 17 »
Because I'm implementing a NEC FDC :p, I just continue this test bench :picard2:

I compare test 33 and 35 :
  • 33 does test read_data with MT (multitrack), from sector id 41 to 49, each side having sector id 41 to 49.
  • 35 does test read_data with MT (multitrack), from sector id 1 to 9, each side having sector id 1 to 9.
Test 33 does read 9 tracks.
Test 35 does read 9*2 tracks.

Is FDC clever enough to detect sort of dsk format ?
And how clever ? is it just memorizing last passed sector ID and ignore the next same one ? or else does it memorize all of them ? Or does it follow a simple written rule (if sectors on first side are 4X and in another are 0X then it's a double side multitrack) ?
read data with multi-track:

This will read from R to EOT, then it will set R=1 and toggle bit 0 of H and then attempt to read R to EOT again.

In the case of 41-49 and 1-9 (R=41, EOT=49), it will read 41-49, then read 1-9 (H^=1) and then error because it can't find R=A.

In the case of 1-9 and 1-9 (R=1, EOT=9), it will read 1-9, then H^=1 and then read 1-9 and finish with success.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.336
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2274
  • Likes Given: 3478
Re: arnoldemu's testbench fdctest "33:FAIL 01"
« Reply #2 on: 15:57, 04 August 17 »
BTW I have started to update the fdc tests in my "acid tests".
I added
1. scrolling message to tell you when to press a key (because test pauses when it has filled screen with results and data)
2. I started to add option to use a test disk.

NOTE:

The tests need more than 1 test disk. Seek tests needs 2 test disks, one for single sided drives and 1 for double sided drives, the same is true for the other tests.

Also using the test disk is not a guarantee for success because "dsk" is not accurate enough to store the information for some of the tests. I do not have hardware to create high-quality disks from IPF or similar so I can't make a test disk like this.





My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource