Add support for catching ID Field errors
If an ID Field error was encountered by dmklib, it would immediately stop processing the current track. That problem was addressed by a new function, dmk_read_id_with_crcs(). Restructure dmkchk to take advantage of it and now also separately report 3 types of errors, sector CRC errors, missing sectors, and ID Field CRC errors.
New column added to output to show ID Field errors and the Error List lists the ranges of the different types of errors separately as well:
File: my.dmk
Trk/Side Sector Sec Cnt Prev Sector ID Field Error
Count Change? SecCnt Errors Errors List
----------------------------------------------------------
22/0 19 Y 18 18 0 M: 1-13, 15-18
23/0 19 19 0 M: 1-18
24/0 20 Y 19 19 1 C: 2; M: 1, 3-18; ID: 252
25/0 20 19 1 M: 1-18; ID: 207
26/0 19 Y 20 16 0 M: 1-11, 13, 16-18
27/0 20 Y 19 19 1 C: 12; M: 1-11, 13-18; ID: 132
28/0 19 Y 20 15 0 C: 17; M: 1-11, 13, 15
29/0 19 11 0 C: 16; M: 4-10, 12, 14, 18
30/0 19 19 0 C: 12; M: 1-11, 13-18
31/0 19 9 0 M: 1-2, 4, 6, 8, 13, 15, 17
32/0 18 Y 19 0 0
Total sector CRC errors (C): 5
Total sectors missing (M): 159
Total ID Field CRC errors (ID): 3