00000000: 01 1C 1E 1C 4C 04 42 53 24 B2 C7 28 31 35 37 29 |....L.BS$..(157)|
00000010: AA C7 28 31 35 37 29 AA C7 28 31 35 37 29 00 29 |..(157)..(157).)|
00000020: 1C 56 04 89 20 31 31 36 30 00 5A 1C 60 04 99 20 |.V.. 1160.Z.`.. |
00000030: C7 28 31 34 37 29 3B 22 20 20 20 20 2A 2A 2A 2A |.(147);" ****|
00000040: 20 31 35 38 31 20 46 49 58 20 54 52 41 43 4B 20 | 1581 FIX TRACK |
00000050: 56 31 2E 31 20 2A 2A 2A 2A 22 00 86 1C 6A 04 99 |V1.1 ****"...j..|
00000060: 20 22 20 20 20 3C 43 3E 20 31 39 38 38 20 48 45 | " <C> 1988 HE|
00000070: 52 4E 45 20 44 41 54 41 20 53 59 53 54 45 4D 53 |RNE DATA SYSTEMS|
00000080: 20 4C 54 44 2E 22 00 94 1C 74 04 99 20 3A 20 99 | LTD."...t.. : .|
00000090: 20 3A 20 8E 00 9A 1C 7E 04 3A 00 A5 1C 88 04 8D | : ....~.:......|
000000A0: 20 31 31 32 30 00 D1 1C 92 04 99 22 54 48 49 53 | 1120......"THIS|
000000B0: 20 50 52 4F 47 52 41 4D 20 57 49 4C 4C 20 52 45 | PROGRAM WILL RE|
000000C0: 50 41 49 52 20 41 20 31 35 38 31 20 44 49 53 4B |PAIR A 1581 DISK|
000000D0: 22 00 00 1D 9C 04 99 22 57 49 54 48 20 41 20 43 |"......"WITH A C|
000000E0: 52 43 20 45 52 52 4F 52 20 44 41 4D 41 47 45 44 |RC ERROR DAMAGED|
000000F0: 20 54 52 41 43 4B 2E 22 20 3A 20 99 20 3A 20 99 | TRACK." : . : .|
00000100: 00 29 1D A6 04 99 20 22 53 45 4C 45 43 54 20 54 |.).... "SELECT T|
00000110: 41 52 47 45 54 20 44 45 56 49 43 45 20 23 20 20 |ARGET DEVICE # |
00000120: 20 20 38 22 3B 42 53 24 3B 00 32 1D B0 04 85 20 | 8";BS$;.2.... |
00000130: 54 44 00 6A 1D BA 04 8B 20 54 44 B3 38 20 B0 20 |TD.j.... TD.8 . |
00000140: 54 44 B1 31 32 20 A7 20 80 20 20 20 20 20 3A 20 |TD.12 . . : |
00000150: 8F 20 45 58 49 54 20 4F 4E 20 42 41 44 20 44 52 |. EXIT ON BAD DR|
00000160: 49 56 45 20 4E 55 4D 42 45 52 00 70 1D C4 04 3A |IVE NUMBER.p...:|
00000170: 00 A9 1D CE 04 A0 20 31 35 20 3A 20 9F 20 31 35 |...... 15 : . 15|
00000180: 2C 54 44 2C 31 35 20 20 20 20 20 20 3A 20 8F 20 |,TD,15 : . |
00000190: 4F 50 45 4E 20 44 49 53 4B 20 43 4F 4D 4D 41 4E |OPEN DISK COMMAN|
000001A0: 44 20 43 48 41 4E 4E 45 4C 00 DA 1D D8 04 98 31 |D CHANNEL......1|
000001B0: 35 2C 22 55 30 3E 42 30 22 20 20 20 20 20 20 20 |5,"U0>B0" |
000001C0: 20 20 20 20 20 20 20 3A 20 8F 20 54 45 53 54 20 | : . TEST |
000001D0: 44 52 49 56 45 20 54 59 50 45 00 E5 1D E2 04 84 |DRIVE TYPE......|
000001E0: 31 35 2C 41 24 00 12 1E EC 04 98 31 35 2C 22 55 |15,A$......15,"U|
000001F0: 4A 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |J" |
00000200: 20 20 20 3A 20 8F 20 52 45 53 45 54 20 44 52 49 | : . RESET DRI|
00000210: 56 45 00 3A 1E F6 04 8B 20 C6 28 41 24 29 B3 B1 |VE.:.... .(A$)..|
00000220: 34 38 20 A7 20 89 20 31 36 38 30 20 3A 20 8F 20 |48 . . 1680 : . |
00000230: 4E 4F 54 20 41 20 31 35 38 31 00 40 1E 00 05 3A |NOT A 1581.@...:|
00000240: 00 6D 1E 0A 05 99 20 3A 20 99 20 22 49 4E 53 45 |.m.... : . "INSE|
00000250: 52 54 20 44 41 4D 41 47 45 44 20 44 49 53 4B 20 |RT DAMAGED DISK |
00000260: 49 4E 20 44 45 56 49 43 45 22 3B 54 44 00 95 1E |IN DEVICE";TD...|
00000270: 14 05 99 22 54 48 45 4E 20 50 52 45 53 53 20 41 |..."THEN PRESS A|
00000280: 20 4B 45 59 20 54 4F 20 43 4F 4E 54 49 4E 55 45 | KEY TO CONTINUE|
00000290: 20 2E 2E 2E 22 00 BF 1E 1E 05 A1 20 57 24 20 3A | ..."...... W$ :|
000002A0: 20 8B 20 57 24 B2 22 22 20 A7 20 31 33 31 30 20 | . W$."" . 1310 |
000002B0: 20 20 3A 20 8F 20 57 41 49 54 20 4C 4F 4F 50 00 | : . WAIT LOOP.|
000002C0: C5 1E 28 05 3A 00 D8 1E 32 05 98 31 35 2C 22 55 |..(.:...2..15,"U|
000002D0: 30 22 AA C7 28 31 30 29 00 E3 1E 46 05 8D 20 31 |0"..(10)...F.. 1|
000002E0: 31 32 30 00 14 1F 50 05 99 20 3A 20 99 20 22 45 |120...P.. : . "E|
000002F0: 4E 54 45 52 20 4C 4F 47 49 43 41 4C 20 54 52 41 |NTER LOGICAL TRA|
00000300: 43 4B 2C 53 45 43 54 4F 52 20 54 4F 20 52 45 50 |CK,SECTOR TO REP|
00000310: 41 49 52 22 00 27 1F 51 05 85 20 22 3D 3D 3E 20 |AIR".'.Q.. "==> |
00000320: 22 3B 4C 54 2C 4C 53 00 5D 1F 5A 05 54 B2 4C 54 |";LT,LS.].Z.T.LT|
00000330: AB 31 20 20 20 20 20 20 3A 20 8F 20 43 4F 4E 56 |.1 : . CONV|
00000340: 45 52 54 20 4C 4F 47 49 43 41 4C 20 54 4F 20 50 |ERT LOGICAL TO P|
00000350: 48 59 53 49 43 41 4C 20 54 52 41 43 4B 00 95 1F |HYSICAL TRACK...|
00000360: 64 05 8B 20 54 B3 30 20 B0 20 54 B1 37 39 20 A7 |d.. T.0 . T.79 .|
00000370: 20 99 20 22 45 52 52 4F 52 20 3D 3D 3E 20 49 4E | . "ERROR ==> IN|
00000380: 56 41 4C 49 44 20 54 52 41 43 4B 22 20 3A 20 89 |VALID TRACK" : .|
00000390: 20 31 33 36 30 00 C8 1F 6E 05 53 49 B2 30 20 3A | 1360...n.SI.0 :|
000003A0: 20 8B 20 4C 53 B1 31 39 20 A7 20 53 49 B2 31 20 | . LS.19 . SI.1 |
000003B0: 20 20 20 20 3A 20 8F 20 53 45 4C 45 43 54 20 44 | : . SELECT D|
000003C0: 49 53 4B 20 53 49 44 45 00 CE 1F 78 05 3A 00 F8 |ISK SIDE...x.:..|
000003D0: 1F 82 05 99 20 3A 20 99 20 22 52 45 50 41 49 52 |.... : . "REPAIR|
000003E0: 49 4E 47 20 50 48 59 53 49 43 41 4C 20 54 52 41 |ING PHYSICAL TRA|
000003F0: 43 4B 20 3D 3D 3E 22 54 00 22 20 8C 05 99 20 3A |CK ==>"T." ... :|
00000400: 20 99 20 22 20 20 20 20 20 20 20 20 20 20 20 20 | . " |
00000410: 20 20 20 20 20 20 53 45 43 54 4F 52 20 3D 3D 3E | SECTOR ==>|
00000420: 22 3B 00 28 20 96 05 3A 00 5D 20 A0 05 8F 20 54 |";.( ..:.] ... T|
00000430: 48 45 20 46 4F 4C 4C 4F 57 49 4E 47 20 43 4F 44 |HE FOLLOWING COD|
00000440: 45 20 44 4F 45 53 20 41 20 50 48 59 53 49 43 41 |E DOES A PHYSICA|
00000450: 4C 20 53 45 43 54 4F 52 20 52 45 41 44 00 8B 20 |L SECTOR READ.. |
00000460: AA 05 8F 20 54 48 45 4E 20 57 52 49 54 45 20 46 |... THEN WRITE F|
00000470: 4F 52 20 45 41 43 48 20 53 45 43 54 4F 52 20 4F |OR EACH SECTOR O|
00000480: 4E 20 54 48 45 20 54 52 41 43 4B 00 B3 20 B4 05 |N THE TRACK.. ..|
00000490: 8F 20 42 59 2D 50 41 53 53 49 4E 47 20 54 48 45 |. BY-PASSING THE|
000004A0: 20 54 52 41 43 4B 20 43 41 43 48 45 20 42 55 46 | TRACK CACHE BUF|
000004B0: 46 45 52 00 B9 20 BE 05 3A 00 EF 20 C8 05 81 20 |FER.. ..:.. ... |
000004C0: 53 B2 31 20 A4 20 31 30 20 20 20 20 20 20 20 20 |S.1 . 10 |
000004D0: 20 20 20 3A 20 8F 20 44 4F 20 45 4E 54 49 52 45 | : . DO ENTIRE|
000004E0: 20 50 48 59 53 49 43 41 4C 20 54 52 41 43 4B 00 | PHYSICAL TRACK.|
000004F0: F8 20 D2 05 99 20 53 3B 00 2B 21 DC 05 98 31 35 |. ... S;.+!...15|
00000500: 2C 22 4D 2D 57 22 C7 28 32 30 36 29 C7 28 31 29 |,"M-W".(206).(1)|
00000510: C7 28 31 29 C7 28 53 49 29 20 20 20 20 20 20 3A |.(1).(SI) :|
00000520: 20 8F 20 53 45 54 20 53 49 44 45 00 5C 21 E6 05 | . SET SIDE.\!..|
00000530: 98 31 35 2C 22 4D 2D 57 22 C7 28 31 31 29 C7 28 |.15,"M-W".(11).(|
00000540: 30 29 C7 28 32 29 C7 28 54 29 C7 28 53 29 20 3A |0).(2).(T).(S) :|
00000550: 20 8F 20 53 45 54 20 54 20 26 20 53 00 62 21 F0 | . SET T & S.b!.|
00000560: 05 3A 00 8F 21 FA 05 98 31 35 2C 22 4D 2D 57 22 |.:..!...15,"M-W"|
00000570: C7 28 32 29 C7 28 30 29 C7 28 31 29 C7 28 31 36 |.(2).(0).(1).(16|
00000580: 34 29 20 20 20 20 20 3A 20 8F 20 52 45 41 44 00 |4) : . READ.|
00000590: D3 21 04 06 8D 20 31 36 33 30 20 20 20 20 20 20 |.!... 1630 |
000005A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000005B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000005C0: 20 3A 20 8F 20 57 41 49 54 20 54 49 4C 4C 20 44 | : . WAIT TILL D|
000005D0: 4F 4E 45 00 D9 21 0E 06 3A 00 07 22 18 06 98 31 |ONE..!..:.."...1|
000005E0: 35 2C 22 4D 2D 57 22 C7 28 32 29 C7 28 30 29 C7 |5,"M-W".(2).(0).|
000005F0: 28 31 29 C7 28 31 36 36 29 20 20 20 20 20 3A 20 |(1).(166) : |
00000600: 8F 20 57 52 49 54 45 00 41 22 22 06 8D 20 31 36 |. WRITE.A"".. 16|
00000610: 33 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |30 |
00000620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000630: 20 20 20 20 20 20 20 20 20 3A 20 8F 20 57 41 49 | : . WAI|
00000640: 54 00 65 22 2C 06 82 20 53 20 20 20 20 20 20 20 |T.e",.. S |
00000650: 20 20 20 20 20 20 20 20 20 20 20 3A 20 8F 20 52 | : . R|
00000660: 45 50 45 41 54 00 6B 22 36 06 3A 00 A2 22 40 06 |EPEAT.k"6.:.."@.|
00000670: 99 20 3A 20 20 99 20 3A 20 99 20 22 2A 2A 2A 2A |. : . : . "****|
00000680: 2A 20 44 4F 4E 45 20 3D 3D 3E 20 44 49 53 4B 20 |* DONE ==> DISK |
00000690: 49 53 20 52 45 50 41 49 52 45 44 20 2A 2A 2A 2A |IS REPAIRED ****|
000006A0: 2A 22 00 D9 22 4A 06 98 31 35 2C 22 49 30 22 20 |*".."J..15,"I0" |
000006B0: 3A 20 A0 20 31 35 20 3A 20 80 20 20 20 20 20 20 |: . 15 : . |
000006C0: 20 3A 20 8F 20 52 45 53 45 54 20 44 52 49 56 45 | : . RESET DRIVE|
000006D0: 20 41 4E 44 20 51 55 49 54 00 DF 22 54 06 3A 00 | AND QUIT.."T.:.|
000006E0: 0E 23 5E 06 98 31 35 2C 22 4D 2D 52 22 C7 28 32 |.#^..15,"M-R".(2|
000006F0: 29 C7 28 30 29 C7 28 31 29 20 3A 20 8F 20 43 48 |).(0).(1) : . CH|
00000700: 45 43 4B 20 4A 4F 42 20 53 54 41 54 55 53 00 31 |ECK JOB STATUS.1|
00000710: 23 68 06 A1 23 31 35 2C 41 24 3A 8B 20 C6 28 41 |#h..#15,A$:. .(A|
00000720: 24 AA 22 20 22 29 B1 31 32 37 20 A7 20 31 36 33 |$." ").127 . 163|
00000730: 30 00 37 23 72 06 8E 00 3D 23 7C 06 3A 00 5C 23 |0.7#r...=#|.:.\#|
00000740: 86 06 8F 20 45 58 49 54 20 49 46 20 4E 4F 54 20 |... EXIT IF NOT |
00000750: 41 20 31 35 38 31 20 44 52 49 56 45 00 9C 23 90 |A 1581 DRIVE..#.|
00000760: 06 99 20 3A 20 99 20 22 45 52 52 4F 52 20 3D 3D |.. : . "ERROR ==|
00000770: 3E 20 20 44 45 56 49 43 45 22 3B 54 44 3B 22 49 |> DEVICE";TD;"I|
00000780: 53 20 4E 4F 54 20 41 20 31 35 38 31 20 44 52 49 |S NOT A 1581 DRI|
00000790: 56 45 22 20 3A 20 89 20 31 36 31 30 00 00 00 |VE" : . 1610... |
....L.BS$.G(157).G(157).G(157).).V.. 116
0.Z.`.. G(147);" **** 1581 FIX TRACK
V1.1 ****"...J.. " <C> 1988 HERNE DATA
SYSTEMS LTD."...T.. : . : ....~.:......
1120.Q...."THIS PROGRAM WILL REPAIR A 1
581 DISK"......"WITH A CRC ERROR DAMAGED
TRACK." : . : ..).... "SELECT TARGET DE
VICE # 8";BS$;.2.... TD.J.... TD.8 .
TD.12 . . : . EXIT ON BAD DRIVE NUMB
ER.P.D.:...N. 15 : . 15,TD,15 : .
OPEN DISK COMMAND CHANNEL.Z.X..15,"U0>B0
" : . TEST DRIVE TYPE......
15,A$......15,"UJ" : . R
ESET DRIVE.:.... F(A$)..48 . . 1680 : .
NOT A 1581.@...:.M.... : . "INSERT DAMAG
ED DISK IN DEVICE";TD......"THEN PRESS A
KEY TO CONTINUE ..."...... W$ : . W$.""
. 1310 : . WAIT LOOP.E.(.:.X.2..15,"U
0".G(10)...F.. 1120...P.. : . "ENTER LOG
ICAL TRACK,SECTOR TO REPAIR".'.Q.. "==>
";LT,LS.].Z.T.LT.1 : . CONVERT LOGI
CAL TO PHYSICAL TRACK...D.. T.0 . T.79 .
. "ERROR ==> INVALID TRACK" : . 1360.H.
N.SI.0 : . LS.19 . SI.1 : . SELECT D
ISK SIDE.N.X.:...... : . "REPAIRING PHYS
ICAL TRACK ==>"T." ... : . "
SECTOR ==>";.( ..:.] .. THE FOLLO
WING CODE DOES A PHYSICAL SECTOR READ..
... THEN WRITE FOR EACH SECTOR ON THE TR
ACK.. ... BY-PASSING THE TRACK CACHE BUF
FER.. ..:.. H.. S.1 . 10 : . D
O ENTIRE PHYSICAL TRACK.. R.. S;.+!...15
,"M-W"G(206)G(1)G(1)G(SI) : . SET S
IDE.\!...15,"M-W"G(11)G(0)G(2)G(T)G(S) :
. SET T & S.B!..:..!...15,"M-W"G(2)G(0)
G(1)G(164) : . READ.S!... 1630
: . WAI
T TILL DONE.Y!..:.."...15,"M-W"G(2)G(0)G
(1)G(166) : . WRITE.A"".. 1630
: . WAI
T.E",.. S : . REPEAT.K"
6.:.."@.. : . : . "***** DONE ==> DISK
IS REPAIRED *****".Y"J..15,"I0" : 15 :
. : . RESET DRIVE AND QUIT.."T.:.
.#^..15,"M-R"G(2)G(0)G(1) : . CHECK JOB
STATUS.1#H..#15,A$:. F(A$." ").127 . 163
0.7#R...=#|.:.\#... EXIT IF NOT A 1581 D
RIVE..#... : . "ERROR ==> DEVICE";TD;"I
S NOT A 1581 DRIVE" : . 1610...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL