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

Multiple names: DISK MAP.C, DISK MAP

FILE INFORMATION

FILENAME(S):
• DISK&nbspMAP.C<br>• DISK&nbspMAP

FILE TYPE(S): PRG

FILE SIZE: 10.8K

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

APPEARS ON: 4 disk(s)

FILE HASH

ebe7d292f88f3c258e98eb1ac87b39da97844faf2505b145c210a0f28120862c

FOUND ON DISKS (4 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
FREESOFT DISK NR DISK MAP.C PRG Treasure Chest - Wolfgang Rauprich 8 5 DOWNLOAD FILE
D IVERSE DISK MAP.C PRG Treasure Chest - Wolfgang Rauprich 8 5 DOWNLOAD FILE
HJ LPEDISK A1 2 DISK MAP PRG Curtcool, Frank 19 13 DOWNLOAD FILE
TPUG MAY 84 C DISK MAP.C PRG DuncanTwain 6 0 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 82 08  | (AND ERRORS)...|
00000040: 02 00 8F 20 41 55 54 48  4F 52 20 41 2E 52 2E 20  |... AUTHOR A.R. |
00000050: 50 45 50 50 45 52 20 2D  20 4C 41 53 54 20 4D 4F  |PEPPER - LAST MO|
00000060: 44 49 46 49 45 44 20 4D  41 52 20 37 2C 20 31 39  |DIFIED MAR 7, 19|
00000070: 38 34 20 20 42 59 20 41  2E 52 2E 20 50 45 50 50  |84  BY A.R. PEPP|
00000080: 45 52 00 8D 08 0A 00 89  20 39 30 30 30 00 96 08  |ER...... 9000...|
00000090: BE 00 8F 20 2F 2A 00 A9  08 BF 00 8F 20 20 2A 20  |... /*......  * |
000000A0: 47 4F 53 55 42 20 32 30  30 00 F4 08 C0 00 8F 20  |GOSUB 200...... |
000000B0: 20 2A 20 53 50 45 43 49  41 4C 49 5A 45 44 20 53  | * SPECIALIZED S|
000000C0: 55 42 52 4F 55 54 49 4E  45 20 46 4F 52 20 43 4F  |UBROUTINE FOR CO|
000000D0: 4E 56 45 52 54 49 4E 47  20 41 4E 44 20 50 52 49  |NVERTING AND PRI|
000000E0: 4E 54 49 4E 47 20 53 45  43 54 4F 52 20 4E 55 4D  |NTING SECTOR NUM|
000000F0: 42 45 52 53 00 27 09 C1  00 8F 20 20 2A 20 52 45  |BERS.'....  * RE|
00000100: 51 55 49 52 45 53 3A 20  41 28 54 52 41 43 4B 29  |QUIRES: A(TRACK)|
00000110: 20 41 4E 44 20 42 28 53  45 43 54 4F 52 29 20 41  | AND B(SECTOR) A|
00000120: 53 20 49 4E 50 55 54 00  4C 09 C3 00 8F 20 20 2A  |S INPUT.L....  *|
00000130: 20 53 45 54 53 3A 20 41  24 20 41 53 20 4F 55 54  | SETS: A$ AS OUT|
00000140: 50 55 54 20 20 22 28 54  2C 53 29 22 00 61 09 C4  |PUT  "(T,S)".a..|
00000150: 00 8F 20 20 2A 20 43 48  41 4E 47 45 53 3A 20 42  |..  * CHANGES: B|
00000160: 24 00 6B 09 C5 00 8F 20  20 2A 2F 00 80 09 C8 00  |$.k....  */.....|
00000170: 41 24 B2 C4 28 41 29 3A  20 42 24 B2 C4 28 42 29  |A$..(A): B$..(B)|
00000180: 00 AF 09 D2 00 41 24 B2  22 28 22 AA C9 28 41 24  |.....A$."("..(A$|
00000190: 2C C3 28 41 24 29 AB 31  29 AA 22 2C 22 AA C9 28  |,.(A$).1).","..(|
000001A0: 42 24 2C C3 28 42 24 29  AB 31 29 AA 22 29 22 00  |B$,.(B$).1).")".|
000001B0: B5 09 E6 00 8E 00 BE 09  37 01 8F 20 2F 2A 00 FE  |........7.. /*..|
000001C0: 09 38 01 8F 20 20 2A 20  47 4F 53 55 42 20 33 31  |.8..  * GOSUB 31|
000001D0: 35 20 2D 20 43 48 45 43  4B 20 44 49 53 4B 20 45  |5 - CHECK DISK E|
000001E0: 52 52 4F 52 20 53 54 41  54 55 53 20 42 59 20 52  |RROR STATUS BY R|
000001F0: 45 41 44 49 4E 47 20 46  49 4C 45 20 31 35 00 41  |EADING FILE 15.A|
00000200: 0A 39 01 8F 20 20 2A 20  20 20 49 54 20 49 53 20  |.9..  *   IT IS |
00000210: 41 53 53 55 4D 45 44 20  54 48 41 54 20 54 48 45  |ASSUMED THAT THE|
00000220: 20 43 41 4C 4C 45 52 20  57 49 4C 4C 20 55 53 45  | CALLER WILL USE|
00000230: 20 53 54 41 54 55 53 20  41 53 20 57 41 4E 54 45  | STATUS AS WANTE|
00000240: 44 00 4B 0A 3A 01 8F 20  20 2A 2F 00 63 0A 3B 01  |D.K.:..  */.c.;.|
00000250: 84 31 35 2C 45 4E 2C 45  4D 24 2C 45 54 2C 45 53  |.15,EN,EM$,ET,ES|
00000260: 3A 20 8E 00 6C 0A 9B 01  8F 20 2F 2A 00 A9 0A 9C  |: ..l.... /*....|
00000270: 01 8F 20 20 2A 20 47 4F  53 55 42 20 34 31 35 20  |..  * GOSUB 415 |
00000280: 2D 20 43 48 45 43 4B 20  44 49 53 4B 20 53 54 41  |- CHECK DISK STA|
00000290: 54 55 53 20 41 4E 44 20  41 42 4F 52 54 20 49 46  |TUS AND ABORT IF|
000002A0: 20 4E 4F 4E 2D 5A 45 52  4F 00 B3 0A 9D 01 8F 20  | NON-ZERO...... |
000002B0: 20 2A 2F 00 C9 0A 9F 01  8D 20 33 31 35 3A 20 8B  | */...... 315: .|
000002C0: 20 45 4E B2 30 20 A7 20  8E 00 05 0B A4 01 99 22  | EN.0 . ......."|
000002D0: 44 49 53 4B 20 45 52 52  4F 52 22 3B 45 4E 3B 45  |DISK ERROR";EN;E|
000002E0: 4D 24 3B 45 54 3B 45 53  3B 22 2D 2D 50 52 4F 47  |M$;ET;ES;"--PROG|
000002F0: 52 41 4D 20 41 42 4F 52  54 45 44 22 3A 20 89 20  |RAM ABORTED": . |
00000300: 36 33 39 30 30 00 0E 0B  EB 01 8F 20 2F 2A 00 5A  |63900...... /*.Z|
00000310: 0B EC 01 8F 20 20 2A 20  47 4F 53 55 42 20 35 30  |....  * GOSUB 50|
00000320: 30 20 2D 20 52 45 54 55  52 4E 20 46 49 4C 45 4E  |0 - RETURN FILEN|
00000330: 41 4D 45 20 41 20 46 52  4F 4D 20 4E 41 4D 45 20  |AME A FROM NAME |
00000340: 54 41 42 4C 45 2C 20 41  50 50 45 4E 44 49 4E 47  |TABLE, APPENDING|
00000350: 20 45 58 54 45 4E 53 49  4F 4E 00 8A 0B ED 01 8F  | EXTENSION......|
00000360: 20 20 2A 20 20 20 4E 41  4D 45 20 49 53 20 52 45  |  *   NAME IS RE|
00000370: 54 55 52 4E 45 44 20 49  4E 20 53 24 3B 20 41 20  |TURNED IN S$; A |
00000380: 49 53 20 43 48 41 4E 47  45 44 00 94 0B EE 01 8F  |IS CHANGED......|
00000390: 20 20 2A 2F 00 B0 0B F4  01 53 24 B2 44 4E 24 28  |  */.....S$.DN$(|
000003A0: 41 29 AA 22 2C 22 3A 20  41 B2 44 45 25 28 41 29  |A).",": A.DE%(A)|
000003B0: 00 D8 0B FE 01 8B 20 28  41 20 AF 20 31 32 37 29  |...... (A . 127)|
000003C0: B1 34 20 A7 20 53 24 B2  53 24 AA 54 59 24 28 34  |.4 . S$.S$.TY$(4|
000003D0: 29 3A 20 89 20 35 33 30  00 EF 0B 08 02 53 24 B2  |): . 530.....S$.|
000003E0: 53 24 AA 54 59 24 28 41  20 AF 20 31 32 37 29 00  |S$.TY$(A . 127).|
000003F0: 0D 0C 12 02 8B 20 28 41  20 AF 20 31 32 38 29 B2  |..... (A . 128).|
00000400: 30 20 A7 20 53 24 B2 53  24 AA 22 2A 22 00 13 0C  |0 . S$.S$."*"...|
00000410: 1C 02 8E 00 1C 0C 4F 02  8F 20 2F 2A 00 60 0C 50  |......O.. /*.`.P|
00000420: 02 8F 20 20 2A 20 47 4F  53 55 42 20 36 30 30 20  |..  * GOSUB 600 |
00000430: 2D 20 43 4F 4E 56 45 52  54 20 42 46 25 28 54 2C  |- CONVERT BF%(T,|
00000440: 53 29 2B 42 55 25 28 54  2C 53 2C 2A 29 20 54 4F  |S)+BU%(T,S,*) TO|
00000450: 20 45 58 54 45 52 4E 41  4C 20 46 4F 52 4D 41 54  | EXTERNAL FORMAT|
00000460: 00 8C 0C 51 02 8F 20 20  2A 20 20 20 45 58 54 45  |...Q..  *   EXTE|
00000470: 52 4E 41 4C 20 46 4F 52  4D 41 54 20 49 53 20 50  |RNAL FORMAT IS P|
00000480: 4C 41 43 45 44 20 49 4E  20 42 55 24 00 AE 0C 52  |LACED IN BU$...R|
00000490: 02 8F 20 20 2A 20 20 20  43 48 41 4E 47 45 53 20  |..  *   CHANGES |
000004A0: 41 2C 42 2C 20 41 24 2C  42 24 2C 20 53 24 00 B8  |A,B, A$,B$, S$..|
000004B0: 0C 53 02 8F 20 20 2A 2F  00 E9 0C 58 02 42 55 24  |.S..  */...X.BU$|
000004C0: B2 22 22 3A 20 41 B2 42  46 25 28 54 2C 53 29 3A  |."": A.BF%(T,S):|
000004D0: 20 8B 20 41 20 B3 20 30  20 A7 20 41 B2 41 AA 32  | . A . 0 . A.A.2|
000004E0: 3A 20 42 55 24 B2 22 58  22 00 03 0D 62 02 42 55  |: BU$."X"...b.BU|
000004F0: 24 B2 CA 28 22 46 41 22  2C 41 AA 31 2C 31 29 AA  |$..("FA",A.1,1).|
00000500: 42 55 24 00 1C 0D 6C 02  8B 20 42 55 25 28 54 2C  |BU$...l.. BU%(T,|
00000510: 53 2C 30 29 B2 30 20 A7  20 37 31 30 00 59 0D 76  |S,0).0 . 710.Y.v|
00000520: 02 41 B2 42 55 25 28 54  2C 53 2C 31 29 3A 20 42  |.A.BU%(T,S,1): B|
00000530: B2 42 55 25 28 54 2C 53  2C 32 29 3A 20 8D 20 32  |.BU%(T,S,2): . 2|
00000540: 30 30 3A 20 41 B2 42 55  25 28 54 2C 53 2C 30 29  |00: A.BU%(T,S,0)|
00000550: AB 31 3A 20 8D 20 35 30  30 00 74 0D 80 02 42 55  |.1: . 500.t...BU|
00000560: 24 B2 42 55 24 AA 22 20  22 AA 41 24 AA 22 3C 2D  |$.BU$." ".A$."<-|
00000570: 22 AA 53 24 00 8D 0D 8A  02 8B 20 42 55 25 28 54  |".S$...... BU%(T|
00000580: 2C 53 2C 33 29 B2 30 20  A7 20 37 31 30 00 CA 0D  |,S,3).0 . 710...|
00000590: 94 02 41 B2 42 55 25 28  54 2C 53 2C 34 29 3A 20  |..A.BU%(T,S,4): |
000005A0: 42 B2 42 55 25 28 54 2C  53 2C 35 29 3A 20 8D 20  |B.BU%(T,S,5): . |
000005B0: 32 30 30 3A 20 41 B2 42  55 25 28 54 2C 53 2C 33  |200: A.BU%(T,S,3|
000005C0: 29 AB 31 3A 20 8D 20 35  30 30 00 E5 0D 9E 02 42  |).1: . 500.....B|
000005D0: 55 24 B2 42 55 24 AA 22  20 22 AA 41 24 AA 22 3C  |U$.BU$." ".A$."<|
000005E0: 2D 22 AA 53 24 00 FE 0D  A8 02 8B 20 42 55 25 28  |-".S$...... BU%(|
000005F0: 54 2C 53 2C 36 29 B2 30  20 A7 20 37 31 30 00 3B  |T,S,6).0 . 710.;|
00000600: 0E B2 02 41 B2 42 55 25  28 54 2C 53 2C 37 29 3A  |...A.BU%(T,S,7):|
00000610: 20 42 B2 42 55 25 28 54  2C 53 2C 38 29 3A 20 8D  | B.BU%(T,S,8): .|
00000620: 20 32 30 30 3A 20 41 B2  42 55 25 28 54 2C 53 2C  | 200: A.BU%(T,S,|
00000630: 36 29 AB 31 3A 20 8D 20  35 30 30 00 56 0E BC 02  |6).1: . 500.V...|
00000640: 42 55 24 B2 42 55 24 AA  22 20 22 AA 41 24 AA 22  |BU$.BU$." ".A$."|
00000650: 3C 2D 22 AA 53 24 00 78  0E C6 02 41 B2 4C 54 25  |<-".S$.x...A.LT%|
00000660: 28 54 2C 53 29 3A 20 42  B2 4C 53 25 28 54 2C 53  |(T,S): B.LS%(T,S|
00000670: 29 3A 20 8D 20 32 30 30  00 8C 0E D0 02 42 55 24  |): . 200.....BU$|
00000680: B2 42 55 24 AA 22 2D 3E  22 AA 41 24 00 92 0E DA  |.BU$."->".A$....|
00000690: 02 8E 00 9B 0E 16 03 8F  20 2F 2A 00 DC 0E 17 03  |........ /*.....|
000006A0: 8F 20 20 2A 20 47 4F 53  55 42 20 38 30 30 20 2D  |.  * GOSUB 800 -|
000006B0: 20 43 48 45 43 4B 20 57  48 45 54 48 45 52 20 54  | CHECK WHETHER T|
000006C0: 2C 53 20 41 52 45 20 41  20 56 41 4C 49 44 20 42  |,S ARE A VALID B|
000006D0: 4C 4F 43 4B 20 41 44 44  52 45 53 53 00 E5 0E 18  |LOCK ADDRESS....|
000006E0: 03 8F 20 20 2A 00 11 0F  19 03 8F 20 20 2A 20 20  |..  *......  *  |
000006F0: 41 52 52 41 59 20 53 5A  25 28 29 20 4D 55 53 54  |ARRAY SZ%() MUST|
00000700: 20 48 41 56 45 20 42 45  45 4E 20 53 45 54 20 55  | HAVE BEEN SET U|
00000710: 50 00 4A 0F 1A 03 8F 20  20 2A 20 20 41 20 49 53  |P.J....  *  A IS|
00000720: 20 53 45 54 20 54 4F 20  54 48 45 20 54 52 55 54  | SET TO THE TRUT|
00000730: 48 20 56 41 4C 55 45 20  46 4F 52 20 28 54 2C 53  |H VALUE FOR (T,S|
00000740: 29 20 49 53 20 56 41 4C  49 44 00 53 0F 1B 03 8F  |) IS VALID.S....|
00000750: 20 20 2A 00 8C 0F 1C 03  8F 20 20 2A 20 20 42 2C  |  *......  *  B,|
00000760: 20 41 24 2C 42 24 20 41  52 45 20 43 48 41 4E 47  | A$,B$ ARE CHANG|
00000770: 45 44 20 49 46 46 20 41  20 49 53 20 46 41 4C 53  |ED IFF A IS FALS|
00000780: 45 20 20 20 20 20 28 49  48 42 21 29 00 96 0F 1D  |E     (IHB!)....|
00000790: 03 8F 20 20 2A 2F 00 C9  0F 20 03 41 20 B2 20 28  |..  */... .A . (|
000007A0: 30 B3 54 20 AF 20 54 B3  B2 4D 54 29 20 AF 20 28  |0.T . T..MT) . (|
000007B0: 30 B3 B2 53 20 AF 20 53  B3 53 5A 25 28 54 29 29  |0..S . S.SZ%(T))|
000007C0: 3A 20 8B 20 41 20 A7 20  8E 00 10 10 2A 03 8F 20  |: . A . ....*.. |
000007D0: 2A 2A 20 52 4F 55 54 49  4E 45 20 49 53 20 44 45  |** ROUTINE IS DE|
000007E0: 53 49 47 4E 45 44 20 46  4F 52 20 49 4E 54 45 52  |SIGNED FOR INTER|
000007F0: 41 43 54 49 56 45 20 4D  4F 44 45 20 55 53 45 2C  |ACTIVE MODE USE,|
00000800: 20 53 4F 20 52 45 50 4F  52 54 20 45 52 52 4F 52  | SO REPORT ERROR|
00000810: 00 23 10 34 03 41 B2 54  3A 42 B2 53 3A 20 8D 20  |.#.4.A.T:B.S: . |
00000820: 32 30 30 00 57 10 3E 03  99 20 22 43 55 52 52 45  |200.W.>.. "CURRE|
00000830: 4E 54 20 54 52 41 43 4B  20 41 4E 44 20 53 45 43  |NT TRACK AND SEC|
00000840: 54 4F 52 20 50 41 49 52  20 22 3B 41 24 3B 22 20  |TOR PAIR ";A$;" |
00000850: 49 53 20 42 41 44 22 00  64 10 48 03 41 20 B2 20  |IS BAD".d.H.A . |
00000860: 30 3A 20 8E 00 8B 10 28  23 44 4B 24 B2 22 30 22  |0: ....(#DK$."0"|
00000870: 3A 20 44 56 B2 38 3A 20  20 9F 20 31 35 2C 44 56  |: DV.8:  . 15,DV|
00000880: 2C 31 35 2C 22 49 22 AA  44 4B 24 00 B1 10 1C 25  |,15,"I".DK$....%|
00000890: 4F 55 B2 34 3A 85 22 4F  55 54 50 55 54 20 44 45  |OU.4:."OUTPUT DE|
000008A0: 56 49 43 45 20 28 33 20  4F 52 20 34 29 22 3B 4F  |VICE (3 OR 4)";O|
000008B0: 55 00 CC 10 26 25 8B 20  4F 55 B3 B1 33 20 AF 20  |U...&%. OU..3 . |
000008C0: 4F 55 B3 B1 34 20 A7 20  39 35 30 30 00 D8 10 30  |OU..4 . 9500...0|
000008D0: 25 9F 20 34 2C 34 2C 37  00 E2 10 3A 25 9F 20 33  |%. 4,4,7...:%. 3|
000008E0: 2C 33 00 03 11 10 27 46  43 B2 30 3A 20 46 42 B2  |,3....'FC.0: FB.|
000008F0: 30 3A 20 41 31 B2 30 3A  20 46 31 B2 30 3A 20 46  |0: A1.0: F1.0: F|
00000900: 32 B2 30 00 24 11 1A 27  4D 54 B2 33 35 3A 20 4D  |2.0.$..'MT.35: M|
00000910: 53 B2 32 33 3A 20 42 53  B2 33 3A 20 43 30 24 B2  |S.23: BS.3: C0$.|
00000920: C7 28 30 29 00 33 11 1F  27 53 53 24 B2 C7 28 31  |.(0).3..'SS$..(1|
00000930: 36 30 29 00 55 11 24 27  86 20 42 4D 25 28 4D 54  |60).U.$'. BM%(MT|
00000940: 2C 42 53 29 2C 20 53 5A  25 28 4D 54 29 3A 20 4D  |,BS), SZ%(MT): M|
00000950: 46 B2 31 34 35 00 9F 11  29 27 86 20 4C 53 25 28  |F.145...)'. LS%(|
00000960: 4D 54 2C 4D 53 29 2C 20  4C 54 25 28 4D 54 2C 4D  |MT,MS), LT%(MT,M|
00000970: 53 29 2C 20 44 4E 24 28  4D 46 29 2C 20 44 45 25  |S), DN$(MF), DE%|
00000980: 28 4D 46 29 2C 20 44 54  25 28 4D 46 29 2C 20 44  |(MF), DT%(MF), D|
00000990: 53 25 28 4D 46 29 2C 20  44 5A 25 28 4D 46 29 00  |S%(MF), DZ%(MF).|
000009A0: E3 11 2E 27 86 20 42 46  25 28 4D 54 2C 4D 53 29  |...'. BF%(MT,MS)|
000009B0: 3A 20 8F 20 2A 2A 20 42  4C 4F 43 4B 20 46 4C 41  |: . ** BLOCK FLA|
000009C0: 47 53 3B 20 30 20 46 52  45 45 3B 20 31 20 41 4C  |GS; 0 FREE; 1 AL|
000009D0: 4C 4F 43 41 54 45 44 3B  20 3C 30 20 49 4E 56 41  |LOCATED; <0 INVA|
000009E0: 4C 49 44 00 1D 12 2F 27  86 20 42 55 25 28 4D 54  |LID.../'. BU%(MT|
000009F0: 2C 4D 53 2C 38 29 3A 20  8F 20 2A 2A 20 42 4C 4F  |,MS,8): . ** BLO|
00000A00: 43 4B 20 55 53 41 47 45  20 54 41 42 4C 45 3B 20  |CK USAGE TABLE; |
00000A10: 55 50 20 54 4F 20 33 20  46 49 4C 45 53 00 5A 12  |UP TO 3 FILES.Z.|
00000A20: 30 27 86 20 43 43 28 31  29 3A 20 8F 20 2A 2A 20  |0'. CC(1): . ** |
00000A30: 43 4F 55 4E 54 45 52 3B  20 43 43 28 30 29 20 46  |COUNTER; CC(0) F|
00000A40: 52 45 45 20 42 4C 4F 43  4B 3B 20 43 43 28 31 29  |REE BLOCK; CC(1)|
00000A50: 20 41 4C 4C 4F 43 41 54  45 44 00 78 12 31 27 86  | ALLOCATED.x.1'.|
00000A60: 20 54 59 24 28 35 29 3A  20 8F 20 2A 2A 20 46 49  | TY$(5): . ** FI|
00000A70: 4C 45 20 54 59 50 45 53  00 96 12 33 27 83 20 44  |LE TYPES...3'. D|
00000A80: 45 4C 2C 53 45 51 2C 50  52 47 2C 55 53 52 2C 52  |EL,SEQ,PRG,USR,R|
00000A90: 45 4C 2C 42 41 44 00 AE  12 38 27 83 20 31 2C 31  |EL,BAD...8'. 1,1|
00000AA0: 37 2C 32 31 2C 20 31 38  2C 32 34 2C 31 39 00 C7  |7,21, 18,24,19..|
00000AB0: 12 42 27 83 20 32 35 2C  33 30 2C 31 38 2C 20 33  |.B'. 25,30,18, 3|
00000AC0: 31 2C 33 35 2C 31 37 00  E4 12 47 27 81 20 49 B2  |1,35,17...G'. I.|
00000AD0: 30 20 A4 20 35 3A 20 87  20 54 59 24 28 49 29 3A  |0 . 5: . TY$(I):|
00000AE0: 20 82 20 49 00 07 13 4C  27 44 46 B2 38 3A 20 9F  | . I...L'DF.8: .|
00000AF0: 20 44 46 2C 44 56 2C 38  2C 22 24 22 AA 44 4B 24  | DF,DV,8,"$".DK$|
00000B00: 3A 20 8D 20 34 31 35 00  2D 13 56 27 A1 23 44 46  |: . 415.-.V'.#DF|
00000B10: 2C 41 24 2C 41 24 3A 20  8F 20 2A 2A 20 53 4B 49  |,A$,A$: . ** SKI|
00000B20: 50 20 31 53 54 20 32 20  42 59 54 45 53 00 36 13  |P 1ST 2 BYTES.6.|
00000B30: 6A 27 8F 20 2F 2A 00 6E  13 6B 27 8F 20 20 2A 20  |j'. /*.n.k'.  * |
00000B40: 4E 4F 57 20 49 4E 54 45  52 50 52 45 54 20 54 48  |NOW INTERPRET TH|
00000B50: 45 20 42 41 4D 3B 20 52  45 41 44 20 44 41 54 41  |E BAM; READ DATA|
00000B60: 20 53 54 41 54 45 4D 45  4E 54 53 20 54 4F 00 A1  | STATEMENTS TO..|
00000B70: 13 6C 27 8F 20 20 2A 20  20 44 45 54 45 52 4D 49  |.l'.  *  DETERMI|
00000B80: 4E 45 20 43 4F 52 52 45  43 54 20 23 20 4F 46 20  |NE CORRECT # OF |
00000B90: 53 45 43 54 4F 52 53 20  50 45 52 20 54 52 41 43  |SECTORS PER TRAC|
00000BA0: 4B 00 AB 13 6D 27 8F 20  20 2A 2F 00 B9 13 74 27  |K...m'.  */...t'|
00000BB0: 81 20 49 B2 31 20 A4 20  34 00 E8 13 7E 27 87 20  |. I.1 . 4...~'. |
00000BC0: 4C 2C 48 2C 4E 3A 20 8F  20 2A 2A 20 54 52 41 43  |L,H,N: . ** TRAC|
00000BD0: 4B 53 20 4C 20 54 4F 20  48 20 48 41 56 45 20 4E  |KS L TO H HAVE N|
00000BE0: 20 53 45 43 54 4F 52 53  00 F6 13 88 27 81 20 4A  | SECTORS....'. J|
00000BF0: B2 4C 20 A4 20 48 00 03  14 92 27 53 5A 25 28 4A  |.L . H....'SZ%(J|
00000C00: 29 B2 4E 00 21 14 A6 27  A1 23 44 46 2C 41 24 3A  |).N.!..'.#DF,A$:|
00000C10: 20 8B 20 41 24 B2 22 22  20 A7 20 41 24 B2 43 30  | . A$."" . A$.C0|
00000C20: 24 00 42 14 BF 27 41 B2  C6 28 41 24 29 3A 20 46  |$.B..'A..(A$): F|
00000C30: 32 B2 46 32 AA 41 3A 20  42 4D 25 28 4A 2C 30 29  |2.F2.A: BM%(J,0)|
00000C40: B2 41 00 57 14 C4 27 4B  31 B2 30 3A 20 81 20 4B  |.A.W..'K1.0: . K|
00000C50: B2 31 20 A4 20 42 53 00  75 14 C9 27 A1 23 44 46  |.1 . BS.u..'.#DF|
00000C60: 2C 41 24 3A 20 8B 20 41  24 B2 22 22 20 A7 20 41  |,A$: . A$."" . A|
00000C70: 24 B2 43 30 24 00 91 14  CE 27 4D B2 C6 28 41 24  |$.C0$....'M..(A$|
00000C80: 29 3A 42 4D 25 28 4A 2C  4B 29 B2 4D 3A 4D 32 B2  |):BM%(J,K).M:M2.|
00000C90: 31 00 CE 14 E2 27 81 20  4B 32 B2 30 20 A4 20 37  |1....'. K2.0 . 7|
00000CA0: 3A 20 41 B2 20 AB 28 28  4D 20 AF 20 4D 32 29 B2  |: A. .((M . M2).|
00000CB0: 30 29 3A 20 42 46 25 28  4A 2C 4B 31 29 B2 41 3A  |0): BF%(J,K1).A:|
00000CC0: 20 43 43 28 41 29 B2 43  43 28 41 29 AA 31 00 FA  | CC(A).CC(A).1..|
00000CD0: 14 F6 27 4B 31 B2 4B 31  AA 31 3A 20 4D 32 B2 4D  |..'K1.K1.1: M2.M|
00000CE0: 32 AA 4D 32 3A 20 8F 20  2A 2A 20 53 48 49 46 54  |2.M2: . ** SHIFT|
00000CF0: 20 4D 32 20 4C 45 46 54  20 31 00 03 15 00 28 82  | M2 LEFT 1....(.|
00000D00: 20 4B 32 00 0B 15 0A 28  82 20 4B 00 14 15 0F 28  | K2....(. K....(|
00000D10: 8F 20 2F 2A 00 46 15 10  28 8F 20 20 2A 20 45 41  |. /*.F..(.  * EA|
00000D20: 43 48 20 42 41 4D 20 45  4E 54 52 59 20 43 4F 55  |CH BAM ENTRY COU|
00000D30: 4C 44 20 52 45 50 52 45  53 45 4E 54 20 32 34 20  |LD REPRESENT 24 |
00000D40: 42 4C 4F 43 4B 53 00 83  15 11 28 8F 20 20 2A 20  |BLOCKS....(.  * |
00000D50: 4D 41 52 4B 20 41 53 20  49 4E 56 41 4C 49 44 20  |MARK AS INVALID |
00000D60: 42 4C 4F 43 4B 53 20 47  52 45 41 54 45 52 20 54  |BLOCKS GREATER T|
00000D70: 48 41 4E 20 4E 55 4D 42  45 52 20 49 4E 20 54 52  |HAN NUMBER IN TR|
00000D80: 41 43 4B 00 C3 15 12 28  8F 20 20 2A 20 20 2D 20  |ACK....(.  *  - |
00000D90: 4E 4F 52 4D 41 4C 4C 59  20 57 49 4C 4C 20 42 45  |NORMALLY WILL BE|
00000DA0: 20 22 41 4C 4C 4F 43 41  54 45 44 22 3B 20 46 52  | "ALLOCATED"; FR|
00000DB0: 45 45 20 57 4F 55 4C 44  20 42 45 20 42 41 44 20  |EE WOULD BE BAD |
00000DC0: 42 41 4D 00 CD 15 13 28  8F 20 20 2A 2F 00 D5 15  |BAM....(.  */...|
00000DD0: 14 28 4B B2 4E 00 1B 16  1E 28 8B 20 4B B3 B2 4D  |.(K.N....(. K..M|
00000DE0: 53 20 A7 20 41 B2 42 46  25 28 4A 2C 4B 29 3A 20  |S . A.BF%(J,K): |
00000DF0: 42 46 25 28 4A 2C 4B 29  B2 41 AB 32 3A 20 43 43  |BF%(J,K).A.2: CC|
00000E00: 28 41 29 B2 43 43 28 41  29 AB 31 3A 20 4B B2 4B  |(A).CC(A).1: K.K|
00000E10: AA 31 3A 20 89 20 31 30  32 37 30 00 23 16 28 28  |.1: . 10270.#.((|
00000E20: 82 20 4A 00 2B 16 32 28  82 20 49 00 44 16 04 29  |. J.+.2(. I.D..)|
00000E30: 53 24 B2 22 22 3A 20 81  20 49 B2 31 34 34 20 A4  |S$."": . I.144 .|
00000E40: 20 31 37 30 00 6A 16 0E  29 A1 23 44 46 2C 41 24  | 170.j..).#DF,A$|
00000E50: 3A 20 53 24 B2 53 24 AA  C7 28 C6 28 41 24 AA 43  |: S$.S$..(.(A$.C|
00000E60: 30 24 29 20 AF 20 31 32  37 29 00 72 16 18 29 82  |0$) . 127).r..).|
00000E70: 20 49 00 8D 16 22 29 98  4F 55 2C 53 24 3A 20 8F  | I...").OU,S$: .|
00000E80: 20 2A 2A 20 44 49 53 4B  20 4E 41 4D 45 00 C8 16  | ** DISK NAME...|
00000E90: 2C 29 81 20 49 B2 31 37  31 20 A4 20 32 35 35 3A  |,). I.171 . 255:|
00000EA0: 20 A1 23 44 46 2C 41 24  3A 20 82 20 49 3A 20 8F  | .#DF,A$: . I: .|
00000EB0: 20 2A 2A 20 53 4B 49 50  20 54 4F 20 45 4E 44 20  | ** SKIP TO END |
00000EC0: 4F 46 20 42 4C 4F 43 4B  00 D1 16 EE 2A 8F 20 2F  |OF BLOCK....*. /|
00000ED0: 2A 00 FF 16 EF 2A 8F 20  20 2A 20 4E 4F 57 20 43  |*....*.  * NOW C|
00000EE0: 4F 4D 50 49 4C 45 20 41  20 4C 49 53 54 20 4F 46  |OMPILE A LIST OF|
00000EF0: 20 54 48 45 20 46 49 4C  45 20 4E 41 4D 45 53 00  | THE FILE NAMES.|
00000F00: 29 17 F0 2A 8F 20 20 2A  20 20 54 48 45 49 52 20  |)..*.  *  THEIR |
00000F10: 53 54 41 52 54 49 4E 47  20 42 4C 4F 43 4B 53 20  |STARTING BLOCKS |
00000F20: 41 4E 44 20 53 49 5A 45  53 00 33 17 F1 2A 8F 20  |AND SIZES.3..*. |
00000F30: 20 2A 2F 00 3C 17 F8 2A  4E 46 B2 30 00 72 17 02  | */.<..*NF.0.r..|
00000F40: 2B 8B 20 4E 46 B2 30 20  A7 20 31 31 30 32 30 3A  |+. NF.0 . 11020:|
00000F50: 20 8F 20 2A 2A 20 53 4B  49 50 20 32 20 42 59 54  | . ** SKIP 2 BYT|
00000F60: 45 53 20 45 56 45 52 59  20 38 20 45 4E 54 52 49  |ES EVERY 8 ENTRI|
00000F70: 45 53 00 7E 17 07 2B A1  23 44 46 2C 41 24 00 8A  |ES.~..+.#DF,A$..|
00000F80: 17 08 2B A1 23 44 46 2C  41 24 00 A6 17 0C 2B 4E  |..+.#DF,A$....+N|
00000F90: 46 B2 4E 46 AA 31 3A 20  8B 20 4E 46 B1 B2 38 20  |F.NF.1: . NF..8 |
00000FA0: A7 20 4E 46 B2 30 00 C4  17 16 2B A1 23 44 46 2C  |. NF.0....+.#DF,|
00000FB0: 45 24 3A 20 8B 20 45 24  B2 22 22 20 A7 20 45 24  |E$: . E$."" . E$|
00000FC0: B2 43 30 24 00 D3 17 20  2B A1 23 44 46 2C 54 24  |.C0$... +.#DF,T$|
00000FD0: 2C 53 24 00 EC 17 2A 2B  45 B2 C6 28 45 24 29 3A  |,S$...*+E..(E$):|
00000FE0: 20 8F 20 45 58 54 45 4E  53 49 4F 4E 00 05 18 34  | . EXTENSION...4|
00000FF0: 2B 54 B2 C6 28 54 24 AA  43 30 24 29 3A 20 8F 20  |+T..(T$.C0$): . |
00001000: 54 52 41 43 4B 00 1F 18  3E 2B 53 B2 C6 28 53 24  |TRACK...>+S..(S$|
00001010: AA 43 30 24 29 3A 20 8F  20 53 45 43 54 4F 52 00  |.C0$): . SECTOR.|
00001020: 3A 18 48 2B 41 B2 45 20  AF 20 31 32 37 3A 20 8B  |:.H+A.E . 127: .|
00001030: 20 41 B1 34 20 A7 20 41  B2 35 00 63 18 52 2B 54  | A.4 . A.5.c.R+T|
00001040: 24 B2 54 59 24 28 41 29  3A 20 8B 20 28 45 20 AF  |$.TY$(A): . (E .|
00001050: 20 31 32 38 29 B2 30 20  A7 20 54 24 B2 54 24 AA  | 128).0 . T$.T$.|
00001060: 22 2A 22 00 72 18 5C 2B  53 24 B2 22 22 3A 20 49  |"*".r.\+S$."": I|
00001070: B2 33 00 AD 18 66 2B A1  23 44 46 2C 41 24 3A 20  |.3...f+.#DF,A$: |
00001080: 8B 20 41 24 B3 B1 53 53  24 20 A7 20 53 24 B2 53  |. A$..SS$ . S$.S|
00001090: 24 AA 41 24 3A 20 8B 20  49 B3 31 38 20 A7 20 49  |$.A$: . I.18 . I|
000010A0: B2 49 AA 31 3A 20 89 20  31 31 31 31 30 00 D2 18  |.I.1: . 11110...|
000010B0: 70 2B 8B 20 49 B3 32 37  20 A7 20 A1 23 44 46 2C  |p+. I.27 . .#DF,|
000010C0: 41 24 3A 20 49 B2 49 AA  31 3A 20 89 20 31 31 31  |A$: I.I.1: . 111|
000010D0: 32 30 00 E8 18 7A 2B A1  23 44 46 2C 41 24 2C 42  |20...z+.#DF,A$,B|
000010E0: 24 3A 20 52 53 B2 53 54  00 1F 19 7F 2B 58 B2 C6  |$: RS.ST....+X..|
000010F0: 28 41 24 AA 43 30 24 29  AA 32 35 36 AC C6 28 42  |(A$.C0$).256..(B|
00001100: 24 AA 43 30 24 29 3A 20  8F 20 46 49 4C 45 20 53  |$.C0$): . FILE S|
00001110: 49 5A 45 20 28 41 4C 4C  45 47 45 44 4C 59 29 00  |IZE (ALLEGEDLY).|
00001120: 5D 19 89 2B 8B 20 28 45  20 AF 20 31 32 38 29 B2  |]..+. (E . 128).|
00001130: 30 20 A7 20 42 43 B2 42  43 AA 31 3A 20 42 42 B2  |0 . BC.BC.1: BB.|
00001140: 42 42 AA 58 3A 20 20 8F  20 2A 2A 20 42 41 44 4C  |BB.X:  . ** BADL|
00001150: 59 20 43 4C 4F 53 45 44  20 46 49 4C 45 00 A1 19  |Y CLOSED FILE...|
00001160: 8E 2B 44 4E 24 28 46 43  29 B2 53 24 3A 20 44 45  |.+DN$(FC).S$: DE|
00001170: 25 28 46 43 29 B2 45 3A  20 44 54 25 28 46 43 29  |%(FC).E: DT%(FC)|
00001180: B2 54 3A 20 44 53 25 28  46 43 29 B2 53 3A 20 44  |.T: DS%(FC).S: D|
00001190: 5A 25 28 46 43 29 B2 58  3A 20 46 42 B2 46 42 AA  |Z%(FC).X: FB.FB.|
000011A0: 58 00 CB 19 93 2B 41 B2  54 3A 20 42 B2 53 3A 20  |X....+A.T: B.S: |
000011B0: 8D 20 32 30 30 3A 20 41  B2 46 43 3A 20 8D 20 35  |. 200: A.FC: . 5|
000011C0: 30 30 3A 20 46 43 B2 46  43 AA 31 00 05 1A 98 2B  |00: FC.FC.1....+|
000011D0: 98 4F 55 2C 53 24 3B C8  28 22 20 20 20 20 20 20  |.OU,S$;.("      |
000011E0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 22 2C  |              ",|
000011F0: 32 31 AB C3 28 53 24 29  29 3B 58 3B 22 46 52 4F  |21..(S$));X;"FRO|
00001200: 4D 22 3B 41 24 00 18 1A  D4 2B 8B 20 52 53 B2 30  |M";A$....+. RS.0|
00001210: 20 A7 20 31 31 30 31 30  00 37 1A F2 2B 8B 20 52  | . 11010.7..+. R|
00001220: 53 B3 B1 36 34 20 A7 20  99 22 45 52 52 4F 52 20  |S..64 . ."ERROR |
00001230: 52 53 3D 22 3B 52 53 00  40 1A 1A 2C 8F 20 2F 2A  |RS=";RS.@..,. /*|
00001240: 00 7F 1A 1B 2C 8F 20 20  2A 20 4E 4F 57 20 57 45  |....,.  * NOW WE|
00001250: 20 41 43 43 45 53 53 20  54 48 45 20 44 49 53 4B  | ACCESS THE DISK|
00001260: 20 52 41 4E 44 4F 4D 4C  59 20 54 4F 20 42 55 49  | RANDOMLY TO BUI|
00001270: 4C 44 20 41 20 50 49 43  54 55 52 45 20 4F 46 00  |LD A PICTURE OF.|
00001280: B1 1A 1C 2C 8F 20 20 2A  20 54 48 45 20 4C 49 4E  |...,.  * THE LIN|
00001290: 4B 53 20 42 45 54 57 45  45 4E 20 54 48 45 20 42  |KS BETWEEN THE B|
000012A0: 4C 4F 43 4B 53 20 4F 4E  20 54 48 45 20 44 49 53  |LOCKS ON THE DIS|
000012B0: 4B 00 BB 1A 1D 2C 8F 20  20 2A 2F 00 E6 1A 24 2C  |K....,.  */...$,|
000012C0: A0 20 44 46 3A 20 81 20  49 B2 31 20 A4 20 31 30  |. DF: . I.1 . 10|
000012D0: 30 30 3A 20 82 20 49 3A  20 9F 20 44 46 2C 44 56  |00: . I: . DF,DV|
000012E0: 2C 38 2C 22 23 22 00 EC  1A 2E 2C 99 00 FB 1A 38  |,8,"#"....,....8|
000012F0: 2C 81 20 54 B2 31 20 A4  20 4D 54 00 19 1B 42 2C  |,. T.1 . MT...B,|
00001300: 99 20 22 54 52 41 43 4B  22 3B 54 3B C7 28 31 34  |. "TRACK";T;.(14|
00001310: 35 29 3B C7 28 31 33 29  3B 00 2E 1B 4C 2C 81 20  |5);.(13);...L,. |
00001320: 53 B2 30 20 A4 20 53 5A  25 28 54 29 AB 31 00 69  |S.0 . SZ%(T).1.i|
00001330: 1B 56 2C 98 31 35 2C 22  55 31 3A 38 2C 22 3B 44  |.V,.15,"U1:8,";D|
00001340: 4B 24 3B 54 3B 53 3A 20  84 31 35 2C 45 4E 2C 45  |K$;T;S: .15,EN,E|
00001350: 4D 24 2C 45 54 2C 45 53  3A 20 8B 20 45 4E B3 B1  |M$,ET,ES: . EN..|
00001360: 30 20 A7 20 31 31 33 39  32 00 87 1B 6A 2C A1 23  |0 . 11392...j,.#|
00001370: 44 46 2C 41 24 3A 20 8B  20 41 24 B2 22 22 20 A7  |DF,A$: . A$."" .|
00001380: 20 41 24 B2 43 30 24 00  9C 1B 6F 2C 4C 54 25 28  | A$.C0$...o,LT%(|
00001390: 54 2C 53 29 20 B2 20 C6  28 41 24 29 00 BA 1B 74  |T,S) . .(A$)...t|
000013A0: 2C A1 23 44 46 2C 41 24  3A 20 8B 20 41 24 B2 22  |,.#DF,A$: . A$."|
000013B0: 22 20 A7 20 41 24 B2 43  30 24 00 CF 1B 79 2C 4C  |" . A$.C0$...y,L|
000013C0: 53 25 28 54 2C 53 29 20  B2 20 C6 28 41 24 29 00  |S%(T,S) . .(A$).|
000013D0: 12 1C 7E 2C 82 20 53 3A  20 89 20 31 31 34 30 30  |..~,. S: . 11400|
000013E0: 3A 20 8F 20 2A 2A 20 45  52 52 4F 52 20 48 41 4E  |: . ** ERROR HAN|
000013F0: 44 4C 49 4E 47 20 48 45  52 45 20 54 4F 20 53 50  |DLING HERE TO SP|
00001400: 45 45 44 20 53 45 43 54  4F 52 20 4C 4F 4F 50 20  |EED SECTOR LOOP |
00001410: 55 50 00 3E 1C 80 2C 99  20 22 44 49 53 4B 20 45  |UP.>..,. "DISK E|
00001420: 52 52 4F 52 22 3B 45 4E  3B 45 4D 24 3B 45 54 3B  |RROR";EN;EM$;ET;|
00001430: 45 53 3A 20 A0 20 44 46  3A 20 A0 20 31 35 00 64  |ES: . DF: . 15.d|
00001440: 1C 81 2C 9F 20 31 35 2C  44 56 2C 31 35 2C 22 49  |..,. 15,DV,15,"I|
00001450: 22 AA 44 4B 24 3A 20 9F  20 44 46 2C 44 56 2C 38  |".DK$: . DF,DV,8|
00001460: 2C 22 23 22 00 8A 1C 82  2C 4C 54 25 28 54 2C 53  |,"#"....,LT%(T,S|
00001470: 29 B2 AB 31 3A 20 4C 53  25 28 54 2C 53 29 B2 AB  |)..1: LS%(T,S)..|
00001480: 31 3A 20 89 20 31 31 33  39 30 00 92 1C 88 2C 82  |1: . 11390....,.|
00001490: 20 54 00 A1 1C 92 2C A0  20 44 46 3A 20 A0 20 31  | T....,. DF: . 1|
000014A0: 35 00 D5 1C F6 2C 98 4F  55 2C 46 43 AB 42 43 3B  |5....,.OU,FC.BC;|
000014B0: 22 47 4F 4F 44 20 46 49  4C 45 53 20 54 4F 54 41  |"GOOD FILES TOTA|
000014C0: 4C 4C 49 4E 47 22 3B 46  42 AB 42 42 3B 22 42 4C  |LLING";FB.BB;"BL|
000014D0: 4F 43 4B 53 22 00 02 1D  00 2D 98 4F 55 2C 42 43  |OCKS"....-.OU,BC|
000014E0: 3B 22 42 41 44 20 46 49  4C 45 53 20 54 4F 54 41  |;"BAD FILES TOTA|
000014F0: 4C 4C 49 4E 47 22 3B 42  42 3B 22 42 4C 4F 43 4B  |LLING";BB;"BLOCK|
00001500: 53 22 00 4A 1D 0A 2D 98  4F 55 2C 22 42 49 54 4D  |S".J..-.OU,"BITM|
00001510: 41 50 20 53 48 4F 57 53  22 3B 43 43 28 31 29 3B  |AP SHOWS";CC(1);|
00001520: 22 20 42 4C 4F 43 4B 53  20 41 4C 4C 4F 43 41 54  |" BLOCKS ALLOCAT|
00001530: 45 44 3B 22 3B 43 43 28  30 29 3B 22 28 22 3B 46  |ED;";CC(0);"(";F|
00001540: 32 3B 22 29 20 46 52 45  45 22 00 89 1D 14 2D 41  |2;") FREE"....-A|
00001550: B2 B5 28 46 43 AD 38 29  AA 31 3A 20 98 4F 55 2C  |..(FC.8).1: .OU,|
00001560: 46 43 3B 22 46 49 4C 45  20 45 4E 54 52 49 45 53  |FC;"FILE ENTRIES|
00001570: 20 49 4E 22 3B 41 3B 22  44 49 52 45 43 54 4F 52  | IN";A;"DIRECTOR|
00001580: 59 20 42 4C 4F 43 4B 53  22 00 92 1D D6 2E 8F 20  |Y BLOCKS"...... |
00001590: 2F 2A 00 D3 1D D7 2E 8F  20 20 2A 20 4E 4F 57 20  |/*......  * NOW |
000015A0: 54 52 41 43 45 20 44 4F  57 4E 20 54 48 45 20 4C  |TRACE DOWN THE L|
000015B0: 49 4E 4B 45 44 20 4C 49  53 54 20 4F 46 20 42 4C  |INKED LIST OF BL|
000015C0: 4F 43 4B 53 20 46 4F 52  20 45 41 43 48 20 46 49  |OCKS FOR EACH FI|
000015D0: 4C 45 2C 00 FA 1D D8 2E  8F 20 20 2A 20 20 41 4E  |LE,......  *  AN|
000015E0: 44 20 4E 4F 54 45 20 41  4E 59 20 49 4E 43 4F 4E  |D NOTE ANY INCON|
000015F0: 53 49 53 54 45 4E 43 49  45 53 00 04 1E D9 2E 8F  |SISTENCIES......|
00001600: 20 20 2A 2F 00 36 1E E0  2E 81 20 49 B2 30 20 A4  |  */.6.... I.0 .|
00001610: 20 46 43 AB 31 3A 20 8F  20 2A 2A 20 46 4F 52 20  | FC.1: . ** FOR |
00001620: 45 41 43 48 20 46 49 4C  45 20 49 4E 20 44 49 52  |EACH FILE IN DIR|
00001630: 45 43 54 4F 52 59 00 57  1E F4 2E 54 B2 44 54 25  |ECTORY.W...T.DT%|
00001640: 28 49 29 3A 20 8F 20 2A  2A 20 49 4E 49 54 49 41  |(I): . ** INITIA|
00001650: 4C 20 54 52 41 43 4B 00  85 1E F9 2E 54 31 B2 30  |L TRACK.....T1.0|
00001660: 3A 20 8F 20 2A 2A 20 49  4E 49 54 49 41 4C 20 50  |: . ** INITIAL P|
00001670: 52 45 56 49 4F 55 53 20  54 52 41 43 4B 20 28 44  |REVIOUS TRACK (D|
00001680: 55 4D 4D 59 29 00 A7 1E  FE 2E 53 B2 44 53 25 28  |UMMY).....S.DS%(|
00001690: 49 29 3A 20 8F 20 2A 2A  20 49 4E 49 54 49 41 4C  |I): . ** INITIAL|
000016A0: 20 53 45 43 54 4F 52 00  D6 1E 03 2F 53 31 B2 30  | SECTOR..../S1.0|
000016B0: 3A 20 8F 20 2A 2A 20 49  4E 49 54 49 41 4C 20 50  |: . ** INITIAL P|
000016C0: 52 45 56 49 4F 55 53 20  53 45 43 54 4F 52 20 28  |REVIOUS SECTOR (|
000016D0: 44 55 4D 4D 59 29 00 FB  1E 08 2F 58 B2 44 5A 25  |DUMMY)..../X.DZ%|
000016E0: 28 49 29 3A 20 8F 20 2A  2A 20 41 4C 4C 45 47 45  |(I): . ** ALLEGE|
000016F0: 44 20 46 49 4C 45 20 53  49 5A 45 00 17 1F 12 2F  |D FILE SIZE..../|
00001700: 4A B2 30 3A 20 8F 20 2A  2A 20 42 4C 4F 43 4B 20  |J.0: . ** BLOCK |
00001710: 43 4F 55 4E 54 45 52 00  45 1F 1C 2F 8B 20 30 B3  |COUNTER.E../. 0.|
00001720: 54 20 AF 20 54 B3 B2 4D  54 20 A7 20 8B 20 30 B3  |T . T..MT . . 0.|
00001730: B2 53 20 AF 20 53 B3 53  5A 25 28 54 29 20 A7 20  |.S . S.SZ%(T) . |
00001740: 31 32 31 30 30 00 64 1F  21 2F 41 B2 54 31 3A 42  |12100.d.!/A.T1:B|
00001750: B2 53 31 3A 8D 20 32 30  30 3A 20 41 B2 49 3A 8D  |.S1:. 200: A.I:.|
00001760: 20 35 30 30 00 98 1F 26  2F 98 4F 55 2C 53 24 3B  | 500...&/.OU,S$;|
00001770: 22 20 42 41 44 20 54 52  41 43 4B 26 53 45 43 54  |" BAD TRACK&SECT|
00001780: 4F 52 20 50 4F 49 4E 54  45 52 3B 20 42 4C 4F 43  |OR POINTER; BLOC|
00001790: 4B 22 3B 4A 3B 41 24 3B  00 B6 1F 2B 2F 41 B2 54  |K";J;A$;...+/A.T|
000017A0: 3A 42 B2 53 3A 8D 20 32  30 30 3A 20 98 4F 55 2C  |:B.S:. 200: .OU,|
000017B0: 22 2D 3E 22 41 24 00 C2  1F 30 2F 89 20 31 32 33  |"->"A$...0/. 123|
000017C0: 30 30 00 F9 1F 44 2F 4A  B2 4A AA 31 3A 20 8B 20  |00...D/J.J.1: . |
000017D0: 42 55 25 28 54 2C 53 2C  30 29 B3 B1 30 20 A7 20  |BU%(T,S,0)..0 . |
000017E0: 45 24 B2 22 4D 55 4C 54  49 50 4C 45 4C 59 20 22  |E$."MULTIPLELY "|
000017F0: 3A 20 89 20 31 32 31 31  30 00 12 20 49 2F 8B 20  |: . 12110.. I/. |
00001800: 42 46 25 28 54 2C 53 29  B2 31 20 A7 20 31 32 31  |BF%(T,S).1 . 121|
00001810: 33 30 00 24 20 4A 2F 45  24 B2 22 55 4E 22 3A 8D  |30.$ J/E$."UN":.|
00001820: 20 32 30 30 00 58 20 4E  2F 41 B2 49 3A 20 8D 20  | 200.X N/A.I: . |
00001830: 35 30 30 3A 20 98 4F 55  2C 22 45 52 52 4F 52 20  |500: .OU,"ERROR |
00001840: 49 4E 20 22 3B 53 24 3B  22 28 42 4C 4F 43 4B 22  |IN ";S$;"(BLOCK"|
00001850: 3B 4A 3B 22 29 3A 22 3B  00 8A 20 53 2F 41 B2 54  |;J;"):";.. S/A.T|
00001860: 3A 20 42 B2 53 3A 20 8D  20 32 30 30 3A 20 98 4F  |: B.S: . 200: .O|
00001870: 55 2C 45 24 3B 22 41 4C  4C 4F 43 41 54 45 44 20  |U,E$;"ALLOCATED |
00001880: 42 4C 4F 43 4B 20 22 3B  41 24 00 9D 20 58 2F 8D  |BLOCK ";A$.. X/.|
00001890: 20 36 30 30 3A 20 98 4F  55 2C 42 55 24 00 A5 20  | 600: .OU,BU$.. |
000018A0: 62 2F 4B B2 30 00 D4 20  67 2F 8B 20 4B 20 B3 20  |b/K.0.. g/. K . |
000018B0: 39 20 A7 20 8B 20 42 55  25 28 54 2C 53 2C 4B 29  |9 . . BU%(T,S,K)|
000018C0: B3 B1 30 20 A7 20 4B B2  4B AA 33 3A 20 89 20 31  |..0 . K.K.3: . 1|
000018D0: 32 31 33 35 00 1A 21 68  2F 8B 20 4B 20 B3 20 39  |2135..!h/. K . 9|
000018E0: 20 A7 20 42 55 25 28 54  2C 53 2C 4B 29 B2 49 AA  | . BU%(T,S,K).I.|
000018F0: 31 3A 42 55 25 28 54 2C  53 2C 4B AA 31 29 B2 54  |1:BU%(T,S,K.1).T|
00001900: 31 3A 42 55 25 28 54 2C  53 2C 4B AA 32 29 B2 53  |1:BU%(T,S,K.2).S|
00001910: 31 3A 20 89 20 31 32 31  34 35 00 60 21 6C 2F 41  |1: . 12145.`!l/A|
00001920: B2 54 3A 42 B2 53 3A 8D  32 30 30 3A 98 4F 55 2C  |.T:B.S:.200:.OU,|
00001930: 22 42 4C 4F 43 4B 20 22  3B 41 24 3B 22 20 48 41  |"BLOCK ";A$;" HA|
00001940: 53 20 54 4F 4F 20 4D 41  4E 59 20 52 45 46 45 52  |S TOO MANY REFER|
00001950: 45 4E 43 45 53 20 54 4F  20 52 45 43 4F 52 44 22  |ENCES TO RECORD"|
00001960: 00 8B 21 71 2F 54 31 B2  54 3A 20 53 31 B2 53 3A  |..!q/T1.T: S1.S:|
00001970: 20 54 B2 4C 54 25 28 54  31 2C 53 31 29 3A 20 53  | T.LT%(T1,S1): S|
00001980: B2 4C 53 25 28 54 31 2C  53 31 29 00 9D 21 76 2F  |.LS%(T1,S1)..!v/|
00001990: 8B 20 4A B3 58 20 A7 20  31 32 32 30 30 00 D0 21  |. J.X . 12200..!|
000019A0: 80 2F 8B 20 4A B2 58 20  A7 20 8B 20 54 B2 30 20  |./. J.X . . T.0 |
000019B0: A7 20 31 32 33 30 30 3A  20 8F 20 2A 2A 20 4E 4F  |. 12300: . ** NO|
000019C0: 52 4D 41 4C 20 45 4E 44  2D 4F 46 2D 46 49 4C 45  |RMAL END-OF-FILE|
000019D0: 00 F0 21 8A 2F 41 B2 54  31 3A 42 B2 53 31 3A 8D  |..!./A.T1:B.S1:.|
000019E0: 20 32 30 30 3A 20 41 B2  49 3A 20 8D 20 35 30 30  | 200: A.I: . 500|
000019F0: 00 25 22 8F 2F 98 4F 55  2C 22 46 49 4C 45 20 22  |.%"./.OU,"FILE "|
00001A00: 3B 53 24 3B 22 20 4E 4F  54 20 45 4E 44 45 44 20  |;S$;" NOT ENDED |
00001A10: 41 54 20 42 4C 4F 43 4B  20 43 4F 55 4E 54 22 3B  |AT BLOCK COUNT";|
00001A20: 58 3B 41 24 3B 00 44 22  94 2F 41 B2 54 3A 42 B2  |X;A$;.D"./A.T:B.|
00001A30: 53 3A 8D 20 32 30 30 3A  20 98 4F 55 2C 22 2D 3E  |S:. 200: .OU,"->|
00001A40: 22 3B 41 24 00 7D 22 9E  2F 89 20 31 32 33 30 30  |";A$.}"./. 12300|
00001A50: 3A 20 8F 20 2A 2A 20 49  46 20 57 45 20 43 4F 4E  |: . ** IF WE CON|
00001A60: 54 49 4E 55 45 44 20 4F  4E 20 4C 49 53 54 2C 20  |TINUED ON LIST, |
00001A70: 57 45 20 4D 49 47 48 54  20 4C 4F 4F 50 00 BB 22  |WE MIGHT LOOP.."|
00001A80: A8 2F 8B 20 54 B3 B1 30  20 A7 20 31 32 30 36 30  |./. T..0 . 12060|
00001A90: 3A 20 8F 20 2A 2A 20 20  4E 4F 52 4D 41 4C 20 47  |: . **  NORMAL G|
00001AA0: 4F 4F 44 20 42 4C 4F 43  4B 20 49 4E 20 4D 49 44  |OOD BLOCK IN MID|
00001AB0: 44 4C 45 20 4F 46 20 46  49 4C 45 00 DB 22 AD 2F  |DLE OF FILE.."./|
00001AC0: 41 B2 54 31 3A 42 B2 53  31 3A 8D 20 32 30 30 3A  |A.T1:B.S1:. 200:|
00001AD0: 20 41 B2 49 3A 20 8D 20  35 30 30 00 10 23 B2 2F  | A.I: . 500..#./|
00001AE0: 98 4F 55 2C 22 46 49 4C  45 20 22 3B 53 24 3B 22  |.OU,"FILE ";S$;"|
00001AF0: 20 45 4E 44 53 20 50 52  45 4D 41 54 55 52 45 4C  | ENDS PREMATUREL|
00001B00: 59 3A 20 20 42 4C 4F 43  4B 22 3B 4A 3B 41 24 3B  |Y:  BLOCK";J;A$;|
00001B10: 00 2F 23 B7 2F 41 B2 54  3A 42 B2 53 3A 8D 20 32  |./#./A.T:B.S:. 2|
00001B20: 30 30 3A 20 98 4F 55 2C  22 2D 3E 22 3B 41 24 00  |00: .OU,"->";A$.|
00001B30: 37 23 0C 30 82 20 49 00  5B 23 BE 32 41 24 B2 22  |7#.0. I.[#.2A$."|
00001B40: 4E 22 3A 20 85 22 47 49  56 45 20 43 4F 4D 50 4C  |N": ."GIVE COMPL|
00001B50: 45 54 45 20 4D 41 50 22  3B 41 24 00 85 23 C3 32  |ETE MAP";A$..#.2|
00001B60: 41 24 B2 C8 28 41 24 2C  31 29 3A 20 8B 20 41 24  |A$..(A$,1): . A$|
00001B70: B2 22 4E 22 20 B0 20 41  24 B2 22 CE 22 20 A7 20  |."N" . A$."." . |
00001B80: 31 34 30 30 30 00 94 23  C8 32 81 20 54 B2 31 20  |14000..#.2. T.1 |
00001B90: A4 20 4D 54 00 9C 23 D2  32 98 4F 55 00 DB 23 DC  |. MT..#.2.OU..#.|
00001BA0: 32 98 4F 55 2C 22 54 52  41 43 4B 22 3B 54 3B 22  |2.OU,"TRACK";T;"|
00001BB0: 3A 22 3B 42 4D 25 28 54  2C 30 29 3B 22 4F 46 22  |:";BM%(T,0);"OF"|
00001BC0: 3B 53 5A 25 28 54 29 3B  22 42 4C 4F 43 4B 53 20  |;SZ%(T);"BLOCKS |
00001BD0: 46 52 45 45 3B 20 42 41  4D 22 3B 00 FF 23 E6 32  |FREE; BAM";..#.2|
00001BE0: 81 20 49 B2 31 20 A4 20  42 53 3A 20 98 4F 55 2C  |. I.1 . BS: .OU,|
00001BF0: 42 4D 25 28 54 2C 49 29  3B 20 3A 20 82 20 49 00  |BM%(T,I); : . I.|
00001C00: 07 24 F0 32 98 4F 55 00  0F 24 5E 33 53 B2 30 00  |.$.2.OU..$^3S.0.|
00001C10: 27 24 68 33 4C B2 53 3A  20 8B 20 4C B1 4D 53 20  |'$h3L.S: . L.MS |
00001C20: A7 20 31 33 32 31 30 00  31 24 72 33 8D 20 36 30  |. 13210.1$r3. 60|
00001C30: 30 00 4B 24 77 33 53 B2  53 AA 31 3A 20 8B 20 53  |0.K$w3S.S.1: . S|
00001C40: B1 4D 53 20 A7 20 31 33  31 39 30 00 6C 24 7C 33  |.MS . 13190.l$|3|
00001C50: 8B 20 42 46 25 28 54 2C  53 29 B3 B1 42 46 25 28  |. BF%(T,S)..BF%(|
00001C60: 54 2C 4C 29 20 A7 20 31  33 31 39 30 00 9C 24 7D  |T,L) . 13190..$}|
00001C70: 33 8B 20 42 55 25 28 54  2C 4C 2C 30 29 20 B2 20  |3. BU%(T,L,0) . |
00001C80: 30 20 A7 20 8B 20 42 55  25 28 54 2C 53 2C 30 29  |0 . . BU%(T,S,0)|
00001C90: 20 B2 20 30 20 A7 20 31  33 31 38 37 00 A4 24 80  | . 0 . 13187..$.|
00001CA0: 33 49 B2 30 00 D9 24 81  33 8B 20 49 B3 39 20 A7  |3I.0..$.3. I.9 .|
00001CB0: 20 8B 20 42 55 25 28 54  2C 53 2C 49 29 B2 42 55  | . BU%(T,S,I).BU|
00001CC0: 25 28 54 2C 4C 2C 49 29  20 A7 20 49 B2 49 AA 31  |%(T,L,I) . I.I.1|
00001CD0: 3A 20 89 20 31 33 31 38  35 00 1E 25 82 33 8B 20  |: . 13185..%.3. |
00001CE0: 49 B3 39 20 89 20 31 33  31 39 30 3A 20 8F 20 2A  |I.9 . 13190: . *|
00001CF0: 2A 20 4E 4F 54 20 49 44  45 4E 54 49 43 41 4C 20  |* NOT IDENTICAL |
00001D00: 45 4E 54 52 49 45 53 20  46 4F 52 20 53 55 43 43  |ENTRIES FOR SUCC|
00001D10: 45 53 53 49 56 45 20 53  45 43 54 4F 52 53 00 61  |ESSIVE SECTORS.a|
00001D20: 25 83 33 8B 20 4C 54 25  28 54 2C 53 29 B2 4C 54  |%.3. LT%(T,S).LT|
00001D30: 25 28 54 2C 4C 29 20 A7  20 8B 20 4C 53 25 28 54  |%(T,L) . . LS%(T|
00001D40: 2C 53 29 B2 4C 53 25 28  54 2C 4C 29 20 89 20 31  |,S).LS%(T,L) . 1|
00001D50: 33 31 37 35 3A 20 8F 20  49 44 45 4E 54 49 43 41  |3175: . IDENTICA|
00001D60: 4C 00 7F 25 86 33 8B 20  42 55 24 B2 22 41 58 2D  |L..%.3. BU$."AX-|
00001D70: 3E 28 30 2C 30 29 22 20  89 20 31 33 31 36 30 00  |>(0,0)" . 13160.|
00001D80: AA 25 8B 33 8B 20 4C B2  53 AB 31 20 A7 20 98 4F  |.%.3. L.S.1 . .O|
00001D90: 55 2C 22 20 53 45 43 54  4F 52 22 3B 4C 3B 42 55  |U," SECTOR";L;BU|
00001DA0: 24 3A 20 89 20 31 33 31  36 30 00 D4 25 90 33 98  |$: . 13160..%.3.|
00001DB0: 4F 55 2C 22 20 53 45 43  54 4F 52 22 3B 4C 3B 22  |OU," SECTOR";L;"|
00001DC0: 54 4F 22 3B 53 AB 31 3B  42 55 24 3A 20 89 20 31  |TO";S.1;BU$: . 1|
00001DD0: 33 31 36 30 00 DC 25 9A  33 82 20 54 00 E5 25 A6  |3160..%.3. T..%.|
00001DE0: 36 8F 20 2F 2A 00 FF 25  A7 36 8F 20 20 2A 20 49  |6. /*..%.6.  * I|
00001DF0: 4E 54 45 52 41 43 54 49  56 45 20 4D 4F 44 45 00  |NTERACTIVE MODE.|
00001E00: 09 26 A8 36 8F 20 20 2A  2F 00 2D 26 B0 36 4F 55  |.&.6.  */.-&.6OU|
00001E10: B2 33 3A 20 8F 20 2A 2A  20 53 45 54 20 4F 55 54  |.3: . ** SET OUT|
00001E20: 50 55 54 20 54 4F 20 53  43 52 45 45 4E 00 3A 26  |PUT TO SCREEN.:&|
00001E30: BA 36 54 B2 30 3A 20 53  B2 30 00 55 26 C4 36 41  |.6T.0: S.0.U&.6A|
00001E40: B2 54 3A 20 42 B2 53 3A  20 8D 20 32 30 30 3A 20  |.T: B.S: . 200: |
00001E50: 99 20 41 24 3B 00 90 26  C9 36 85 20 22 28 41 2C  |. A$;..&.6. "(A,|
00001E60: 42 2C 43 2C 44 2C 48 2C  46 2C 4E 2C 4F 2C 54 2C  |B,C,D,H,F,N,O,T,|
00001E70: 24 2C 51 55 49 54 29 22  3B 41 24 3A 20 8B 20 41  |$,QUIT)";A$: . A|
00001E80: 24 B2 22 51 55 49 54 22  20 A7 20 36 33 39 30 30  |$."QUIT" . 63900|
00001E90: 00 B1 26 CE 36 42 24 B2  C8 28 41 24 2C 31 29 3A  |..&.6B$..(A$,1):|
00001EA0: 20 41 24 B2 C9 28 41 24  2C C3 28 41 24 29 AB 31  | A$..(A$,.(A$).1|
00001EB0: 29 00 D1 26 D8 36 8B 20  42 24 B2 22 41 22 20 A7  |)..&.6. B$."A" .|
00001EC0: 20 8D 20 31 34 31 30 30  3A 20 89 20 31 34 30 32  | . 14100: . 1402|
00001ED0: 30 00 F1 26 DD 36 8B 20  42 24 B2 22 42 22 20 A7  |0..&.6. B$."B" .|
00001EE0: 20 8D 20 31 34 31 37 30  3A 20 89 20 31 34 30 32  | . 14170: . 1402|
00001EF0: 30 00 11 27 E2 36 8B 20  42 24 B2 22 43 22 20 A7  |0..'.6. B$."C" .|
00001F00: 20 8D 20 31 34 36 30 30  3A 20 89 20 31 34 30 32  | . 14600: . 1402|
00001F10: 30 00 31 27 E7 36 8B 20  42 24 B2 22 44 22 20 A7  |0.1'.6. B$."D" .|
00001F20: 20 8D 20 31 34 32 30 30  3A 20 89 20 31 34 30 32  | . 14200: . 1402|
00001F30: 30 00 51 27 EC 36 8B 20  42 24 B2 22 46 22 20 A7  |0.Q'.6. B$."F" .|
00001F40: 20 8D 20 31 34 33 30 30  3A 20 89 20 31 34 30 32  | . 14300: . 1402|
00001F50: 30 00 71 27 F1 36 8B 20  42 24 B2 22 48 22 20 A7  |0.q'.6. B$."H" .|
00001F60: 20 8D 20 31 34 34 30 30  3A 20 89 20 31 34 30 32  | . 14400: . 1402|
00001F70: 30 00 91 27 F6 36 8B 20  42 24 B2 22 4E 22 20 A7  |0..'.6. B$."N" .|
00001F80: 20 8D 20 31 34 37 30 30  3A 20 89 20 31 34 30 32  | . 14700: . 1402|
00001F90: 30 00 B1 27 FB 36 8B 20  42 24 B2 22 4F 22 20 A7  |0..'.6. B$."O" .|
00001FA0: 20 8D 20 31 34 38 30 30  3A 20 89 20 31 34 30 32  | . 14800: . 1402|
00001FB0: 30 00 D1 27 00 37 8B 20  42 24 B2 22 54 22 20 A7  |0..'.7. B$."T" .|
00001FC0: 20 8D 20 31 34 39 30 30  3A 20 89 20 31 34 30 32  | . 14900: . 1402|
00001FD0: 30 00 F1 27 05 37 8B 20  42 24 B2 22 24 22 20 A7  |0..'.7. B$."$" .|
00001FE0: 20 8D 20 31 35 30 30 30  3A 20 89 20 31 34 30 32  | . 15000: . 1402|
00001FF0: 30 00 0C 28 09 37 99 22  49 4E 56 41 4C 49 44 20  |0..(.7."INVALID |
00002000: 43 4F 4D 4D 41 4E 44 20  22 3B 42 24 00 33 28 0A  |COMMAND ";B$.3(.|
00002010: 37 41 B2 4F 55 3A 20 4F  55 B2 33 3A 20 8D 20 31  |7A.OU: OU.3: . 1|
00002020: 34 34 30 30 3A 20 4F 55  B2 41 3A 20 89 20 31 34  |4400: OU.A: . 14|
00002030: 30 32 30 00 5D 28 14 37  8F 20 2A 2A 20 31 34 31  |020.](.7. ** 141|
00002040: 30 30 20 2D 20 41 20 2D  20 41 4C 4C 4F 43 41 54  |00 - A - ALLOCAT|
00002050: 45 20 43 55 52 52 45 4E  54 20 54 26 53 00 72 28  |E CURRENT T&S.r(|
00002060: 1E 37 8D 20 38 30 30 3A  20 8B 20 A8 20 41 20 A7  |.7. 800: . . A .|
00002070: 20 8E 00 B8 28 28 37 9F  20 31 35 2C 44 56 2C 31  | ...((7. 15,DV,1|
00002080: 35 2C 22 49 22 AA 44 4B  24 3A 20 9F 20 44 46 2C  |5,"I".DK$: . DF,|
00002090: 44 56 2C 38 2C 22 23 22  3A 20 8F 20 4D 55 53 54  |DV,8,"#": . MUST|
000020A0: 20 4F 50 45 4E 20 54 4F  20 46 4F 52 43 45 20 42  | OPEN TO FORCE B|
000020B0: 41 4D 20 57 52 49 54 45  00 E2 28 2D 37 98 31 35  |AM WRITE..(-7.15|
000020C0: 2C 22 42 2D 41 3A 22 3B  44 4B 24 3B 54 3B 53 3A  |,"B-A:";DK$;T;S:|
000020D0: 20 8D 20 33 31 35 3A 20  A0 20 44 46 3A 20 A0 20  | . 315: . DF: . |
000020E0: 31 35 00 F4 28 32 37 41  B2 54 3A 42 B2 53 3A 8D  |15..(27A.T:B.S:.|
000020F0: 20 32 30 30 00 2D 29 3C  37 8B 20 45 4E B2 30 20  | 200.-)<7. EN.0 |
00002100: A7 20 98 4F 55 2C 22 42  4C 4F 43 4B 20 22 3B 41  |. .OU,"BLOCK ";A|
00002110: 24 3B 22 20 41 4C 4C 4F  43 41 54 45 44 22 3A 20  |$;" ALLOCATED": |
00002120: 42 46 25 28 54 2C 53 29  B2 31 3A 20 8E 00 64 29  |BF%(T,S).1: ..d)|
00002130: 46 37 8B 20 45 4E B2 36  35 20 A7 20 99 22 42 4C  |F7. EN.65 . ."BL|
00002140: 4F 43 4B 20 22 3B 41 24  3B 22 20 57 41 53 20 41  |OCK ";A$;" WAS A|
00002150: 4C 52 45 41 44 59 20 41  4C 4C 4F 43 41 54 45 44  |LREADY ALLOCATED|
00002160: 22 3A 20 8E 00 93 29 50  37 99 22 55 4E 45 58 50  |": ...)P7."UNEXP|
00002170: 45 43 54 45 44 20 44 49  53 4B 20 53 54 41 54 55  |ECTED DISK STATU|
00002180: 53 20 22 3B 45 4E 3B 45  4D 24 3B 45 54 3B 45 53  |S ";EN;EM$;ET;ES|
00002190: 3A 20 8E 00 C7 29 5A 37  8F 20 2A 2A 20 31 34 31  |: ...)Z7. ** 141|
000021A0: 37 30 20 2D 20 42 20 2D  20 42 4C 4F 43 4B 20 53  |70 - B - BLOCK S|
000021B0: 45 54 20 43 55 52 52 45  4E 54 20 54 52 41 43 4B  |ET CURRENT TRACK|
000021C0: 26 53 45 43 54 4F 52 00  DF 29 64 37 85 22 54 52  |&SECTOR..)d7."TR|
000021D0: 41 43 4B 2C 53 45 43 54  4F 52 22 3B 54 2C 53 00  |ACK,SECTOR";T,S.|
000021E0: F8 29 6E 37 8D 20 38 30  30 3A 20 8B 20 41 20 A7  |.)n7. 800: . A .|
000021F0: 20 8D 20 31 34 36 30 30  00 FE 29 73 37 8E 00 44  | . 14600..)s7..D|
00002200: 2A 78 37 8F 20 2A 2A 20  31 34 32 30 30 20 2D 20  |*x7. ** 14200 - |
00002210: 44 20 2D 20 44 49 52 45  43 54 4F 52 59 20 45 4E  |D - DIRECTORY EN|
00002220: 54 52 59 3B 20 44 49 53  50 4C 41 59 20 44 49 52  |TRY; DISPLAY DIR|
00002230: 45 43 54 4F 52 59 20 45  4E 54 52 59 20 56 41 4C  |ECTORY ENTRY VAL|
00002240: 28 42 24 29 00 7F 2A 82  37 43 B2 C5 28 41 24 29  |(B$)..*.7C..(A$)|
00002250: 3A 20 8F 20 20 2A 2A 20  31 34 32 32 30 20 49 53  |: .  ** 14220 IS|
00002260: 20 45 4E 54 52 59 20 50  4F 49 4E 54 20 46 4F 52  | ENTRY POINT FOR|
00002270: 20 4F 54 48 45 52 20 52  4F 55 54 49 4E 45 53 00  | OTHER ROUTINES.|
00002280: 9B 2A 8C 37 8B 20 30 B3  B2 43 20 A7 20 8B 20 43  |.*.7. 0..C . . C|
00002290: B3 46 43 20 A7 20 31 34  32 34 30 00 CE 2A 96 37  |.FC . 14240..*.7|
000022A0: 99 20 22 44 49 52 45 43  54 4F 52 59 20 45 4E 54  |. "DIRECTORY ENT|
000022B0: 52 59 20 4E 55 4D 42 45  52 22 3B 43 3B 22 4F 55  |RY NUMBER";C;"OU|
000022C0: 54 20 4F 46 20 52 41 4E  47 45 22 3A 20 8E 00 03  |T OF RANGE": ...|
000022D0: 2B A0 37 41 B2 43 3A 20  8D 20 35 30 30 3A 20 54  |+.7A.C: . 500: T|
000022E0: B2 44 54 25 28 43 29 3A  20 53 B2 44 53 25 28 43  |.DT%(C): S.DS%(C|
000022F0: 29 3A 20 41 B2 54 3A 20  42 B2 53 3A 20 20 8D 20  |): A.T: B.S:  . |
00002300: 32 30 30 00 38 2B AA 37  98 4F 55 2C 43 3B 53 24  |200.8+.7.OU,C;S$|
00002310: 3B C8 28 22 20 20 20 20  20 20 20 20 20 20 20 20  |;.("            |
00002320: 20 20 20 20 20 20 20 20  20 20 20 20 22 2C 32 31  |            ",21|
00002330: AB C3 28 53 24 29 29 3B  00 51 2B B4 37 98 4F 55  |..(S$));.Q+.7.OU|
00002340: 2C 44 5A 25 28 43 29 3B  22 46 52 4F 4D 22 3B 41  |,DZ%(C);"FROM";A|
00002350: 24 00 57 2B BE 37 8E 00  97 2B DC 37 8F 20 2A 2A  |$.W+.7...+.7. **|
00002360: 20 31 34 33 30 30 20 2D  20 46 20 2D 20 46 52 45  | 14300 - F - FRE|
00002370: 45 3B 20 49 53 53 55 45  20 41 20 42 4C 4F 43 4B  |E; ISSUE A BLOCK|
00002380: 2D 46 52 45 45 20 46 4F  52 20 43 55 52 52 45 4E  |-FREE FOR CURREN|
00002390: 54 20 42 4C 4F 43 4B 00  AC 2B E6 37 8D 20 38 30  |T BLOCK..+.7. 80|
000023A0: 30 3A 20 8B 20 A8 20 41  20 A7 20 8E 00 BF 2B F0  |0: . . A . ...+.|
000023B0: 37 41 B2 54 3A 42 B2 53  3A 20 8D 20 32 30 30 00  |7A.T:B.S: . 200.|
000023C0: EA 2B FA 37 99 20 22 59  4F 55 20 52 45 41 4C 4C  |.+.7. "YOU REALL|
000023D0: 59 20 57 41 4E 54 20 54  4F 20 46 52 45 45 20 42  |Y WANT TO FREE B|
000023E0: 4C 4F 43 4B 20 22 3B 41  24 3B 00 FB 2B 04 38 41  |LOCK ";A$;..+.8A|
000023F0: 24 B2 22 4E 22 3A 20 85  20 41 24 00 25 2C 0E 38  |$."N": . A$.%,.8|
00002400: 41 24 B2 C8 28 41 24 2C  31 29 3A 20 8B 20 41 24  |A$..(A$,1): . A$|
00002410: B3 B1 22 59 22 20 A7 20  8B 20 41 24 B3 B1 22 D9  |.."Y" . . A$..".|
00002420: 22 20 A7 20 8E 00 6B 2C  18 38 9F 20 31 35 2C 44  |" . ..k,.8. 15,D|
00002430: 56 2C 31 35 2C 22 49 22  AA 44 4B 24 3A 20 9F 20  |V,15,"I".DK$: . |
00002440: 44 46 2C 44 56 2C 38 2C  22 23 22 3A 20 8F 20 4D  |DF,DV,8,"#": . M|
00002450: 55 53 54 20 4F 50 45 4E  20 54 4F 20 46 4F 52 43  |UST OPEN TO FORC|
00002460: 45 20 42 41 4D 20 57 52  49 54 45 00 95 2C 1D 38  |E BAM WRITE..,.8|
00002470: 98 31 35 2C 22 42 2D 46  3A 22 3B 44 4B 24 3B 54  |.15,"B-F:";DK$;T|
00002480: 3B 53 3A 20 8D 20 33 31  35 3A 20 A0 20 44 46 3A  |;S: . 315: . DF:|
00002490: 20 A0 20 31 35 00 A7 2C  22 38 41 B2 54 3A 42 B2  | . 15..,"8A.T:B.|
000024A0: 53 3A 8D 20 32 30 30 00  DC 2C 2C 38 8B 20 45 4E  |S:. 200..,,8. EN|
000024B0: B2 30 20 A7 20 98 4F 55  2C 22 42 4C 4F 43 4B 20  |.0 . .OU,"BLOCK |
000024C0: 22 3B 41 24 3B 22 20 46  52 45 45 44 22 3A 20 42  |";A$;" FREED": B|
000024D0: 46 25 28 54 2C 53 29 B2  30 3A 20 8E 00 19 2D 36  |F%(T,S).0: ...-6|
000024E0: 38 99 22 55 4E 45 58 50  45 43 54 45 44 20 44 49  |8."UNEXPECTED DI|
000024F0: 53 4B 20 53 54 41 54 55  53 20 22 3B 45 4E 3B 45  |SK STATUS ";EN;E|
00002500: 4D 24 3B 45 54 3B 45 53  3B 22 20 4F 4E 20 42 4C  |M$;ET;ES;" ON BL|
00002510: 4F 43 4B 2D 46 52 45 45  22 00 1F 2D 3B 38 8E 00  |OCK-FREE"..-;8..|
00002520: 48 2D 40 38 8F 20 2A 2A  20 31 34 34 30 30 20 2D  |H-@8. ** 14400 -|
00002530: 20 48 20 2D 20 48 45 4C  50 3B 20 47 45 54 20 53  | H - HELP; GET S|
00002540: 4F 4D 45 20 48 45 4C 50  00 7F 2D 4A 38 98 4F 55  |OME HELP..-J8.OU|
00002550: 2C 22 41 20 2D 20 41 4C  4C 4F 43 41 54 45 20 43  |,"A - ALLOCATE C|
00002560: 55 52 52 45 4E 54 20 54  26 53 20 28 46 4F 52 20  |URRENT T&S (FOR |
00002570: 52 45 41 4C 2C 20 4F 4E  20 44 49 53 4B 29 22 00  |REAL, ON DISK)".|
00002580: AB 2D 54 38 98 4F 55 2C  22 42 20 2D 20 42 4C 4F  |.-T8.OU,"B - BLO|
00002590: 43 4B 3B 20 53 45 54 20  54 26 53 20 28 50 52 4F  |CK; SET T&S (PRO|
000025A0: 4D 50 54 45 44 20 46 4F  52 29 22 00 E4 2D 5E 38  |MPTED FOR)"..-^8|
000025B0: 98 4F 55 2C 22 43 20 2D  20 43 55 52 52 45 4E 54  |.OU,"C - CURRENT|
000025C0: 3B 20 44 49 53 50 4C 41  59 20 4D 41 50 20 45 4E  |; DISPLAY MAP EN|
000025D0: 54 52 59 20 46 4F 52 20  43 55 52 52 45 4E 54 20  |TRY FOR CURRENT |
000025E0: 54 26 53 22 00 1A 2E 68  38 98 4F 55 2C 22 44 3C  |T&S"...h8.OU,"D<|
000025F0: 4E 3E 20 2D 20 44 49 52  45 43 54 4F 52 59 3B 20  |N> - DIRECTORY; |
00002600: 44 49 53 50 4C 41 59 20  44 49 52 45 43 54 4F 52  |DISPLAY DIRECTOR|
00002610: 59 20 45 4E 54 52 59 20  4E 22 00 59 2E 72 38 98  |Y ENTRY N".Y.r8.|
00002620: 4F 55 2C 22 46 20 2D 20  46 52 45 45 20 43 55 52  |OU,"F - FREE CUR|
00002630: 52 45 4E 54 20 54 26 53  20 28 46 4F 52 20 52 45  |RENT T&S (FOR RE|
00002640: 41 4C 2C 20 4F 4E 20 44  49 53 4B 2D 42 45 20 43  |AL, ON DISK-BE C|
00002650: 41 52 45 46 55 4C 21 29  22 00 8C 2E 7C 38 98 4F  |AREFUL!)"...|8.O|
00002660: 55 2C 22 48 20 2D 20 48  45 4C 50 3B 20 47 45 54  |U,"H - HELP; GET|
00002670: 20 54 48 49 53 20 4C 49  53 54 20 4F 4E 20 4F 55  | THIS LIST ON OU|
00002680: 54 50 55 54 20 44 45 56  49 43 45 22 00 CF 2E 86  |TPUT DEVICE"....|
00002690: 38 98 4F 55 2C 22 4E 20  2D 20 4E 45 58 54 3B 20  |8.OU,"N - NEXT; |
000026A0: 44 49 53 50 4C 41 59 20  43 55 52 52 45 4E 54 20  |DISPLAY CURRENT |
000026B0: 4D 41 50 20 45 4E 54 52  59 20 54 48 45 4E 20 47  |MAP ENTRY THEN G|
000026C0: 4F 20 54 4F 20 4E 45 58  54 20 4C 49 4E 4B 22 00  |O TO NEXT LINK".|
000026D0: 10 2F 90 38 98 4F 55 2C  22 4F 3C 4E 3E 20 2D 20  |./.8.OU,"O<N> - |
000026E0: 4F 55 54 50 55 54 3B 20  53 45 4E 44 20 28 4D 4F  |OUTPUT; SEND (MO|
000026F0: 53 54 29 20 4F 55 54 50  55 54 20 54 4F 20 44 45  |ST) OUTPUT TO DE|
00002700: 56 49 43 45 20 4E 20 28  33 20 4F 52 20 34 29 22  |VICE N (3 OR 4)"|
00002710: 00 47 2F 95 38 98 4F 55  2C 22 54 20 2D 20 54 52  |.G/.8.OU,"T - TR|
00002720: 41 43 45 3B 20 54 52 41  43 45 20 42 4C 4F 43 4B  |ACE; TRACE BLOCK|
00002730: 20 4C 49 53 54 20 46 52  4F 4D 20 43 55 52 52 45  | LIST FROM CURRE|
00002740: 4E 54 20 54 26 53 22 00  84 2F 9A 38 98 4F 55 2C  |NT T&S"../.8.OU,|
00002750: 22 24 20 2D 20 44 49 53  50 4C 41 59 20 45 4E 54  |"$ - DISPLAY ENT|
00002760: 49 52 45 20 44 49 52 45  43 54 4F 52 59 20 4F 52  |IRE DIRECTORY OR|
00002770: 20 4C 4F 4F 4B 20 46 4F  52 20 46 49 4C 45 20 4E  | LOOK FOR FILE N|
00002780: 41 4D 45 22 00 BB 2F A4  38 98 4F 55 2C 22 51 55  |AME"../.8.OU,"QU|
00002790: 49 54 20 2D 20 51 55 49  54 3B 20 50 55 54 20 41  |IT - QUIT; PUT A|
000027A0: 4E 20 45 4E 44 20 54 4F  20 41 4C 4C 20 54 48 49  |N END TO ALL THI|
000027B0: 53 20 4E 4F 4E 53 45 4E  53 45 22 00 C1 2F AE 38  |S NONSENSE"../.8|
000027C0: 8E 00 05 30 08 39 8F 20  2A 2A 20 31 34 36 30 30  |...0.9. ** 14600|
000027D0: 20 2D 20 43 20 2D 20 43  55 52 52 45 4E 54 3B 20  | - C - CURRENT; |
000027E0: 44 49 53 50 4C 41 59 20  54 48 45 20 4D 41 50 20  |DISPLAY THE MAP |
000027F0: 45 4E 54 52 59 20 46 4F  52 20 43 55 52 52 45 4E  |ENTRY FOR CURREN|
00002800: 54 20 54 26 53 00 1A 30  12 39 8D 20 38 30 30 3A  |T T&S..0.9. 800:|
00002810: 20 8B 20 A8 20 41 20 A7  20 8E 00 34 30 1C 39 8D  | . . A . ..40.9.|
00002820: 20 36 30 30 3A 20 41 B2  54 3A 42 B2 53 3A 20 8D  | 600: A.T:B.S: .|
00002830: 20 32 30 30 00 47 30 26  39 98 4F 55 2C 41 24 3B  | 200.G0&9.OU,A$;|
00002840: 22 3A 22 3B 42 55 24 00  4D 30 30 39 8E 00 93 30  |":";BU$.M009...0|
00002850: 6C 39 8F 20 2A 2A 20 31  34 37 30 30 20 2D 20 4E  |l9. ** 14700 - N|
00002860: 20 2D 20 4E 45 58 54 3B  20 44 49 53 50 4C 41 59  | - NEXT; DISPLAY|
00002870: 20 43 55 52 52 45 4E 54  20 4D 41 50 20 45 4E 54  | CURRENT MAP ENT|
00002880: 52 59 2C 20 53 45 54 20  54 26 53 20 54 4F 20 4E  |RY, SET T&S TO N|
00002890: 45 58 54 00 A8 30 76 39  8D 20 38 30 30 3A 20 8B  |EXT..0v9. 800: .|
000028A0: 20 A8 20 41 20 A7 20 8E  00 B4 30 80 39 8D 20 31  | . A . ...0.9. 1|
000028B0: 34 36 30 30 00 D4 30 8A  39 41 B2 54 3A 20 54 B2  |4600..0.9A.T: T.|
000028C0: 4C 54 25 28 54 2C 53 29  3A 20 53 B2 4C 53 25 28  |LT%(T,S): S.LS%(|
000028D0: 41 2C 53 29 00 DA 30 94  39 8E 00 09 31 D0 39 8F  |A,S)..0.9...1.9.|
000028E0: 20 2A 2A 20 31 34 38 30  30 20 2D 20 4F 20 2D 20  | ** 14800 - O - |
000028F0: 4F 55 54 50 55 54 3B 20  53 45 54 20 4F 55 54 50  |OUTPUT; SET OUTP|
00002900: 55 54 20 44 45 56 49 43  45 00 30 31 DA 39 41 B2  |UT DEVICE.01.9A.|
00002910: C5 28 41 24 29 3A 20 8B  20 33 B3 B2 41 20 A7 20  |.(A$): . 3..A . |
00002920: 8B 20 41 B3 B2 34 20 A7  20 4F 55 B2 41 3A 20 8E  |. A..4 . OU.A: .|
00002930: 00 61 31 E4 39 99 20 22  49 4E 56 41 4C 49 44 20  |.a1.9. "INVALID |
00002940: 4F 55 54 50 55 54 20 44  45 56 49 43 45 20 28 4D  |OUTPUT DEVICE (M|
00002950: 55 53 54 20 42 45 20 33  20 4F 52 20 34 29 22 3B  |UST BE 3 OR 4)";|
00002960: 41 00 67 31 EE 39 8E 00  A5 31 34 3A 8F 20 2A 2A  |A.g1.9...14:. **|
00002970: 20 31 34 39 30 30 20 2D  20 54 20 2D 20 54 52 41  | 14900 - T - TRA|
00002980: 43 45 3B 20 46 4F 4C 4C  4F 57 20 54 48 45 20 43  |CE; FOLLOW THE C|
00002990: 55 52 52 45 4E 54 20 4C  49 53 54 20 4F 46 20 42  |URRENT LIST OF B|
000029A0: 4C 4F 43 4B 53 00 BB 31  3E 3A 8D 20 38 30 30 3A  |LOCKS..1>:. 800:|
000029B0: 20 20 8B 20 A8 20 41 20  A7 20 8E 00 D6 31 43 3A  |  . . A . ...1C:|
000029C0: A1 20 41 24 3A 20 8B 20  41 24 B3 B1 22 22 20 A7  |. A$: . A$.."" .|
000029D0: 20 31 34 39 31 35 00 F6  31 48 3A 8D 20 31 34 37  | 14915..1H:. 147|
000029E0: 30 30 3A 20 A1 20 41 24  3A 20 8B 20 41 24 B3 B1  |00: . A$: . A$..|
000029F0: 22 22 20 A7 20 8E 00 26  32 52 3A 8B 20 31 B3 B2  |"" . ..&2R:. 1..|
00002A00: 54 20 AF 20 54 B3 B2 4D  54 20 A7 20 8B 20 30 B3  |T . T..MT . . 0.|
00002A10: B2 53 20 AF 20 53 B3 B2  53 5A 25 28 54 29 20 89  |.S . S..SZ%(T) .|
00002A20: 20 31 34 39 32 30 00 2C  32 5C 3A 8E 00 70 32 98  | 14920.,2\:..p2.|
00002A30: 3A 8F 20 2A 2A 20 31 35  30 30 30 20 2D 20 24 20  |:. ** 15000 - $ |
00002A40: 2D 20 53 48 4F 57 20 44  49 52 45 43 54 4F 52 59  |- SHOW DIRECTORY|
00002A50: 2C 20 4F 52 20 53 45 54  20 43 55 52 52 45 4E 54  |, OR SET CURRENT|
00002A60: 20 42 4C 4F 43 4B 20 46  52 4F 4D 20 46 49 4C 45  | BLOCK FROM FILE|
00002A70: 00 A1 32 A2 3A 8B 20 41  24 B2 22 22 20 A7 20 81  |..2.:. A$."" . .|
00002A80: 20 49 B2 30 20 A4 20 46  43 AB 31 3A 20 43 B2 49  | I.0 . FC.1: C.I|
00002A90: 3A 20 8D 20 31 34 32 32  30 3A 20 82 20 49 3A 20  |: . 14220: . I: |
00002AA0: 8E 00 A9 32 AC 3A 43 B2  30 00 D3 32 B6 3A 8B 20  |...2.:C.0..2.:. |
00002AB0: 43 20 B1 B2 20 46 43 20  A7 20 99 22 4E 4F 20 53  |C .. FC . ."NO S|
00002AC0: 55 43 48 20 46 49 4C 45  20 41 53 20 22 3B 41 24  |UCH FILE AS ";A$|
00002AD0: 3A 20 8E 00 F5 32 C0 3A  8B 20 44 4E 24 28 43 29  |: ...2.:. DN$(C)|
00002AE0: B3 B1 41 24 20 A7 20 43  B2 43 AA 31 3A 20 89 20  |..A$ . C.C.1: . |
00002AF0: 31 35 30 33 30 00 01 33  CA 3A 8D 20 31 34 32 32  |15030..3.:. 1422|
00002B00: 30 00 07 33 D4 3A 8E 00  20 33 9C F9 A0 20 33 3A  |0..3.:.. 3... 3:|
00002B10: 20 A0 20 34 3A 20 A0 20  44 46 3A 20 A0 20 31 35  | . 4: . DF: . 15|
00002B20: 00 26 33 FF F9 80 00 00  00                       |.&3......       |
..=....  DISKMAP - SHOWS 1541 ETC FILE S
TRUCTURE (AND ERRORS)...... AUTHOR A.R. 
PEPPER - LAST MODIFIED MAR 7, 1984  BY A
.R. PEPPER...... 9000...... /*......  * 
GOSUB 200......  * SPECIALIZED SUBROUTIN
E FOR CONVERTING AND PRINTING SECTOR NUM
BERS.'.A..  * REQUIRES: A(TRACK) AND B(S
ECTOR) AS INPUT.L.C..  * SETS: A$ AS OUT
PUT  "(T,S)".A.D..  * CHANGES: B$.K.E.. 
 */...H.A$.D(A): B$.D(B)...R.A$."(".I(A$
,C(A$).1).",".I(B$,C(B$).1).")".........
7.. /*...8..  * GOSUB 315 - CHECK DISK E
RROR STATUS BY READING FILE 15.A.9..  * 
  IT IS ASSUMED THAT THE CALLER WILL USE
 STATUS AS WANTED.K.:..  */.C.;..15,EN,E
M$,ET,ES: ..L.... /*......  * GOSUB 415 
- CHECK DISK STATUS AND ABORT IF NON-ZER
O......  */.I.... 315: . EN.0 . ......."
DISK ERROR";EN;EM$;ET;ES;"--PROGRAM ABOR
TED": . 63900...... /*.Z....  * GOSUB 50
0 - RETURN FILENAME A FROM NAME TABLE, A
PPENDING EXTENSION......  *   NAME IS RE
TURNED IN S$; A IS CHANGED......  */....
.S$.DN$(A).",": A.DE%(A).X.... (A . 127)
.4 . S$.S$.TY$(4): . 530.....S$.S$.TY$(A
 . 127)...... (A . 128).0 . S$.S$."*"...
......O.. /*.`.P..  * GOSUB 600 - CONVER
T BF%(T,S)+BU%(T,S,*) TO EXTERNAL FORMAT
...Q..  *   EXTERNAL FORMAT IS PLACED IN
 BU$...R..  *   CHANGES A,B, A$,B$, S$..
.S..  */...X.BU$."": A.BF%(T,S): . A . 0
 . A.A.2: BU$."X"...B.BU$.J("FA",A.1,1).
BU$...L.. BU%(T,S,0).0 . 710.Y.V.A.BU%(T
,S,1): B.BU%(T,S,2): . 200: A.BU%(T,S,0)
.1: . 500.T...BU$.BU$." ".A$."<-".S$....
.. BU%(T,S,3).0 . 710.J...A.BU%(T,S,4): 
B.BU%(T,S,5): . 200: A.BU%(T,S,3).1: . 5
00.....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.V...
BU$.BU$." ".A$."<-".S$.X.F.A.LT%(T,S): B
.LS%(T,S): . 200...P.BU$.BU$."->".A$...Z
........ /*......  * GOSUB 800 - CHECK W
HETHER T,S ARE A VALID BLOCK ADDRESS....
..  *......  *  ARRAY SZ%() MUST HAVE BE
EN SET UP.J....  *  A IS SET TO THE TRUT
H VALUE FOR (T,S) IS VALID.S....  *.....
.  *  B, A$,B$ ARE CHANGED IFF A IS FALS
E     (IHB!)......  */.I. .A . (0.T . T.
.MT) . (0..S . S.SZ%(T)): . A . ....*.. 
** ROUTINE IS DESIGNED FOR INTERACTIVE M
ODE USE, SO REPORT ERROR.#.4.A.T:B.S: . 
200.W.>.. "CURRENT TRACK AND SECTOR PAIR
 ";A$;" IS BAD".D.H.A . 0: ....(#DK$."0"
: DV.8:  . 15,DV,15,"I".DK$....%OU.4:."O
UTPUT DEVICE (3 OR 4)";OU.L.&%. OU..3 . 
OU..4 . 9500.X.0%. 4,4,7...:%. 3,3....'F
C.0: FB.0: A1.0: F1.0: F2.0.$..'MT.35: M
S.23: BS.3: C0$.G(0).3..'SS$.G(160).U.$'
. 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 FREE; 1 ALLOCATED;
 <0 INVALID.../'. BU%(MT,MS,8): . ** BLO
CK USAGE TABLE; UP TO 3 FILES.Z.0'. CC(1
): . ** COUNTER; CC(0) FREE BLOCK; CC(1)
 ALLOCATED.X.1'. TY$(5): . ** FILE TYPES
...3'. DEL,SEQ,PRG,USR,REL,BAD...8'. 1,1
7,21, 18,24,19.G.B'. 25,30,18, 31,35,17.
..G'. I.0 . 5: . TY$(I): . I...L'DF.8: .
 DF,DV,8,"$".DK$: . 415.-.V'.#DF,A$,A$: 
. ** SKIP 1ST 2 BYTES.6.J'. /*.N.K'.  * 
NOW INTERPRET THE BAM; READ DATA STATEME
NTS TO...L'.  *  DETERMINE CORRECT # OF 
SECTORS PER TRACK...M'.  */...T'. I.1 . 
4...~'. L,H,N: . ** TRACKS L TO H HAVE N
 SECTORS....'. J.L . H....'SZ%(J).N.!..'
.#DF,A$: . A$."" . A$.C0$.B..'A.F(A$): F
2.F2.A: BM%(J,0).A.W.D'K1.0: . K.1 . BS.
U.I'.#DF,A$: . A$."" . A$.C0$...N'M.F(A$
):BM%(J,K).M:M2.1.N..'. 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....(. K2....(. K....(. /*.F..(.  * EA
CH BAM ENTRY COULD REPRESENT 24 BLOCKS..
..(.  * MARK AS INVALID BLOCKS GREATER T
HAN NUMBER IN TRACK.C..(.  *  - NORMALLY
 WILL BE "ALLOCATED"; FREE WOULD BE BAD 
BAM.M..(.  */.U..(K.N....(. K..MS . A.BF
%(J,K): BF%(J,K).A.2: CC(A).CC(A).1: K.K
.1: . 10270.#.((. J.+.2(. I.D..)S$."": .
 I.144 . 170.J..).#DF,A$: S$.S$.G(F(A$.C
0$) . 127).R..). I...").OU,S$: . ** DISK
 NAME.H.,). I.171 . 255: .#DF,A$: . I: .
 ** SKIP TO END OF BLOCK.Q..*. /*....*. 
 * NOW COMPILE A LIST OF THE FILE NAMES.
)..*.  *  THEIR STARTING BLOCKS AND SIZE
S.3..*.  */.<..*NF.0.R..+. NF.0 . 11020:
 . ** SKIP 2 BYTES EVERY 8 ENTRIES.~..+.
#DF,A$....+.#DF,A$....+NF.NF.1: . NF..8 
. NF.0.D..+.#DF,E$: . E$."" . E$.C0$.S. 
+.#DF,T$,S$...*+E.F(E$): . EXTENSION...4
+T.F(T$.C0$): . TRACK...>+S.F(S$.C0$): .
 SECTOR.:.H+A.E . 127: . A.4 . A.5.C.R+T
$.TY$(A): . (E . 128).0 . T$.T$."*".R.\+
S$."": I.3...F+.#DF,A$: . A$..SS$ . S$.S
$.A$: . I.18 . I.I.1: . 11110.R.P+. I.27
 . .#DF,A$: I.I.1: . 11120...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....+DN$(FC).S$: DE%(FC).E: DT%(FC)
.T: DS%(FC).S: DZ%(FC).X: FB.FB.X.K..+A.
T: B.S: . 200: A.FC: . 500: FC.FC.1....+
.OU,S$;H("                    ",21.C(S$)
);X;"FROM";A$...T+. RS.0 . 11010.7..+. R
S..64 . ."ERROR RS=";RS.@..,. /*...,.  
* NOW WE ACCESS THE DISK RANDOMLY TO BUI
LD A PICTURE OF....,.  * THE LINKS BETWE
EN THE BLOCKS ON THE DISK....,.  */...$,
  DF: . I.1 . 1000: . I: . DF,DV,8,"#"..
..,....8,. T.1 . MT...B,. "TRACK";T;G(14
5);G(13);...L,. S.0 . SZ%(T).1.I.V,.15,"
U1:8,";DK$;T;S: .15,EN,EM$,ET,ES: . EN..
0 . 11392...J,.#DF,A$: . A$."" . A$.C0$.
..O,LT%(T,S) . F(A$)...T,.#DF,A$: . A$."
" . A$.C0$.O.Y,LS%(T,S) . F(A$)...~,. S:
 . 11400: . ** ERROR HANDLING HERE TO SP
EED SECTOR LOOP UP.>..,. "DISK ERROR";EN
;EM$;ET;ES:   DF:   15.D..,. 15,DV,15,"I
".DK$: . DF,DV,8,"#"....,LT%(T,S)..1: LS
%(T,S)..1: . 11390....,. T....,  DF:   1
5.U..,.OU,FC.BC;"GOOD FILES TOTALLING";F
B.BB;"BLOCKS"....-.OU,BC;"BAD FILES TOTA
LLING";BB;"BLOCKS".J..-.OU,"BITMAP SHOWS
";CC(1);" BLOCKS ALLOCATED;";CC(0);"(";F
2;") FREE"....-A..(FC.8).1: .OU,FC;"FILE
 ENTRIES IN";A;"DIRECTORY BLOCKS"...V.. 
/*.S.W..  * NOW TRACE DOWN THE LINKED LI
ST OF BLOCKS FOR EACH FILE,...X..  *  AN
D NOTE ANY INCONSISTENCIES...Y..  */.6..
.. I.0 . FC.1: . ** FOR EACH FILE IN DIR
ECTORY.W...T.DT%(I): . ** INITIAL TRACK.
....T1.0: . ** INITIAL PREVIOUS TRACK (D
UMMY).....S.DS%(I): . ** INITIAL SECTOR.
V../S1.0: . ** INITIAL PREVIOUS SECTOR (
DUMMY)..../X.DZ%(I): . ** ALLEGED FILE S
IZE..../J.0: . ** BLOCK COUNTER.E../. 0.
T . T..MT . . 0..S . S.SZ%(T) . 12100.D.
!/A.T1:B.S1:. 200: A.I:. 500...&/.OU,S$;
" BAD TRACK&SECTOR POINTER; BLOCK";J;A$;
...+/A.T:B.S:. 200: .OU,"->"A$.B.0/. 123
00...D/J.J.1: . BU%(T,S,0)..0 . E$."MULT
IPLELY ": . 12110.. I/. BF%(T,S).1 . 121
30.$ J/E$."UN":. 200.X N/A.I: . 500: .OU
,"ERROR IN ";S$;"(BLOCK";J;"):";.. S/A.T
: B.S: . 200: .OU,E$;"ALLOCATED BLOCK ";
A$.. X/. 600: .OU,BU$.. B/K.0.T 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).T
1:BU%(T,S,K.2).S1: . 12145.`!L/A.T:B.S:.
200:.OU,"BLOCK ";A$;" HAS TOO MANY REFER
ENCES TO RECORD"..!Q/T1.T: S1.S: T.LT%(T
1,S1): S.LS%(T1,S1)..!V/. J.X . 12200.P!
./. J.X . . T.0 . 12300: . ** NORMAL END
-OF-FILE..!./A.T1:B.S1:. 200: A.I: . 500
.%"./.OU,"FILE ";S$;" NOT ENDED AT BLOCK
 COUNT";X;A$;.D"./A.T:B.S:. 200: .OU,"->
";A$.}"./. 12300: . ** IF WE CONTINUED O
N LIST, WE MIGHT LOOP.."./. T..0 . 12060
: . **  NORMAL GOOD BLOCK IN MIDDLE OF F
ILE.."./A.T1:B.S1:. 200: A.I: . 500..#./
.OU,"FILE ";S$;" ENDS PREMATURELY:  BLOC
K";J;A$;./#./A.T:B.S:. 200: .OU,"->";A$.
7#.0. I.[#.2A$."N": ."GIVE COMPLETE MAP"
;A$..#C2A$.H(A$,1): . A$."N" . A$."N" . 
14000..#H2. T.1 . MT..#R2.OU..#.2.OU,"TR
ACK";T;":";BM%(T,0);"OF";SZ%(T);"BLOCKS 
FREE; BAM";..#.2. I.1 . BS: .OU,BM%(T,I)
; : . I..$.2.OU..$^3S.0.'$H3L.S: . L.MS 
. 13210.1$R3. 600.K$W3S.S.1: . S.MS . 13
190.L$|3. BF%(T,S)..BF%(T,L) . 13190..$}
3. BU%(T,L,0) . 0 . . BU%(T,S,0) . 0 . 1
3187..$.3I.0.Y$.3. I.9 . . BU%(T,S,I).BU
%(T,L,I) . I.I.1: . 13185..%.3. I.9 . 13
190: . ** NOT IDENTICAL ENTRIES FOR SUCC
ESSIVE SECTORS.A%.3. LT%(T,S).LT%(T,L) .
 . LS%(T,S).LS%(T,L) . 13175: . IDENTICA
L.%.3. BU$."AX->(0,0)" . 13160..%.3. L.
S.1 . .OU," SECTOR";L;BU$: . 13160.T%.3.
OU," SECTOR";L;"TO";S.1;BU$: . 13160..%.
3. T..%.6. /*..%.6.  * INTERACTIVE MODE.
.&.6.  */.-&.6OU.3: . ** SET OUTPUT TO S
CREEN.:&.6T.0: S.0.U&D6A.T: B.S: . 200: 
. A$;..&I6. "(A,B,C,D,H,F,N,O,T,$,QUIT)"
;A$: . A$."QUIT" . 63900..&N6B$.H(A$,1):
 A$.I(A$,C(A$).1).Q&X6. B$."A" . . 14100
: . 14020..&.6. B$."B" . . 14170: . 1402
0..'.6. B$."C" . . 14600: . 14020.1'.6. 
B$."D" . . 14200: . 14020.Q'.6. B$."F" .
 . 14300: . 14020.Q'.6. B$."H" . . 14400
: . 14020..'.6. B$."N" . . 14700: . 1402
0..'.6. B$."O" . . 14800: . 14020.Q'.7. 
B$."T" . . 14900: . 14020..'.7. B$."$" .
 . 15000: . 14020..(.7."INVALID COMMAND 
";B$.3(.7A.OU: OU.3: . 14400: OU.A: . 14
020.](.7. ** 14100 - A - ALLOCATE CURREN
T T&S.R(.7. 800: . . A . ...((7. 15,DV,1
5,"I".DK$: . DF,DV,8,"#": . MUST OPEN TO
 FORCE BAM WRITE..(-7.15,"B-A:";DK$;T;S:
 . 315:   DF:   15..(27A.T:B.S:. 200.-)<
7. EN.0 . .OU,"BLOCK ";A$;" ALLOCATED": 
BF%(T,S).1: ..D)F7. EN.65 . ."BLOCK ";A$
;" WAS ALREADY ALLOCATED": ...)P7."UNEXP
ECTED DISK STATUS ";EN;EM$;ET;ES: ..G)Z7
. ** 14170 - B - BLOCK SET CURRENT TRACK
&SECTOR..)D7."TRACK,SECTOR";T,S..)N7. 80
0: . A . . 14600..)S7..D*X7. ** 14200 - 
D - DIRECTORY ENTRY; DISPLAY DIRECTORY E
NTRY VAL(B$).*.7C.E(A$): .  ** 14220 IS
 ENTRY POINT FOR OTHER ROUTINES..*.7. 0.
.C . . C.FC . 14240.N*.7. "DIRECTORY ENT
RY NUMBER";C;"OUT OF RANGE": ...+ 7A.C: 
. 500: T.DT%(C): S.DS%(C): A.T: B.S:  . 
200.8+.7.OU,C;S$;H("                    
    ",21.C(S$));.Q+.7.OU,DZ%(C);"FROM";A
$.W+.7...+.7. ** 14300 - F - FREE; ISSUE
 A BLOCK-FREE FOR CURRENT BLOCK..+.7. 80
0: . . A . ...+.7A.T:B.S: . 200..+.7. "Y
OU REALLY WANT TO FREE BLOCK ";A$;..+.8A
$."N": . A$.%,.8A$.H(A$,1): . A$.."Y" . 
. A$.."Y" . ..K,.8. 15,DV,15,"I".DK$: . 
DF,DV,8,"#": . MUST OPEN TO FORCE BAM WR
ITE..,.8.15,"B-F:";DK$;T;S: . 315:   DF:
   15..,"8A.T:B.S:. 200..,,8. EN.0 . .OU
,"BLOCK ";A$;" FREED": BF%(T,S).0: ...-6
8."UNEXPECTED DISK STATUS ";EN;EM$;ET;ES
;" ON BLOCK-FREE"..-;8..H-@8. ** 14400 -
 H - HELP; GET SOME HELP.-J8.OU,"A - AL
LOCATE CURRENT T&S (FOR REAL, ON DISK)".
.-T8.OU,"B - BLOCK; SET T&S (PROMPTED FO
R)"..-^8.OU,"C - CURRENT; DISPLAY MAP EN
TRY FOR CURRENT T&S"...H8.OU,"D<N> - DIR
ECTORY; DISPLAY DIRECTORY ENTRY N".Y.R8.
OU,"F - FREE CURRENT T&S (FOR REAL, ON D
ISK-BE CAREFUL!)"...|8.OU,"H - HELP; GET
 THIS LIST ON OUTPUT DEVICE".O..8.OU,"N 
- NEXT; DISPLAY CURRENT MAP ENTRY THEN G
O TO NEXT LINK"../.8.OU,"O<N> - OUTPUT; 
SEND (MOST) OUTPUT TO DEVICE N (3 OR 4)"
.G/.8.OU,"T - TRACE; TRACE BLOCK LIST FR
OM CURRENT T&S"../.8.OU,"$ - DISPLAY ENT
IRE DIRECTORY OR LOOK FOR FILE NAME"../.
8.OU,"QUIT - QUIT; PUT AN END TO ALL THI
S NONSENSE".A/.8...0.9. ** 14600 - C - C
URRENT; DISPLAY THE MAP ENTRY FOR CURREN
T T&S..0.9. 800: . . A . ..40.9. 600: A.
T:B.S: . 200.G0&9.OU,A$;":";BU$.M009...0
L9. ** 14700 - N - NEXT; DISPLAY CURRENT
 MAP ENTRY, SET T&S TO NEXT..0V9. 800: .
 . A . ...0.9. 14600.T0.9A.T: T.LT%(T,S)
: S.LS%(A,S).Z0.9...1P9. ** 14800 - O - 
OUTPUT; SET OUTPUT DEVICE.01Z9A.E(A$): .
 3..A . . A..4 . OU.A: ..A1.9. "INVALID 
OUTPUT DEVICE (MUST BE 3 OR 4)";A.G1.9..
.14:. ** 14900 - T - TRACE; FOLLOW THE C
URRENT LIST OF BLOCKS..1>:. 800:  . . A 
. ..V1C:. A$: . A$.."" . 14915..1H:. 147
00: . A$: . A$.."" . ..&2R:. 1..T . T..M
T . . 0..S . S..SZ%(T) . 14920.,2\:..P2.
:. ** 15000 - $ - SHOW DIRECTORY, OR SET
 CURRENT BLOCK FROM FILE..2.:. A$."" . .
 I.0 . FC.1: C.I: . 14220: . I: ...2.:C.
0.S2.:. C .. FC . ."NO SUCH FILE AS ";A$
: ...2.:. DN$(C)..A$ . C.C.1: . 15030..3
J:. 14220..3T:.. 3..  3:   4:   DF:   15
.&3......
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL