home *** CD-ROM | disk | FTP | other *** search
Unknown | 1990-12-12 | 58.1 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| Truevision Targa Graphic (image/tga)
| magic
| Supported |
100%
| file
| data
| default
| |
100%
| xdgMime
| image/x-tga
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 0a f4 20 3e 44 | 75 70 0d 00 14 04 0d 00 |..... >D|up......|
|00000010| 1e 33 2a 7c 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.3*|****|********|
|00000020| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000030| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000040| 2a 0d 00 28 33 2a 7c 2a | 20 20 20 20 20 20 20 20 |*..(3*|*| |
|00000050| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000060| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000070| 20 20 2a 2a 0d 00 32 33 | 2a 7c 2a 20 20 44 55 50 | **..23|*|* DUP|
|00000080| 2c 20 74 68 65 20 64 69 | 73 63 20 64 75 70 6c 69 |, the di|sc dupli|
|00000090| 63 61 74 6f 72 20 20 28 | 63 29 20 53 6f 66 74 63 |cator (|c) Softc|
|000000a0| 6f 72 6e 20 20 2a 2a 0d | 00 3c 33 2a 7c 2a 20 20 |orn **.|.<3*|* |
|000000b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2d | | -|
|000000c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000000d0| 20 20 20 20 20 20 20 20 | 2a 2a 0d 00 46 33 2a 7c | |**..F3*||
|000000e0| 2a 20 20 50 75 62 6c 69 | 63 20 44 6f 6d 61 69 6e |* Publi|c Domain|
|000000f0| 20 73 6f 66 74 77 61 72 | 65 2c 20 62 75 74 20 6e | softwar|e, but n|
|00000100| 6f 74 20 66 6f 72 20 75 | 73 65 20 2a 2a 0d 00 50 |ot for u|se **..P|
|00000110| 33 2a 7c 2a 20 20 20 6f | 72 20 73 61 6c 65 20 72 |3*|* o|r sale r|
|00000120| 65 6c 61 74 65 64 20 74 | 6f 20 70 72 6f 66 69 74 |elated t|o profit|
|00000130| 2e 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2a 2a |. | **|
|00000140| 0d 00 5a 33 2a 7c 2a 20 | 20 20 20 20 20 20 20 20 |..Z3*|* | |
|00000150| 20 20 20 20 20 20 20 20 | 2d 20 20 20 20 20 20 20 | |- |
|00000160| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000170| 20 2a 2a 0d 00 64 33 2a | 7c 2a 20 20 43 6f 70 69 | **..d3*||* Copi|
|00000180| 65 73 20 64 6f 75 62 6c | 65 20 6f 72 20 73 69 6e |es doubl|e or sin|
|00000190| 67 6c 65 20 64 65 6e 73 | 69 74 79 20 64 69 73 63 |gle dens|ity disc|
|000001a0| 73 20 20 20 2a 2a 0d 00 | 6e 33 2a 7c 2a 20 20 6f |s **..|n3*|* o|
|000001b0| 66 20 27 61 6e 79 27 20 | 66 6f 72 6d 61 74 20 28 |f 'any' |format (|
|000001c0| 65 67 20 41 44 46 53 20 | 4c 2f 44 2f 45 2c 20 44 |eg ADFS |L/D/E, D|
|000001d0| 46 53 2c 20 20 20 20 2a | 2a 0d 00 78 33 2a 7c 2a |FS, *|*..x3*|*|
|000001e0| 20 20 4d 53 44 4f 53 2c | 20 41 54 41 52 49 20 53 | MSDOS,| ATARI S|
|000001f0| 54 2c 20 41 4d 49 47 41 | 20 65 74 63 2c 20 61 6e |T, AMIGA| etc, an|
|00000200| 64 20 61 20 77 69 64 65 | 20 20 2a 2a 0d 00 82 33 |d a wide| **...3|
|00000210| 2a 7c 2a 20 20 76 61 72 | 69 65 74 79 20 6f 66 20 |*|* var|iety of |
|00000220| 70 72 6f 74 65 63 74 65 | 64 20 64 69 73 63 73 29 |protecte|d discs)|
|00000230| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2a 2a 0d | | **.|
|00000240| 00 8c 33 2a 7c 2a 20 20 | 20 20 20 20 20 20 20 20 |..3*|* | |
|00000250| 20 20 20 20 20 20 20 2d | 20 20 20 20 20 20 20 20 | -| |
|00000260| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000270| 2a 2a 0d 00 96 33 2a 7c | 2a 20 20 4e 6f 74 20 74 |**...3*||* Not t|
|00000280| 65 73 74 65 64 20 77 69 | 74 68 20 52 49 53 43 4f |ested wi|th RISCO|
|00000290| 53 20 79 65 74 2e 20 20 | 50 72 6f 67 72 61 6d 20 |S yet. |Program |
|000002a0| 20 20 20 2a 2a 0d 00 a0 | 33 2a 7c 2a 20 20 6f 6e | **...|3*|* on|
|000002b0| 6c 79 20 75 73 65 73 20 | 6c 65 67 61 6c 20 4f 53 |ly uses |legal OS|
|000002c0| 20 63 61 6c 6c 73 2c 20 | 73 6f 20 69 74 20 73 68 | calls, |so it sh|
|000002d0| 6f 75 6c 64 20 20 2a 2a | 0d 00 aa 33 2a 7c 2a 20 |ould **|...3*|* |
|000002e0| 20 77 6f 72 6b 2c 20 41 | 63 6f 72 6e 20 70 65 72 | work, A|corn per|
|000002f0| 6d 69 74 74 69 6e 67 21 | 20 20 20 20 20 20 20 20 |mitting!| |
|00000300| 20 20 20 20 20 20 20 20 | 20 2a 2a 0d 00 b4 33 2a | | **...3*|
|00000310| 7c 2a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 ||* | |
|00000320| 20 20 20 2d 20 20 20 20 | 20 20 20 20 20 20 20 20 | - | |
|00000330| 20 20 20 20 20 20 20 20 | 20 20 20 20 2a 2a 0d 00 | | **..|
|00000340| be 33 2a 7c 2a 20 20 42 | 41 53 49 43 20 2b 20 6d |.3*|* B|ASIC + m|
|00000350| 61 63 68 69 6e 65 20 63 | 6f 64 65 20 2b 20 64 61 |achine c|ode + da|
|00000360| 74 61 20 66 69 6c 65 20 | 20 20 20 20 20 20 20 2a |ta file | *|
|00000370| 2a 0d 00 c8 33 2a 7c 2a | 20 20 20 20 20 20 20 28 |*...3*|*| (|
|00000380| 45 64 69 74 20 61 74 20 | 79 6f 75 72 20 70 65 72 |Edit at |your per|
|00000390| 69 6c 29 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |il) | |
|000003a0| 20 20 2a 2a 0d 00 d2 33 | 2a 7c 2a 20 20 20 20 20 | **...3|*|* |
|000003b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000003c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000003d0| 20 20 20 20 20 2a 2a 0d | 00 dc 33 2a 7c 2a 2a 2a | **.|..3*|***|
|000003e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000003f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000400| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 0d 00 e6 04 0d 00 |********|**......|
|00000410| f0 10 76 65 72 73 24 3d | 22 31 2e 30 30 22 0d 00 |..vers$=|"1.00"..|
|00000420| fa 04 0d 01 04 09 f2 6c | 6f 67 6f 0d 01 0e 09 f2 |.......l|ogo.....|
|00000430| 69 6e 69 74 0d 01 18 04 | 0d 01 22 0b 64 65 62 75 |init....|..".debu|
|00000440| 67 3d a3 0d 01 2c 04 0d | 01 36 4a f4 20 73 65 74 |g=...,..|.6J. set|
|00000450| 2c 74 6f 20 63 68 65 63 | 6b 20 61 6c 6c 20 74 72 |,to chec|k all tr|
|00000460| 61 63 6b 73 20 68 61 76 | 65 20 61 20 66 69 78 65 |acks hav|e a fixe|
|00000470| 64 20 6e 75 6d 62 65 72 | 20 6f 66 20 67 6f 6f 64 |d number| of good|
|00000480| 20 63 6f 6e 74 69 67 75 | 6f 75 73 20 73 65 63 74 | contigu|ous sect|
|00000490| 73 0d 01 40 11 63 68 65 | 63 6b 46 6f 72 6d 61 74 |s..@.che|ckFormat|
|000004a0| 3d a3 0d 01 4a 19 63 68 | 6b 44 65 6e 73 69 74 79 |=...J.ch|kDensity|
|000004b0| 25 3d 44 44 65 6e 73 69 | 74 79 25 0d 01 54 14 63 |%=DDensi|ty%..T.c|
|000004c0| 68 6b 53 65 63 74 73 50 | 65 72 54 72 6b 3d 39 0d |hkSectsP|erTrk=9.|
|000004d0| 01 5e 13 e7 20 63 68 65 | 63 6b 46 6f 72 6d 61 74 |.^.. che|ckFormat|
|000004e0| 20 8c 0d 01 68 41 20 20 | f1 22 2a 2a 2a 2a 20 43 | ...hA |."**** C|
|000004f0| 68 65 63 6b 69 6e 67 20 | 53 65 63 74 6f 72 73 20 |hecking |Sectors |
|00000500| 70 65 72 20 54 72 61 63 | 6b 20 3d 22 3b 63 68 6b |per Trac|k =";chk|
|00000510| 53 65 63 74 73 50 65 72 | 54 72 6b 3b 22 20 2a 2a |SectsPer|Trk;" **|
|00000520| 2a 2a 22 0d 01 72 05 cd | 0d 01 7c 04 0d 01 86 05 |**"..r..|..|.....|
|00000530| f5 0d 01 90 47 20 20 f2 | 6d 65 6e 75 28 63 6f 70 |....G .|menu(cop|
|00000540| 79 64 69 73 63 2c 73 6f | 75 72 63 65 2c 64 65 73 |ydisc,so|urce,des|
|00000550| 74 2c 73 72 74 74 72 61 | 63 6b 2c 65 6e 64 74 72 |t,srttra|ck,endtr|
|00000560| 61 63 6b 2c 66 69 72 73 | 74 48 65 61 64 2c 6e 75 |ack,firs|tHead,nu|
|00000570| 6d 62 48 65 61 64 73 29 | 0d 01 9a 20 20 20 61 6e |mbHeads)|... an|
|00000580| 61 6c 79 73 65 3d 64 65 | 62 75 67 20 84 20 ac 20 |alyse=de|bug . . |
|00000590| 63 6f 70 79 64 69 73 63 | 0d 01 a4 40 20 20 f2 61 |copydisc|...@ .a|
|000005a0| 63 74 69 6f 6e 28 73 6f | 75 72 63 65 2c 64 65 73 |ction(so|urce,des|
|000005b0| 74 2c 73 72 74 74 72 61 | 63 6b 2c 65 6e 64 74 72 |t,srttra|ck,endtr|
|000005c0| 61 63 6b 2c 66 69 72 73 | 74 48 65 61 64 2c 6e 75 |ack,firs|tHead,nu|
|000005d0| 6d 62 48 65 61 64 73 29 | 0d 01 ae 49 20 20 f1 27 |mbHeads)|...I .'|
|000005e0| 22 20 20 20 20 20 43 6f | 6d 70 6c 65 74 65 64 3a |" Co|mpleted:|
|000005f0| 2d 20 20 20 50 72 65 73 | 73 20 53 50 41 43 45 20 |- Pres|s SPACE |
|00000600| 74 6f 20 43 6f 6e 74 69 | 6e 75 65 20 28 6f 72 20 |to Conti|nue (or |
|00000610| 65 73 63 61 70 65 20 74 | 6f 20 65 78 69 74 29 22 |escape t|o exit)"|
|00000620| 3b 0d 01 b8 11 20 20 f2 | 70 72 65 73 73 73 70 61 |;.... .|pressspa|
|00000630| 63 65 0d 01 c2 07 fd 20 | a3 0d 01 cc 05 e0 0d 01 |ce..... |........|
|00000640| d6 04 0d 01 e0 04 0d 01 | ea 3f dd f2 61 63 74 69 |........|.?..acti|
|00000650| 6f 6e 28 73 6f 75 72 63 | 65 2c 64 65 73 74 2c 73 |on(sourc|e,dest,s|
|00000660| 72 74 74 72 61 63 6b 2c | 65 6e 64 74 72 61 63 6b |rttrack,|endtrack|
|00000670| 2c 66 69 72 73 74 48 65 | 61 64 2c 6e 75 6d 62 48 |,firstHe|ad,numbH|
|00000680| 65 61 64 73 29 0d 01 f4 | 0c 62 6c 61 6e 6b 25 3d |eads)...|.blank%=|
|00000690| a3 0d 01 fe 19 73 72 74 | 44 65 6e 73 69 74 79 25 |.....srt|Density%|
|000006a0| 3d 44 44 65 6e 73 69 74 | 79 25 0d 02 08 27 4d 61 |=DDensit|y%...'Ma|
|000006b0| 78 44 69 73 63 54 72 6b | 73 25 20 3d a8 28 4d 61 |xDiscTrk|s% =.(Ma|
|000006c0| 78 54 72 6b 73 25 2f 6e | 75 6d 62 48 65 61 64 73 |xTrks%/n|umbHeads|
|000006d0| 29 0d 02 12 16 66 69 72 | 73 74 54 72 6b 25 3d 73 |)....fir|stTrk%=s|
|000006e0| 72 74 74 72 61 63 6b 0d | 02 1c 21 54 72 6b 73 4c |rttrack.|..!TrksL|
|000006f0| 65 66 74 25 3d 31 2b 65 | 6e 64 74 72 61 63 6b 2d |eft%=1+e|ndtrack-|
|00000700| 73 72 74 74 72 61 63 6b | 0d 02 26 14 c8 95 20 54 |srttrack|..&... T|
|00000710| 72 6b 73 4c 65 66 74 25 | 20 3e 20 30 0d 02 30 22 |rksLeft%| > 0..0"|
|00000720| 20 20 e7 20 54 72 6b 73 | 4c 65 66 74 25 20 3e 20 | . Trks|Left% > |
|00000730| 4d 61 78 44 69 73 63 54 | 72 6b 73 25 20 8c 0d 02 |MaxDiscT|rks% ...|
|00000740| 3a 1e 20 20 20 20 6e 75 | 6d 62 54 72 6b 73 25 3d |:. nu|mbTrks%=|
|00000750| 4d 61 78 44 69 73 63 54 | 72 6b 73 25 0d 02 44 07 |MaxDiscT|rks%..D.|
|00000760| 20 20 cc 0d 02 4e 1b 20 | 20 20 20 6e 75 6d 62 54 | ...N. | numbT|
|00000770| 72 6b 73 25 3d 54 72 6b | 73 4c 65 66 74 25 0d 02 |rks%=Trk|sLeft%..|
|00000780| 58 07 20 20 cd 0d 02 62 | 55 20 20 f2 63 6f 70 79 |X. ...b|U .copy|
|00000790| 4d 75 6c 74 69 54 72 6b | 73 28 73 6f 75 72 63 65 |MultiTrk|s(source|
|000007a0| 2c 64 65 73 74 2c 66 69 | 72 73 74 54 72 6b 25 2c |,dest,fi|rstTrk%,|
|000007b0| 6e 75 6d 62 54 72 6b 73 | 25 2c 66 69 72 73 74 48 |numbTrks|%,firstH|
|000007c0| 65 61 64 2c 6e 75 6d 62 | 48 65 61 64 73 2c 73 72 |ead,numb|Heads,sr|
|000007d0| 74 44 65 6e 73 69 74 79 | 25 29 0d 02 6c 1b 20 20 |tDensity|%)..l. |
|000007e0| 66 69 72 73 74 54 72 6b | 25 20 2b 3d 6e 75 6d 62 |firstTrk|% +=numb|
|000007f0| 54 72 6b 73 25 0d 02 76 | 1b 20 20 54 72 6b 73 4c |Trks%..v|. TrksL|
|00000800| 65 66 74 25 20 2d 3d 6e | 75 6d 62 54 72 6b 73 25 |eft% -=n|umbTrks%|
|00000810| 0d 02 80 05 ce 0d 02 8a | 05 e1 0d 02 94 04 0d 02 |........|........|
|00000820| 9e 57 dd f2 63 6f 70 79 | 4d 75 6c 74 69 54 72 6b |.W..copy|MultiTrk|
|00000830| 73 28 73 6f 75 72 63 65 | 2c 64 65 73 74 2c 66 69 |s(source|,dest,fi|
|00000840| 72 73 74 54 72 6b 25 2c | 6e 75 6d 62 54 72 6b 73 |rstTrk%,|numbTrks|
|00000850| 25 2c 66 69 72 73 74 48 | 65 61 64 2c 6e 75 6d 62 |%,firstH|ead,numb|
|00000860| 48 65 61 64 73 2c 20 f8 | 20 73 72 74 44 65 6e 73 |Heads, .| srtDens|
|00000870| 69 74 79 25 29 0d 02 a8 | 08 ea 20 54 25 0d 02 b2 |ity%)...|.. T%...|
|00000880| 1a f2 63 68 65 63 6b 44 | 69 73 63 49 6e 28 22 53 |..checkD|iscIn("S|
|00000890| 4f 55 52 43 45 22 29 0d | 02 bc 3b e7 20 28 66 69 |OURCE").|..;. (fi|
|000008a0| 72 73 74 54 72 6b 25 20 | 3d 20 73 72 74 74 72 61 |rstTrk% |= srttra|
|000008b0| 63 6b 29 20 84 20 28 28 | 73 6f 75 72 63 65 3d 64 |ck) . ((|source=d|
|000008c0| 65 73 74 29 20 80 20 63 | 6f 70 79 64 69 73 63 29 |est) . c|opydisc)|
|000008d0| 20 8c 0d 02 c6 19 20 20 | f2 65 6e 67 61 67 65 44 | ..... |.engageD|
|000008e0| 69 73 63 28 73 6f 75 72 | 63 65 29 0d 02 d0 05 cd |isc(sour|ce).....|
|000008f0| 0d 02 da 58 f2 64 6f 4d | 75 6c 74 69 54 72 6b 73 |...X.doM|ultiTrks|
|00000900| 28 52 65 61 64 25 2c 20 | 73 6f 75 72 63 65 2c 20 |(Read%, |source, |
|00000910| 66 69 72 73 74 54 72 6b | 25 2c 20 6e 75 6d 62 54 |firstTrk|%, numbT|
|00000920| 72 6b 73 25 2c 20 66 69 | 72 73 74 48 65 61 64 2c |rks%, fi|rstHead,|
|00000930| 20 6e 75 6d 62 48 65 61 | 64 73 2c 20 73 72 74 44 | numbHea|ds, srtD|
|00000940| 65 6e 73 69 74 79 25 29 | 0d 02 e4 10 e7 20 63 6f |ensity%)|..... co|
|00000950| 70 79 64 69 73 63 20 8c | 0d 02 ee 21 20 20 f2 63 |pydisc .|...! .c|
|00000960| 68 65 63 6b 44 69 73 63 | 49 6e 28 22 44 45 53 54 |heckDisc|In("DEST|
|00000970| 49 4e 41 54 49 4f 4e 22 | 29 0d 02 f8 30 20 20 e7 |INATION"|)...0 .|
|00000980| 20 28 66 69 72 73 74 54 | 72 6b 25 20 3d 20 73 72 | (firstT|rk% = sr|
|00000990| 74 74 72 61 63 6b 29 20 | 84 20 28 73 6f 75 72 63 |ttrack) |. (sourc|
|000009a0| 65 3d 64 65 73 74 29 20 | 8c 0d 03 02 19 20 20 20 |e=dest) |..... |
|000009b0| 20 f2 65 6e 67 61 67 65 | 44 69 73 63 28 64 65 73 | .engage|Disc(des|
|000009c0| 74 29 0d 03 0c 07 20 20 | cd 0d 03 16 58 20 20 f2 |t).... |....X .|
|000009d0| 64 6f 4d 75 6c 74 69 54 | 72 6b 73 28 57 72 69 74 |doMultiT|rks(Writ|
|000009e0| 65 25 2c 20 64 65 73 74 | 2c 20 66 69 72 73 74 54 |e%, dest|, firstT|
|000009f0| 72 6b 25 2c 20 6e 75 6d | 62 54 72 6b 73 25 2c 20 |rk%, num|bTrks%, |
|00000a00| 66 69 72 73 74 48 65 61 | 64 2c 6e 75 6d 62 48 65 |firstHea|d,numbHe|
|00000a10| 61 64 73 2c 20 73 72 74 | 44 65 6e 73 69 74 79 25 |ads, srt|Density%|
|00000a20| 29 0d 03 20 05 cd 0d 03 | 2a 05 e1 0d 03 34 04 0d |).. ....|*....4..|
|00000a30| 03 3e 57 dd f2 64 6f 4d | 75 6c 74 69 54 72 6b 73 |.>W..doM|ultiTrks|
|00000a40| 28 63 6d 64 25 2c 20 64 | 72 76 2c 20 66 69 72 73 |(cmd%, d|rv, firs|
|00000a50| 74 54 72 6b 25 2c 20 6e | 75 6d 62 54 72 6b 73 25 |tTrk%, n|umbTrks%|
|00000a60| 2c 20 66 69 72 73 74 48 | 65 61 64 2c 20 6e 75 6d |, firstH|ead, num|
|00000a70| 62 48 65 61 64 73 2c 20 | f8 20 73 72 74 44 65 6e |bHeads, |. srtDen|
|00000a80| 73 69 74 79 25 29 0d 03 | 48 19 ea 20 54 72 6b 44 |sity%)..|H.. TrkD|
|00000a90| 65 73 63 25 2c 20 74 72 | 6b 2c 20 68 65 61 64 0d |esc%, tr|k, head.|
|00000aa0| 03 52 18 54 72 6b 44 65 | 73 63 25 3d 4d 61 69 6e |.R.TrkDe|sc%=Main|
|00000ab0| 42 75 66 66 65 72 25 0d | 03 5c 30 e3 20 74 72 6b |Buffer%.|.\0. trk|
|00000ac0| 3d 66 69 72 73 74 54 72 | 6b 25 20 b8 20 28 66 69 |=firstTr|k% . (fi|
|00000ad0| 72 73 74 54 72 6b 25 20 | 2b 20 6e 75 6d 62 54 72 |rstTrk% |+ numbTr|
|00000ae0| 6b 73 25 20 2d 31 29 0d | 03 66 33 20 20 e3 20 68 |ks% -1).|.f3 . h|
|00000af0| 65 61 64 3d 66 69 72 73 | 74 48 65 61 64 20 b8 20 |ead=firs|tHead . |
|00000b00| 28 66 69 72 73 74 48 65 | 61 64 20 2b 20 6e 75 6d |(firstHe|ad + num|
|00000b10| 62 48 65 61 64 73 20 2d | 31 29 0d 03 70 0f 20 20 |bHeads -|1)..p. |
|00000b20| 20 20 f1 8a 30 2c bc 29 | 3b 0d 03 7a 2e 20 20 20 | ..0,.)|;..z. |
|00000b30| 20 e7 20 63 6d 64 25 3d | 52 65 61 64 25 20 8c 20 | . cmd%=|Read% . |
|00000b40| f1 20 22 52 65 61 64 20 | 22 3b 20 8b 20 f1 20 22 |. "Read |"; . . "|
|00000b50| 57 72 69 74 65 22 3b 0d | 03 84 41 20 20 20 20 f1 |Write";.|..A .|
|00000b60| 3b 22 3a 20 44 72 76 3d | 22 3b 64 72 76 3b 22 20 |;": Drv=|";drv;" |
|00000b70| 54 72 6b 3d 22 3b 74 72 | 6b 3b 22 20 20 20 22 3b |Trk=";tr|k;" ";|
|00000b80| 8a 32 31 2c bc 29 3b 22 | 48 64 3d 22 3b 68 65 61 |.21,.);"|Hd=";hea|
|00000b90| 64 3b 22 20 20 20 22 3b | 0d 03 8e 13 20 20 20 20 |d;" ";|.... |
|00000ba0| e7 20 64 65 62 75 67 20 | 8c 20 f1 0d 03 98 16 20 |. debug |. ..... |
|00000bb0| 20 20 20 e7 20 63 6d 64 | 25 3d 52 65 61 64 25 20 | . cmd|%=Read% |
|00000bc0| 8c 0d 03 a2 3f 20 20 20 | 20 20 20 f2 72 65 61 64 |....? | .read|
|00000bd0| 53 69 6e 67 6c 65 54 72 | 6b 28 64 72 76 2c 20 74 |SingleTr|k(drv, t|
|00000be0| 72 6b 2c 20 68 65 61 64 | 2c 20 54 72 6b 44 65 73 |rk, head|, TrkDes|
|00000bf0| 63 25 2c 20 73 72 74 44 | 65 6e 73 69 74 79 25 29 |c%, srtD|ensity%)|
|00000c00| 0d 03 ac 09 20 20 20 20 | cc 0d 03 b6 33 20 20 20 |.... |....3 |
|00000c10| 20 20 20 f2 77 72 69 74 | 65 53 69 6e 67 6c 65 54 | .writ|eSingleT|
|00000c20| 72 6b 28 64 72 76 2c 20 | 74 72 6b 2c 20 68 65 61 |rk(drv, |trk, hea|
|00000c30| 64 2c 20 54 72 6b 44 65 | 73 63 25 29 0d 03 c0 09 |d, TrkDe|sc%)....|
|00000c40| 20 20 20 20 cd 0d 03 ca | 2f 20 20 20 20 54 72 6b | ....|/ Trk|
|00000c50| 44 65 73 63 25 20 2b 3d | 20 54 72 6b 44 65 73 63 |Desc% +=| TrkDesc|
|00000c60| 53 69 7a 65 25 20 2b 20 | 54 72 6b 44 61 74 61 53 |Size% + |TrkDataS|
|00000c70| 69 7a 65 25 0d 03 d4 07 | 20 20 ed 0d 03 de 05 ed |ize%....| ......|
|00000c80| 0d 03 e8 05 e1 0d 03 f2 | 04 0d 03 fc 31 dd f2 77 |........|....1..w|
|00000c90| 72 69 74 65 53 69 6e 67 | 6c 65 54 72 6b 28 64 72 |riteSing|leTrk(dr|
|00000ca0| 76 25 2c 20 74 72 6b 25 | 2c 20 68 65 61 64 25 2c |v%, trk%|, head%,|
|00000cb0| 20 54 72 6b 44 65 73 63 | 25 29 0d 04 06 3a ea 20 | TrkDesc|%)...:. |
|00000cc0| 63 6f 75 6e 74 25 2c 20 | 64 65 6e 73 69 74 79 25 |count%, |density%|
|00000cd0| 2c 20 44 61 74 61 42 75 | 66 25 2c 20 6d 75 6c 74 |, DataBu|f%, mult|
|00000ce0| 69 53 65 63 74 46 6c 67 | 25 2c 20 73 65 63 74 49 |iSectFlg|%, sectI|
|00000cf0| 6e 66 6f 25 0d 04 10 44 | ea 20 6c 6f 77 53 65 63 |nfo%...D|. lowSec|
|00000d00| 74 25 2c 20 73 65 63 74 | 53 69 7a 65 25 2c 20 73 |t%, sect|Size%, s|
|00000d10| 65 63 74 25 2c 20 73 65 | 63 74 46 6f 75 6e 64 25 |ect%, se|ctFound%|
|00000d20| 2c 20 61 64 64 25 2c 20 | 49 44 25 2c 20 6d 75 73 |, add%, |ID%, mus|
|00000d30| 74 57 72 53 65 63 74 25 | 0d 04 1a 22 63 6f 75 6e |tWrSect%|..."coun|
|00000d40| 74 25 20 3d 20 54 72 6b | 44 65 73 63 25 3f 62 75 |t% = Trk|Desc%?bu|
|00000d50| 66 4e 75 6d 62 53 65 63 | 74 25 0d 04 24 25 64 65 |fNumbSec|t%..$%de|
|00000d60| 6e 73 69 74 79 25 3d 20 | 54 72 6b 44 65 73 63 25 |nsity%= |TrkDesc%|
|00000d70| 3f 62 75 66 54 72 6b 44 | 65 6e 73 69 74 79 25 0d |?bufTrkD|ensity%.|
|00000d80| 04 2e 26 44 61 74 61 42 | 75 66 25 20 3d 20 54 72 |..&DataB|uf% = Tr|
|00000d90| 6b 44 65 73 63 25 20 2b | 20 54 72 6b 44 65 73 63 |kDesc% +| TrkDesc|
|00000da0| 53 69 7a 65 25 0d 04 38 | 10 e7 20 63 6f 75 6e 74 |Size%..8|.. count|
|00000db0| 25 3d 30 20 8c 0d 04 42 | 34 20 20 f4 20 62 6c 61 |%=0 ...B|4 . bla|
|00000dc0| 6e 6b 20 74 72 61 63 6b | 20 73 6f 20 6a 75 73 74 |nk track| so just|
|00000dd0| 20 63 6f 70 79 20 62 61 | 63 6b 20 52 65 61 64 54 | copy ba|ck ReadT|
|00000de0| 72 61 63 6b 20 64 61 74 | 61 0d 04 4c 3b 20 20 f2 |rack dat|a..L; .|
|00000df0| 77 72 69 74 65 74 72 61 | 63 6b 43 68 6b 28 64 72 |writetra|ckChk(dr|
|00000e00| 76 25 2c 20 74 72 6b 25 | 2c 20 68 65 61 64 25 2c |v%, trk%|, head%,|
|00000e10| 20 64 65 6e 73 69 74 79 | 25 2c 20 44 61 74 61 42 | density|%, DataB|
|00000e20| 75 66 25 29 0d 04 56 05 | cc 0d 04 60 53 20 20 f2 |uf%)..V.|...`S .|
|00000e30| 6d 61 6b 65 57 72 69 74 | 65 54 72 6b 28 54 72 6b |makeWrit|eTrk(Trk|
|00000e40| 44 65 73 63 25 2c 20 63 | 6f 75 6e 74 25 2c 20 64 |Desc%, c|ount%, d|
|00000e50| 65 6e 73 69 74 79 25 2c | 20 44 61 74 61 42 75 66 |ensity%,| DataBuf|
|00000e60| 25 2c 20 57 72 69 74 65 | 54 72 6b 42 75 66 25 2c |%, Write|TrkBuf%,|
|00000e70| 6d 75 73 74 57 72 73 65 | 63 74 25 29 0d 04 6a 3f |mustWrse|ct%)..j?|
|00000e80| 20 20 f2 77 72 69 74 65 | 74 72 61 63 6b 43 68 6b | .write|trackChk|
|00000e90| 28 64 72 76 25 2c 20 74 | 72 6b 25 2c 20 68 65 61 |(drv%, t|rk%, hea|
|00000ea0| 64 25 2c 20 64 65 6e 73 | 69 74 79 25 2c 20 57 72 |d%, dens|ity%, Wr|
|00000eb0| 69 74 65 54 72 6b 42 75 | 66 25 29 0d 04 74 2e 20 |iteTrkBu|f%)..t. |
|00000ec0| 20 6d 75 6c 74 69 53 65 | 63 74 46 6c 67 25 3d 20 | multiSe|ctFlg%= |
|00000ed0| 54 72 6b 44 65 73 63 25 | 3f 62 75 66 4d 75 6c 74 |TrkDesc%|?bufMult|
|00000ee0| 69 53 65 63 74 46 6c 67 | 25 0d 04 7e 25 20 20 e7 |iSectFlg|%..~% .|
|00000ef0| 20 6d 75 6c 74 69 53 65 | 63 74 46 6c 67 25 20 80 | multiSe|ctFlg% .|
|00000f00| 20 6d 75 73 74 57 72 73 | 65 63 74 25 20 8c 0d 04 | mustWrs|ect% ...|
|00000f10| 88 38 20 20 20 20 f4 20 | 77 72 69 74 65 20 74 72 |.8 . |write tr|
|00000f20| 61 63 6b 20 69 6e 20 6f | 6e 65 20 67 6f 20 62 79 |ack in o|ne go by|
|00000f30| 20 75 73 69 6e 67 20 6d | 65 6d 6f 72 79 20 44 4d | using m|emory DM|
|00000f40| 41 20 6c 69 73 74 0d 04 | 92 41 20 20 20 20 f4 20 |A list..|.A . |
|00000f50| 62 75 74 20 6f 6e 6c 79 | 20 69 66 20 61 20 73 65 |but only| if a se|
|00000f60| 63 74 6f 72 20 63 6f 75 | 6c 64 20 6e 6f 74 20 62 |ctor cou|ld not b|
|00000f70| 65 20 77 72 69 74 74 65 | 6e 20 64 75 72 69 6e 67 |e writte|n during|
|00000f80| 20 46 6f 72 6d 61 74 0d | 04 9c 25 20 20 20 20 6c | Format.|..% l|
|00000f90| 6f 77 53 65 63 74 25 3d | 54 72 6b 44 65 73 63 25 |owSect%=|TrkDesc%|
|00000fa0| 3f 62 75 66 4c 6f 77 53 | 65 63 74 25 0d 04 a6 27 |?bufLowS|ect%...'|
|00000fb0| 20 20 20 20 73 65 63 74 | 53 69 7a 65 25 3d 54 72 | sect|Size%=Tr|
|00000fc0| 6b 44 65 73 63 25 3f 62 | 75 66 53 65 63 74 53 69 |kDesc%?b|ufSectSi|
|00000fd0| 7a 65 25 0d 04 b0 29 20 | 20 20 20 f2 63 6f 70 79 |ze%...) | .copy|
|00000fe0| 4d 65 6d 41 64 64 4c 69 | 73 74 28 54 72 6b 44 65 |MemAddLi|st(TrkDe|
|00000ff0| 73 63 25 2c 20 63 6f 75 | 6e 74 25 29 0d 04 ba 62 |sc%, cou|nt%)...b|
|00001000| 20 20 20 20 f2 6f 70 73 | 65 63 74 6f 72 73 28 57 | .ops|ectors(W|
|00001010| 72 69 74 65 25 20 84 20 | 28 31 3c 3c 35 29 2c 64 |rite% . |(1<<5),d|
|00001020| 72 76 25 2c 74 72 6b 25 | 2c 68 65 61 64 25 2c 6c |rv%,trk%|,head%,l|
|00001030| 6f 77 53 65 63 74 25 2c | 63 6f 75 6e 74 25 2c 73 |owSect%,|count%,s|
|00001040| 65 63 74 53 69 7a 65 25 | 2c 64 65 6e 73 69 74 79 |ectSize%|,density|
|00001050| 25 2c 6d 65 6d 41 64 64 | 4c 69 73 74 25 29 0d 04 |%,memAdd|List%)..|
|00001060| c4 18 20 20 20 20 e7 20 | 72 65 73 75 6c 74 25 20 |.. . |result% |
|00001070| 3c 3e 20 30 20 8c 0d 04 | ce 27 20 20 20 20 20 20 |<> 0 ...|.' |
|00001080| 6d 75 6c 74 69 53 65 63 | 74 46 6c 67 25 3d a3 20 |multiSec|tFlg%=. |
|00001090| 3a f4 20 44 69 73 63 20 | 65 72 72 6f 72 0d 04 d8 |:. Disc |error...|
|000010a0| 3a 20 20 20 20 20 20 f1 | 22 20 20 77 72 69 74 69 |: .|" writi|
|000010b0| 6e 67 3a 2d 20 74 72 61 | 63 6b 20 77 61 73 20 6e |ng:- tra|ck was n|
|000010c0| 6f 6e 2d 73 74 61 6e 64 | 61 72 64 20 20 61 66 74 |on-stand|ard aft|
|000010d0| 65 72 20 61 6c 6c 22 0d | 04 e2 09 20 20 20 20 cd |er all".|... .|
|000010e0| 0d 04 ec 07 20 20 cd 0d | 04 f6 2a 20 20 e7 20 28 |.... ..|..* . (|
|000010f0| 6d 75 6c 74 69 53 65 63 | 74 46 6c 67 25 3d 30 29 |multiSec|tFlg%=0)|
|00001100| 20 80 20 6d 75 73 74 57 | 72 73 65 63 74 25 20 20 | . mustW|rsect% |
|00001110| 8c 0d 05 00 42 20 20 20 | 20 f4 20 63 61 74 63 68 |....B | . catch|
|00001120| 20 61 6c 6c 20 6e 6f 6e | 2d 73 74 61 6e 64 61 72 | all non|-standar|
|00001130| 64 20 74 72 61 63 6b 20 | 66 6f 72 6d 61 74 73 2c |d track |formats,|
|00001140| 20 62 75 74 20 6f 6e 6c | 79 20 69 66 20 61 20 67 | but onl|y if a g|
|00001150| 6f 6f 64 0d 05 0a 34 20 | 20 20 20 f4 20 20 73 65 |ood...4 | . se|
|00001160| 63 74 6f 72 20 63 6f 75 | 6c 64 20 6e 6f 74 20 62 |ctor cou|ld not b|
|00001170| 65 20 77 72 69 74 74 65 | 6e 20 64 75 72 69 6e 67 |e writte|n during|
|00001180| 20 46 6f 72 6d 61 74 0d | 05 14 27 20 20 20 20 e7 | Format.|..' .|
|00001190| 20 28 6d 75 6c 74 69 53 | 65 63 74 46 6c 67 25 3d | (multiS|ectFlg%=|
|000011a0| 30 29 20 80 20 61 6e 61 | 6c 79 73 65 20 8c 0d 05 |0) . ana|lyse ...|
|000011b0| 1e 32 20 20 20 20 20 20 | f1 22 20 20 77 72 69 74 |.2 |." writ|
|000011c0| 69 6e 67 3a 2d 20 6e 6f | 6e 2d 73 74 61 6e 64 61 |ing:- no|n-standa|
|000011d0| 72 64 20 74 72 61 63 6b | 20 6c 61 79 6f 75 74 22 |rd track| layout"|
|000011e0| 0d 05 28 09 20 20 20 20 | cd 0d 05 32 22 20 20 20 |..(. |...2" |
|000011f0| 20 e3 20 73 65 63 74 46 | 6f 75 6e 64 25 3d 20 30 | . sectF|ound%= 0|
|00001200| 20 b8 20 63 6f 75 6e 74 | 25 2d 31 0d 05 3c 36 20 | . count|%-1..<6 |
|00001210| 20 20 20 20 20 73 65 63 | 74 49 6e 66 6f 25 3d a4 | sec|tInfo%=.|
|00001220| 67 65 74 53 65 63 74 49 | 6e 66 6f 28 54 72 6b 44 |getSectI|nfo(TrkD|
|00001230| 65 73 63 25 2c 20 73 65 | 63 74 46 6f 75 6e 64 25 |esc%, se|ctFound%|
|00001240| 29 0d 05 46 2c 20 20 20 | 20 20 20 e7 20 28 73 65 |)..F, | . (se|
|00001250| 63 74 49 6e 66 6f 25 20 | 80 20 28 ac 20 6f 76 65 |ctInfo% |. (. ove|
|00001260| 72 49 6e 64 65 78 25 29 | 29 3d 30 20 8c 0d 05 50 |rIndex%)|)=0 ...P|
|00001270| 45 20 20 20 20 20 20 20 | 20 f4 20 69 66 20 64 61 |E | . if da|
|00001280| 74 61 20 61 72 65 61 20 | 77 61 73 20 72 65 61 64 |ta area |was read|
|00001290| 20 4f 4b 20 28 26 20 64 | 6f 6e 27 74 20 68 61 76 | OK (& d|on't hav|
|000012a0| 65 20 61 6e 79 20 69 6c | 6c 65 67 61 6c 20 49 44 |e any il|legal ID|
|000012b0| 73 29 0d 05 5a 42 20 20 | 20 20 20 20 20 20 f4 20 |s)..ZB | . |
|000012c0| 61 6e 64 20 69 74 20 77 | 61 73 20 6e 6f 74 20 64 |and it w|as not d|
|000012d0| 65 6c 65 74 65 64 20 64 | 61 74 61 2c 20 74 68 65 |eleted d|ata, the|
|000012e0| 6e 20 70 72 6f 76 69 64 | 65 64 20 64 61 74 61 20 |n provid|ed data |
|000012f0| 61 72 65 61 0d 05 64 46 | 20 20 20 20 20 20 20 20 |area..dF| |
|00001300| f4 20 20 68 61 73 20 6e | 6f 74 20 61 6c 72 65 61 |. has n|ot alrea|
|00001310| 64 79 20 62 65 65 6e 20 | 63 6f 72 72 65 63 74 6c |dy been |correctl|
|00001320| 79 20 77 72 69 74 74 65 | 6e 20 77 69 74 68 20 77 |y writte|n with w|
|00001330| 72 69 74 65 74 72 61 63 | 6b 2c 0d 05 6e 2b 20 20 |ritetrac|k,..n+ |
|00001340| 20 20 20 20 20 20 f4 20 | 77 72 69 74 65 20 74 68 | . |write th|
|00001350| 65 20 73 65 63 74 6f 72 | 20 69 6e 64 69 76 69 64 |e sector| individ|
|00001360| 75 61 6c 6c 79 0d 05 78 | 32 20 20 20 20 20 20 20 |ually..x|2 |
|00001370| 20 61 64 64 25 3d a4 67 | 65 74 44 61 74 61 50 74 | add%=.g|etDataPt|
|00001380| 72 28 54 72 6b 44 65 73 | 63 25 2c 20 73 65 63 74 |r(TrkDes|c%, sect|
|00001390| 46 6f 75 6e 64 25 29 0d | 05 82 30 20 20 20 20 20 |Found%).|..0 |
|000013a0| 20 20 20 49 44 25 3d a4 | 67 65 74 53 65 63 74 49 | ID%=.|getSectI|
|000013b0| 44 28 54 72 6b 44 65 73 | 63 25 2c 20 73 65 63 74 |D(TrkDes|c%, sect|
|000013c0| 46 6f 75 6e 64 25 29 0d | 05 8c 23 20 20 20 20 20 |Found%).|..# |
|000013d0| 20 20 20 73 65 63 74 25 | 3d 26 46 46 20 80 20 28 | sect%|=&FF . (|
|000013e0| 49 44 25 20 3e 3e 20 31 | 36 29 0d 05 96 25 20 20 |ID% >> 1|6)...% |
|000013f0| 20 20 20 20 20 20 73 65 | 63 74 53 69 7a 65 25 3d | se|ctSize%=|
|00001400| 33 20 80 20 28 49 44 25 | 20 3e 3e 20 32 34 29 0d |3 . (ID%| >> 24).|
|00001410| 05 a0 4a 20 20 20 20 20 | 20 20 20 f2 77 72 69 74 |..J | .writ|
|00001420| 65 73 65 63 74 6f 72 73 | 28 64 72 76 25 2c 74 72 |esectors|(drv%,tr|
|00001430| 6b 25 2c 68 65 61 64 25 | 2c 73 65 63 74 25 2c 31 |k%,head%|,sect%,1|
|00001440| 2c 73 65 63 74 53 69 7a | 65 25 2c 64 65 6e 73 69 |,sectSiz|e%,densi|
|00001450| 74 79 25 2c 61 64 64 25 | 29 0d 05 aa 0b 20 20 20 |ty%,add%|).... |
|00001460| 20 20 20 cd 0d 05 b4 09 | 20 20 20 20 ed 0d 05 be | .....| ....|
|00001470| 07 20 20 cd 0d 05 c8 05 | cd 0d 05 d2 05 e1 0d 05 |. .....|........|
|00001480| dc 04 0d 05 e6 48 20 20 | f4 20 6d 61 6b 65 20 57 |.....H |. make W|
|00001490| 72 69 74 65 20 54 72 61 | 63 6b 20 64 61 74 61 20 |rite Tra|ck data |
|000014a0| 75 73 69 6e 67 20 54 72 | 61 63 6b 20 64 65 73 63 |using Tr|ack desc|
|000014b0| 72 69 70 74 6f 72 20 61 | 6e 64 20 52 65 61 64 20 |riptor a|nd Read |
|000014c0| 54 72 61 63 6b 20 28 74 | 68 65 0d 05 f0 43 20 20 |Track (t|he...C |
|000014d0| f4 20 20 6c 61 74 74 65 | 72 20 68 61 76 69 6e 67 |. latte|r having|
|000014e0| 20 62 65 65 6e 20 6f 76 | 65 72 6c 61 69 64 20 77 | been ov|erlaid w|
|000014f0| 69 74 68 20 63 6f 72 72 | 65 63 74 20 72 65 61 64 |ith corr|ect read|
|00001500| 20 73 65 63 74 6f 72 20 | 64 61 74 61 2e 0d 05 fa | sector |data....|
|00001510| 3e 20 20 f4 20 42 75 74 | 20 65 6e 73 75 72 65 20 |> . But| ensure |
|00001520| 6e 6f 20 69 6c 6c 65 67 | 61 6c 20 63 68 72 73 20 |no illeg|al chrs |
|00001530| 61 70 70 65 61 72 20 69 | 6e 20 67 61 70 73 20 6f |appear i|n gaps o|
|00001540| 72 20 64 61 74 61 20 61 | 72 65 61 0d 06 04 36 20 |r data a|rea...6 |
|00001550| 20 f4 20 4f 75 74 70 75 | 74 20 6d 65 73 73 61 67 | . Outpu|t messag|
|00001560| 65 20 69 66 20 64 61 74 | 61 20 61 72 65 61 20 63 |e if dat|a area c|
|00001570| 61 6e 27 74 20 62 65 20 | 72 65 63 72 65 61 74 65 |an't be |recreate|
|00001580| 64 0d 06 0e 55 dd f2 6d | 61 6b 65 57 72 69 74 65 |d...U..m|akeWrite|
|00001590| 54 72 6b 28 54 72 6b 44 | 65 73 63 25 2c 20 63 6f |Trk(TrkD|esc%, co|
|000015a0| 75 6e 74 25 2c 20 64 65 | 6e 73 69 74 79 25 2c 20 |unt%, de|nsity%, |
|000015b0| 52 65 61 64 42 75 66 25 | 2c 20 57 72 69 74 65 54 |ReadBuf%|, WriteT|
|000015c0| 72 6b 42 75 66 25 2c 20 | f8 20 6d 75 73 74 57 72 |rkBuf%, |. mustWr|
|000015d0| 53 65 63 74 25 29 0d 06 | 18 47 ea 20 73 65 63 74 |Sect%)..|.G. sect|
|000015e0| 46 6f 75 6e 64 25 2c 20 | 73 65 63 74 53 69 7a 65 |Found%, |sectSize|
|000015f0| 25 2c 20 53 72 63 41 64 | 64 25 2c 20 53 72 63 4c |%, SrcAd|d%, SrcL|
|00001600| 6f 77 41 64 64 25 2c 20 | 44 65 73 74 41 64 64 25 |owAdd%, |DestAdd%|
|00001610| 2c 20 44 65 73 74 4c 6f | 77 41 64 64 25 0d 06 22 |, DestLo|wAdd%.."|
|00001620| 15 ea 20 63 6f 6e 76 65 | 72 74 25 2c 20 69 6e 66 |.. conve|rt%, inf|
|00001630| 6f 25 0d 06 2c 11 6d 75 | 73 74 57 72 53 65 63 74 |o%..,.mu|stWrSect|
|00001640| 25 3d a3 0d 06 36 1c 44 | 65 73 74 4c 6f 77 41 64 |%=...6.D|estLowAd|
|00001650| 64 25 3d 57 72 69 74 65 | 54 72 6b 42 75 66 25 0d |d%=Write|TrkBuf%.|
|00001660| 06 40 17 53 72 63 4c 6f | 77 41 64 64 25 3d 52 65 |.@.SrcLo|wAdd%=Re|
|00001670| 61 64 42 75 66 25 0d 06 | 4a 1d e3 20 73 65 63 74 |adBuf%..|J.. sect|
|00001680| 46 6f 75 6e 64 25 3d 30 | 20 b8 20 63 6f 75 6e 74 |Found%=0| . count|
|00001690| 25 2d 31 0d 06 54 2d 20 | 20 53 72 63 41 64 64 25 |%-1..T- | SrcAdd%|
|000016a0| 3d a4 67 65 74 49 44 50 | 74 72 28 54 72 6b 44 65 |=.getIDP|tr(TrkDe|
|000016b0| 73 63 25 2c 20 73 65 63 | 74 46 6f 75 6e 64 25 29 |sc%, sec|tFound%)|
|000016c0| 0d 06 5e 2d 20 20 44 65 | 73 74 41 64 64 25 3d 44 |..^- De|stAdd%=D|
|000016d0| 65 73 74 4c 6f 77 41 64 | 64 25 2b 53 72 63 41 64 |estLowAd|d%+SrcAd|
|000016e0| 64 25 2d 53 72 63 4c 6f | 77 41 64 64 25 0d 06 68 |d%-SrcLo|wAdd%..h|
|000016f0| 2d 20 20 69 6e 66 6f 25 | 3d a4 67 65 74 53 65 63 |- info%|=.getSec|
|00001700| 74 49 6e 66 6f 28 54 72 | 6b 44 65 73 63 25 2c 73 |tInfo(Tr|kDesc%,s|
|00001710| 65 63 74 46 6f 75 6e 64 | 25 29 0d 06 72 1b 20 20 |ectFound|%)..r. |
|00001720| f4 20 49 44 27 73 20 41 | 4d 20 26 20 70 72 69 6f |. ID's A|M & prio|
|00001730| 72 20 67 61 70 0d 06 7c | 4a 20 20 f2 6d 61 6b 65 |r gap..||J .make|
|00001740| 41 4d 61 6e 64 67 61 70 | 28 20 53 72 63 4c 6f 77 |AMandgap|( SrcLow|
|00001750| 41 64 64 25 2c 20 53 72 | 63 41 64 64 25 2c 20 44 |Add%, Sr|cAdd%, D|
|00001760| 65 73 74 4c 6f 77 41 64 | 64 25 2c 20 44 65 73 74 |estLowAd|d%, Dest|
|00001770| 41 64 64 25 2c 20 64 65 | 6e 73 69 74 79 25 29 0d |Add%, de|nsity%).|
|00001780| 06 86 41 20 20 44 65 73 | 74 41 64 64 25 21 30 20 |..A Des|tAdd%!0 |
|00001790| 20 3d 20 a4 67 65 74 53 | 65 63 74 49 44 28 54 72 | = .getS|ectID(Tr|
|000017a0| 6b 44 65 73 63 25 2c 73 | 65 63 74 46 6f 75 6e 64 |kDesc%,s|ectFound|
|000017b0| 25 29 20 20 20 20 3a f4 | 20 63 6f 70 79 20 49 44 |%) :.| copy ID|
|000017c0| 0d 06 90 23 20 20 e7 20 | 28 69 6e 66 6f 25 20 80 |...# . |(info% .|
|000017d0| 20 65 72 72 4e 6f 74 46 | 6f 75 6e 64 25 29 20 3d | errNotF|ound%) =|
|000017e0| 30 20 8c 0d 06 9a 37 20 | 20 20 20 44 65 73 74 41 |0 ....7 | DestA|
|000017f0| 64 64 25 3f 34 20 20 3d | 20 26 46 37 20 20 20 20 |dd%?4 =| &F7 |
|00001800| 20 20 20 20 20 20 20 20 | 3a f4 20 74 6f 20 67 65 | |:. to ge|
|00001810| 6e 65 72 61 74 65 20 43 | 52 43 0d 06 a4 36 20 20 |nerate C|RC...6 |
|00001820| 20 20 44 65 73 74 4c 6f | 77 41 64 64 25 3d 20 44 | DestLo|wAdd%= D|
|00001830| 65 73 74 41 64 64 25 2b | 35 20 20 20 20 20 20 3a |estAdd%+|5 :|
|00001840| f4 20 62 79 74 65 20 61 | 66 74 65 72 20 43 52 43 |. byte a|fter CRC|
|00001850| 0d 06 ae 07 20 20 cc 0d | 06 b8 41 20 20 20 20 f4 |.... ..|..A .|
|00001860| 20 62 75 74 20 69 66 20 | 73 65 63 74 6f 72 20 6e | but if |sector n|
|00001870| 6f 74 20 66 6f 75 6e 64 | 20 74 68 65 6e 20 63 6f |ot found| then co|
|00001880| 70 79 20 72 65 61 64 74 | 72 61 63 6b 20 43 52 43 |py readt|rack CRC|
|00001890| 20 69 6e 73 74 65 61 64 | 0d 06 c2 1e 20 20 20 20 | instead|.... |
|000018a0| 44 65 73 74 41 64 64 25 | 3f 34 20 3d 20 53 72 63 |DestAdd%|?4 = Src|
|000018b0| 41 64 64 25 3f 34 0d 06 | cc 1e 20 20 20 20 44 65 |Add%?4..|.. De|
|000018c0| 73 74 41 64 64 25 3f 35 | 20 3d 20 53 72 63 41 64 |stAdd%?5| = SrcAd|
|000018d0| 64 25 3f 35 0d 06 d6 36 | 20 20 20 20 44 65 73 74 |d%?5...6| Dest|
|000018e0| 4c 6f 77 41 64 64 25 3d | 20 44 65 73 74 41 64 64 |LowAdd%=| DestAdd|
|000018f0| 25 2b 36 20 20 20 20 20 | 20 3a f4 20 62 79 74 65 |%+6 | :. byte|
|00001900| 20 61 66 74 65 72 20 43 | 52 43 0d 06 e0 07 20 20 | after C|RC.... |
|00001910| cd 0d 06 ea 40 20 20 53 | 72 63 4c 6f 77 41 64 64 |....@ S|rcLowAdd|
|00001920| 25 20 3d 20 53 72 63 41 | 64 64 25 2b 36 20 20 20 |% = SrcA|dd%+6 |
|00001930| 20 20 20 20 3a f4 20 70 | 6f 69 6e 74 20 66 69 72 | :. p|oint fir|
|00001940| 73 74 20 62 79 74 65 20 | 61 66 74 65 72 20 43 52 |st byte |after CR|
|00001950| 43 0d 06 f4 2f 20 20 53 | 72 63 41 64 64 25 3d a4 |C.../ S|rcAdd%=.|
|00001960| 67 65 74 44 61 74 61 50 | 74 72 28 54 72 6b 44 65 |getDataP|tr(TrkDe|
|00001970| 73 63 25 2c 20 73 65 63 | 74 46 6f 75 6e 64 25 29 |sc%, sec|tFound%)|
|00001980| 0d 06 fe 14 20 20 e7 20 | 53 72 63 41 64 64 25 3c |.... . |SrcAdd%<|
|00001990| 3e 30 20 8c 0d 07 08 16 | 20 20 20 20 f4 20 69 66 |>0 .....| . if|
|000019a0| 20 64 61 74 61 20 61 72 | 65 61 0d 07 12 2f 20 20 | data ar|ea.../ |
|000019b0| 20 20 44 65 73 74 41 64 | 64 25 3d 44 65 73 74 4c | DestAd|d%=DestL|
|000019c0| 6f 77 41 64 64 25 2b 53 | 72 63 41 64 64 25 2d 53 |owAdd%+S|rcAdd%-S|
|000019d0| 72 63 4c 6f 77 41 64 64 | 25 0d 07 1c 22 20 20 20 |rcLowAdd|%..." |
|000019e0| 20 f4 20 64 61 74 61 20 | 61 72 65 61 20 41 4d 20 | . data |area AM |
|000019f0| 26 20 70 72 69 6f 72 20 | 67 61 70 0d 07 26 4b 20 |& prior |gap..&K |
|00001a00| 20 20 20 f2 6d 61 6b 65 | 41 4d 61 6e 64 67 61 70 | .make|AMandgap|
|00001a10| 28 53 72 63 4c 6f 77 41 | 64 64 25 2c 20 53 72 63 |(SrcLowA|dd%, Src|
|00001a20| 41 64 64 25 2c 20 44 65 | 73 74 4c 6f 77 41 64 64 |Add%, De|stLowAdd|
|00001a30| 25 2c 20 44 65 73 74 41 | 64 64 25 2c 20 64 65 6e |%, DestA|dd%, den|
|00001a40| 73 69 74 79 25 29 0d 07 | 30 1c 20 20 20 20 53 72 |sity%)..|0. Sr|
|00001a50| 63 4c 6f 77 41 64 64 25 | 20 3d 20 53 72 63 41 64 |cLowAdd%| = SrcAd|
|00001a60| 64 25 0d 07 3a 1d 20 20 | 20 20 44 65 73 74 4c 6f |d%..:. | DestLo|
|00001a70| 77 41 64 64 25 3d 20 44 | 65 73 74 41 64 64 25 0d |wAdd%= D|estAdd%.|
|00001a80| 07 44 39 20 20 20 20 53 | 72 63 41 64 64 25 20 2b |.D9 S|rcAdd% +|
|00001a90| 3d 20 a4 67 65 74 44 61 | 74 61 4c 65 6e 67 74 68 |= .getDa|taLength|
|00001aa0| 28 54 72 6b 44 65 73 63 | 25 2c 20 73 65 63 74 46 |(TrkDesc|%, sectF|
|00001ab0| 6f 75 6e 64 25 29 2d 31 | 0d 07 4e 47 20 20 20 20 |ound%)-1|..NG |
|00001ac0| f4 20 63 6f 70 79 20 75 | 70 20 74 6f 20 65 6e 64 |. copy u|p to end|
|00001ad0| 20 6f 66 20 64 61 74 61 | 20 61 72 65 61 20 74 72 | of data| area tr|
|00001ae0| 61 6e 73 66 65 72 2c 20 | 63 6f 6e 76 65 72 74 20 |ansfer, |convert |
|00001af0| 61 6e 79 20 26 46 35 2d | 46 37 20 63 68 72 73 0d |any &F5-|F7 chrs.|
|00001b00| 07 58 4a 20 20 20 20 f2 | 73 65 6c 63 6f 70 79 66 |.XJ .|selcopyf|
|00001b10| 77 64 20 28 53 72 63 4c | 6f 77 41 64 64 25 2c 20 |wd (SrcL|owAdd%, |
|00001b20| 53 72 63 41 64 64 25 2c | 20 44 65 73 74 4c 6f 77 |SrcAdd%,| DestLow|
|00001b30| 41 64 64 25 2c 20 64 65 | 6e 73 69 74 79 25 2c 20 |Add%, de|nsity%, |
|00001b40| 63 6f 6e 76 65 72 74 25 | 29 0d 07 62 46 20 20 20 |convert%|)..bF |
|00001b50| 20 44 65 73 74 4c 6f 77 | 41 64 64 25 20 2b 3d 53 | DestLow|Add% +=S|
|00001b60| 72 63 41 64 64 25 2d 53 | 72 63 4c 6f 77 41 64 64 |rcAdd%-S|rcLowAdd|
|00001b70| 25 2b 31 20 3a f4 20 66 | 69 72 73 74 20 62 79 74 |%+1 :. f|irst byt|
|00001b80| 65 20 61 66 74 65 72 20 | 64 61 74 61 2e 2e 2e 0d |e after |data....|
|00001b90| 07 6c 3e 20 20 20 20 53 | 72 63 4c 6f 77 41 64 64 |.l> S|rcLowAdd|
|00001ba0| 25 20 3d 20 53 72 63 41 | 64 64 25 2b 31 20 20 20 |% = SrcA|dd%+1 |
|00001bb0| 20 20 20 20 20 20 20 20 | 20 20 3a f4 20 2e 2e 74 | | :. ..t|
|00001bc0| 72 61 6e 73 66 65 72 20 | 61 72 65 61 73 0d 07 76 |ransfer |areas..v|
|00001bd0| 3d 20 20 20 20 e7 20 28 | 69 6e 66 6f 25 20 80 20 |= . (|info% . |
|00001be0| 28 65 72 72 43 52 43 25 | 20 84 20 65 72 72 4e 6f |(errCRC%| . errNo|
|00001bf0| 74 46 6f 75 6e 64 25 20 | 84 20 6e 6f 52 6f 6f 6d |tFound% |. noRoom|
|00001c00| 43 52 43 25 29 29 3d 30 | 20 8c 0d 07 80 41 20 20 |CRC%))=0| ....A |
|00001c10| 20 20 20 20 f4 20 72 6f | 6f 6d 20 66 6f 72 20 43 | . ro|om for C|
|00001c20| 52 43 20 41 4e 44 20 72 | 65 61 64 20 43 52 43 20 |RC AND r|ead CRC |
|00001c30| 77 61 73 20 6f 6b 20 41 | 4e 44 20 73 65 63 74 6f |was ok A|ND secto|
|00001c40| 72 20 77 61 73 20 66 6f | 75 6e 64 0d 07 8a 35 20 |r was fo|und...5 |
|00001c50| 20 20 20 20 20 e7 20 28 | 63 6f 6e 76 65 72 74 25 | . (|convert%|
|00001c60| 3d 30 29 20 80 20 28 28 | 69 6e 66 6f 25 20 80 20 |=0) . ((|info% . |
|00001c70| 6f 76 65 72 49 6e 64 65 | 78 25 29 3d 30 29 20 8c |overInde|x%)=0) .|
|00001c80| 0d 07 94 3a 20 20 20 20 | 20 20 20 20 f4 20 41 4e |...: | . AN|
|00001c90| 44 20 77 72 69 74 65 74 | 72 61 63 6b 20 63 61 6e |D writet|rack can|
|00001ca0| 20 63 6f 72 72 65 63 74 | 6c 79 20 77 72 69 74 65 | correct|ly write|
|00001cb0| 20 64 61 74 61 20 61 72 | 65 61 0d 07 9e 31 20 20 | data ar|ea...1 |
|00001cc0| 20 20 20 20 20 20 44 65 | 73 74 4c 6f 77 41 64 64 | De|stLowAdd|
|00001cd0| 25 3f 30 20 3d 20 26 46 | 37 20 20 20 3a f4 20 73 |%?0 = &F|7 :. s|
|00001ce0| 6f 20 66 6f 72 63 65 20 | 43 52 43 0d 07 a8 38 20 |o force |CRC...8 |
|00001cf0| 20 20 20 20 20 20 20 53 | 72 63 4c 6f 77 41 64 64 | S|rcLowAdd|
|00001d00| 25 20 20 2b 3d 32 20 20 | 20 20 20 20 20 3a f4 20 |% +=2 | :. |
|00001d10| 61 6e 64 20 61 64 6a 75 | 73 74 20 73 6f 75 72 63 |and adju|st sourc|
|00001d20| 65 20 26 0d 07 b2 3f 20 | 20 20 20 20 20 20 20 44 |e &...? | D|
|00001d30| 65 73 74 4c 6f 77 41 64 | 64 25 20 2b 3d 31 20 20 |estLowAd|d% +=1 |
|00001d40| 20 20 20 20 20 3a f4 20 | 64 65 73 74 20 61 64 64 | :. |dest add|
|00001d50| 72 65 73 73 65 73 20 61 | 63 63 6f 72 64 69 6e 67 |resses a|ccording|
|00001d60| 6c 79 0d 07 bc 1f 20 20 | 20 20 20 20 20 20 f4 20 |ly.... | . |
|00001d70| 26 20 73 65 74 20 73 65 | 63 74 6f 72 20 69 6e 66 |& set se|ctor inf|
|00001d80| 6f 0d 07 c6 41 20 20 20 | 20 20 20 20 20 f2 61 64 |o...A | .ad|
|00001d90| 64 53 65 63 74 49 6e 66 | 6f 28 54 72 6b 44 65 73 |dSectInf|o(TrkDes|
|00001da0| 63 25 2c 20 73 65 63 74 | 46 6f 75 6e 64 25 2c 20 |c%, sect|Found%, |
|00001db0| 64 61 74 61 44 75 72 69 | 6e 67 46 6f 72 6d 61 74 |dataDuri|ngFormat|
|00001dc0| 25 29 0d 07 d0 3c 20 20 | 20 20 20 20 20 20 69 6e |%)...< | in|
|00001dd0| 66 6f 25 3d 69 6e 66 6f | 25 20 84 20 64 61 74 61 |fo%=info|% . data|
|00001de0| 44 75 72 69 6e 67 46 6f | 72 6d 61 74 25 20 3a f4 |DuringFo|rmat% :.|
|00001df0| 20 66 6f 72 20 75 73 65 | 20 62 65 6c 6f 77 0d 07 | for use| below..|
|00001e00| da 0b 20 20 20 20 20 20 | cc 0d 07 e4 4a 20 20 20 |.. |....J |
|00001e10| 20 20 20 20 20 e7 20 69 | 6e 66 6f 25 80 28 64 65 | . i|nfo%.(de|
|00001e20| 6c 44 61 74 61 25 20 84 | 20 6c 6f 6e 67 44 61 74 |lData% .| longDat|
|00001e30| 61 25 20 84 20 69 6c 6c | 65 67 61 6c 54 72 6b 25 |a% . ill|egalTrk%|
|00001e40| 20 84 20 69 6c 6c 65 67 | 61 6c 49 44 62 79 74 25 | . illeg|alIDbyt%|
|00001e50| 29 20 8c 0d 07 ee 48 20 | 20 20 20 20 20 20 20 20 |) ....H | |
|00001e60| 20 f4 20 69 66 20 63 61 | 6e 27 74 20 77 72 69 74 | . if ca|n't writ|
|00001e70| 65 20 73 65 63 74 6f 72 | 2c 20 62 75 74 20 6f 74 |e sector|, but ot|
|00001e80| 68 65 72 77 69 73 65 20 | 4f 4b 2c 20 61 6e 64 20 |herwise |OK, and |
|00001e90| 63 61 6e 27 74 20 77 72 | 69 74 65 0d 07 f8 32 20 |can't wr|ite...2 |
|00001ea0| 20 20 20 20 20 20 20 20 | 20 f4 20 69 74 20 64 75 | | . it du|
|00001eb0| 72 69 6e 67 20 66 6f 72 | 6d 61 74 2c 20 74 68 65 |ring for|mat, the|
|00001ec0| 6e 20 70 72 69 6e 74 20 | 65 72 72 6f 72 0d 08 02 |n print |error...|
|00001ed0| 2c 20 20 20 20 20 20 20 | 20 20 20 f2 70 72 69 6e |, | .prin|
|00001ee0| 74 49 44 28 54 72 6b 44 | 65 73 63 25 2c 20 73 65 |tID(TrkD|esc%, se|
|00001ef0| 63 74 46 6f 75 6e 64 25 | 29 0d 08 0c 31 20 20 20 |ctFound%|)...1 |
|00001f00| 20 20 20 20 20 20 20 f1 | 20 22 43 41 4e 27 54 20 | .| "CAN'T |
|00001f10| 6d 61 6b 65 20 61 6e 20 | 65 78 61 63 74 20 63 6f |make an |exact co|
|00001f20| 70 79 21 20 53 6f 72 72 | 79 22 0d 08 16 38 20 20 |py! Sorr|y"...8 |
|00001f30| 20 20 20 20 20 20 20 20 | 44 65 73 74 4c 6f 77 41 | |DestLowA|
|00001f40| 64 64 25 3f 30 20 3d 20 | 26 46 37 20 20 3a f4 20 |dd%?0 = |&F7 :. |
|00001f50| 62 75 74 20 73 65 74 20 | 43 52 43 20 61 6e 79 77 |but set |CRC anyw|
|00001f60| 61 79 0d 08 20 39 20 20 | 20 20 20 20 20 20 20 20 |ay.. 9 | |
|00001f70| 53 72 63 4c 6f 77 41 64 | 64 25 20 20 2b 3d 32 20 |SrcLowAd|d% +=2 |
|00001f80| 20 20 20 20 20 3a f4 20 | 61 6e 64 20 61 64 6a 75 | :. |and adju|
|00001f90| 73 74 20 70 6f 69 6e 74 | 65 72 73 0d 08 2a 1d 20 |st point|ers..*. |
|00001fa0| 20 20 20 20 20 20 20 20 | 20 44 65 73 74 4c 6f 77 | | DestLow|
|00001fb0| 41 64 64 25 20 2b 3d 31 | 0d 08 34 0d 20 20 20 20 |Add% +=1|..4. |
|00001fc0| 20 20 20 20 cd 0d 08 3e | 0b 20 20 20 20 20 20 cd | ...>|. .|
|00001fd0| 0d 08 48 09 20 20 20 20 | cd 0d 08 52 26 20 20 20 |..H. |...R& |
|00001fe0| 20 e7 20 28 69 6e 66 6f | 25 20 80 20 28 ac 20 6f | . (info|% . (. o|
|00001ff0| 76 65 72 49 6e 64 65 78 | 25 29 29 3d 30 20 8c 0d |verIndex|%))=0 ..|
|00002000| 08 5c 21 20 20 20 20 20 | 20 f4 20 6d 75 73 74 20 |.\! | . must |
|00002010| 77 72 69 74 65 20 74 68 | 65 20 73 65 63 74 6f 72 |write th|e sector|
|00002020| 0d 08 66 17 20 20 20 20 | 20 20 6d 75 73 74 57 72 |..f. | mustWr|
|00002030| 53 65 63 74 25 3d b9 0d | 08 70 09 20 20 20 20 cd |Sect%=..|.p. .|
|00002040| 0d 08 7a 07 20 20 cd 0d | 08 84 05 ed 0d 08 8e 25 |..z. ..|.......%|
|00002050| 53 72 63 41 64 64 25 3d | 54 72 6b 44 65 73 63 25 |SrcAdd%=|TrkDesc%|
|00002060| 21 62 75 66 45 6e 64 56 | 61 6c 69 64 44 61 74 61 |!bufEndV|alidData|
|00002070| 25 0d 08 98 2a f4 20 63 | 6f 70 79 20 74 6f 20 65 |%...*. c|opy to e|
|00002080| 6e 64 20 6f 66 20 76 61 | 6c 69 64 20 72 65 61 64 |nd of va|lid read|
|00002090| 20 74 72 61 63 6b 20 64 | 61 74 61 0d 08 a2 46 f2 | track d|ata...F.|
|000020a0| 73 65 6c 63 6f 70 79 66 | 77 64 20 28 53 72 63 4c |selcopyf|wd (SrcL|
|000020b0| 6f 77 41 64 64 25 2c 20 | 53 72 63 41 64 64 25 2c |owAdd%, |SrcAdd%,|
|000020c0| 20 44 65 73 74 4c 6f 77 | 41 64 64 25 2c 20 64 65 | DestLow|Add%, de|
|000020d0| 6e 73 69 74 79 25 2c 20 | 63 6f 6e 76 65 72 74 25 |nsity%, |convert%|
|000020e0| 29 0d 08 ac 40 f2 66 69 | 6c 6c 45 6e 64 4f 66 54 |)...@.fi|llEndOfT|
|000020f0| 72 6b 28 20 53 72 63 41 | 64 64 25 2b 31 2d 52 65 |rk( SrcA|dd%+1-Re|
|00002100| 61 64 42 75 66 25 20 2b | 20 57 72 69 74 65 54 72 |adBuf% +| WriteTr|
|00002110| 6b 42 75 66 25 20 2c 20 | 64 65 6e 73 69 74 79 25 |kBuf% , |density%|
|00002120| 29 0d 08 b6 05 e1 0d 08 | c0 04 0d 08 ca 3e 20 20 |).......|.....> |
|00002130| f4 20 66 69 6c 6c 73 20 | 74 6f 20 65 6e 64 20 6f |. fills |to end o|
|00002140| 66 20 77 72 69 74 65 20 | 62 75 66 66 65 72 20 77 |f write |buffer w|
|00002150| 69 74 68 20 72 65 6c 65 | 76 61 6e 74 20 66 69 6c |ith rele|vant fil|
|00002160| 6c 65 72 20 62 79 74 65 | 0d 08 d4 24 dd f2 66 69 |ler byte|...$..fi|
|00002170| 6c 6c 45 6e 64 4f 66 54 | 72 6b 28 20 61 64 64 25 |llEndOfT|rk( add%|
|00002180| 20 2c 20 64 65 6e 73 69 | 74 79 25 29 0d 08 de 0c | , densi|ty%)....|
|00002190| ea 20 76 61 6c 75 65 25 | 0d 08 e8 1a e7 20 64 65 |. value%|..... de|
|000021a0| 6e 73 69 74 79 25 3d 44 | 44 65 6e 73 69 74 79 25 |nsity%=D|Density%|
|000021b0| 20 8c 0d 08 f2 10 20 20 | 76 61 6c 75 65 25 3d 26 | ..... |value%=&|
|000021c0| 34 45 0d 08 fc 05 cc 0d | 09 06 10 20 20 76 61 6c |4E......|... val|
|000021d0| 75 65 25 3d 26 46 46 0d | 09 10 05 cd 0d 09 1a 3b |ue%=&FF.|.......;|
|000021e0| f2 66 69 6c 6c 28 76 61 | 6c 75 65 25 2c 20 61 64 |.fill(va|lue%, ad|
|000021f0| 64 25 2c 20 57 72 69 74 | 65 54 72 6b 42 75 66 25 |d%, Writ|eTrkBuf%|
|00002200| 20 2b 20 54 72 6b 44 61 | 74 61 53 69 7a 65 25 20 | + TrkDa|taSize% |
|00002210| 2d 20 61 64 64 25 29 0d | 09 24 05 e1 0d 09 2e 04 |- add%).|.$......|
|00002220| 0d 09 38 4b 20 20 20 f4 | 20 63 6f 70 69 65 73 20 |..8K .| copies |
|00002230| 61 72 65 61 20 6f 66 20 | 73 74 6f 72 65 20 62 75 |area of |store bu|
|00002240| 74 20 63 6f 6e 76 65 72 | 74 73 20 61 6e 79 20 69 |t conver|ts any i|
|00002250| 6c 6c 65 67 61 6c 20 63 | 68 72 73 28 66 6f 72 20 |llegal c|hrs(for |
|00002260| 77 72 69 74 65 54 72 61 | 63 6b 29 0d 09 42 39 20 |writeTra|ck)..B9 |
|00002270| 20 20 f4 20 53 65 74 73 | 20 63 6f 6e 76 65 72 74 | . Sets| convert|
|00002280| 25 3d 54 52 55 45 20 69 | 66 20 69 74 20 68 61 73 |%=TRUE i|f it has|
|00002290| 20 74 6f 20 63 6f 6e 76 | 65 72 74 20 61 6e 79 20 | to conv|ert any |
|000022a0| 63 68 61 72 0d 09 4c 44 | dd f2 73 65 6c 63 6f 70 |char..LD|..selcop|
|000022b0| 79 66 77 64 28 53 72 63 | 4c 6f 77 41 64 64 25 2c |yfwd(Src|LowAdd%,|
|000022c0| 53 72 63 41 64 64 25 2c | 44 65 73 74 4c 6f 77 41 |SrcAdd%,|DestLowA|
|000022d0| 64 64 25 2c 64 65 6e 73 | 69 74 79 25 2c f8 20 63 |dd%,dens|ity%,. c|
|000022e0| 6f 6e 76 65 72 74 25 29 | 0d 09 56 0f ea 20 6c 6f |onvert%)|..V.. lo|
|000022f0| 77 25 2c 20 68 69 25 0d | 09 60 24 f2 67 65 74 49 |w%, hi%.|.`$.getI|
|00002300| 6c 6c 65 67 61 6c 28 64 | 65 6e 73 69 74 79 25 2c |llegal(d|ensity%,|
|00002310| 20 6c 6f 77 25 2c 20 68 | 69 25 29 0d 09 6a 47 d6 | low%, h|i%)..jG.|
|00002320| 20 73 65 6c 63 6f 70 79 | 66 77 64 2c 20 53 72 63 | selcopy|fwd, Src|
|00002330| 4c 6f 77 41 64 64 25 2c | 20 53 72 63 41 64 64 25 |LowAdd%,| SrcAdd%|
|00002340| 2c 20 44 65 73 74 4c 6f | 77 41 64 64 25 2c 20 6c |, DestLo|wAdd%, l|
|00002350| 6f 77 25 2c 20 68 69 25 | 2c 20 63 6f 6e 76 65 72 |ow%, hi%|, conver|
|00002360| 74 25 0d 09 74 05 e1 0d | 09 7e 04 0d 09 88 2f 20 |t%..t...|.~..../ |
|00002370| 20 20 f4 20 73 65 74 75 | 70 20 69 6c 6c 65 67 61 | . setu|p illega|
|00002380| 6c 20 63 68 72 20 72 61 | 6e 67 65 20 66 6f 72 20 |l chr ra|nge for |
|00002390| 77 72 69 74 65 74 72 61 | 63 6b 0d 09 92 29 dd f2 |writetra|ck...)..|
|000023a0| 67 65 74 49 6c 6c 65 67 | 61 6c 28 64 65 6e 73 69 |getIlleg|al(densi|
|000023b0| 74 79 25 2c 20 f8 20 6c | 6f 77 25 2c 20 f8 20 68 |ty%, . l|ow%, . h|
|000023c0| 69 25 29 0d 09 9c 1c e7 | 20 64 65 6e 73 69 74 79 |i%).....| density|
|000023d0| 25 20 3d 20 44 44 65 6e | 73 69 74 79 25 20 8c 0d |% = DDen|sity% ..|
|000023e0| 09 a6 16 20 20 6c 6f 77 | 25 3d 26 46 35 3a 68 69 |... low|%=&F5:hi|
|000023f0| 25 3d 26 46 37 0d 09 b0 | 05 cc 0d 09 ba 16 20 20 |%=&F7...|...... |
|00002400| 6c 6f 77 25 3d 26 46 35 | 3a 68 69 25 3d 26 46 45 |low%=&F5|:hi%=&FE|
|00002410| 0d 09 c4 05 cd 0d 09 ce | 05 e1 0d 09 d8 04 0d 09 |........|........|
|00002420| e2 48 dd f2 6d 61 6b 65 | 41 4d 61 6e 64 67 61 70 |.H..make|AMandgap|
|00002430| 28 53 72 63 4c 6f 77 41 | 64 64 25 2c 20 53 72 63 |(SrcLowA|dd%, Src|
|00002440| 41 64 64 25 2c 20 44 65 | 73 74 4c 6f 77 41 64 64 |Add%, De|stLowAdd|
|00002450| 25 2c 20 44 65 73 74 41 | 64 64 25 2c 20 64 65 6e |%, DestA|dd%, den|
|00002460| 73 69 74 79 25 29 0d 09 | ec 1a e7 20 64 65 6e 73 |sity%)..|... dens|
|00002470| 69 74 79 25 3d 44 44 65 | 6e 73 69 74 79 25 20 8c |ity%=DDe|nsity% .|
|00002480| 0d 09 f6 41 20 20 f2 44 | 44 6d 61 6b 65 41 4d 61 |...A .D|DmakeAMa|
|00002490| 6e 64 67 61 70 28 53 72 | 63 4c 6f 77 41 64 64 25 |ndgap(Sr|cLowAdd%|
|000024a0| 2c 20 53 72 63 41 64 64 | 25 2c 20 44 65 73 74 4c |, SrcAdd|%, DestL|
|000024b0| 6f 77 41 64 64 25 2c 20 | 44 65 73 74 41 64 64 25 |owAdd%, |DestAdd%|
|000024c0| 29 0d 0a 00 05 cc 0d 0a | 0a 41 20 20 f2 53 44 6d |).......|.A .SDm|
|000024d0| 61 6b 65 41 4d 61 6e 64 | 67 61 70 28 53 72 63 4c |akeAMand|gap(SrcL|
|000024e0| 6f 77 41 64 64 25 2c 20 | 53 72 63 41 64 64 25 2c |owAdd%, |SrcAdd%,|
|000024f0| 20 44 65 73 74 4c 6f 77 | 41 64 64 25 2c 20 44 65 | DestLow|Add%, De|
|00002500| 73 74 41 64 64 25 29 0d | 0a 14 05 cd 0d 0a 1e 05 |stAdd%).|........|
|00002510| e1 0d 0a 28 04 0d 0a 32 | 10 20 20 20 f4 20 44 44 |...(...2|. . DD|
|00002520| 20 6f 6e 6c 79 0d 0a 3c | 40 dd f2 44 44 6d 61 6b | only..<|@..DDmak|
|00002530| 65 41 4d 61 6e 64 67 61 | 70 28 53 72 63 4c 6f 77 |eAMandga|p(SrcLow|
|00002540| 41 64 64 25 2c 20 53 72 | 63 41 64 64 25 2c 20 44 |Add%, Sr|cAdd%, D|
|00002550| 65 73 74 4c 6f 77 41 64 | 64 25 2c 20 44 65 73 74 |estLowAd|d%, Dest|
|00002560| 41 64 64 25 29 0d 0a 46 | 1a ea 20 56 25 2c 20 49 |Add%)..F|.. V%, I|
|00002570| 25 2c 20 4a 25 2c 20 63 | 6f 6e 76 65 72 74 25 0d |%, J%, c|onvert%.|
|00002580| 0a 50 2b 44 65 73 74 41 | 64 64 25 3f 2d 31 20 3d |.P+DestA|dd%?-1 =|
|00002590| 20 53 72 63 41 64 64 25 | 3f 2d 31 20 20 20 3a f4 | SrcAdd%|?-1 :.|
|000025a0| 20 63 6f 70 79 20 4d 61 | 72 6b 0d 0a 5a 28 44 65 | copy Ma|rk..Z(De|
|000025b0| 73 74 41 64 64 25 3f 2d | 32 20 3d 20 26 46 35 20 |stAdd%?-|2 = &F5 |
|000025c0| 20 20 20 20 20 20 20 20 | 20 3a f4 20 73 65 74 20 | | :. set |
|000025d0| 41 4d 0d 0a 64 15 44 65 | 73 74 41 64 64 25 3f 2d |AM..d.De|stAdd%?-|
|000025e0| 33 20 3d 20 26 46 35 0d | 0a 6e 15 44 65 73 74 41 |3 = &F5.|.n.DestA|
|000025f0| 64 64 25 3f 2d 34 20 3d | 20 26 46 35 0d 0a 78 1d |dd%?-4 =| &F5..x.|
|00002600| 4a 25 3d 44 65 73 74 41 | 64 64 25 20 2d 20 44 65 |J%=DestA|dd% - De|
|00002610| 73 74 4c 6f 77 41 64 64 | 25 0d 0a 82 08 49 25 3d |stLowAdd|%....I%=|
|00002620| 35 0d 0a 8c 48 e7 20 49 | 25 3c 3d 4a 25 20 8c 20 |5...H. I|%<=J% . |
|00002630| 44 65 73 74 41 64 64 25 | 3f 2d 49 25 20 3d 30 3a |DestAdd%|?-I% =0:|
|00002640| 49 25 20 2b 3d 31 20 3a | f4 20 61 6e 64 20 73 65 |I% +=1 :|. and se|
|00002650| 74 20 70 72 65 63 65 65 | 64 69 6e 67 20 32 20 62 |t precee|ding 2 b|
|00002660| 79 74 65 73 20 74 6f 20 | 30 0d 0a 96 40 e7 20 49 |ytes to |0...@. I|
|00002670| 25 3c 3d 4a 25 20 8c 20 | 44 65 73 74 41 64 64 25 |%<=J% . |DestAdd%|
|00002680| 3f 2d 49 25 20 3d 30 3a | 49 25 20 2b 3d 31 20 3a |?-I% =0:|I% +=1 :|
|00002690| f4 20 28 44 65 73 74 4c | 6f 77 41 64 64 20 70 65 |. (DestL|owAdd pe|
|000026a0| 72 6d 69 74 74 69 6e 67 | 29 0d 0a a0 12 56 25 3d |rmitting|)....V%=|
|000026b0| 53 72 63 41 64 64 25 3f | 2d 49 25 0d 0a aa 26 c8 |SrcAdd%?|-I%...&.|
|000026c0| 95 20 28 56 25 3d 28 53 | 72 63 41 64 64 25 3f 2d |. (V%=(S|rcAdd%?-|
|000026d0| 49 25 29 29 20 80 20 28 | 49 25 20 3c 3d 20 4a 25 |I%)) . (|I% <= J%|
|000026e0| 29 0d 0a b4 40 20 20 44 | 65 73 74 41 64 64 25 3f |)...@ D|estAdd%?|
|000026f0| 2d 49 25 20 3d 20 30 20 | 20 20 20 3a f4 20 61 6e |-I% = 0 | :. an|
|00002700| 64 20 61 6c 6c 20 70 72 | 65 63 65 65 64 69 6e 67 |d all pr|eceeding|
|00002710| 20 62 79 74 65 73 20 74 | 6f 20 30 20 77 68 69 6c | bytes t|o 0 whil|
|00002720| 65 0d 0a be 3c 20 20 49 | 25 20 2b 3d 31 20 20 20 |e...< I|% +=1 |
|00002730| 20 20 20 20 20 20 20 20 | 20 20 20 3a f4 20 73 6f | | :. so|
|00002740| 75 72 63 65 20 62 79 74 | 65 73 20 64 6f 6e 27 74 |urce byt|es don't|
|00002750| 20 63 68 61 6e 67 65 20 | 76 61 6c 75 65 0d 0a c8 | change |value...|
|00002760| 2d ce 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |-. | |
|00002770| 3a f4 20 28 44 65 73 74 | 4c 6f 77 41 64 64 20 70 |:. (Dest|LowAdd p|
|00002780| 65 72 6d 69 74 74 69 6e | 67 29 0d 0a d2 0e e7 20 |ermittin|g)..... |
|00002790| 49 25 3c 3d 4a 25 20 8c | 0d 0a dc 32 20 20 f4 20 |I%<=J% .|...2 . |
|000027a0| 74 68 65 6e 20 63 6f 70 | 79 20 70 72 65 63 65 64 |then cop|y preced|
|000027b0| 69 6e 67 20 67 61 70 20 | 62 61 63 6b 20 74 6f 20 |ing gap |back to |
|000027c0| 53 72 63 4c 6f 77 61 64 | 64 25 0d 0a e6 4b 20 20 |SrcLowad|d%...K |
|000027d0| f2 73 65 6c 63 6f 70 79 | 66 77 64 20 28 53 72 63 |.selcopy|fwd (Src|
|000027e0| 4c 6f 77 41 64 64 25 2c | 20 53 72 63 41 64 64 25 |LowAdd%,| SrcAdd%|
|000027f0| 2d 49 25 2c 20 44 65 73 | 74 4c 6f 77 41 64 64 25 |-I%, Des|tLowAdd%|
|00002800| 2c 20 44 44 65 6e 73 69 | 74 79 25 2c 63 6f 6e 76 |, DDensi|ty%,conv|
|00002810| 65 72 74 25 29 0d 0a f0 | 05 cd 0d 0a fa 05 e1 0d |ert%)...|........|
|00002820| 0b 04 04 0d 0b 0e 10 20 | 20 20 f4 20 53 44 20 6f |....... | . SD o|
|00002830| 6e 6c 79 0d 0b 18 40 dd | f2 53 44 6d 61 6b 65 41 |nly...@.|.SDmakeA|
|00002840| 4d 61 6e 64 67 61 70 28 | 53 72 63 4c 6f 77 41 64 |Mandgap(|SrcLowAd|
|00002850| 64 25 2c 20 53 72 63 41 | 64 64 25 2c 20 44 65 73 |d%, SrcA|dd%, Des|
|00002860| 74 4c 6f 77 41 64 64 25 | 2c 20 44 65 73 74 41 64 |tLowAdd%|, DestAd|
|00002870| 64 25 29 0d 0b 22 16 ea | 20 49 25 2c 20 4a 25 2c |d%).."..| I%, J%,|
|00002880| 20 63 6f 6e 76 65 72 74 | 25 0d 0b 2c 33 44 65 73 | convert|%..,3Des|
|00002890| 74 41 64 64 25 3f 2d 31 | 20 3d 20 26 46 30 20 84 |tAdd%?-1| = &F0 .|
|000028a0| 20 28 53 72 63 41 64 64 | 25 3f 2d 31 29 20 20 20 | (SrcAdd|%?-1) |
|000028b0| 3a f4 20 63 6f 70 79 20 | 4d 61 72 6b 0d 0b 36 08 |:. copy |Mark..6.|
|000028c0| 49 25 3d 32 0d 0b 40 1d | 4a 25 3d 44 65 73 74 41 |I%=2..@.|J%=DestA|
|000028d0| 64 64 25 20 2d 20 44 65 | 73 74 4c 6f 77 41 64 64 |dd% - De|stLowAdd|
|000028e0| 25 0d 0b 4a 1d c8 95 20 | 28 49 25 20 3c 3d 20 4a |%..J... |(I% <= J|
|000028f0| 25 29 20 80 20 28 49 25 | 20 3c 3d 20 37 29 0d 0b |%) . (I%| <= 7)..|
|00002900| 54 3d 20 20 44 65 73 74 | 41 64 64 25 3f 2d 49 25 |T= Dest|Add%?-I%|
|00002910| 20 3d 20 30 20 20 20 20 | 20 20 3a f4 20 61 6e 64 | = 0 | :. and|
|00002920| 20 70 72 65 63 65 65 64 | 69 6e 67 20 62 79 20 36 | preceed|ing by 6|
|00002930| 20 62 79 74 65 73 20 6f | 66 20 30 0d 0b 5e 36 20 | bytes o|f 0..^6 |
|00002940| 20 49 25 20 2b 3d 31 20 | 20 20 20 20 20 20 20 20 | I% +=1 | |
|00002950| 20 20 20 20 20 20 20 3a | f4 20 28 44 65 73 74 4c | :|. (DestL|
|00002960| 6f 77 41 64 64 20 70 65 | 72 6d 69 74 74 69 6e 67 |owAdd pe|rmitting|
|00002970| 29 0d 0b 68 05 ce 0d 0b | 72 0e e7 20 49 25 3c 3d |)..h....|r.. I%<=|
|00002980| 4a 25 20 8c 0d 0b 7c 32 | 20 20 f4 20 74 68 65 6e |J% ...|2| . then|
|00002990| 20 63 6f 70 79 20 70 72 | 65 63 65 64 69 6e 67 20 | copy pr|eceding |
|000029a0| 67 61 70 20 62 61 63 6b | 20 74 6f 20 53 72 63 4c |gap back| to SrcL|
|000029b0| 6f 77 61 64 64 25 0d 0b | 86 4b 20 20 f2 73 65 6c |owadd%..|.K .sel|
|000029c0| 63 6f 70 79 66 77 64 20 | 28 53 72 63 4c 6f 77 41 |copyfwd |(SrcLowA|
|000029d0| 64 64 25 2c 20 53 72 63 | 41 64 64 25 2d 49 25 2c |dd%, Src|Add%-I%,|
|000029e0| 20 44 65 73 74 4c 6f 77 | 41 64 64 25 2c 20 53 44 | DestLow|Add%, SD|
|000029f0| 65 6e 73 69 74 79 25 2c | 63 6f 6e 76 65 72 74 25 |ensity%,|convert%|
|00002a00| 29 0d 0b 90 05 cd 0d 0b | 9a 05 e1 0d 0b a4 04 0d |).......|........|
|00002a10| 0b ae 45 20 20 20 f4 20 | 74 72 69 65 73 20 62 6f |..E . |tries bo|
|00002a20| 74 68 20 44 44 20 26 20 | 53 44 20 62 65 66 6f 72 |th DD & |SD befor|
|00002a30| 65 20 67 69 76 69 6e 67 | 20 75 70 2c 20 26 20 72 |e giving| up, & r|
|00002a40| 65 74 75 72 6e 73 20 64 | 65 6e 73 69 74 79 20 66 |eturns d|ensity f|
|00002a50| 6f 75 6e 64 0d 0b b8 3c | dd f2 72 65 61 64 53 69 |ound...<|..readSi|
|00002a60| 6e 67 6c 65 54 72 6b 28 | 64 72 76 2c 20 74 72 6b |ngleTrk(|drv, trk|
|00002a70| 2c 20 68 65 61 64 2c 20 | 54 72 6b 44 65 73 63 25 |, head, |TrkDesc%|
|00002a80| 2c 20 f8 20 73 72 74 44 | 65 6e 73 69 74 79 25 29 |, . srtD|ensity%)|
|00002a90| 0d 0b c2 29 ea 20 65 6e | 64 61 64 64 25 2c 20 44 |...). en|dadd%, D|
|00002aa0| 61 74 61 42 75 66 25 2c | 20 64 65 6e 73 69 74 79 |ataBuf%,| density|
|00002ab0| 25 2c 20 63 6f 75 6e 74 | 25 0d 0b cc 1b 54 72 6b |%, count|%....Trk|
|00002ac0| 44 65 73 63 25 3f 62 75 | 66 54 72 6b 25 20 20 3d |Desc%?bu|fTrk% =|
|00002ad0| 20 74 72 6b 0d 0b d6 1c | 54 72 6b 44 65 73 63 25 | trk....|TrkDesc%|
|00002ae0| 3f 62 75 66 48 65 61 64 | 25 20 3d 20 68 65 61 64 |?bufHead|% = head|
|00002af0| 0d 0b e0 18 64 65 6e 73 | 69 74 79 25 3d 73 72 74 |....dens|ity%=srt|
|00002b00| 44 65 6e 73 69 74 79 25 | 0d 0b ea 05 f5 0d 0b f4 |Density%|........|
|00002b10| 29 20 20 54 72 6b 44 65 | 73 63 25 3f 62 75 66 54 |) TrkDe|sc%?bufT|
|00002b20| 72 6b 44 65 6e 73 69 74 | 79 25 20 20 3d 20 64 65 |rkDensit|y% = de|
|00002b30| 6e 73 69 74 79 25 0d 0b | fe 28 20 20 44 61 74 61 |nsity%..|.( Data|
|00002b40| 42 75 66 25 20 3d 20 54 | 72 6b 44 65 73 63 25 20 |Buf% = T|rkDesc% |
|00002b50| 2b 20 54 72 6b 44 65 73 | 63 53 69 7a 65 25 0d 0c |+ TrkDes|cSize%..|
|00002b60| 08 4a 20 20 65 6e 64 61 | 64 64 25 20 3d 20 44 61 |.J enda|dd% = Da|
|00002b70| 74 61 42 75 66 25 20 2b | 20 4d 61 78 53 65 63 74 |taBuf% +| MaxSect|
|00002b80| 25 20 2d 31 20 2b 20 28 | 4d 61 78 54 72 6b 55 6e |% -1 + (|MaxTrkUn|
|00002b90| 66 6f 72 6d 61 74 25 20 | 3e 3e 20 28 32 2d 64 65 |format% |>> (2-de|
|00002ba0| 6e 73 69 74 79 25 29 29 | 0d 0c 12 07 20 20 f5 0d |nsity%))|.... ..|
|00002bb0| 0c 1c 46 20 20 20 20 f4 | 20 74 6f 20 74 65 73 74 |..F .| to test|
|00002bc0| 20 52 65 61 64 54 72 61 | 63 6b 20 6f 76 65 72 72 | ReadTra|ck overr|
|00002bd0| 75 6e 2c 20 6f 6e 6c 79 | 20 72 65 70 65 61 74 20 |un, only| repeat |
|00002be0| 69 66 20 52 65 61 64 54 | 72 61 63 6b 20 6f 76 65 |if ReadT|rack ove|
|00002bf0| 72 66 6c 6f 77 0d 0c 26 | 2e 20 20 20 20 f2 66 69 |rflow..&|. .fi|
|00002c00| 6c 6c 28 26 35 35 2c 20 | 44 61 74 61 42 75 66 25 |ll(&55, |DataBuf%|
|00002c10| 2c 20 65 6e 64 61 64 64 | 25 2d 44 61 74 61 42 75 |, endadd|%-DataBu|
|00002c20| 66 25 29 0d 0c 30 36 20 | 20 20 20 f2 72 65 61 64 |f%)..06 | .read|
|00002c30| 74 72 61 63 6b 28 64 72 | 76 2c 20 74 72 6b 2c 20 |track(dr|v, trk, |
|00002c40| 68 65 61 64 2c 20 64 65 | 6e 73 69 74 79 25 2c 20 |head, de|nsity%, |
|00002c50| 44 61 74 61 42 75 66 25 | 29 0d 0c 3a 1f 20 20 20 |DataBuf%|)..:. |
|00002c60| 20 65 6e 64 56 61 6c 69 | 64 44 61 74 61 25 3d 65 | endVali|dData%=e|
|00002c70| 6e 64 61 64 64 25 2d 31 | 0d 0c 44 27 20 20 20 20 |ndadd%-1|..D' |
|00002c80| d6 20 66 69 6e 64 63 68 | 61 6e 67 65 62 61 63 6b |. findch|angeback|
|00002c90| 2c 20 65 6e 64 56 61 6c | 69 64 44 61 74 61 25 0d |, endVal|idData%.|
|00002ca0| 0c 4e 27 20 20 fd 20 28 | 65 6e 64 61 64 64 25 20 |.N' . (|endadd% |
|00002cb0| 2d 20 65 6e 64 56 61 6c | 69 64 44 61 74 61 25 29 |- endVal|idData%)|
|00002cc0| 20 3e 20 35 30 30 0d 0c | 58 2f 20 20 54 72 6b 44 | > 500..|X/ TrkD|
|00002cd0| 65 73 63 25 21 62 75 66 | 45 6e 64 56 61 6c 69 64 |esc%!buf|EndValid|
|00002ce0| 44 61 74 61 25 20 3d 20 | 65 6e 64 56 61 6c 69 64 |Data% = |endValid|
|00002cf0| 44 61 74 61 25 0d 0c 62 | 2f 20 20 f2 61 6e 61 6c |Data%..b|/ .anal|
|00002d00| 79 73 65 54 72 6b 28 54 | 72 6b 44 65 73 63 25 2c |yseTrk(T|rkDesc%,|
|00002d10| 20 44 61 74 61 42 75 66 | 25 2c 20 64 65 6e 73 69 | DataBuf|%, densi|
|00002d20| 74 79 25 29 0d 0c 6c 2e | 20 20 f2 72 65 61 64 54 |ty%)..l.| .readT|
|00002d30| 72 6b 73 53 65 63 74 73 | 20 28 64 72 76 2c 20 54 |rksSects| (drv, T|
|00002d40| 72 6b 44 65 73 63 25 2c | 20 64 65 6e 73 69 74 79 |rkDesc%,| density|
|00002d50| 25 29 0d 0c 76 22 20 20 | 63 6f 75 6e 74 25 3d 54 |%)..v" |count%=T|
|00002d60| 72 6b 44 65 73 63 25 3f | 62 75 66 4e 75 6d 62 53 |rkDesc%?|bufNumbS|
|00002d70| 65 63 74 25 0d 0c 80 12 | 20 20 e7 20 63 6f 75 6e |ect%....| . coun|
|00002d80| 74 25 3d 30 20 8c 0d 0c | 8a 3e 20 20 20 20 64 65 |t%=0 ...|.> de|
|00002d90| 6e 73 69 74 79 25 3d 20 | 64 65 6e 73 69 74 79 25 |nsity%= |density%|
|00002da0| 20 82 20 33 20 20 20 3a | f4 20 69 66 20 6e 6f 20 | . 3 :|. if no |
|00002db0| 73 65 63 74 6f 72 73 20 | 74 6f 67 67 6c 65 20 53 |sectors |toggle S|
|00002dc0| 44 2f 44 44 0d 0c 94 07 | 20 20 cc 0d 0c 9e 21 20 |D/DD....| ....! |
|00002dd0| 20 20 20 e7 20 73 72 74 | 44 65 6e 73 69 74 79 25 | . srt|Density%|
|00002de0| 3c 3e 64 65 6e 73 69 74 | 79 25 20 8c 0d 0c a8 1c |<>densit|y% .....|
|00002df0| 20 20 20 20 20 20 f1 22 | 20 43 6f 6e 74 69 6e 75 | ."| Continu|
|00002e00| 65 73 20 61 73 20 22 3b | 0d 0c b2 30 20 20 20 20 |es as ";|...0 |
|00002e10| 20 20 e7 20 64 65 6e 73 | 69 74 79 25 3d 32 20 8c | . dens|ity%=2 .|
|00002e20| 20 f1 22 44 6f 75 62 6c | 65 22 3b 20 8b 20 f1 22 | ."Doubl|e"; . ."|
|00002e30| 53 69 6e 67 6c 65 22 3b | 0d 0c bc 15 20 20 20 20 |Single";|.... |
|00002e40| 20 20 f1 22 20 44 65 6e | 73 69 74 79 22 0d 0c c6 | ." Den|sity"...|
|00002e50| 12 20 20 20 20 20 20 62 | 6c 61 6e 6b 25 3d a3 0d |. b|lank%=..|
|00002e60| 0c d0 45 20 20 20 20 20 | 20 73 72 74 44 65 6e 73 |..E | srtDens|
|00002e70| 69 74 79 25 3d 64 65 6e | 73 69 74 79 25 20 20 20 |ity%=den|sity% |
|00002e80| 20 20 20 20 3a f4 20 69 | 66 20 73 65 63 74 6f 72 | :. i|f sector|
|00002e90| 73 2c 20 75 70 64 61 74 | 65 20 73 72 74 44 65 6e |s, updat|e srtDen|
|00002ea0| 73 69 74 79 0d 0c da 09 | 20 20 20 20 cd 0d 0c e4 |sity....| ....|
|00002eb0| 07 20 20 cd 0d 0c ee 1a | fd 20 64 65 6e 73 69 74 |. .....|. densit|
|00002ec0| 79 25 3d 73 72 74 44 65 | 6e 73 69 74 79 25 0d 0c |y%=srtDe|nsity%..|
|00002ed0| f8 0e e7 20 62 6c 61 6e | 6b 25 20 8c 0d 0d 02 13 |... blan|k% .....|
|00002ee0| 20 20 e7 20 63 6f 75 6e | 74 25 3c 3e 30 20 8c 0d | . coun|t%<>0 ..|
|00002ef0| 0d 0c 10 20 20 20 20 62 | 6c 61 6e 6b 25 3d a3 0d |... b|lank%=..|
|00002f00| 0d 16 1b 20 20 20 20 f1 | 22 20 4e 6f 20 6c 6f 6e |... .|" No lon|
|00002f10| 67 65 72 20 42 6c 61 6e | 6b 22 0d 0d 20 07 20 20 |ger Blan|k".. . |
|00002f20| cd 0d 0d 2a 05 cc 0d 0d | 34 12 20 20 e7 20 63 6f |...*....|4. . co|
|00002f30| 75 6e 74 25 3d 30 20 8c | 0d 0d 3e 10 20 20 20 20 |unt%=0 .|..>. |
|00002f40| 62 6c 61 6e 6b 25 3d b9 | 0d 0d 48 1e 20 20 20 20 |blank%=.|..H. |
|00002f50| f1 22 20 43 6f 6e 74 69 | 6e 75 65 73 20 61 73 20 |." Conti|nues as |
|00002f60| 42 6c 61 6e 6b 22 0d 0d | 52 07 20 20 cd 0d 0d 5c |Blank"..|R. ...\|
|00002f70| 05 cd 0d 0d 66 23 f2 70 | 72 69 6e 74 55 6e 75 73 |....f#.p|rintUnus|
|00002f80| 75 61 6c 28 54 72 6b 44 | 65 73 63 25 2c 20 63 6f |ual(TrkD|esc%, co|
|00002f90| 75 6e 74 25 29 0d 0d 70 | 13 e7 20 63 68 65 63 6b |unt%)..p|.. check|
|00002fa0| 46 6f 72 6d 61 74 20 8c | 0d 0d 7a 74 20 20 e7 20 |Format .|..zt . |
|00002fb0| 28 28 54 72 6b 44 65 73 | 63 25 3f 62 75 66 4e 75 |((TrkDes|c%?bufNu|
|00002fc0| 6d 62 53 65 63 74 25 29 | 20 3c 3e 20 63 68 6b 53 |mbSect%)| <> chkS|
|00002fd0| 65 63 74 73 50 65 72 54 | 72 6b 29 20 84 20 28 28 |ectsPerT|rk) . ((|
|00002fe0| 54 72 6b 44 65 73 63 25 | 3f 62 75 66 4d 75 6c 74 |TrkDesc%|?bufMult|
|00002ff0| 69 53 65 63 74 46 6c 67 | 25 29 3d 20 a3 29 20 84 |iSectFlg|%)= .) .|
|00003000| 20 28 64 65 6e 73 69 74 | 79 25 20 3c 3e 20 63 68 | (densit|y% <> ch|
|00003010| 6b 44 65 6e 73 69 74 79 | 25 29 20 8c 0d 0d 84 40 |kDensity|%) ....@|
|00003020| 20 20 20 20 f2 70 72 69 | 6e 74 4c 69 6e 65 28 22 | .pri|ntLine("|
|00003030| 20 2a 2a 2a 2a 2a 2a 2a | 20 54 72 61 63 6b 20 66 | *******| Track f|
|00003040| 6f 72 6d 61 74 20 66 61 | 69 6c 65 64 20 63 68 65 |ormat fa|iled che|
|00003050| 63 6b 20 2a 2a 2a 2a 2a | 2a 2a 22 29 0d 0d 8e 07 |ck *****|**")....|
|00003060| 20 20 cd 0d 0d 98 05 cd | 0d 0d a2 05 e1 0d 0d ac | ......|........|
|00003070| 04 0d 0d b6 4a 20 20 20 | f4 20 41 6e 61 6c 79 73 |....J |. Analys|
|00003080| 65 73 20 52 65 61 64 20 | 54 72 61 63 6b 20 64 61 |es Read |Track da|
|00003090| 74 61 20 61 6e 64 20 73 | 65 74 73 20 75 70 20 54 |ta and s|ets up T|
|000030a0| 72 61 63 6b 20 64 65 73 | 63 72 69 70 74 6f 72 20 |rack des|criptor |
|000030b0| 61 63 63 6f 72 64 69 6e | 67 6c 79 0d 0d c0 48 20 |accordin|gly...H |
|000030c0| 20 20 f4 20 49 67 6e 6f | 72 65 20 61 6e 79 20 27 | . Igno|re any '|
|000030d0| 61 70 70 61 72 65 6e 74 | 27 20 73 65 63 74 6f 72 |apparent|' sector|
|000030e0| 73 20 77 69 74 68 6f 75 | 74 20 61 73 73 6f 63 69 |s withou|t associ|
|000030f0| 61 74 65 64 20 64 61 74 | 61 20 61 72 65 61 73 20 |ated dat|a areas |
|00003100| 28 6f 72 0d 0d ca 36 20 | 20 20 f4 20 20 69 74 20 |(or...6 | . it |
|00003110| 61 70 70 65 61 72 20 61 | 73 20 27 53 65 63 74 6f |appear a|s 'Secto|
|00003120| 72 20 6e 6f 74 20 66 6f | 75 6e 64 27 20 69 6e 20 |r not fo|und' in |
|00003130| 61 6e 79 20 63 61 73 65 | 29 0d 0d d4 30 20 20 20 |any case|)...0 |
|00003140| f4 20 69 66 20 61 6e 79 | 74 68 69 6e 67 20 75 6e |. if any|thing un|
|00003150| 75 73 75 61 6c 20 75 6e | 73 65 74 20 6d 75 6c 74 |usual un|set mult|
|00003160| 69 53 65 63 74 46 6c 67 | 25 0d 0d de 2e dd f2 61 |iSectFlg|%......a|
|00003170| 6e 61 6c 79 73 65 54 72 | 6b 28 54 72 6b 44 65 73 |nalyseTr|k(TrkDes|
|00003180| 63 25 2c 20 44 61 74 61 | 42 75 66 25 2c 20 64 65 |c%, Data|Buf%, de|
|00003190| 6e 73 69 74 79 25 29 0d | 0d e8 45 ea 20 63 6f 75 |nsity%).|..E. cou|
|000031a0| 6e 74 25 2c 20 61 64 64 | 25 2c 20 49 44 61 64 64 |nt%, add|%, IDadd|
|000031b0| 25 2c 20 64 61 74 61 61 | 64 64 25 2c 20 6d 61 72 |%, dataa|dd%, mar|
|000031c0| 6b 25 2c 20 49 44 63 6f | 72 72 75 70 74 2c 20 6d |k%, IDco|rrupt, m|
|000031d0| 75 6c 74 69 53 65 63 74 | 46 6c 67 25 0d 0d f2 3b |ultiSect|Flg%...;|
|000031e0| ea 20 49 44 25 2c 20 62 | 79 74 65 73 25 2c 20 66 |. ID%, b|ytes%, f|
|000031f0| 69 72 73 74 49 44 73 79 | 6e 63 41 64 64 25 2c 20 |irstIDsy|ncAdd%, |
|00003200| 65 6e 64 4c 61 73 74 44 | 61 74 61 25 2c 20 72 65 |endLastD|ata%, re|
|00003210| 6d 61 64 65 4f 4b 25 0d | 0d fc 22 6d 75 6c 74 69 |madeOK%.|.."multi|
|00003220| 53 65 63 74 46 6c 67 25 | 3d b9 20 20 3a f4 20 69 |SectFlg%|=. :. i|
|00003230| 65 20 64 65 66 61 75 6c | 74 0d 0e 06 0c 63 6f 75 |e defaul|t....cou|
|00003240| 6e 74 25 3d 30 0d 0e 10 | 4b 61 64 64 25 3d 44 61 |nt%=0...|Kadd%=Da|
|00003250| 74 61 42 75 66 25 20 2b | 20 32 20 20 20 3a f4 20 |taBuf% +| 2 :. |
|00003260| 66 69 72 73 74 20 49 44 | 20 41 4d 20 6d 75 73 74 |first ID| AM must|
|00003270| 20 62 65 20 61 74 20 6c | 65 61 73 74 20 32 20 62 | be at l|east 2 b|
|00003280| 79 74 65 73 20 69 6e 74 | 6f 20 62 75 66 66 65 72 |ytes int|o buffer|
|00003290| 0d 0e 1a 25 65 6e 64 61 | 64 64 25 3d 54 72 6b 44 |...%enda|dd%=TrkD|
|000032a0| 65 73 63 25 21 62 75 66 | 45 6e 64 56 61 6c 69 64 |esc%!buf|EndValid|
|000032b0| 44 61 74 61 25 0d 0e 24 | 05 f5 0d 0e 2e 26 20 20 |Data%..$|.....& |
|000032c0| f2 66 69 6e 64 49 44 28 | 61 64 64 25 2c 20 65 6e |.findID(|add%, en|
|000032d0| 64 61 64 64 25 2c 20 64 | 65 6e 73 69 74 79 25 29 |dadd%, d|ensity%)|
|000032e0| 0d 0e 38 11 20 20 e7 20 | 61 64 64 25 3c 3e 30 20 |..8. . |add%<>0 |
|000032f0| 8c 0d 0e 42 43 20 20 20 | 20 e7 20 63 6f 75 6e 74 |...BC | . count|
|00003300| 25 3d 6d 61 78 53 65 63 | 74 73 41 6c 6c 6f 77 65 |%=maxSec|tsAllowe|
|00003310| 64 25 20 8c 20 f1 27 22 | 46 61 69 6c 65 64 3a 2d |d% . .'"|Failed:-|
|00003320| 20 74 6f 6f 20 6d 61 6e | 79 20 73 65 63 74 6f 72 | too man|y sector|
|00003330| 73 22 3a fa 0d 0e 4c 13 | 20 20 20 20 49 44 61 64 |s":...L.| IDad|
|00003340| 64 25 3d 61 64 64 25 0d | 0e 56 2d 20 20 20 20 e7 |d%=add%.|.V- .|
|00003350| 20 63 6f 75 6e 74 25 3d | 30 20 8c 20 66 69 72 73 | count%=|0 . firs|
|00003360| 74 49 44 73 79 6e 63 41 | 64 64 25 3d 49 44 61 64 |tIDsyncA|dd%=IDad|
|00003370| 64 25 2d 34 0d 0e 60 2b | 20 20 20 20 f2 73 65 74 |d%-4..`+| .set|
|00003380| 49 44 50 74 72 28 54 72 | 6b 44 65 73 63 25 2c 20 |IDPtr(Tr|kDesc%, |
|00003390| 63 6f 75 6e 74 25 2c 20 | 49 44 61 64 64 25 29 0d |count%, |IDadd%).|
|000033a0| 0e 6a 3d 20 20 20 20 f2 | 73 65 74 53 65 63 74 49 |.j= .|setSectI|
|000033b0| 6e 66 6f 28 54 72 6b 44 | 65 73 63 25 2c 20 63 6f |nfo(TrkD|esc%, co|
|000033c0| 75 6e 74 25 2c 20 30 29 | 20 20 3a f4 20 30 3d 64 |unt%, 0)| :. 0=d|
|000033d0| 65 66 61 75 6c 74 20 76 | 61 6c 75 65 0d 0e 74 39 |efault v|alue..t9|
|000033e0| 20 20 20 20 f2 73 65 74 | 53 65 63 74 49 44 28 54 | .set|SectID(T|
|000033f0| 72 6b 44 65 73 63 25 2c | 20 63 6f 75 6e 74 25 2c |rkDesc%,| count%,|
|00003400| 20 49 44 61 64 64 25 21 | 30 29 20 3a f4 20 73 61 | IDadd%!|0) :. sa|
|00003410| 76 65 20 49 44 0d 0e 7e | 10 20 20 20 20 61 64 64 |ve ID..~|. add|
|00003420| 25 20 2b 3d 36 0d 0e 88 | 20 20 20 20 20 e7 20 28 |% +=6...| . (|
|00003430| 65 6e 64 61 64 64 25 2d | 61 64 64 25 29 20 3c 20 |endadd%-|add%) < |
|00003440| 31 32 38 20 8c 0d 0e 92 | 3a 20 20 20 20 20 20 f4 |128 ....|: .|
|00003450| 20 69 66 20 74 68 65 72 | 65 20 69 73 20 61 20 64 | if ther|e is a d|
|00003460| 61 74 61 20 61 72 65 61 | 20 69 74 20 6f 76 65 72 |ata area| it over|
|00003470| 66 6c 6f 77 73 20 69 6e | 64 65 78 2c 20 73 6f 0d |flows in|dex, so.|
|00003480| 0e 9c 42 20 20 20 20 20 | 20 f4 20 77 72 61 70 20 |..B | . wrap |
|00003490| 61 72 6f 75 6e 64 20 64 | 61 74 61 20 66 72 6f 6d |around d|ata from|
|000034a0| 20 73 74 61 72 74 20 6f | 66 20 74 72 61 63 6b 20 | start o|f track |
|000034b0| 28 62 65 66 6f 72 65 20 | 66 69 72 73 74 20 49 44 |(before |first ID|
|000034c0| 29 0d 0e a6 29 20 20 20 | 20 20 20 f4 20 74 6f 20 |)...) | . to |
|000034d0| 65 6e 73 75 72 65 20 49 | 20 73 65 65 20 74 68 65 |ensure I| see the|
|000034e0| 20 64 61 74 61 20 6d 61 | 72 6b 0d 0e b0 37 20 20 | data ma|rk...7 |
|000034f0| 20 20 20 20 d6 20 63 6f | 70 79 66 77 64 2c 20 44 | . co|pyfwd, D|
|00003500| 61 74 61 42 75 66 25 2c | 20 66 69 72 73 74 49 44 |ataBuf%,| firstID|
|00003510| 73 79 6e 63 41 64 64 25 | 2c 20 65 6e 64 61 64 64 |syncAdd%|, endadd|
|00003520| 25 0d 0e ba 2d 20 20 20 | 20 20 20 65 6e 64 61 64 |%...- | endad|
|00003530| 64 25 20 2b 3d 20 66 69 | 72 73 74 49 44 73 79 6e |d% += fi|rstIDsyn|
|00003540| 63 41 64 64 25 2d 44 61 | 74 61 42 75 66 25 0d 0e |cAdd%-Da|taBuf%..|
|00003550| c4 09 20 20 20 20 cd 0d | 0e ce 40 20 20 20 20 f2 |.. ..|..@ .|
|00003560| 66 69 6e 64 41 4d 20 28 | 61 64 64 25 2c 65 6e 64 |findAM (|add%,end|
|00003570| 61 64 64 25 2c 64 65 6e | 73 69 74 79 25 29 20 3a |add%,den|sity%) :|
|00003580| f4 20 61 69 6d 20 74 6f | 20 66 69 6e 64 20 44 61 |. aim to| find Da|
|00003590| 74 61 20 41 72 65 61 0d | 0e d8 44 20 20 20 20 64 |ta Area.|..D d|
|000035a0| 61 74 61 61 64 64 25 3d | 30 20 20 20 20 20 20 20 |ataadd%=|0 |
|000035b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000035c0| 20 20 3a f4 20 64 65 66 | 61 75 6c 74 20 69 66 20 | :. def|ault if |
|000035d0| 6e 6f 20 44 61 74 61 41 | 72 65 61 0d 0e e2 14 20 |no DataA|rea.... |
|000035e0| 20 20 20 e7 20 61 64 64 | 25 20 3c 3e 30 20 8c 0d | . add|% <>0 ..|
|000035f0| 0e ec 3e 20 20 20 20 20 | 20 6d 61 72 6b 25 3d 28 |..> | mark%=(|
|00003600| 61 64 64 25 3f 2d 31 29 | 20 20 20 20 20 20 20 20 |add%?-1)| |
|00003610| 20 20 20 3a f4 20 6d 75 | 73 74 20 62 65 20 62 65 | :. mu|st be be|
|00003620| 74 77 65 65 6e 20 26 46 | 38 2d 26 46 46 0d 0e f6 |tween &F|8-&FF...|
|00003630| 1a 20 20 20 20 20 20 e7 | 20 6d 61 72 6b 25 20 3e |. .| mark% >|
|00003640| 3d 20 26 46 43 20 8c 0d | 0f 00 47 20 20 20 20 20 |= &FC ..|..G |
|00003650| 20 20 20 61 64 64 25 20 | 2d 3d 20 31 30 20 20 20 | add% |-= 10 |
|00003660| 20 20 20 20 20 20 20 20 | 20 20 20 3a f4 20 69 66 | | :. if|
|00003670| 20 6e 6f 74 20 44 61 74 | 61 20 41 72 65 61 2c 20 | not Dat|a Area, |
|00003680| 74 75 72 6e 20 62 61 63 | 6b 20 61 64 64 25 0d 0f |turn bac|k add%..|
|00003690| 0a 0b 20 20 20 20 20 20 | cc 0d 0f 14 19 20 20 20 |.. |..... |
|000036a0| 20 20 20 20 20 64 61 74 | 61 61 64 64 25 3d 61 64 | dat|aadd%=ad|
|000036b0| 64 25 0d 0f 1e 1a 20 20 | 20 20 20 20 20 20 e7 20 |d%.... | . |
|000036c0| 6d 61 72 6b 25 3d 20 26 | 46 38 20 8c 0d 0f 28 20 |mark%= &|F8 ...( |
|000036d0| 20 20 20 20 20 20 20 20 | 20 20 f4 20 69 74 73 20 | | . its |
|000036e0| 64 65 6c 65 74 65 64 20 | 64 61 74 61 0d 0f 32 1f |deleted |data..2.|
|000036f0| 20 20 20 20 20 20 20 20 | 20 20 6d 75 6c 74 69 53 | | multiS|
|00003700| 65 63 74 46 6c 67 25 20 | 3d 20 a3 0d 0f 3c 36 20 |ectFlg% |= ...<6 |
|00003710| 20 20 20 20 20 20 20 20 | 20 f2 61 64 64 53 65 63 | | .addSec|
|00003720| 74 49 6e 66 6f 28 54 72 | 6b 44 65 73 63 25 2c 20 |tInfo(Tr|kDesc%, |
|00003730| 63 6f 75 6e 74 25 2c 20 | 64 65 6c 44 61 74 61 25 |count%, |delData%|
|00003740| 29 0d 0f 46 0d 20 20 20 | 20 20 20 20 20 cd 0d 0f |)..F. | ...|
|00003750| 50 0b 20 20 20 20 20 20 | cd 0d 0f 5a 09 20 20 20 |P. |...Z. |
|00003760| 20 cd 0d 0f 64 2f 20 20 | 20 20 f2 73 65 74 44 61 | ...d/ | .setDa|
|00003770| 74 61 50 74 72 28 54 72 | 6b 44 65 73 63 25 2c 20 |taPtr(Tr|kDesc%, |
|00003780| 63 6f 75 6e 74 25 2c 20 | 64 61 74 61 61 64 64 25 |count%, |dataadd%|
|00003790| 29 0d 0f 6e 16 20 20 20 | 20 e7 20 64 61 74 61 61 |)..n. | . dataa|
|000037a0| 64 64 25 3d 30 20 8c 0d | 0f 78 47 20 20 20 20 20 |dd%=0 ..|.xG |
|000037b0| 20 f4 20 6e 6f 20 64 61 | 74 61 20 28 73 6f 20 74 | . no da|ta (so t|
|000037c0| 68 65 20 49 44 20 77 69 | 6c 6c 20 62 65 20 69 67 |he ID wi|ll be ig|
|000037d0| 6e 6f 72 65 64 29 2c 20 | 73 6f 20 66 6f 72 20 54 |nored), |so for T|
|000037e0| 52 41 43 45 20 73 61 6b | 65 20 6f 6e 6c 79 0d 0f |RACE sak|e only..|
|000037f0| 82 1b 20 20 20 20 20 20 | 6d 75 6c 74 69 53 65 63 |.. |multiSec|
|00003800| 74 46 6c 67 25 20 3d 20 | a3 0d 0f 8c 31 20 20 20 |tFlg% = |....1 |
|00003810| 20 20 20 f2 61 64 64 53 | 65 63 74 49 6e 66 6f 28 | .addS|ectInfo(|
|00003820| 54 72 6b 44 65 73 63 25 | 2c 20 63 6f 75 6e 74 25 |TrkDesc%|, count%|
|00003830| 2c 20 6e 6f 44 61 74 61 | 25 29 0d 0f 96 09 20 20 |, noData|%).... |
|00003840| 20 20 cc 0d 0f a0 46 20 | 20 20 20 20 20 f4 20 54 | ....F | . T|
|00003850| 68 65 72 65 20 69 73 20 | 61 20 64 61 74 61 20 61 |here is |a data a|
|00003860| 72 65 61 2c 20 73 6f 20 | 6f 6e 6c 79 20 74 68 65 |rea, so |only the|
|00003870| 6e 20 6b 65 65 70 20 61 | 20 72 65 63 6f 72 64 20 |n keep a| record |
|00003880| 6f 66 20 73 65 63 74 6f | 72 0d 0f aa 3f 20 20 20 |of secto|r...? |
|00003890| 20 20 20 f4 20 61 6e 64 | 20 6f 6e 6c 79 20 74 68 | . and| only th|
|000038a0| 65 6e 20 74 65 73 74 20 | 66 6f 72 20 63 6f 72 72 |en test |for corr|
|000038b0| 75 70 74 20 49 44 27 73 | 20 6f 72 20 69 6c 6c 65 |upt ID's| or ille|
|000038c0| 67 61 6c 20 49 44 27 73 | 0d 0f b4 1c 20 20 20 20 |gal ID's|.... |
|000038d0| 20 20 e7 20 28 49 44 61 | 64 64 25 3f 33 20 3e 20 | . (IDa|dd%?3 > |
|000038e0| 33 29 20 8c 0d 0f be 3d | 20 20 20 20 20 20 20 20 |3) ....=| |
|000038f0| f4 20 70 72 6f 62 61 62 | 6c 79 20 63 6f 72 72 75 |. probab|ly corru|
|00003900| 70 74 20 49 44 20 28 6f | 72 20 6d 61 79 62 65 20 |pt ID (o|r maybe |
|00003910| 6e 6f 74 20 49 44 20 6a | 75 73 74 20 64 61 74 61 |not ID j|ust data|
|00003920| 29 0d 0f c8 22 20 20 20 | 20 20 20 20 20 e7 20 64 |)..." | . d|
|00003930| 65 6e 73 69 74 79 25 3d | 44 44 65 6e 73 69 74 79 |ensity%=|DDensity|
|00003940| 25 20 8c 0d 0f d2 3f 20 | 20 20 20 20 20 20 20 20 |% ....? | |
|00003950| 20 f4 20 72 65 6d 61 6b | 65 20 49 44 20 26 20 73 | . remak|e ID & s|
|00003960| 65 74 20 3d 49 44 25 20 | 74 68 65 6e 20 6f 76 65 |et =ID% |then ove|
|00003970| 72 77 72 69 74 65 20 73 | 61 76 65 64 20 73 74 61 |rwrite s|aved sta|
|00003980| 74 65 0d 0f dc 38 20 20 | 20 20 20 20 20 20 20 20 |te...8 | |
|00003990| d6 20 72 65 6d 61 6b 65 | 49 44 2c 20 6d 61 70 49 |. remake|ID, mapI|
|000039a0| 44 25 2c 20 49 44 61 64 | 64 25 2c 20 49 44 25 2c |D%, IDad|d%, ID%,|
|000039b0| 20 72 65 6d 61 64 65 4f | 4b 25 0d 0f e6 1e 20 20 | remadeO|K%.... |
|000039c0| 20 20 20 20 20 20 20 20 | e7 20 72 65 6d 61 64 65 | |. remade|
|000039d0| 4f 4b 25 3c 3e 30 20 8c | 0d 0f f0 33 20 20 20 20 |OK%<>0 .|...3 |
|000039e0| 20 20 20 20 20 20 20 20 | f4 20 73 61 76 65 20 72 | |. save r|
|000039f0| 65 6d 61 64 65 64 20 49 | 44 20 6f 6e 6c 79 20 69 |emaded I|D only i|
|00003a00| 66 20 72 65 6d 61 64 65 | 4f 4b 25 0d 0f fa 31 20 |f remade|OK%...1 |
|00003a10| 20 20 20 20 20 20 20 20 | 20 20 20 f2 73 65 74 53 | | .setS|
|00003a20| 65 63 74 49 44 28 54 72 | 6b 44 65 73 63 25 2c 20 |ectID(Tr|kDesc%, |
|00003a30| 63 6f 75 6e 74 25 2c 20 | 49 44 25 29 0d 10 04 0f |count%, |ID%)....|
|00003a40| 20 20 20 20 20 20 20 20 | 20 20 cd 0d 10 0e 0d 20 | | ..... |
|00003a50| 20 20 20 20 20 20 20 cc | 0d 10 18 38 20 20 20 20 | .|...8 |
|00003a60| 20 20 20 20 20 20 f4 20 | 6c 65 61 76 65 20 69 74 | . |leave it|
|00003a70| 20 61 73 20 69 74 20 69 | 73 2c 20 69 66 20 69 74 | as it i|s, if it|
|00003a80| 73 20 53 69 6e 67 6c 65 | 20 44 65 6e 73 69 74 79 |s Single| Density|
|00003a90| 0d 10 22 0d 20 20 20 20 | 20 20 20 20 cd 0d 10 2c |..". | ...,|
|00003aa0| 0b 20 20 20 20 20 20 cd | 0d 10 36 43 20 20 20 20 |. .|..6C |
|00003ab0| 20 20 f2 74 65 73 74 49 | 6c 6c 65 67 61 6c 49 64 | .testI|llegalId|
|00003ac0| 28 54 72 6b 44 65 73 63 | 25 2c 20 63 6f 75 6e 74 |(TrkDesc|%, count|
|00003ad0| 25 2c 20 64 65 6e 73 69 | 74 79 25 2c 20 6d 75 6c |%, densi|ty%, mul|
|00003ae0| 74 69 53 65 63 74 46 6c | 67 25 29 0d 10 40 19 20 |tiSectFl|g%)..@. |
|00003af0| 20 20 20 20 20 63 6f 75 | 6e 74 25 3d 63 6f 75 6e | cou|nt%=coun|
|00003b00| 74 25 2b 31 0d 10 4a 09 | 20 20 20 20 cd 0d 10 54 |t%+1..J.| ...T|
|00003b10| 07 20 20 cd 0d 10 5e 0c | fd 20 61 64 64 25 3d 30 |. ...^.|. add%=0|
|00003b20| 0d 10 68 11 e7 20 63 6f | 75 6e 74 25 3c 3e 30 20 |..h.. co|unt%<>0 |
|00003b30| 8c 0d 10 72 28 20 20 49 | 44 25 3d a4 67 65 74 53 |...r( I|D%=.getS|
|00003b40| 65 63 74 49 44 28 54 72 | 6b 44 65 73 63 25 2c 20 |ectID(Tr|kDesc%, |
|00003b50| 63 6f 75 6e 74 25 2d 31 | 29 0d 10 7c 27 20 20 62 |count%-1|)..|' b|
|00003b60| 79 74 65 73 25 3d 31 20 | 3c 3c 20 28 37 2b 20 28 |ytes%=1 |<< (7+ (|
|00003b70| 33 20 80 20 28 49 44 25 | 20 3e 3e 32 34 29 29 29 |3 . (ID%| >>24)))|
|00003b80| 0d 10 86 40 20 20 65 6e | 64 4c 61 73 74 44 61 74 |...@ en|dLastDat|
|00003b90| 61 25 3d 20 62 79 74 65 | 73 25 2b 35 2b 34 20 2b |a%= byte|s%+5+4 +|
|00003ba0| 20 a4 67 65 74 44 61 74 | 61 50 74 72 28 54 72 6b | .getDat|aPtr(Trk|
|00003bb0| 44 65 73 63 25 2c 20 63 | 6f 75 6e 74 25 2d 31 29 |Desc%, c|ount%-1)|
|00003bc0| 0d 10 90 32 20 20 e7 20 | 65 6e 64 4c 61 73 74 44 |...2 . |endLastD|
|00003bd0| 61 74 61 25 20 3e 20 54 | 72 6b 44 65 73 63 25 21 |ata% > T|rkDesc%!|
|00003be0| 62 75 66 45 6e 64 56 61 | 6c 69 64 44 61 74 61 25 |bufEndVa|lidData%|
|00003bf0| 20 8c 0d 10 9a 43 20 20 | 20 20 f4 20 6c 61 73 74 | ....C | . last|
|00003c00| 20 73 65 63 74 6f 72 27 | 73 20 64 61 74 61 20 61 | sector'|s data a|
|00003c10| 72 65 61 20 6f 76 65 72 | 66 6c 6f 77 73 20 49 6e |rea over|flows In|
|00003c20| 64 65 78 2c 20 73 6f 20 | 6d 61 72 6b 20 74 68 65 |dex, so |mark the|
|00003c30| 20 66 61 63 74 0d 10 a4 | 34 20 20 20 20 f2 61 64 | fact...|4 .ad|
|00003c40| 64 53 65 63 74 49 6e 66 | 6f 28 54 72 6b 44 65 73 |dSectInf|o(TrkDes|
|00003c50| 63 25 2c 20 63 6f 75 6e | 74 25 2d 31 2c 20 6f 76 |c%, coun|t%-1, ov|
|00003c60| 65 72 49 6e 64 65 78 25 | 29 0d 10 ae 24 20 20 20 |erIndex%|)...$ |
|00003c70| 20 f4 20 26 20 63 68 61 | 6e 67 65 20 65 6e 64 20 | . & cha|nge end |
|00003c80| 6f 66 20 76 61 6c 69 64 | 20 64 61 74 61 0d 10 b8 |of valid| data...|
|00003c90| 46 20 20 20 20 65 6e 64 | 61 64 64 25 20 3d 20 66 |F end|add% = f|
|00003ca0| 69 72 73 74 49 44 73 79 | 6e 63 41 64 64 25 2d 44 |irstIDsy|ncAdd%-D|
|00003cb0| 61 74 61 42 75 66 25 20 | 2b 20 54 72 6b 44 65 73 |ataBuf% |+ TrkDes|
|00003cc0| 63 25 21 62 75 66 45 6e | 64 56 61 6c 69 64 44 61 |c%!bufEn|dValidDa|
|00003cd0| 74 61 25 0d 10 c2 22 20 | 20 20 20 e7 20 65 6e 64 |ta%..." | . end|
|00003ce0| 61 64 64 25 20 3c 20 65 | 6e 64 4c 61 73 74 44 61 |add% < e|ndLastDa|
|00003cf0| 74 61 25 20 8c 0d 10 cc | 1e 20 20 20 20 20 20 65 |ta% ....|. e|
|00003d00| 6e 64 4c 61 73 74 44 61 | 74 61 25 3d 65 6e 64 61 |ndLastDa|ta%=enda|
|00003d10| 64 64 25 0d 10 d6 09 20 | 20 20 20 cd 0d 10 e0 2f |dd%.... | ..../|
|00003d20| 20 20 20 20 f4 20 73 65 | 74 20 65 6e 64 20 6f 66 | . se|t end of|
|00003d30| 20 76 61 6c 69 64 20 64 | 61 74 61 20 74 6f 20 73 | valid d|ata to s|
|00003d40| 68 6f 72 74 65 72 20 6f | 66 20 2d 0d 10 ea 47 20 |horter o|f -...G |
|00003d50| 20 20 20 f4 20 39 20 62 | 79 74 65 73 20 61 66 74 | . 9 b|ytes aft|
|00003d60| 65 72 20 64 61 74 61 20 | 61 72 65 61 20 43 52 43 |er data |area CRC|
|00003d70| 20 28 61 6c 6c 6f 77 73 | 20 66 6f 72 20 6d 69 6e | (allows| for min|
|00003d80| 5f 67 61 70 3d 35 20 2b | 20 49 44 5f 41 4d 3d 34 |_gap=5 +| ID_AM=4|
|00003d90| 29 2c 0d 10 f4 31 20 20 | 20 20 f4 20 6f 72 20 73 |),...1 | . or s|
|00003da0| 74 61 72 74 20 6f 66 20 | 66 69 72 73 74 20 73 65 |tart of |first se|
|00003db0| 63 74 6f 72 20 77 72 61 | 70 70 65 64 20 61 72 6f |ctor wra|pped aro|
|00003dc0| 75 6e 64 0d 10 fe 34 20 | 20 20 20 f4 20 28 65 6e |und...4 | . (en|
|00003dd0| 73 75 72 65 73 20 66 69 | 72 73 74 20 49 44 20 77 |sures fi|rst ID w|
|00003de0| 69 6c 6c 20 6e 6f 74 20 | 62 65 20 6f 76 65 72 77 |ill not |be overw|
|00003df0| 72 69 74 74 65 6e 29 0d | 11 08 30 20 20 20 20 54 |ritten).|..0 T|
|00003e00| 72 6b 44 65 73 63 25 21 | 62 75 66 45 6e 64 56 61 |rkDesc%!|bufEndVa|
|00003e10| 6c 69 64 44 61 74 61 25 | 20 3d 20 65 6e 64 4c 61 |lidData%| = endLa|
|00003e20| 73 74 44 61 74 61 25 0d | 11 12 07 20 20 cd 0d 11 |stData%.|... ...|
|00003e30| 1c 05 cd 0d 11 26 2c 54 | 72 6b 44 65 73 63 25 3f |.....&,T|rkDesc%?|
|00003e40| 62 75 66 4d 75 6c 74 69 | 53 65 63 74 46 6c 67 25 |bufMulti|SectFlg%|
|00003e50| 3d 20 6d 75 6c 74 69 53 | 65 63 74 46 6c 67 25 0d |= multiS|ectFlg%.|
|00003e60| 11 30 22 54 72 6b 44 65 | 73 63 25 3f 62 75 66 4e |.0"TrkDe|sc%?bufN|
|00003e70| 75 6d 62 53 65 63 74 25 | 20 3d 20 63 6f 75 6e 74 |umbSect%| = count|
|00003e80| 25 0d 11 3a 05 e1 0d 11 | 44 04 0d 11 4e 3c 20 f4 |%..:....|D...N< .|
|00003e90| 20 6f 6e 20 65 78 69 74 | 20 61 64 64 25 20 3d 20 | on exit| add% = |
|00003ea0| 61 64 64 72 65 73 73 20 | 6f 66 20 49 44 20 28 66 |address |of ID (f|
|00003eb0| 6f 75 6e 64 29 20 6f 72 | 20 30 20 28 4e 4f 54 20 |ound) or| 0 (NOT |
|00003ec0| 66 6f 75 6e 64 29 0d 11 | 58 28 dd f2 66 69 6e 64 |found)..|X(..find|
|00003ed0| 49 44 20 28 f8 20 61 64 | 64 25 2c 20 65 6e 64 61 |ID (. ad|d%, enda|
|00003ee0| 64 64 25 2c 20 64 65 6e | 73 69 74 79 25 29 0d 11 |dd%, den|sity%)..|
|00003ef0| 62 1a e7 20 64 65 6e 73 | 69 74 79 25 3d 44 44 65 |b.. dens|ity%=DDe|
|00003f00| 6e 73 69 74 79 25 20 8c | 0d 11 6c 1f 20 20 d6 20 |nsity% .|..l. . |
|00003f10| 44 44 66 69 6e 64 49 44 | 2c 20 61 64 64 25 2c 20 |DDfindID|, add%, |
|00003f20| 65 6e 64 61 64 64 25 0d | 11 76 05 cc 0d 11 80 07 |endadd%.|.v......|
|00003f30| 20 20 f5 0d 11 8a 21 20 | 20 20 20 d6 20 53 44 66 | ....! | . SDf|
|00003f40| 69 6e 64 49 44 2c 20 61 | 64 64 25 2c 20 65 6e 64 |indID, a|dd%, end|
|00003f50| 61 64 64 25 0d 11 94 44 | 20 20 fd 20 28 61 64 64 |add%...D| . (add|
|00003f60| 25 3d 30 29 20 84 20 28 | 28 61 64 64 25 3f 33 29 |%=0) . (|(add%?3)|
|00003f70| 3c 3d 20 33 29 3a f4 20 | 65 78 74 72 61 20 74 65 |<= 3):. |extra te|
|00003f80| 73 74 20 66 6f 72 20 76 | 61 6c 69 64 20 53 69 7a |st for v|alid Siz|
|00003f90| 65 20 66 6f 72 20 53 44 | 0d 11 9e 05 cd 0d 11 a8 |e for SD|........|
|00003fa0| 05 e1 0d 11 b2 04 0d 11 | bc 46 20 f4 20 6f 6e 20 |........|.F . on |
|00003fb0| 65 78 69 74 20 61 64 64 | 25 20 3d 20 61 64 64 72 |exit add|% = addr|
|00003fc0| 65 73 73 20 6f 66 20 61 | 64 64 72 65 73 73 20 6d |ess of a|ddress m|
|00003fd0| 61 72 6b 20 28 66 6f 75 | 6e 64 29 20 6f 72 20 30 |ark (fou|nd) or 0|
|00003fe0| 20 28 4e 4f 54 20 66 6f | 75 6e 64 29 0d 11 c6 28 | (NOT fo|und)...(|
|00003ff0| dd f2 66 69 6e 64 41 4d | 20 28 f8 20 61 64 64 25 |..findAM| (. add%|
|00004000| 2c 20 65 6e 64 61 64 64 | 25 2c 20 64 65 6e 73 69 |, endadd|%, densi|
|00004010| 74 79 25 29 0d 11 d0 1a | e7 20 64 65 6e 73 69 74 |ty%)....|. densit|
|00004020| 79 25 3d 44 44 65 6e 73 | 69 74 79 25 20 8c 0d 11 |y%=DDens|ity% ...|
|00004030| da 1f 20 20 d6 20 44 44 | 66 69 6e 64 41 4d 2c 20 |.. . DD|findAM, |
|00004040| 61 64 64 25 2c 20 65 6e | 64 61 64 64 25 0d 11 e4 |add%, en|dadd%...|
|00004050| 05 cc 0d 11 ee 1f 20 20 | d6 20 53 44 66 69 6e 64 |...... |. SDfind|
|00004060| 41 4d 2c 20 61 64 64 25 | 2c 20 65 6e 64 61 64 64 |AM, add%|, endadd|
|00004070| 25 0d 11 f8 05 cd 0d 12 | 02 05 e1 0d 12 0c 04 0d |%.......|........|
|00004080| 12 16 40 20 20 f4 20 49 | 46 20 4d 75 6c 74 69 20 |..@ . I|F Multi |
|00004090| 73 65 63 74 6f 72 2c 20 | 73 65 74 75 70 20 6d 65 |sector, |setup me|
|000040a0| 6d 6f 72 79 20 70 6f 69 | 6e 74 65 72 20 6c 69 73 |mory poi|nter lis|
|000040b0| 74 20 26 20 64 6f 20 6f | 6e 65 20 72 65 61 64 0d |t & do o|ne read.|
|000040c0| 12 20 43 20 20 f4 20 45 | 4c 53 45 20 28 6f 72 20 |. C . E|LSE (or |
|000040d0| 69 66 20 61 62 6f 76 65 | 20 72 65 61 64 20 66 61 |if above| read fa|
|000040e0| 69 6c 73 29 20 72 65 61 | 64 20 65 61 63 68 20 73 |ils) rea|d each s|
|000040f0| 65 63 74 6f 72 20 69 6e | 64 69 76 69 64 75 61 6c |ector in|dividual|
|00004100| 6c 79 0d 12 2a 31 20 20 | f4 20 69 66 20 6d 75 6c |ly..*1 |. if mul|
|00004110| 74 69 2d 73 65 63 74 6f | 72 20 72 65 61 64 20 66 |ti-secto|r read f|
|00004120| 61 69 6c 73 20 75 6e 73 | 65 74 20 69 74 73 20 66 |ails uns|et its f|
|00004130| 6c 61 67 0d 12 34 2e dd | f2 72 65 61 64 54 72 6b |lag..4..|.readTrk|
|00004140| 73 53 65 63 74 73 20 28 | 64 72 76 25 2c 20 54 72 |sSects (|drv%, Tr|
|00004150| 6b 44 65 73 63 25 2c 20 | 64 65 6e 73 69 74 79 25 |kDesc%, |density%|
|00004160| 29 0d 12 3e 40 ea 20 73 | 65 63 74 46 6f 75 6e 64 |)..>@. s|ectFound|
|00004170| 25 2c 74 72 6b 25 2c 68 | 65 61 64 25 2c 6c 6f 77 |%,trk%,h|ead%,low|
|00004180| 53 65 63 74 25 2c 73 65 | 63 74 53 69 7a 65 25 2c |Sect%,se|ctSize%,|
|00004190| 61 64 64 25 2c 49 44 61 | 64 64 25 2c 73 65 63 74 |add%,IDa|dd%,sect|
|000041a0| 25 0d 12 48 38 ea 20 6d | 75 6c 74 69 53 65 63 74 |%..H8. m|ultiSect|
|000041b0| 46 6c 67 25 2c 20 63 6f | 75 6e 74 25 2c 20 62 79 |Flg%, co|unt%, by|
|000041c0| 74 65 73 25 2c 20 69 6e | 66 6f 25 2c 20 6e 6f 74 |tes%, in|fo%, not|
|000041d0| 52 65 61 6c 53 65 63 74 | 25 0d 12 52 05 f5 0d 12 |RealSect|%..R....|
|000041e0| 5c 41 20 20 6e 6f 74 52 | 65 61 6c 53 65 63 74 25 |\A notR|ealSect%|
|000041f0| 3d a3 20 3a f4 20 62 72 | 65 61 6b 20 6f 75 74 20 |=. :. br|eak out |
|00004200| 66 6f 72 20 27 53 65 63 | 74 6f 72 20 6e 6f 74 20 |for 'Sec|tor not |
|00004210| 66 6f 75 6e 64 27 20 26 | 20 72 65 2d 74 72 79 0d |found' &| re-try.|
|00004220| 12 66 24 20 20 63 6f 75 | 6e 74 25 20 3d 20 54 72 |.f$ cou|nt% = Tr|
|00004230| 6b 44 65 73 63 25 3f 62 | 75 66 4e 75 6d 62 53 65 |kDesc%?b|ufNumbSe|
|00004240| 63 74 25 0d 12 70 13 20 | 20 e7 20 63 6f 75 6e 74 |ct%..p. | . count|
|00004250| 25 3c 3e 30 20 8c 0d 12 | 7a 1e 20 20 20 20 74 72 |%<>0 ...|z. tr|
|00004260| 6b 25 20 3d 54 72 6b 44 | 65 73 63 25 3f 62 75 66 |k% =TrkD|esc%?buf|
|00004270| 54 72 6b 25 0d 12 84 1f | 20 20 20 20 68 65 61 64 |Trk%....| head|
|00004280| 25 3d 54 72 6b 44 65 73 | 63 25 3f 62 75 66 48 65 |%=TrkDes|c%?bufHe|
|00004290| 61 64 25 0d 12 8e 30 20 | 20 20 20 6d 75 6c 74 69 |ad%...0 | multi|
|000042a0| 53 65 63 74 46 6c 67 25 | 3d 20 54 72 6b 44 65 73 |SectFlg%|= TrkDes|
|000042b0| 63 25 3f 62 75 66 4d 75 | 6c 74 69 53 65 63 74 46 |c%?bufMu|ltiSectF|
|000042c0| 6c 67 25 0d 12 98 38 20 | 20 20 20 f4 20 2d 2d 20 |lg%...8 | . -- |
|000042d0| 6d 61 6e 79 20 6f 66 20 | 62 65 6c 6f 77 20 63 61 |many of |below ca|
|000042e0| 6e 20 73 65 74 20 6d 75 | 6c 74 69 53 65 63 74 46 |n set mu|ltiSectF|
|000042f0| 6c 67 25 20 3d 20 46 41 | 4c 53 45 0d 12 a2 34 20 |lg% = FA|LSE...4 |
|00004300| 20 20 20 f2 73 65 74 4c | 65 6e 67 74 68 73 28 54 | .setL|engths(T|
|00004310| 72 6b 44 65 73 63 25 2c | 20 63 6f 75 6e 74 25 2c |rkDesc%,| count%,|
|00004320| 20 6d 75 6c 74 69 53 65 | 63 74 46 6c 67 25 29 0d | multiSe|ctFlg%).|
|00004330| 12 ac 19 20 20 20 20 e7 | 20 6d 75 6c 74 69 53 65 |... .| multiSe|
|00004340| 63 74 46 6c 67 25 20 8c | 0d 12 b6 39 20 20 20 20 |ctFlg% .|...9 |
|00004350| 20 20 f2 73 65 74 4d 75 | 6c 74 69 53 65 63 74 20 | .setMu|ltiSect |
|00004360| 28 54 72 6b 44 65 73 63 | 25 2c 20 63 6f 75 6e 74 |(TrkDesc|%, count|
|00004370| 25 2c 20 6d 75 6c 74 69 | 53 65 63 74 46 6c 67 25 |%, multi|SectFlg%|
|00004380| 29 0d 12 c0 09 20 20 20 | 20 cd 0d 12 ca 19 20 20 |).... | ..... |
|00004390| 20 20 e7 20 6d 75 6c 74 | 69 53 65 63 74 46 6c 67 | . mult|iSectFlg|
|000043a0| 25 20 8c 0d 12 d4 3a 20 | 20 20 20 20 20 f4 20 72 |% ....: | . r|
|000043b0| 65 61 64 20 74 72 61 63 | 6b 20 69 6e 20 6f 6e 65 |ead trac|k in one|
|000043c0| 20 67 6f 20 62 75 74 20 | 75 73 69 6e 67 20 6d 65 | go but |using me|
|000043d0| 6d 6f 72 79 20 44 4d 41 | 20 6c 69 73 74 0d 12 de |mory DMA| list...|
|000043e0| 27 20 20 20 20 20 20 6c | 6f 77 53 65 63 74 25 3d |' l|owSect%=|
|000043f0| 54 72 6b 44 65 73 63 25 | 3f 62 75 66 4c 6f 77 53 |TrkDesc%|?bufLowS|
|00004400| 65 63 74 25 0d 12 e8 29 | 20 20 20 20 20 20 73 65 |ect%...)| se|
|00004410| 63 74 53 69 7a 65 25 3d | 54 72 6b 44 65 73 63 25 |ctSize%=|TrkDesc%|
|00004420| 3f 62 75 66 53 65 63 74 | 53 69 7a 65 25 0d 12 f2 |?bufSect|Size%...|
|00004430| 2b 20 20 20 20 20 20 f2 | 63 6f 70 79 4d 65 6d 41 |+ .|copyMemA|
|00004440| 64 64 4c 69 73 74 28 54 | 72 6b 44 65 73 63 25 2c |ddList(T|rkDesc%,|
|00004450| 20 63 6f 75 6e 74 25 29 | 0d 12 fc 63 20 20 20 20 | count%)|...c |
|00004460| 20 20 f2 6f 70 73 65 63 | 74 6f 72 73 28 52 65 61 | .opsec|tors(Rea|
|00004470| 64 25 20 84 20 28 31 3c | 3c 35 29 2c 64 72 76 25 |d% . (1<|<5),drv%|
|00004480| 2c 74 72 6b 25 2c 68 65 | 61 64 25 2c 6c 6f 77 53 |,trk%,he|ad%,lowS|
|00004490| 65 63 74 25 2c 63 6f 75 | 6e 74 25 2c 73 65 63 74 |ect%,cou|nt%,sect|
|000044a0| 53 69 7a 65 25 2c 64 65 | 6e 73 69 74 79 25 2c 6d |Size%,de|nsity%,m|
|000044b0| 65 6d 41 64 64 4c 69 73 | 74 25 29 0d 13 06 38 20 |emAddLis|t%)...8 |
|000044c0| 20 20 20 20 20 e7 20 72 | 65 73 75 6c 74 25 20 3c | . r|esult% <|
|000044d0| 3e 20 30 20 8c 20 6d 75 | 6c 74 69 53 65 63 74 46 |> 0 . mu|ltiSectF|
|000044e0| 6c 67 25 3d a3 20 3a f4 | 20 44 69 73 63 20 65 72 |lg%=. :.| Disc er|
|000044f0| 72 6f 72 0d 13 10 09 20 | 20 20 20 cd 0d 13 1a 1b |ror.... | .....|
|00004500| 20 20 20 20 e7 20 6d 75 | 6c 74 69 53 65 63 74 46 | . mu|ltiSectF|
|00004510| 6c 67 25 3d 30 20 8c 0d | 13 24 15 20 20 20 20 20 |lg%=0 ..|.$. |
|00004520| 20 e7 20 61 6e 61 6c 79 | 73 65 20 8c 0d 13 2e 35 | . analy|se ....5|
|00004530| 20 20 20 20 20 20 20 20 | f1 22 20 20 72 65 61 64 | |." read|
|00004540| 69 6e 67 3a 2d 20 6e 6f | 6e 2d 73 74 61 6e 64 61 |ing:- no|n-standa|
|00004550| 72 64 20 74 72 61 63 6b | 20 6c 61 79 6f 75 74 3f |rd track| layout?|
|00004560| 22 0d 13 38 0b 20 20 20 | 20 20 20 cd 0d 13 42 4b |"..8. | ...BK|
|00004570| 20 20 20 20 20 20 f4 20 | 63 61 74 63 68 20 61 6c | . |catch al|
|00004580| 6c 2c 64 65 6c 65 74 65 | 64 20 64 61 74 61 2c 6e |l,delete|d data,n|
|00004590| 6f 6e 2d 63 6f 6e 73 65 | 63 75 74 69 76 65 20 49 |on-conse|cutive I|
|000045a0| 44 73 2c 20 49 44 20 26 | 20 44 61 74 61 41 72 65 |Ds, ID &| DataAre|
|000045b0| 61 20 65 72 72 6f 72 0d | 13 4c 40 20 20 20 20 20 |a error.|.L@ |
|000045c0| 20 f4 20 69 6c 6c 65 67 | 61 6c 20 49 44 73 20 54 | . illeg|al IDs T|
|000045d0| 72 6b 2c 20 61 6e 64 20 | 64 61 74 61 20 61 72 65 |rk, and |data are|
|000045e0| 61 73 20 74 68 61 74 20 | 6f 76 65 72 6c 61 79 20 |as that |overlay |
|000045f0| 6e 65 78 74 20 49 44 0d | 13 56 24 20 20 20 20 20 |next ID.|.V$ |
|00004600| 20 e3 20 73 65 63 74 46 | 6f 75 6e 64 25 3d 20 30 | . sectF|ound%= 0|
|00004610| 20 b8 20 63 6f 75 6e 74 | 25 2d 31 0d 13 60 1e 20 | . count|%-1..`. |
|00004620| 20 20 20 20 20 20 20 e7 | 20 6e 6f 74 52 65 61 6c | .| notReal|
|00004630| 53 65 63 74 25 3d a3 20 | 8c 0d 13 6a 35 20 20 20 |Sect%=. |...j5 |
|00004640| 20 20 20 20 20 20 20 69 | 6e 66 6f 25 3d a4 67 65 | i|nfo%=.ge|
|00004650| 74 53 65 63 74 49 6e 66 | 6f 28 54 72 6b 44 65 73 |tSectInf|o(TrkDes|
|00004660| 63 25 2c 73 65 63 74 46 | 6f 75 6e 64 25 29 0d 13 |c%,sectF|ound%)..|
|00004670| 74 37 20 20 20 20 20 20 | 20 20 20 20 e7 20 28 69 |t7 | . (i|
|00004680| 6e 66 6f 25 20 80 20 28 | 69 6c 6c 65 67 61 6c 54 |nfo% . (|illegalT|
|00004690| 72 6b 25 20 84 20 6e 6f | 44 61 74 61 25 29 29 20 |rk% . no|Data%)) |
|000046a0| 3d 20 30 20 8c 0d 13 7e | 4a 20 20 20 20 20 20 20 |= 0 ...~|J |
|000046b0| 20 20 20 20 20 f4 20 6c | 65 67 61 6c 20 49 44 20 | . l|egal ID |
|000046c0| 74 72 6b 20 28 6f 6e 20 | 41 72 63 29 26 20 64 61 |trk (on |Arc)& da|
|000046d0| 74 61 20 61 72 65 61 28 | 69 6e 63 6c 20 64 65 6c |ta area(|incl del|
|000046e0| 64 61 74 61 29 20 74 68 | 65 6e 20 72 65 61 64 0d |data) th|en read.|
|000046f0| 13 88 36 20 20 20 20 20 | 20 20 20 20 20 20 20 61 |..6 | a|
|00004700| 64 64 25 3d a4 67 65 74 | 44 61 74 61 50 74 72 28 |dd%=.get|DataPtr(|
|00004710| 54 72 6b 44 65 73 63 25 | 2c 20 73 65 63 74 46 6f |TrkDesc%|, sectFo|
|00004720| 75 6e 64 25 29 0d 13 92 | 34 20 20 20 20 20 20 20 |und%)...|4 |
|00004730| 20 20 20 20 20 49 44 25 | 3d a4 67 65 74 53 65 63 | ID%|=.getSec|
|00004740| 74 49 44 28 54 72 6b 44 | 65 73 63 25 2c 20 73 65 |tID(TrkD|esc%, se|
|00004750| 63 74 46 6f 75 6e 64 25 | 29 0d 13 9c 27 20 20 20 |ctFound%|)...' |
|00004760| 20 20 20 20 20 20 20 20 | 20 73 65 63 74 25 3d 26 | | sect%=&|
|00004770| 46 46 20 80 20 28 49 44 | 25 20 3e 3e 20 31 36 29 |FF . (ID|% >> 16)|
|00004780| 0d 13 a6 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |...; | |
|00004790| 62 79 74 65 73 25 3d a4 | 67 65 74 44 61 74 61 4c |bytes%=.|getDataL|
|000047a0| 65 6e 67 74 68 28 54 72 | 6b 44 65 73 63 25 2c 20 |ength(Tr|kDesc%, |
|000047b0| 73 65 63 74 46 6f 75 6e | 64 25 29 0d 13 b0 4a 20 |sectFoun|d%)...J |
|000047c0| 20 20 20 20 20 20 20 20 | 20 20 20 f2 6f 70 62 79 | | .opby|
|000047d0| 74 65 73 28 52 65 61 64 | 25 2c 64 72 76 25 2c 74 |tes(Read|%,drv%,t|
|000047e0| 72 6b 25 2c 68 65 61 64 | 25 2c 73 65 63 74 25 2c |rk%,head|%,sect%,|
|000047f0| 62 79 74 65 73 25 2c 64 | 65 6e 73 69 74 79 25 2c |bytes%,d|ensity%,|
|00004800| 61 64 64 25 29 0d 13 ba | 1e 20 20 20 20 20 20 20 |add%)...|. |
|00004810| 20 20 20 20 20 e7 20 72 | 65 73 75 6c 74 25 3c 3e | . r|esult%<>|
|00004820| 30 20 8c 0d 13 c4 4b 20 | 20 20 20 20 20 20 20 20 |0 ....K | |
|00004830| 20 20 20 20 20 f2 72 65 | 61 64 53 65 63 74 45 72 | .re|adSectEr|
|00004840| 72 28 54 72 6b 44 65 73 | 63 25 2c 20 73 65 63 74 |r(TrkDes|c%, sect|
|00004850| 6f 72 46 6f 75 6e 64 25 | 2c 72 65 73 75 6c 74 25 |orFound%|,result%|
|00004860| 2c 6e 6f 74 52 65 61 6c | 53 65 63 74 25 29 0d 13 |,notReal|Sect%)..|
|00004870| ce 11 20 20 20 20 20 20 | 20 20 20 20 20 20 cd 0d |.. | ..|
|00004880| 13 d8 0f 20 20 20 20 20 | 20 20 20 20 20 cc 0d 13 |... | ...|
|00004890| e2 44 20 20 20 20 20 20 | 20 20 20 20 20 20 f4 20 |.D | . |
|000048a0| 6d 61 79 62 65 20 74 68 | 69 73 20 69 73 20 6e 6f |maybe th|is is no|
|000048b0| 74 20 61 20 73 65 63 74 | 6f 72 20 61 74 61 6c 6c |t a sect|or atall|
|000048c0| 20 62 75 74 20 49 44 20 | 70 61 74 74 65 72 6e 20 | but ID |pattern |
|000048d0| 69 73 0d 13 ec 45 20 20 | 20 20 20 20 20 20 20 20 |is...E | |
|000048e0| 20 20 f4 20 70 61 72 74 | 20 6f 66 20 61 20 64 61 | . part| of a da|
|000048f0| 74 61 20 61 72 65 61 2e | 20 41 73 73 75 6d 65 20 |ta area.| Assume |
|00004900| 69 74 20 69 73 20 6e 6f | 74 20 61 20 73 65 63 74 |it is no|t a sect|
|00004910| 6f 72 20 69 66 20 61 0d | 13 f6 40 20 20 20 20 20 |or if a.|..@ |
|00004920| 20 20 20 20 20 20 20 f4 | 20 70 72 65 76 69 6f 75 | .| previou|
|00004930| 73 20 73 65 63 74 6f 72 | 20 68 61 73 20 6c 6f 6e |s sector| has lon|
|00004940| 67 44 61 74 61 20 6f 72 | 20 6e 6f 52 6f 6f 6d 43 |gData or| noRoomC|
|00004950| 52 43 20 73 65 74 2e 0d | 14 00 40 20 20 20 20 20 |RC set..|..@ |
|00004960| 20 20 20 20 20 20 20 f4 | 20 4e 4f 54 20 61 20 46 | .| NOT a F|
|00004970| 4f 4f 4c 20 50 52 4f 4f | 46 20 74 65 73 74 20 62 |OOL PROO|F test b|
|00004980| 75 74 20 70 72 6f 62 61 | 62 6c 79 20 67 6f 6f 64 |ut proba|bly good|
|00004990| 20 65 6e 6f 75 67 68 0d | 14 0a 21 20 20 20 20 20 | enough.|..! |
|000049a0| 20 20 20 20 20 20 20 e7 | 20 73 65 63 74 46 6f 75 | .| sectFou|
|000049b0| 6e 64 25 3c 3e 30 20 8c | 0d 14 14 57 20 20 20 20 |nd%<>0 .|...W |
|000049c0| 20 20 20 20 20 20 20 20 | 20 20 e7 20 28 28 6c 6f | | . ((lo|
|000049d0| 6e 67 44 61 74 61 25 20 | 84 20 6e 6f 52 6f 6f 6d |ngData% |. noRoom|
|000049e0| 43 52 43 25 29 20 80 20 | a4 67 65 74 53 65 63 74 |CRC%) . |.getSect|
|000049f0| 49 6e 66 6f 28 54 72 6b | 44 65 73 63 25 2c 20 73 |Info(Trk|Desc%, s|
|00004a00| 65 63 74 46 6f 75 6e 64 | 25 2d 31 29 29 20 8c 0d |ectFound|%-1)) ..|
|00004a10| 14 1e 22 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.." | |
|00004a20| 20 20 20 6e 6f 74 52 65 | 61 6c 53 65 63 74 25 3d | notRe|alSect%=|
|00004a30| b9 0d 14 28 37 20 20 20 | 20 20 20 20 20 20 20 20 |...(7 | |
|00004a40| 20 20 20 20 20 f2 64 65 | 6c 65 74 65 53 65 63 74 | .de|leteSect|
|00004a50| 28 54 72 6b 44 65 73 63 | 25 2c 20 73 65 63 74 6f |(TrkDesc|%, secto|
|00004a60| 72 46 6f 75 6e 64 25 29 | 0d 14 32 13 20 20 20 20 |rFound%)|..2. |
|00004a70| 20 20 20 20 20 20 20 20 | 20 20 cd 0d 14 3c 11 20 | | ...<. |
|00004a80| 20 20 20 20 20 20 20 20 | 20 20 20 cd 0d 14 46 0f | | ...F.|
|00004a90| 20 20 20 20 20 20 20 20 | 20 20 cd 0d 14 50 0d 20 | | ...P. |
|00004aa0| 20 20 20 20 20 20 20 cd | 0d 14 5a 0b 20 20 20 20 | .|..Z. |
|00004ab0| 20 20 ed 0d 14 64 09 20 | 20 20 20 cd 0d 14 6e 45 | ...d. | ...nE|
|00004ac0| 20 20 20 20 54 72 6b 44 | 65 73 63 25 3f 62 75 66 | TrkD|esc%?buf|
|00004ad0| 4d 75 6c 74 69 53 65 63 | 74 46 6c 67 25 3d 20 6d |MultiSec|tFlg%= m|
|00004ae0| 75 6c 74 69 53 65 63 74 | 46 6c 67 25 20 3a f4 20 |ultiSect|Flg% :. |
|00004af0| 69 6e 20 63 61 73 65 20 | 69 74 73 20 72 65 73 65 |in case |its rese|
|00004b00| 74 0d 14 78 07 20 20 cd | 0d 14 82 14 fd 20 6e 6f |t..x. .|..... no|
|00004b10| 74 52 65 61 6c 53 65 63 | 74 25 3d a3 0d 14 8c 05 |tRealSec|t%=.....|
|00004b20| e1 0d 14 96 04 0d 14 a0 | 42 dd f2 72 65 61 64 53 |........|B..readS|
|00004b30| 65 63 74 45 72 72 28 54 | 72 6b 44 65 73 63 25 2c |ectErr(T|rkDesc%,|
|00004b40| 20 73 65 63 74 6f 72 46 | 6f 75 6e 64 25 2c 20 72 | sectorF|ound%, r|
|00004b50| 65 73 75 6c 74 25 2c 20 | f8 20 6e 6f 74 52 65 61 |esult%, |. notRea|
|00004b60| 6c 53 65 63 74 25 29 0d | 14 aa 40 f4 20 53 70 65 |lSect%).|..@. Spe|
|00004b70| 63 69 61 6c 20 61 63 74 | 69 6f 6e 73 20 6f 6e 20 |cial act|ions on |
|00004b80| 72 65 61 64 20 73 65 63 | 74 6f 72 20 65 72 72 6f |read sec|tor erro|
|00004b90| 72 20 28 65 67 20 53 65 | 63 74 6f 72 20 4e 6f 74 |r (eg Se|ctor Not|
|00004ba0| 20 46 6f 75 6e 64 29 0d | 14 b4 1c ea 20 49 44 25 | Found).|.... ID%|
|00004bb0| 2c 20 63 6f 75 6e 74 25 | 2c 20 73 65 63 74 53 69 |, count%|, sectSi|
|00004bc0| 7a 65 25 0d 14 be 24 e7 | 20 28 72 65 73 75 6c 74 |ze%...$.| (result|
|00004bd0| 25 20 80 20 65 72 72 4e | 6f 74 46 6f 75 6e 64 25 |% . errN|otFound%|
|00004be0| 29 20 3c 3e 30 20 8c 0d | 14 c8 1b 20 20 f4 20 49 |) <>0 ..|... . I|
|00004bf0| 66 20 53 65 63 74 6f 72 | 20 4e 6f 74 20 46 6f 75 |f Sector| Not Fou|
|00004c00| 6e 64 0d 14 d2 2a 20 20 | 49 44 25 3d a4 67 65 74 |nd...* |ID%=.get|
|00004c10| 53 65 63 74 49 44 28 54 | 72 6b 44 65 73 63 25 2c |SectID(T|rkDesc%,|
|00004c20| 20 73 65 63 74 46 6f 75 | 6e 64 25 29 0d 14 dc 31 | sectFou|nd%)...1|
|00004c30| 20 20 e7 20 49 44 25 20 | 3c 3e 20 21 a4 67 65 74 | . ID% |<> !.get|
|00004c40| 49 44 50 74 72 28 54 72 | 6b 44 65 73 63 25 2c 20 |IDPtr(Tr|kDesc%, |
|00004c50| 73 65 63 74 46 6f 75 6e | 64 25 29 20 8c 0d 14 e6 |sectFoun|d%) ....|
|00004c60| 49 20 20 20 20 f4 20 49 | 66 20 63 6f 72 72 75 70 |I . I|f corrup|
|00004c70| 74 20 49 44 20 26 20 4e | 6f 74 20 46 6f 75 6e 64 |t ID & N|ot Found|
|00004c80| 2c 20 63 68 65 63 6b 20 | 66 6f 72 20 61 6c 74 65 |, check |for alte|
|00004c90| 72 6e 61 74 69 76 65 20 | 66 6f 72 20 63 6f 72 72 |rnative |for corr|
|00004ca0| 75 70 74 20 49 44 0d 14 | f0 10 20 20 20 20 c8 8e |upt ID..|.. ..|
|00004cb0| 20 49 44 25 20 ca 0d 14 | fa 34 20 20 20 20 20 20 | ID% ...|.4 |
|00004cc0| c9 20 26 30 31 34 42 30 | 31 31 43 3a 20 49 44 25 |. &014B0|11C: ID%|
|00004cd0| 3d 26 30 31 34 46 30 31 | 31 43 20 3a 6e 6f 74 52 |=&014F01|1C :notR|
|00004ce0| 65 61 6c 53 65 63 74 25 | 3d b9 0d 15 04 34 20 20 |ealSect%|=....4 |
|00004cf0| 20 20 20 20 c9 20 26 30 | 32 42 37 30 30 32 39 3a | . &0|2B70029:|
|00004d00| 20 49 44 25 3d 26 30 32 | 44 35 30 30 32 39 20 3a | ID%=&02|D50029 :|
|00004d10| 6e 6f 74 52 65 61 6c 53 | 65 63 74 25 3d b9 0d 15 |notRealS|ect%=...|
|00004d20| 0e 34 20 20 20 20 20 20 | c9 20 26 30 32 42 34 30 |.4 |. &02B40|
|00004d30| 30 32 39 3a 20 49 44 25 | 3d 26 30 33 46 43 30 30 |029: ID%|=&03FC00|
|00004d40| 32 39 20 3a 6e 6f 74 52 | 65 61 6c 53 65 63 74 25 |29 :notR|ealSect%|
|00004d50| 3d b9 0d 15 18 34 20 20 | 20 20 20 20 c9 20 26 30 |=....4 | . &0|
|00004d60| 30 35 35 30 31 32 39 3a | 20 49 44 25 3d 26 30 30 |0550129:| ID%=&00|
|00004d70| 37 37 30 31 32 39 20 3a | 6e 6f 74 52 65 61 6c 53 |770129 :|notRealS|
|00004d80| 65 63 74 25 3d b9 0d 15 | 22 34 20 20 20 20 20 20 |ect%=...|"4 |
|00004d90| c9 20 26 30 30 36 34 30 | 31 32 39 3a 20 49 44 25 |. &00640|129: ID%|
|00004da0| 3d 26 30 30 41 34 30 31 | 32 39 20 3a 6e 6f 74 52 |=&00A401|29 :notR|
|00004db0| 65 61 6c 53 65 63 74 25 | 3d b9 0d 15 2c 34 20 20 |ealSect%|=...,4 |
|00004dc0| 20 20 20 20 c9 20 26 30 | 31 37 37 30 31 32 39 3a | . &0|1770129:|
|00004dd0| 20 49 44 25 3d 26 30 31 | 42 37 30 31 32 39 20 3a | ID%=&01|B70129 :|
|00004de0| 6e 6f 74 52 65 61 6c 53 | 65 63 74 25 3d b9 0d 15 |notRealS|ect%=...|
|00004df0| 36 34 20 20 20 20 20 20 | c9 20 26 30 32 36 41 30 |64 |. &026A0|
|00004e00| 31 32 39 3a 20 49 44 25 | 3d 26 30 32 44 36 30 31 |129: ID%|=&02D601|
|00004e10| 32 39 20 3a 6e 6f 74 52 | 65 61 6c 53 65 63 74 25 |29 :notR|ealSect%|
|00004e20| 3d b9 0d 15 40 34 20 20 | 20 20 20 20 c9 20 26 30 |=...@4 | . &0|
|00004e30| 32 46 41 30 31 32 39 3a | 20 49 44 25 3d 26 30 33 |2FA0129:| ID%=&03|
|00004e40| 35 36 30 31 32 39 20 3a | 6e 6f 74 52 65 61 6c 53 |560129 :|notRealS|
|00004e50| 65 63 74 25 3d b9 0d 15 | 4a 34 20 20 20 20 20 20 |ect%=...|J4 |
|00004e60| c9 20 26 30 33 36 36 30 | 31 32 39 3a 20 49 44 25 |. &03660|129: ID%|
|00004e70| 3d 26 30 33 41 36 30 31 | 32 39 20 3a 6e 6f 74 52 |=&03A601|29 :notR|
|00004e80| 65 61 6c 53 65 63 74 25 | 3d b9 0d 15 54 34 20 20 |ealSect%|=...T4 |
|00004e90| 20 20 20 20 c9 20 26 30 | 32 42 35 30 31 32 39 3a | . &0|2B50129:|
|00004ea0| 20 49 44 25 3d 26 30 33 | 46 44 30 31 32 39 20 3a | ID%=&03|FD0129 :|
|00004eb0| 6e 6f 74 52 65 61 6c 53 | 65 63 74 25 3d b9 0d 15 |notRealS|ect%=...|
|00004ec0| 5e 34 20 20 20 20 20 20 | c9 20 26 30 32 37 35 30 |^4 |. &02750|
|00004ed0| 31 32 39 3a 20 49 44 25 | 3d 26 30 32 42 35 30 31 |129: ID%|=&02B501|
|00004ee0| 32 39 20 3a 6e 6f 74 52 | 65 61 6c 53 65 63 74 25 |29 :notR|ealSect%|
|00004ef0| 3d b9 0d 15 68 42 20 20 | 20 20 20 20 f4 20 6e 62 |=...hB | . nb|
|00004f00| 20 6c 61 73 74 20 6f 6e | 65 20 6d 75 73 74 20 62 | last on|e must b|
|00004f10| 65 20 61 66 74 65 72 20 | 70 65 6e 75 6c 74 69 6d |e after |penultim|
|00004f20| 61 74 65 20 6f 6e 65 20 | 28 61 73 20 62 6f 74 68 |ate one |(as both|
|00004f30| 20 61 72 65 0d 15 72 39 | 20 20 20 20 20 20 f4 20 | are..r9| . |
|00004f40| 61 6c 74 65 72 6e 61 74 | 69 76 65 20 70 61 74 74 |alternat|ive patt|
|00004f50| 65 72 6e 73 20 66 6f 72 | 20 74 68 65 20 73 61 6d |erns for| the sam|
|00004f60| 65 20 63 6f 72 72 75 70 | 74 20 49 44 29 0d 15 7c |e corrup|t ID)..||
|00004f70| 09 20 20 20 20 cb 0d 15 | 86 07 20 20 cd 0d 15 90 |. ...|.. ....|
|00004f80| 18 20 20 e7 20 6e 6f 74 | 52 65 61 6c 53 65 63 74 |. . not|RealSect|
|00004f90| 25 3d b9 20 8c 0d 15 9a | 3c 20 20 20 20 f4 20 53 |%=. ....|< . S|
|00004fa0| 65 63 74 6f 72 20 4e 6f | 74 20 46 6f 75 6e 64 20 |ector No|t Found |
|00004fb0| 41 4e 44 20 63 6f 72 72 | 75 70 74 20 49 44 20 68 |AND corr|upt ID h|
|00004fc0| 61 73 20 61 6e 20 61 6c | 74 65 72 6e 61 74 69 76 |as an al|ternativ|
|00004fd0| 65 0d 15 a4 33 20 20 20 | 20 f4 20 73 6f 20 73 65 |e...3 | . so se|
|00004fe0| 74 20 73 74 6f 72 65 64 | 20 76 61 6c 75 65 20 6f |t stored| value o|
|00004ff0| 66 20 49 44 25 20 74 6f | 20 61 6c 74 65 72 6e 61 |f ID% to| alterna|
|00005000| 74 69 76 65 0d 15 ae 2d | 20 20 20 20 f2 73 65 74 |tive...-| .set|
|00005010| 53 65 63 74 49 44 28 54 | 72 6b 44 65 73 63 25 2c |SectID(T|rkDesc%,|
|00005020| 20 73 65 63 74 46 6f 75 | 6e 64 25 2c 20 49 44 25 | sectFou|nd%, ID%|
|00005030| 29 0d 15 b8 07 20 20 cc | 0d 15 c2 40 20 20 20 20 |).... .|...@ |
|00005040| f4 20 53 65 63 74 6f 72 | 20 4e 6f 74 20 46 6f 75 |. Sector| Not Fou|
|00005050| 6e 64 20 41 4e 44 20 6e | 6f 74 20 61 6e 20 61 6c |nd AND n|ot an al|
|00005060| 74 65 72 6e 61 74 69 76 | 65 20 66 6f 72 20 63 6f |ternativ|e for co|
|00005070| 72 72 75 70 74 20 49 44 | 0d 15 cc 43 20 20 20 20 |rrupt ID|...C |
|00005080| f4 20 73 6f 20 72 65 6d | 6f 76 65 20 73 65 63 74 |. so rem|ove sect|
|00005090| 6f 72 20 66 72 6f 6d 20 | 74 72 61 63 6b 20 64 65 |or from |track de|
|000050a0| 73 63 72 69 70 74 6f 72 | 2c 20 61 73 20 69 74 20 |scriptor|, as it |
|000050b0| 69 73 20 4e 4f 54 20 61 | 20 49 44 0d 15 d6 16 20 |is NOT a| ID.... |
|000050c0| 20 20 20 6e 6f 74 52 65 | 61 6c 53 65 63 74 25 3d | notRe|alSect%=|
|000050d0| b9 0d 15 e0 2b 20 20 20 | 20 f2 64 65 6c 65 74 65 |....+ | .delete|
|000050e0| 53 65 63 74 28 54 72 6b | 44 65 73 63 25 2c 20 73 |Sect(Trk|Desc%, s|
|000050f0| 65 63 74 6f 72 46 6f 75 | 6e 64 25 29 0d 15 ea 07 |ectorFou|nd%)....|
|00005100| 20 20 cd 0d 15 f4 05 cc | 0d 15 fe 44 20 20 f4 20 | ......|...D . |
|00005110| 66 6c 61 67 20 64 69 73 | 63 20 65 72 72 6f 72 20 |flag dis|c error |
|00005120| 6f 6e 20 73 65 63 74 6f | 72 2c 20 69 6e 20 73 65 |on secto|r, in se|
|00005130| 63 74 20 69 6e 66 6f 2c | 20 69 66 20 73 65 63 74 |ct info,| if sect|
|00005140| 6f 72 20 77 61 73 20 66 | 6f 75 6e 64 0d 16 08 37 |or was f|ound...7|
|00005150| 20 20 f2 61 64 64 53 65 | 63 74 49 6e 66 6f 28 54 | .addSe|ctInfo(T|
|00005160| 72 6b 44 65 73 63 25 2c | 20 73 65 63 74 46 6f 75 |rkDesc%,| sectFou|
|00005170| 6e 64 25 2c 20 72 65 73 | 75 6c 74 25 20 80 20 26 |nd%, res|ult% . &|
|00005180| 46 46 29 0d 16 12 05 cd | 0d 16 1c 05 e1 0d 16 26 |FF).....|.......&|
|00005190| 04 0d 16 30 28 dd f2 64 | 65 6c 65 74 65 53 65 63 |...0(..d|eleteSec|
|000051a0| 74 28 54 72 6b 44 65 73 | 63 25 2c 20 73 65 63 74 |t(TrkDes|c%, sect|
|000051b0| 6f 72 46 6f 75 6e 64 25 | 29 0d 16 3a 3c f4 20 74 |orFound%|)..:<. t|
|000051c0| 68 69 73 20 77 61 73 20 | 6e 6f 74 20 61 20 73 65 |his was |not a se|
|000051d0| 63 74 6f 72 20 62 75 74 | 20 70 61 72 74 20 6f 66 |ctor but| part of|
|000051e0| 20 61 20 64 61 74 61 20 | 61 72 65 61 20 28 6f 72 | a data |area (or|
|000051f0| 20 67 61 70 29 0d 16 44 | 36 f4 20 73 6f 20 72 65 | gap)..D|6. so re|
|00005200| 6d 6f 76 65 20 73 65 63 | 74 6f 72 20 66 72 6f 6d |move sec|tor from|
|00005210| 20 74 72 61 63 6b 20 64 | 65 73 63 72 69 70 74 6f | track d|escripto|
|00005220| 72 20 61 6e 64 20 72 65 | 73 65 74 0d 16 4e 3c f4 |r and re|set..N<.|
|00005230| 20 61 6e 79 20 6c 6f 6e | 67 44 61 74 61 20 6f 72 | any lon|gData or|
|00005240| 20 6e 6f 52 6f 6f 6d 43 | 52 43 20 69 6e 20 74 68 | noRoomC|RC in th|
|00005250| 65 20 70 72 65 76 69 6f | 75 73 20 73 65 63 74 6f |e previo|us secto|
|00005260| 72 20 69 6e 66 6f 2e 0d | 16 58 1f ea 20 49 25 2c |r info..|.X.. I%,|
|00005270| 20 4a 25 2c 20 69 6e 66 | 6f 53 69 7a 65 25 2c 20 | J%, inf|oSize%, |
|00005280| 63 6f 75 6e 74 25 0d 16 | 62 22 63 6f 75 6e 74 25 |count%..|b"count%|
|00005290| 20 3d 20 54 72 6b 44 65 | 73 63 25 3f 62 75 66 4e | = TrkDe|sc%?bufN|
|000052a0| 75 6d 62 53 65 63 74 25 | 0d 16 6c 25 69 6e 66 6f |umbSect%|..l%info|
|000052b0| 53 69 7a 65 25 3d 20 31 | 20 3c 3c 20 4c 6f 67 32 |Size%= 1| << Log2|
|000052c0| 53 65 63 74 49 6e 66 6f | 53 69 7a 65 25 0d 16 76 |SectInfo|Size%..v|
|000052d0| 35 4a 25 3d 54 72 6b 44 | 65 73 63 25 20 2b 20 62 |5J%=TrkD|esc% + b|
|000052e0| 75 66 53 65 63 74 44 65 | 73 63 25 20 2b 20 73 65 |ufSectDe|sc% + se|
|000052f0| 63 74 46 6f 75 6e 64 25 | 2a 69 6e 66 6f 53 69 7a |ctFound%|*infoSiz|
|00005300| 65 25 0d 16 80 32 e3 20 | 49 25 3d 30 20 b8 20 28 |e%...2. |I%=0 . (|
|00005310| 63 6f 75 6e 74 25 2d 31 | 2d 73 65 63 74 46 6f 75 |count%-1|-sectFou|
|00005320| 6e 64 25 29 2a 69 6e 66 | 6f 53 69 7a 65 25 2d 31 |nd%)*inf|oSize%-1|
|00005330| 20 88 20 34 0d 16 8a 1d | 20 20 4a 25 21 49 25 3d | . 4....| J%!I%=|
|00005340| 4a 25 21 28 49 25 2b 69 | 6e 66 6f 53 69 7a 65 25 |J%!(I%+i|nfoSize%|
|00005350| 29 0d 16 94 05 ed 0d 16 | 9e 15 e7 20 73 65 63 74 |).......|... sect|
|00005360| 46 6f 75 6e 64 25 3c 3e | 30 20 8c 0d 16 a8 6d 20 |Found%<>|0 ....m |
|00005370| 20 f2 73 65 74 53 65 63 | 74 49 6e 66 6f 28 54 72 | .setSec|tInfo(Tr|
|00005380| 6b 44 65 73 63 25 2c 20 | 73 65 63 74 46 6f 75 6e |kDesc%, |sectFoun|
|00005390| 64 25 2d 31 2c a4 67 65 | 74 53 65 63 74 49 6e 66 |d%-1,.ge|tSectInf|
|000053a0| 6f 28 54 72 6b 44 65 73 | 63 25 2c 20 73 65 63 74 |o(TrkDes|c%, sect|
|000053b0| 46 6f 75 6e 64 25 2d 31 | 29 20 80 20 28 ac 28 6c |Found%-1|) . (.(l|
|000053c0| 6f 6e 67 44 61 74 61 25 | 20 84 20 6e 6f 52 6f 6f |ongData%| . noRoo|
|000053d0| 6d 43 52 43 25 29 29 29 | 0d 16 b2 05 cd 0d 16 bc |mCRC%)))|........|
|000053e0| 39 54 72 6b 44 65 73 63 | 25 3f 62 75 66 4e 75 6d |9TrkDesc|%?bufNum|
|000053f0| 62 53 65 63 74 25 20 2d | 3d 20 31 20 20 3a f4 20 |bSect% -|= 1 :. |
|00005400| 64 65 63 72 65 6d 65 6e | 74 20 73 74 6f 72 65 64 |decremen|t stored|
|00005410| 20 63 6f 75 6e 74 0d 16 | c6 05 e1 0d 16 d0 04 0d | count..|........|
|00005420| 16 da 47 20 20 f4 20 69 | 66 20 74 72 61 63 6b 20 |..G . i|f track |
|00005430| 69 73 20 69 6e 63 6f 72 | 72 65 63 74 20 4f 52 20 |is incor|rect OR |
|00005440| 68 65 61 64 2c 20 73 65 | 63 74 6f 72 2c 20 6f 72 |head, se|ctor, or|
|00005450| 20 73 65 63 74 53 69 7a | 65 20 61 72 65 20 3d 26 | sectSiz|e are =&|
|00005460| 46 35 2d 26 46 37 0d 16 | e4 43 20 20 f4 20 74 68 |F5-&F7..|.C . th|
|00005470| 65 6e 20 75 6e 73 65 74 | 20 6d 75 6c 74 69 53 65 |en unset| multiSe|
|00005480| 63 74 46 6c 67 25 2c 20 | 73 65 74 20 73 65 63 74 |ctFlg%, |set sect|
|00005490| 6f 72 20 69 6e 66 6f 20 | 61 6e 64 20 70 72 69 6e |or info |and prin|
|000054a0| 74 20 6d 65 73 73 61 67 | 65 0d 16 ee 44 20 20 f4 |t messag|e...D .|
|000054b0| 20 61 73 73 75 6d 65 73 | 20 49 44 20 68 61 73 20 | assumes| ID has |
|000054c0| 62 65 65 6e 20 73 61 76 | 65 64 20 28 61 66 74 65 |been sav|ed (afte|
|000054d0| 72 20 61 6e 79 20 72 65 | 6d 61 6b 69 6e 67 20 6f |r any re|making o|
|000054e0| 66 20 63 6f 72 72 75 70 | 74 20 49 44 29 0d 16 f8 |f corrup|t ID)...|
|000054f0| 40 dd f2 74 65 73 74 49 | 6c 6c 65 67 61 6c 49 64 |@..testI|llegalId|
|00005500| 28 54 72 6b 44 65 73 63 | 25 2c 20 63 6f 75 6e 74 |(TrkDesc|%, count|
|00005510| 25 2c 20 64 65 6e 73 69 | 74 79 25 2c 20 f8 20 6d |%, densi|ty%, . m|
|00005520| 75 6c 74 69 53 65 63 74 | 46 6c 67 25 29 0d 17 02 |ultiSect|Flg%)...|
|00005530| 1c ea 20 49 44 25 2c 20 | 49 25 2c 20 54 25 2c 20 |.. ID%, |I%, T%, |
|00005540| 6c 6f 77 25 2c 20 68 69 | 25 0d 17 0c 24 49 44 25 |low%, hi|%...$ID%|
|00005550| 3d a4 67 65 74 53 65 63 | 74 49 44 28 54 72 6b 44 |=.getSec|tID(TrkD|
|00005560| 65 73 63 25 2c 20 63 6f | 75 6e 74 25 29 0d 17 16 |esc%, co|unt%)...|
|00005570| 27 e7 20 28 49 44 25 20 | 80 20 26 46 46 29 20 3c |'. (ID% |. &FF) <|
|00005580| 3e 20 54 72 6b 44 65 73 | 63 25 3f 62 75 66 54 72 |> TrkDes|c%?bufTr|
|00005590| 6b 25 20 8c 0d 17 20 33 | 20 20 f4 20 49 44 27 73 |k% ... 3| . ID's|
|000055a0| 20 54 72 6b 20 69 73 20 | 6e 6f 74 20 72 65 61 6c | Trk is |not real|
|000055b0| 20 74 72 61 63 6b 20 28 | 69 6c 6c 65 67 61 6c 20 | track (|illegal |
|000055c0| 6f 6e 20 41 72 63 29 0d | 17 2a 15 20 20 6d 75 6c |on Arc).|.*. mul|
|000055d0| 74 69 53 65 63 74 46 6c | 67 25 3d a3 0d 17 34 31 |tiSectFl|g%=...41|
|000055e0| 20 20 f2 61 64 64 53 65 | 63 74 49 6e 66 6f 28 54 | .addSe|ctInfo(T|
|000055f0| 72 6b 44 65 73 63 25 2c | 20 63 6f 75 6e 74 25 2c |rkDesc%,| count%,|
|00005600| 20 69 6c 6c 65 67 61 6c | 54 72 6b 25 29 0d 17 3e | illegal|Trk%)..>|
|00005610| 05 cd 0d 17 48 2f e7 20 | 28 28 49 44 25 20 3e 3e |....H/. |((ID% >>|
|00005620| 20 38 29 20 80 20 26 46 | 46 29 20 3c 3e 20 54 72 | 8) . &F|F) <> Tr|
|00005630| 6b 44 65 73 63 25 3f 62 | 75 66 48 65 61 64 25 20 |kDesc%?b|ufHead% |
|00005640| 8c 0d 17 52 29 20 20 6d | 75 6c 74 69 53 65 63 74 |...R) m|ultiSect|
|00005650| 46 6c 67 25 3d a3 3a 20 | f4 20 62 65 69 6e 67 20 |Flg%=.: |. being |
|00005660| 6f 76 65 72 20 73 61 66 | 65 3f 0d 17 5c 0f 20 20 |over saf|e?..\. |
|00005670| e7 20 64 65 62 75 67 20 | 8c 0d 17 66 31 20 20 20 |. debug |...f1 |
|00005680| 20 f4 20 2a 2a 2a 2a 20 | 63 61 6e 20 74 68 69 73 | . **** |can this|
|00005690| 20 62 65 20 64 6f 6e 65 | 20 65 6c 73 65 77 68 65 | be done| elsewhe|
|000056a0| 72 65 20 2a 2a 2a 2a 3f | 3f 3f 0d 17 70 22 20 20 |re ****?|??..p" |
|000056b0| 20 20 f2 70 72 69 6e 74 | 49 44 28 54 72 6b 44 65 | .print|ID(TrkDe|
|000056c0| 73 63 25 2c 20 63 6f 75 | 6e 74 25 29 0d 17 7a 29 |sc%, cou|nt%)..z)|
|000056d0| 20 20 20 20 f1 22 48 65 | 61 64 20 69 6e 63 6f 72 | ."He|ad incor|
|000056e0| 72 65 63 74 2c 20 62 75 | 74 20 61 63 63 65 70 74 |rect, bu|t accept|
|000056f0| 61 62 6c 65 22 0d 17 84 | 07 20 20 cd 0d 17 8e 05 |able"...|. .....|
|00005700| cd 0d 17 98 24 f2 67 65 | 74 49 6c 6c 65 67 61 6c |....$.ge|tIllegal|
|00005710| 28 64 65 6e 73 69 74 79 | 25 2c 20 6c 6f 77 25 2c |(density|%, low%,|
|00005720| 20 68 69 25 29 0d 17 a2 | 0e e3 20 49 25 3d 31 20 | hi%)...|.. I%=1 |
|00005730| b8 20 33 0d 17 ac 14 20 | 20 54 25 3d 28 49 44 25 |. 3.... | T%=(ID%|
|00005740| 20 80 20 26 46 46 29 0d | 17 b6 24 20 20 e7 20 28 | . &FF).|..$ . (|
|00005750| 54 25 20 3e 3d 20 6c 6f | 77 25 29 20 80 20 28 54 |T% >= lo|w%) . (T|
|00005760| 25 20 3c 3d 20 68 69 25 | 29 20 8c 0d 17 c0 3d 20 |% <= hi%|) ....= |
|00005770| 20 20 20 f4 20 49 20 63 | 61 6e 27 74 20 77 72 69 | . I c|an't wri|
|00005780| 74 65 20 49 44 20 61 73 | 20 69 74 20 68 61 73 20 |te ID as| it has |
|00005790| 69 6c 6c 65 67 61 6c 20 | 77 72 69 74 65 54 72 61 |illegal |writeTra|
|000057a0| 63 6b 20 62 79 74 65 73 | 0d 17 ca 17 20 20 20 20 |ck bytes|.... |
|000057b0| 6d 75 6c 74 69 53 65 63 | 74 46 6c 67 25 3d a3 0d |multiSec|tFlg%=..|
|000057c0| 17 d4 35 20 20 20 20 f2 | 61 64 64 53 65 63 74 49 |..5 .|addSectI|
|000057d0| 6e 66 6f 28 54 72 6b 44 | 65 73 63 25 2c 20 63 6f |nfo(TrkD|esc%, co|
|000057e0| 75 6e 74 25 2c 20 69 6c | 6c 65 67 61 6c 49 44 62 |unt%, il|legalIDb|
|000057f0| 79 74 25 29 0d 17 de 07 | 20 20 cd 0d 17 e8 14 20 |yt%)....| ..... |
|00005800| 20 49 44 25 3d 28 49 44 | 25 20 3e 3e 20 38 29 0d | ID%=(ID|% >> 8).|
|00005810| 17 f2 05 ed 0d 17 fc 05 | e1 0d 18 06 04 0d 18 10 |........|........|
|00005820| 3e 20 20 20 f4 20 46 6f | 72 20 65 61 63 68 20 73 |> . Fo|r each s|
|00005830| 65 63 74 6f 72 20 73 65 | 74 20 4c 65 6e 67 74 68 |ector se|t Length|
|00005840| 20 6f 66 20 6d 61 78 20 | 72 65 61 64 20 64 61 74 | of max |read dat|
|00005850| 61 20 74 72 61 6e 73 66 | 65 72 2e 0d 18 1a 46 20 |a transf|er....F |
|00005860| 20 20 f4 20 49 6e 20 63 | 61 73 65 20 6f 66 20 70 | . In c|ase of p|
|00005870| 72 6f 74 65 63 74 65 64 | 20 64 69 73 63 2c 20 65 |rotected| disc, e|
|00005880| 6e 73 75 72 65 20 69 74 | 20 63 61 6e 6e 6f 74 20 |nsure it| cannot |
|00005890| 6f 76 65 72 77 72 69 74 | 65 20 6e 65 78 74 20 49 |overwrit|e next I|
|000058a0| 44 0d 18 24 2f 20 20 20 | f4 20 61 72 6f 75 6e 64 |D..$/ |. around|
|000058b0| 20 74 72 61 63 6b 20 28 | 61 63 74 75 61 6c 6c 79 | track (|actually|
|000058c0| 20 27 6e 65 78 74 20 49 | 44 20 2d 20 34 27 29 2e | 'next I|D - 4').|
|000058d0| 0d 18 2e 49 20 20 20 f4 | 20 54 68 65 20 73 65 74 |...I .| The set|
|000058e0| 20 4c 65 6e 67 74 68 20 | 77 69 6c 6c 20 61 6c 73 | Length |will als|
|000058f0| 6f 20 62 65 20 75 73 65 | 64 20 64 75 72 69 6e 67 |o be use|d during|
|00005900| 20 61 6e 79 20 64 61 74 | 61 20 61 72 65 61 20 77 | any dat|a area w|
|00005910| 72 69 74 65 2c 20 42 55 | 54 0d 18 38 47 20 20 20 |rite, BU|T..8G |
|00005920| f4 20 49 66 20 61 6e 79 | 20 73 65 63 74 6f 72 20 |. If any| sector |
|00005930| 77 72 69 74 65 20 64 61 | 74 61 20 6d 69 67 68 74 |write da|ta might|
|00005940| 20 6f 76 65 72 77 72 69 | 74 65 20 27 6e 65 78 74 | overwri|te 'next|
|00005950| 20 49 44 20 2d 20 34 27 | 20 28 69 65 20 67 61 70 | ID - 4'| (ie gap|
|00005960| 0d 18 42 46 20 20 20 f4 | 20 66 72 6f 6d 20 65 6e |..BF .| from en|
|00005970| 64 20 6f 66 20 64 61 74 | 61 20 74 6f 20 27 6e 65 |d of dat|a to 'ne|
|00005980| 78 74 20 49 44 20 2d 20 | 34 27 20 69 73 20 6c 65 |xt ID - |4' is le|
|00005990| 73 73 20 74 68 61 6e 20 | 35 20 62 79 74 65 73 29 |ss than |5 bytes)|
|000059a0| 2c 20 74 68 65 6e 0d 18 | 4c 46 20 20 20 f4 20 73 |, then..|LF . s|
|000059b0| 65 74 20 4c 6f 6e 67 20 | 64 61 74 61 20 66 6c 61 |et Long |data fla|
|000059c0| 67 20 61 6e 64 20 75 6e | 73 65 74 20 6d 75 6c 74 |g and un|set mult|
|000059d0| 69 73 65 63 74 6f 72 20 | 66 6c 61 67 2e 20 46 75 |isector |flag. Fu|
|000059e0| 72 74 68 65 72 6d 6f 72 | 65 20 69 66 0d 18 56 42 |rthermor|e if..VB|
|000059f0| 20 20 20 f4 20 74 68 65 | 72 65 20 69 73 20 6e 6f | . the|re is no|
|00005a00| 74 20 65 76 65 6e 20 72 | 6f 6f 6d 20 66 6f 72 20 |t even r|oom for |
|00005a10| 61 20 27 66 6f 72 6d 61 | 74 20 67 65 6e 65 72 61 |a 'forma|t genera|
|00005a20| 74 65 64 20 43 52 43 27 | 2c 20 61 6c 73 6f 0d 18 |ted CRC'|, also..|
|00005a30| 60 1e 20 20 20 f4 20 73 | 65 74 20 6e 6f 2d 52 6f |`. . s|et no-Ro|
|00005a40| 6f 6d 2d 43 52 43 20 66 | 6c 61 67 2e 0d 18 6a 33 |om-CRC f|lag...j3|
|00005a50| dd f2 73 65 74 4c 65 6e | 67 74 68 73 28 54 72 6b |..setLen|gths(Trk|
|00005a60| 44 65 73 63 25 2c 20 63 | 6f 75 6e 74 25 2c 20 f8 |Desc%, c|ount%, .|
|00005a70| 20 6d 75 6c 74 69 53 65 | 63 74 46 6c 67 25 29 0d | multiSe|ctFlg%).|
|00005a80| 18 74 42 ea 20 66 6f 6c | 6c 6f 77 69 6e 67 49 44 |.tB. fol|lowingID|
|00005a90| 61 64 64 25 2c 20 73 65 | 63 74 46 6f 75 6e 64 25 |add%, se|ctFound%|
|00005aa0| 2c 20 62 79 74 65 73 25 | 2c 20 61 64 64 25 2c 20 |, bytes%|, add%, |
|00005ab0| 49 44 61 64 64 25 2c 20 | 67 61 70 25 2c 20 49 44 |IDadd%, |gap%, ID|
|00005ac0| 25 0d 18 7e 0e ea 20 64 | 65 6e 73 69 74 79 25 0d |%..~.. d|ensity%.|
|00005ad0| 18 88 25 64 65 6e 73 69 | 74 79 25 3d 20 54 72 6b |..%densi|ty%= Trk|
|00005ae0| 44 65 73 63 25 3f 62 75 | 66 54 72 6b 44 65 6e 73 |Desc%?bu|fTrkDens|
|00005af0| 69 74 79 25 0d 18 92 2d | 66 6f 6c 6c 6f 77 69 6e |ity%...-|followin|
|00005b00| 67 49 44 61 64 64 25 3d | 54 72 6b 44 65 73 63 25 |gIDadd%=|TrkDesc%|
|00005b10| 21 62 75 66 45 6e 64 56 | 61 6c 69 64 44 61 74 61 |!bufEndV|alidData|
|00005b20| 25 0d 18 9c 23 e3 20 73 | 65 63 74 46 6f 75 6e 64 |%...#. s|ectFound|
|00005b30| 25 3d 20 63 6f 75 6e 74 | 25 2d 31 20 b8 20 30 20 |%= count|%-1 . 0 |
|00005b40| 88 20 2d 31 0d 18 a6 2c | 20 20 49 44 61 64 64 25 |. -1...,| IDadd%|
|00005b50| 3d a4 67 65 74 49 44 50 | 74 72 28 54 72 6b 44 65 |=.getIDP|tr(TrkDe|
|00005b60| 73 63 25 2c 20 73 65 63 | 74 46 6f 75 6e 64 25 29 |sc%, sec|tFound%)|
|00005b70| 0d 18 b0 2c 20 20 61 64 | 64 25 3d a4 67 65 74 44 |..., ad|d%=.getD|
|00005b80| 61 74 61 50 74 72 28 54 | 72 6b 44 65 73 63 25 2c |ataPtr(T|rkDesc%,|
|00005b90| 20 73 65 63 74 46 6f 75 | 6e 64 25 29 0d 18 ba 2a | sectFou|nd%)...*|
|00005ba0| 20 20 49 44 25 3d a4 67 | 65 74 53 65 63 74 49 44 | ID%=.g|etSectID|
|00005bb0| 28 54 72 6b 44 65 73 63 | 25 2c 20 73 65 63 74 46 |(TrkDesc|%, sectF|
|00005bc0| 6f 75 6e 64 25 29 0d 18 | c4 28 20 20 62 79 74 65 |ound%)..|.( byte|
|00005bd0| 73 25 3d 31 20 3c 3c 20 | 28 37 2b 20 28 28 49 44 |s%=1 << |(7+ ((ID|
|00005be0| 25 20 3e 3e 20 32 34 29 | 20 80 20 33 29 29 0d 18 |% >> 24)| . 3))..|
|00005bf0| ce 30 20 20 67 61 70 25 | 20 3d 20 28 66 6f 6c 6c |.0 gap%| = (foll|
|00005c00| 6f 77 69 6e 67 49 44 61 | 64 64 25 2d 34 29 20 2d |owingIDa|dd%-4) -|
|00005c10| 20 28 61 64 64 25 2b 62 | 79 74 65 73 25 29 0d 18 | (add%+b|ytes%)..|
|00005c20| d8 12 20 20 e7 20 67 61 | 70 25 20 3c 20 35 20 8c |.. . ga|p% < 5 .|
|00005c30| 0d 18 e2 35 20 20 20 20 | f2 61 64 64 53 65 63 74 |...5 |.addSect|
|00005c40| 49 6e 66 6f 28 54 72 6b | 44 65 73 63 25 2c 20 73 |Info(Trk|Desc%, s|
|00005c50| 65 63 74 46 6f 75 6e 64 | 25 2c 20 6c 6f 6e 67 44 |ectFound|%, longD|
|00005c60| 61 74 61 25 29 0d 18 ec | 17 20 20 20 20 6d 75 6c |ata%)...|. mul|
|00005c70| 74 69 53 65 63 74 46 6c | 67 25 3d a3 0d 18 f6 14 |tiSectFl|g%=.....|
|00005c80| 20 20 20 20 e7 20 67 61 | 70 25 20 3c 20 32 20 8c | . ga|p% < 2 .|
|00005c90| 0d 19 00 38 20 20 20 20 | 20 20 f2 61 64 64 53 65 |...8 | .addSe|
|00005ca0| 63 74 49 6e 66 6f 28 54 | 72 6b 44 65 73 63 25 2c |ctInfo(T|rkDesc%,|
|00005cb0| 20 73 65 63 74 46 6f 75 | 6e 64 25 2c 20 6e 6f 52 | sectFou|nd%, noR|
|00005cc0| 6f 6f 6d 43 52 43 25 29 | 0d 19 0a 16 20 20 20 20 |oomCRC%)|.... |
|00005cd0| 20 20 e7 20 67 61 70 25 | 20 3c 20 30 20 8c 0d 19 | . gap%| < 0 ...|
|00005ce0| 14 4a 20 20 20 20 20 20 | 20 20 62 79 74 65 73 25 |.J | bytes%|
|00005cf0| 20 2b 3d 20 67 61 70 25 | 20 20 20 3a f4 20 72 65 | += gap%| :. re|
|00005d00| 64 75 63 65 20 74 72 61 | 6e 73 66 65 72 20 73 69 |duce tra|nsfer si|
|00005d10| 7a 65 20 69 66 20 69 74 | 20 65 78 74 65 6e 64 73 |ze if it| extends|
|00005d20| 20 74 6f 20 49 44 2d 34 | 0d 19 1e 0b 20 20 20 20 | to ID-4|.... |
|00005d30| 20 20 cd 0d 19 28 09 20 | 20 20 20 cd 0d 19 32 07 | ...(. | ...2.|
|00005d40| 20 20 cd 0d 19 3c 32 20 | 20 f2 73 65 74 44 61 74 | ...<2 | .setDat|
|00005d50| 61 4c 65 6e 67 74 68 28 | 54 72 6b 44 65 73 63 25 |aLength(|TrkDesc%|
|00005d60| 2c 20 73 65 63 74 46 6f | 75 6e 64 25 2c 20 62 79 |, sectFo|und%, by|
|00005d70| 74 65 73 25 29 0d 19 46 | 1c 20 20 66 6f 6c 6c 6f |tes%)..F|. follo|
|00005d80| 77 69 6e 67 49 44 61 64 | 64 25 3d 49 44 61 64 64 |wingIDad|d%=IDadd|
|00005d90| 25 0d 19 50 05 ed 0d 19 | 5a 05 e1 0d 19 64 04 0d |%..P....|Z....d..|
|00005da0| 19 6e 4b 20 20 20 f4 20 | 66 69 6e 64 20 69 66 20 |.nK . |find if |
|00005db0| 73 65 63 74 6f 72 20 6e | 75 6d 62 65 72 73 20 61 |sector n|umbers a|
|00005dc0| 72 65 20 63 6f 6e 73 65 | 63 75 74 69 76 65 2c 20 |re conse|cutive, |
|00005dd0| 61 6e 64 20 61 6c 6c 20 | 68 61 76 65 20 74 68 65 |and all |have the|
|00005de0| 20 73 61 6d 65 20 73 69 | 7a 65 0d 19 78 26 20 20 | same si|ze..x& |
|00005df0| 20 f4 20 69 66 20 6e 6f | 74 20 73 65 74 20 4d 75 | . if no|t set Mu|
|00005e00| 6c 74 69 20 73 65 63 74 | 6f 72 20 46 61 6c 73 65 |lti sect|or False|
|00005e10| 0d 19 82 45 20 20 20 f4 | 20 69 66 20 4d 75 6c 74 |...E .| if Mult|
|00005e20| 69 20 73 65 63 74 6f 72 | 20 73 74 69 6c 6c 20 73 |i sector| still s|
|00005e30| 65 74 2c 20 73 65 74 75 | 70 20 4d 75 6c 74 69 2d |et, setu|p Multi-|
|00005e40| 73 65 63 74 6f 72 20 64 | 65 73 63 72 69 70 74 6f |sector d|escripto|
|00005e50| 72 20 61 6e 64 0d 19 8c | 1d 20 20 20 f4 20 20 6d |r and...|. . m|
|00005e60| 65 6d 6f 72 79 20 70 6f | 69 6e 74 65 72 20 6c 69 |emory po|inter li|
|00005e70| 73 74 0d 19 96 35 dd f2 | 73 65 74 4d 75 6c 74 69 |st...5..|setMulti|
|00005e80| 53 65 63 74 28 54 72 6b | 44 65 73 63 25 2c 20 63 |Sect(Trk|Desc%, c|
|00005e90| 6f 75 6e 74 25 2c 20 f8 | 20 6d 75 6c 74 69 53 65 |ount%, .| multiSe|
|00005ea0| 63 74 46 6c 67 25 29 0d | 19 a0 47 ea 20 6d 61 78 |ctFlg%).|..G. max|
|00005eb0| 25 2c 6d 69 6e 25 2c 73 | 65 63 74 6f 72 25 2c 49 |%,min%,s|ector%,I|
|00005ec0| 44 61 64 64 25 2c 64 61 | 74 61 61 64 64 25 2c 73 |Dadd%,da|taadd%,s|
|00005ed0| 65 63 74 4e 75 6d 62 25 | 2c 20 72 65 73 74 4f 66 |ectNumb%|, restOf|
|00005ee0| 49 44 25 2c 20 73 65 63 | 74 53 69 7a 65 25 0d 19 |ID%, sec|tSize%..|
|00005ef0| aa 09 ea 20 49 44 25 0d | 19 b4 15 6d 61 78 25 3d |... ID%.|...max%=|
|00005f00| 2d 31 20 3a 6d 69 6e 25 | 3d 32 35 36 0d 19 be 1a |-1 :min%|=256....|
|00005f10| e3 20 73 65 63 74 6f 72 | 25 3d 30 20 b8 20 63 6f |. sector|%=0 . co|
|00005f20| 75 6e 74 25 2d 31 0d 19 | c8 27 20 20 49 44 25 3d |unt%-1..|.' ID%=|
|00005f30| a4 67 65 74 53 65 63 74 | 49 44 28 54 72 6b 44 65 |.getSect|ID(TrkDe|
|00005f40| 73 63 25 2c 20 73 65 63 | 74 6f 72 25 29 0d 19 d2 |sc%, sec|tor%)...|
|00005f50| 13 20 20 e7 20 73 65 63 | 74 6f 72 25 3d 30 20 8c |. . sec|tor%=0 .|
|00005f60| 0d 19 dc 21 20 20 20 20 | 72 65 73 74 4f 66 49 44 |...! |restOfID|
|00005f70| 25 3d 26 46 46 30 30 46 | 46 46 46 20 80 20 49 44 |%=&FF00F|FFF . ID|
|00005f80| 25 0d 19 e6 21 20 20 20 | 20 73 65 63 74 53 69 7a |%...! | sectSiz|
|00005f90| 65 25 3d 28 49 44 25 20 | 3e 3e 20 32 34 29 20 80 |e%=(ID% |>> 24) .|
|00005fa0| 20 33 0d 19 f0 07 20 20 | cc 0d 19 fa 2a 20 20 20 | 3.... |....* |
|00005fb0| 20 e7 20 72 65 73 74 4f | 66 49 44 25 20 3c 3e 20 | . restO|fID% <> |
|00005fc0| 28 26 46 46 30 30 46 46 | 46 46 20 80 20 49 44 25 |(&FF00FF|FF . ID%|
|00005fd0| 29 20 8c 0d 1a 04 19 20 | 20 20 20 20 20 6d 75 6c |) ..... | mul|
|00005fe0| 74 69 53 65 63 74 46 6c | 67 25 3d a3 0d 1a 0e 09 |tiSectFl|g%=.....|
|00005ff0| 20 20 20 20 cd 0d 1a 18 | 07 20 20 cd 0d 1a 22 21 | ....|. ..."!|
|00006000| 20 20 73 65 63 74 4e 75 | 6d 62 25 3d 26 46 46 20 | sectNu|mb%=&FF |
|00006010| 80 20 28 49 44 25 20 3e | 3e 20 31 36 29 0d 1a 2c |. (ID% >|> 16)..,|
|00006020| 29 20 20 e7 20 73 65 63 | 74 4e 75 6d 62 25 20 3e |) . sec|tNumb% >|
|00006030| 20 6d 61 78 25 20 8c 20 | 6d 61 78 25 3d 73 65 63 | max% . |max%=sec|
|00006040| 74 4e 75 6d 62 25 0d 1a | 36 29 20 20 e7 20 73 65 |tNumb%..|6) . se|
|00006050| 63 74 4e 75 6d 62 25 20 | 3c 20 6d 69 6e 25 20 8c |ctNumb% |< min% .|
|00006060| 20 6d 69 6e 25 3d 73 65 | 63 74 4e 75 6d 62 25 0d | min%=se|ctNumb%.|
|00006070| 1a 40 05 ed 0d 1a 4a 33 | e7 20 28 28 6d 61 78 25 |.@....J3|. ((max%|
|00006080| 2d 6d 69 6e 25 29 20 3c | 3e 20 28 63 6f 75 6e 74 |-min%) <|> (count|
|00006090| 25 2d 31 29 29 20 8c 20 | 6d 75 6c 74 69 53 65 63 |%-1)) . |multiSec|
|000060a0| 74 46 6c 67 25 3d a3 0d | 1a 54 15 e7 20 6d 75 6c |tFlg%=..|.T.. mul|
|000060b0| 74 69 53 65 63 74 46 6c | 67 25 20 8c 0d 1a 5e 21 |tiSectFl|g% ...^!|
|000060c0| 20 20 54 72 6b 44 65 73 | 63 25 3f 62 75 66 4c 6f | TrkDes|c%?bufLo|
|000060d0| 77 53 65 63 74 25 20 3d | 20 6d 69 6e 25 0d 1a 68 |wSect% =| min%..h|
|000060e0| 26 20 20 54 72 6b 44 65 | 73 63 25 3f 62 75 66 53 |& TrkDe|sc%?bufS|
|000060f0| 65 63 74 53 69 7a 65 25 | 20 3d 73 65 63 74 53 69 |ectSize%| =sectSi|
|00006100| 7a 65 25 0d 1a 72 1c 20 | 20 e3 20 73 65 63 74 6f |ze%..r. | . secto|
|00006110| 72 25 3d 30 20 b8 20 63 | 6f 75 6e 74 25 2d 31 0d |r%=0 . c|ount%-1.|
|00006120| 1a 7c 2f 20 20 20 20 64 | 61 74 61 61 64 64 25 3d |.|/ d|ataadd%=|
|00006130| a4 67 65 74 44 61 74 61 | 50 74 72 28 54 72 6b 44 |.getData|Ptr(TrkD|
|00006140| 65 73 63 25 2c 20 73 65 | 63 74 6f 72 25 29 0d 1a |esc%, se|ctor%)..|
|00006150| 86 29 20 20 20 20 49 44 | 25 3d a4 67 65 74 53 65 |.) ID|%=.getSe|
|00006160| 63 74 49 44 28 54 72 6b | 44 65 73 63 25 2c 20 73 |ctID(Trk|Desc%, s|
|00006170| 65 63 74 6f 72 25 29 0d | 1a 90 2c 20 20 20 20 73 |ector%).|.., s|
|00006180| 65 63 74 4e 75 6d 62 25 | 3d 28 26 46 46 20 80 20 |ectNumb%|=(&FF . |
|00006190| 28 49 44 25 20 3e 3e 20 | 31 36 29 29 20 2d 20 6d |(ID% >> |16)) - m|
|000061a0| 69 6e 25 0d 1a 9a 4a 20 | 20 20 20 54 72 6b 44 65 |in%...J | TrkDe|
|000061b0| 73 63 25 21 28 62 75 66 | 4d 65 6d 41 64 64 4c 69 |sc%!(buf|MemAddLi|
|000061c0| 73 74 25 20 2b 20 28 73 | 65 63 74 4e 75 6d 62 25 |st% + (s|ectNumb%|
|000061d0| 3c 3c 33 29 29 3d 20 64 | 61 74 61 61 64 64 25 20 |<<3))= d|ataadd% |
|000061e0| 3a f4 20 6d 65 6d 6f 72 | 79 20 61 64 64 0d 1a a4 |:. memor|y add...|
|000061f0| 4c 20 20 20 20 54 72 6b | 44 65 73 63 25 21 28 62 |L Trk|Desc%!(b|
|00006200| 75 66 4d 65 6d 41 64 64 | 4c 69 73 74 25 2b 34 2b |ufMemAdd|List%+4+|
|00006210| 28 73 65 63 74 4e 75 6d | 62 25 3c 3c 33 29 29 3d |(sectNum|b%<<3))=|
|00006220| 31 20 3c 3c 20 28 37 2b | 73 65 63 74 53 69 7a 65 |1 << (7+|sectSize|
|00006230| 25 29 3a f4 20 73 69 7a | 65 0d 1a ae 07 20 20 ed |%):. siz|e.... .|
|00006240| 0d 1a b8 05 cd 0d 1a c2 | 05 e1 0d 1a cc 04 0d 1a |........|........|
|00006250| d6 40 20 20 f4 20 63 6f | 70 79 20 4d 75 6c 74 69 |.@ . co|py Multi|
|00006260| 53 65 63 74 6f 72 20 4d | 65 6d 6f 72 79 20 41 64 |Sector M|emory Ad|
|00006270| 64 72 65 73 73 20 4c 69 | 73 74 20 69 6e 74 6f 20 |dress Li|st into |
|00006280| 42 75 66 66 65 72 20 66 | 6f 72 20 75 73 65 0d 1a |Buffer f|or use..|
|00006290| e0 26 dd f2 63 6f 70 79 | 4d 65 6d 41 64 64 4c 69 |.&..copy|MemAddLi|
|000062a0| 73 74 28 54 72 6b 44 65 | 73 63 25 2c 20 63 6f 75 |st(TrkDe|sc%, cou|
|000062b0| 6e 74 25 29 0d 1a ea 0b | ea 20 49 25 2c 4a 25 0d |nt%)....|. I%,J%.|
|000062c0| 1a f4 18 4a 25 3d 28 28 | 63 6f 75 6e 74 25 2d 31 |...J%=((|count%-1|
|000062d0| 29 3c 3c 33 29 2b 34 0d | 1a fe 13 e3 20 49 25 3d |)<<3)+4.|.... I%=|
|000062e0| 30 20 b8 20 4a 25 20 88 | 20 34 0d 1b 08 31 20 20 |0 . J% .| 4...1 |
|000062f0| 6d 65 6d 41 64 64 4c 69 | 73 74 25 21 49 25 3d 54 |memAddLi|st%!I%=T|
|00006300| 72 6b 44 65 73 63 25 21 | 28 62 75 66 4d 65 6d 41 |rkDesc%!|(bufMemA|
|00006310| 64 64 4c 69 73 74 25 2b | 49 25 29 0d 1b 12 05 ed |ddList%+|I%).....|
|00006320| 0d 1b 1c 05 e1 0d 1b 26 | 04 0d 1b 30 37 20 20 f4 |.......&|...07 .|
|00006330| 20 50 72 69 6e 74 20 61 | 6e 79 20 75 6e 75 73 75 | Print a|ny unusu|
|00006340| 61 6c 20 73 65 63 74 6f | 72 20 66 6f 6c 6c 6f 77 |al secto|r follow|
|00006350| 65 64 20 62 79 20 72 65 | 61 73 6f 6e 20 77 68 79 |ed by re|ason why|
|00006360| 0d 1b 3a 22 20 20 f4 20 | 49 46 20 64 65 62 75 67 |..:" . |IF debug|
|00006370| 20 70 72 69 6e 74 20 61 | 6c 6c 20 73 65 63 74 6f | print a|ll secto|
|00006380| 72 73 0d 1b 44 24 dd f2 | 70 72 69 6e 74 55 6e 75 |rs..D$..|printUnu|
|00006390| 73 75 61 6c 28 54 72 6b | 44 65 73 63 25 2c 20 63 |sual(Trk|Desc%, c|
|000063a0| 6f 75 6e 74 25 29 0d 1b | 4e 21 ea 20 73 65 63 74 |ount%)..|N!. sect|
|000063b0| 46 6f 75 6e 64 25 2c 20 | 69 6e 66 6f 25 2c 20 64 |Found%, |info%, d|
|000063c0| 69 73 63 65 72 72 25 0d | 1b 58 11 e7 20 63 6f 75 |iscerr%.|.X.. cou|
|000063d0| 6e 74 25 3c 3e 30 20 8c | 0d 1b 62 1f 20 20 e3 20 |nt%<>0 .|..b. . |
|000063e0| 73 65 63 74 46 6f 75 6e | 64 25 3d 30 20 b8 20 63 |sectFoun|d%=0 . c|
|000063f0| 6f 75 6e 74 25 2d 31 0d | 1b 6c 3a 20 20 20 20 69 |ount%-1.|.l: i|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.