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

5.DISK-MAP

FILE INFORMATION

FILENAME(S): 5.DISK-MAP

FILE TYPE(S): PRG

FILE SIZE: 10.7K

FIRST SEEN: 2025-11-30 01:08:05

APPEARS ON: 2 disk(s)

FILE HASH

a0aabad6a4e96b3b6a3630a774fd80565cc17af41e39ddfd78b8ea8c4563c118

FOUND ON DISKS (2 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
U TILITEIS 5.DISK-MAP PRG Treasure Chest - Wolfgang Rauprich 13 2 DOWNLOAD FILE
FREEWARE DISK NR 5.DISK-MAP PRG Treasure Chest - Wolfgang Rauprich 13 2 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

> DETECTED: COMMODORE BASIC PROGRAM (LOAD ADDRESS $0801)

00000000: 01 08 3D 08 01 00 8F 20  20 44 49 53 4B 4D 41 50  |..=....  DISKMAP|
00000010: 20 2D 20 53 48 4F 57 53  20 31 35 34 31 20 45 54  | - SHOWS 1541 ET|
00000020: 43 20 46 49 4C 45 20 53  54 52 55 43 54 55 52 45  |C FILE STRUCTURE|
00000030: 20 28 41 4E 44 20 45 52  52 4F 52 53 29 00 43 08  | (AND ERRORS).C.|
00000040: 02 00 8F 00 4E 08 0A 00  89 20 39 30 30 30 00 57  |....N.... 9000.W|
00000050: 08 BE 00 8F 20 2F 2A 00  6A 08 BF 00 8F 20 20 2A  |.... /*.j....  *|
00000060: 20 47 4F 53 55 42 20 32  30 30 00 B5 08 C0 00 8F  | GOSUB 200......|
00000070: 20 20 2A 20 53 50 45 43  49 41 4C 49 5A 45 44 20  |  * SPECIALIZED |
00000080: 53 55 42 52 4F 55 54 49  4E 45 20 46 4F 52 20 43  |SUBROUTINE FOR C|
00000090: 4F 4E 56 45 52 54 49 4E  47 20 41 4E 44 20 50 52  |ONVERTING AND PR|
000000A0: 49 4E 54 49 4E 47 20 53  45 43 54 4F 52 20 4E 55  |INTING SECTOR NU|
000000B0: 4D 42 45 52 53 00 E8 08  C1 00 8F 20 20 2A 20 52  |MBERS......  * R|
000000C0: 45 51 55 49 52 45 53 3A  20 41 28 54 52 41 43 4B  |EQUIRES: A(TRACK|
000000D0: 29 20 41 4E 44 20 42 28  53 45 43 54 4F 52 29 20  |) AND B(SECTOR) |
000000E0: 41 53 20 49 4E 50 55 54  00 0D 09 C3 00 8F 20 20  |AS INPUT......  |
000000F0: 2A 20 53 45 54 53 3A 20  41 24 20 41 53 20 4F 55  |* SETS: A$ AS OU|
00000100: 54 50 55 54 20 20 22 28  54 2C 53 29 22 00 22 09  |TPUT  "(T,S)".".|
00000110: C4 00 8F 20 20 2A 20 43  48 41 4E 47 45 53 3A 20  |...  * CHANGES: |
00000120: 42 24 00 2C 09 C5 00 8F  20 20 2A 2F 00 41 09 C8  |B$.,....  */.A..|
00000130: 00 41 24 B2 C4 28 41 29  3A 20 42 24 B2 C4 28 42  |.A$..(A): B$..(B|
00000140: 29 00 70 09 D2 00 41 24  B2 22 28 22 AA C9 28 41  |).p...A$."("..(A|
00000150: 24 2C C3 28 41 24 29 AB  31 29 AA 22 2C 22 AA C9  |$,.(A$).1).","..|
00000160: 28 42 24 2C C3 28 42 24  29 AB 31 29 AA 22 29 22  |(B$,.(B$).1).")"|
00000170: 00 76 09 E6 00 8E 00 7F  09 37 01 8F 20 2F 2A 00  |.v.......7.. /*.|
00000180: BF 09 38 01 8F 20 20 2A  20 47 4F 53 55 42 20 33  |..8..  * GOSUB 3|
00000190: 31 35 20 2D 20 43 48 45  43 4B 20 44 49 53 4B 20  |15 - CHECK DISK |
000001A0: 45 52 52 4F 52 20 53 54  41 54 55 53 20 42 59 20  |ERROR STATUS BY |
000001B0: 52 45 41 44 49 4E 47 20  46 49 4C 45 20 31 35 00  |READING FILE 15.|
000001C0: 02 0A 39 01 8F 20 20 2A  20 20 20 49 54 20 49 53  |..9..  *   IT IS|
000001D0: 20 41 53 53 55 4D 45 44  20 54 48 41 54 20 54 48  | ASSUMED THAT TH|
000001E0: 45 20 43 41 4C 4C 45 52  20 57 49 4C 4C 20 55 53  |E CALLER WILL US|
000001F0: 45 20 53 54 41 54 55 53  20 41 53 20 57 41 4E 54  |E STATUS AS WANT|
00000200: 45 44 00 0C 0A 3A 01 8F  20 20 2A 2F 00 24 0A 3B  |ED...:..  */.$.;|
00000210: 01 84 31 35 2C 45 4E 2C  45 4D 24 2C 45 54 2C 45  |..15,EN,EM$,ET,E|
00000220: 53 3A 20 8E 00 2D 0A 9B  01 8F 20 2F 2A 00 6A 0A  |S: ..-.... /*.j.|
00000230: 9C 01 8F 20 20 2A 20 47  4F 53 55 42 20 34 31 35  |...  * GOSUB 415|
00000240: 20 2D 20 43 48 45 43 4B  20 44 49 53 4B 20 53 54  | - CHECK DISK ST|
00000250: 41 54 55 53 20 41 4E 44  20 41 42 4F 52 54 20 49  |ATUS AND ABORT I|
00000260: 46 20 4E 4F 4E 2D 5A 45  52 4F 00 74 0A 9D 01 8F  |F NON-ZERO.t....|
00000270: 20 20 2A 2F 00 8A 0A 9F  01 8D 20 33 31 35 3A 20  |  */...... 315: |
00000280: 8B 20 45 4E B2 30 20 A7  20 8E 00 C6 0A A4 01 99  |. EN.0 . .......|
00000290: 22 44 49 53 4B 20 45 52  52 4F 52 22 3B 45 4E 3B  |"DISK ERROR";EN;|
000002A0: 45 4D 24 3B 45 54 3B 45  53 3B 22 2D 2D 50 52 4F  |EM$;ET;ES;"--PRO|
000002B0: 47 52 41 4D 20 41 42 4F  52 54 45 44 22 3A 20 89  |GRAM ABORTED": .|
000002C0: 20 36 33 39 30 30 00 CF  0A EB 01 8F 20 2F 2A 00  | 63900...... /*.|
000002D0: 1B 0B EC 01 8F 20 20 2A  20 47 4F 53 55 42 20 35  |.....  * GOSUB 5|
000002E0: 30 30 20 2D 20 52 45 54  55 52 4E 20 46 49 4C 45  |00 - RETURN FILE|
000002F0: 4E 41 4D 45 20 41 20 46  52 4F 4D 20 4E 41 4D 45  |NAME A FROM NAME|
00000300: 20 54 41 42 4C 45 2C 20  41 50 50 45 4E 44 49 4E  | TABLE, APPENDIN|
00000310: 47 20 45 58 54 45 4E 53  49 4F 4E 00 4B 0B ED 01  |G EXTENSION.K...|
00000320: 8F 20 20 2A 20 20 20 4E  41 4D 45 20 49 53 20 52  |.  *   NAME IS R|
00000330: 45 54 55 52 4E 45 44 20  49 4E 20 53 24 3B 20 41  |ETURNED IN S$; A|
00000340: 20 49 53 20 43 48 41 4E  47 45 44 00 55 0B EE 01  | IS CHANGED.U...|
00000350: 8F 20 20 2A 2F 00 71 0B  F4 01 53 24 B2 44 4E 24  |.  */.q...S$.DN$|
00000360: 28 41 29 AA 22 2C 22 3A  20 41 B2 44 45 25 28 41  |(A).",": A.DE%(A|
00000370: 29 00 99 0B FE 01 8B 20  28 41 20 AF 20 31 32 37  |)...... (A . 127|
00000380: 29 B1 34 20 A7 20 53 24  B2 53 24 AA 54 59 24 28  |).4 . S$.S$.TY$(|
00000390: 34 29 3A 20 89 20 35 33  30 00 B0 0B 08 02 53 24  |4): . 530.....S$|
000003A0: B2 53 24 AA 54 59 24 28  41 20 AF 20 31 32 37 29  |.S$.TY$(A . 127)|
000003B0: 00 CE 0B 12 02 8B 20 28  41 20 AF 20 31 32 38 29  |...... (A . 128)|
000003C0: B2 30 20 A7 20 53 24 B2  53 24 AA 22 2A 22 00 D4  |.0 . S$.S$."*"..|
000003D0: 0B 1C 02 8E 00 DD 0B 4F  02 8F 20 2F 2A 00 21 0C  |.......O.. /*.!.|
000003E0: 50 02 8F 20 20 2A 20 47  4F 53 55 42 20 36 30 30  |P..  * GOSUB 600|
000003F0: 20 2D 20 43 4F 4E 56 45  52 54 20 42 46 25 28 54  | - CONVERT BF%(T|
00000400: 2C 53 29 2B 42 55 25 28  54 2C 53 2C 2A 29 20 54  |,S)+BU%(T,S,*) T|
00000410: 4F 20 45 58 54 45 52 4E  41 4C 20 46 4F 52 4D 41  |O EXTERNAL FORMA|
00000420: 54 00 4D 0C 51 02 8F 20  20 2A 20 20 20 45 58 54  |T.M.Q..  *   EXT|
00000430: 45 52 4E 41 4C 20 46 4F  52 4D 41 54 20 49 53 20  |ERNAL FORMAT IS |
00000440: 50 4C 41 43 45 44 20 49  4E 20 42 55 24 00 6F 0C  |PLACED IN BU$.o.|
00000450: 52 02 8F 20 20 2A 20 20  20 43 48 41 4E 47 45 53  |R..  *   CHANGES|
00000460: 20 41 2C 42 2C 20 41 24  2C 42 24 2C 20 53 24 00  | A,B, A$,B$, S$.|
00000470: 79 0C 53 02 8F 20 20 2A  2F 00 AA 0C 58 02 42 55  |y.S..  */...X.BU|
00000480: 24 B2 22 22 3A 20 41 B2  42 46 25 28 54 2C 53 29  |$."": A.BF%(T,S)|
00000490: 3A 20 8B 20 41 20 B3 20  30 20 A7 20 41 B2 41 AA  |: . A . 0 . A.A.|
000004A0: 32 3A 20 42 55 24 B2 22  58 22 00 C4 0C 62 02 42  |2: BU$."X"...b.B|
000004B0: 55 24 B2 CA 28 22 46 41  22 2C 41 AA 31 2C 31 29  |U$..("FA",A.1,1)|
000004C0: AA 42 55 24 00 DD 0C 6C  02 8B 20 42 55 25 28 54  |.BU$...l.. BU%(T|
000004D0: 2C 53 2C 30 29 B2 30 20  A7 20 37 31 30 00 1A 0D  |,S,0).0 . 710...|
000004E0: 76 02 41 B2 42 55 25 28  54 2C 53 2C 31 29 3A 20  |v.A.BU%(T,S,1): |
000004F0: 42 B2 42 55 25 28 54 2C  53 2C 32 29 3A 20 8D 20  |B.BU%(T,S,2): . |
00000500: 32 30 30 3A 20 41 B2 42  55 25 28 54 2C 53 2C 30  |200: A.BU%(T,S,0|
00000510: 29 AB 31 3A 20 8D 20 35  30 30 00 35 0D 80 02 42  |).1: . 500.5...B|
00000520: 55 24 B2 42 55 24 AA 22  20 22 AA 41 24 AA 22 3C  |U$.BU$." ".A$."<|
00000530: 2D 22 AA 53 24 00 4E 0D  8A 02 8B 20 42 55 25 28  |-".S$.N.... BU%(|
00000540: 54 2C 53 2C 33 29 B2 30  20 A7 20 37 31 30 00 8B  |T,S,3).0 . 710..|
00000550: 0D 94 02 41 B2 42 55 25  28 54 2C 53 2C 34 29 3A  |...A.BU%(T,S,4):|
00000560: 20 42 B2 42 55 25 28 54  2C 53 2C 35 29 3A 20 8D  | B.BU%(T,S,5): .|
00000570: 20 32 30 30 3A 20 41 B2  42 55 25 28 54 2C 53 2C  | 200: A.BU%(T,S,|
00000580: 33 29 AB 31 3A 20 8D 20  35 30 30 00 A6 0D 9E 02  |3).1: . 500.....|
00000590: 42 55 24 B2 42 55 24 AA  22 20 22 AA 41 24 AA 22  |BU$.BU$." ".A$."|
000005A0: 3C 2D 22 AA 53 24 00 BF  0D A8 02 8B 20 42 55 25  |<-".S$...... BU%|
000005B0: 28 54 2C 53 2C 36 29 B2  30 20 A7 20 37 31 30 00  |(T,S,6).0 . 710.|
000005C0: FC 0D B2 02 41 B2 42 55  25 28 54 2C 53 2C 37 29  |....A.BU%(T,S,7)|
000005D0: 3A 20 42 B2 42 55 25 28  54 2C 53 2C 38 29 3A 20  |: B.BU%(T,S,8): |
000005E0: 8D 20 32 30 30 3A 20 41  B2 42 55 25 28 54 2C 53  |. 200: A.BU%(T,S|
000005F0: 2C 36 29 AB 31 3A 20 8D  20 35 30 30 00 17 0E BC  |,6).1: . 500....|
00000600: 02 42 55 24 B2 42 55 24  AA 22 20 22 AA 41 24 AA  |.BU$.BU$." ".A$.|
00000610: 22 3C 2D 22 AA 53 24 00  39 0E C6 02 41 B2 4C 54  |"<-".S$.9...A.LT|
00000620: 25 28 54 2C 53 29 3A 20  42 B2 4C 53 25 28 54 2C  |%(T,S): B.LS%(T,|
00000630: 53 29 3A 20 8D 20 32 30  30 00 4D 0E D0 02 42 55  |S): . 200.M...BU|
00000640: 24 B2 42 55 24 AA 22 2D  3E 22 AA 41 24 00 53 0E  |$.BU$."->".A$.S.|
00000650: DA 02 8E 00 5C 0E 16 03  8F 20 2F 2A 00 9D 0E 17  |....\.... /*....|
00000660: 03 8F 20 20 2A 20 47 4F  53 55 42 20 38 30 30 20  |..  * GOSUB 800 |
00000670: 2D 20 43 48 45 43 4B 20  57 48 45 54 48 45 52 20  |- CHECK WHETHER |
00000680: 54 2C 53 20 41 52 45 20  41 20 56 41 4C 49 44 20  |T,S ARE A VALID |
00000690: 42 4C 4F 43 4B 20 41 44  44 52 45 53 53 00 A6 0E  |BLOCK ADDRESS...|
000006A0: 18 03 8F 20 20 2A 00 D2  0E 19 03 8F 20 20 2A 20  |...  *......  * |
000006B0: 20 41 52 52 41 59 20 53  5A 25 28 29 20 4D 55 53  | ARRAY SZ%() MUS|
000006C0: 54 20 48 41 56 45 20 42  45 45 4E 20 53 45 54 20  |T HAVE BEEN SET |
000006D0: 55 50 00 0B 0F 1A 03 8F  20 20 2A 20 20 41 20 49  |UP......  *  A I|
000006E0: 53 20 53 45 54 20 54 4F  20 54 48 45 20 54 52 55  |S SET TO THE TRU|
000006F0: 54 48 20 56 41 4C 55 45  20 46 4F 52 20 28 54 2C  |TH VALUE FOR (T,|
00000700: 53 29 20 49 53 20 56 41  4C 49 44 00 14 0F 1B 03  |S) IS VALID.....|
00000710: 8F 20 20 2A 00 4D 0F 1C  03 8F 20 20 2A 20 20 42  |.  *.M....  *  B|
00000720: 2C 20 41 24 2C 42 24 20  41 52 45 20 43 48 41 4E  |, A$,B$ ARE CHAN|
00000730: 47 45 44 20 49 46 46 20  41 20 49 53 20 46 41 4C  |GED IFF A IS FAL|
00000740: 53 45 20 20 20 20 20 28  49 48 42 21 29 00 57 0F  |SE     (IHB!).W.|
00000750: 1D 03 8F 20 20 2A 2F 00  8A 0F 20 03 41 20 B2 20  |...  */... .A . |
00000760: 28 30 B3 54 20 AF 20 54  B3 B2 4D 54 29 20 AF 20  |(0.T . T..MT) . |
00000770: 28 30 B3 B2 53 20 AF 20  53 B3 53 5A 25 28 54 29  |(0..S . S.SZ%(T)|
00000780: 29 3A 20 8B 20 41 20 A7  20 8E 00 D1 0F 2A 03 8F  |): . A . ....*..|
00000790: 20 2A 2A 20 52 4F 55 54  49 4E 45 20 49 53 20 44  | ** ROUTINE IS D|
000007A0: 45 53 49 47 4E 45 44 20  46 4F 52 20 49 4E 54 45  |ESIGNED FOR INTE|
000007B0: 52 41 43 54 49 56 45 20  4D 4F 44 45 20 55 53 45  |RACTIVE MODE USE|
000007C0: 2C 20 53 4F 20 52 45 50  4F 52 54 20 45 52 52 4F  |, SO REPORT ERRO|
000007D0: 52 00 E4 0F 34 03 41 B2  54 3A 42 B2 53 3A 20 8D  |R...4.A.T:B.S: .|
000007E0: 20 32 30 30 00 18 10 3E  03 99 20 22 43 55 52 52  | 200...>.. "CURR|
000007F0: 45 4E 54 20 54 52 41 43  4B 20 41 4E 44 20 53 45  |ENT TRACK AND SE|
00000800: 43 54 4F 52 20 50 41 49  52 20 22 3B 41 24 3B 22  |CTOR PAIR ";A$;"|
00000810: 20 49 53 20 42 41 44 22  00 25 10 48 03 41 20 B2  | IS BAD".%.H.A .|
00000820: 20 30 3A 20 8E 00 4C 10  28 23 44 4B 24 B2 22 30  | 0: ..L.(#DK$."0|
00000830: 22 3A 20 44 56 B2 38 3A  20 20 9F 20 31 35 2C 44  |": DV.8:  . 15,D|
00000840: 56 2C 31 35 2C 22 49 22  AA 44 4B 24 00 72 10 1C  |V,15,"I".DK$.r..|
00000850: 25 4F 55 B2 34 3A 85 22  4F 55 54 50 55 54 20 44  |%OU.4:."OUTPUT D|
00000860: 45 56 49 43 45 20 28 33  20 4F 52 20 34 29 22 3B  |EVICE (3 OR 4)";|
00000870: 4F 55 00 8D 10 26 25 8B  20 4F 55 B3 B1 33 20 AF  |OU...&%. OU..3 .|
00000880: 20 4F 55 B3 B1 34 20 A7  20 39 35 30 30 00 99 10  | OU..4 . 9500...|
00000890: 30 25 9F 20 34 2C 34 2C  37 00 A3 10 3A 25 9F 20  |0%. 4,4,7...:%. |
000008A0: 33 2C 33 00 C4 10 10 27  46 43 B2 30 3A 20 46 42  |3,3....'FC.0: FB|
000008B0: B2 30 3A 20 41 31 B2 30  3A 20 46 31 B2 30 3A 20  |.0: A1.0: F1.0: |
000008C0: 46 32 B2 30 00 E5 10 1A  27 4D 54 B2 33 35 3A 20  |F2.0....'MT.35: |
000008D0: 4D 53 B2 32 33 3A 20 42  53 B2 33 3A 20 43 30 24  |MS.23: BS.3: C0$|
000008E0: B2 C7 28 30 29 00 F4 10  1F 27 53 53 24 B2 C7 28  |..(0)....'SS$..(|
000008F0: 31 36 30 29 00 16 11 24  27 86 20 42 4D 25 28 4D  |160)...$'. BM%(M|
00000900: 54 2C 42 53 29 2C 20 53  5A 25 28 4D 54 29 3A 20  |T,BS), SZ%(MT): |
00000910: 4D 46 B2 31 34 35 00 60  11 29 27 86 20 4C 53 25  |MF.145.`.)'. LS%|
00000920: 28 4D 54 2C 4D 53 29 2C  20 4C 54 25 28 4D 54 2C  |(MT,MS), LT%(MT,|
00000930: 4D 53 29 2C 20 44 4E 24  28 4D 46 29 2C 20 44 45  |MS), DN$(MF), DE|
00000940: 25 28 4D 46 29 2C 20 44  54 25 28 4D 46 29 2C 20  |%(MF), DT%(MF), |
00000950: 44 53 25 28 4D 46 29 2C  20 44 5A 25 28 4D 46 29  |DS%(MF), DZ%(MF)|
00000960: 00 A4 11 2E 27 86 20 42  46 25 28 4D 54 2C 4D 53  |....'. BF%(MT,MS|
00000970: 29 3A 20 8F 20 2A 2A 20  42 4C 4F 43 4B 20 46 4C  |): . ** BLOCK FL|
00000980: 41 47 53 3B 20 30 20 46  52 45 45 3B 20 31 20 41  |AGS; 0 FREE; 1 A|
00000990: 4C 4C 4F 43 41 54 45 44  3B 20 3C 30 20 49 4E 56  |LLOCATED; <0 INV|
000009A0: 41 4C 49 44 00 DE 11 2F  27 86 20 42 55 25 28 4D  |ALID.../'. BU%(M|
000009B0: 54 2C 4D 53 2C 38 29 3A  20 8F 20 2A 2A 20 42 4C  |T,MS,8): . ** BL|
000009C0: 4F 43 4B 20 55 53 41 47  45 20 54 41 42 4C 45 3B  |OCK USAGE TABLE;|
000009D0: 20 55 50 20 54 4F 20 33  20 46 49 4C 45 53 00 1B  | UP TO 3 FILES..|
000009E0: 12 30 27 86 20 43 43 28  31 29 3A 20 8F 20 2A 2A  |.0'. CC(1): . **|
000009F0: 20 43 4F 55 4E 54 45 52  3B 20 43 43 28 30 29 20  | COUNTER; CC(0) |
00000A00: 46 52 45 45 20 42 4C 4F  43 4B 3B 20 43 43 28 31  |FREE BLOCK; CC(1|
00000A10: 29 20 41 4C 4C 4F 43 41  54 45 44 00 39 12 31 27  |) ALLOCATED.9.1'|
00000A20: 86 20 54 59 24 28 35 29  3A 20 8F 20 2A 2A 20 46  |. TY$(5): . ** F|
00000A30: 49 4C 45 20 54 59 50 45  53 00 57 12 33 27 83 20  |ILE TYPES.W.3'. |
00000A40: 44 45 4C 2C 53 45 51 2C  50 52 47 2C 55 53 52 2C  |DEL,SEQ,PRG,USR,|
00000A50: 52 45 4C 2C 42 41 44 00  6F 12 38 27 83 20 31 2C  |REL,BAD.o.8'. 1,|
00000A60: 31 37 2C 32 31 2C 20 31  38 2C 32 34 2C 31 39 00  |17,21, 18,24,19.|
00000A70: 88 12 42 27 83 20 32 35  2C 33 30 2C 31 38 2C 20  |..B'. 25,30,18, |
00000A80: 33 31 2C 33 35 2C 31 37  00 A5 12 47 27 81 20 49  |31,35,17...G'. I|
00000A90: B2 30 20 A4 20 35 3A 20  87 20 54 59 24 28 49 29  |.0 . 5: . TY$(I)|
00000AA0: 3A 20 82 20 49 00 C8 12  4C 27 44 46 B2 38 3A 20  |: . I...L'DF.8: |
00000AB0: 9F 20 44 46 2C 44 56 2C  38 2C 22 24 22 AA 44 4B  |. DF,DV,8,"$".DK|
00000AC0: 24 3A 20 8D 20 34 31 35  00 EE 12 56 27 A1 23 44  |$: . 415...V'.#D|
00000AD0: 46 2C 41 24 2C 41 24 3A  20 8F 20 2A 2A 20 53 4B  |F,A$,A$: . ** SK|
00000AE0: 49 50 20 31 53 54 20 32  20 42 59 54 45 53 00 F7  |IP 1ST 2 BYTES..|
00000AF0: 12 6A 27 8F 20 2F 2A 00  2F 13 6B 27 8F 20 20 2A  |.j'. /*./.k'.  *|
00000B00: 20 4E 4F 57 20 49 4E 54  45 52 50 52 45 54 20 54  | NOW INTERPRET T|
00000B10: 48 45 20 42 41 4D 3B 20  52 45 41 44 20 44 41 54  |HE BAM; READ DAT|
00000B20: 41 20 53 54 41 54 45 4D  45 4E 54 53 20 54 4F 00  |A STATEMENTS TO.|
00000B30: 62 13 6C 27 8F 20 20 2A  20 20 44 45 54 45 52 4D  |b.l'.  *  DETERM|
00000B40: 49 4E 45 20 43 4F 52 52  45 43 54 20 23 20 4F 46  |INE CORRECT # OF|
00000B50: 20 53 45 43 54 4F 52 53  20 50 45 52 20 54 52 41  | SECTORS PER TRA|
00000B60: 43 4B 00 6C 13 6D 27 8F  20 20 2A 2F 00 7A 13 74  |CK.l.m'.  */.z.t|
00000B70: 27 81 20 49 B2 31 20 A4  20 34 00 A9 13 7E 27 87  |'. I.1 . 4...~'.|
00000B80: 20 4C 2C 48 2C 4E 3A 20  8F 20 2A 2A 20 54 52 41  | L,H,N: . ** TRA|
00000B90: 43 4B 53 20 4C 20 54 4F  20 48 20 48 41 56 45 20  |CKS L TO H HAVE |
00000BA0: 4E 20 53 45 43 54 4F 52  53 00 B7 13 88 27 81 20  |N SECTORS....'. |
00000BB0: 4A B2 4C 20 A4 20 48 00  C4 13 92 27 53 5A 25 28  |J.L . H....'SZ%(|
00000BC0: 4A 29 B2 4E 00 E2 13 A6  27 A1 23 44 46 2C 41 24  |J).N....'.#DF,A$|
00000BD0: 3A 20 8B 20 41 24 B2 22  22 20 A7 20 41 24 B2 43  |: . A$."" . A$.C|
00000BE0: 30 24 00 03 14 BF 27 41  B2 C6 28 41 24 29 3A 20  |0$....'A..(A$): |
00000BF0: 46 32 B2 46 32 AA 41 3A  20 42 4D 25 28 4A 2C 30  |F2.F2.A: BM%(J,0|
00000C00: 29 B2 41 00 18 14 C4 27  4B 31 B2 30 3A 20 81 20  |).A....'K1.0: . |
00000C10: 4B B2 31 20 A4 20 42 53  00 36 14 C9 27 A1 23 44  |K.1 . BS.6..'.#D|
00000C20: 46 2C 41 24 3A 20 8B 20  41 24 B2 22 22 20 A7 20  |F,A$: . A$."" . |
00000C30: 41 24 B2 43 30 24 00 52  14 CE 27 4D B2 C6 28 41  |A$.C0$.R..'M..(A|
00000C40: 24 29 3A 42 4D 25 28 4A  2C 4B 29 B2 4D 3A 4D 32  |$):BM%(J,K).M:M2|
00000C50: B2 31 00 8F 14 E2 27 81  20 4B 32 B2 30 20 A4 20  |.1....'. K2.0 . |
00000C60: 37 3A 20 41 B2 20 AB 28  28 4D 20 AF 20 4D 32 29  |7: A. .((M . M2)|
00000C70: B2 30 29 3A 20 42 46 25  28 4A 2C 4B 31 29 B2 41  |.0): BF%(J,K1).A|
00000C80: 3A 20 43 43 28 41 29 B2  43 43 28 41 29 AA 31 00  |: CC(A).CC(A).1.|
00000C90: BB 14 F6 27 4B 31 B2 4B  31 AA 31 3A 20 4D 32 B2  |...'K1.K1.1: M2.|
00000CA0: 4D 32 AA 4D 32 3A 20 8F  20 2A 2A 20 53 48 49 46  |M2.M2: . ** SHIF|
00000CB0: 54 20 4D 32 20 4C 45 46  54 20 31 00 C4 14 00 28  |T M2 LEFT 1....(|
00000CC0: 82 20 4B 32 00 CC 14 0A  28 82 20 4B 00 D5 14 0F  |. K2....(. K....|
00000CD0: 28 8F 20 2F 2A 00 07 15  10 28 8F 20 20 2A 20 45  |(. /*....(.  * E|
00000CE0: 41 43 48 20 42 41 4D 20  45 4E 54 52 59 20 43 4F  |ACH BAM ENTRY CO|
00000CF0: 55 4C 44 20 52 45 50 52  45 53 45 4E 54 20 32 34  |ULD REPRESENT 24|
00000D00: 20 42 4C 4F 43 4B 53 00  44 15 11 28 8F 20 20 2A  | BLOCKS.D..(.  *|
00000D10: 20 4D 41 52 4B 20 41 53  20 49 4E 56 41 4C 49 44  | MARK AS INVALID|
00000D20: 20 42 4C 4F 43 4B 53 20  47 52 45 41 54 45 52 20  | BLOCKS GREATER |
00000D30: 54 48 41 4E 20 4E 55 4D  42 45 52 20 49 4E 20 54  |THAN NUMBER IN T|
00000D40: 52 41 43 4B 00 84 15 12  28 8F 20 20 2A 20 20 2D  |RACK....(.  *  -|
00000D50: 20 4E 4F 52 4D 41 4C 4C  59 20 57 49 4C 4C 20 42  | NORMALLY WILL B|
00000D60: 45 20 22 41 4C 4C 4F 43  41 54 45 44 22 3B 20 46  |E "ALLOCATED"; F|
00000D70: 52 45 45 20 57 4F 55 4C  44 20 42 45 20 42 41 44  |REE WOULD BE BAD|
00000D80: 20 42 41 4D 00 8E 15 13  28 8F 20 20 2A 2F 00 96  | BAM....(.  */..|
00000D90: 15 14 28 4B B2 4E 00 DC  15 1E 28 8B 20 4B B3 B2  |..(K.N....(. K..|
00000DA0: 4D 53 20 A7 20 41 B2 42  46 25 28 4A 2C 4B 29 3A  |MS . A.BF%(J,K):|
00000DB0: 20 42 46 25 28 4A 2C 4B  29 B2 41 AB 32 3A 20 43  | BF%(J,K).A.2: C|
00000DC0: 43 28 41 29 B2 43 43 28  41 29 AB 31 3A 20 4B B2  |C(A).CC(A).1: K.|
00000DD0: 4B AA 31 3A 20 89 20 31  30 32 37 30 00 E4 15 28  |K.1: . 10270...(|
00000DE0: 28 82 20 4A 00 EC 15 32  28 82 20 49 00 05 16 04  |(. J...2(. I....|
00000DF0: 29 53 24 B2 22 22 3A 20  81 20 49 B2 31 34 34 20  |)S$."": . I.144 |
00000E00: A4 20 31 37 30 00 2B 16  0E 29 A1 23 44 46 2C 41  |. 170.+..).#DF,A|
00000E10: 24 3A 20 53 24 B2 53 24  AA C7 28 C6 28 41 24 AA  |$: S$.S$..(.(A$.|
00000E20: 43 30 24 29 20 AF 20 31  32 37 29 00 33 16 18 29  |C0$) . 127).3..)|
00000E30: 82 20 49 00 4E 16 22 29  98 4F 55 2C 53 24 3A 20  |. I.N.").OU,S$: |
00000E40: 8F 20 2A 2A 20 44 49 53  4B 20 4E 41 4D 45 00 89  |. ** DISK NAME..|
00000E50: 16 2C 29 81 20 49 B2 31  37 31 20 A4 20 32 35 35  |.,). I.171 . 255|
00000E60: 3A 20 A1 23 44 46 2C 41  24 3A 20 82 20 49 3A 20  |: .#DF,A$: . I: |
00000E70: 8F 20 2A 2A 20 53 4B 49  50 20 54 4F 20 45 4E 44  |. ** SKIP TO END|
00000E80: 20 4F 46 20 42 4C 4F 43  4B 00 92 16 EE 2A 8F 20  | OF BLOCK....*. |
00000E90: 2F 2A 00 C0 16 EF 2A 8F  20 20 2A 20 4E 4F 57 20  |/*....*.  * NOW |
00000EA0: 43 4F 4D 50 49 4C 45 20  41 20 4C 49 53 54 20 4F  |COMPILE A LIST O|
00000EB0: 46 20 54 48 45 20 46 49  4C 45 20 4E 41 4D 45 53  |F THE FILE NAMES|
00000EC0: 00 EA 16 F0 2A 8F 20 20  2A 20 20 54 48 45 49 52  |....*.  *  THEIR|
00000ED0: 20 53 54 41 52 54 49 4E  47 20 42 4C 4F 43 4B 53  | STARTING BLOCKS|
00000EE0: 20 41 4E 44 20 53 49 5A  45 53 00 F4 16 F1 2A 8F  | AND SIZES....*.|
00000EF0: 20 20 2A 2F 00 FD 16 F8  2A 4E 46 B2 30 00 33 17  |  */....*NF.0.3.|
00000F00: 02 2B 8B 20 4E 46 B2 30  20 A7 20 31 31 30 32 30  |.+. NF.0 . 11020|
00000F10: 3A 20 8F 20 2A 2A 20 53  4B 49 50 20 32 20 42 59  |: . ** SKIP 2 BY|
00000F20: 54 45 53 20 45 56 45 52  59 20 38 20 45 4E 54 52  |TES EVERY 8 ENTR|
00000F30: 49 45 53 00 3F 17 07 2B  A1 23 44 46 2C 41 24 00  |IES.?..+.#DF,A$.|
00000F40: 4B 17 08 2B A1 23 44 46  2C 41 24 00 67 17 0C 2B  |K..+.#DF,A$.g..+|
00000F50: 4E 46 B2 4E 46 AA 31 3A  20 8B 20 4E 46 B1 B2 38  |NF.NF.1: . NF..8|
00000F60: 20 A7 20 4E 46 B2 30 00  85 17 16 2B A1 23 44 46  | . NF.0....+.#DF|
00000F70: 2C 45 24 3A 20 8B 20 45  24 B2 22 22 20 A7 20 45  |,E$: . E$."" . E|
00000F80: 24 B2 43 30 24 00 94 17  20 2B A1 23 44 46 2C 54  |$.C0$... +.#DF,T|
00000F90: 24 2C 53 24 00 AD 17 2A  2B 45 B2 C6 28 45 24 29  |$,S$...*+E..(E$)|
00000FA0: 3A 20 8F 20 45 58 54 45  4E 53 49 4F 4E 00 C6 17  |: . EXTENSION...|
00000FB0: 34 2B 54 B2 C6 28 54 24  AA 43 30 24 29 3A 20 8F  |4+T..(T$.C0$): .|
00000FC0: 20 54 52 41 43 4B 00 E0  17 3E 2B 53 B2 C6 28 53  | TRACK...>+S..(S|
00000FD0: 24 AA 43 30 24 29 3A 20  8F 20 53 45 43 54 4F 52  |$.C0$): . SECTOR|
00000FE0: 00 FB 17 48 2B 41 B2 45  20 AF 20 31 32 37 3A 20  |...H+A.E . 127: |
00000FF0: 8B 20 41 B1 34 20 A7 20  41 B2 35 00 24 18 52 2B  |. A.4 . A.5.$.R+|
00001000: 54 24 B2 54 59 24 28 41  29 3A 20 8B 20 28 45 20  |T$.TY$(A): . (E |
00001010: AF 20 31 32 38 29 B2 30  20 A7 20 54 24 B2 54 24  |. 128).0 . T$.T$|
00001020: AA 22 2A 22 00 33 18 5C  2B 53 24 B2 22 22 3A 20  |."*".3.\+S$."": |
00001030: 49 B2 33 00 6E 18 66 2B  A1 23 44 46 2C 41 24 3A  |I.3.n.f+.#DF,A$:|
00001040: 20 8B 20 41 24 B3 B1 53  53 24 20 A7 20 53 24 B2  | . A$..SS$ . S$.|
00001050: 53 24 AA 41 24 3A 20 8B  20 49 B3 31 38 20 A7 20  |S$.A$: . I.18 . |
00001060: 49 B2 49 AA 31 3A 20 89  20 31 31 31 31 30 00 93  |I.I.1: . 11110..|
00001070: 18 70 2B 8B 20 49 B3 32  37 20 A7 20 A1 23 44 46  |.p+. I.27 . .#DF|
00001080: 2C 41 24 3A 20 49 B2 49  AA 31 3A 20 89 20 31 31  |,A$: I.I.1: . 11|
00001090: 31 32 30 00 A9 18 7A 2B  A1 23 44 46 2C 41 24 2C  |120...z+.#DF,A$,|
000010A0: 42 24 3A 20 52 53 B2 53  54 00 E0 18 7F 2B 58 B2  |B$: RS.ST....+X.|
000010B0: C6 28 41 24 AA 43 30 24  29 AA 32 35 36 AC C6 28  |.(A$.C0$).256..(|
000010C0: 42 24 AA 43 30 24 29 3A  20 8F 20 46 49 4C 45 20  |B$.C0$): . FILE |
000010D0: 53 49 5A 45 20 28 41 4C  4C 45 47 45 44 4C 59 29  |SIZE (ALLEGEDLY)|
000010E0: 00 1E 19 89 2B 8B 20 28  45 20 AF 20 31 32 38 29  |....+. (E . 128)|
000010F0: B2 30 20 A7 20 42 43 B2  42 43 AA 31 3A 20 42 42  |.0 . BC.BC.1: BB|
00001100: B2 42 42 AA 58 3A 20 20  8F 20 2A 2A 20 42 41 44  |.BB.X:  . ** BAD|
00001110: 4C 59 20 43 4C 4F 53 45  44 20 46 49 4C 45 00 62  |LY CLOSED FILE.b|
00001120: 19 8E 2B 44 4E 24 28 46  43 29 B2 53 24 3A 20 44  |..+DN$(FC).S$: D|
00001130: 45 25 28 46 43 29 B2 45  3A 20 44 54 25 28 46 43  |E%(FC).E: DT%(FC|
00001140: 29 B2 54 3A 20 44 53 25  28 46 43 29 B2 53 3A 20  |).T: DS%(FC).S: |
00001150: 44 5A 25 28 46 43 29 B2  58 3A 20 46 42 B2 46 42  |DZ%(FC).X: FB.FB|
00001160: AA 58 00 8C 19 93 2B 41  B2 54 3A 20 42 B2 53 3A  |.X....+A.T: B.S:|
00001170: 20 8D 20 32 30 30 3A 20  41 B2 46 43 3A 20 8D 20  | . 200: A.FC: . |
00001180: 35 30 30 3A 20 46 43 B2  46 43 AA 31 00 C6 19 98  |500: FC.FC.1....|
00001190: 2B 98 4F 55 2C 53 24 3B  C8 28 22 20 20 20 20 20  |+.OU,S$;.("     |
000011A0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 22  |               "|
000011B0: 2C 32 31 AB C3 28 53 24  29 29 3B 58 3B 22 46 52  |,21..(S$));X;"FR|
000011C0: 4F 4D 22 3B 41 24 00 D9  19 D4 2B 8B 20 52 53 B2  |OM";A$....+. RS.|
000011D0: 30 20 A7 20 31 31 30 31  30 00 F8 19 F2 2B 8B 20  |0 . 11010....+. |
000011E0: 52 53 B3 B1 36 34 20 A7  20 99 22 45 52 52 4F 52  |RS..64 . ."ERROR|
000011F0: 20 52 53 3D 22 3B 52 53  00 01 1A 1A 2C 8F 20 2F  | RS=";RS....,. /|
00001200: 2A 00 40 1A 1B 2C 8F 20  20 2A 20 4E 4F 57 20 57  |*.@..,.  * NOW W|
00001210: 45 20 41 43 43 45 53 53  20 54 48 45 20 44 49 53  |E ACCESS THE DIS|
00001220: 4B 20 52 41 4E 44 4F 4D  4C 59 20 54 4F 20 42 55  |K RANDOMLY TO BU|
00001230: 49 4C 44 20 41 20 50 49  43 54 55 52 45 20 4F 46  |ILD A PICTURE OF|
00001240: 00 72 1A 1C 2C 8F 20 20  2A 20 54 48 45 20 4C 49  |.r..,.  * THE LI|
00001250: 4E 4B 53 20 42 45 54 57  45 45 4E 20 54 48 45 20  |NKS BETWEEN THE |
00001260: 42 4C 4F 43 4B 53 20 4F  4E 20 54 48 45 20 44 49  |BLOCKS ON THE DI|
00001270: 53 4B 00 7C 1A 1D 2C 8F  20 20 2A 2F 00 A7 1A 24  |SK.|..,.  */...$|
00001280: 2C A0 20 44 46 3A 20 81  20 49 B2 31 20 A4 20 31  |,. DF: . I.1 . 1|
00001290: 30 30 30 3A 20 82 20 49  3A 20 9F 20 44 46 2C 44  |000: . I: . DF,D|
000012A0: 56 2C 38 2C 22 23 22 00  AD 1A 2E 2C 99 00 BC 1A  |V,8,"#"....,....|
000012B0: 38 2C 81 20 54 B2 31 20  A4 20 4D 54 00 DA 1A 42  |8,. T.1 . MT...B|
000012C0: 2C 99 20 22 54 52 41 43  4B 22 3B 54 3B C7 28 31  |,. "TRACK";T;.(1|
000012D0: 34 35 29 3B C7 28 31 33  29 3B 00 EF 1A 4C 2C 81  |45);.(13);...L,.|
000012E0: 20 53 B2 30 20 A4 20 53  5A 25 28 54 29 AB 31 00  | S.0 . SZ%(T).1.|
000012F0: 2A 1B 56 2C 98 31 35 2C  22 55 31 3A 38 2C 22 3B  |*.V,.15,"U1:8,";|
00001300: 44 4B 24 3B 54 3B 53 3A  20 84 31 35 2C 45 4E 2C  |DK$;T;S: .15,EN,|
00001310: 45 4D 24 2C 45 54 2C 45  53 3A 20 8B 20 45 4E B3  |EM$,ET,ES: . EN.|
00001320: B1 30 20 A7 20 31 31 33  39 32 00 48 1B 6A 2C A1  |.0 . 11392.H.j,.|
00001330: 23 44 46 2C 41 24 3A 20  8B 20 41 24 B2 22 22 20  |#DF,A$: . A$."" |
00001340: A7 20 41 24 B2 43 30 24  00 5D 1B 6F 2C 4C 54 25  |. A$.C0$.].o,LT%|
00001350: 28 54 2C 53 29 20 B2 20  C6 28 41 24 29 00 7B 1B  |(T,S) . .(A$).{.|
00001360: 74 2C A1 23 44 46 2C 41  24 3A 20 8B 20 41 24 B2  |t,.#DF,A$: . A$.|
00001370: 22 22 20 A7 20 41 24 B2  43 30 24 00 90 1B 79 2C  |"" . A$.C0$...y,|
00001380: 4C 53 25 28 54 2C 53 29  20 B2 20 C6 28 41 24 29  |LS%(T,S) . .(A$)|
00001390: 00 D3 1B 7E 2C 82 20 53  3A 20 89 20 31 31 34 30  |...~,. S: . 1140|
000013A0: 30 3A 20 8F 20 2A 2A 20  45 52 52 4F 52 20 48 41  |0: . ** ERROR HA|
000013B0: 4E 44 4C 49 4E 47 20 48  45 52 45 20 54 4F 20 53  |NDLING HERE TO S|
000013C0: 50 45 45 44 20 53 45 43  54 4F 52 20 4C 4F 4F 50  |PEED SECTOR LOOP|
000013D0: 20 55 50 00 FF 1B 80 2C  99 20 22 44 49 53 4B 20  | UP....,. "DISK |
000013E0: 45 52 52 4F 52 22 3B 45  4E 3B 45 4D 24 3B 45 54  |ERROR";EN;EM$;ET|
000013F0: 3B 45 53 3A 20 A0 20 44  46 3A 20 A0 20 31 35 00  |;ES: . DF: . 15.|
00001400: 25 1C 81 2C 9F 20 31 35  2C 44 56 2C 31 35 2C 22  |%..,. 15,DV,15,"|
00001410: 49 22 AA 44 4B 24 3A 20  9F 20 44 46 2C 44 56 2C  |I".DK$: . DF,DV,|
00001420: 38 2C 22 23 22 00 4B 1C  82 2C 4C 54 25 28 54 2C  |8,"#".K..,LT%(T,|
00001430: 53 29 B2 AB 31 3A 20 4C  53 25 28 54 2C 53 29 B2  |S)..1: LS%(T,S).|
00001440: AB 31 3A 20 89 20 31 31  33 39 30 00 53 1C 88 2C  |.1: . 11390.S..,|
00001450: 82 20 54 00 62 1C 92 2C  A0 20 44 46 3A 20 A0 20  |. T.b..,. DF: . |
00001460: 31 35 00 96 1C F6 2C 98  4F 55 2C 46 43 AB 42 43  |15....,.OU,FC.BC|
00001470: 3B 22 47 4F 4F 44 20 46  49 4C 45 53 20 54 4F 54  |;"GOOD FILES TOT|
00001480: 41 4C 4C 49 4E 47 22 3B  46 42 AB 42 42 3B 22 42  |ALLING";FB.BB;"B|
00001490: 4C 4F 43 4B 53 22 00 C3  1C 00 2D 98 4F 55 2C 42  |LOCKS"....-.OU,B|
000014A0: 43 3B 22 42 41 44 20 46  49 4C 45 53 20 54 4F 54  |C;"BAD FILES TOT|
000014B0: 41 4C 4C 49 4E 47 22 3B  42 42 3B 22 42 4C 4F 43  |ALLING";BB;"BLOC|
000014C0: 4B 53 22 00 0B 1D 0A 2D  98 4F 55 2C 22 42 49 54  |KS"....-.OU,"BIT|
000014D0: 4D 41 50 20 53 48 4F 57  53 22 3B 43 43 28 31 29  |MAP SHOWS";CC(1)|
000014E0: 3B 22 20 42 4C 4F 43 4B  53 20 41 4C 4C 4F 43 41  |;" BLOCKS ALLOCA|
000014F0: 54 45 44 3B 22 3B 43 43  28 30 29 3B 22 28 22 3B  |TED;";CC(0);"(";|
00001500: 46 32 3B 22 29 20 46 52  45 45 22 00 4A 1D 14 2D  |F2;") FREE".J..-|
00001510: 41 B2 B5 28 46 43 AD 38  29 AA 31 3A 20 98 4F 55  |A..(FC.8).1: .OU|
00001520: 2C 46 43 3B 22 46 49 4C  45 20 45 4E 54 52 49 45  |,FC;"FILE ENTRIE|
00001530: 53 20 49 4E 22 3B 41 3B  22 44 49 52 45 43 54 4F  |S IN";A;"DIRECTO|
00001540: 52 59 20 42 4C 4F 43 4B  53 22 00 53 1D D6 2E 8F  |RY BLOCKS".S....|
00001550: 20 2F 2A 00 94 1D D7 2E  8F 20 20 2A 20 4E 4F 57  | /*......  * NOW|
00001560: 20 54 52 41 43 45 20 44  4F 57 4E 20 54 48 45 20  | TRACE DOWN THE |
00001570: 4C 49 4E 4B 45 44 20 4C  49 53 54 20 4F 46 20 42  |LINKED LIST OF B|
00001580: 4C 4F 43 4B 53 20 46 4F  52 20 45 41 43 48 20 46  |LOCKS FOR EACH F|
00001590: 49 4C 45 2C 00 BB 1D D8  2E 8F 20 20 2A 20 20 41  |ILE,......  *  A|
000015A0: 4E 44 20 4E 4F 54 45 20  41 4E 59 20 49 4E 43 4F  |ND NOTE ANY INCO|
000015B0: 4E 53 49 53 54 45 4E 43  49 45 53 00 C5 1D D9 2E  |NSISTENCIES.....|
000015C0: 8F 20 20 2A 2F 00 F7 1D  E0 2E 81 20 49 B2 30 20  |.  */...... I.0 |
000015D0: A4 20 46 43 AB 31 3A 20  8F 20 2A 2A 20 46 4F 52  |. FC.1: . ** FOR|
000015E0: 20 45 41 43 48 20 46 49  4C 45 20 49 4E 20 44 49  | EACH FILE IN DI|
000015F0: 52 45 43 54 4F 52 59 00  18 1E F4 2E 54 B2 44 54  |RECTORY.....T.DT|
00001600: 25 28 49 29 3A 20 8F 20  2A 2A 20 49 4E 49 54 49  |%(I): . ** INITI|
00001610: 41 4C 20 54 52 41 43 4B  00 46 1E F9 2E 54 31 B2  |AL TRACK.F...T1.|
00001620: 30 3A 20 8F 20 2A 2A 20  49 4E 49 54 49 41 4C 20  |0: . ** INITIAL |
00001630: 50 52 45 56 49 4F 55 53  20 54 52 41 43 4B 20 28  |PREVIOUS TRACK (|
00001640: 44 55 4D 4D 59 29 00 68  1E FE 2E 53 B2 44 53 25  |DUMMY).h...S.DS%|
00001650: 28 49 29 3A 20 8F 20 2A  2A 20 49 4E 49 54 49 41  |(I): . ** INITIA|
00001660: 4C 20 53 45 43 54 4F 52  00 97 1E 03 2F 53 31 B2  |L SECTOR..../S1.|
00001670: 30 3A 20 8F 20 2A 2A 20  49 4E 49 54 49 41 4C 20  |0: . ** INITIAL |
00001680: 50 52 45 56 49 4F 55 53  20 53 45 43 54 4F 52 20  |PREVIOUS SECTOR |
00001690: 28 44 55 4D 4D 59 29 00  BC 1E 08 2F 58 B2 44 5A  |(DUMMY)..../X.DZ|
000016A0: 25 28 49 29 3A 20 8F 20  2A 2A 20 41 4C 4C 45 47  |%(I): . ** ALLEG|
000016B0: 45 44 20 46 49 4C 45 20  53 49 5A 45 00 D8 1E 12  |ED FILE SIZE....|
000016C0: 2F 4A B2 30 3A 20 8F 20  2A 2A 20 42 4C 4F 43 4B  |/J.0: . ** BLOCK|
000016D0: 20 43 4F 55 4E 54 45 52  00 06 1F 1C 2F 8B 20 30  | COUNTER..../. 0|
000016E0: B3 54 20 AF 20 54 B3 B2  4D 54 20 A7 20 8B 20 30  |.T . T..MT . . 0|
000016F0: B3 B2 53 20 AF 20 53 B3  53 5A 25 28 54 29 20 A7  |..S . S.SZ%(T) .|
00001700: 20 31 32 31 30 30 00 25  1F 21 2F 41 B2 54 31 3A  | 12100.%.!/A.T1:|
00001710: 42 B2 53 31 3A 8D 20 32  30 30 3A 20 41 B2 49 3A  |B.S1:. 200: A.I:|
00001720: 8D 20 35 30 30 00 59 1F  26 2F 98 4F 55 2C 53 24  |. 500.Y.&/.OU,S$|
00001730: 3B 22 20 42 41 44 20 54  52 41 43 4B 26 53 45 43  |;" BAD TRACK&SEC|
00001740: 54 4F 52 20 50 4F 49 4E  54 45 52 3B 20 42 4C 4F  |TOR POINTER; BLO|
00001750: 43 4B 22 3B 4A 3B 41 24  3B 00 77 1F 2B 2F 41 B2  |CK";J;A$;.w.+/A.|
00001760: 54 3A 42 B2 53 3A 8D 20  32 30 30 3A 20 98 4F 55  |T:B.S:. 200: .OU|
00001770: 2C 22 2D 3E 22 41 24 00  83 1F 30 2F 89 20 31 32  |,"->"A$...0/. 12|
00001780: 33 30 30 00 BA 1F 44 2F  4A B2 4A AA 31 3A 20 8B  |300...D/J.J.1: .|
00001790: 20 42 55 25 28 54 2C 53  2C 30 29 B3 B1 30 20 A7  | BU%(T,S,0)..0 .|
000017A0: 20 45 24 B2 22 4D 55 4C  54 49 50 4C 45 4C 59 20  | E$."MULTIPLELY |
000017B0: 22 3A 20 89 20 31 32 31  31 30 00 D3 1F 49 2F 8B  |": . 12110...I/.|
000017C0: 20 42 46 25 28 54 2C 53  29 B2 31 20 A7 20 31 32  | BF%(T,S).1 . 12|
000017D0: 31 33 30 00 E5 1F 4A 2F  45 24 B2 22 55 4E 22 3A  |130...J/E$."UN":|
000017E0: 8D 20 32 30 30 00 19 20  4E 2F 41 B2 49 3A 20 8D  |. 200.. N/A.I: .|
000017F0: 20 35 30 30 3A 20 98 4F  55 2C 22 45 52 52 4F 52  | 500: .OU,"ERROR|
00001800: 20 49 4E 20 22 3B 53 24  3B 22 28 42 4C 4F 43 4B  | IN ";S$;"(BLOCK|
00001810: 22 3B 4A 3B 22 29 3A 22  3B 00 4B 20 53 2F 41 B2  |";J;"):";.K S/A.|
00001820: 54 3A 20 42 B2 53 3A 20  8D 20 32 30 30 3A 20 98  |T: B.S: . 200: .|
00001830: 4F 55 2C 45 24 3B 22 41  4C 4C 4F 43 41 54 45 44  |OU,E$;"ALLOCATED|
00001840: 20 42 4C 4F 43 4B 20 22  3B 41 24 00 5E 20 58 2F  | BLOCK ";A$.^ X/|
00001850: 8D 20 36 30 30 3A 20 98  4F 55 2C 42 55 24 00 66  |. 600: .OU,BU$.f|
00001860: 20 62 2F 4B B2 30 00 95  20 67 2F 8B 20 4B 20 B3  | b/K.0.. g/. K .|
00001870: 20 39 20 A7 20 8B 20 42  55 25 28 54 2C 53 2C 4B  | 9 . . BU%(T,S,K|
00001880: 29 B3 B1 30 20 A7 20 4B  B2 4B AA 33 3A 20 89 20  |)..0 . K.K.3: . |
00001890: 31 32 31 33 35 00 DB 20  68 2F 8B 20 4B 20 B3 20  |12135.. h/. K . |
000018A0: 39 20 A7 20 42 55 25 28  54 2C 53 2C 4B 29 B2 49  |9 . BU%(T,S,K).I|
000018B0: AA 31 3A 42 55 25 28 54  2C 53 2C 4B AA 31 29 B2  |.1:BU%(T,S,K.1).|
000018C0: 54 31 3A 42 55 25 28 54  2C 53 2C 4B AA 32 29 B2  |T1:BU%(T,S,K.2).|
000018D0: 53 31 3A 20 89 20 31 32  31 34 35 00 21 21 6C 2F  |S1: . 12145.!!l/|
000018E0: 41 B2 54 3A 42 B2 53 3A  8D 32 30 30 3A 98 4F 55  |A.T:B.S:.200:.OU|
000018F0: 2C 22 42 4C 4F 43 4B 20  22 3B 41 24 3B 22 20 48  |,"BLOCK ";A$;" H|
00001900: 41 53 20 54 4F 4F 20 4D  41 4E 59 20 52 45 46 45  |AS TOO MANY REFE|
00001910: 52 45 4E 43 45 53 20 54  4F 20 52 45 43 4F 52 44  |RENCES TO RECORD|
00001920: 22 00 4C 21 71 2F 54 31  B2 54 3A 20 53 31 B2 53  |".L!q/T1.T: S1.S|
00001930: 3A 20 54 B2 4C 54 25 28  54 31 2C 53 31 29 3A 20  |: T.LT%(T1,S1): |
00001940: 53 B2 4C 53 25 28 54 31  2C 53 31 29 00 5E 21 76  |S.LS%(T1,S1).^!v|
00001950: 2F 8B 20 4A B3 58 20 A7  20 31 32 32 30 30 00 91  |/. J.X . 12200..|
00001960: 21 80 2F 8B 20 4A B2 58  20 A7 20 8B 20 54 B2 30  |!./. J.X . . T.0|
00001970: 20 A7 20 31 32 33 30 30  3A 20 8F 20 2A 2A 20 4E  | . 12300: . ** N|
00001980: 4F 52 4D 41 4C 20 45 4E  44 2D 4F 46 2D 46 49 4C  |ORMAL END-OF-FIL|
00001990: 45 00 B1 21 8A 2F 41 B2  54 31 3A 42 B2 53 31 3A  |E..!./A.T1:B.S1:|
000019A0: 8D 20 32 30 30 3A 20 41  B2 49 3A 20 8D 20 35 30  |. 200: A.I: . 50|
000019B0: 30 00 E6 21 8F 2F 98 4F  55 2C 22 46 49 4C 45 20  |0..!./.OU,"FILE |
000019C0: 22 3B 53 24 3B 22 20 4E  4F 54 20 45 4E 44 45 44  |";S$;" NOT ENDED|
000019D0: 20 41 54 20 42 4C 4F 43  4B 20 43 4F 55 4E 54 22  | AT BLOCK COUNT"|
000019E0: 3B 58 3B 41 24 3B 00 05  22 94 2F 41 B2 54 3A 42  |;X;A$;.."./A.T:B|
000019F0: B2 53 3A 8D 20 32 30 30  3A 20 98 4F 55 2C 22 2D  |.S:. 200: .OU,"-|
00001A00: 3E 22 3B 41 24 00 3E 22  9E 2F 89 20 31 32 33 30  |>";A$.>"./. 1230|
00001A10: 30 3A 20 8F 20 2A 2A 20  49 46 20 57 45 20 43 4F  |0: . ** IF WE CO|
00001A20: 4E 54 49 4E 55 45 44 20  4F 4E 20 4C 49 53 54 2C  |NTINUED ON LIST,|
00001A30: 20 57 45 20 4D 49 47 48  54 20 4C 4F 4F 50 00 7C  | WE MIGHT LOOP.||
00001A40: 22 A8 2F 8B 20 54 B3 B1  30 20 A7 20 31 32 30 36  |"./. T..0 . 1206|
00001A50: 30 3A 20 8F 20 2A 2A 20  20 4E 4F 52 4D 41 4C 20  |0: . **  NORMAL |
00001A60: 47 4F 4F 44 20 42 4C 4F  43 4B 20 49 4E 20 4D 49  |GOOD BLOCK IN MI|
00001A70: 44 44 4C 45 20 4F 46 20  46 49 4C 45 00 9C 22 AD  |DDLE OF FILE..".|
00001A80: 2F 41 B2 54 31 3A 42 B2  53 31 3A 8D 20 32 30 30  |/A.T1:B.S1:. 200|
00001A90: 3A 20 41 B2 49 3A 20 8D  20 35 30 30 00 D1 22 B2  |: A.I: . 500..".|
00001AA0: 2F 98 4F 55 2C 22 46 49  4C 45 20 22 3B 53 24 3B  |/.OU,"FILE ";S$;|
00001AB0: 22 20 45 4E 44 53 20 50  52 45 4D 41 54 55 52 45  |" ENDS PREMATURE|
00001AC0: 4C 59 3A 20 20 42 4C 4F  43 4B 22 3B 4A 3B 41 24  |LY:  BLOCK";J;A$|
00001AD0: 3B 00 F0 22 B7 2F 41 B2  54 3A 42 B2 53 3A 8D 20  |;.."./A.T:B.S:. |
00001AE0: 32 30 30 3A 20 98 4F 55  2C 22 2D 3E 22 3B 41 24  |200: .OU,"->";A$|
00001AF0: 00 F8 22 0C 30 82 20 49  00 1C 23 BE 32 41 24 B2  |..".0. I..#.2A$.|
00001B00: 22 4E 22 3A 20 85 22 47  49 56 45 20 43 4F 4D 50  |"N": ."GIVE COMP|
00001B10: 4C 45 54 45 20 4D 41 50  22 3B 41 24 00 46 23 C3  |LETE MAP";A$.F#.|
00001B20: 32 41 24 B2 C8 28 41 24  2C 31 29 3A 20 8B 20 41  |2A$..(A$,1): . A|
00001B30: 24 B2 22 4E 22 20 B0 20  41 24 B2 22 CE 22 20 A7  |$."N" . A$."." .|
00001B40: 20 31 34 30 30 30 00 55  23 C8 32 81 20 54 B2 31  | 14000.U#.2. T.1|
00001B50: 20 A4 20 4D 54 00 5D 23  D2 32 98 4F 55 00 9C 23  | . MT.]#.2.OU..#|
00001B60: DC 32 98 4F 55 2C 22 54  52 41 43 4B 22 3B 54 3B  |.2.OU,"TRACK";T;|
00001B70: 22 3A 22 3B 42 4D 25 28  54 2C 30 29 3B 22 4F 46  |":";BM%(T,0);"OF|
00001B80: 22 3B 53 5A 25 28 54 29  3B 22 42 4C 4F 43 4B 53  |";SZ%(T);"BLOCKS|
00001B90: 20 46 52 45 45 3B 20 42  41 4D 22 3B 00 C0 23 E6  | FREE; BAM";..#.|
00001BA0: 32 81 20 49 B2 31 20 A4  20 42 53 3A 20 98 4F 55  |2. I.1 . BS: .OU|
00001BB0: 2C 42 4D 25 28 54 2C 49  29 3B 20 3A 20 82 20 49  |,BM%(T,I); : . I|
00001BC0: 00 C8 23 F0 32 98 4F 55  00 D0 23 5E 33 53 B2 30  |..#.2.OU..#^3S.0|
00001BD0: 00 E8 23 68 33 4C B2 53  3A 20 8B 20 4C B1 4D 53  |..#h3L.S: . L.MS|
00001BE0: 20 A7 20 31 33 32 31 30  00 F2 23 72 33 8D 20 36  | . 13210..#r3. 6|
00001BF0: 30 30 00 0C 24 77 33 53  B2 53 AA 31 3A 20 8B 20  |00..$w3S.S.1: . |
00001C00: 53 B1 4D 53 20 A7 20 31  33 31 39 30 00 2D 24 7C  |S.MS . 13190.-$||
00001C10: 33 8B 20 42 46 25 28 54  2C 53 29 B3 B1 42 46 25  |3. BF%(T,S)..BF%|
00001C20: 28 54 2C 4C 29 20 A7 20  31 33 31 39 30 00 5D 24  |(T,L) . 13190.]$|
00001C30: 7D 33 8B 20 42 55 25 28  54 2C 4C 2C 30 29 20 B2  |}3. BU%(T,L,0) .|
00001C40: 20 30 20 A7 20 8B 20 42  55 25 28 54 2C 53 2C 30  | 0 . . BU%(T,S,0|
00001C50: 29 20 B2 20 30 20 A7 20  31 33 31 38 37 00 65 24  |) . 0 . 13187.e$|
00001C60: 80 33 49 B2 30 00 9A 24  81 33 8B 20 49 B3 39 20  |.3I.0..$.3. I.9 |
00001C70: A7 20 8B 20 42 55 25 28  54 2C 53 2C 49 29 B2 42  |. . BU%(T,S,I).B|
00001C80: 55 25 28 54 2C 4C 2C 49  29 20 A7 20 49 B2 49 AA  |U%(T,L,I) . I.I.|
00001C90: 31 3A 20 89 20 31 33 31  38 35 00 DF 24 82 33 8B  |1: . 13185..$.3.|
00001CA0: 20 49 B3 39 20 89 20 31  33 31 39 30 3A 20 8F 20  | I.9 . 13190: . |
00001CB0: 2A 2A 20 4E 4F 54 20 49  44 45 4E 54 49 43 41 4C  |** NOT IDENTICAL|
00001CC0: 20 45 4E 54 52 49 45 53  20 46 4F 52 20 53 55 43  | ENTRIES FOR SUC|
00001CD0: 43 45 53 53 49 56 45 20  53 45 43 54 4F 52 53 00  |CESSIVE SECTORS.|
00001CE0: 22 25 83 33 8B 20 4C 54  25 28 54 2C 53 29 B2 4C  |"%.3. LT%(T,S).L|
00001CF0: 54 25 28 54 2C 4C 29 20  A7 20 8B 20 4C 53 25 28  |T%(T,L) . . LS%(|
00001D00: 54 2C 53 29 B2 4C 53 25  28 54 2C 4C 29 20 89 20  |T,S).LS%(T,L) . |
00001D10: 31 33 31 37 35 3A 20 8F  20 49 44 45 4E 54 49 43  |13175: . IDENTIC|
00001D20: 41 4C 00 40 25 86 33 8B  20 42 55 24 B2 22 41 58  |AL.@%.3. BU$."AX|
00001D30: 2D 3E 28 30 2C 30 29 22  20 89 20 31 33 31 36 30  |->(0,0)" . 13160|
00001D40: 00 6B 25 8B 33 8B 20 4C  B2 53 AB 31 20 A7 20 98  |.k%.3. L.S.1 . .|
00001D50: 4F 55 2C 22 20 53 45 43  54 4F 52 22 3B 4C 3B 42  |OU," SECTOR";L;B|
00001D60: 55 24 3A 20 89 20 31 33  31 36 30 00 95 25 90 33  |U$: . 13160..%.3|
00001D70: 98 4F 55 2C 22 20 53 45  43 54 4F 52 22 3B 4C 3B  |.OU," SECTOR";L;|
00001D80: 22 54 4F 22 3B 53 AB 31  3B 42 55 24 3A 20 89 20  |"TO";S.1;BU$: . |
00001D90: 31 33 31 36 30 00 9D 25  9A 33 82 20 54 00 A6 25  |13160..%.3. T..%|
00001DA0: A6 36 8F 20 2F 2A 00 C0  25 A7 36 8F 20 20 2A 20  |.6. /*..%.6.  * |
00001DB0: 49 4E 54 45 52 41 43 54  49 56 45 20 4D 4F 44 45  |INTERACTIVE MODE|
00001DC0: 00 CA 25 A8 36 8F 20 20  2A 2F 00 EE 25 B0 36 4F  |..%.6.  */..%.6O|
00001DD0: 55 B2 33 3A 20 8F 20 2A  2A 20 53 45 54 20 4F 55  |U.3: . ** SET OU|
00001DE0: 54 50 55 54 20 54 4F 20  53 43 52 45 45 4E 00 FB  |TPUT TO SCREEN..|
00001DF0: 25 BA 36 54 B2 30 3A 20  53 B2 30 00 16 26 C4 36  |%.6T.0: S.0..&.6|
00001E00: 41 B2 54 3A 20 42 B2 53  3A 20 8D 20 32 30 30 3A  |A.T: B.S: . 200:|
00001E10: 20 99 20 41 24 3B 00 51  26 C9 36 85 20 22 28 41  | . A$;.Q&.6. "(A|
00001E20: 2C 42 2C 43 2C 44 2C 48  2C 46 2C 4E 2C 4F 2C 54  |,B,C,D,H,F,N,O,T|
00001E30: 2C 24 2C 51 55 49 54 29  22 3B 41 24 3A 20 8B 20  |,$,QUIT)";A$: . |
00001E40: 41 24 B2 22 51 55 49 54  22 20 A7 20 36 33 39 30  |A$."QUIT" . 6390|
00001E50: 30 00 72 26 CE 36 42 24  B2 C8 28 41 24 2C 31 29  |0.r&.6B$..(A$,1)|
00001E60: 3A 20 41 24 B2 C9 28 41  24 2C C3 28 41 24 29 AB  |: A$..(A$,.(A$).|
00001E70: 31 29 00 92 26 D8 36 8B  20 42 24 B2 22 41 22 20  |1)..&.6. B$."A" |
00001E80: A7 20 8D 20 31 34 31 30  30 3A 20 89 20 31 34 30  |. . 14100: . 140|
00001E90: 32 30 00 B2 26 DD 36 8B  20 42 24 B2 22 42 22 20  |20..&.6. B$."B" |
00001EA0: A7 20 8D 20 31 34 31 37  30 3A 20 89 20 31 34 30  |. . 14170: . 140|
00001EB0: 32 30 00 D2 26 E2 36 8B  20 42 24 B2 22 43 22 20  |20..&.6. B$."C" |
00001EC0: A7 20 8D 20 31 34 36 30  30 3A 20 89 20 31 34 30  |. . 14600: . 140|
00001ED0: 32 30 00 F2 26 E7 36 8B  20 42 24 B2 22 44 22 20  |20..&.6. B$."D" |
00001EE0: A7 20 8D 20 31 34 32 30  30 3A 20 89 20 31 34 30  |. . 14200: . 140|
00001EF0: 32 30 00 12 27 EC 36 8B  20 42 24 B2 22 46 22 20  |20..'.6. B$."F" |
00001F00: A7 20 8D 20 31 34 33 30  30 3A 20 89 20 31 34 30  |. . 14300: . 140|
00001F10: 32 30 00 32 27 F1 36 8B  20 42 24 B2 22 48 22 20  |20.2'.6. B$."H" |
00001F20: A7 20 8D 20 31 34 34 30  30 3A 20 89 20 31 34 30  |. . 14400: . 140|
00001F30: 32 30 00 52 27 F6 36 8B  20 42 24 B2 22 4E 22 20  |20.R'.6. B$."N" |
00001F40: A7 20 8D 20 31 34 37 30  30 3A 20 89 20 31 34 30  |. . 14700: . 140|
00001F50: 32 30 00 72 27 FB 36 8B  20 42 24 B2 22 4F 22 20  |20.r'.6. B$."O" |
00001F60: A7 20 8D 20 31 34 38 30  30 3A 20 89 20 31 34 30  |. . 14800: . 140|
00001F70: 32 30 00 92 27 00 37 8B  20 42 24 B2 22 54 22 20  |20..'.7. B$."T" |
00001F80: A7 20 8D 20 31 34 39 30  30 3A 20 89 20 31 34 30  |. . 14900: . 140|
00001F90: 32 30 00 B2 27 05 37 8B  20 42 24 B2 22 24 22 20  |20..'.7. B$."$" |
00001FA0: A7 20 8D 20 31 35 30 30  30 3A 20 89 20 31 34 30  |. . 15000: . 140|
00001FB0: 32 30 00 CD 27 09 37 99  22 49 4E 56 41 4C 49 44  |20..'.7."INVALID|
00001FC0: 20 43 4F 4D 4D 41 4E 44  20 22 3B 42 24 00 F4 27  | COMMAND ";B$..'|
00001FD0: 0A 37 41 B2 4F 55 3A 20  4F 55 B2 33 3A 20 8D 20  |.7A.OU: OU.3: . |
00001FE0: 31 34 34 30 30 3A 20 4F  55 B2 41 3A 20 89 20 31  |14400: OU.A: . 1|
00001FF0: 34 30 32 30 00 1E 28 14  37 8F 20 2A 2A 20 31 34  |4020..(.7. ** 14|
00002000: 31 30 30 20 2D 20 41 20  2D 20 41 4C 4C 4F 43 41  |100 - A - ALLOCA|
00002010: 54 45 20 43 55 52 52 45  4E 54 20 54 26 53 00 33  |TE CURRENT T&S.3|
00002020: 28 1E 37 8D 20 38 30 30  3A 20 8B 20 A8 20 41 20  |(.7. 800: . . A |
00002030: A7 20 8E 00 79 28 28 37  9F 20 31 35 2C 44 56 2C  |. ..y((7. 15,DV,|
00002040: 31 35 2C 22 49 22 AA 44  4B 24 3A 20 9F 20 44 46  |15,"I".DK$: . DF|
00002050: 2C 44 56 2C 38 2C 22 23  22 3A 20 8F 20 4D 55 53  |,DV,8,"#": . MUS|
00002060: 54 20 4F 50 45 4E 20 54  4F 20 46 4F 52 43 45 20  |T OPEN TO FORCE |
00002070: 42 41 4D 20 57 52 49 54  45 00 A3 28 2D 37 98 31  |BAM WRITE..(-7.1|
00002080: 35 2C 22 42 2D 41 3A 22  3B 44 4B 24 3B 54 3B 53  |5,"B-A:";DK$;T;S|
00002090: 3A 20 8D 20 33 31 35 3A  20 A0 20 44 46 3A 20 A0  |: . 315: . DF: .|
000020A0: 20 31 35 00 B5 28 32 37  41 B2 54 3A 42 B2 53 3A  | 15..(27A.T:B.S:|
000020B0: 8D 20 32 30 30 00 EE 28  3C 37 8B 20 45 4E B2 30  |. 200..(<7. EN.0|
000020C0: 20 A7 20 98 4F 55 2C 22  42 4C 4F 43 4B 20 22 3B  | . .OU,"BLOCK ";|
000020D0: 41 24 3B 22 20 41 4C 4C  4F 43 41 54 45 44 22 3A  |A$;" ALLOCATED":|
000020E0: 20 42 46 25 28 54 2C 53  29 B2 31 3A 20 8E 00 25  | BF%(T,S).1: ..%|
000020F0: 29 46 37 8B 20 45 4E B2  36 35 20 A7 20 99 22 42  |)F7. EN.65 . ."B|
00002100: 4C 4F 43 4B 20 22 3B 41  24 3B 22 20 57 41 53 20  |LOCK ";A$;" WAS |
00002110: 41 4C 52 45 41 44 59 20  41 4C 4C 4F 43 41 54 45  |ALREADY ALLOCATE|
00002120: 44 22 3A 20 8E 00 54 29  50 37 99 22 55 4E 45 58  |D": ..T)P7."UNEX|
00002130: 50 45 43 54 45 44 20 44  49 53 4B 20 53 54 41 54  |PECTED DISK STAT|
00002140: 55 53 20 22 3B 45 4E 3B  45 4D 24 3B 45 54 3B 45  |US ";EN;EM$;ET;E|
00002150: 53 3A 20 8E 00 88 29 5A  37 8F 20 2A 2A 20 31 34  |S: ...)Z7. ** 14|
00002160: 31 37 30 20 2D 20 42 20  2D 20 42 4C 4F 43 4B 20  |170 - B - BLOCK |
00002170: 53 45 54 20 43 55 52 52  45 4E 54 20 54 52 41 43  |SET CURRENT TRAC|
00002180: 4B 26 53 45 43 54 4F 52  00 A0 29 64 37 85 22 54  |K&SECTOR..)d7."T|
00002190: 52 41 43 4B 2C 53 45 43  54 4F 52 22 3B 54 2C 53  |RACK,SECTOR";T,S|
000021A0: 00 B9 29 6E 37 8D 20 38  30 30 3A 20 8B 20 41 20  |..)n7. 800: . A |
000021B0: A7 20 8D 20 31 34 36 30  30 00 BF 29 73 37 8E 00  |. . 14600..)s7..|
000021C0: 05 2A 78 37 8F 20 2A 2A  20 31 34 32 30 30 20 2D  |.*x7. ** 14200 -|
000021D0: 20 44 20 2D 20 44 49 52  45 43 54 4F 52 59 20 45  | D - DIRECTORY E|
000021E0: 4E 54 52 59 3B 20 44 49  53 50 4C 41 59 20 44 49  |NTRY; DISPLAY DI|
000021F0: 52 45 43 54 4F 52 59 20  45 4E 54 52 59 20 56 41  |RECTORY ENTRY VA|
00002200: 4C 28 42 24 29 00 40 2A  82 37 43 B2 C5 28 41 24  |L(B$).@*.7C..(A$|
00002210: 29 3A 20 8F 20 20 2A 2A  20 31 34 32 32 30 20 49  |): .  ** 14220 I|
00002220: 53 20 45 4E 54 52 59 20  50 4F 49 4E 54 20 46 4F  |S ENTRY POINT FO|
00002230: 52 20 4F 54 48 45 52 20  52 4F 55 54 49 4E 45 53  |R OTHER ROUTINES|
00002240: 00 5C 2A 8C 37 8B 20 30  B3 B2 43 20 A7 20 8B 20  |.\*.7. 0..C . . |
00002250: 43 B3 46 43 20 A7 20 31  34 32 34 30 00 8F 2A 96  |C.FC . 14240..*.|
00002260: 37 99 20 22 44 49 52 45  43 54 4F 52 59 20 45 4E  |7. "DIRECTORY EN|
00002270: 54 52 59 20 4E 55 4D 42  45 52 22 3B 43 3B 22 4F  |TRY NUMBER";C;"O|
00002280: 55 54 20 4F 46 20 52 41  4E 47 45 22 3A 20 8E 00  |UT OF RANGE": ..|
00002290: C4 2A A0 37 41 B2 43 3A  20 8D 20 35 30 30 3A 20  |.*.7A.C: . 500: |
000022A0: 54 B2 44 54 25 28 43 29  3A 20 53 B2 44 53 25 28  |T.DT%(C): S.DS%(|
000022B0: 43 29 3A 20 41 B2 54 3A  20 42 B2 53 3A 20 20 8D  |C): A.T: B.S:  .|
000022C0: 20 32 30 30 00 F9 2A AA  37 98 4F 55 2C 43 3B 53  | 200..*.7.OU,C;S|
000022D0: 24 3B C8 28 22 20 20 20  20 20 20 20 20 20 20 20  |$;.("           |
000022E0: 20 20 20 20 20 20 20 20  20 20 20 20 20 22 2C 32  |             ",2|
000022F0: 31 AB C3 28 53 24 29 29  3B 00 12 2B B4 37 98 4F  |1..(S$));..+.7.O|
00002300: 55 2C 44 5A 25 28 43 29  3B 22 46 52 4F 4D 22 3B  |U,DZ%(C);"FROM";|
00002310: 41 24 00 18 2B BE 37 8E  00 58 2B DC 37 8F 20 2A  |A$..+.7..X+.7. *|
00002320: 2A 20 31 34 33 30 30 20  2D 20 46 20 2D 20 46 52  |* 14300 - F - FR|
00002330: 45 45 3B 20 49 53 53 55  45 20 41 20 42 4C 4F 43  |EE; ISSUE A BLOC|
00002340: 4B 2D 46 52 45 45 20 46  4F 52 20 43 55 52 52 45  |K-FREE FOR CURRE|
00002350: 4E 54 20 42 4C 4F 43 4B  00 6D 2B E6 37 8D 20 38  |NT BLOCK.m+.7. 8|
00002360: 30 30 3A 20 8B 20 A8 20  41 20 A7 20 8E 00 80 2B  |00: . . A . ...+|
00002370: F0 37 41 B2 54 3A 42 B2  53 3A 20 8D 20 32 30 30  |.7A.T:B.S: . 200|
00002380: 00 AB 2B FA 37 99 20 22  59 4F 55 20 52 45 41 4C  |..+.7. "YOU REAL|
00002390: 4C 59 20 57 41 4E 54 20  54 4F 20 46 52 45 45 20  |LY WANT TO FREE |
000023A0: 42 4C 4F 43 4B 20 22 3B  41 24 3B 00 BC 2B 04 38  |BLOCK ";A$;..+.8|
000023B0: 41 24 B2 22 4E 22 3A 20  85 20 41 24 00 E6 2B 0E  |A$."N": . A$..+.|
000023C0: 38 41 24 B2 C8 28 41 24  2C 31 29 3A 20 8B 20 41  |8A$..(A$,1): . A|
000023D0: 24 B3 B1 22 59 22 20 A7  20 8B 20 41 24 B3 B1 22  |$.."Y" . . A$.."|
000023E0: D9 22 20 A7 20 8E 00 2C  2C 18 38 9F 20 31 35 2C  |." . ..,,.8. 15,|
000023F0: 44 56 2C 31 35 2C 22 49  22 AA 44 4B 24 3A 20 9F  |DV,15,"I".DK$: .|
00002400: 20 44 46 2C 44 56 2C 38  2C 22 23 22 3A 20 8F 20  | DF,DV,8,"#": . |
00002410: 4D 55 53 54 20 4F 50 45  4E 20 54 4F 20 46 4F 52  |MUST OPEN TO FOR|
00002420: 43 45 20 42 41 4D 20 57  52 49 54 45 00 56 2C 1D  |CE BAM WRITE.V,.|
00002430: 38 98 31 35 2C 22 42 2D  46 3A 22 3B 44 4B 24 3B  |8.15,"B-F:";DK$;|
00002440: 54 3B 53 3A 20 8D 20 33  31 35 3A 20 A0 20 44 46  |T;S: . 315: . DF|
00002450: 3A 20 A0 20 31 35 00 68  2C 22 38 41 B2 54 3A 42  |: . 15.h,"8A.T:B|
00002460: B2 53 3A 8D 20 32 30 30  00 9D 2C 2C 38 8B 20 45  |.S:. 200..,,8. E|
00002470: 4E B2 30 20 A7 20 98 4F  55 2C 22 42 4C 4F 43 4B  |N.0 . .OU,"BLOCK|
00002480: 20 22 3B 41 24 3B 22 20  46 52 45 45 44 22 3A 20  | ";A$;" FREED": |
00002490: 42 46 25 28 54 2C 53 29  B2 30 3A 20 8E 00 DA 2C  |BF%(T,S).0: ...,|
000024A0: 36 38 99 22 55 4E 45 58  50 45 43 54 45 44 20 44  |68."UNEXPECTED D|
000024B0: 49 53 4B 20 53 54 41 54  55 53 20 22 3B 45 4E 3B  |ISK STATUS ";EN;|
000024C0: 45 4D 24 3B 45 54 3B 45  53 3B 22 20 4F 4E 20 42  |EM$;ET;ES;" ON B|
000024D0: 4C 4F 43 4B 2D 46 52 45  45 22 00 E0 2C 3B 38 8E  |LOCK-FREE"..,;8.|
000024E0: 00 09 2D 40 38 8F 20 2A  2A 20 31 34 34 30 30 20  |..-@8. ** 14400 |
000024F0: 2D 20 48 20 2D 20 48 45  4C 50 3B 20 47 45 54 20  |- H - HELP; GET |
00002500: 53 4F 4D 45 20 48 45 4C  50 00 40 2D 4A 38 98 4F  |SOME HELP.@-J8.O|
00002510: 55 2C 22 41 20 2D 20 41  4C 4C 4F 43 41 54 45 20  |U,"A - ALLOCATE |
00002520: 43 55 52 52 45 4E 54 20  54 26 53 20 28 46 4F 52  |CURRENT T&S (FOR|
00002530: 20 52 45 41 4C 2C 20 4F  4E 20 44 49 53 4B 29 22  | REAL, ON DISK)"|
00002540: 00 6C 2D 54 38 98 4F 55  2C 22 42 20 2D 20 42 4C  |.l-T8.OU,"B - BL|
00002550: 4F 43 4B 3B 20 53 45 54  20 54 26 53 20 28 50 52  |OCK; SET T&S (PR|
00002560: 4F 4D 50 54 45 44 20 46  4F 52 29 22 00 A5 2D 5E  |OMPTED FOR)"..-^|
00002570: 38 98 4F 55 2C 22 43 20  2D 20 43 55 52 52 45 4E  |8.OU,"C - CURREN|
00002580: 54 3B 20 44 49 53 50 4C  41 59 20 4D 41 50 20 45  |T; DISPLAY MAP E|
00002590: 4E 54 52 59 20 46 4F 52  20 43 55 52 52 45 4E 54  |NTRY FOR CURRENT|
000025A0: 20 54 26 53 22 00 DB 2D  68 38 98 4F 55 2C 22 44  | T&S"..-h8.OU,"D|
000025B0: 3C 4E 3E 20 2D 20 44 49  52 45 43 54 4F 52 59 3B  |<N> - DIRECTORY;|
000025C0: 20 44 49 53 50 4C 41 59  20 44 49 52 45 43 54 4F  | DISPLAY DIRECTO|
000025D0: 52 59 20 45 4E 54 52 59  20 4E 22 00 1A 2E 72 38  |RY ENTRY N"...r8|
000025E0: 98 4F 55 2C 22 46 20 2D  20 46 52 45 45 20 43 55  |.OU,"F - FREE CU|
000025F0: 52 52 45 4E 54 20 54 26  53 20 28 46 4F 52 20 52  |RRENT T&S (FOR R|
00002600: 45 41 4C 2C 20 4F 4E 20  44 49 53 4B 2D 42 45 20  |EAL, ON DISK-BE |
00002610: 43 41 52 45 46 55 4C 21  29 22 00 4D 2E 7C 38 98  |CAREFUL!)".M.|8.|
00002620: 4F 55 2C 22 48 20 2D 20  48 45 4C 50 3B 20 47 45  |OU,"H - HELP; GE|
00002630: 54 20 54 48 49 53 20 4C  49 53 54 20 4F 4E 20 4F  |T THIS LIST ON O|
00002640: 55 54 50 55 54 20 44 45  56 49 43 45 22 00 90 2E  |UTPUT DEVICE"...|
00002650: 86 38 98 4F 55 2C 22 4E  20 2D 20 4E 45 58 54 3B  |.8.OU,"N - NEXT;|
00002660: 20 44 49 53 50 4C 41 59  20 43 55 52 52 45 4E 54  | DISPLAY CURRENT|
00002670: 20 4D 41 50 20 45 4E 54  52 59 20 54 48 45 4E 20  | MAP ENTRY THEN |
00002680: 47 4F 20 54 4F 20 4E 45  58 54 20 4C 49 4E 4B 22  |GO TO NEXT LINK"|
00002690: 00 D1 2E 90 38 98 4F 55  2C 22 4F 3C 4E 3E 20 2D  |....8.OU,"O<N> -|
000026A0: 20 4F 55 54 50 55 54 3B  20 53 45 4E 44 20 28 4D  | OUTPUT; SEND (M|
000026B0: 4F 53 54 29 20 4F 55 54  50 55 54 20 54 4F 20 44  |OST) OUTPUT TO D|
000026C0: 45 56 49 43 45 20 4E 20  28 33 20 4F 52 20 34 29  |EVICE N (3 OR 4)|
000026D0: 22 00 08 2F 95 38 98 4F  55 2C 22 54 20 2D 20 54  |"../.8.OU,"T - T|
000026E0: 52 41 43 45 3B 20 54 52  41 43 45 20 42 4C 4F 43  |RACE; TRACE BLOC|
000026F0: 4B 20 4C 49 53 54 20 46  52 4F 4D 20 43 55 52 52  |K LIST FROM CURR|
00002700: 45 4E 54 20 54 26 53 22  00 45 2F 9A 38 98 4F 55  |ENT T&S".E/.8.OU|
00002710: 2C 22 24 20 2D 20 44 49  53 50 4C 41 59 20 45 4E  |,"$ - DISPLAY EN|
00002720: 54 49 52 45 20 44 49 52  45 43 54 4F 52 59 20 4F  |TIRE DIRECTORY O|
00002730: 52 20 4C 4F 4F 4B 20 46  4F 52 20 46 49 4C 45 20  |R LOOK FOR FILE |
00002740: 4E 41 4D 45 22 00 7C 2F  A4 38 98 4F 55 2C 22 51  |NAME".|/.8.OU,"Q|
00002750: 55 49 54 20 2D 20 51 55  49 54 3B 20 50 55 54 20  |UIT - QUIT; PUT |
00002760: 41 4E 20 45 4E 44 20 54  4F 20 41 4C 4C 20 54 48  |AN END TO ALL TH|
00002770: 49 53 20 4E 4F 4E 53 45  4E 53 45 22 00 82 2F AE  |IS NONSENSE"../.|
00002780: 38 8E 00 C6 2F 08 39 8F  20 2A 2A 20 31 34 36 30  |8.../.9. ** 1460|
00002790: 30 20 2D 20 43 20 2D 20  43 55 52 52 45 4E 54 3B  |0 - C - CURRENT;|
000027A0: 20 44 49 53 50 4C 41 59  20 54 48 45 20 4D 41 50  | DISPLAY THE MAP|
000027B0: 20 45 4E 54 52 59 20 46  4F 52 20 43 55 52 52 45  | ENTRY FOR CURRE|
000027C0: 4E 54 20 54 26 53 00 DB  2F 12 39 8D 20 38 30 30  |NT T&S../.9. 800|
000027D0: 3A 20 8B 20 A8 20 41 20  A7 20 8E 00 F5 2F 1C 39  |: . . A . .../.9|
000027E0: 8D 20 36 30 30 3A 20 41  B2 54 3A 42 B2 53 3A 20  |. 600: A.T:B.S: |
000027F0: 8D 20 32 30 30 00 08 30  26 39 98 4F 55 2C 41 24  |. 200..0&9.OU,A$|
00002800: 3B 22 3A 22 3B 42 55 24  00 0E 30 30 39 8E 00 54  |;":";BU$..009..T|
00002810: 30 6C 39 8F 20 2A 2A 20  31 34 37 30 30 20 2D 20  |0l9. ** 14700 - |
00002820: 4E 20 2D 20 4E 45 58 54  3B 20 44 49 53 50 4C 41  |N - NEXT; DISPLA|
00002830: 59 20 43 55 52 52 45 4E  54 20 4D 41 50 20 45 4E  |Y CURRENT MAP EN|
00002840: 54 52 59 2C 20 53 45 54  20 54 26 53 20 54 4F 20  |TRY, SET T&S TO |
00002850: 4E 45 58 54 00 69 30 76  39 8D 20 38 30 30 3A 20  |NEXT.i0v9. 800: |
00002860: 8B 20 A8 20 41 20 A7 20  8E 00 75 30 80 39 8D 20  |. . A . ..u0.9. |
00002870: 31 34 36 30 30 00 95 30  8A 39 41 B2 54 3A 20 54  |14600..0.9A.T: T|
00002880: B2 4C 54 25 28 54 2C 53  29 3A 20 53 B2 4C 53 25  |.LT%(T,S): S.LS%|
00002890: 28 41 2C 53 29 00 9B 30  94 39 8E 00 CA 30 D0 39  |(A,S)..0.9...0.9|
000028A0: 8F 20 2A 2A 20 31 34 38  30 30 20 2D 20 4F 20 2D  |. ** 14800 - O -|
000028B0: 20 4F 55 54 50 55 54 3B  20 53 45 54 20 4F 55 54  | OUTPUT; SET OUT|
000028C0: 50 55 54 20 44 45 56 49  43 45 00 F1 30 DA 39 41  |PUT DEVICE..0.9A|
000028D0: B2 C5 28 41 24 29 3A 20  8B 20 33 B3 B2 41 20 A7  |..(A$): . 3..A .|
000028E0: 20 8B 20 41 B3 B2 34 20  A7 20 4F 55 B2 41 3A 20  | . A..4 . OU.A: |
000028F0: 8E 00 22 31 E4 39 99 20  22 49 4E 56 41 4C 49 44  |.."1.9. "INVALID|
00002900: 20 4F 55 54 50 55 54 20  44 45 56 49 43 45 20 28  | OUTPUT DEVICE (|
00002910: 4D 55 53 54 20 42 45 20  33 20 4F 52 20 34 29 22  |MUST BE 3 OR 4)"|
00002920: 3B 41 00 28 31 EE 39 8E  00 66 31 34 3A 8F 20 2A  |;A.(1.9..f14:. *|
00002930: 2A 20 31 34 39 30 30 20  2D 20 54 20 2D 20 54 52  |* 14900 - T - TR|
00002940: 41 43 45 3B 20 46 4F 4C  4C 4F 57 20 54 48 45 20  |ACE; FOLLOW THE |
00002950: 43 55 52 52 45 4E 54 20  4C 49 53 54 20 4F 46 20  |CURRENT LIST OF |
00002960: 42 4C 4F 43 4B 53 00 7C  31 3E 3A 8D 20 38 30 30  |BLOCKS.|1>:. 800|
00002970: 3A 20 20 8B 20 A8 20 41  20 A7 20 8E 00 97 31 43  |:  . . A . ...1C|
00002980: 3A A1 20 41 24 3A 20 8B  20 41 24 B3 B1 22 22 20  |:. A$: . A$.."" |
00002990: A7 20 31 34 39 31 35 00  B7 31 48 3A 8D 20 31 34  |. 14915..1H:. 14|
000029A0: 37 30 30 3A 20 A1 20 41  24 3A 20 8B 20 41 24 B3  |700: . A$: . A$.|
000029B0: B1 22 22 20 A7 20 8E 00  E7 31 52 3A 8B 20 31 B3  |."" . ...1R:. 1.|
000029C0: B2 54 20 AF 20 54 B3 B2  4D 54 20 A7 20 8B 20 30  |.T . T..MT . . 0|
000029D0: B3 B2 53 20 AF 20 53 B3  B2 53 5A 25 28 54 29 20  |..S . S..SZ%(T) |
000029E0: 89 20 31 34 39 32 30 00  ED 31 5C 3A 8E 00 31 32  |. 14920..1\:..12|
000029F0: 98 3A 8F 20 2A 2A 20 31  35 30 30 30 20 2D 20 24  |.:. ** 15000 - $|
00002A00: 20 2D 20 53 48 4F 57 20  44 49 52 45 43 54 4F 52  | - SHOW DIRECTOR|
00002A10: 59 2C 20 4F 52 20 53 45  54 20 43 55 52 52 45 4E  |Y, OR SET CURREN|
00002A20: 54 20 42 4C 4F 43 4B 20  46 52 4F 4D 20 46 49 4C  |T BLOCK FROM FIL|
00002A30: 45 00 62 32 A2 3A 8B 20  41 24 B2 22 22 20 A7 20  |E.b2.:. A$."" . |
00002A40: 81 20 49 B2 30 20 A4 20  46 43 AB 31 3A 20 43 B2  |. I.0 . FC.1: C.|
00002A50: 49 3A 20 8D 20 31 34 32  32 30 3A 20 82 20 49 3A  |I: . 14220: . I:|
00002A60: 20 8E 00 6A 32 AC 3A 43  B2 30 00 94 32 B6 3A 8B  | ..j2.:C.0..2.:.|
00002A70: 20 43 20 B1 B2 20 46 43  20 A7 20 99 22 4E 4F 20  | C .. FC . ."NO |
00002A80: 53 55 43 48 20 46 49 4C  45 20 41 53 20 22 3B 41  |SUCH FILE AS ";A|
00002A90: 24 3A 20 8E 00 B6 32 C0  3A 8B 20 44 4E 24 28 43  |$: ...2.:. DN$(C|
00002AA0: 29 B3 B1 41 24 20 A7 20  43 B2 43 AA 31 3A 20 89  |)..A$ . C.C.1: .|
00002AB0: 20 31 35 30 33 30 00 C2  32 CA 3A 8D 20 31 34 32  | 15030..2.:. 142|
00002AC0: 32 30 00 C8 32 D4 3A 8E  00 E1 32 9C F9 A0 20 33  |20..2.:...2... 3|
00002AD0: 3A 20 A0 20 34 3A 20 A0  20 44 46 3A 20 A0 20 31  |: . 4: . DF: . 1|
00002AE0: 35 00 E7 32 FF F9 80 00  00 00                    |5..2......      |
..=....  DISKMAP - SHOWS 1541 ETC FILE S
TRUCTURE (AND ERRORS).C.....N.... 9000.W
.... /*.J....  * GOSUB 200......  * SPEC
IALIZED SUBROUTINE FOR CONVERTING AND PR
INTING SECTOR NUMBERS...A..  * REQUIRES:
 A(TRACK) AND B(SECTOR) AS INPUT...C..  
* SETS: A$ AS OUTPUT  "(T,S)".".D..  * C
HANGES: B$.,.E..  */.A.H.A$.D(A): B$.D(B
).P.R.A$."(".I(A$,C(A$).1).",".I(B$,C(B$
).1).")".V......7.. /*...8..  * GOSUB 3
15 - CHECK DISK ERROR STATUS BY READING 
FILE 15...9..  *   IT IS ASSUMED THAT TH
E CALLER WILL USE STATUS AS WANTED...:..
  */.$.;..15,EN,EM$,ET,ES: ..-.... /*.J.
...  * GOSUB 415 - CHECK DISK STATUS AND
 ABORT IF NON-ZERO.T....  */...... 315: 
. EN.0 . ..F...."DISK ERROR";EN;EM$;ET;E
S;"--PROGRAM ABORTED": . 63900.O.... /*.
.....  * GOSUB 500 - RETURN FILENAME A F
ROM NAME TABLE, APPENDING EXTENSION.K...
.  *   NAME IS RETURNED IN S$; A IS CHAN
GED.U....  */.Q...S$.DN$(A).",": A.DE%(A
)...... (A . 127).4 . S$.S$.TY$(4): . 53
0.....S$.S$.TY$(A . 127).N.... (A . 128)
.0 . S$.S$."*".T.......O.. /*.!.P..  * G
OSUB 600 - CONVERT BF%(T,S)+BU%(T,S,*) T
O EXTERNAL FORMAT.M.Q..  *   EXTERNAL FO
RMAT IS PLACED IN BU$.O.R..  *   CHANGES
 A,B, A$,B$, S$.Y.S..  */...X.BU$."": A.
BF%(T,S): . A . 0 . A.A.2: BU$."X".D.B.B
U$.J("FA",A.1,1).BU$...L.. BU%(T,S,0).0 
. 710...V.A.BU%(T,S,1): B.BU%(T,S,2): . 
200: A.BU%(T,S,0).1: . 500.5...BU$.BU$."
 ".A$."<-".S$.N.... BU%(T,S,3).0 . 710..
...A.BU%(T,S,4): B.BU%(T,S,5): . 200: A.
BU%(T,S,3).1: . 500.....BU$.BU$." ".A$."
<-".S$...... BU%(T,S,6).0 . 710.....A.BU
%(T,S,7): B.BU%(T,S,8): . 200: A.BU%(T,S
,6).1: . 500.....BU$.BU$." ".A$."<-".S$.
9.F.A.LT%(T,S): B.LS%(T,S): . 200.M.P.BU
$.BU$."->".A$.S.Z...\.... /*......  * GO
SUB 800 - CHECK WHETHER T,S ARE A VALID 
BLOCK ADDRESS......  *.R....  *  ARRAY S
Z%() MUST HAVE BEEN SET UP......  *  A I
S SET TO THE TRUTH VALUE FOR (T,S) IS VA
LID......  *.M....  *  B, A$,B$ ARE CHAN
GED IFF A IS FALSE     (IHB!).W....  */.
.. .A . (0.T . T..MT) . (0..S . S.SZ%(T)
): . A . ..Q.*.. ** ROUTINE IS DESIGNED 
FOR INTERACTIVE MODE USE, SO REPORT ERRO
R...4.A.T:B.S: . 200...>.. "CURRENT TRAC
K AND SECTOR PAIR ";A$;" IS BAD".%.H.A .
 0: ..L.(#DK$."0": DV.8:  . 15,DV,15,"I"
.DK$.R..%OU.4:."OUTPUT DEVICE (3 OR 4)";
OU...&%. OU..3 . OU..4 . 9500...0%. 4,4,
7...:%. 3,3.D..'FC.0: FB.0: A1.0: F1.0: 
F2.0....'MT.35: MS.23: BS.3: C0$.G(0)...
.'SS$.G(160)...$'. BM%(MT,BS), SZ%(MT): 
MF.145.`.)'. LS%(MT,MS), LT%(MT,MS), DN$
(MF), DE%(MF), DT%(MF), DS%(MF), DZ%(MF)
....'. BF%(MT,MS): . ** BLOCK FLAGS; 0 F
REE; 1 ALLOCATED; <0 INVALID.../'. BU%(M
T,MS,8): . ** BLOCK USAGE TABLE; UP TO 3
 FILES...0'. CC(1): . ** COUNTER; CC(0) 
FREE BLOCK; CC(1) ALLOCATED.9.1'. TY$(5)
: . ** FILE TYPES.W.3'. DEL,SEQ,PRG,USR,
REL,BAD.O.8'. 1,17,21, 18,24,19...B'. 25
,30,18, 31,35,17...G'. I.0 . 5: . TY$(I)
: . I.H.L'DF.8: . DF,DV,8,"$".DK$: . 415
...V'.#DF,A$,A$: . ** SKIP 1ST 2 BYTES..
.J'. /*./.K'.  * NOW INTERPRET THE BAM; 
READ DATA STATEMENTS TO.B.L'.  *  DETERM
INE CORRECT # OF SECTORS PER TRACK.L.M'.
  */.Z.T'. I.1 . 4...~'. L,H,N: . ** TRA
CKS L TO H HAVE N SECTORS....'. J.L . H.
D..'SZ%(J).N....'.#DF,A$: . A$."" . A$.C
0$....'A.F(A$): F2.F2.A: BM%(J,0).A...D'
K1.0: . K.1 . BS.6.I'.#DF,A$: . A$."" . 
A$.C0$.R.N'M.F(A$):BM%(J,K).M:M2.1....'.
 K2.0 . 7: A. .((M . M2).0): BF%(J,K1).A
: CC(A).CC(A).1....'K1.K1.1: M2.M2.M2: .
 ** SHIFT M2 LEFT 1.D..(. K2.L..(. K.U..
(. /*....(.  * EACH BAM ENTRY COULD REPR
ESENT 24 BLOCKS.D..(.  * MARK AS INVALID
 BLOCKS GREATER THAN NUMBER IN TRACK....
(.  *  - NORMALLY WILL BE "ALLOCATED"; F
REE WOULD BE BAD BAM....(.  */....(K.N..
..(. K..MS . A.BF%(J,K): BF%(J,K).A.2: C
C(A).CC(A).1: K.K.1: . 10270...((. J...2
(. I....)S$."": . I.144 . 170.+..).#DF,A
$: S$.S$.G(F(A$.C0$) . 127).3..). I.N.")
.OU,S$: . ** DISK NAME...,). I.171 . 255
: .#DF,A$: . I: . ** SKIP TO END OF BLOC
K....*. /*....*.  * NOW COMPILE A LIST O
F THE FILE NAMES....*.  *  THEIR STARTIN
G BLOCKS AND SIZES....*.  */....*NF.0.3.
.+. NF.0 . 11020: . ** SKIP 2 BYTES EVER
Y 8 ENTRIES.?..+.#DF,A$.K..+.#DF,A$.G..+
NF.NF.1: . NF..8 . NF.0....+.#DF,E$: . E
$."" . E$.C0$... +.#DF,T$,S$...*+E.F(E$)
: . EXTENSION.F.4+T.F(T$.C0$): . TRACK..
.>+S.F(S$.C0$): . SECTOR...H+A.E . 127: 
. A.4 . A.5.$.R+T$.TY$(A): . (E . 128).0
 . T$.T$."*".3.\+S$."": I.3.N.F+.#DF,A$:
 . A$..SS$ . S$.S$.A$: . I.18 . I.I.1: .
 11110...P+. I.27 . .#DF,A$: I.I.1: . 11
120...Z+.#DF,A$,B$: RS.ST...+X.F(A$.C0$
).256.F(B$.C0$): . FILE SIZE (ALLEGEDLY)
....+. (E . 128).0 . BC.BC.1: BB.BB.X:  
. ** BADLY CLOSED FILE.B..+DN$(FC).S$: D
E%(FC).E: DT%(FC).T: DS%(FC).S: DZ%(FC).
X: FB.FB.X....+A.T: B.S: . 200: A.FC: . 
500: FC.FC.1.F..+.OU,S$;H("             
       ",21.C(S$));X;"FROM";A$.Y.T+. RS.
0 . 11010....+. RS..64 . ."ERROR RS=";RS
....,. /*.@..,.  * NOW WE ACCESS THE DIS
K RANDOMLY TO BUILD A PICTURE OF.R..,.  
* THE LINKS BETWEEN THE BLOCKS ON THE DI
SK.|..,.  */...$,  DF: . I.1 . 1000: . I
: . DF,DV,8,"#"....,....8,. T.1 . MT.Z.B
,. "TRACK";T;G(145);G(13);...L,. S.0 . S
Z%(T).1.*.V,.15,"U1:8,";DK$;T;S: .15,EN,
EM$,ET,ES: . EN..0 . 11392.H.J,.#DF,A$: 
. A$."" . A$.C0$.].O,LT%(T,S) . F(A$).{.
T,.#DF,A$: . A$."" . A$.C0$...Y,LS%(T,S)
 . F(A$).S.~,. S: . 11400: . ** ERROR HA
NDLING HERE TO SPEED SECTOR LOOP UP....,
. "DISK ERROR";EN;EM$;ET;ES:   DF:   15.
%..,. 15,DV,15,"I".DK$: . DF,DV,8,"#".K.
.,LT%(T,S)..1: LS%(T,S)..1: . 11390.S..,
. T.B..,  DF:   15....,.OU,FC.BC;"GOOD F
ILES TOTALLING";FB.BB;"BLOCKS".C..-.OU,B
C;"BAD FILES TOTALLING";BB;"BLOCKS"....-
.OU,"BITMAP SHOWS";CC(1);" BLOCKS ALLOCA
TED;";CC(0);"(";F2;") FREE".J..-A..(FC.8
).1: .OU,FC;"FILE ENTRIES IN";A;"DIRECTO
RY BLOCKS".S.V.. /*...W..  * NOW TRACE D
OWN THE LINKED LIST OF BLOCKS FOR EACH F
ILE,...X..  *  AND NOTE ANY INCONSISTENC
IES.E.Y..  */...... I.0 . FC.1: . ** FOR
 EACH FILE IN DIRECTORY.....T.DT%(I): . 
** INITIAL TRACK.F...T1.0: . ** INITIAL 
PREVIOUS TRACK (DUMMY).H...S.DS%(I): . *
* INITIAL SECTOR..../S1.0: . ** INITIAL 
PREVIOUS SECTOR (DUMMY)..../X.DZ%(I): . 
** ALLEGED FILE SIZE.X../J.0: . ** BLOCK
 COUNTER..../. 0.T . T..MT . . 0..S . S.
SZ%(T) . 12100.%.!/A.T1:B.S1:. 200: A.I:
. 500.Y.&/.OU,S$;" BAD TRACK&SECTOR POIN
TER; BLOCK";J;A$;.W.+/A.T:B.S:. 200: .OU
,"->"A$...0/. 12300...D/J.J.1: . BU%(T,S
,0)..0 . E$."MULTIPLELY ": . 12110.S.I/.
 BF%(T,S).1 . 12130...J/E$."UN":. 200.. 
N/A.I: . 500: .OU,"ERROR IN ";S$;"(BLOCK
";J;"):";.K S/A.T: B.S: . 200: .OU,E$;"A
LLOCATED BLOCK ";A$.^ X/. 600: .OU,BU$.F
 B/K.0.. G/. K . 9 . . BU%(T,S,K)..0 . K
.K.3: . 12135.. H/. K . 9 . BU%(T,S,K).I
.1:BU%(T,S,K.1).T1:BU%(T,S,K.2).S1: . 12
145.!!L/A.T:B.S:.200:.OU,"BLOCK ";A$;" H
AS TOO MANY REFERENCES TO RECORD".L!Q/T1
.T: S1.S: T.LT%(T1,S1): S.LS%(T1,S1).^!V
/. J.X . 12200..!./. J.X . . T.0 . 12300
: . ** NORMAL END-OF-FILE..!./A.T1:B.S1:
. 200: A.I: . 500..!./.OU,"FILE ";S$;" N
OT ENDED AT BLOCK COUNT";X;A$;.."./A.T:B
.S:. 200: .OU,"->";A$.>"./. 12300: . ** 
IF WE CONTINUED ON LIST, WE MIGHT LOOP.|
"./. T..0 . 12060: . **  NORMAL GOOD BLO
CK IN MIDDLE OF FILE.."./A.T1:B.S1:. 200
: A.I: . 500.Q"./.OU,"FILE ";S$;" ENDS P
REMATURELY:  BLOCK";J;A$;.."./A.T:B.S:. 
200: .OU,"->";A$..".0. I..#.2A$."N": ."G
IVE COMPLETE MAP";A$.F#C2A$.H(A$,1): . A
$."N" . A$."N" . 14000.U#H2. T.1 . MT.]#
R2.OU..#.2.OU,"TRACK";T;":";BM%(T,0);"OF
";SZ%(T);"BLOCKS FREE; BAM";..#.2. I.1 .
 BS: .OU,BM%(T,I); : . I.H#.2.OU.P#^3S.0
..#H3L.S: . L.MS . 13210..#R3. 600..$W3S
.S.1: . S.MS . 13190.-$|3. BF%(T,S)..BF%
(T,L) . 13190.]$}3. BU%(T,L,0) . 0 . . B
U%(T,S,0) . 0 . 13187.E$.3I.0..$.3. I.9 
. . BU%(T,S,I).BU%(T,L,I) . I.I.1: . 131
85..$.3. I.9 . 13190: . ** NOT IDENTICAL
 ENTRIES FOR SUCCESSIVE SECTORS."%.3. LT
