_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

FIX 1581

FILE INFORMATION

FILENAME(S): FIX 1581

FILE TYPE(S): PRG

FILE SIZE: 1.9K

FIRST SEEN: 2025-11-30 16:45:39

APPEARS ON: 1 disk(s)

FILE HASH

42cf74b3ddc03161ec6d266c1b15d5f555add0eafd6105db07aff0deddea7788

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
UTIL32 FIX 1581 PRG High Voltage Complete C64 Collection 16 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

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 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL