home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / discutils / _m_z / softcorn < prev    next >
ArcFS Archive  |  1995-10-01  |  189.3 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: ArcFS Archive (archive/arcFS).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert ArcFS Archive (archive/arcFS) magic Supported
100% file RISC OS archive (ArcFS format) default
99% file data default
100% TrID Acorn ArcFS Archive default
100% gt2 Kopftext: 'Archive' default (weak)
100% detectItEasy Archive: ArcFS default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 41 72 63 68 69 76 65 00 | 44 01 00 00 a4 01 00 00 |Archive.|D.......|
|00000010| 28 00 00 00 64 00 00 00 | 00 00 00 00 00 00 00 00 |(...d...|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 82 21 53 6f 66 74 43 6f | 72 6e 00 00 ff ff ff ff |.!SoftCo|rn......|
|00000070| 45 ff ff ff 02 94 0b 2e | 00 00 00 00 ff ff ff ff |E.......|........|
|00000080| 20 01 00 80 82 21 42 6f | 6f 74 00 00 00 6e 66 00 | ....!Bo|ot...nf.|
|00000090| 5d 00 00 00 42 eb ff ff | 99 ef 4e ea 03 00 65 a1 |]...B...|..N...e.|
|000000a0| 5d 00 00 00 24 00 00 00 | 82 21 72 75 6e 00 04 00 |]...$...|.!run...|
|000000b0| 00 6e 66 00 3a 00 00 00 | 41 eb ff ff 48 e0 c7 da |.nf.:...|A...H...|
|000000c0| 03 00 63 3a 3a 00 00 00 | a5 00 00 00 82 21 53 50 |..c::...|.....!SP|
|000000d0| 52 49 54 45 53 00 66 00 | e0 02 00 00 41 f9 ff ff |RITES.f.|....A...|
|000000e0| 53 48 c7 da 03 00 1b fc | e0 02 00 00 03 01 00 00 |SH......|........|
|000000f0| 82 44 75 70 00 00 04 00 | 00 6e 66 00 75 e8 00 00 |.Dup....|.nf.u...|
|00000100| 42 fb ff ff 89 a0 d8 55 | 03 00 15 6f 75 e8 00 00 |B......U|...ou...|
|00000110| 07 04 00 00 82 44 75 70 | 49 44 6d 61 70 00 66 00 |.....Dup|IDmap.f.|
|00000120| 40 1e 01 00 41 fd ff ff | 8f 10 95 99 03 00 c7 32 |@...A...|.......2|
|00000130| 40 1e 01 00 a0 ec 00 00 | 82 44 75 70 4f 52 49 47 |@.......|.DupORIG|
|00000140| 00 6e 66 00 6e e8 00 00 | 41 fb ff ff 84 5b c8 da |.nf.n...|A....[..|
|00000150| 03 00 91 58 6e e8 00 00 | 04 0b 02 00 00 00 00 00 |...Xn...|........|
|00000160| c3 00 04 00 00 6e 66 00 | 20 00 00 00 43 eb ff ff |.....nf.| ...C...|
|00000170| 88 32 85 9c 03 00 80 1b | 20 00 00 00 d8 00 00 00 |.2......| .......|
|00000180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001a0| b0 01 00 00 46 69 6c 65 | 44 61 74 61 82 21 42 6f |....File|Data.!Bo|
|000001b0| 6f 74 00 00 00 6e 66 00 | 5d 00 00 00 42 eb ff ff |ot...nf.|]...B...|
|000001c0| 99 ef 4e ea 03 00 65 a1 | 49 63 6f 6e 53 70 72 69 |..N...e.|IconSpri|
|000001d0| 74 65 73 20 3c 4f 62 65 | 79 24 44 69 72 3e 2e 21 |tes <Obe|y$Dir>.!|
|000001e0| 53 70 72 69 74 65 73 0a | 7c 20 54 68 69 73 20 66 |Sprites.|| This f|
|000001f0| 69 6c 65 20 68 61 73 20 | 62 65 65 6e 20 69 6e 6e |ile has |been inn|
|00000200| 6f 63 75 6c 61 74 65 64 | 20 61 67 61 69 6e 73 74 |oculated| against|
|00000210| 20 74 68 65 20 45 78 74 | 65 6e 64 20 56 69 72 75 | the Ext|end Viru|
|00000220| 73 0a 7c 7c ff 46 69 6c | 65 44 61 74 61 82 21 72 |s.||.Fil|eData.!r|
|00000230| 75 6e 00 04 00 00 6e 66 | 00 3a 00 00 00 41 eb ff |un....nf|.:...A..|
|00000240| ff 48 e0 c7 da 03 00 63 | 3a 49 43 4f 4e 53 50 52 |.H.....c|:ICONSPR|
|00000250| 49 54 45 53 20 3c 4f 62 | 65 79 24 44 69 72 3e 2e |ITES <Ob|ey$Dir>.|
|00000260| 21 53 70 72 69 74 65 73 | 0a 52 55 4e 20 3c 4f 62 |!Sprites|.RUN <Ob|
|00000270| 65 79 24 44 69 72 3e 2e | 44 55 50 0a 0a 0a 0a 0a |ey$Dir>.|DUP.....|
|00000280| 0a 0a 0a 46 69 6c 65 44 | 61 74 61 82 21 53 50 52 |...FileD|ata.!SPR|
|00000290| 49 54 45 53 00 66 00 e0 | 02 00 00 41 f9 ff ff 53 |ITES.f..|...A...S|
|000002a0| 48 c7 da 03 00 1b fc 01 | 00 00 00 10 00 00 00 e4 |H.......|........|
|000002b0| 02 00 00 d4 02 00 00 21 | 73 6f 66 74 63 6f 72 6e |.......!|softcorn|
|000002c0| 00 00 00 04 00 00 00 10 | 00 00 00 00 00 00 00 07 |........|........|
|000002d0| 00 00 00 2c 00 00 00 80 | 01 00 00 0c 00 00 00 88 |...,....|........|
|000002e0| 28 22 22 82 88 82 88 88 | 88 88 88 88 88 88 88 88 |("".....|........|
|000002f0| 00 00 00 88 28 22 22 82 | 88 82 88 88 bb bb bb bb |....("".|........|
|00000300| bb bb bb 88 00 00 00 88 | 28 22 22 22 22 82 88 88 |........|(""""...|
|00000310| bb bb bb bb 8b 88 b8 88 | 00 00 00 88 88 88 88 88 |........|........|
|00000320| 88 88 88 88 b8 bb bb bb | 8b 88 b8 8b 00 00 00 88 |........|........|
|00000330| 00 00 00 00 00 00 88 88 | 88 88 88 bb bb 8b b8 bb |........|........|
|00000340| 00 00 00 88 00 33 15 53 | 31 00 88 88 88 88 88 b8 |.....3.S|1.......|
|00000350| bb 88 b8 8b 00 00 00 88 | 00 00 00 00 00 00 88 88 |........|........|
|00000360| 88 88 88 88 8b 88 b8 8b | 00 00 00 88 00 00 00 00 |........|........|
|00000370| 00 00 88 88 88 88 88 88 | 88 88 88 88 00 00 00 88 |........|........|
|00000380| bb bb bb bb bb bb 88 88 | 88 28 22 22 82 88 82 88 |........|.(""....|
|00000390| 00 00 00 88 bb bb bb bb | bb bb bb 88 88 28 22 22 |........|.....(""|
|000003a0| 82 88 82 88 00 00 00 b8 | bb bb b9 bb 88 88 8b 80 |........|........|
|000003b0| 88 28 22 22 22 22 82 88 | 00 00 00 73 77 73 73 77 |.(""""..|...swssw|
|000003c0| b3 87 87 80 88 88 88 88 | 88 88 88 88 00 00 00 77 |........|.......w|
|000003d0| 88 87 97 77 b7 87 87 80 | 88 00 00 00 00 00 00 88 |...w....|........|
|000003e0| 00 00 00 77 77 87 97 77 | 93 73 83 80 88 00 33 15 |...ww..w|.s....3.|
|000003f0| 53 31 00 88 00 00 00 77 | 77 77 87 77 88 78 88 80 |S1.....w|ww.w.x..|
|00000400| 88 00 00 00 00 00 00 88 | 00 00 00 73 77 73 73 87 |........|...swss.|
|00000410| 88 78 08 80 88 00 00 00 | 00 00 00 88 00 00 00 00 |.x......|........|
|00000420| 00 00 00 00 00 00 88 80 | 88 99 99 99 99 99 99 88 |........|........|
|00000430| 00 00 00 ff ff ff ff ff | ff ff ff 00 00 00 00 00 |........|........|
|00000440| 00 00 00 00 ff ff ff ff | ff ff ff ff ff ff ff 00 |........|........|
|00000450| 00 00 00 00 00 00 00 00 | ff ff ff ff ff ff ff ff |........|........|
|00000460| ff ff ff 00 f0 ff ff ff | 0f 00 00 00 ff ff ff ff |........|........|
|00000470| ff ff ff ff ff ff ff 00 | 00 00 00 00 0f 00 00 00 |........|........|
|00000480| ff ff ff ff ff ff ff ff | ff ff ff 00 00 00 00 ff |........|........|
|00000490| ff 0f 00 00 ff ff ff ff | ff ff ff ff ff ff ff 00 |........|........|
|000004a0| 00 00 00 f0 ff 00 00 00 | ff ff ff ff ff ff ff ff |........|........|
|000004b0| ff ff ff 00 00 00 00 00 | 0f 00 00 00 ff ff ff ff |........|........|
|000004c0| ff ff ff ff ff ff ff 00 | 00 00 00 00 00 00 00 00 |........|........|
|000004d0| ff ff ff ff ff ff ff ff | ff ff ff 00 ff ff ff ff |........|........|
|000004e0| ff ff ff ff ff ff ff 00 | 00 00 00 00 00 00 00 00 |........|........|
|000004f0| ff ff ff ff ff ff ff ff | ff ff ff 00 00 00 00 00 |........|........|
|00000500| 00 00 00 00 ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00000510| 0f ff 0f ff 0f 0f 0f 00 | ff ff ff ff ff ff ff ff |........|........|
|00000520| ff ff ff 0f 00 0f 0f 0f | 0f 0f 0f 00 ff ff ff ff |........|........|
|00000530| ff ff ff ff ff ff ff 0f | 00 0f 0f ff 0f ff 0f 00 |........|........|
|00000540| ff ff ff ff ff ff ff ff | ff ff ff 0f 00 0f 0f 0f |........|........|
|00000550| 00 f0 00 00 ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00000560| 0f ff 0f 0f 00 f0 00 00 | ff ff ff ff ff ff ff ff |........|........|
|00000570| ff ff ff 00 00 00 00 00 | 00 00 00 00 ff ff ff ff |........|........|
|00000580| ff ff ff ff ff ff ff 46 | 69 6c 65 44 61 74 61 82 |.......F|ileData.|
|00000590| 44 75 70 00 00 04 00 00 | 6e 66 00 75 e8 00 00 42 |Dup.....|nf.u...B|
|000005a0| fb ff ff 89 a0 d8 55 03 | 00 15 6f 0d 00 0a 12 f4 |......U.|..o.....|
|000005b0| 20 3e 53 43 53 49 3a 3a | 34 2e 44 75 70 0d 00 14 | >SCSI::|4.Dup...|
|000005c0| 04 0d 00 1e 33 2a 7c 2a | 2a 2a 2a 2a 2a 2a 2a 2a |....3*|*|********|
|000005d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000005e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000005f0| 2a 2a 2a 2a 0d 00 28 33 | 2a 7c 2a 20 20 20 20 20 |****..(3|*|* |
|00000600| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000610| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000620| 20 20 20 20 20 2a 2a 0d | 00 32 33 2a 7c 2a 20 20 | **.|.23*|* |
|00000630| 44 55 50 2c 20 74 68 65 | 20 64 69 73 63 20 64 75 |DUP, the| disc du|
|00000640| 70 6c 69 63 61 74 6f 72 | 20 20 28 63 29 20 53 6f |plicator| (c) So|
|00000650| 66 74 63 6f 72 6e 20 20 | 2a 2a 0d 00 3c 33 2a 7c |ftcorn |**..<3*||
|00000660| 2a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |* | |
|00000670| 20 20 2d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | - | |
|00000680| 20 20 20 20 20 20 20 20 | 20 20 20 2a 2a 0d 00 46 | | **..F|
|00000690| 33 2a 7c 2a 20 20 50 75 | 62 6c 69 63 20 44 6f 6d |3*|* Pu|blic Dom|
|000006a0| 61 69 6e 20 73 6f 66 74 | 77 61 72 65 2c 20 62 75 |ain soft|ware, bu|
|000006b0| 74 20 6e 6f 74 20 66 6f | 72 20 75 73 65 20 2a 2a |t not fo|r use **|
|000006c0| 0d 00 50 33 2a 7c 2a 20 | 20 20 6f 72 20 73 61 6c |..P3*|* | or sal|
|000006d0| 65 20 72 65 6c 61 74 65 | 64 20 74 6f 20 70 72 6f |e relate|d to pro|
|000006e0| 66 69 74 2e 20 20 20 20 | 20 20 20 20 20 20 20 20 |fit. | |
|000006f0| 20 2a 2a 0d 00 5a 33 2a | 7c 2a 20 20 20 20 20 20 | **..Z3*||* |
|00000700| 20 20 20 20 20 20 20 20 | 20 20 20 2d 20 20 20 20 | | - |
|00000710| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000720| 20 20 20 20 2a 2a 0d 00 | 64 33 2a 7c 2a 20 20 43 | **..|d3*|* C|
|00000730| 6f 70 69 65 73 20 64 6f | 75 62 6c 65 20 6f 72 20 |opies do|uble or |
|00000740| 73 69 6e 67 6c 65 20 64 | 65 6e 73 69 74 79 20 64 |single d|ensity d|
|00000750| 69 73 63 73 20 20 20 2a | 2a 0d 00 6e 33 2a 7c 2a |iscs *|*..n3*|*|
|00000760| 20 20 6f 66 20 27 61 6e | 79 27 20 66 6f 72 6d 61 | of 'an|y' forma|
|00000770| 74 20 28 65 67 20 41 44 | 46 53 20 4c 2f 44 2f 45 |t (eg AD|FS L/D/E|
|00000780| 2c 20 44 46 53 2c 20 20 | 20 20 2a 2a 0d 00 78 33 |, DFS, | **..x3|
|00000790| 2a 7c 2a 20 20 4d 53 44 | 4f 53 2c 20 41 54 41 52 |*|* MSD|OS, ATAR|
|000007a0| 49 20 53 54 2c 20 41 4d | 49 47 41 20 65 74 63 2c |I ST, AM|IGA etc,|
|000007b0| 20 61 6e 64 20 61 20 77 | 69 64 65 20 20 2a 2a 0d | and a w|ide **.|
|000007c0| 00 82 33 2a 7c 2a 20 20 | 76 61 72 69 65 74 79 20 |..3*|* |variety |
|000007d0| 6f 66 20 70 72 6f 74 65 | 63 74 65 64 20 64 69 73 |of prote|cted dis|
|000007e0| 63 73 29 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |cs) | |
|000007f0| 2a 2a 0d 00 8c 33 2a 7c | 2a 20 20 20 20 20 20 20 |**...3*||* |
|00000800| 20 20 20 20 20 20 20 20 | 20 20 2d 20 20 20 20 20 | | - |
|00000810| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000820| 20 20 20 2a 2a 0d 00 96 | 33 2a 7c 2a 20 20 4e 6f | **...|3*|* No|
|00000830| 74 20 74 65 73 74 65 64 | 20 77 69 74 68 20 52 49 |t tested| with RI|
|00000840| 53 43 4f 53 20 79 65 74 | 2e 20 20 50 72 6f 67 72 |SCOS yet|. Progr|
|00000850| 61 6d 20 20 20 20 2a 2a | 0d 00 a0 33 2a 7c 2a 20 |am **|...3*|* |
|00000860| 20 6f 6e 6c 79 20 75 73 | 65 73 20 6c 65 67 61 6c | only us|es legal|
|00000870| 20 4f 53 20 63 61 6c 6c | 73 2c 20 73 6f 20 69 74 | OS call|s, so it|
|00000880| 20 73 68 6f 75 6c 64 20 | 20 2a 2a 0d 00 aa 33 2a | should | **...3*|
|00000890| 7c 2a 20 20 77 6f 72 6b | 2c 20 41 63 6f 72 6e 20 ||* work|, Acorn |
|000008a0| 70 65 72 6d 69 74 74 69 | 6e 67 21 20 20 20 20 20 |permitti|ng! |
|000008b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 2a 2a 0d 00 | | **..|
|000008c0| b4 33 2a 7c 2a 20 20 20 | 20 20 20 20 20 20 20 20 |.3*|* | |
|000008d0| 20 20 20 20 20 20 2d 20 | 20 20 20 20 20 20 20 20 | - | |
|000008e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|000008f0| 2a 0d 00 be 33 2a 7c 2a | 20 20 42 41 53 49 43 20 |*...3*|*| BASIC |
|00000900| 2b 20 6d 61 63 68 69 6e | 65 20 63 6f 64 65 20 2b |+ machin|e code +|
|00000910| 20 64 61 74 61 20 66 69 | 6c 65 20 20 20 20 20 20 | data fi|le |
|00000920| 20 20 2a 2a 0d 00 c8 33 | 2a 7c 2a 20 20 20 20 20 | **...3|*|* |
|00000930| 20 20 28 45 64 69 74 20 | 61 74 20 79 6f 75 72 20 | (Edit |at your |
|00000940| 70 65 72 69 6c 29 20 20 | 20 20 20 20 20 20 20 20 |peril) | |
|00000950| 20 20 20 20 20 2a 2a 0d | 00 d2 33 2a 7c 2a 20 20 | **.|..3*|* |
|00000960| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000970| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000980| 20 20 20 20 20 20 20 20 | 2a 2a 0d 00 dc 33 2a 7c | |**...3*||
|00000990| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000009a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000009b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 0d 00 e6 |********|*****...|
|000009c0| 04 0d 00 f0 10 76 65 72 | 73 24 3d 22 31 2e 30 30 |.....ver|s$="1.00|
|000009d0| 22 0d 00 fa 04 0d 01 04 | 09 f2 6c 6f 67 6f 0d 01 |".......|..logo..|
|000009e0| 0e 09 f2 69 6e 69 74 0d | 01 18 04 0d 01 22 0b 64 |...init.|.....".d|
|000009f0| 65 62 75 67 3d a3 0d 01 | 2c 04 0d 01 36 4a f4 20 |ebug=...|,...6J. |
|00000a00| 73 65 74 2c 74 6f 20 63 | 68 65 63 6b 20 61 6c 6c |set,to c|heck all|
|00000a10| 20 74 72 61 63 6b 73 20 | 68 61 76 65 20 61 20 66 | tracks |have a f|
|00000a20| 69 78 65 64 20 6e 75 6d | 62 65 72 20 6f 66 20 67 |ixed num|ber of g|
|00000a30| 6f 6f 64 20 63 6f 6e 74 | 69 67 75 6f 75 73 20 73 |ood cont|iguous s|
|00000a40| 65 63 74 73 0d 01 40 11 | 63 68 65 63 6b 46 6f 72 |ects..@.|checkFor|
|00000a50| 6d 61 74 3d a3 0d 01 4a | 19 63 68 6b 44 65 6e 73 |mat=...J|.chkDens|
|00000a60| 69 74 79 25 3d 44 44 65 | 6e 73 69 74 79 25 0d 01 |ity%=DDe|nsity%..|
|00000a70| 54 14 63 68 6b 53 65 63 | 74 73 50 65 72 54 72 6b |T.chkSec|tsPerTrk|
|00000a80| 3d 39 0d 01 5e 13 e7 20 | 63 68 65 63 6b 46 6f 72 |=9..^.. |checkFor|
|00000a90| 6d 61 74 20 8c 0d 01 68 | 41 20 20 f1 22 2a 2a 2a |mat ...h|A ."***|
|00000aa0| 2a 20 43 68 65 63 6b 69 | 6e 67 20 53 65 63 74 6f |* Checki|ng Secto|
|00000ab0| 72 73 20 70 65 72 20 54 | 72 61 63 6b 20 3d 22 3b |rs per T|rack =";|
|00000ac0| 63 68 6b 53 65 63 74 73 | 50 65 72 54 72 6b 3b 22 |chkSects|PerTrk;"|
|00000ad0| 20 2a 2a 2a 2a 22 0d 01 | 72 05 cd 0d 01 7c 04 0d | ****"..|r....|..|
|00000ae0| 01 86 05 f5 0d 01 90 47 | 20 20 f2 6d 65 6e 75 28 |.......G| .menu(|
|00000af0| 63 6f 70 79 64 69 73 63 | 2c 73 6f 75 72 63 65 2c |copydisc|,source,|
|00000b00| 64 65 73 74 2c 73 72 74 | 74 72 61 63 6b 2c 65 6e |dest,srt|track,en|
|00000b10| 64 74 72 61 63 6b 2c 66 | 69 72 73 74 48 65 61 64 |dtrack,f|irstHead|
|00000b20| 2c 6e 75 6d 62 48 65 61 | 64 73 29 0d 01 9a 20 20 |,numbHea|ds)... |
|00000b30| 20 61 6e 61 6c 79 73 65 | 3d 64 65 62 75 67 20 84 | analyse|=debug .|
|00000b40| 20 ac 20 63 6f 70 79 64 | 69 73 63 0d 01 a4 40 20 | . copyd|isc...@ |
|00000b50| 20 f2 61 63 74 69 6f 6e | 28 73 6f 75 72 63 65 2c | .action|(source,|
|00000b60| 64 65 73 74 2c 73 72 74 | 74 72 61 63 6b 2c 65 6e |dest,srt|track,en|
|00000b70| 64 74 72 61 63 6b 2c 66 | 69 72 73 74 48 65 61 64 |dtrack,f|irstHead|
|00000b80| 2c 6e 75 6d 62 48 65 61 | 64 73 29 0d 01 ae 49 20 |,numbHea|ds)...I |
|00000b90| 20 f1 27 22 20 20 20 20 | 20 43 6f 6d 70 6c 65 74 | .'" | Complet|
|00000ba0| 65 64 3a 2d 20 20 20 50 | 72 65 73 73 20 53 50 41 |ed:- P|ress SPA|
|00000bb0| 43 45 20 74 6f 20 43 6f | 6e 74 69 6e 75 65 20 28 |CE to Co|ntinue (|
|00000bc0| 6f 72 20 65 73 63 61 70 | 65 20 74 6f 20 65 78 69 |or escap|e to exi|
|00000bd0| 74 29 22 3b 0d 01 b8 11 | 20 20 f2 70 72 65 73 73 |t)";....| .press|
|00000be0| 73 70 61 63 65 0d 01 c2 | 07 fd 20 a3 0d 01 cc 05 |space...|.. .....|
|00000bf0| e0 0d 01 d6 04 0d 01 e0 | 04 0d 01 ea 3f dd f2 61 |........|....?..a|
|00000c00| 63 74 69 6f 6e 28 73 6f | 75 72 63 65 2c 64 65 73 |ction(so|urce,des|
|00000c10| 74 2c 73 72 74 74 72 61 | 63 6b 2c 65 6e 64 74 72 |t,srttra|ck,endtr|
|00000c20| 61 63 6b 2c 66 69 72 73 | 74 48 65 61 64 2c 6e 75 |ack,firs|tHead,nu|
|00000c30| 6d 62 48 65 61 64 73 29 | 0d 01 f4 0c 62 6c 61 6e |mbHeads)|....blan|
|00000c40| 6b 25 3d a3 0d 01 fe 19 | 73 72 74 44 65 6e 73 69 |k%=.....|srtDensi|
|00000c50| 74 79 25 3d 44 44 65 6e | 73 69 74 79 25 0d 02 08 |ty%=DDen|sity%...|
|00000c60| 27 4d 61 78 44 69 73 63 | 54 72 6b 73 25 20 3d a8 |'MaxDisc|Trks% =.|
|00000c70| 28 4d 61 78 54 72 6b 73 | 25 2f 6e 75 6d 62 48 65 |(MaxTrks|%/numbHe|
|00000c80| 61 64 73 29 0d 02 12 16 | 66 69 72 73 74 54 72 6b |ads)....|firstTrk|
|00000c90| 25 3d 73 72 74 74 72 61 | 63 6b 0d 02 1c 21 54 72 |%=srttra|ck...!Tr|
|00000ca0| 6b 73 4c 65 66 74 25 3d | 31 2b 65 6e 64 74 72 61 |ksLeft%=|1+endtra|
|00000cb0| 63 6b 2d 73 72 74 74 72 | 61 63 6b 0d 02 26 14 c8 |ck-srttr|ack..&..|
|00000cc0| 95 20 54 72 6b 73 4c 65 | 66 74 25 20 3e 20 30 0d |. TrksLe|ft% > 0.|
|00000cd0| 02 30 22 20 20 e7 20 54 | 72 6b 73 4c 65 66 74 25 |.0" . T|rksLeft%|
|00000ce0| 20 3e 20 4d 61 78 44 69 | 73 63 54 72 6b 73 25 20 | > MaxDi|scTrks% |
|00000cf0| 8c 0d 02 3a 1e 20 20 20 | 20 6e 75 6d 62 54 72 6b |...:. | numbTrk|
|00000d00| 73 25 3d 4d 61 78 44 69 | 73 63 54 72 6b 73 25 0d |s%=MaxDi|scTrks%.|
|00000d10| 02 44 07 20 20 cc 0d 02 | 4e 1b 20 20 20 20 6e 75 |.D. ...|N. nu|
|00000d20| 6d 62 54 72 6b 73 25 3d | 54 72 6b 73 4c 65 66 74 |mbTrks%=|TrksLeft|
|00000d30| 25 0d 02 58 07 20 20 cd | 0d 02 62 55 20 20 f2 63 |%..X. .|..bU .c|
|00000d40| 6f 70 79 4d 75 6c 74 69 | 54 72 6b 73 28 73 6f 75 |opyMulti|Trks(sou|
|00000d50| 72 63 65 2c 64 65 73 74 | 2c 66 69 72 73 74 54 72 |rce,dest|,firstTr|
|00000d60| 6b 25 2c 6e 75 6d 62 54 | 72 6b 73 25 2c 66 69 72 |k%,numbT|rks%,fir|
|00000d70| 73 74 48 65 61 64 2c 6e | 75 6d 62 48 65 61 64 73 |stHead,n|umbHeads|
|00000d80| 2c 73 72 74 44 65 6e 73 | 69 74 79 25 29 0d 02 6c |,srtDens|ity%)..l|
|00000d90| 1b 20 20 66 69 72 73 74 | 54 72 6b 25 20 2b 3d 6e |. first|Trk% +=n|
|00000da0| 75 6d 62 54 72 6b 73 25 | 0d 02 76 1b 20 20 54 72 |umbTrks%|..v. Tr|
|00000db0| 6b 73 4c 65 66 74 25 20 | 2d 3d 6e 75 6d 62 54 72 |ksLeft% |-=numbTr|
|00000dc0| 6b 73 25 0d 02 80 05 ce | 0d 02 8a 05 e1 0d 02 94 |ks%.....|........|
|00000dd0| 04 0d 02 9e 57 dd f2 63 | 6f 70 79 4d 75 6c 74 69 |....W..c|opyMulti|
|00000de0| 54 72 6b 73 28 73 6f 75 | 72 63 65 2c 64 65 73 74 |Trks(sou|rce,dest|
|00000df0| 2c 66 69 72 73 74 54 72 | 6b 25 2c 6e 75 6d 62 54 |,firstTr|k%,numbT|
|00000e00| 72 6b 73 25 2c 66 69 72 | 73 74 48 65 61 64 2c 6e |rks%,fir|stHead,n|
|00000e10| 75 6d 62 48 65 61 64 73 | 2c 20 f8 20 73 72 74 44 |umbHeads|, . srtD|
|00000e20| 65 6e 73 69 74 79 25 29 | 0d 02 a8 08 ea 20 54 25 |ensity%)|..... T%|
|00000e30| 0d 02 b2 1a f2 63 68 65 | 63 6b 44 69 73 63 49 6e |.....che|ckDiscIn|
|00000e40| 28 22 53 4f 55 52 43 45 | 22 29 0d 02 bc 3b e7 20 |("SOURCE|")...;. |
|00000e50| 28 66 69 72 73 74 54 72 | 6b 25 20 3d 20 73 72 74 |(firstTr|k% = srt|
|00000e60| 74 72 61 63 6b 29 20 84 | 20 28 28 73 6f 75 72 63 |track) .| ((sourc|
|00000e70| 65 3d 64 65 73 74 29 20 | 80 20 63 6f 70 79 64 69 |e=dest) |. copydi|
|00000e80| 73 63 29 20 8c 0d 02 c6 | 19 20 20 f2 65 6e 67 61 |sc) ....|. .enga|
|00000e90| 67 65 44 69 73 63 28 73 | 6f 75 72 63 65 29 0d 02 |geDisc(s|ource)..|
|00000ea0| d0 05 cd 0d 02 da 58 f2 | 64 6f 4d 75 6c 74 69 54 |......X.|doMultiT|
|00000eb0| 72 6b 73 28 52 65 61 64 | 25 2c 20 73 6f 75 72 63 |rks(Read|%, sourc|
|00000ec0| 65 2c 20 66 69 72 73 74 | 54 72 6b 25 2c 20 6e 75 |e, first|Trk%, nu|
|00000ed0| 6d 62 54 72 6b 73 25 2c | 20 66 69 72 73 74 48 65 |mbTrks%,| firstHe|
|00000ee0| 61 64 2c 20 6e 75 6d 62 | 48 65 61 64 73 2c 20 73 |ad, numb|Heads, s|
|00000ef0| 72 74 44 65 6e 73 69 74 | 79 25 29 0d 02 e4 10 e7 |rtDensit|y%).....|
|00000f00| 20 63 6f 70 79 64 69 73 | 63 20 8c 0d 02 ee 21 20 | copydis|c ....! |
|00000f10| 20 f2 63 68 65 63 6b 44 | 69 73 63 49 6e 28 22 44 | .checkD|iscIn("D|
|00000f20| 45 53 54 49 4e 41 54 49 | 4f 4e 22 29 0d 02 f8 30 |ESTINATI|ON")...0|
|00000f30| 20 20 e7 20 28 66 69 72 | 73 74 54 72 6b 25 20 3d | . (fir|stTrk% =|
|00000f40| 20 73 72 74 74 72 61 63 | 6b 29 20 84 20 28 73 6f | srttrac|k) . (so|
|00000f50| 75 72 63 65 3d 64 65 73 | 74 29 20 8c 0d 03 02 19 |urce=des|t) .....|
|00000f60| 20 20 20 20 f2 65 6e 67 | 61 67 65 44 69 73 63 28 | .eng|ageDisc(|
|00000f70| 64 65 73 74 29 0d 03 0c | 07 20 20 cd 0d 03 16 58 |dest)...|. ....X|
|00000f80| 20 20 f2 64 6f 4d 75 6c | 74 69 54 72 6b 73 28 57 | .doMul|tiTrks(W|
|00000f90| 72 69 74 65 25 2c 20 64 | 65 73 74 2c 20 66 69 72 |rite%, d|est, fir|
|00000fa0| 73 74 54 72 6b 25 2c 20 | 6e 75 6d 62 54 72 6b 73 |stTrk%, |numbTrks|
|00000fb0| 25 2c 20 66 69 72 73 74 | 48 65 61 64 2c 6e 75 6d |%, first|Head,num|
|00000fc0| 62 48 65 61 64 73 2c 20 | 73 72 74 44 65 6e 73 69 |bHeads, |srtDensi|
|00000fd0| 74 79 25 29 0d 03 20 05 | cd 0d 03 2a 05 e1 0d 03 |ty%).. .|...*....|
|00000fe0| 34 04 0d 03 3e 57 dd f2 | 64 6f 4d 75 6c 74 69 54 |4...>W..|doMultiT|
|00000ff0| 72 6b 73 28 63 6d 64 25 | 2c 20 64 72 76 2c 20 66 |rks(cmd%|, drv, f|
|00001000| 69 72 73 74 54 72 6b 25 | 2c 20 6e 75 6d 62 54 72 |irstTrk%|, numbTr|
|00001010| 6b 73 25 2c 20 66 69 72 | 73 74 48 65 61 64 2c 20 |ks%, fir|stHead, |
|00001020| 6e 75 6d 62 48 65 61 64 | 73 2c 20 f8 20 73 72 74 |numbHead|s, . srt|
|00001030| 44 65 6e 73 69 74 79 25 | 29 0d 03 48 19 ea 20 54 |Density%|)..H.. T|
|00001040| 72 6b 44 65 73 63 25 2c | 20 74 72 6b 2c 20 68 65 |rkDesc%,| trk, he|
|00001050| 61 64 0d 03 52 18 54 72 | 6b 44 65 73 63 25 3d 4d |ad..R.Tr|kDesc%=M|
|00001060| 61 69 6e 42 75 66 66 65 | 72 25 0d 03 5c 30 e3 20 |ainBuffe|r%..\0. |
|00001070| 74 72 6b 3d 66 69 72 73 | 74 54 72 6b 25 20 b8 20 |trk=firs|tTrk% . |
|00001080| 28 66 69 72 73 74 54 72 | 6b 25 20 2b 20 6e 75 6d |(firstTr|k% + num|
|00001090| 62 54 72 6b 73 25 20 2d | 31 29 0d 03 66 33 20 20 |bTrks% -|1)..f3 |
|000010a0| e3 20 68 65 61 64 3d 66 | 69 72 73 74 48 65 61 64 |. head=f|irstHead|
|000010b0| 20 b8 20 28 66 69 72 73 | 74 48 65 61 64 20 2b 20 | . (firs|tHead + |
|000010c0| 6e 75 6d 62 48 65 61 64 | 73 20 2d 31 29 0d 03 70 |numbHead|s -1)..p|
|000010d0| 0f 20 20 20 20 f1 8a 30 | 2c bc 29 3b 0d 03 7a 2e |. ..0|,.);..z.|
|000010e0| 20 20 20 20 e7 20 63 6d | 64 25 3d 52 65 61 64 25 | . cm|d%=Read%|
|000010f0| 20 8c 20 f1 20 22 52 65 | 61 64 20 22 3b 20 8b 20 | . . "Re|ad "; . |
|00001100| f1 20 22 57 72 69 74 65 | 22 3b 0d 03 84 41 20 20 |. "Write|";...A |
|00001110| 20 20 f1 3b 22 3a 20 44 | 72 76 3d 22 3b 64 72 76 | .;": D|rv=";drv|
|00001120| 3b 22 20 54 72 6b 3d 22 | 3b 74 72 6b 3b 22 20 20 |;" Trk="|;trk;" |
|00001130| 20 22 3b 8a 32 31 2c bc | 29 3b 22 48 64 3d 22 3b | ";.21,.|);"Hd=";|
|00001140| 68 65 61 64 3b 22 20 20 | 20 22 3b 0d 03 8e 13 20 |head;" | ";.... |
|00001150| 20 20 20 e7 20 64 65 62 | 75 67 20 8c 20 f1 0d 03 | . deb|ug . ...|
|00001160| 98 16 20 20 20 20 e7 20 | 63 6d 64 25 3d 52 65 61 |.. . |cmd%=Rea|
|00001170| 64 25 20 8c 0d 03 a2 3f | 20 20 20 20 20 20 f2 72 |d% ....?| .r|
|00001180| 65 61 64 53 69 6e 67 6c | 65 54 72 6b 28 64 72 76 |eadSingl|eTrk(drv|
|00001190| 2c 20 74 72 6b 2c 20 68 | 65 61 64 2c 20 54 72 6b |, trk, h|ead, Trk|
|000011a0| 44 65 73 63 25 2c 20 73 | 72 74 44 65 6e 73 69 74 |Desc%, s|rtDensit|
|000011b0| 79 25 29 0d 03 ac 09 20 | 20 20 20 cc 0d 03 b6 33 |y%).... | ....3|
|000011c0| 20 20 20 20 20 20 f2 77 | 72 69 74 65 53 69 6e 67 | .w|riteSing|
|000011d0| 6c 65 54 72 6b 28 64 72 | 76 2c 20 74 72 6b 2c 20 |leTrk(dr|v, trk, |
|000011e0| 68 65 61 64 2c 20 54 72 | 6b 44 65 73 63 25 29 0d |head, Tr|kDesc%).|
|000011f0| 03 c0 09 20 20 20 20 cd | 0d 03 ca 2f 20 20 20 20 |... .|.../ |
|00001200| 54 72 6b 44 65 73 63 25 | 20 2b 3d 20 54 72 6b 44 |TrkDesc%| += TrkD|
|00001210| 65 73 63 53 69 7a 65 25 | 20 2b 20 54 72 6b 44 61 |escSize%| + TrkDa|
|00001220| 74 61 53 69 7a 65 25 0d | 03 d4 07 20 20 ed 0d 03 |taSize%.|... ...|
|00001230| de 05 ed 0d 03 e8 05 e1 | 0d 03 f2 04 0d 03 fc 31 |........|.......1|
|00001240| dd f2 77 72 69 74 65 53 | 69 6e 67 6c 65 54 72 6b |..writeS|ingleTrk|
|00001250| 28 64 72 76 25 2c 20 74 | 72 6b 25 2c 20 68 65 61 |(drv%, t|rk%, hea|
|00001260| 64 25 2c 20 54 72 6b 44 | 65 73 63 25 29 0d 04 06 |d%, TrkD|esc%)...|
|00001270| 3a ea 20 63 6f 75 6e 74 | 25 2c 20 64 65 6e 73 69 |:. count|%, densi|
|00001280| 74 79 25 2c 20 44 61 74 | 61 42 75 66 25 2c 20 6d |ty%, Dat|aBuf%, m|
|00001290| 75 6c 74 69 53 65 63 74 | 46 6c 67 25 2c 20 73 65 |ultiSect|Flg%, se|
|000012a0| 63 74 49 6e 66 6f 25 0d | 04 10 44 ea 20 6c 6f 77 |ctInfo%.|..D. low|
|000012b0| 53 65 63 74 25 2c 20 73 | 65 63 74 53 69 7a 65 25 |Sect%, s|ectSize%|
|000012c0| 2c 20 73 65 63 74 25 2c | 20 73 65 63 74 46 6f 75 |, sect%,| sectFou|
|000012d0| 6e 64 25 2c 20 61 64 64 | 25 2c 20 49 44 25 2c 20 |nd%, add|%, ID%, |
|000012e0| 6d 75 73 74 57 72 53 65 | 63 74 25 0d 04 1a 22 63 |mustWrSe|ct%..."c|
|000012f0| 6f 75 6e 74 25 20 3d 20 | 54 72 6b 44 65 73 63 25 |ount% = |TrkDesc%|
|00001300| 3f 62 75 66 4e 75 6d 62 | 53 65 63 74 25 0d 04 24 |?bufNumb|Sect%..$|
|00001310| 25 64 65 6e 73 69 74 79 | 25 3d 20 54 72 6b 44 65 |%density|%= TrkDe|
|00001320| 73 63 25 3f 62 75 66 54 | 72 6b 44 65 6e 73 69 74 |sc%?bufT|rkDensit|
|00001330| 79 25 0d 04 2e 26 44 61 | 74 61 42 75 66 25 20 3d |y%...&Da|taBuf% =|
|00001340| 20 54 72 6b 44 65 73 63 | 25 20 2b 20 54 72 6b 44 | TrkDesc|% + TrkD|
|00001350| 65 73 63 53 69 7a 65 25 | 0d 04 38 10 e7 20 63 6f |escSize%|..8.. co|
|00001360| 75 6e 74 25 3d 30 20 8c | 0d 04 42 34 20 20 f4 20 |unt%=0 .|..B4 . |
|00001370| 62 6c 61 6e 6b 20 74 72 | 61 63 6b 20 73 6f 20 6a |blank tr|ack so j|
|00001380| 75 73 74 20 63 6f 70 79 | 20 62 61 63 6b 20 52 65 |ust copy| back Re|
|00001390| 61 64 54 72 61 63 6b 20 | 64 61 74 61 0d 04 4c 3b |adTrack |data..L;|
|000013a0| 20 20 f2 77 72 69 74 65 | 74 72 61 63 6b 43 68 6b | .write|trackChk|
|000013b0| 28 64 72 76 25 2c 20 74 | 72 6b 25 2c 20 68 65 61 |(drv%, t|rk%, hea|
|000013c0| 64 25 2c 20 64 65 6e 73 | 69 74 79 25 2c 20 44 61 |d%, dens|ity%, Da|
|000013d0| 74 61 42 75 66 25 29 0d | 04 56 05 cc 0d 04 60 53 |taBuf%).|.V....`S|
|000013e0| 20 20 f2 6d 61 6b 65 57 | 72 69 74 65 54 72 6b 28 | .makeW|riteTrk(|
|000013f0| 54 72 6b 44 65 73 63 25 | 2c 20 63 6f 75 6e 74 25 |TrkDesc%|, count%|
|00001400| 2c 20 64 65 6e 73 69 74 | 79 25 2c 20 44 61 74 61 |, densit|y%, Data|
|00001410| 42 75 66 25 2c 20 57 72 | 69 74 65 54 72 6b 42 75 |Buf%, Wr|iteTrkBu|
|00001420| 66 25 2c 6d 75 73 74 57 | 72 73 65 63 74 25 29 0d |f%,mustW|rsect%).|
|00001430| 04 6a 3f 20 20 f2 77 72 | 69 74 65 74 72 61 63 6b |.j? .wr|itetrack|
|00001440| 43 68 6b 28 64 72 76 25 | 2c 20 74 72 6b 25 2c 20 |Chk(drv%|, trk%, |
|00001450| 68 65 61 64 25 2c 20 64 | 65 6e 73 69 74 79 25 2c |head%, d|ensity%,|
|00001460| 20 57 72 69 74 65 54 72 | 6b 42 75 66 25 29 0d 04 | WriteTr|kBuf%)..|
|00001470| 74 2e 20 20 6d 75 6c 74 | 69 53 65 63 74 46 6c 67 |t. mult|iSectFlg|
|00001480| 25 3d 20 54 72 6b 44 65 | 73 63 25 3f 62 75 66 4d |%= TrkDe|sc%?bufM|
|00001490| 75 6c 74 69 53 65 63 74 | 46 6c 67 25 0d 04 7e 25 |ultiSect|Flg%..~%|
|000014a0| 20 20 e7 20 6d 75 6c 74 | 69 53 65 63 74 46 6c 67 | . mult|iSectFlg|
|000014b0| 25 20 80 20 6d 75 73 74 | 57 72 73 65 63 74 25 20 |% . must|Wrsect% |
|000014c0| 8c 0d 04 88 38 20 20 20 | 20 f4 20 77 72 69 74 65 |....8 | . write|
|000014d0| 20 74 72 61 63 6b 20 69 | 6e 20 6f 6e 65 20 67 6f | track i|n one go|
|000014e0| 20 62 79 20 75 73 69 6e | 67 20 6d 65 6d 6f 72 79 | by usin|g memory|
|000014f0| 20 44 4d 41 20 6c 69 73 | 74 0d 04 92 41 20 20 20 | DMA lis|t...A |
|00001500| 20 f4 20 62 75 74 20 6f | 6e 6c 79 20 69 66 20 61 | . but o|nly if a|
|00001510| 20 73 65 63 74 6f 72 20 | 63 6f 75 6c 64 20 6e 6f | sector |could no|
|00001520| 74 20 62 65 20 77 72 69 | 74 74 65 6e 20 64 75 72 |t be wri|tten dur|
|00001530| 69 6e 67 20 46 6f 72 6d | 61 74 0d 04 9c 25 20 20 |ing Form|at...% |
|00001540| 20 20 6c 6f 77 53 65 63 | 74 25 3d 54 72 6b 44 65 | lowSec|t%=TrkDe|
|00001550| 73 63 25 3f 62 75 66 4c | 6f 77 53 65 63 74 25 0d |sc%?bufL|owSect%.|
|00001560| 04 a6 27 20 20 20 20 73 | 65 63 74 53 69 7a 65 25 |..' s|ectSize%|
|00001570| 3d 54 72 6b 44 65 73 63 | 25 3f 62 75 66 53 65 63 |=TrkDesc|%?bufSec|
|00001580| 74 53 69 7a 65 25 0d 04 | b0 29 20 20 20 20 f2 63 |tSize%..|.) .c|
|00001590| 6f 70 79 4d 65 6d 41 64 | 64 4c 69 73 74 28 54 72 |opyMemAd|dList(Tr|
|000015a0| 6b 44 65 73 63 25 2c 20 | 63 6f 75 6e 74 25 29 0d |kDesc%, |count%).|
|000015b0| 04 ba 62 20 20 20 20 f2 | 6f 70 73 65 63 74 6f 72 |..b .|opsector|
|000015c0| 73 28 57 72 69 74 65 25 | 20 84 20 28 31 3c 3c 35 |s(Write%| . (1<<5|
|000015d0| 29 2c 64 72 76 25 2c 74 | 72 6b 25 2c 68 65 61 64 |),drv%,t|rk%,head|
|000015e0| 25 2c 6c 6f 77 53 65 63 | 74 25 2c 63 6f 75 6e 74 |%,lowSec|t%,count|
|000015f0| 25 2c 73 65 63 74 53 69 | 7a 65 25 2c 64 65 6e 73 |%,sectSi|ze%,dens|
|00001600| 69 74 79 25 2c 6d 65 6d | 41 64 64 4c 69 73 74 25 |ity%,mem|AddList%|
|00001610| 29 0d 04 c4 18 20 20 20 | 20 e7 20 72 65 73 75 6c |).... | . resul|
|00001620| 74 25 20 3c 3e 20 30 20 | 8c 0d 04 ce 27 20 20 20 |t% <> 0 |....' |
|00001630| 20 20 20 6d 75 6c 74 69 | 53 65 63 74 46 6c 67 25 | multi|SectFlg%|
|00001640| 3d a3 20 3a f4 20 44 69 | 73 63 20 65 72 72 6f 72 |=. :. Di|sc error|
|00001650| 0d 04 d8 3a 20 20 20 20 | 20 20 f1 22 20 20 77 72 |...: | ." wr|
|00001660| 69 74 69 6e 67 3a 2d 20 | 74 72 61 63 6b 20 77 61 |iting:- |track wa|
|00001670| 73 20 6e 6f 6e 2d 73 74 | 61 6e 64 61 72 64 20 20 |s non-st|andard |
|00001680| 61 66 74 65 72 20 61 6c | 6c 22 0d 04 e2 09 20 20 |after al|l".... |
|00001690| 20 20 cd 0d 04 ec 07 20 | 20 cd 0d 04 f6 2a 20 20 | ..... | ....* |
|000016a0| e7 20 28 6d 75 6c 74 69 | 53 65 63 74 46 6c 67 25 |. (multi|SectFlg%|
|000016b0| 3d 30 29 20 80 20 6d 75 | 73 74 57 72 73 65 63 74 |=0) . mu|stWrsect|
|000016c0| 25 20 20 8c 0d 05 00 42 | 20 20 20 20 f4 20 63 61 |% ....B| . ca|
|000016d0| 74 63 68 20 61 6c 6c 20 | 6e 6f 6e 2d 73 74 61 6e |tch all |non-stan|
|000016e0| 64 61 72 64 20 74 72 61 | 63 6b 20 66 6f 72 6d 61 |dard tra|ck forma|
|000016f0| 74 73 2c 20 62 75 74 20 | 6f 6e 6c 79 20 69 66 20 |ts, but |only if |
|00001700| 61 20 67 6f 6f 64 0d 05 | 0a 34 20 20 20 20 f4 20 |a good..|.4 . |
|00001710| 20 73 65 63 74 6f 72 20 | 63 6f 75 6c 64 20 6e 6f | sector |could no|
|00001720| 74 20 62 65 20 77 72 69 | 74 74 65 6e 20 64 75 72 |t be wri|tten dur|
|00001730| 69 6e 67 20 46 6f 72 6d | 61 74 0d 05 14 27 20 20 |ing Form|at...' |
|00001740| 20 20 e7 20 28 6d 75 6c | 74 69 53 65 63 74 46 6c | . (mul|tiSectFl|
|00001750| 67 25 3d 30 29 20 80 20 | 61 6e 61 6c 79 73 65 20 |g%=0) . |analyse |
|00001760| 8c 0d 05 1e 32 20 20 20 | 20 20 20 f1 22 20 20 77 |....2 | ." w|
|00001770| 72 69 74 69 6e 67 3a 2d | 20 6e 6f 6e 2d 73 74 61 |riting:-| non-sta|
|00001780| 6e 64 61 72 64 20 74 72 | 61 63 6b 20 6c 61 79 6f |ndard tr|ack layo|
|00001790| 75 74 22 0d 05 28 09 20 | 20 20 20 cd 0d 05 32 22 |ut"..(. | ...2"|
|000017a0| 20 20 20 20 e3 20 73 65 | 63 74 46 6f 75 6e 64 25 | . se|ctFound%|
|000017b0| 3d 20 30 20 b8 20 63 6f | 75 6e 74 25 2d 31 0d 05 |= 0 . co|unt%-1..|
|000017c0| 3c 36 20 20 20 20 20 20 | 73 65 63 74 49 6e 66 6f |<6 |sectInfo|
|000017d0| 25 3d a4 67 65 74 53 65 | 63 74 49 6e 66 6f 28 54 |%=.getSe|ctInfo(T|
|000017e0| 72 6b 44 65 73 63 25 2c | 20 73 65 63 74 46 6f 75 |rkDesc%,| sectFou|
|000017f0| 6e 64 25 29 0d 05 46 2c | 20 20 20 20 20 20 e7 20 |nd%)..F,| . |
|00001800| 28 73 65 63 74 49 6e 66 | 6f 25 20 80 20 28 ac 20 |(sectInf|o% . (. |
|00001810| 6f 76 65 72 49 6e 64 65 | 78 25 29 29 3d 30 20 8c |overInde|x%))=0 .|
|00001820| 0d 05 50 45 20 20 20 20 | 20 20 20 20 f4 20 69 66 |..PE | . if|
|00001830| 20 64 61 74 61 20 61 72 | 65 61 20 77 61 73 20 72 | data ar|ea was r|
|00001840| 65 61 64 20 4f 4b 20 28 | 26 20 64 6f 6e 27 74 20 |ead OK (|& don't |
|00001850| 68 61 76 65 20 61 6e 79 | 20 69 6c 6c 65 67 61 6c |have any| illegal|
|00001860| 20 49 44 73 29 0d 05 5a | 42 20 20 20 20 20 20 20 | IDs)..Z|B |
|00001870| 20 f4 20 61 6e 64 20 69 | 74 20 77 61 73 20 6e 6f | . and i|t was no|
|00001880| 74 20 64 65 6c 65 74 65 | 64 20 64 61 74 61 2c 20 |t delete|d data, |
|00001890| 74 68 65 6e 20 70 72 6f | 76 69 64 65 64 20 64 61 |then pro|vided da|
|000018a0| 74 61 20 61 72 65 61 0d | 05 64 46 20 20 20 20 20 |ta area.|.dF |
|000018b0| 20 20 20 f4 20 20 68 61 | 73 20 6e 6f 74 20 61 6c | . ha|s not al|
|000018c0| 72 65 61 64 79 20 62 65 | 65 6e 20 63 6f 72 72 65 |ready be|en corre|
|000018d0| 63 74 6c 79 20 77 72 69 | 74 74 65 6e 20 77 69 74 |ctly wri|tten wit|
|000018e0| 68 20 77 72 69 74 65 74 | 72 61 63 6b 2c 0d 05 6e |h writet|rack,..n|
|000018f0| 2b 20 20 20 20 20 20 20 | 20 f4 20 77 72 69 74 65 |+ | . write|
|00001900| 20 74 68 65 20 73 65 63 | 74 6f 72 20 69 6e 64 69 | the sec|tor indi|
|00001910| 76 69 64 75 61 6c 6c 79 | 0d 05 78 32 20 20 20 20 |vidually|..x2 |
|00001920| 20 20 20 20 61 64 64 25 | 3d a4 67 65 74 44 61 74 | add%|=.getDat|
|00001930| 61 50 74 72 28 54 72 6b | 44 65 73 63 25 2c 20 73 |aPtr(Trk|Desc%, s|
|00001940| 65 63 74 46 6f 75 6e 64 | 25 29 0d 05 82 30 20 20 |ectFound|%)...0 |
|00001950| 20 20 20 20 20 20 49 44 | 25 3d a4 67 65 74 53 65 | ID|%=.getSe|
|00001960| 63 74 49 44 28 54 72 6b | 44 65 73 63 25 2c 20 73 |ctID(Trk|Desc%, s|
|00001970| 65 63 74 46 6f 75 6e 64 | 25 29 0d 05 8c 23 20 20 |ectFound|%)...# |
|00001980| 20 20 20 20 20 20 73 65 | 63 74 25 3d 26 46 46 20 | se|ct%=&FF |
|00001990| 80 20 28 49 44 25 20 3e | 3e 20 31 36 29 0d 05 96 |. (ID% >|> 16)...|
|000019a0| 25 20 20 20 20 20 20 20 | 20 73 65 63 74 53 69 7a |% | sectSiz|
|000019b0| 65 25 3d 33 20 80 20 28 | 49 44 25 20 3e 3e 20 32 |e%=3 . (|ID% >> 2|
|000019c0| 34 29 0d 05 a0 4a 20 20 | 20 20 20 20 20 20 f2 77 |4)...J | .w|
|000019d0| 72 69 74 65 73 65 63 74 | 6f 72 73 28 64 72 76 25 |ritesect|ors(drv%|
|000019e0| 2c 74 72 6b 25 2c 68 65 | 61 64 25 2c 73 65 63 74 |,trk%,he|ad%,sect|
|000019f0| 25 2c 31 2c 73 65 63 74 | 53 69 7a 65 25 2c 64 65 |%,1,sect|Size%,de|
|00001a00| 6e 73 69 74 79 25 2c 61 | 64 64 25 29 0d 05 aa 0b |nsity%,a|dd%)....|
|00001a10| 20 20 20 20 20 20 cd 0d | 05 b4 09 20 20 20 20 ed | ..|... .|
|00001a20| 0d 05 be 07 20 20 cd 0d | 05 c8 05 cd 0d 05 d2 05 |.... ..|........|
|00001a30| e1 0d 05 dc 04 0d 05 e6 | 48 20 20 f4 20 6d 61 6b |........|H . mak|
|00001a40| 65 20 57 72 69 74 65 20 | 54 72 61 63 6b 20 64 61 |e Write |Track da|
|00001a50| 74 61 20 75 73 69 6e 67 | 20 54 72 61 63 6b 20 64 |ta using| Track d|
|00001a60| 65 73 63 72 69 70 74 6f | 72 20 61 6e 64 20 52 65 |escripto|r and Re|
|00001a70| 61 64 20 54 72 61 63 6b | 20 28 74 68 65 0d 05 f0 |ad Track| (the...|
|00001a80| 43 20 20 f4 20 20 6c 61 | 74 74 65 72 20 68 61 76 |C . la|tter hav|
|00001a90| 69 6e 67 20 62 65 65 6e | 20 6f 76 65 72 6c 61 69 |ing been| overlai|
|00001aa0| 64 20 77 69 74 68 20 63 | 6f 72 72 65 63 74 20 72 |d with c|orrect r|
|00001ab0| 65 61 64 20 73 65 63 74 | 6f 72 20 64 61 74 61 2e |ead sect|or data.|
|00001ac0| 0d 05 fa 3e 20 20 f4 20 | 42 75 74 20 65 6e 73 75 |...> . |But ensu|
|00001ad0| 72 65 20 6e 6f 20 69 6c | 6c 65 67 61 6c 20 63 68 |re no il|legal ch|
|00001ae0| 72 73 20 61 70 70 65 61 | 72 20 69 6e 20 67 61 70 |rs appea|r in gap|
|00001af0| 73 20 6f 72 20 64 61 74 | 61 20 61 72 65 61 0d 06 |s or dat|a area..|
|00001b00| 04 36 20 20 f4 20 4f 75 | 74 70 75 74 20 6d 65 73 |.6 . Ou|tput mes|
|00001b10| 73 61 67 65 20 69 66 20 | 64 61 74 61 20 61 72 65 |sage if |data are|
|00001b20| 61 20 63 61 6e 27 74 20 | 62 65 20 72 65 63 72 65 |a can't |be recre|
|00001b30| 61 74 65 64 0d 06 0e 55 | dd f2 6d 61 6b 65 57 72 |ated...U|..makeWr|
|00001b40| 69 74 65 54 72 6b 28 54 | 72 6b 44 65 73 63 25 2c |iteTrk(T|rkDesc%,|
|00001b50| 20 63 6f 75 6e 74 25 2c | 20 64 65 6e 73 69 74 79 | count%,| density|
|00001b60| 25 2c 20 52 65 61 64 42 | 75 66 25 2c 20 57 72 69 |%, ReadB|uf%, Wri|
|00001b70| 74 65 54 72 6b 42 75 66 | 25 2c 20 f8 20 6d 75 73 |teTrkBuf|%, . mus|
|00001b80| 74 57 72 53 65 63 74 25 | 29 0d 06 18 47 ea 20 73 |tWrSect%|)...G. s|
|00001b90| 65 63 74 46 6f 75 6e 64 | 25 2c 20 73 65 63 74 53 |ectFound|%, sectS|
|00001ba0| 69 7a 65 25 2c 20 53 72 | 63 41 64 64 25 2c 20 53 |ize%, Sr|cAdd%, S|
|00001bb0| 72 63 4c 6f 77 41 64 64 | 25 2c 20 44 65 73 74 41 |rcLowAdd|%, DestA|
|00001bc0| 64 64 25 2c 20 44 65 73 | 74 4c 6f 77 41 64 64 25 |dd%, Des|tLowAdd%|
|00001bd0| 0d 06 22 15 ea 20 63 6f | 6e 76 65 72 74 25 2c 20 |..".. co|nvert%, |
|00001be0| 69 6e 66 6f 25 0d 06 2c | 11 6d 75 73 74 57 72 53 |info%..,|.mustWrS|
|00001bf0| 65 63 74 25 3d a3 0d 06 | 36 1c 44 65 73 74 4c 6f |ect%=...|6.DestLo|
|00001c00| 77 41 64 64 25 3d 57 72 | 69 74 65 54 72 6b 42 75 |wAdd%=Wr|iteTrkBu|
|00001c10| 66 25 0d 06 40 17 53 72 | 63 4c 6f 77 41 64 64 25 |f%..@.Sr|cLowAdd%|
|00001c20| 3d 52 65 61 64 42 75 66 | 25 0d 06 4a 1d e3 20 73 |=ReadBuf|%..J.. s|
|00001c30| 65 63 74 46 6f 75 6e 64 | 25 3d 30 20 b8 20 63 6f |ectFound|%=0 . co|
|00001c40| 75 6e 74 25 2d 31 0d 06 | 54 2d 20 20 53 72 63 41 |unt%-1..|T- SrcA|
|00001c50| 64 64 25 3d a4 67 65 74 | 49 44 50 74 72 28 54 72 |dd%=.get|IDPtr(Tr|
|00001c60| 6b 44 65 73 63 25 2c 20 | 73 65 63 74 46 6f 75 6e |kDesc%, |sectFoun|
|00001c70| 64 25 29 0d 06 5e 2d 20 | 20 44 65 73 74 41 64 64 |d%)..^- | DestAdd|
|00001c80| 25 3d 44 65 73 74 4c 6f | 77 41 64 64 25 2b 53 72 |%=DestLo|wAdd%+Sr|
|00001c90| 63 41 64 64 25 2d 53 72 | 63 4c 6f 77 41 64 64 25 |cAdd%-Sr|cLowAdd%|
|00001ca0| 0d 06 68 2d 20 20 69 6e | 66 6f 25 3d a4 67 65 74 |..h- in|fo%=.get|
|00001cb0| 53 65 63 74 49 6e 66 6f | 28 54 72 6b 44 65 73 63 |SectInfo|(TrkDesc|
|00001cc0| 25 2c 73 65 63 74 46 6f | 75 6e 64 25 29 0d 06 72 |%,sectFo|und%)..r|
|00001cd0| 1b 20 20 f4 20 49 44 27 | 73 20 41 4d 20 26 20 70 |. . ID'|s AM & p|
|00001ce0| 72 69 6f 72 20 67 61 70 | 0d 06 7c 4a 20 20 f2 6d |rior gap|..|J .m|
|00001cf0| 61 6b 65 41 4d 61 6e 64 | 67 61 70 28 20 53 72 63 |akeAMand|gap( Src|
|00001d00| 4c 6f 77 41 64 64 25 2c | 20 53 72 63 41 64 64 25 |LowAdd%,| SrcAdd%|
|00001d10| 2c 20 44 65 73 74 4c 6f | 77 41 64 64 25 2c 20 44 |, DestLo|wAdd%, D|
|00001d20| 65 73 74 41 64 64 25 2c | 20 64 65 6e 73 69 74 79 |estAdd%,| density|
|00001d30| 25 29 0d 06 86 41 20 20 | 44 65 73 74 41 64 64 25 |%)...A |DestAdd%|
|00001d40| 21 30 20 20 3d 20 a4 67 | 65 74 53 65 63 74 49 44 |!0 = .g|etSectID|
|00001d50| 28 54 72 6b 44 65 73 63 | 25 2c 73 65 63 74 46 6f |(TrkDesc|%,sectFo|
|00001d60| 75 6e 64 25 29 20 20 20 | 20 3a f4 20 63 6f 70 79 |und%) | :. copy|
|00001d70| 20 49 44 0d 06 90 23 20 | 20 e7 20 28 69 6e 66 6f | ID...# | . (info|
|00001d80| 25 20 80 20 65 72 72 4e | 6f 74 46 6f 75 6e 64 25 |% . errN|otFound%|
|00001d90| 29 20 3d 30 20 8c 0d 06 | 9a 37 20 20 20 20 44 65 |) =0 ...|.7 De|
|00001da0| 73 74 41 64 64 25 3f 34 | 20 20 3d 20 26 46 37 20 |stAdd%?4| = &F7 |
|00001db0| 20 20 20 20 20 20 20 20 | 20 20 20 3a f4 20 74 6f | | :. to|
|00001dc0| 20 67 65 6e 65 72 61 74 | 65 20 43 52 43 0d 06 a4 | generat|e CRC...|
|00001dd0| 36 20 20 20 20 44 65 73 | 74 4c 6f 77 41 64 64 25 |6 Des|tLowAdd%|
|00001de0| 3d 20 44 65 73 74 41 64 | 64 25 2b 35 20 20 20 20 |= DestAd|d%+5 |
|00001df0| 20 20 3a f4 20 62 79 74 | 65 20 61 66 74 65 72 20 | :. byt|e after |
|00001e00| 43 52 43 0d 06 ae 07 20 | 20 cc 0d 06 b8 41 20 20 |CRC.... | ....A |
|00001e10| 20 20 f4 20 62 75 74 20 | 69 66 20 73 65 63 74 6f | . but |if secto|
|00001e20| 72 20 6e 6f 74 20 66 6f | 75 6e 64 20 74 68 65 6e |r not fo|und then|
|00001e30| 20 63 6f 70 79 20 72 65 | 61 64 74 72 61 63 6b 20 | copy re|adtrack |
|00001e40| 43 52 43 20 69 6e 73 74 | 65 61 64 0d 06 c2 1e 20 |CRC inst|ead.... |
|00001e50| 20 20 20 44 65 73 74 41 | 64 64 25 3f 34 20 3d 20 | DestA|dd%?4 = |
|00001e60| 53 72 63 41 64 64 25 3f | 34 0d 06 cc 1e 20 20 20 |SrcAdd%?|4.... |
|00001e70| 20 44 65 73 74 41 64 64 | 25 3f 35 20 3d 20 53 72 | DestAdd|%?5 = Sr|
|00001e80| 63 41 64 64 25 3f 35 0d | 06 d6 36 20 20 20 20 44 |cAdd%?5.|..6 D|
|00001e90| 65 73 74 4c 6f 77 41 64 | 64 25 3d 20 44 65 73 74 |estLowAd|d%= Dest|
|00001ea0| 41 64 64 25 2b 36 20 20 | 20 20 20 20 3a f4 20 62 |Add%+6 | :. b|
|00001eb0| 79 74 65 20 61 66 74 65 | 72 20 43 52 43 0d 06 e0 |yte afte|r CRC...|
|00001ec0| 07 20 20 cd 0d 06 ea 40 | 20 20 53 72 63 4c 6f 77 |. ....@| SrcLow|
|00001ed0| 41 64 64 25 20 3d 20 53 | 72 63 41 64 64 25 2b 36 |Add% = S|rcAdd%+6|
|00001ee0| 20 20 20 20 20 20 20 3a | f4 20 70 6f 69 6e 74 20 | :|. point |
|00001ef0| 66 69 72 73 74 20 62 79 | 74 65 20 61 66 74 65 72 |first by|te after|
|00001f00| 20 43 52 43 0d 06 f4 2f | 20 20 53 72 63 41 64 64 | CRC.../| SrcAdd|
|00001f10| 25 3d a4 67 65 74 44 61 | 74 61 50 74 72 28 54 72 |%=.getDa|taPtr(Tr|
|00001f20| 6b 44 65 73 63 25 2c 20 | 73 65 63 74 46 6f 75 6e |kDesc%, |sectFoun|
|00001f30| 64 25 29 0d 06 fe 14 20 | 20 e7 20 53 72 63 41 64 |d%).... | . SrcAd|
|00001f40| 64 25 3c 3e 30 20 8c 0d | 07 08 16 20 20 20 20 f4 |d%<>0 ..|... .|
|00001f50| 20 69 66 20 64 61 74 61 | 20 61 72 65 61 0d 07 12 | if data| area...|
|00001f60| 2f 20 20 20 20 44 65 73 | 74 41 64 64 25 3d 44 65 |/ Des|tAdd%=De|
|00001f70| 73 74 4c 6f 77 41 64 64 | 25 2b 53 72 63 41 64 64 |stLowAdd|%+SrcAdd|
|00001f80| 25 2d 53 72 63 4c 6f 77 | 41 64 64 25 0d 07 1c 22 |%-SrcLow|Add%..."|
|00001f90| 20 20 20 20 f4 20 64 61 | 74 61 20 61 72 65 61 20 | . da|ta area |
|00001fa0| 41 4d 20 26 20 70 72 69 | 6f 72 20 67 61 70 0d 07 |AM & pri|or gap..|
|00001fb0| 26 4b 20 20 20 20 f2 6d | 61 6b 65 41 4d 61 6e 64 |&K .m|akeAMand|
|00001fc0| 67 61 70 28 53 72 63 4c | 6f 77 41 64 64 25 2c 20 |gap(SrcL|owAdd%, |
|00001fd0| 53 72 63 41 64 64 25 2c | 20 44 65 73 74 4c 6f 77 |SrcAdd%,| DestLow|
|00001fe0| 41 64 64 25 2c 20 44 65 | 73 74 41 64 64 25 2c 20 |Add%, De|stAdd%, |
|00001ff0| 64 65 6e 73 69 74 79 25 | 29 0d 07 30 1c 20 20 20 |density%|)..0. |
|00002000| 20 53 72 63 4c 6f 77 41 | 64 64 25 20 3d 20 53 72 | SrcLowA|dd% = Sr|
|00002010| 63 41 64 64 25 0d 07 3a | 1d 20 20 20 20 44 65 73 |cAdd%..:|. Des|
|00002020| 74 4c 6f 77 41 64 64 25 | 3d 20 44 65 73 74 41 64 |tLowAdd%|= DestAd|
|00002030| 64 25 0d 07 44 39 20 20 | 20 20 53 72 63 41 64 64 |d%..D9 | SrcAdd|
|00002040| 25 20 2b 3d 20 a4 67 65 | 74 44 61 74 61 4c 65 6e |% += .ge|tDataLen|
|00002050| 67 74 68 28 54 72 6b 44 | 65 73 63 25 2c 20 73 65 |gth(TrkD|esc%, se|
|00002060| 63 74 46 6f 75 6e 64 25 | 29 2d 31 0d 07 4e 47 20 |ctFound%|)-1..NG |
|00002070| 20 20 20 f4 20 63 6f 70 | 79 20 75 70 20 74 6f 20 | . cop|y up to |
|00002080| 65 6e 64 20 6f 66 20 64 | 61 74 61 20 61 72 65 61 |end of d|ata area|
|00002090| 20 74 72 61 6e 73 66 65 | 72 2c 20 63 6f 6e 76 65 | transfe|r, conve|
|000020a0| 72 74 20 61 6e 79 20 26 | 46 35 2d 46 37 20 63 68 |rt any &|F5-F7 ch|
|000020b0| 72 73 0d 07 58 4a 20 20 | 20 20 f2 73 65 6c 63 6f |rs..XJ | .selco|
|000020c0| 70 79 66 77 64 20 28 53 | 72 63 4c 6f 77 41 64 64 |pyfwd (S|rcLowAdd|
|000020d0| 25 2c 20 53 72 63 41 64 | 64 25 2c 20 44 65 73 74 |%, SrcAd|d%, Dest|
|000020e0| 4c 6f 77 41 64 64 25 2c | 20 64 65 6e 73 69 74 79 |LowAdd%,| density|
|000020f0| 25 2c 20 63 6f 6e 76 65 | 72 74 25 29 0d 07 62 46 |%, conve|rt%)..bF|
|00002100| 20 20 20 20 44 65 73 74 | 4c 6f 77 41 64 64 25 20 | Dest|LowAdd% |
|00002110| 2b 3d 53 72 63 41 64 64 | 25 2d 53 72 63 4c 6f 77 |+=SrcAdd|%-SrcLow|
|00002120| 41 64 64 25 2b 31 20 3a | f4 20 66 69 72 73 74 20 |Add%+1 :|. first |
|00002130| 62 79 74 65 20 61 66 74 | 65 72 20 64 61 74 61 2e |byte aft|er data.|
|00002140| 2e 2e 0d 07 6c 3e 20 20 | 20 20 53 72 63 4c 6f 77 |....l> | SrcLow|
|00002150| 41 64 64 25 20 3d 20 53 | 72 63 41 64 64 25 2b 31 |Add% = S|rcAdd%+1|
|00002160| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3a f4 20 | | :. |
|00002170| 2e 2e 74 72 61 6e 73 66 | 65 72 20 61 72 65 61 73 |..transf|er areas|
|00002180| 0d 07 76 3d 20 20 20 20 | e7 20 28 69 6e 66 6f 25 |..v= |. (info%|
|00002190| 20 80 20 28 65 72 72 43 | 52 43 25 20 84 20 65 72 | . (errC|RC% . er|
|000021a0| 72 4e 6f 74 46 6f 75 6e | 64 25 20 84 20 6e 6f 52 |rNotFoun|d% . noR|
|000021b0| 6f 6f 6d 43 52 43 25 29 | 29 3d 30 20 8c 0d 07 80 |oomCRC%)|)=0 ....|
|000021c0| 41 20 20 20 20 20 20 f4 | 20 72 6f 6f 6d 20 66 6f |A .| room fo|
|000021d0| 72 20 43 52 43 20 41 4e | 44 20 72 65 61 64 20 43 |r CRC AN|D read C|
|000021e0| 52 43 20 77 61 73 20 6f | 6b 20 41 4e 44 20 73 65 |RC was o|k AND se|
|000021f0| 63 74 6f 72 20 77 61 73 | 20 66 6f 75 6e 64 0d 07 |ctor was| found..|
|00002200| 8a 35 20 20 20 20 20 20 | e7 20 28 63 6f 6e 76 65 |.5 |. (conve|
|00002210| 72 74 25 3d 30 29 20 80 | 20 28 28 69 6e 66 6f 25 |rt%=0) .| ((info%|
|00002220| 20 80 20 6f 76 65 72 49 | 6e 64 65 78 25 29 3d 30 | . overI|ndex%)=0|
|00002230| 29 20 8c 0d 07 94 3a 20 | 20 20 20 20 20 20 20 f4 |) ....: | .|
|00002240| 20 41 4e 44 20 77 72 69 | 74 65 74 72 61 63 6b 20 | AND wri|tetrack |
|00002250| 63 61 6e 20 63 6f 72 72 | 65 63 74 6c 79 20 77 72 |can corr|ectly wr|
|00002260| 69 74 65 20 64 61 74 61 | 20 61 72 65 61 0d 07 9e |ite data| area...|
|00002270| 31 20 20 20 20 20 20 20 | 20 44 65 73 74 4c 6f 77 |1 | DestLow|
|00002280| 41 64 64 25 3f 30 20 3d | 20 26 46 37 20 20 20 3a |Add%?0 =| &F7 :|
|00002290| f4 20 73 6f 20 66 6f 72 | 63 65 20 43 52 43 0d 07 |. so for|ce CRC..|
|000022a0| a8 38 20 20 20 20 20 20 | 20 20 53 72 63 4c 6f 77 |.8 | SrcLow|
|000022b0| 41 64 64 25 20 20 2b 3d | 32 20 20 20 20 20 20 20 |Add% +=|2 |
|000022c0| 3a f4 20 61 6e 64 20 61 | 64 6a 75 73 74 20 73 6f |:. and a|djust so|
|000022d0| 75 72 63 65 20 26 0d 07 | b2 3f 20 20 20 20 20 20 |urce &..|.? |
|000022e0| 20 20 44 65 73 74 4c 6f | 77 41 64 64 25 20 2b 3d | DestLo|wAdd% +=|
|000022f0| 31 20 20 20 20 20 20 20 | 3a f4 20 64 65 73 74 20 |1 |:. dest |
|00002300| 61 64 64 72 65 73 73 65 | 73 20 61 63 63 6f 72 64 |addresse|s accord|
|00002310| 69 6e 67 6c 79 0d 07 bc | 1f 20 20 20 20 20 20 20 |ingly...|. |
|00002320| 20 f4 20 26 20 73 65 74 | 20 73 65 63 74 6f 72 20 | . & set| sector |
|00002330| 69 6e 66 6f 0d 07 c6 41 | 20 20 20 20 20 20 20 20 |info...A| |
|00002340| f2 61 64 64 53 65 63 74 | 49 6e 66 6f 28 54 72 6b |.addSect|Info(Trk|
|00002350| 44 65 73 63 25 2c 20 73 | 65 63 74 46 6f 75 6e 64 |Desc%, s|ectFound|
|00002360| 25 2c 20 64 61 74 61 44 | 75 72 69 6e 67 46 6f 72 |%, dataD|uringFor|
|00002370| 6d 61 74 25 29 0d 07 d0 | 3c 20 20 20 20 20 20 20 |mat%)...|< |
|00002380| 20 69 6e 66 6f 25 3d 69 | 6e 66 6f 25 20 84 20 64 | info%=i|nfo% . d|
|00002390| 61 74 61 44 75 72 69 6e | 67 46 6f 72 6d 61 74 25 |ataDurin|gFormat%|
|000023a0| 20 3a f4 20 66 6f 72 20 | 75 73 65 20 62 65 6c 6f | :. for |use belo|
|000023b0| 77 0d 07 da 0b 20 20 20 | 20 20 20 cc 0d 07 e4 4a |w.... | ....J|
|000023c0| 20 20 20 20 20 20 20 20 | e7 20 69 6e 66 6f 25 80 | |. info%.|
|000023d0| 28 64 65 6c 44 61 74 61 | 25 20 84 20 6c 6f 6e 67 |(delData|% . long|
|000023e0| 44 61 74 61 25 20 84 20 | 69 6c 6c 65 67 61 6c 54 |Data% . |illegalT|
|000023f0| 72 6b 25 20 84 20 69 6c | 6c 65 67 61 6c 49 44 62 |rk% . il|legalIDb|
|00002400| 79 74 25 29 20 8c 0d 07 | ee 48 20 20 20 20 20 20 |yt%) ...|.H |
|00002410| 20 20 20 20 f4 20 69 66 | 20 63 61 6e 27 74 20 77 | . if| can't w|
|00002420| 72 69 74 65 20 73 65 63 | 74 6f 72 2c 20 62 75 74 |rite sec|tor, but|
|00002430| 20 6f 74 68 65 72 77 69 | 73 65 20 4f 4b 2c 20 61 | otherwi|se OK, a|
|00002440| 6e 64 20 63 61 6e 27 74 | 20 77 72 69 74 65 0d 07 |nd can't| write..|
|00002450| f8 32 20 20 20 20 20 20 | 20 20 20 20 f4 20 69 74 |.2 | . it|
|00002460| 20 64 75 72 69 6e 67 20 | 66 6f 72 6d 61 74 2c 20 | during |format, |
|00002470| 74 68 65 6e 20 70 72 69 | 6e 74 20 65 72 72 6f 72 |then pri|nt error|
|00002480| 0d 08 02 2c 20 20 20 20 | 20 20 20 20 20 20 f2 70 |..., | .p|
|00002490| 72 69 6e 74 49 44 28 54 | 72 6b 44 65 73 63 25 2c |rintID(T|rkDesc%,|
|000024a0| 20 73 65 63 74 46 6f 75 | 6e 64 25 29 0d 08 0c 31 | sectFou|nd%)...1|
|000024b0| 20 20 20 20 20 20 20 20 | 20 20 f1 20 22 43 41 4e | | . "CAN|
|000024c0| 27 54 20 6d 61 6b 65 20 | 61 6e 20 65 78 61 63 74 |'T make |an exact|
|000024d0| 20 63 6f 70 79 21 20 53 | 6f 72 72 79 22 0d 08 16 | copy! S|orry"...|
|000024e0| 38 20 20 20 20 20 20 20 | 20 20 20 44 65 73 74 4c |8 | DestL|
|000024f0| 6f 77 41 64 64 25 3f 30 | 20 3d 20 26 46 37 20 20 |owAdd%?0| = &F7 |
|00002500| 3a f4 20 62 75 74 20 73 | 65 74 20 43 52 43 20 61 |:. but s|et CRC a|
|00002510| 6e 79 77 61 79 0d 08 20 | 39 20 20 20 20 20 20 20 |nyway.. |9 |
|00002520| 20 20 20 53 72 63 4c 6f | 77 41 64 64 25 20 20 2b | SrcLo|wAdd% +|
|00002530| 3d 32 20 20 20 20 20 20 | 3a f4 20 61 6e 64 20 61 |=2 |:. and a|
|00002540| 64 6a 75 73 74 20 70 6f | 69 6e 74 65 72 73 0d 08 |djust po|inters..|
|00002550| 2a 1d 20 20 20 20 20 20 | 20 20 20 20 44 65 73 74 |*. | Dest|
|00002560| 4c 6f 77 41 64 64 25 20 | 2b 3d 31 0d 08 34 0d 20 |LowAdd% |+=1..4. |
|00002570| 20 20 20 20 20 20 20 cd | 0d 08 3e 0b 20 20 20 20 | .|..>. |
|00002580| 20 20 cd 0d 08 48 09 20 | 20 20 20 cd 0d 08 52 26 | ...H. | ...R&|
|00002590| 20 20 20 20 e7 20 28 69 | 6e 66 6f 25 20 80 20 28 | . (i|nfo% . (|
|000025a0| ac 20 6f 76 65 72 49 6e | 64 65 78 25 29 29 3d 30 |. overIn|dex%))=0|
|000025b0| 20 8c 0d 08 5c 21 20 20 | 20 20 20 20 f4 20 6d 75 | ...\! | . mu|
|000025c0| 73 74 20 77 72 69 74 65 | 20 74 68 65 20 73 65 63 |st write| the sec|
|000025d0| 74 6f 72 0d 08 66 17 20 | 20 20 20 20 20 6d 75 73 |tor..f. | mus|
|000025e0| 74 57 72 53 65 63 74 25 | 3d b9 0d 08 70 09 20 20 |tWrSect%|=...p. |
|000025f0| 20 20 cd 0d 08 7a 07 20 | 20 cd 0d 08 84 05 ed 0d | ...z. | .......|
|00002600| 08 8e 25 53 72 63 41 64 | 64 25 3d 54 72 6b 44 65 |..%SrcAd|d%=TrkDe|
|00002610| 73 63 25 21 62 75 66 45 | 6e 64 56 61 6c 69 64 44 |sc%!bufE|ndValidD|
|00002620| 61 74 61 25 0d 08 98 2a | f4 20 63 6f 70 79 20 74 |ata%...*|. copy t|
|00002630| 6f 20 65 6e 64 20 6f 66 | 20 76 61 6c 69 64 20 72 |o end of| valid r|
|00002640| 65 61 64 20 74 72 61 63 | 6b 20 64 61 74 61 0d 08 |ead trac|k data..|
|00002650| a2 46 f2 73 65 6c 63 6f | 70 79 66 77 64 20 28 53 |.F.selco|pyfwd (S|
|00002660| 72 63 4c 6f 77 41 64 64 | 25 2c 20 53 72 63 41 64 |rcLowAdd|%, SrcAd|
|00002670| 64 25 2c 20 44 65 73 74 | 4c 6f 77 41 64 64 25 2c |d%, Dest|LowAdd%,|
|00002680| 20 64 65 6e 73 69 74 79 | 25 2c 20 63 6f 6e 76 65 | density|%, conve|
|00002690| 72 74 25 29 0d 08 ac 40 | f2 66 69 6c 6c 45 6e 64 |rt%)...@|.fillEnd|
|000026a0| 4f 66 54 72 6b 28 20 53 | 72 63 41 64 64 25 2b 31 |OfTrk( S|rcAdd%+1|
|000026b0| 2d 52 65 61 64 42 75 66 | 25 20 2b 20 57 72 69 74 |-ReadBuf|% + Writ|
|000026c0| 65 54 72 6b 42 75 66 25 | 20 2c 20 64 65 6e 73 69 |eTrkBuf%| , densi|
|000026d0| 74 79 25 29 0d 08 b6 05 | e1 0d 08 c0 04 0d 08 ca |ty%)....|........|
|000026e0| 3e 20 20 f4 20 66 69 6c | 6c 73 20 74 6f 20 65 6e |> . fil|ls to en|
|000026f0| 64 20 6f 66 20 77 72 69 | 74 65 20 62 75 66 66 65 |d of wri|te buffe|
|00002700| 72 20 77 69 74 68 20 72 | 65 6c 65 76 61 6e 74 20 |r with r|elevant |
|00002710| 66 69 6c 6c 65 72 20 62 | 79 74 65 0d 08 d4 24 dd |filler b|yte...$.|
|00002720| f2 66 69 6c 6c 45 6e 64 | 4f 66 54 72 6b 28 20 61 |.fillEnd|OfTrk( a|
|00002730| 64 64 25 20 2c 20 64 65 | 6e 73 69 74 79 25 29 0d |dd% , de|nsity%).|
|00002740| 08 de 0c ea 20 76 61 6c | 75 65 25 0d 08 e8 1a e7 |.... val|ue%.....|
|00002750| 20 64 65 6e 73 69 74 79 | 25 3d 44 44 65 6e 73 69 | density|%=DDensi|
|00002760| 74 79 25 20 8c 0d 08 f2 | 10 20 20 76 61 6c 75 65 |ty% ....|. value|
|00002770| 25 3d 26 34 45 0d 08 fc | 05 cc 0d 09 06 10 20 20 |%=&4E...|...... |
|00002780| 76 61 6c 75 65 25 3d 26 | 46 46 0d 09 10 05 cd 0d |value%=&|FF......|
|00002790| 09 1a 3b f2 66 69 6c 6c | 28 76 61 6c 75 65 25 2c |..;.fill|(value%,|
|000027a0| 20 61 64 64 25 2c 20 57 | 72 69 74 65 54 72 6b 42 | add%, W|riteTrkB|
|000027b0| 75 66 25 20 2b 20 54 72 | 6b 44 61 74 61 53 69 7a |uf% + Tr|kDataSiz|
|000027c0| 65 25 20 2d 20 61 64 64 | 25 29 0d 09 24 05 e1 0d |e% - add|%)..$...|
|000027d0| 09 2e 04 0d 09 38 4b 20 | 20 20 f4 20 63 6f 70 69 |.....8K | . copi|
|000027e0| 65 73 20 61 72 65 61 20 | 6f 66 20 73 74 6f 72 65 |es area |of store|
|000027f0| 20 62 75 74 20 63 6f 6e | 76 65 72 74 73 20 61 6e | but con|verts an|
|00002800| 79 20 69 6c 6c 65 67 61 | 6c 20 63 68 72 73 28 66 |y illega|l chrs(f|
|00002810| 6f 72 20 77 72 69 74 65 | 54 72 61 63 6b 29 0d 09 |or write|Track)..|
|00002820| 42 39 20 20 20 f4 20 53 | 65 74 73 20 63 6f 6e 76 |B9 . S|ets conv|
|00002830| 65 72 74 25 3d 54 52 55 | 45 20 69 66 20 69 74 20 |ert%=TRU|E if it |
|00002840| 68 61 73 20 74 6f 20 63 | 6f 6e 76 65 72 74 20 61 |has to c|onvert a|
|00002850| 6e 79 20 63 68 61 72 0d | 09 4c 44 dd f2 73 65 6c |ny char.|.LD..sel|
|00002860| 63 6f 70 79 66 77 64 28 | 53 72 63 4c 6f 77 41 64 |copyfwd(|SrcLowAd|
|00002870| 64 25 2c 53 72 63 41 64 | 64 25 2c 44 65 73 74 4c |d%,SrcAd|d%,DestL|
|00002880| 6f 77 41 64 64 25 2c 64 | 65 6e 73 69 74 79 25 2c |owAdd%,d|ensity%,|
|00002890| f8 20 63 6f 6e 76 65 72 | 74 25 29 0d 09 56 0f ea |. conver|t%)..V..|
|000028a0| 20 6c 6f 77 25 2c 20 68 | 69 25 0d 09 60 24 f2 67 | low%, h|i%..`$.g|
|000028b0| 65 74 49 6c 6c 65 67 61 | 6c 28 64 65 6e 73 69 74 |etIllega|l(densit|
|000028c0| 79 25 2c 20 6c 6f 77 25 | 2c 20 68 69 25 29 0d 09 |y%, low%|, hi%)..|
|000028d0| 6a 47 d6 20 73 65 6c 63 | 6f 70 79 66 77 64 2c 20 |jG. selc|opyfwd, |
|000028e0| 53 72 63 4c 6f 77 41 64 | 64 25 2c 20 53 72 63 41 |SrcLowAd|d%, SrcA|
|000028f0| 64 64 25 2c 20 44 65 73 | 74 4c 6f 77 41 64 64 25 |dd%, Des|tLowAdd%|
|00002900| 2c 20 6c 6f 77 25 2c 20 | 68 69 25 2c 20 63 6f 6e |, low%, |hi%, con|
|00002910| 76 65 72 74 25 0d 09 74 | 05 e1 0d 09 7e 04 0d 09 |vert%..t|....~...|
|00002920| 88 2f 20 20 20 f4 20 73 | 65 74 75 70 20 69 6c 6c |./ . s|etup ill|
|00002930| 65 67 61 6c 20 63 68 72 | 20 72 61 6e 67 65 20 66 |egal chr| range f|
|00002940| 6f 72 20 77 72 69 74 65 | 74 72 61 63 6b 0d 09 92 |or write|track...|
|00002950| 29 dd f2 67 65 74 49 6c | 6c 65 67 61 6c 28 64 65 |)..getIl|legal(de|
|00002960| 6e 73 69 74 79 25 2c 20 | f8 20 6c 6f 77 25 2c 20 |nsity%, |. low%, |
|00002970| f8 20 68 69 25 29 0d 09 | 9c 1c e7 20 64 65 6e 73 |. hi%)..|... dens|
|00002980| 69 74 79 25 20 3d 20 44 | 44 65 6e 73 69 74 79 25 |ity% = D|Density%|
|00002990| 20 8c 0d 09 a6 16 20 20 | 6c 6f 77 25 3d 26 46 35 | ..... |low%=&F5|
|000029a0| 3a 68 69 25 3d 26 46 37 | 0d 09 b0 05 cc 0d 09 ba |:hi%=&F7|........|
|000029b0| 16 20 20 6c 6f 77 25 3d | 26 46 35 3a 68 69 25 3d |. low%=|&F5:hi%=|
|000029c0| 26 46 45 0d 09 c4 05 cd | 0d 09 ce 05 e1 0d 09 d8 |&FE.....|........|
|000029d0| 04 0d 09 e2 48 dd f2 6d | 61 6b 65 41 4d 61 6e 64 |....H..m|akeAMand|
|000029e0| 67 61 70 28 53 72 63 4c | 6f 77 41 64 64 25 2c 20 |gap(SrcL|owAdd%, |
|000029f0| 53 72 63 41 64 64 25 2c | 20 44 65 73 74 4c 6f 77 |SrcAdd%,| DestLow|
|00002a00| 41 64 64 25 2c 20 44 65 | 73 74 41 64 64 25 2c 20 |Add%, De|stAdd%, |
|00002a10| 64 65 6e 73 69 74 79 25 | 29 0d 09 ec 1a e7 20 64 |density%|)..... d|
|00002a20| 65 6e 73 69 74 79 25 3d | 44 44 65 6e 73 69 74 79 |ensity%=|DDensity|
|00002a30| 25 20 8c 0d 09 f6 41 20 | 20 f2 44 44 6d 61 6b 65 |% ....A | .DDmake|
|00002a40| 41 4d 61 6e 64 67 61 70 | 28 53 72 63 4c 6f 77 41 |AMandgap|(SrcLowA|
|00002a50| 64 64 25 2c 20 53 72 63 | 41 64 64 25 2c 20 44 65 |dd%, Src|Add%, De|
|00002a60| 73 74 4c 6f 77 41 64 64 | 25 2c 20 44 65 73 74 41 |stLowAdd|%, DestA|
|00002a70| 64 64 25 29 0d 0a 00 05 | cc 0d 0a 0a 41 20 20 f2 |dd%)....|....A .|
|00002a80| 53 44 6d 61 6b 65 41 4d | 61 6e 64 67 61 70 28 53 |SDmakeAM|andgap(S|
|00002a90| 72 63 4c 6f 77 41 64 64 | 25 2c 20 53 72 63 41 64 |rcLowAdd|%, SrcAd|
|00002aa0| 64 25 2c 20 44 65 73 74 | 4c 6f 77 41 64 64 25 2c |d%, Dest|LowAdd%,|
|00002ab0| 20 44 65 73 74 41 64 64 | 25 29 0d 0a 14 05 cd 0d | DestAdd|%)......|
|00002ac0| 0a 1e 05 e1 0d 0a 28 04 | 0d 0a 32 10 20 20 20 f4 |......(.|..2. .|
|00002ad0| 20 44 44 20 6f 6e 6c 79 | 0d 0a 3c 40 dd f2 44 44 | DD only|..<@..DD|
|00002ae0| 6d 61 6b 65 41 4d 61 6e | 64 67 61 70 28 53 72 63 |makeAMan|dgap(Src|
|00002af0| 4c 6f 77 41 64 64 25 2c | 20 53 72 63 41 64 64 25 |LowAdd%,| SrcAdd%|
|00002b00| 2c 20 44 65 73 74 4c 6f | 77 41 64 64 25 2c 20 44 |, DestLo|wAdd%, D|
|00002b10| 65 73 74 41 64 64 25 29 | 0d 0a 46 1a ea 20 56 25 |estAdd%)|..F.. V%|
|00002b20| 2c 20 49 25 2c 20 4a 25 | 2c 20 63 6f 6e 76 65 72 |, I%, J%|, conver|
|00002b30| 74 25 0d 0a 50 2b 44 65 | 73 74 41 64 64 25 3f 2d |t%..P+De|stAdd%?-|
|00002b40| 31 20 3d 20 53 72 63 41 | 64 64 25 3f 2d 31 20 20 |1 = SrcA|dd%?-1 |
|00002b50| 20 3a f4 20 63 6f 70 79 | 20 4d 61 72 6b 0d 0a 5a | :. copy| Mark..Z|
|00002b60| 28 44 65 73 74 41 64 64 | 25 3f 2d 32 20 3d 20 26 |(DestAdd|%?-2 = &|
|00002b70| 46 35 20 20 20 20 20 20 | 20 20 20 20 3a f4 20 73 |F5 | :. s|
|00002b80| 65 74 20 41 4d 0d 0a 64 | 15 44 65 73 74 41 64 64 |et AM..d|.DestAdd|
|00002b90| 25 3f 2d 33 20 3d 20 26 | 46 35 0d 0a 6e 15 44 65 |%?-3 = &|F5..n.De|
|00002ba0| 73 74 41 64 64 25 3f 2d | 34 20 3d 20 26 46 35 0d |stAdd%?-|4 = &F5.|
|00002bb0| 0a 78 1d 4a 25 3d 44 65 | 73 74 41 64 64 25 20 2d |.x.J%=De|stAdd% -|
|00002bc0| 20 44 65 73 74 4c 6f 77 | 41 64 64 25 0d 0a 82 08 | DestLow|Add%....|
|00002bd0| 49 25 3d 35 0d 0a 8c 48 | e7 20 49 25 3c 3d 4a 25 |I%=5...H|. I%<=J%|
|00002be0| 20 8c 20 44 65 73 74 41 | 64 64 25 3f 2d 49 25 20 | . DestA|dd%?-I% |
|00002bf0| 3d 30 3a 49 25 20 2b 3d | 31 20 3a f4 20 61 6e 64 |=0:I% +=|1 :. and|
|00002c00| 20 73 65 74 20 70 72 65 | 63 65 65 64 69 6e 67 20 | set pre|ceeding |
|00002c10| 32 20 62 79 74 65 73 20 | 74 6f 20 30 0d 0a 96 40 |2 bytes |to 0...@|
|00002c20| e7 20 49 25 3c 3d 4a 25 | 20 8c 20 44 65 73 74 41 |. I%<=J%| . DestA|
|00002c30| 64 64 25 3f 2d 49 25 20 | 3d 30 3a 49 25 20 2b 3d |dd%?-I% |=0:I% +=|
|00002c40| 31 20 3a f4 20 28 44 65 | 73 74 4c 6f 77 41 64 64 |1 :. (De|stLowAdd|
|00002c50| 20 70 65 72 6d 69 74 74 | 69 6e 67 29 0d 0a a0 12 | permitt|ing)....|
|00002c60| 56 25 3d 53 72 63 41 64 | 64 25 3f 2d 49 25 0d 0a |V%=SrcAd|d%?-I%..|
|00002c70| aa 26 c8 95 20 28 56 25 | 3d 28 53 72 63 41 64 64 |.&.. (V%|=(SrcAdd|
|00002c80| 25 3f 2d 49 25 29 29 20 | 80 20 28 49 25 20 3c 3d |%?-I%)) |. (I% <=|
|00002c90| 20 4a 25 29 0d 0a b4 40 | 20 20 44 65 73 74 41 64 | J%)...@| DestAd|
|00002ca0| 64 25 3f 2d 49 25 20 3d | 20 30 20 20 20 20 3a f4 |d%?-I% =| 0 :.|
|00002cb0| 20 61 6e 64 20 61 6c 6c | 20 70 72 65 63 65 65 64 | and all| preceed|
|00002cc0| 69 6e 67 20 62 79 74 65 | 73 20 74 6f 20 30 20 77 |ing byte|s to 0 w|
|00002cd0| 68 69 6c 65 0d 0a be 3c | 20 20 49 25 20 2b 3d 31 |hile...<| I% +=1|
|00002ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3a f4 | | :.|
|00002cf0| 20 73 6f 75 72 63 65 20 | 62 79 74 65 73 20 64 6f | source |bytes do|
|00002d00| 6e 27 74 20 63 68 61 6e | 67 65 20 76 61 6c 75 65 |n't chan|ge value|
|00002d10| 0d 0a c8 2d ce 20 20 20 | 20 20 20 20 20 20 20 20 |...-. | |
|00002d20| 20 20 20 3a f4 20 28 44 | 65 73 74 4c 6f 77 41 64 | :. (D|estLowAd|
|00002d30| 64 20 70 65 72 6d 69 74 | 74 69 6e 67 29 0d 0a d2 |d permit|ting)...|
|00002d40| 0e e7 20 49 25 3c 3d 4a | 25 20 8c 0d 0a dc 32 20 |.. I%<=J|% ....2 |
|00002d50| 20 f4 20 74 68 65 6e 20 | 63 6f 70 79 20 70 72 65 | . then |copy pre|
|00002d60| 63 65 64 69 6e 67 20 67 | 61 70 20 62 61 63 6b 20 |ceding g|ap back |
|00002d70| 74 6f 20 53 72 63 4c 6f | 77 61 64 64 25 0d 0a e6 |to SrcLo|wadd%...|
|00002d80| 4b 20 20 f2 73 65 6c 63 | 6f 70 79 66 77 64 20 28 |K .selc|opyfwd (|
|00002d90| 53 72 63 4c 6f 77 41 64 | 64 25 2c 20 53 72 63 41 |SrcLowAd|d%, SrcA|
|00002da0| 64 64 25 2d 49 25 2c 20 | 44 65 73 74 4c 6f 77 41 |dd%-I%, |DestLowA|
|00002db0| 64 64 25 2c 20 44 44 65 | 6e 73 69 74 79 25 2c 63 |dd%, DDe|nsity%,c|
|00002dc0| 6f 6e 76 65 72 74 25 29 | 0d 0a f0 05 cd 0d 0a fa |onvert%)|........|
|00002dd0| 05 e1 0d 0b 04 04 0d 0b | 0e 10 20 20 20 f4 20 53 |........|.. . S|
|00002de0| 44 20 6f 6e 6c 79 0d 0b | 18 40 dd f2 53 44 6d 61 |D only..|.@..SDma|
|00002df0| 6b 65 41 4d 61 6e 64 67 | 61 70 28 53 72 63 4c 6f |keAMandg|ap(SrcLo|
|00002e00| 77 41 64 64 25 2c 20 53 | 72 63 41 64 64 25 2c 20 |wAdd%, S|rcAdd%, |
|00002e10| 44 65 73 74 4c 6f 77 41 | 64 64 25 2c 20 44 65 73 |DestLowA|dd%, Des|
|00002e20| 74 41 64 64 25 29 0d 0b | 22 16 ea 20 49 25 2c 20 |tAdd%)..|".. I%, |
|00002e30| 4a 25 2c 20 63 6f 6e 76 | 65 72 74 25 0d 0b 2c 33 |J%, conv|ert%..,3|
|00002e40| 44 65 73 74 41 64 64 25 | 3f 2d 31 20 3d 20 26 46 |DestAdd%|?-1 = &F|
|00002e50| 30 20 84 20 28 53 72 63 | 41 64 64 25 3f 2d 31 29 |0 . (Src|Add%?-1)|
|00002e60| 20 20 20 3a f4 20 63 6f | 70 79 20 4d 61 72 6b 0d | :. co|py Mark.|
|00002e70| 0b 36 08 49 25 3d 32 0d | 0b 40 1d 4a 25 3d 44 65 |.6.I%=2.|.@.J%=De|
|00002e80| 73 74 41 64 64 25 20 2d | 20 44 65 73 74 4c 6f 77 |stAdd% -| DestLow|
|00002e90| 41 64 64 25 0d 0b 4a 1d | c8 95 20 28 49 25 20 3c |Add%..J.|.. (I% <|
|00002ea0| 3d 20 4a 25 29 20 80 20 | 28 49 25 20 3c 3d 20 37 |= J%) . |(I% <= 7|
|00002eb0| 29 0d 0b 54 3d 20 20 44 | 65 73 74 41 64 64 25 3f |)..T= D|estAdd%?|
|00002ec0| 2d 49 25 20 3d 20 30 20 | 20 20 20 20 20 3a f4 20 |-I% = 0 | :. |
|00002ed0| 61 6e 64 20 70 72 65 63 | 65 65 64 69 6e 67 20 62 |and prec|eeding b|
|00002ee0| 79 20 36 20 62 79 74 65 | 73 20 6f 66 20 30 0d 0b |y 6 byte|s of 0..|
|00002ef0| 5e 36 20 20 49 25 20 2b | 3d 31 20 20 20 20 20 20 |^6 I% +|=1 |
|00002f00| 20 20 20 20 20 20 20 20 | 20 20 3a f4 20 28 44 65 | | :. (De|
|00002f10| 73 74 4c 6f 77 41 64 64 | 20 70 65 72 6d 69 74 74 |stLowAdd| permitt|
|00002f20| 69 6e 67 29 0d 0b 68 05 | ce 0d 0b 72 0e e7 20 49 |ing)..h.|...r.. I|
|00002f30| 25 3c 3d 4a 25 20 8c 0d | 0b 7c 32 20 20 f4 20 74 |%<=J% ..|.|2 . t|
|00002f40| 68 65 6e 20 63 6f 70 79 | 20 70 72 65 63 65 64 69 |hen copy| precedi|
|00002f50| 6e 67 20 67 61 70 20 62 | 61 63 6b 20 74 6f 20 53 |ng gap b|ack to S|
|00002f60| 72 63 4c 6f 77 61 64 64 | 25 0d 0b 86 4b 20 20 f2 |rcLowadd|%...K .|
|00002f70| 73 65 6c 63 6f 70 79 66 | 77 64 20 28 53 72 63 4c |selcopyf|wd (SrcL|
|00002f80| 6f 77 41 64 64 25 2c 20 | 53 72 63 41 64 64 25 2d |owAdd%, |SrcAdd%-|
|00002f90| 49 25 2c 20 44 65 73 74 | 4c 6f 77 41 64 64 25 2c |I%, Dest|LowAdd%,|
|00002fa0| 20 53 44 65 6e 73 69 74 | 79 25 2c 63 6f 6e 76 65 | SDensit|y%,conve|
|00002fb0| 72 74 25 29 0d 0b 90 05 | cd 0d 0b 9a 05 e1 0d 0b |rt%)....|........|
|00002fc0| a4 04 0d 0b ae 45 20 20 | 20 f4 20 74 72 69 65 73 |.....E | . tries|
|00002fd0| 20 62 6f 74 68 20 44 44 | 20 26 20 53 44 20 62 65 | both DD| & SD be|
|00002fe0| 66 6f 72 65 20 67 69 76 | 69 6e 67 20 75 70 2c 20 |fore giv|ing up, |
|00002ff0| 26 20 72 65 74 75 72 6e | 73 20 64 65 6e 73 69 74 |& return|s densit|
|00003000| 79 20 66 6f 75 6e 64 0d | 0b b8 3c dd f2 72 65 61 |y found.|..<..rea|
|00003010| 64 53 69 6e 67 6c 65 54 | 72 6b 28 64 72 76 2c 20 |dSingleT|rk(drv, |
|00003020| 74 72 6b 2c 20 68 65 61 | 64 2c 20 54 72 6b 44 65 |trk, hea|d, TrkDe|
|00003030| 73 63 25 2c 20 f8 20 73 | 72 74 44 65 6e 73 69 74 |sc%, . s|rtDensit|
|00003040| 79 25 29 0d 0b c2 29 ea | 20 65 6e 64 61 64 64 25 |y%)...).| endadd%|
|00003050| 2c 20 44 61 74 61 42 75 | 66 25 2c 20 64 65 6e 73 |, DataBu|f%, dens|
|00003060| 69 74 79 25 2c 20 63 6f | 75 6e 74 25 0d 0b cc 1b |ity%, co|unt%....|
|00003070| 54 72 6b 44 65 73 63 25 | 3f 62 75 66 54 72 6b 25 |TrkDesc%|?bufTrk%|
|00003080| 20 20 3d 20 74 72 6b 0d | 0b d6 1c 54 72 6b 44 65 | = trk.|...TrkDe|
|00003090| 73 63 25 3f 62 75 66 48 | 65 61 64 25 20 3d 20 68 |sc%?bufH|ead% = h|
|000030a0| 65 61 64 0d 0b e0 18 64 | 65 6e 73 69 74 79 25 3d |ead....d|ensity%=|
|000030b0| 73 72 74 44 65 6e 73 69 | 74 79 25 0d 0b ea 05 f5 |srtDensi|ty%.....|
|000030c0| 0d 0b f4 29 20 20 54 72 | 6b 44 65 73 63 25 3f 62 |...) Tr|kDesc%?b|
|000030d0| 75 66 54 72 6b 44 65 6e | 73 69 74 79 25 20 20 3d |ufTrkDen|sity% =|
|000030e0| 20 64 65 6e 73 69 74 79 | 25 0d 0b fe 28 20 20 44 | density|%...( D|
|000030f0| 61 74 61 42 75 66 25 20 | 3d 20 54 72 6b 44 65 73 |ataBuf% |= TrkDes|
|00003100| 63 25 20 2b 20 54 72 6b | 44 65 73 63 53 69 7a 65 |c% + Trk|DescSize|
|00003110| 25 0d 0c 08 4a 20 20 65 | 6e 64 61 64 64 25 20 3d |%...J e|ndadd% =|
|00003120| 20 44 61 74 61 42 75 66 | 25 20 2b 20 4d 61 78 53 | DataBuf|% + MaxS|
|00003130| 65 63 74 25 20 2d 31 20 | 2b 20 28 4d 61 78 54 72 |ect% -1 |+ (MaxTr|
|00003140| 6b 55 6e 66 6f 72 6d 61 | 74 25 20 3e 3e 20 28 32 |kUnforma|t% >> (2|
|00003150| 2d 64 65 6e 73 69 74 79 | 25 29 29 0d 0c 12 07 20 |-density|%)).... |
|00003160| 20 f5 0d 0c 1c 46 20 20 | 20 20 f4 20 74 6f 20 74 | ....F | . to t|
|00003170| 65 73 74 20 52 65 61 64 | 54 72 61 63 6b 20 6f 76 |est Read|Track ov|
|00003180| 65 72 72 75 6e 2c 20 6f | 6e 6c 79 20 72 65 70 65 |errun, o|nly repe|
|00003190| 61 74 20 69 66 20 52 65 | 61 64 54 72 61 63 6b 20 |at if Re|adTrack |
|000031a0| 6f 76 65 72 66 6c 6f 77 | 0d 0c 26 2e 20 20 20 20 |overflow|..&. |
|000031b0| f2 66 69 6c 6c 28 26 35 | 35 2c 20 44 61 74 61 42 |.fill(&5|5, DataB|
|000031c0| 75 66 25 2c 20 65 6e 64 | 61 64 64 25 2d 44 61 74 |uf%, end|add%-Dat|
|000031d0| 61 42 75 66 25 29 0d 0c | 30 36 20 20 20 20 f2 72 |aBuf%)..|06 .r|
|000031e0| 65 61 64 74 72 61 63 6b | 28 64 72 76 2c 20 74 72 |eadtrack|(drv, tr|
|000031f0| 6b 2c 20 68 65 61 64 2c | 20 64 65 6e 73 69 74 79 |k, head,| density|
|00003200| 25 2c 20 44 61 74 61 42 | 75 66 25 29 0d 0c 3a 1f |%, DataB|uf%)..:.|
|00003210| 20 20 20 20 65 6e 64 56 | 61 6c 69 64 44 61 74 61 | endV|alidData|
|00003220| 25 3d 65 6e 64 61 64 64 | 25 2d 31 0d 0c 44 27 20 |%=endadd|%-1..D' |
|00003230| 20 20 20 d6 20 66 69 6e | 64 63 68 61 6e 67 65 62 | . fin|dchangeb|
|00003240| 61 63 6b 2c 20 65 6e 64 | 56 61 6c 69 64 44 61 74 |ack, end|ValidDat|
|00003250| 61 25 0d 0c 4e 27 20 20 | fd 20 28 65 6e 64 61 64 |a%..N' |. (endad|
|00003260| 64 25 20 2d 20 65 6e 64 | 56 61 6c 69 64 44 61 74 |d% - end|ValidDat|
|00003270| 61 25 29 20 3e 20 35 30 | 30 0d 0c 58 2f 20 20 54 |a%) > 50|0..X/ T|
|00003280| 72 6b 44 65 73 63 25 21 | 62 75 66 45 6e 64 56 61 |rkDesc%!|bufEndVa|
|00003290| 6c 69 64 44 61 74 61 25 | 20 3d 20 65 6e 64 56 61 |lidData%| = endVa|
|000032a0| 6c 69 64 44 61 74 61 25 | 0d 0c 62 2f 20 20 f2 61 |lidData%|..b/ .a|
|000032b0| 6e 61 6c 79 73 65 54 72 | 6b 28 54 72 6b 44 65 73 |nalyseTr|k(TrkDes|
|000032c0| 63 25 2c 20 44 61 74 61 | 42 75 66 25 2c 20 64 65 |c%, Data|Buf%, de|
|000032d0| 6e 73 69 74 79 25 29 0d | 0c 6c 2e 20 20 f2 72 65 |nsity%).|.l. .re|
|000032e0| 61 64 54 72 6b 73 53 65 | 63 74 73 20 28 64 72 76 |adTrksSe|cts (drv|
|000032f0| 2c 20 54 72 6b 44 65 73 | 63 25 2c 20 64 65 6e 73 |, TrkDes|c%, dens|
|00003300| 69 74 79 25 29 0d 0c 76 | 22 20 20 63 6f 75 6e 74 |ity%)..v|" count|
|00003310| 25 3d 54 72 6b 44 65 73 | 63 25 3f 62 75 66 4e 75 |%=TrkDes|c%?bufNu|
|00003320| 6d 62 53 65 63 74 25 0d | 0c 80 12 20 20 e7 20 63 |mbSect%.|... . c|
|00003330| 6f 75 6e 74 25 3d 30 20 | 8c 0d 0c 8a 3e 20 20 20 |ount%=0 |....> |
|00003340| 20 64 65 6e 73 69 74 79 | 25 3d 20 64 65 6e 73 69 | density|%= densi|
|00003350| 74 79 25 20 82 20 33 20 | 20 20 3a f4 20 69 66 20 |ty% . 3 | :. if |
|00003360| 6e 6f 20 73 65 63 74 6f | 72 73 20 74 6f 67 67 6c |no secto|rs toggl|
|00003370| 65 20 53 44 2f 44 44 0d | 0c 94 07 20 20 cc 0d 0c |e SD/DD.|... ...|
|00003380| 9e 21 20 20 20 20 e7 20 | 73 72 74 44 65 6e 73 69 |.! . |srtDensi|
|00003390| 74 79 25 3c 3e 64 65 6e | 73 69 74 79 25 20 8c 0d |ty%<>den|sity% ..|
|000033a0| 0c a8 1c 20 20 20 20 20 | 20 f1 22 20 43 6f 6e 74 |... | ." Cont|
|000033b0| 69 6e 75 65 73 20 61 73 | 20 22 3b 0d 0c b2 30 20 |inues as| ";...0 |
|000033c0| 20 20 20 20 20 e7 20 64 | 65 6e 73 69 74 79 25 3d | . d|ensity%=|
|000033d0| 32 20 8c 20 f1 22 44 6f | 75 62 6c 65 22 3b 20 8b |2 . ."Do|uble"; .|
|000033e0| 20 f1 22 53 69 6e 67 6c | 65 22 3b 0d 0c bc 15 20 | ."Singl|e";.... |
|000033f0| 20 20 20 20 20 f1 22 20 | 44 65 6e 73 69 74 79 22 | ." |Density"|
|00003400| 0d 0c c6 12 20 20 20 20 | 20 20 62 6c 61 6e 6b 25 |.... | blank%|
|00003410| 3d a3 0d 0c d0 45 20 20 | 20 20 20 20 73 72 74 44 |=....E | srtD|
|00003420| 65 6e 73 69 74 79 25 3d | 64 65 6e 73 69 74 79 25 |ensity%=|density%|
|00003430| 20 20 20 20 20 20 20 3a | f4 20 69 66 20 73 65 63 | :|. if sec|
|00003440| 74 6f 72 73 2c 20 75 70 | 64 61 74 65 20 73 72 74 |tors, up|date srt|
|00003450| 44 65 6e 73 69 74 79 0d | 0c da 09 20 20 20 20 cd |Density.|... .|
|00003460| 0d 0c e4 07 20 20 cd 0d | 0c ee 1a fd 20 64 65 6e |.... ..|.... den|
|00003470| 73 69 74 79 25 3d 73 72 | 74 44 65 6e 73 69 74 79 |sity%=sr|tDensity|
|00003480| 25 0d 0c f8 0e e7 20 62 | 6c 61 6e 6b 25 20 8c 0d |%..... b|lank% ..|
|00003490| 0d 02 13 20 20 e7 20 63 | 6f 75 6e 74 25 3c 3e 30 |... . c|ount%<>0|
|000034a0| 20 8c 0d 0d 0c 10 20 20 | 20 20 62 6c 61 6e 6b 25 | ..... | blank%|
|000034b0| 3d a3 0d 0d 16 1b 20 20 | 20 20 f1 22 20 4e 6f 20 |=..... | ." No |
|000034c0| 6c 6f 6e 67 65 72 20 42 | 6c 61 6e 6b 22 0d 0d 20 |longer B|lank".. |
|000034d0| 07 20 20 cd 0d 0d 2a 05 | cc 0d 0d 34 12 20 20 e7 |. ...*.|...4. .|
|000034e0| 20 63 6f 75 6e 74 25 3d | 30 20 8c 0d 0d 3e 10 20 | count%=|0 ...>. |
|000034f0| 20 20 20 62 6c 61 6e 6b | 25 3d b9 0d 0d 48 1e 20 | blank|%=...H. |
|00003500| 20 20 20 f1 22 20 43 6f | 6e 74 69 6e 75 65 73 20 | ." Co|ntinues |
|00003510| 61 73 20 42 6c 61 6e 6b | 22 0d 0d 52 07 20 20 cd |as Blank|"..R. .|
|00003520| 0d 0d 5c 05 cd 0d 0d 66 | 23 f2 70 72 69 6e 74 55 |..\....f|#.printU|
|00003530| 6e 75 73 75 61 6c 28 54 | 72 6b 44 65 73 63 25 2c |nusual(T|rkDesc%,|
|00003540| 20 63 6f 75 6e 74 25 29 | 0d 0d 70 13 e7 20 63 68 | count%)|..p.. ch|
|00003550| 65 63 6b 46 6f 72 6d 61 | 74 20 8c 0d 0d 7a 74 20 |eckForma|t ...zt |
|00003560| 20 e7 20 28 28 54 72 6b | 44 65 73 63 25 3f 62 75 | . ((Trk|Desc%?bu|
|00003570| 66 4e 75 6d 62 53 65 63 | 74 25 29 20 3c 3e 20 63 |fNumbSec|t%) <> c|
|00003580| 68 6b 53 65 63 74 73 50 | 65 72 54 72 6b 29 20 84 |hkSectsP|erTrk) .|
|00003590| 20 28 28 54 72 6b 44 65 | 73 63 25 3f 62 75 66 4d | ((TrkDe|sc%?bufM|
|000035a0| 75 6c 74 69 53 65 63 74 | 46 6c 67 25 29 3d 20 a3 |ultiSect|Flg%)= .|
|000035b0| 29 20 84 20 28 64 65 6e | 73 69 74 79 25 20 3c 3e |) . (den|sity% <>|
|000035c0| 20 63 68 6b 44 65 6e 73 | 69 74 79 25 29 20 8c 0d | chkDens|ity%) ..|
|000035d0| 0d 84 40 20 20 20 20 f2 | 70 72 69 6e 74 4c 69 6e |..@ .|printLin|
|000035e0| 65 28 22 20 2a 2a 2a 2a | 2a 2a 2a 20 54 72 61 63 |e(" ****|*** Trac|
|000035f0| 6b 20 66 6f 72 6d 61 74 | 20 66 61 69 6c 65 64 20 |k format| failed |
|00003600| 63 68 65 63 6b 20 2a 2a | 2a 2a 2a 2a 2a 22 29 0d |check **|*****").|
|00003610| 0d 8e 07 20 20 cd 0d 0d | 98 05 cd 0d 0d a2 05 e1 |... ...|........|
|00003620| 0d 0d ac 04 0d 0d b6 4a | 20 20 20 f4 20 41 6e 61 |.......J| . Ana|
|00003630| 6c 79 73 65 73 20 52 65 | 61 64 20 54 72 61 63 6b |lyses Re|ad Track|
|00003640| 20 64 61 74 61 20 61 6e | 64 20 73 65 74 73 20 75 | data an|d sets u|
|00003650| 70 20 54 72 61 63 6b 20 | 64 65 73 63 72 69 70 74 |p Track |descript|
|00003660| 6f 72 20 61 63 63 6f 72 | 64 69 6e 67 6c 79 0d 0d |or accor|dingly..|
|00003670| c0 48 20 20 20 f4 20 49 | 67 6e 6f 72 65 20 61 6e |.H . I|gnore an|
|00003680| 79 20 27 61 70 70 61 72 | 65 6e 74 27 20 73 65 63 |y 'appar|ent' sec|
|00003690| 74 6f 72 73 20 77 69 74 | 68 6f 75 74 20 61 73 73 |tors wit|hout ass|
|000036a0| 6f 63 69 61 74 65 64 20 | 64 61 74 61 20 61 72 65 |ociated |data are|
|000036b0| 61 73 20 28 6f 72 0d 0d | ca 36 20 20 20 f4 20 20 |as (or..|.6 . |
|000036c0| 69 74 20 61 70 70 65 61 | 72 20 61 73 20 27 53 65 |it appea|r as 'Se|
|000036d0| 63 74 6f 72 20 6e 6f 74 | 20 66 6f 75 6e 64 27 20 |ctor not| found' |
|000036e0| 69 6e 20 61 6e 79 20 63 | 61 73 65 29 0d 0d d4 30 |in any c|ase)...0|
|000036f0| 20 20 20 f4 20 69 66 20 | 61 6e 79 74 68 69 6e 67 | . if |anything|
|00003700| 20 75 6e 75 73 75 61 6c | 20 75 6e 73 65 74 20 6d | unusual| unset m|
|00003710| 75 6c 74 69 53 65 63 74 | 46 6c 67 25 0d 0d de 2e |ultiSect|Flg%....|
|00003720| dd f2 61 6e 61 6c 79 73 | 65 54 72 6b 28 54 72 6b |..analys|eTrk(Trk|
|00003730| 44 65 73 63 25 2c 20 44 | 61 74 61 42 75 66 25 2c |Desc%, D|ataBuf%,|
|00003740| 20 64 65 6e 73 69 74 79 | 25 29 0d 0d e8 45 ea 20 | density|%)...E. |
|00003750| 63 6f 75 6e 74 25 2c 20 | 61 64 64 25 2c 20 49 44 |count%, |add%, ID|
|00003760| 61 64 64 25 2c 20 64 61 | 74 61 61 64 64 25 2c 20 |add%, da|taadd%, |
|00003770| 6d 61 72 6b 25 2c 20 49 | 44 63 6f 72 72 75 70 74 |mark%, I|Dcorrupt|
|00003780| 2c 20 6d 75 6c 74 69 53 | 65 63 74 46 6c 67 25 0d |, multiS|ectFlg%.|
|00003790| 0d f2 3b ea 20 49 44 25 | 2c 20 62 79 74 65 73 25 |..;. ID%|, bytes%|
|000037a0| 2c 20 66 69 72 73 74 49 | 44 73 79 6e 63 41 64 64 |, firstI|DsyncAdd|
|000037b0| 25 2c 20 65 6e 64 4c 61 | 73 74 44 61 74 61 25 2c |%, endLa|stData%,|
|000037c0| 20 72 65 6d 61 64 65 4f | 4b 25 0d 0d fc 22 6d 75 | remadeO|K%..."mu|
|000037d0| 6c 74 69 53 65 63 74 46 | 6c 67 25 3d b9 20 20 3a |ltiSectF|lg%=. :|
|000037e0| f4 20 69 65 20 64 65 66 | 61 75 6c 74 0d 0e 06 0c |. ie def|ault....|
|000037f0| 63 6f 75 6e 74 25 3d 30 | 0d 0e 10 4b 61 64 64 25 |count%=0|...Kadd%|
|00003800| 3d 44 61 74 61 42 75 66 | 25 20 2b 20 32 20 20 20 |=DataBuf|% + 2 |
|00003810| 3a f4 20 66 69 72 73 74 | 20 49 44 20 41 4d 20 6d |:. first| ID AM m|
|00003820| 75 73 74 20 62 65 20 61 | 74 20 6c 65 61 73 74 20 |ust be a|t least |
|00003830| 32 20 62 79 74 65 73 20 | 69 6e 74 6f 20 62 75 66 |2 bytes |into buf|
|00003840| 66 65 72 0d 0e 1a 25 65 | 6e 64 61 64 64 25 3d 54 |fer...%e|ndadd%=T|
|00003850| 72 6b 44 65 73 63 25 21 | 62 75 66 45 6e 64 56 61 |rkDesc%!|bufEndVa|
|00003860| 6c 69 64 44 61 74 61 25 | 0d 0e 24 05 f5 0d 0e 2e |lidData%|..$.....|
|00003870| 26 20 20 f2 66 69 6e 64 | 49 44 28 61 64 64 25 2c |& .find|ID(add%,|
|00003880| 20 65 6e 64 61 64 64 25 | 2c 20 64 65 6e 73 69 74 | endadd%|, densit|
|00003890| 79 25 29 0d 0e 38 11 20 | 20 e7 20 61 64 64 25 3c |y%)..8. | . add%<|
|000038a0| 3e 30 20 8c 0d 0e 42 43 | 20 20 20 20 e7 20 63 6f |>0 ...BC| . co|
|000038b0| 75 6e 74 25 3d 6d 61 78 | 53 65 63 74 73 41 6c 6c |unt%=max|SectsAll|
|000038c0| 6f 77 65 64 25 20 8c 20 | f1 27 22 46 61 69 6c 65 |owed% . |.'"Faile|
|000038d0| 64 3a 2d 20 74 6f 6f 20 | 6d 61 6e 79 20 73 65 63 |d:- too |many sec|
|000038e0| 74 6f 72 73 22 3a fa 0d | 0e 4c 13 20 20 20 20 49 |tors":..|.L. I|
|000038f0| 44 61 64 64 25 3d 61 64 | 64 25 0d 0e 56 2d 20 20 |Dadd%=ad|d%..V- |
|00003900| 20 20 e7 20 63 6f 75 6e | 74 25 3d 30 20 8c 20 66 | . coun|t%=0 . f|
|00003910| 69 72 73 74 49 44 73 79 | 6e 63 41 64 64 25 3d 49 |irstIDsy|ncAdd%=I|
|00003920| 44 61 64 64 25 2d 34 0d | 0e 60 2b 20 20 20 20 f2 |Dadd%-4.|.`+ .|
|00003930| 73 65 74 49 44 50 74 72 | 28 54 72 6b 44 65 73 63 |setIDPtr|(TrkDesc|
|00003940| 25 2c 20 63 6f 75 6e 74 | 25 2c 20 49 44 61 64 64 |%, count|%, IDadd|
|00003950| 25 29 0d 0e 6a 3d 20 20 | 20 20 f2 73 65 74 53 65 |%)..j= | .setSe|
|00003960| 63 74 49 6e 66 6f 28 54 | 72 6b 44 65 73 63 25 2c |ctInfo(T|rkDesc%,|
|00003970| 20 63 6f 75 6e 74 25 2c | 20 30 29 20 20 3a f4 20 | count%,| 0) :. |
|00003980| 30 3d 64 65 66 61 75 6c | 74 20 76 61 6c 75 65 0d |0=defaul|t value.|
|00003990| 0e 74 39 20 20 20 20 f2 | 73 65 74 53 65 63 74 49 |.t9 .|setSectI|
|000039a0| 44 28 54 72 6b 44 65 73 | 63 25 2c 20 63 6f 75 6e |D(TrkDes|c%, coun|
|000039b0| 74 25 2c 20 49 44 61 64 | 64 25 21 30 29 20 3a f4 |t%, IDad|d%!0) :.|
|000039c0| 20 73 61 76 65 20 49 44 | 0d 0e 7e 10 20 20 20 20 | save ID|..~. |
|000039d0| 61 64 64 25 20 2b 3d 36 | 0d 0e 88 20 20 20 20 20 |add% +=6|... |
|000039e0| e7 20 28 65 6e 64 61 64 | 64 25 2d 61 64 64 25 29 |. (endad|d%-add%)|
|000039f0| 20 3c 20 31 32 38 20 8c | 0d 0e 92 3a 20 20 20 20 | < 128 .|...: |
|00003a00| 20 20 f4 20 69 66 20 74 | 68 65 72 65 20 69 73 20 | . if t|here is |
|00003a10| 61 20 64 61 74 61 20 61 | 72 65 61 20 69 74 20 6f |a data a|rea it o|
|00003a20| 76 65 72 66 6c 6f 77 73 | 20 69 6e 64 65 78 2c 20 |verflows| index, |
|00003a30| 73 6f 0d 0e 9c 42 20 20 | 20 20 20 20 f4 20 77 72 |so...B | . wr|
|00003a40| 61 70 20 61 72 6f 75 6e | 64 20 64 61 74 61 20 66 |ap aroun|d data f|
|00003a50| 72 6f 6d 20 73 74 61 72 | 74 20 6f 66 20 74 72 61 |rom star|t of tra|
|00003a60| 63 6b 20 28 62 65 66 6f | 72 65 20 66 69 72 73 74 |ck (befo|re first|
|00003a70| 20 49 44 29 0d 0e a6 29 | 20 20 20 20 20 20 f4 20 | ID)...)| . |
|00003a80| 74 6f 20 65 6e 73 75 72 | 65 20 49 20 73 65 65 20 |to ensur|e I see |
|00003a90| 74 68 65 20 64 61 74 61 | 20 6d 61 72 6b 0d 0e b0 |the data| mark...|
|00003aa0| 37 20 20 20 20 20 20 d6 | 20 63 6f 70 79 66 77 64 |7 .| copyfwd|
|00003ab0| 2c 20 44 61 74 61 42 75 | 66 25 2c 20 66 69 72 73 |, DataBu|f%, firs|
|00003ac0| 74 49 44 73 79 6e 63 41 | 64 64 25 2c 20 65 6e 64 |tIDsyncA|dd%, end|
|00003ad0| 61 64 64 25 0d 0e ba 2d | 20 20 20 20 20 20 65 6e |add%...-| en|
|00003ae0| 64 61 64 64 25 20 2b 3d | 20 66 69 72 73 74 49 44 |dadd% +=| firstID|
|00003af0| 73 79 6e 63 41 64 64 25 | 2d 44 61 74 61 42 75 66 |syncAdd%|-DataBuf|
|00003b00| 25 0d 0e c4 09 20 20 20 | 20 cd 0d 0e ce 40 20 20 |%.... | ....@ |
|00003b10| 20 20 f2 66 69 6e 64 41 | 4d 20 28 61 64 64 25 2c | .findA|M (add%,|
|00003b20| 65 6e 64 61 64 64 25 2c | 64 65 6e 73 69 74 79 25 |endadd%,|density%|
|00003b30| 29 20 3a f4 20 61 69 6d | 20 74 6f 20 66 69 6e 64 |) :. aim| to find|
|00003b40| 20 44 61 74 61 20 41 72 | 65 61 0d 0e d8 44 20 20 | Data Ar|ea...D |
|00003b50| 20 20 64 61 74 61 61 64 | 64 25 3d 30 20 20 20 20 | dataad|d%=0 |
|00003b60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003b70| 20 20 20 20 20 3a f4 20 | 64 65 66 61 75 6c 74 20 | :. |default |
|00003b80| 69 66 20 6e 6f 20 44 61 | 74 61 41 72 65 61 0d 0e |if no Da|taArea..|
|00003b90| e2 14 20 20 20 20 e7 20 | 61 64 64 25 20 3c 3e 30 |.. . |add% <>0|
|00003ba0| 20 8c 0d 0e ec 3e 20 20 | 20 20 20 20 6d 61 72 6b | ....> | mark|
|00003bb0| 25 3d 28 61 64 64 25 3f | 2d 31 29 20 20 20 20 20 |%=(add%?|-1) |
|00003bc0| 20 20 20 20 20 20 3a f4 | 20 6d 75 73 74 20 62 65 | :.| must be|
|00003bd0| 20 62 65 74 77 65 65 6e | 20 26 46 38 2d 26 46 46 | between| &F8-&FF|
|00003be0| 0d 0e f6 1a 20 20 20 20 | 20 20 e7 20 6d 61 72 6b |.... | . mark|
|00003bf0| 25 20 3e 3d 20 26 46 43 | 20 8c 0d 0f 00 47 20 20 |% >= &FC| ....G |
|00003c00| 20 20 20 20 20 20 61 64 | 64 25 20 2d 3d 20 31 30 | ad|d% -= 10|
|00003c10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3a f4 | | :.|
|00003c20| 20 69 66 20 6e 6f 74 20 | 44 61 74 61 20 41 72 65 | if not |Data Are|
|00003c30| 61 2c 20 74 75 72 6e 20 | 62 61 63 6b 20 61 64 64 |a, turn |back add|
|00003c40| 25 0d 0f 0a 0b 20 20 20 | 20 20 20 cc 0d 0f 14 19 |%.... | .....|
|00003c50| 20 20 20 20 20 20 20 20 | 64 61 74 61 61 64 64 25 | |dataadd%|
|00003c60| 3d 61 64 64 25 0d 0f 1e | 1a 20 20 20 20 20 20 20 |=add%...|. |
|00003c70| 20 e7 20 6d 61 72 6b 25 | 3d 20 26 46 38 20 8c 0d | . mark%|= &F8 ..|
|00003c80| 0f 28 20 20 20 20 20 20 | 20 20 20 20 20 f4 20 69 |.( | . i|
|00003c90| 74 73 20 64 65 6c 65 74 | 65 64 20 64 61 74 61 0d |ts delet|ed data.|
|00003ca0| 0f 32 1f 20 20 20 20 20 | 20 20 20 20 20 6d 75 6c |.2. | mul|
|00003cb0| 74 69 53 65 63 74 46 6c | 67 25 20 3d 20 a3 0d 0f |tiSectFl|g% = ...|
|00003cc0| 3c 36 20 20 20 20 20 20 | 20 20 20 20 f2 61 64 64 |<6 | .add|
|00003cd0| 53 65 63 74 49 6e 66 6f | 28 54 72 6b 44 65 73 63 |SectInfo|(TrkDesc|
|00003ce0| 25 2c 20 63 6f 75 6e 74 | 25 2c 20 64 65 6c 44 61 |%, count|%, delDa|
|00003cf0| 74 61 25 29 0d 0f 46 0d | 20 20 20 20 20 20 20 20 |ta%)..F.| |
|00003d00| cd 0d 0f 50 0b 20 20 20 | 20 20 20 cd 0d 0f 5a 09 |...P. | ...Z.|
|00003d10| 20 20 20 20 cd 0d 0f 64 | 2f 20 20 20 20 f2 73 65 | ...d|/ .se|
|00003d20| 74 44 61 74 61 50 74 72 | 28 54 72 6b 44 65 73 63 |tDataPtr|(TrkDesc|
|00003d30| 25 2c 20 63 6f 75 6e 74 | 25 2c 20 64 61 74 61 61 |%, count|%, dataa|
|00003d40| 64 64 25 29 0d 0f 6e 16 | 20 20 20 20 e7 20 64 61 |dd%)..n.| . da|
|00003d50| 74 61 61 64 64 25 3d 30 | 20 8c 0d 0f 78 47 20 20 |taadd%=0| ...xG |
|00003d60| 20 20 20 20 f4 20 6e 6f | 20 64 61 74 61 20 28 73 | . no| data (s|
|00003d70| 6f 20 74 68 65 20 49 44 | 20 77 69 6c 6c 20 62 65 |o the ID| will be|
|00003d80| 20 69 67 6e 6f 72 65 64 | 29 2c 20 73 6f 20 66 6f | ignored|), so fo|
|00003d90| 72 20 54 52 41 43 45 20 | 73 61 6b 65 20 6f 6e 6c |r TRACE |sake onl|
|00003da0| 79 0d 0f 82 1b 20 20 20 | 20 20 20 6d 75 6c 74 69 |y.... | multi|
|00003db0| 53 65 63 74 46 6c 67 25 | 20 3d 20 a3 0d 0f 8c 31 |SectFlg%| = ....1|
|00003dc0| 20 20 20 20 20 20 f2 61 | 64 64 53 65 63 74 49 6e | .a|ddSectIn|
|00003dd0| 66 6f 28 54 72 6b 44 65 | 73 63 25 2c 20 63 6f 75 |fo(TrkDe|sc%, cou|
|00003de0| 6e 74 25 2c 20 6e 6f 44 | 61 74 61 25 29 0d 0f 96 |nt%, noD|ata%)...|
|00003df0| 09 20 20 20 20 cc 0d 0f | a0 46 20 20 20 20 20 20 |. ...|.F |
|00003e00| f4 20 54 68 65 72 65 20 | 69 73 20 61 20 64 61 74 |. There |is a dat|
|00003e10| 61 20 61 72 65 61 2c 20 | 73 6f 20 6f 6e 6c 79 20 |a area, |so only |
|00003e20| 74 68 65 6e 20 6b 65 65 | 70 20 61 20 72 65 63 6f |then kee|p a reco|
|00003e30| 72 64 20 6f 66 20 73 65 | 63 74 6f 72 0d 0f aa 3f |rd of se|ctor...?|
|00003e40| 20 20 20 20 20 20 f4 20 | 61 6e 64 20 6f 6e 6c 79 | . |and only|
|00003e50| 20 74 68 65 6e 20 74 65 | 73 74 20 66 6f 72 20 63 | then te|st for c|
|00003e60| 6f 72 72 75 70 74 20 49 | 44 27 73 20 6f 72 20 69 |orrupt I|D's or i|
|00003e70| 6c 6c 65 67 61 6c 20 49 | 44 27 73 0d 0f b4 1c 20 |llegal I|D's.... |
|00003e80| 20 20 20 20 20 e7 20 28 | 49 44 61 64 64 25 3f 33 | . (|IDadd%?3|
|00003e90| 20 3e 20 33 29 20 8c 0d | 0f be 3d 20 20 20 20 20 | > 3) ..|..= |
|00003ea0| 20 20 20 f4 20 70 72 6f | 62 61 62 6c 79 20 63 6f | . pro|bably co|
|00003eb0| 72 72 75 70 74 20 49 44 | 20 28 6f 72 20 6d 61 79 |rrupt ID| (or may|
|00003ec0| 62 65 20 6e 6f 74 20 49 | 44 20 6a 75 73 74 20 64 |be not I|D just d|
|00003ed0| 61 74 61 29 0d 0f c8 22 | 20 20 20 20 20 20 20 20 |ata)..."| |
|00003ee0| e7 20 64 65 6e 73 69 74 | 79 25 3d 44 44 65 6e 73 |. densit|y%=DDens|
|00003ef0| 69 74 79 25 20 8c 0d 0f | d2 3f 20 20 20 20 20 20 |ity% ...|.? |
|00003f00| 20 20 20 20 f4 20 72 65 | 6d 61 6b 65 20 49 44 20 | . re|make ID |
|00003f10| 26 20 73 65 74 20 3d 49 | 44 25 20 74 68 65 6e 20 |& set =I|D% then |
|00003f20| 6f 76 65 72 77 72 69 74 | 65 20 73 61 76 65 64 20 |overwrit|e saved |
|00003f30| 73 74 61 74 65 0d 0f dc | 38 20 20 20 20 20 20 20 |state...|8 |
|00003f40| 20 20 20 d6 20 72 65 6d | 61 6b 65 49 44 2c 20 6d | . rem|akeID, m|
|00003f50| 61 70 49 44 25 2c 20 49 | 44 61 64 64 25 2c 20 49 |apID%, I|Dadd%, I|
|00003f60| 44 25 2c 20 72 65 6d 61 | 64 65 4f 4b 25 0d 0f e6 |D%, rema|deOK%...|
|00003f70| 1e 20 20 20 20 20 20 20 | 20 20 20 e7 20 72 65 6d |. | . rem|
|00003f80| 61 64 65 4f 4b 25 3c 3e | 30 20 8c 0d 0f f0 33 20 |adeOK%<>|0 ....3 |
|00003f90| 20 20 20 20 20 20 20 20 | 20 20 20 f4 20 73 61 76 | | . sav|
|00003fa0| 65 20 72 65 6d 61 64 65 | 64 20 49 44 20 6f 6e 6c |e remade|d ID onl|
|00003fb0| 79 20 69 66 20 72 65 6d | 61 64 65 4f 4b 25 0d 0f |y if rem|adeOK%..|
|00003fc0| fa 31 20 20 20 20 20 20 | 20 20 20 20 20 20 f2 73 |.1 | .s|
|00003fd0| 65 74 53 65 63 74 49 44 | 28 54 72 6b 44 65 73 63 |etSectID|(TrkDesc|
|00003fe0| 25 2c 20 63 6f 75 6e 74 | 25 2c 20 49 44 25 29 0d |%, count|%, ID%).|
|00003ff0| 10 04 0f 20 20 20 20 20 | 20 20 20 20 20 cd 0d 10 |... | ...|
|00004000| 0e 0d 20 20 20 20 20 20 | 20 20 cc 0d 10 18 38 20 |.. | ....8 |
|00004010| 20 20 20 20 20 20 20 20 | 20 f4 20 6c 65 61 76 65 | | . leave|
|00004020| 20 69 74 20 61 73 20 69 | 74 20 69 73 2c 20 69 66 | it as i|t is, if|
|00004030| 20 69 74 73 20 53 69 6e | 67 6c 65 20 44 65 6e 73 | its Sin|gle Dens|
|00004040| 69 74 79 0d 10 22 0d 20 | 20 20 20 20 20 20 20 cd |ity..". | .|
|00004050| 0d 10 2c 0b 20 20 20 20 | 20 20 cd 0d 10 36 43 20 |..,. | ...6C |
|00004060| 20 20 20 20 20 f2 74 65 | 73 74 49 6c 6c 65 67 61 | .te|stIllega|
|00004070| 6c 49 64 28 54 72 6b 44 | 65 73 63 25 2c 20 63 6f |lId(TrkD|esc%, co|
|00004080| 75 6e 74 25 2c 20 64 65 | 6e 73 69 74 79 25 2c 20 |unt%, de|nsity%, |
|00004090| 6d 75 6c 74 69 53 65 63 | 74 46 6c 67 25 29 0d 10 |multiSec|tFlg%)..|
|000040a0| 40 19 20 20 20 20 20 20 | 63 6f 75 6e 74 25 3d 63 |@. |count%=c|
|000040b0| 6f 75 6e 74 25 2b 31 0d | 10 4a 09 20 20 20 20 cd |ount%+1.|.J. .|
|000040c0| 0d 10 54 07 20 20 cd 0d | 10 5e 0c fd 20 61 64 64 |..T. ..|.^.. add|
|000040d0| 25 3d 30 0d 10 68 11 e7 | 20 63 6f 75 6e 74 25 3c |%=0..h..| count%<|
|000040e0| 3e 30 20 8c 0d 10 72 28 | 20 20 49 44 25 3d a4 67 |>0 ...r(| ID%=.g|
|000040f0| 65 74 53 65 63 74 49 44 | 28 54 72 6b 44 65 73 63 |etSectID|(TrkDesc|
|00004100| 25 2c 20 63 6f 75 6e 74 | 25 2d 31 29 0d 10 7c 27 |%, count|%-1)..|'|
|00004110| 20 20 62 79 74 65 73 25 | 3d 31 20 3c 3c 20 28 37 | bytes%|=1 << (7|
|00004120| 2b 20 28 33 20 80 20 28 | 49 44 25 20 3e 3e 32 34 |+ (3 . (|ID% >>24|
|00004130| 29 29 29 0d 10 86 40 20 | 20 65 6e 64 4c 61 73 74 |)))...@ | endLast|
|00004140| 44 61 74 61 25 3d 20 62 | 79 74 65 73 25 2b 35 2b |Data%= b|ytes%+5+|
|00004150| 34 20 2b 20 a4 67 65 74 | 44 61 74 61 50 74 72 28 |4 + .get|DataPtr(|
|00004160| 54 72 6b 44 65 73 63 25 | 2c 20 63 6f 75 6e 74 25 |TrkDesc%|, count%|
|00004170| 2d 31 29 0d 10 90 32 20 | 20 e7 20 65 6e 64 4c 61 |-1)...2 | . endLa|
|00004180| 73 74 44 61 74 61 25 20 | 3e 20 54 72 6b 44 65 73 |stData% |> TrkDes|
|00004190| 63 25 21 62 75 66 45 6e | 64 56 61 6c 69 64 44 61 |c%!bufEn|dValidDa|
|000041a0| 74 61 25 20 8c 0d 10 9a | 43 20 20 20 20 f4 20 6c |ta% ....|C . l|
|000041b0| 61 73 74 20 73 65 63 74 | 6f 72 27 73 20 64 61 74 |ast sect|or's dat|
|000041c0| 61 20 61 72 65 61 20 6f | 76 65 72 66 6c 6f 77 73 |a area o|verflows|
|000041d0| 20 49 6e 64 65 78 2c 20 | 73 6f 20 6d 61 72 6b 20 | Index, |so mark |
|000041e0| 74 68 65 20 66 61 63 74 | 0d 10 a4 34 20 20 20 20 |the fact|...4 |
|000041f0| f2 61 64 64 53 65 63 74 | 49 6e 66 6f 28 54 72 6b |.addSect|Info(Trk|
|00004200| 44 65 73 63 25 2c 20 63 | 6f 75 6e 74 25 2d 31 2c |Desc%, c|ount%-1,|
|00004210| 20 6f 76 65 72 49 6e 64 | 65 78 25 29 0d 10 ae 24 | overInd|ex%)...$|
|00004220| 20 20 20 20 f4 20 26 20 | 63 68 61 6e 67 65 20 65 | . & |change e|
|00004230| 6e 64 20 6f 66 20 76 61 | 6c 69 64 20 64 61 74 61 |nd of va|lid data|
|00004240| 0d 10 b8 46 20 20 20 20 | 65 6e 64 61 64 64 25 20 |...F |endadd% |
|00004250| 3d 20 66 69 72 73 74 49 | 44 73 79 6e 63 41 64 64 |= firstI|DsyncAdd|
|00004260| 25 2d 44 61 74 61 42 75 | 66 25 20 2b 20 54 72 6b |%-DataBu|f% + Trk|
|00004270| 44 65 73 63 25 21 62 75 | 66 45 6e 64 56 61 6c 69 |Desc%!bu|fEndVali|
|00004280| 64 44 61 74 61 25 0d 10 | c2 22 20 20 20 20 e7 20 |dData%..|." . |
|00004290| 65 6e 64 61 64 64 25 20 | 3c 20 65 6e 64 4c 61 73 |endadd% |< endLas|
|000042a0| 74 44 61 74 61 25 20 8c | 0d 10 cc 1e 20 20 20 20 |tData% .|.... |
|000042b0| 20 20 65 6e 64 4c 61 73 | 74 44 61 74 61 25 3d 65 | endLas|tData%=e|
|000042c0| 6e 64 61 64 64 25 0d 10 | d6 09 20 20 20 20 cd 0d |ndadd%..|.. ..|
|000042d0| 10 e0 2f 20 20 20 20 f4 | 20 73 65 74 20 65 6e 64 |../ .| set end|
|000042e0| 20 6f 66 20 76 61 6c 69 | 64 20 64 61 74 61 20 74 | of vali|d data t|
|000042f0| 6f 20 73 68 6f 72 74 65 | 72 20 6f 66 20 2d 0d 10 |o shorte|r of -..|
|00004300| ea 47 20 20 20 20 f4 20 | 39 20 62 79 74 65 73 20 |.G . |9 bytes |
|00004310| 61 66 74 65 72 20 64 61 | 74 61 20 61 72 65 61 20 |after da|ta area |
|00004320| 43 52 43 20 28 61 6c 6c | 6f 77 73 20 66 6f 72 20 |CRC (all|ows for |
|00004330| 6d 69 6e 5f 67 61 70 3d | 35 20 2b 20 49 44 5f 41 |min_gap=|5 + ID_A|
|00004340| 4d 3d 34 29 2c 0d 10 f4 | 31 20 20 20 20 f4 20 6f |M=4),...|1 . o|
|00004350| 72 20 73 74 61 72 74 20 | 6f 66 20 66 69 72 73 74 |r start |of first|
|00004360| 20 73 65 63 74 6f 72 20 | 77 72 61 70 70 65 64 20 | sector |wrapped |
|00004370| 61 72 6f 75 6e 64 0d 10 | fe 34 20 20 20 20 f4 20 |around..|.4 . |
|00004380| 28 65 6e 73 75 72 65 73 | 20 66 69 72 73 74 20 49 |(ensures| first I|
|00004390| 44 20 77 69 6c 6c 20 6e | 6f 74 20 62 65 20 6f 76 |D will n|ot be ov|
|000043a0| 65 72 77 72 69 74 74 65 | 6e 29 0d 11 08 30 20 20 |erwritte|n)...0 |
|000043b0| 20 20 54 72 6b 44 65 73 | 63 25 21 62 75 66 45 6e | TrkDes|c%!bufEn|
|000043c0| 64 56 61 6c 69 64 44 61 | 74 61 25 20 3d 20 65 6e |dValidDa|ta% = en|
|000043d0| 64 4c 61 73 74 44 61 74 | 61 25 0d 11 12 07 20 20 |dLastDat|a%.... |
|000043e0| cd 0d 11 1c 05 cd 0d 11 | 26 2c 54 72 6b 44 65 73 |........|&,TrkDes|
|000043f0| 63 25 3f 62 75 66 4d 75 | 6c 74 69 53 65 63 74 46 |c%?bufMu|ltiSectF|
|00004400| 6c 67 25 3d 20 6d 75 6c | 74 69 53 65 63 74 46 6c |lg%= mul|tiSectFl|
|00004410| 67 25 0d 11 30 22 54 72 | 6b 44 65 73 63 25 3f 62 |g%..0"Tr|kDesc%?b|
|00004420| 75 66 4e 75 6d 62 53 65 | 63 74 25 20 3d 20 63 6f |ufNumbSe|ct% = co|
|00004430| 75 6e 74 25 0d 11 3a 05 | e1 0d 11 44 04 0d 11 4e |unt%..:.|...D...N|
|00004440| 3c 20 f4 20 6f 6e 20 65 | 78 69 74 20 61 64 64 25 |< . on e|xit add%|
|00004450| 20 3d 20 61 64 64 72 65 | 73 73 20 6f 66 20 49 44 | = addre|ss of ID|
|00004460| 20 28 66 6f 75 6e 64 29 | 20 6f 72 20 30 20 28 4e | (found)| or 0 (N|
|00004470| 4f 54 20 66 6f 75 6e 64 | 29 0d 11 58 28 dd f2 66 |OT found|)..X(..f|
|00004480| 69 6e 64 49 44 20 28 f8 | 20 61 64 64 25 2c 20 65 |indID (.| add%, e|
|00004490| 6e 64 61 64 64 25 2c 20 | 64 65 6e 73 69 74 79 25 |ndadd%, |density%|
|000044a0| 29 0d 11 62 1a e7 20 64 | 65 6e 73 69 74 79 25 3d |)..b.. d|ensity%=|
|000044b0| 44 44 65 6e 73 69 74 79 | 25 20 8c 0d 11 6c 1f 20 |DDensity|% ...l. |
|000044c0| 20 d6 20 44 44 66 69 6e | 64 49 44 2c 20 61 64 64 | . DDfin|dID, add|
|000044d0| 25 2c 20 65 6e 64 61 64 | 64 25 0d 11 76 05 cc 0d |%, endad|d%..v...|
|000044e0| 11 80 07 20 20 f5 0d 11 | 8a 21 20 20 20 20 d6 20 |... ...|.! . |
|000044f0| 53 44 66 69 6e 64 49 44 | 2c 20 61 64 64 25 2c 20 |SDfindID|, add%, |
|00004500| 65 6e 64 61 64 64 25 0d | 11 94 44 20 20 fd 20 28 |endadd%.|..D . (|
|00004510| 61 64 64 25 3d 30 29 20 | 84 20 28 28 61 64 64 25 |add%=0) |. ((add%|
|00004520| 3f 33 29 3c 3d 20 33 29 | 3a f4 20 65 78 74 72 61 |?3)<= 3)|:. extra|
|00004530| 20 74 65 73 74 20 66 6f | 72 20 76 61 6c 69 64 20 | test fo|r valid |
|00004540| 53 69 7a 65 20 66 6f 72 | 20 53 44 0d 11 9e 05 cd |Size for| SD.....|
|00004550| 0d 11 a8 05 e1 0d 11 b2 | 04 0d 11 bc 46 20 f4 20 |........|....F . |
|00004560| 6f 6e 20 65 78 69 74 20 | 61 64 64 25 20 3d 20 61 |on exit |add% = a|
|00004570| 64 64 72 65 73 73 20 6f | 66 20 61 64 64 72 65 73 |ddress o|f addres|
|00004580| 73 20 6d 61 72 6b 20 28 | 66 6f 75 6e 64 29 20 6f |s mark (|found) o|
|00004590| 72 20 30 20 28 4e 4f 54 | 20 66 6f 75 6e 64 29 0d |r 0 (NOT| found).|
|000045a0| 11 c6 28 dd f2 66 69 6e | 64 41 4d 20 28 f8 20 61 |..(..fin|dAM (. a|
|000045b0| 64 64 25 2c 20 65 6e 64 | 61 64 64 25 2c 20 64 65 |dd%, end|add%, de|
|000045c0| 6e 73 69 74 79 25 29 0d | 11 d0 1a e7 20 64 65 6e |nsity%).|.... den|
|000045d0| 73 69 74 79 25 3d 44 44 | 65 6e 73 69 74 79 25 20 |sity%=DD|ensity% |
|000045e0| 8c 0d 11 da 1f 20 20 d6 | 20 44 44 66 69 6e 64 41 |..... .| DDfindA|
|000045f0| 4d 2c 20 61 64 64 25 2c | 20 65 6e 64 61 64 64 25 |M, add%,| endadd%|
|00004600| 0d 11 e4 05 cc 0d 11 ee | 1f 20 20 d6 20 53 44 66 |........|. . SDf|
|00004610| 69 6e 64 41 4d 2c 20 61 | 64 64 25 2c 20 65 6e 64 |indAM, a|dd%, end|
|00004620| 61 64 64 25 0d 11 f8 05 | cd 0d 12 02 05 e1 0d 12 |add%....|........|
|00004630| 0c 04 0d 12 16 40 20 20 | f4 20 49 46 20 4d 75 6c |.....@ |. IF Mul|
|00004640| 74 69 20 73 65 63 74 6f | 72 2c 20 73 65 74 75 70 |ti secto|r, setup|
|00004650| 20 6d 65 6d 6f 72 79 20 | 70 6f 69 6e 74 65 72 20 | memory |pointer |
|00004660| 6c 69 73 74 20 26 20 64 | 6f 20 6f 6e 65 20 72 65 |list & d|o one re|
|00004670| 61 64 0d 12 20 43 20 20 | f4 20 45 4c 53 45 20 28 |ad.. C |. ELSE (|
|00004680| 6f 72 20 69 66 20 61 62 | 6f 76 65 20 72 65 61 64 |or if ab|ove read|
|00004690| 20 66 61 69 6c 73 29 20 | 72 65 61 64 20 65 61 63 | fails) |read eac|
|000046a0| 68 20 73 65 63 74 6f 72 | 20 69 6e 64 69 76 69 64 |h sector| individ|
|000046b0| 75 61 6c 6c 79 0d 12 2a | 31 20 20 f4 20 69 66 20 |ually..*|1 . if |
|000046c0| 6d 75 6c 74 69 2d 73 65 | 63 74 6f 72 20 72 65 61 |multi-se|ctor rea|
|000046d0| 64 20 66 61 69 6c 73 20 | 75 6e 73 65 74 20 69 74 |d fails |unset it|
|000046e0| 73 20 66 6c 61 67 0d 12 | 34 2e dd f2 72 65 61 64 |s flag..|4...read|
|000046f0| 54 72 6b 73 53 65 63 74 | 73 20 28 64 72 76 25 2c |TrksSect|s (drv%,|
|00004700| 20 54 72 6b 44 65 73 63 | 25 2c 20 64 65 6e 73 69 | TrkDesc|%, densi|
|00004710| 74 79 25 29 0d 12 3e 40 | ea 20 73 65 63 74 46 6f |ty%)..>@|. sectFo|
|00004720| 75 6e 64 25 2c 74 72 6b | 25 2c 68 65 61 64 25 2c |und%,trk|%,head%,|
|00004730| 6c 6f 77 53 65 63 74 25 | 2c 73 65 63 74 53 69 7a |lowSect%|,sectSiz|
|00004740| 65 25 2c 61 64 64 25 2c | 49 44 61 64 64 25 2c 73 |e%,add%,|IDadd%,s|
|00004750| 65 63 74 25 0d 12 48 38 | ea 20 6d 75 6c 74 69 53 |ect%..H8|. multiS|
|00004760| 65 63 74 46 6c 67 25 2c | 20 63 6f 75 6e 74 25 2c |ectFlg%,| count%,|
|00004770| 20 62 79 74 65 73 25 2c | 20 69 6e 66 6f 25 2c 20 | bytes%,| info%, |
|00004780| 6e 6f 74 52 65 61 6c 53 | 65 63 74 25 0d 12 52 05 |notRealS|ect%..R.|
|00004790| f5 0d 12 5c 41 20 20 6e | 6f 74 52 65 61 6c 53 65 |...\A n|otRealSe|
|000047a0| 63 74 25 3d a3 20 3a f4 | 20 62 72 65 61 6b 20 6f |ct%=. :.| break o|
|000047b0| 75 74 20 66 6f 72 20 27 | 53 65 63 74 6f 72 20 6e |ut for '|Sector n|
|000047c0| 6f 74 20 66 6f 75 6e 64 | 27 20 26 20 72 65 2d 74 |ot found|' & re-t|
|000047d0| 72 79 0d 12 66 24 20 20 | 63 6f 75 6e 74 25 20 3d |ry..f$ |count% =|
|000047e0| 20 54 72 6b 44 65 73 63 | 25 3f 62 75 66 4e 75 6d | TrkDesc|%?bufNum|
|000047f0| 62 53 65 63 74 25 0d 12 | 70 13 20 20 e7 20 63 6f |bSect%..|p. . co|
|00004800| 75 6e 74 25 3c 3e 30 20 | 8c 0d 12 7a 1e 20 20 20 |unt%<>0 |...z. |
|00004810| 20 74 72 6b 25 20 3d 54 | 72 6b 44 65 73 63 25 3f | trk% =T|rkDesc%?|
|00004820| 62 75 66 54 72 6b 25 0d | 12 84 1f 20 20 20 20 68 |bufTrk%.|... h|
|00004830| 65 61 64 25 3d 54 72 6b | 44 65 73 63 25 3f 62 75 |ead%=Trk|Desc%?bu|
|00004840| 66 48 65 61 64 25 0d 12 | 8e 30 20 20 20 20 6d 75 |fHead%..|.0 mu|
|00004850| 6c 74 69 53 65 63 74 46 | 6c 67 25 3d 20 54 72 6b |ltiSectF|lg%= Trk|
|00004860| 44 65 73 63 25 3f 62 75 | 66 4d 75 6c 74 69 53 65 |Desc%?bu|fMultiSe|
|00004870| 63 74 46 6c 67 25 0d 12 | 98 38 20 20 20 20 f4 20 |ctFlg%..|.8 . |
|00004880| 2d 2d 20 6d 61 6e 79 20 | 6f 66 20 62 65 6c 6f 77 |-- many |of below|
|00004890| 20 63 61 6e 20 73 65 74 | 20 6d 75 6c 74 69 53 65 | can set| multiSe|
|000048a0| 63 74 46 6c 67 25 20 3d | 20 46 41 4c 53 45 0d 12 |ctFlg% =| FALSE..|
|000048b0| a2 34 20 20 20 20 f2 73 | 65 74 4c 65 6e 67 74 68 |.4 .s|etLength|
|000048c0| 73 28 54 72 6b 44 65 73 | 63 25 2c 20 63 6f 75 6e |s(TrkDes|c%, coun|
|000048d0| 74 25 2c 20 6d 75 6c 74 | 69 53 65 63 74 46 6c 67 |t%, mult|iSectFlg|
|000048e0| 25 29 0d 12 ac 19 20 20 | 20 20 e7 20 6d 75 6c 74 |%).... | . mult|
|000048f0| 69 53 65 63 74 46 6c 67 | 25 20 8c 0d 12 b6 39 20 |iSectFlg|% ....9 |
|00004900| 20 20 20 20 20 f2 73 65 | 74 4d 75 6c 74 69 53 65 | .se|tMultiSe|
|00004910| 63 74 20 28 54 72 6b 44 | 65 73 63 25 2c 20 63 6f |ct (TrkD|esc%, co|
|00004920| 75 6e 74 25 2c 20 6d 75 | 6c 74 69 53 65 63 74 46 |unt%, mu|ltiSectF|
|00004930| 6c 67 25 29 0d 12 c0 09 | 20 20 20 20 cd 0d 12 ca |lg%)....| ....|
|00004940| 19 20 20 20 20 e7 20 6d | 75 6c 74 69 53 65 63 74 |. . m|ultiSect|
|00004950| 46 6c 67 25 20 8c 0d 12 | d4 3a 20 20 20 20 20 20 |Flg% ...|.: |
|00004960| f4 20 72 65 61 64 20 74 | 72 61 63 6b 20 69 6e 20 |. read t|rack in |
|00004970| 6f 6e 65 20 67 6f 20 62 | 75 74 20 75 73 69 6e 67 |one go b|ut using|
|00004980| 20 6d 65 6d 6f 72 79 20 | 44 4d 41 20 6c 69 73 74 | memory |DMA list|
|00004990| 0d 12 de 27 20 20 20 20 | 20 20 6c 6f 77 53 65 63 |...' | lowSec|
|000049a0| 74 25 3d 54 72 6b 44 65 | 73 63 25 3f 62 75 66 4c |t%=TrkDe|sc%?bufL|
|000049b0| 6f 77 53 65 63 74 25 0d | 12 e8 29 20 20 20 20 20 |owSect%.|..) |
|000049c0| 20 73 65 63 74 53 69 7a | 65 25 3d 54 72 6b 44 65 | sectSiz|e%=TrkDe|
|000049d0| 73 63 25 3f 62 75 66 53 | 65 63 74 53 69 7a 65 25 |sc%?bufS|ectSize%|
|000049e0| 0d 12 f2 2b 20 20 20 20 | 20 20 f2 63 6f 70 79 4d |...+ | .copyM|
|000049f0| 65 6d 41 64 64 4c 69 73 | 74 28 54 72 6b 44 65 73 |emAddLis|t(TrkDes|
|00004a00| 63 25 2c 20 63 6f 75 6e | 74 25 29 0d 12 fc 63 20 |c%, coun|t%)...c |
|00004a10| 20 20 20 20 20 f2 6f 70 | 73 65 63 74 6f 72 73 28 | .op|sectors(|
|00004a20| 52 65 61 64 25 20 84 20 | 28 31 3c 3c 35 29 2c 64 |Read% . |(1<<5),d|
|00004a30| 72 76 25 2c 74 72 6b 25 | 2c 68 65 61 64 25 2c 6c |rv%,trk%|,head%,l|
|00004a40| 6f 77 53 65 63 74 25 2c | 63 6f 75 6e 74 25 2c 73 |owSect%,|count%,s|
|00004a50| 65 63 74 53 69 7a 65 25 | 2c 64 65 6e 73 69 74 79 |ectSize%|,density|
|00004a60| 25 2c 6d 65 6d 41 64 64 | 4c 69 73 74 25 29 0d 13 |%,memAdd|List%)..|
|00004a70| 06 38 20 20 20 20 20 20 | e7 20 72 65 73 75 6c 74 |.8 |. result|
|00004a80| 25 20 3c 3e 20 30 20 8c | 20 6d 75 6c 74 69 53 65 |% <> 0 .| multiSe|
|00004a90| 63 74 46 6c 67 25 3d a3 | 20 3a f4 20 44 69 73 63 |ctFlg%=.| :. Disc|
|00004aa0| 20 65 72 72 6f 72 0d 13 | 10 09 20 20 20 20 cd 0d | error..|.. ..|
|00004ab0| 13 1a 1b 20 20 20 20 e7 | 20 6d 75 6c 74 69 53 65 |... .| multiSe|
|00004ac0| 63 74 46 6c 67 25 3d 30 | 20 8c 0d 13 24 15 20 20 |ctFlg%=0| ...$. |
|00004ad0| 20 20 20 20 e7 20 61 6e | 61 6c 79 73 65 20 8c 0d | . an|alyse ..|
|00004ae0| 13 2e 35 20 20 20 20 20 | 20 20 20 f1 22 20 20 72 |..5 | ." r|
|00004af0| 65 61 64 69 6e 67 3a 2d | 20 6e 6f 6e 2d 73 74 61 |eading:-| non-sta|
|00004b00| 6e 64 61 72 64 20 74 72 | 61 63 6b 20 6c 61 79 6f |ndard tr|ack layo|
|00004b10| 75 74 3f 22 0d 13 38 0b | 20 20 20 20 20 20 cd 0d |ut?"..8.| ..|
|00004b20| 13 42 4b 20 20 20 20 20 | 20 f4 20 63 61 74 63 68 |.BK | . catch|
|00004b30| 20 61 6c 6c 2c 64 65 6c | 65 74 65 64 20 64 61 74 | all,del|eted dat|
|00004b40| 61 2c 6e 6f 6e 2d 63 6f | 6e 73 65 63 75 74 69 76 |a,non-co|nsecutiv|
|00004b50| 65 20 49 44 73 2c 20 49 | 44 20 26 20 44 61 74 61 |e IDs, I|D & Data|
|00004b60| 41 72 65 61 20 65 72 72 | 6f 72 0d 13 4c 40 20 20 |Area err|or..L@ |
|00004b70| 20 20 20 20 f4 20 69 6c | 6c 65 67 61 6c 20 49 44 | . il|legal ID|
|00004b80| 73 20 54 72 6b 2c 20 61 | 6e 64 20 64 61 74 61 20 |s Trk, a|nd data |
|00004b90| 61 72 65 61 73 20 74 68 | 61 74 20 6f 76 65 72 6c |areas th|at overl|
|00004ba0| 61 79 20 6e 65 78 74 20 | 49 44 0d 13 56 24 20 20 |ay next |ID..V$ |
|00004bb0| 20 20 20 20 e3 20 73 65 | 63 74 46 6f 75 6e 64 25 | . se|ctFound%|
|00004bc0| 3d 20 30 20 b8 20 63 6f | 75 6e 74 25 2d 31 0d 13 |= 0 . co|unt%-1..|
|00004bd0| 60 1e 20 20 20 20 20 20 | 20 20 e7 20 6e 6f 74 52 |`. | . notR|
|00004be0| 65 61 6c 53 65 63 74 25 | 3d a3 20 8c 0d 13 6a 35 |ealSect%|=. ...j5|
|00004bf0| 20 20 20 20 20 20 20 20 | 20 20 69 6e 66 6f 25 3d | | info%=|
|00004c00| a4 67 65 74 53 65 63 74 | 49 6e 66 6f 28 54 72 6b |.getSect|Info(Trk|
|00004c10| 44 65 73 63 25 2c 73 65 | 63 74 46 6f 75 6e 64 25 |Desc%,se|ctFound%|
|00004c20| 29 0d 13 74 37 20 20 20 | 20 20 20 20 20 20 20 e7 |)..t7 | .|
|00004c30| 20 28 69 6e 66 6f 25 20 | 80 20 28 69 6c 6c 65 67 | (info% |. (illeg|
|00004c40| 61 6c 54 72 6b 25 20 84 | 20 6e 6f 44 61 74 61 25 |alTrk% .| noData%|
|00004c50| 29 29 20 3d 20 30 20 8c | 0d 13 7e 4a 20 20 20 20 |)) = 0 .|..~J |
|00004c60| 20 20 20 20 20 20 20 20 | f4 20 6c 65 67 61 6c 20 | |. legal |
|00004c70| 49 44 20 74 72 6b 20 28 | 6f 6e 20 41 72 63 29 26 |ID trk (|on Arc)&|
|00004c80| 20 64 61 74 61 20 61 72 | 65 61 28 69 6e 63 6c 20 | data ar|ea(incl |
|00004c90| 64 65 6c 64 61 74 61 29 | 20 74 68 65 6e 20 72 65 |deldata)| then re|
|00004ca0| 61 64 0d 13 88 36 20 20 | 20 20 20 20 20 20 20 20 |ad...6 | |
|00004cb0| 20 20 61 64 64 25 3d a4 | 67 65 74 44 61 74 61 50 | add%=.|getDataP|
|00004cc0| 74 72 28 54 72 6b 44 65 | 73 63 25 2c 20 73 65 63 |tr(TrkDe|sc%, sec|
|00004cd0| 74 46 6f 75 6e 64 25 29 | 0d 13 92 34 20 20 20 20 |tFound%)|...4 |
|00004ce0| 20 20 20 20 20 20 20 20 | 49 44 25 3d a4 67 65 74 | |ID%=.get|
|00004cf0| 53 65 63 74 49 44 28 54 | 72 6b 44 65 73 63 25 2c |SectID(T|rkDesc%,|
|00004d00| 20 73 65 63 74 46 6f 75 | 6e 64 25 29 0d 13 9c 27 | sectFou|nd%)...'|
|00004d10| 20 20 20 20 20 20 20 20 | 20 20 20 20 73 65 63 74 | | sect|
|00004d20| 25 3d 26 46 46 20 80 20 | 28 49 44 25 20 3e 3e 20 |%=&FF . |(ID% >> |
|00004d30| 31 36 29 0d 13 a6 3b 20 | 20 20 20 20 20 20 20 20 |16)...; | |
|00004d40| 20 20 20 62 79 74 65 73 | 25 3d a4 67 65 74 44 61 | bytes|%=.getDa|
|00004d50| 74 61 4c 65 6e 67 74 68 | 28 54 72 6b 44 65 73 63 |taLength|(TrkDesc|
|00004d60| 25 2c 20 73 65 63 74 46 | 6f 75 6e 64 25 29 0d 13 |%, sectF|ound%)..|
|00004d70| b0 4a 20 20 20 20 20 20 | 20 20 20 20 20 20 f2 6f |.J | .o|
|00004d80| 70 62 79 74 65 73 28 52 | 65 61 64 25 2c 64 72 76 |pbytes(R|ead%,drv|
|00004d90| 25 2c 74 72 6b 25 2c 68 | 65 61 64 25 2c 73 65 63 |%,trk%,h|ead%,sec|
|00004da0| 74 25 2c 62 79 74 65 73 | 25 2c 64 65 6e 73 69 74 |t%,bytes|%,densit|
|00004db0| 79 25 2c 61 64 64 25 29 | 0d 13 ba 1e 20 20 20 20 |y%,add%)|.... |
|00004dc0| 20 20 20 20 20 20 20 20 | e7 20 72 65 73 75 6c 74 | |. result|
|00004dd0| 25 3c 3e 30 20 8c 0d 13 | c4 4b 20 20 20 20 20 20 |%<>0 ...|.K |
|00004de0| 20 20 20 20 20 20 20 20 | f2 72 65 61 64 53 65 63 | |.readSec|
|00004df0| 74 45 72 72 28 54 72 6b | 44 65 73 63 25 2c 20 73 |tErr(Trk|Desc%, s|
|00004e00| 65 63 74 6f 72 46 6f 75 | 6e 64 25 2c 72 65 73 75 |ectorFou|nd%,resu|
|00004e10| 6c 74 25 2c 6e 6f 74 52 | 65 61 6c 53 65 63 74 25 |lt%,notR|ealSect%|
|00004e20| 29 0d 13 ce 11 20 20 20 | 20 20 20 20 20 20 20 20 |).... | |
|00004e30| 20 cd 0d 13 d8 0f 20 20 | 20 20 20 20 20 20 20 20 | ..... | |
|00004e40| cc 0d 13 e2 44 20 20 20 | 20 20 20 20 20 20 20 20 |....D | |
|00004e50| 20 f4 20 6d 61 79 62 65 | 20 74 68 69 73 20 69 73 | . maybe| this is|
|00004e60| 20 6e 6f 74 20 61 20 73 | 65 63 74 6f 72 20 61 74 | not a s|ector at|
|00004e70| 61 6c 6c 20 62 75 74 20 | 49 44 20 70 61 74 74 65 |all but |ID patte|
|00004e80| 72 6e 20 69 73 0d 13 ec | 45 20 20 20 20 20 20 20 |rn is...|E |
|00004e90| 20 20 20 20 20 f4 20 70 | 61 72 74 20 6f 66 20 61 | . p|art of a|
|00004ea0| 20 64 61 74 61 20 61 72 | 65 61 2e 20 41 73 73 75 | data ar|ea. Assu|
|00004eb0| 6d 65 20 69 74 20 69 73 | 20 6e 6f 74 20 61 20 73 |me it is| not a s|
|00004ec0| 65 63 74 6f 72 20 69 66 | 20 61 0d 13 f6 40 20 20 |ector if| a...@ |
|00004ed0| 20 20 20 20 20 20 20 20 | 20 20 f4 20 70 72 65 76 | | . prev|
|00004ee0| 69 6f 75 73 20 73 65 63 | 74 6f 72 20 68 61 73 20 |ious sec|tor has |
|00004ef0| 6c 6f 6e 67 44 61 74 61 | 20 6f 72 20 6e 6f 52 6f |longData| or noRo|
|00004f00| 6f 6d 43 52 43 20 73 65 | 74 2e 0d 14 00 40 20 20 |omCRC se|t....@ |
|00004f10| 20 20 20 20 20 20 20 20 | 20 20 f4 20 4e 4f 54 20 | | . NOT |
|00004f20| 61 20 46 4f 4f 4c 20 50 | 52 4f 4f 46 20 74 65 73 |a FOOL P|ROOF tes|
|00004f30| 74 20 62 75 74 20 70 72 | 6f 62 61 62 6c 79 20 67 |t but pr|obably g|
|00004f40| 6f 6f 64 20 65 6e 6f 75 | 67 68 0d 14 0a 21 20 20 |ood enou|gh...! |
|00004f50| 20 20 20 20 20 20 20 20 | 20 20 e7 20 73 65 63 74 | | . sect|
|00004f60| 46 6f 75 6e 64 25 3c 3e | 30 20 8c 0d 14 14 57 20 |Found%<>|0 ....W |
|00004f70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 e7 20 28 | | . (|
|00004f80| 28 6c 6f 6e 67 44 61 74 | 61 25 20 84 20 6e 6f 52 |(longDat|a% . noR|
|00004f90| 6f 6f 6d 43 52 43 25 29 | 20 80 20 a4 67 65 74 53 |oomCRC%)| . .getS|
|00004fa0| 65 63 74 49 6e 66 6f 28 | 54 72 6b 44 65 73 63 25 |ectInfo(|TrkDesc%|
|00004fb0| 2c 20 73 65 63 74 46 6f | 75 6e 64 25 2d 31 29 29 |, sectFo|und%-1))|
|00004fc0| 20 8c 0d 14 1e 22 20 20 | 20 20 20 20 20 20 20 20 | ...." | |
|00004fd0| 20 20 20 20 20 20 6e 6f | 74 52 65 61 6c 53 65 63 | no|tRealSec|
|00004fe0| 74 25 3d b9 0d 14 28 37 | 20 20 20 20 20 20 20 20 |t%=...(7| |
|00004ff0| 20 20 20 20 20 20 20 20 | f2 64 65 6c 65 74 65 53 | |.deleteS|
|00005000| 65 63 74 28 54 72 6b 44 | 65 73 63 25 2c 20 73 65 |ect(TrkD|esc%, se|
|00005010| 63 74 6f 72 46 6f 75 6e | 64 25 29 0d 14 32 13 20 |ctorFoun|d%)..2. |
|00005020| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 cd 0d 14 | | ...|
|00005030| 3c 11 20 20 20 20 20 20 | 20 20 20 20 20 20 cd 0d |<. | ..|
|00005040| 14 46 0f 20 20 20 20 20 | 20 20 20 20 20 cd 0d 14 |.F. | ...|
|00005050| 50 0d 20 20 20 20 20 20 | 20 20 cd 0d 14 5a 0b 20 |P. | ...Z. |
|00005060| 20 20 20 20 20 ed 0d 14 | 64 09 20 20 20 20 cd 0d | ...|d. ..|
|00005070| 14 6e 45 20 20 20 20 54 | 72 6b 44 65 73 63 25 3f |.nE T|rkDesc%?|
|00005080| 62 75 66 4d 75 6c 74 69 | 53 65 63 74 46 6c 67 25 |bufMulti|SectFlg%|
|00005090| 3d 20 6d 75 6c 74 69 53 | 65 63 74 46 6c 67 25 20 |= multiS|ectFlg% |
|000050a0| 3a f4 20 69 6e 20 63 61 | 73 65 20 69 74 73 20 72 |:. in ca|se its r|
|000050b0| 65 73 65 74 0d 14 78 07 | 20 20 cd 0d 14 82 14 fd |eset..x.| ......|
|000050c0| 20 6e 6f 74 52 65 61 6c | 53 65 63 74 25 3d a3 0d | notReal|Sect%=..|
|000050d0| 14 8c 05 e1 0d 14 96 04 | 0d 14 a0 42 dd f2 72 65 |........|...B..re|
|000050e0| 61 64 53 65 63 74 45 72 | 72 28 54 72 6b 44 65 73 |adSectEr|r(TrkDes|
|000050f0| 63 25 2c 20 73 65 63 74 | 6f 72 46 6f 75 6e 64 25 |c%, sect|orFound%|
|00005100| 2c 20 72 65 73 75 6c 74 | 25 2c 20 f8 20 6e 6f 74 |, result|%, . not|
|00005110| 52 65 61 6c 53 65 63 74 | 25 29 0d 14 aa 40 f4 20 |RealSect|%)...@. |
|00005120| 53 70 65 63 69 61 6c 20 | 61 63 74 69 6f 6e 73 20 |Special |actions |
|00005130| 6f 6e 20 72 65 61 64 20 | 73 65 63 74 6f 72 20 65 |on read |sector e|
|00005140| 72 72 6f 72 20 28 65 67 | 20 53 65 63 74 6f 72 20 |rror (eg| Sector |
|00005150| 4e 6f 74 20 46 6f 75 6e | 64 29 0d 14 b4 1c ea 20 |Not Foun|d)..... |
|00005160| 49 44 25 2c 20 63 6f 75 | 6e 74 25 2c 20 73 65 63 |ID%, cou|nt%, sec|
|00005170| 74 53 69 7a 65 25 0d 14 | be 24 e7 20 28 72 65 73 |tSize%..|.$. (res|
|00005180| 75 6c 74 25 20 80 20 65 | 72 72 4e 6f 74 46 6f 75 |ult% . e|rrNotFou|
|00005190| 6e 64 25 29 20 3c 3e 30 | 20 8c 0d 14 c8 1b 20 20 |nd%) <>0| ..... |
|000051a0| f4 20 49 66 20 53 65 63 | 74 6f 72 20 4e 6f 74 20 |. If Sec|tor Not |
|000051b0| 46 6f 75 6e 64 0d 14 d2 | 2a 20 20 49 44 25 3d a4 |Found...|* ID%=.|
|000051c0| 67 65 74 53 65 63 74 49 | 44 28 54 72 6b 44 65 73 |getSectI|D(TrkDes|
|000051d0| 63 25 2c 20 73 65 63 74 | 46 6f 75 6e 64 25 29 0d |c%, sect|Found%).|
|000051e0| 14 dc 31 20 20 e7 20 49 | 44 25 20 3c 3e 20 21 a4 |..1 . I|D% <> !.|
|000051f0| 67 65 74 49 44 50 74 72 | 28 54 72 6b 44 65 73 63 |getIDPtr|(TrkDesc|
|00005200| 25 2c 20 73 65 63 74 46 | 6f 75 6e 64 25 29 20 8c |%, sectF|ound%) .|
|00005210| 0d 14 e6 49 20 20 20 20 | f4 20 49 66 20 63 6f 72 |...I |. If cor|
|00005220| 72 75 70 74 20 49 44 20 | 26 20 4e 6f 74 20 46 6f |rupt ID |& Not Fo|
|00005230| 75 6e 64 2c 20 63 68 65 | 63 6b 20 66 6f 72 20 61 |und, che|ck for a|
|00005240| 6c 74 65 72 6e 61 74 69 | 76 65 20 66 6f 72 20 63 |lternati|ve for c|
|00005250| 6f 72 72 75 70 74 20 49 | 44 0d 14 f0 10 20 20 20 |orrupt I|D.... |
|00005260| 20 c8 8e 20 49 44 25 20 | ca 0d 14 fa 34 20 20 20 | .. ID% |....4 |
|00005270| 20 20 20 c9 20 26 30 31 | 34 42 30 31 31 43 3a 20 | . &01|4B011C: |
|00005280| 49 44 25 3d 26 30 31 34 | 46 30 31 31 43 20 3a 6e |ID%=&014|F011C :n|
|00005290| 6f 74 52 65 61 6c 53 65 | 63 74 25 3d b9 0d 15 04 |otRealSe|ct%=....|
|000052a0| 34 20 20 20 20 20 20 c9 | 20 26 30 32 42 37 30 30 |4 .| &02B700|
|000052b0| 32 39 3a 20 49 44 25 3d | 26 30 32 44 35 30 30 32 |29: ID%=|&02D5002|
|000052c0| 39 20 3a 6e 6f 74 52 65 | 61 6c 53 65 63 74 25 3d |9 :notRe|alSect%=|
|000052d0| b9 0d 15 0e 34 20 20 20 | 20 20 20 c9 20 26 30 32 |....4 | . &02|
|000052e0| 42 34 30 30 32 39 3a 20 | 49 44 25 3d 26 30 33 46 |B40029: |ID%=&03F|
|000052f0| 43 30 30 32 39 20 3a 6e | 6f 74 52 65 61 6c 53 65 |C0029 :n|otRealSe|
|00005300| 63 74 25 3d b9 0d 15 18 | 34 20 20 20 20 20 20 c9 |ct%=....|4 .|
|00005310| 20 26 30 30 35 35 30 31 | 32 39 3a 20 49 44 25 3d | &005501|29: ID%=|
|00005320| 26 30 30 37 37 30 31 32 | 39 20 3a 6e 6f 74 52 65 |&0077012|9 :notRe|
|00005330| 61 6c 53 65 63 74 25 3d | b9 0d 15 22 34 20 20 20 |alSect%=|..."4 |
|00005340| 20 20 20 c9 20 26 30 30 | 36 34 30 31 32 39 3a 20 | . &00|640129: |
|00005350| 49 44 25 3d 26 30 30 41 | 34 30 31 32 39 20 3a 6e |ID%=&00A|40129 :n|
|00005360| 6f 74 52 65 61 6c 53 65 | 63 74 25 3d b9 0d 15 2c |otRealSe|ct%=...,|
|00005370| 34 20 20 20 20 20 20 c9 | 20 26 30 31 37 37 30 31 |4 .| &017701|
|00005380| 32 39 3a 20 49 44 25 3d | 26 30 31 42 37 30 31 32 |29: ID%=|&01B7012|
|00005390| 39 20 3a 6e 6f 74 52 65 | 61 6c 53 65 63 74 25 3d |9 :notRe|alSect%=|
|000053a0| b9 0d 15 36 34 20 20 20 | 20 20 20 c9 20 26 30 32 |...64 | . &02|
|000053b0| 36 41 30 31 32 39 3a 20 | 49 44 25 3d 26 30 32 44 |6A0129: |ID%=&02D|
|000053c0| 36 30 31 32 39 20 3a 6e | 6f 74 52 65 61 6c 53 65 |60129 :n|otRealSe|
|000053d0| 63 74 25 3d b9 0d 15 40 | 34 20 20 20 20 20 20 c9 |ct%=...@|4 .|
|000053e0| 20 26 30 32 46 41 30 31 | 32 39 3a 20 49 44 25 3d | &02FA01|29: ID%=|
|000053f0| 26 30 33 35 36 30 31 32 | 39 20 3a 6e 6f 74 52 65 |&0356012|9 :notRe|
|00005400| 61 6c 53 65 63 74 25 3d | b9 0d 15 4a 34 20 20 20 |alSect%=|...J4 |
|00005410| 20 20 20 c9 20 26 30 33 | 36 36 30 31 32 39 3a 20 | . &03|660129: |
|00005420| 49 44 25 3d 26 30 33 41 | 36 30 31 32 39 20 3a 6e |ID%=&03A|60129 :n|
|00005430| 6f 74 52 65 61 6c 53 65 | 63 74 25 3d b9 0d 15 54 |otRealSe|ct%=...T|
|00005440| 34 20 20 20 20 20 20 c9 | 20 26 30 32 42 35 30 31 |4 .| &02B501|
|00005450| 32 39 3a 20 49 44 25 3d | 26 30 33 46 44 30 31 32 |29: ID%=|&03FD012|
|00005460| 39 20 3a 6e 6f 74 52 65 | 61 6c 53 65 63 74 25 3d |9 :notRe|alSect%=|
|00005470| b9 0d 15 5e 34 20 20 20 | 20 20 20 c9 20 26 30 32 |...^4 | . &02|
|00005480| 37 35 30 31 32 39 3a 20 | 49 44 25 3d 26 30 32 42 |750129: |ID%=&02B|
|00005490| 35 30 31 32 39 20 3a 6e | 6f 74 52 65 61 6c 53 65 |50129 :n|otRealSe|
|000054a0| 63 74 25 3d b9 0d 15 68 | 42 20 20 20 20 20 20 f4 |ct%=...h|B .|
|000054b0| 20 6e 62 20 6c 61 73 74 | 20 6f 6e 65 20 6d 75 73 | nb last| one mus|
|000054c0| 74 20 62 65 20 61 66 74 | 65 72 20 70 65 6e 75 6c |t be aft|er penul|
|000054d0| 74 69 6d 61 74 65 20 6f | 6e 65 20 28 61 73 20 62 |timate o|ne (as b|
|000054e0| 6f 74 68 20 61 72 65 0d | 15 72 39 20 20 20 20 20 |oth are.|.r9 |
|000054f0| 20 f4 20 61 6c 74 65 72 | 6e 61 74 69 76 65 20 70 | . alter|native p|
|00005500| 61 74 74 65 72 6e 73 20 | 66 6f 72 20 74 68 65 20 |atterns |for the |
|00005510| 73 61 6d 65 20 63 6f 72 | 72 75 70 74 20 49 44 29 |same cor|rupt ID)|
|00005520| 0d 15 7c 09 20 20 20 20 | cb 0d 15 86 07 20 20 cd |..|. |..... .|
|00005530| 0d 15 90 18 20 20 e7 20 | 6e 6f 74 52 65 61 6c 53 |.... . |notRealS|
|00005540| 65 63 74 25 3d b9 20 8c | 0d 15 9a 3c 20 20 20 20 |ect%=. .|...< |
|00005550| f4 20 53 65 63 74 6f 72 | 20 4e 6f 74 20 46 6f 75 |. Sector| Not Fou|
|00005560| 6e 64 20 41 4e 44 20 63 | 6f 72 72 75 70 74 20 49 |nd AND c|orrupt I|
|00005570| 44 20 68 61 73 20 61 6e | 20 61 6c 74 65 72 6e 61 |D has an| alterna|
|00005580| 74 69 76 65 0d 15 a4 33 | 20 20 20 20 f4 20 73 6f |tive...3| . so|
|00005590| 20 73 65 74 20 73 74 6f | 72 65 64 20 76 61 6c 75 | set sto|red valu|
|000055a0| 65 20 6f 66 20 49 44 25 | 20 74 6f 20 61 6c 74 65 |e of ID%| to alte|
|000055b0| 72 6e 61 74 69 76 65 0d | 15 ae 2d 20 20 20 20 f2 |rnative.|..- .|
|000055c0| 73 65 74 53 65 63 74 49 | 44 28 54 72 6b 44 65 73 |setSectI|D(TrkDes|
|000055d0| 63 25 2c 20 73 65 63 74 | 46 6f 75 6e 64 25 2c 20 |c%, sect|Found%, |
|000055e0| 49 44 25 29 0d 15 b8 07 | 20 20 cc 0d 15 c2 40 20 |ID%)....| ....@ |
|000055f0| 20 20 20 f4 20 53 65 63 | 74 6f 72 20 4e 6f 74 20 | . Sec|tor Not |
|00005600| 46 6f 75 6e 64 20 41 4e | 44 20 6e 6f 74 20 61 6e |Found AN|D not an|
|00005610| 20 61 6c 74 65 72 6e 61 | 74 69 76 65 20 66 6f 72 | alterna|tive for|
|00005620| 20 63 6f 72 72 75 70 74 | 20 49 44 0d 15 cc 43 20 | corrupt| ID...C |
|00005630| 20 20 20 f4 20 73 6f 20 | 72 65 6d 6f 76 65 20 73 | . so |remove s|
|00005640| 65 63 74 6f 72 20 66 72 | 6f 6d 20 74 72 61 63 6b |ector fr|om track|
|00005650| 20 64 65 73 63 72 69 70 | 74 6f 72 2c 20 61 73 20 | descrip|tor, as |
|00005660| 69 74 20 69 73 20 4e 4f | 54 20 61 20 49 44 0d 15 |it is NO|T a ID..|
|00005670| d6 16 20 20 20 20 6e 6f | 74 52 65 61 6c 53 65 63 |.. no|tRealSec|
|00005680| 74 25 3d b9 0d 15 e0 2b | 20 20 20 20 f2 64 65 6c |t%=....+| .del|
|00005690| 65 74 65 53 65 63 74 28 | 54 72 6b 44 65 73 63 25 |eteSect(|TrkDesc%|
|000056a0| 2c 20 73 65 63 74 6f 72 | 46 6f 75 6e 64 25 29 0d |, sector|Found%).|
|000056b0| 15 ea 07 20 20 cd 0d 15 | f4 05 cc 0d 15 fe 44 20 |... ...|......D |
|000056c0| 20 f4 20 66 6c 61 67 20 | 64 69 73 63 20 65 72 72 | . flag |disc err|
|000056d0| 6f 72 20 6f 6e 20 73 65 | 63 74 6f 72 2c 20 69 6e |or on se|ctor, in|
|000056e0| 20 73 65 63 74 20 69 6e | 66 6f 2c 20 69 66 20 73 | sect in|fo, if s|
|000056f0| 65 63 74 6f 72 20 77 61 | 73 20 66 6f 75 6e 64 0d |ector wa|s found.|
|00005700| 16 08 37 20 20 f2 61 64 | 64 53 65 63 74 49 6e 66 |..7 .ad|dSectInf|
|00005710| 6f 28 54 72 6b 44 65 73 | 63 25 2c 20 73 65 63 74 |o(TrkDes|c%, sect|
|00005720| 46 6f 75 6e 64 25 2c 20 | 72 65 73 75 6c 74 25 20 |Found%, |result% |
|00005730| 80 20 26 46 46 29 0d 16 | 12 05 cd 0d 16 1c 05 e1 |. &FF)..|........|
|00005740| 0d 16 26 04 0d 16 30 28 | dd f2 64 65 6c 65 74 65 |..&...0(|..delete|
|00005750| 53 65 63 74 28 54 72 6b | 44 65 73 63 25 2c 20 73 |Sect(Trk|Desc%, s|
|00005760| 65 63 74 6f 72 46 6f 75 | 6e 64 25 29 0d 16 3a 3c |ectorFou|nd%)..:<|
|00005770| f4 20 74 68 69 73 20 77 | 61 73 20 6e 6f 74 20 61 |. this w|as not a|
|00005780| 20 73 65 63 74 6f 72 20 | 62 75 74 20 70 61 72 74 | sector |but part|
|00005790| 20 6f 66 20 61 20 64 61 | 74 61 20 61 72 65 61 20 | of a da|ta area |
|000057a0| 28 6f 72 20 67 61 70 29 | 0d 16 44 36 f4 20 73 6f |(or gap)|..D6. so|
|000057b0| 20 72 65 6d 6f 76 65 20 | 73 65 63 74 6f 72 20 66 | remove |sector f|
|000057c0| 72 6f 6d 20 74 72 61 63 | 6b 20 64 65 73 63 72 69 |rom trac|k descri|
|000057d0| 70 74 6f 72 20 61 6e 64 | 20 72 65 73 65 74 0d 16 |ptor and| reset..|
|000057e0| 4e 3c f4 20 61 6e 79 20 | 6c 6f 6e 67 44 61 74 61 |N<. any |longData|
|000057f0| 20 6f 72 20 6e 6f 52 6f | 6f 6d 43 52 43 20 69 6e | or noRo|omCRC in|
|00005800| 20 74 68 65 20 70 72 65 | 76 69 6f 75 73 20 73 65 | the pre|vious se|
|00005810| 63 74 6f 72 20 69 6e 66 | 6f 2e 0d 16 58 1f ea 20 |ctor inf|o...X.. |
|00005820| 49 25 2c 20 4a 25 2c 20 | 69 6e 66 6f 53 69 7a 65 |I%, J%, |infoSize|
|00005830| 25 2c 20 63 6f 75 6e 74 | 25 0d 16 62 22 63 6f 75 |%, count|%..b"cou|
|00005840| 6e 74 25 20 3d 20 54 72 | 6b 44 65 73 63 25 3f 62 |nt% = Tr|kDesc%?b|
|00005850| 75 66 4e 75 6d 62 53 65 | 63 74 25 0d 16 6c 25 69 |ufNumbSe|ct%..l%i|
|00005860| 6e 66 6f 53 69 7a 65 25 | 3d 20 31 20 3c 3c 20 4c |nfoSize%|= 1 << L|
|00005870| 6f 67 32 53 65 63 74 49 | 6e 66 6f 53 69 7a 65 25 |og2SectI|nfoSize%|
|00005880| 0d 16 76 35 4a 25 3d 54 | 72 6b 44 65 73 63 25 20 |..v5J%=T|rkDesc% |
|00005890| 2b 20 62 75 66 53 65 63 | 74 44 65 73 63 25 20 2b |+ bufSec|tDesc% +|
|000058a0| 20 73 65 63 74 46 6f 75 | 6e 64 25 2a 69 6e 66 6f | sectFou|nd%*info|
|000058b0| 53 69 7a 65 25 0d 16 80 | 32 e3 20 49 25 3d 30 20 |Size%...|2. I%=0 |
|000058c0| b8 20 28 63 6f 75 6e 74 | 25 2d 31 2d 73 65 63 74 |. (count|%-1-sect|
|000058d0| 46 6f 75 6e 64 25 29 2a | 69 6e 66 6f 53 69 7a 65 |Found%)*|infoSize|
|000058e0| 25 2d 31 20 88 20 34 0d | 16 8a 1d 20 20 4a 25 21 |%-1 . 4.|... J%!|
|000058f0| 49 25 3d 4a 25 21 28 49 | 25 2b 69 6e 66 6f 53 69 |I%=J%!(I|%+infoSi|
|00005900| 7a 65 25 29 0d 16 94 05 | ed 0d 16 9e 15 e7 20 73 |ze%)....|...... s|
|00005910| 65 63 74 46 6f 75 6e 64 | 25 3c 3e 30 20 8c 0d 16 |ectFound|%<>0 ...|
|00005920| a8 6d 20 20 f2 73 65 74 | 53 65 63 74 49 6e 66 6f |.m .set|SectInfo|
|00005930| 28 54 72 6b 44 65 73 63 | 25 2c 20 73 65 63 74 46 |(TrkDesc|%, sectF|
|00005940| 6f 75 6e 64 25 2d 31 2c | a4 67 65 74 53 65 63 74 |ound%-1,|.getSect|
|00005950| 49 6e 66 6f 28 54 72 6b | 44 65 73 63 25 2c 20 73 |Info(Trk|Desc%, s|
|00005960| 65 63 74 46 6f 75 6e 64 | 25 2d 31 29 20 80 20 28 |ectFound|%-1) . (|
|00005970| ac 28 6c 6f 6e 67 44 61 | 74 61 25 20 84 20 6e 6f |.(longDa|ta% . no|
|00005980| 52 6f 6f 6d 43 52 43 25 | 29 29 29 0d 16 b2 05 cd |RoomCRC%|))).....|
|00005990| 0d 16 bc 39 54 72 6b 44 | 65 73 63 25 3f 62 75 66 |...9TrkD|esc%?buf|
|000059a0| 4e 75 6d 62 53 65 63 74 | 25 20 2d 3d 20 31 20 20 |NumbSect|% -= 1 |
|000059b0| 3a f4 20 64 65 63 72 65 | 6d 65 6e 74 20 73 74 6f |:. decre|ment sto|
|000059c0| 72 65 64 20 63 6f 75 6e | 74 0d 16 c6 05 e1 0d 16 |red coun|t.......|
|000059d0| d0 04 0d 16 da 47 20 20 | f4 20 69 66 20 74 72 61 |.....G |. if tra|
|000059e0| 63 6b 20 69 73 20 69 6e | 63 6f 72 72 65 63 74 20 |ck is in|correct |
|000059f0| 4f 52 20 68 65 61 64 2c | 20 73 65 63 74 6f 72 2c |OR head,| sector,|
|00005a00| 20 6f 72 20 73 65 63 74 | 53 69 7a 65 20 61 72 65 | or sect|Size are|
|00005a10| 20 3d 26 46 35 2d 26 46 | 37 0d 16 e4 43 20 20 f4 | =&F5-&F|7...C .|
|00005a20| 20 74 68 65 6e 20 75 6e | 73 65 74 20 6d 75 6c 74 | then un|set mult|
|00005a30| 69 53 65 63 74 46 6c 67 | 25 2c 20 73 65 74 20 73 |iSectFlg|%, set s|
|00005a40| 65 63 74 6f 72 20 69 6e | 66 6f 20 61 6e 64 20 70 |ector in|fo and p|
|00005a50| 72 69 6e 74 20 6d 65 73 | 73 61 67 65 0d 16 ee 44 |rint mes|sage...D|
|00005a60| 20 20 f4 20 61 73 73 75 | 6d 65 73 20 49 44 20 68 | . assu|mes ID h|
|00005a70| 61 73 20 62 65 65 6e 20 | 73 61 76 65 64 20 28 61 |as been |saved (a|
|00005a80| 66 74 65 72 20 61 6e 79 | 20 72 65 6d 61 6b 69 6e |fter any| remakin|
|00005a90| 67 20 6f 66 20 63 6f 72 | 72 75 70 74 20 49 44 29 |g of cor|rupt ID)|
|00005aa0| 0d 16 f8 40 dd f2 74 65 | 73 74 49 6c 6c 65 67 61 |...@..te|stIllega|
|00005ab0| 6c 49 64 28 54 72 6b 44 | 65 73 63 25 2c 20 63 6f |lId(TrkD|esc%, co|
|00005ac0| 75 6e 74 25 2c 20 64 65 | 6e 73 69 74 79 25 2c 20 |unt%, de|nsity%, |
|00005ad0| f8 20 6d 75 6c 74 69 53 | 65 63 74 46 6c 67 25 29 |. multiS|ectFlg%)|
|00005ae0| 0d 17 02 1c ea 20 49 44 | 25 2c 20 49 25 2c 20 54 |..... ID|%, I%, T|
|00005af0| 25 2c 20 6c 6f 77 25 2c | 20 68 69 25 0d 17 0c 24 |%, low%,| hi%...$|
|00005b00| 49 44 25 3d a4 67 65 74 | 53 65 63 74 49 44 28 54 |ID%=.get|SectID(T|
|00005b10| 72 6b 44 65 73 63 25 2c | 20 63 6f 75 6e 74 25 29 |rkDesc%,| count%)|
|00005b20| 0d 17 16 27 e7 20 28 49 | 44 25 20 80 20 26 46 46 |...'. (I|D% . &FF|
|00005b30| 29 20 3c 3e 20 54 72 6b | 44 65 73 63 25 3f 62 75 |) <> Trk|Desc%?bu|
|00005b40| 66 54 72 6b 25 20 8c 0d | 17 20 33 20 20 f4 20 49 |fTrk% ..|. 3 . I|
|00005b50| 44 27 73 20 54 72 6b 20 | 69 73 20 6e 6f 74 20 72 |D's Trk |is not r|
|00005b60| 65 61 6c 20 74 72 61 63 | 6b 20 28 69 6c 6c 65 67 |eal trac|k (illeg|
|00005b70| 61 6c 20 6f 6e 20 41 72 | 63 29 0d 17 2a 15 20 20 |al on Ar|c)..*. |
|00005b80| 6d 75 6c 74 69 53 65 63 | 74 46 6c 67 25 3d a3 0d |multiSec|tFlg%=..|
|00005b90| 17 34 31 20 20 f2 61 64 | 64 53 65 63 74 49 6e 66 |.41 .ad|dSectInf|
|00005ba0| 6f 28 54 72 6b 44 65 73 | 63 25 2c 20 63 6f 75 6e |o(TrkDes|c%, coun|
|00005bb0| 74 25 2c 20 69 6c 6c 65 | 67 61 6c 54 72 6b 25 29 |t%, ille|galTrk%)|
|00005bc0| 0d 17 3e 05 cd 0d 17 48 | 2f e7 20 28 28 49 44 25 |..>....H|/. ((ID%|
|00005bd0| 20 3e 3e 20 38 29 20 80 | 20 26 46 46 29 20 3c 3e | >> 8) .| &FF) <>|
|00005be0| 20 54 72 6b 44 65 73 63 | 25 3f 62 75 66 48 65 61 | TrkDesc|%?bufHea|
|00005bf0| 64 25 20 8c 0d 17 52 29 | 20 20 6d 75 6c 74 69 53 |d% ...R)| multiS|
|00005c00| 65 63 74 46 6c 67 25 3d | a3 3a 20 f4 20 62 65 69 |ectFlg%=|.: . bei|
|00005c10| 6e 67 20 6f 76 65 72 20 | 73 61 66 65 3f 0d 17 5c |ng over |safe?..\|
|00005c20| 0f 20 20 e7 20 64 65 62 | 75 67 20 8c 0d 17 66 31 |. . deb|ug ...f1|
|00005c30| 20 20 20 20 f4 20 2a 2a | 2a 2a 20 63 61 6e 20 74 | . **|** can t|
|00005c40| 68 69 73 20 62 65 20 64 | 6f 6e 65 20 65 6c 73 65 |his be d|one else|
|00005c50| 77 68 65 72 65 20 2a 2a | 2a 2a 3f 3f 3f 0d 17 70 |where **|**???..p|
|00005c60| 22 20 20 20 20 f2 70 72 | 69 6e 74 49 44 28 54 72 |" .pr|intID(Tr|
|00005c70| 6b 44 65 73 63 25 2c 20 | 63 6f 75 6e 74 25 29 0d |kDesc%, |count%).|
|00005c80| 17 7a 29 20 20 20 20 f1 | 22 48 65 61 64 20 69 6e |.z) .|"Head in|
|00005c90| 63 6f 72 72 65 63 74 2c | 20 62 75 74 20 61 63 63 |correct,| but acc|
|00005ca0| 65 70 74 61 62 6c 65 22 | 0d 17 84 07 20 20 cd 0d |eptable"|.... ..|
|00005cb0| 17 8e 05 cd 0d 17 98 24 | f2 67 65 74 49 6c 6c 65 |.......$|.getIlle|
|00005cc0| 67 61 6c 28 64 65 6e 73 | 69 74 79 25 2c 20 6c 6f |gal(dens|ity%, lo|
|00005cd0| 77 25 2c 20 68 69 25 29 | 0d 17 a2 0e e3 20 49 25 |w%, hi%)|..... I%|
|00005ce0| 3d 31 20 b8 20 33 0d 17 | ac 14 20 20 54 25 3d 28 |=1 . 3..|.. T%=(|
|00005cf0| 49 44 25 20 80 20 26 46 | 46 29 0d 17 b6 24 20 20 |ID% . &F|F)...$ |
|00005d00| e7 20 28 54 25 20 3e 3d | 20 6c 6f 77 25 29 20 80 |. (T% >=| low%) .|
|00005d10| 20 28 54 25 20 3c 3d 20 | 68 69 25 29 20 8c 0d 17 | (T% <= |hi%) ...|
|00005d20| c0 3d 20 20 20 20 f4 20 | 49 20 63 61 6e 27 74 20 |.= . |I can't |
|00005d30| 77 72 69 74 65 20 49 44 | 20 61 73 20 69 74 20 68 |write ID| as it h|
|00005d40| 61 73 20 69 6c 6c 65 67 | 61 6c 20 77 72 69 74 65 |as illeg|al write|
|00005d50| 54 72 61 63 6b 20 62 79 | 74 65 73 0d 17 ca 17 20 |Track by|tes.... |
|00005d60| 20 20 20 6d 75 6c 74 69 | 53 65 63 74 46 6c 67 25 | multi|SectFlg%|
|00005d70| 3d a3 0d 17 d4 35 20 20 | 20 20 f2 61 64 64 53 65 |=....5 | .addSe|
|00005d80| 63 74 49 6e 66 6f 28 54 | 72 6b 44 65 73 63 25 2c |ctInfo(T|rkDesc%,|
|00005d90| 20 63 6f 75 6e 74 25 2c | 20 69 6c 6c 65 67 61 6c | count%,| illegal|
|00005da0| 49 44 62 79 74 25 29 0d | 17 de 07 20 20 cd 0d 17 |IDbyt%).|... ...|
|00005db0| e8 14 20 20 49 44 25 3d | 28 49 44 25 20 3e 3e 20 |.. ID%=|(ID% >> |
|00005dc0| 38 29 0d 17 f2 05 ed 0d | 17 fc 05 e1 0d 18 06 04 |8)......|........|
|00005dd0| 0d 18 10 3e 20 20 20 f4 | 20 46 6f 72 20 65 61 63 |...> .| For eac|
|00005de0| 68 20 73 65 63 74 6f 72 | 20 73 65 74 20 4c 65 6e |h sector| set Len|
|00005df0| 67 74 68 20 6f 66 20 6d | 61 78 20 72 65 61 64 20 |gth of m|ax read |
|00005e00| 64 61 74 61 20 74 72 61 | 6e 73 66 65 72 2e 0d 18 |data tra|nsfer...|
|00005e10| 1a 46 20 20 20 f4 20 49 | 6e 20 63 61 73 65 20 6f |.F . I|n case o|
|00005e20| 66 20 70 72 6f 74 65 63 | 74 65 64 20 64 69 73 63 |f protec|ted disc|
|00005e30| 2c 20 65 6e 73 75 72 65 | 20 69 74 20 63 61 6e 6e |, ensure| it cann|
|00005e40| 6f 74 20 6f 76 65 72 77 | 72 69 74 65 20 6e 65 78 |ot overw|rite nex|
|00005e50| 74 20 49 44 0d 18 24 2f | 20 20 20 f4 20 61 72 6f |t ID..$/| . aro|
|00005e60| 75 6e 64 20 74 72 61 63 | 6b 20 28 61 63 74 75 61 |und trac|k (actua|
|00005e70| 6c 6c 79 20 27 6e 65 78 | 74 20 49 44 20 2d 20 34 |lly 'nex|t ID - 4|
|00005e80| 27 29 2e 0d 18 2e 49 20 | 20 20 f4 20 54 68 65 20 |')....I | . The |
|00005e90| 73 65 74 20 4c 65 6e 67 | 74 68 20 77 69 6c 6c 20 |set Leng|th will |
|00005ea0| 61 6c 73 6f 20 62 65 20 | 75 73 65 64 20 64 75 72 |also be |used dur|
|00005eb0| 69 6e 67 20 61 6e 79 20 | 64 61 74 61 20 61 72 65 |ing any |data are|
|00005ec0| 61 20 77 72 69 74 65 2c | 20 42 55 54 0d 18 38 47 |a write,| BUT..8G|
|00005ed0| 20 20 20 f4 20 49 66 20 | 61 6e 79 20 73 65 63 74 | . If |any sect|
|00005ee0| 6f 72 20 77 72 69 74 65 | 20 64 61 74 61 20 6d 69 |or write| data mi|
|00005ef0| 67 68 74 20 6f 76 65 72 | 77 72 69 74 65 20 27 6e |ght over|write 'n|
|00005f00| 65 78 74 20 49 44 20 2d | 20 34 27 20 28 69 65 20 |ext ID -| 4' (ie |
|00005f10| 67 61 70 0d 18 42 46 20 | 20 20 f4 20 66 72 6f 6d |gap..BF | . from|
|00005f20| 20 65 6e 64 20 6f 66 20 | 64 61 74 61 20 74 6f 20 | end of |data to |
|00005f30| 27 6e 65 78 74 20 49 44 | 20 2d 20 34 27 20 69 73 |'next ID| - 4' is|
|00005f40| 20 6c 65 73 73 20 74 68 | 61 6e 20 35 20 62 79 74 | less th|an 5 byt|
|00005f50| 65 73 29 2c 20 74 68 65 | 6e 0d 18 4c 46 20 20 20 |es), the|n..LF |
|00005f60| f4 20 73 65 74 20 4c 6f | 6e 67 20 64 61 74 61 20 |. set Lo|ng data |
|00005f70| 66 6c 61 67 20 61 6e 64 | 20 75 6e 73 65 74 20 6d |flag and| unset m|
|00005f80| 75 6c 74 69 73 65 63 74 | 6f 72 20 66 6c 61 67 2e |ultisect|or flag.|
|00005f90| 20 46 75 72 74 68 65 72 | 6d 6f 72 65 20 69 66 0d | Further|more if.|
|00005fa0| 18 56 42 20 20 20 f4 20 | 74 68 65 72 65 20 69 73 |.VB . |there is|
|00005fb0| 20 6e 6f 74 20 65 76 65 | 6e 20 72 6f 6f 6d 20 66 | not eve|n room f|
|00005fc0| 6f 72 20 61 20 27 66 6f | 72 6d 61 74 20 67 65 6e |or a 'fo|rmat gen|
|00005fd0| 65 72 61 74 65 64 20 43 | 52 43 27 2c 20 61 6c 73 |erated C|RC', als|
|00005fe0| 6f 0d 18 60 1e 20 20 20 | f4 20 73 65 74 20 6e 6f |o..`. |. set no|
|00005ff0| 2d 52 6f 6f 6d 2d 43 52 | 43 20 66 6c 61 67 2e 0d |-Room-CR|C flag..|
|00006000| 18 6a 33 dd f2 73 65 74 | 4c 65 6e 67 74 68 73 28 |.j3..set|Lengths(|
|00006010| 54 72 6b 44 65 73 63 25 | 2c 20 63 6f 75 6e 74 25 |TrkDesc%|, count%|
|00006020| 2c 20 f8 20 6d 75 6c 74 | 69 53 65 63 74 46 6c 67 |, . mult|iSectFlg|
|00006030| 25 29 0d 18 74 42 ea 20 | 66 6f 6c 6c 6f 77 69 6e |%)..tB. |followin|
|00006040| 67 49 44 61 64 64 25 2c | 20 73 65 63 74 46 6f 75 |gIDadd%,| sectFou|
|00006050| 6e 64 25 2c 20 62 79 74 | 65 73 25 2c 20 61 64 64 |nd%, byt|es%, add|
|00006060| 25 2c 20 49 44 61 64 64 | 25 2c 20 67 61 70 25 2c |%, IDadd|%, gap%,|
|00006070| 20 49 44 25 0d 18 7e 0e | ea 20 64 65 6e 73 69 74 | ID%..~.|. densit|
|00006080| 79 25 0d 18 88 25 64 65 | 6e 73 69 74 79 25 3d 20 |y%...%de|nsity%= |
|00006090| 54 72 6b 44 65 73 63 25 | 3f 62 75 66 54 72 6b 44 |TrkDesc%|?bufTrkD|
|000060a0| 65 6e 73 69 74 79 25 0d | 18 92 2d 66 6f 6c 6c 6f |ensity%.|..-follo|
|000060b0| 77 69 6e 67 49 44 61 64 | 64 25 3d 54 72 6b 44 65 |wingIDad|d%=TrkDe|
|000060c0| 73 63 25 21 62 75 66 45 | 6e 64 56 61 6c 69 64 44 |sc%!bufE|ndValidD|
|000060d0| 61 74 61 25 0d 18 9c 23 | e3 20 73 65 63 74 46 6f |ata%...#|. sectFo|
|000060e0| 75 6e 64 25 3d 20 63 6f | 75 6e 74 25 2d 31 20 b8 |und%= co|unt%-1 .|
|000060f0| 20 30 20 88 20 2d 31 0d | 18 a6 2c 20 20 49 44 61 | 0 . -1.|.., IDa|
|00006100| 64 64 25 3d a4 67 65 74 | 49 44 50 74 72 28 54 72 |dd%=.get|IDPtr(Tr|
|00006110| 6b 44 65 73 63 25 2c 20 | 73 65 63 74 46 6f 75 6e |kDesc%, |sectFoun|
|00006120| 64 25 29 0d 18 b0 2c 20 | 20 61 64 64 25 3d a4 67 |d%)..., | add%=.g|
|00006130| 65 74 44 61 74 61 50 74 | 72 28 54 72 6b 44 65 73 |etDataPt|r(TrkDes|
|00006140| 63 25 2c 20 73 65 63 74 | 46 6f 75 6e 64 25 29 0d |c%, sect|Found%).|
|00006150| 18 ba 2a 20 20 49 44 25 | 3d a4 67 65 74 53 65 63 |..* ID%|=.getSec|
|00006160| 74 49 44 28 54 72 6b 44 | 65 73 63 25 2c 20 73 65 |tID(TrkD|esc%, se|
|00006170| 63 74 46 6f 75 6e 64 25 | 29 0d 18 c4 28 20 20 62 |ctFound%|)...( b|
|00006180| 79 74 65 73 25 3d 31 20 | 3c 3c 20 28 37 2b 20 28 |ytes%=1 |<< (7+ (|
|00006190| 28 49 44 25 20 3e 3e 20 | 32 34 29 20 80 20 33 29 |(ID% >> |24) . 3)|
|000061a0| 29 0d 18 ce 30 20 20 67 | 61 70 25 20 3d 20 28 66 |)...0 g|ap% = (f|
|000061b0| 6f 6c 6c 6f 77 69 6e 67 | 49 44 61 64 64 25 2d 34 |ollowing|IDadd%-4|
|000061c0| 29 20 2d 20 28 61 64 64 | 25 2b 62 79 74 65 73 25 |) - (add|%+bytes%|
|000061d0| 29 0d 18 d8 12 20 20 e7 | 20 67 61 70 25 20 3c 20 |).... .| gap% < |
|000061e0| 35 20 8c 0d 18 e2 35 20 | 20 20 20 f2 61 64 64 53 |5 ....5 | .addS|
|000061f0| 65 63 74 49 6e 66 6f 28 | 54 72 6b 44 65 73 63 25 |ectInfo(|TrkDesc%|
|00006200| 2c 20 73 65 63 74 46 6f | 75 6e 64 25 2c 20 6c 6f |, sectFo|und%, lo|
|00006210| 6e 67 44 61 74 61 25 29 | 0d 18 ec 17 20 20 20 20 |ngData%)|.... |
|00006220| 6d 75 6c 74 69 53 65 63 | 74 46 6c 67 25 3d a3 0d |multiSec|tFlg%=..|
|00006230| 18 f6 14 20 20 20 20 e7 | 20 67 61 70 25 20 3c 20 |... .| gap% < |
|00006240| 32 20 8c 0d 19 00 38 20 | 20 20 20 20 20 f2 61 64 |2 ....8 | .ad|
|00006250| 64 53 65 63 74 49 6e 66 | 6f 28 54 72 6b 44 65 73 |dSectInf|o(TrkDes|
|00006260| 63 25 2c 20 73 65 63 74 | 46 6f 75 6e 64 25 2c 20 |c%, sect|Found%, |
|00006270| 6e 6f 52 6f 6f 6d 43 52 | 43 25 29 0d 19 0a 16 20 |noRoomCR|C%).... |
|00006280| 20 20 20 20 20 e7 20 67 | 61 70 25 20 3c 20 30 20 | . g|ap% < 0 |
|00006290| 8c 0d 19 14 4a 20 20 20 | 20 20 20 20 20 62 79 74 |....J | byt|
|000062a0| 65 73 25 20 2b 3d 20 67 | 61 70 25 20 20 20 3a f4 |es% += g|ap% :.|
|000062b0| 20 72 65 64 75 63 65 20 | 74 72 61 6e 73 66 65 72 | reduce |transfer|
|000062c0| 20 73 69 7a 65 20 69 66 | 20 69 74 20 65 78 74 65 | size if| it exte|
|000062d0| 6e 64 73 20 74 6f 20 49 | 44 2d 34 0d 19 1e 0b 20 |nds to I|D-4.... |
|000062e0| 20 20 20 20 20 cd 0d 19 | 28 09 20 20 20 20 cd 0d | ...|(. ..|
|000062f0| 19 32 07 20 20 cd 0d 19 | 3c 32 20 20 f2 73 65 74 |.2. ...|<2 .set|
|00006300| 44 61 74 61 4c 65 6e 67 | 74 68 28 54 72 6b 44 65 |DataLeng|th(TrkDe|
|00006310| 73 63 25 2c 20 73 65 63 | 74 46 6f 75 6e 64 25 2c |sc%, sec|tFound%,|
|00006320| 20 62 79 74 65 73 25 29 | 0d 19 46 1c 20 20 66 6f | bytes%)|..F. fo|
|00006330| 6c 6c 6f 77 69 6e 67 49 | 44 61 64 64 25 3d 49 44 |llowingI|Dadd%=ID|
|00006340| 61 64 64 25 0d 19 50 05 | ed 0d 19 5a 05 e1 0d 19 |add%..P.|...Z....|
|00006350| 64 04 0d 19 6e 4b 20 20 | 20 f4 20 66 69 6e 64 20 |d...nK | . find |
|00006360| 69 66 20 73 65 63 74 6f | 72 20 6e 75 6d 62 65 72 |if secto|r number|
|00006370| 73 20 61 72 65 20 63 6f | 6e 73 65 63 75 74 69 76 |s are co|nsecutiv|
|00006380| 65 2c 20 61 6e 64 20 61 | 6c 6c 20 68 61 76 65 20 |e, and a|ll have |
|00006390| 74 68 65 20 73 61 6d 65 | 20 73 69 7a 65 0d 19 78 |the same| size..x|
|000063a0| 26 20 20 20 f4 20 69 66 | 20 6e 6f 74 20 73 65 74 |& . if| not set|
|000063b0| 20 4d 75 6c 74 69 20 73 | 65 63 74 6f 72 20 46 61 | Multi s|ector Fa|
|000063c0| 6c 73 65 0d 19 82 45 20 | 20 20 f4 20 69 66 20 4d |lse...E | . if M|
|000063d0| 75 6c 74 69 20 73 65 63 | 74 6f 72 20 73 74 69 6c |ulti sec|tor stil|
|000063e0| 6c 20 73 65 74 2c 20 73 | 65 74 75 70 20 4d 75 6c |l set, s|etup Mul|
|000063f0| 74 69 2d 73 65 63 74 6f | 72 20 64 65 73 63 72 69 |ti-secto|r descri|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.