%(T,S).LT%(T,L) . . LS%(T,S).LS%(T,L) . 
13175: . IDENTICAL.@%.3. BU$."AX->(0,0)"
 . 13160.K%.3. L.S.1 . .OU," SECTOR";L;B
U$: . 13160..%.3.OU," SECTOR";L;"TO";S.1
;BU$: . 13160..%.3. T..%.6. /*..%.6.  * 
INTERACTIVE MODE.J%.6.  */..%.6OU.3: . *
* SET OUTPUT TO SCREEN..%.6T.0: S.0..&D6
A.T: B.S: . 200: . A$;.Q&I6. "(A,B,C,D,H
,F,N,O,T,$,QUIT)";A$: . A$."QUIT" . 6390
0.R&N6B$.H(A$,1): A$.I(A$,C(A$).1)..&X6.
 B$."A" . . 14100: . 14020..&.6. B$."B" 
. . 14170: . 14020.R&.6. B$."C" . . 1460
0: . 14020..&.6. B$."D" . . 14200: . 140
20..'.6. B$."F" . . 14300: . 14020.2'.6.
 B$."H" . . 14400: . 14020.R'.6. B$."N" 
. . 14700: . 14020.R'.6. B$."O" . . 1480
0: . 14020..'.7. B$."T" . . 14900: . 140
20..'.7. B$."$" . . 15000: . 14020.M'.7.
"INVALID COMMAND ";B$..'.7A.OU: OU.3: . 
14400: OU.A: . 14020..(.7. ** 14100 - A 
- ALLOCATE CURRENT T&S.3(.7. 800: . . A 
. ..Y((7. 15,DV,15,"I".DK$: . DF,DV,8,"#
": . MUST OPEN TO FORCE BAM WRITE..(-7.1
5,"B-A:";DK$;T;S: . 315:   DF:   15..(27
A.T:B.S:. 200..(<7. EN.0 . .OU,"BLOCK ";
A$;" ALLOCATED": BF%(T,S).1: ..%)F7. EN.
65 . ."BLOCK ";A$;" WAS ALREADY ALLOCATE
D": ..T)P7."UNEXPECTED DISK STATUS ";EN;
EM$;ET;ES: ...)Z7. ** 14170 - B - BLOCK 
SET CURRENT TRACK&SECTOR. )D7."TRACK,SEC
TOR";T,S..)N7. 800: . A . . 14600..)S7..
.*X7. ** 14200 - D - DIRECTORY ENTRY; DI
SPLAY DIRECTORY ENTRY VAL(B$).@*.7C.E(A$
): .  ** 14220 IS ENTRY POINT FOR OTHER 
ROUTINES.\*.7. 0..C . . C.FC . 14240..*.
7. "DIRECTORY ENTRY NUMBER";C;"OUT OF RA
NGE": ..D* 7A.C: . 500: T.DT%(C): S.DS%(
C): A.T: B.S:  . 200..*.7.OU,C;S$;H("   
                     ",21.C(S$));..+.7.O
U,DZ%(C);"FROM";A$..+.7..X+.7. ** 14300 
- F - FREE; ISSUE A BLOCK-FREE FOR CURRE
NT BLOCK.M+.7. 800: . . A . ...+.7A.T:B.
S: . 200..+.7. "YOU REALLY WANT TO FREE 
BLOCK ";A$;..+.8A$."N": . A$..+.8A$.H(A$
,1): . A$.."Y" . . A$.."Y" . ..,,.8. 15,
DV,15,"I".DK$: . DF,DV,8,"#": . MUST OPE
N TO FORCE BAM WRITE.V,.8.15,"B-F:";DK$;
T;S: . 315:   DF:   15.H,"8A.T:B.S:. 200
..,,8. EN.0 . .OU,"BLOCK ";A$;" FREED": 
BF%(T,S).0: ..Z,68."UNEXPECTED DISK STAT
US ";EN;EM$;ET;ES;" ON BLOCK-FREE"..,;8.
..-@8. ** 14400 - H - HELP; GET SOME HEL
P.@-J8.OU,"A - ALLOCATE CURRENT T&S (FOR
 REAL, ON DISK)".L-T8.OU,"B - BLOCK; SET
 T&S (PROMPTED FOR)"..-^8.OU,"C - CURREN
T; DISPLAY MAP ENTRY FOR CURRENT T&S"..-
H8.OU,"D<N> - DIRECTORY; DISPLAY DIRECTO
RY ENTRY N"...R8.OU,"F - FREE CURRENT T&
S (FOR REAL, ON DISK-BE CAREFUL!)".M.|8.
OU,"H - HELP; GET THIS LIST ON OUTPUT DE
VICE"....8.OU,"N - NEXT; DISPLAY CURRENT
 MAP ENTRY THEN GO TO NEXT LINK".Q..8.OU
,"O<N> - OUTPUT; SEND (MOST) OUTPUT TO D
EVICE N (3 OR 4)"../.8.OU,"T - TRACE; TR
ACE BLOCK LIST FROM CURRENT T&S".E/.8.OU
,"$ - DISPLAY ENTIRE DIRECTORY OR LOOK F
OR FILE NAME".|/.8.OU,"QUIT - QUIT; PUT 
AN END TO ALL THIS NONSENSE"../.8..F/.9.
 ** 14600 - C - CURRENT; DISPLAY THE MAP
 ENTRY FOR CURRENT T&S../.9. 800: . . A 
. .../.9. 600: A.T:B.S: . 200..0&9.OU,A$
;":";BU$..009..T0L9. ** 14700 - N - NEXT
; DISPLAY CURRENT MAP ENTRY, SET T&S TO 
NEXT.I0V9. 800: . . A . ..U0.9. 14600..0
.9A.T: T.LT%(T,S): S.LS%(A,S)..0.9..J0P9
. ** 14800 - O - OUTPUT; SET OUTPUT DEVI
CE..0Z9A.E(A$): . 3..A . . A..4 . OU.A: 
.."1.9. "INVALID OUTPUT DEVICE (MUST BE 
3 OR 4)";A.(1.9..F14:. ** 14900 - T - TR
ACE; FOLLOW THE CURRENT LIST OF BLOCKS.|
1>:. 800:  . . A . ...1C:. A$: . A$.."" 
. 14915..1H:. 14700: . A$: . A$.."" . ..
.1R:. 1..T . T..MT . . 0..S . S..SZ%(T) 
. 14920..1\:..12.:. ** 15000 - $ - SHOW 
DIRECTORY, OR SET CURRENT BLOCK FROM FIL
E.B2.:. A$."" . . I.0 . FC.1: C.I: . 142
20: . I: ..J2.:C.0..2.:. C .. FC . ."NO 
SUCH FILE AS ";A$: ...2.:. DN$(C)..A$ . 
C.C.1: . 15030.B2J:. 14220.H2T:...2..  3
:   4:   DF:   15..2......
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL