Multiple names: DISK MAP.C, DISK MAP
FILE INFORMATION
FILENAME(S):
• DISK MAP.C<br>• DISK MAP
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 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL