000000: 45 58 54 45 4E 44 45 44 20 43 50 43 20 44 53 4B EXTENDED CPC DSK
000010: 20 46 69 6C 65 0D 0A 44 69 73 6B 2D 49 6E 66 6F File..Disk-Info
000020: 0D 0A 53 41 4D 64 69 73 6B 31 34 30 33 31 31 00 ..SAMdisk140311.
000030: 28 01 00 00 13 13 13 13 13 13 13 13 13 13 13 13 (...............
000040: 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ................
000050: 13 13 13 13 13 13 13 13 13 13 13 13 00 00 00 00 ................
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
000110: 00 00 01 00 02 09 52 E5 00 00 C9 02 00 00 00 02 ......R.........
000120: 00 00 C5 02 00 00 00 02 00 00 C1 02 00 00 00 02 ................
000130: 00 00 C6 02 00 00 00 02 00 00 C2 02 00 00 00 02 ................
000140: 00 00 C7 02 00 00 00 02 00 00 C3 02 00 00 00 02 ................
000150: 00 00 C8 02 00 00 00 02 00 00 C4 02 00 00 00 02 ................
000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000200: ED 7B 06 00 11 7C 02 CD 3A 01 21 80 00 7E B7 20 .{...|..:.!..~.
000210: 0B 21 E0 02 11 5C 00 01 0C 00 ED B0 11 5C 00 D5 .!...\.......\..
000220: DD E1 DD 7E 01 FE 20 20 16 D5 13 21 E1 02 01 0B ...~.. ...!....
000230: 00 ED B0 D1 18 09 CD 3A 01 C7 0E 09 C3 05 00 AF .......:........
000240: 32 EC 02 32 ED 02 1A 32 EE 02 0E 11 CD 05 00 3C 2..2...2.......<
000250: 20 05 11 A6 02 18 DF F5 3A EE 02 B7 20 09 0E 19 .......:... ...
000260: CD 05 00 3C 32 EE 02 21 00 00 47 37 CB 15 CB 14 ...<2..!..G7....
000270: A7 10 F9 E5 0E 1D CD 05 00 D1 7D A3 6F 7C A2 B5 ..........}£o|..
000280: 28 05 11 98 02 18 AF F1 3D 87 87 87 87 87 5F 16 (.......=....._.
000290: 00 21 80 00 19 CD FB 01 0E 12 CD 05 00 3C 20 E8 .!...........< .
0002A0: 21 EF 02 E5 CD 24 02 3A ED 02 B7 20 1E 11 C9 02 !....$.:... ....
0002B0: CD 3A 01 0E 01 CD 05 00 F6 20 FE 71 28 3C FE 61 .:....... .q(<.a
0002C0: 20 05 32 ED 02 18 04 FE 79 20 03 CD 57 02 F5 11 .2.....y ..W...
0002D0: 95 02 CD 3A 01 F1 E1 FE 70 3A EC 02 28 0C 11 0C ...:....p:..(...
0002E0: 00 19 3D 28 15 32 EC 02 18 B9 11 F4 FF 19 11 EF ..=(.2..........
0002F0: 02 B7 ED 52 19 38 03 3C 18 EB C7 23 E5 11 0C 00 ...R.8.<...#....
000300: 21 00 00 3A EC 02 B7 28 04 47 19 10 FD 11 EF 02 !..:...(.G......
000310: 19 F5 3A EE 02 77 F1 23 D1 EB 01 0B 00 ED B0 3C ..:..w.#.......<
000320: 32 EC 02 C9 7E 23 E5 C6 40 5F 0E 02 CD 05 00 1E 2...~#..@_......
000330: 3A 0E 02 CD 05 00 E1 06 0B E5 C5 3E 03 B8 20 09 :..........>.. .
000340: E5 1E 2E 0E 02 CD 05 00 E1 5E CB BB 0E 02 CD 05 .........^......
000350: 00 C1 E1 23 10 E3 C9 D1 E1 E5 D5 11 5C 00 01 0C ...#........\...
000360: 00 ED B0 11 5C 00 D5 DD E1 DD CB 09 7E 20 07 0E ....\.......~ ..
000370: 13 CD 05 00 3C C0 11 B8 02 C3 3A 01 57 44 45 4C ....<.....:.WDEL
000380: 20 56 32 2E 30 20 28 43 29 20 31 39 38 37 20 48 V2.0 (C) 1987 H
000390: 69 53 6F 66 74 0D 0A 24 44 72 69 76 65 20 69 73 iSoft..$Drive is
0003A0: 20 52 2F 4F 21 24 4E 6F 20 6D 61 74 63 68 69 6E R/O!$No matchin
0003B0: 67 20 66 69 6C 65 73 24 20 20 43 61 6E 6E 6F 74 g files$ Cannot
0003C0: 20 64 65 6C 65 74 65 21 24 20 20 44 65 6C 65 74 delete!$ Delet
0003D0: 65 20 28 59 2F 4E 2F 41 2F 51 2F 50 29 3F 20 24 e (Y/N/A/Q/P)? $
0003E0: 00 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 00 00 00 00 .???????????....
0003F0: FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 ................
000400: 2A 06 00 F9 11 00 FF 19 22 F9 04 11 51 11 A7 ED *......."...Q...
000410: 52 7C 1F 1F E6 3F 3C F5 11 68 04 CD 42 03 CD 38 R|...?<..h..B..8
000420: 04 F1 CD E9 03 3E 4B CD 47 03 11 8F 04 CD 42 03 .....>K.G.....B.
000430: 3A 5C 00 B7 20 03 CD 68 01 32 F3 04 21 6C 00 7E :\.. ..h.2..!l.~
000440: B7 20 1C 23 7E FE 2D 20 13 23 7E FE 51 28 04 FE . .#~.- .#~.Q(..
000450: 42 20 09 23 7E FE 20 20 03 32 6D 00 CD 68 01 32 B .#~. .2m..h.2
000460: F2 04 18 0B CD 42 03 C7 0E 19 CD 05 00 3C C9 11 .....B.......<..
000470: 46 05 01 0B 00 21 6D 00 7E FE 20 20 03 21 E7 04 F....!m.~. .!..
000480: ED B0 11 5C 00 D5 DD E1 DD 7E 01 FE 20 20 0B D5 ...\.....~.. ..
000490: 13 21 E7 04 01 0B 00 ED B0 D1 0E 11 CD 05 00 3C .!.............<
0004A0: 20 05 11 92 04 18 BD 3D 87 87 87 87 87 5F 16 00 ......=....._..
0004B0: 21 80 00 19 3A F4 04 F5 E5 21 51 05 B7 28 07 47 !...:....!Q..(.G
0004C0: 11 0B 00 19 10 FD D1 13 01 0B 00 EB ED B0 F1 3C ...............<
0004D0: 32 F4 04 0E 12 CD 05 00 3C 20 CC 21 51 05 E5 CD 2.......< .!Q...
0004E0: 9B 02 21 FE 04 CD 4C 03 11 C1 04 CD 42 03 21 22 ..!...L.....B.!"
0004F0: 05 E5 CD 4C 03 E1 11 FE 04 06 0C 1A BE 23 13 20 ...L.........#.
000500: 10 10 F8 11 C6 04 CD 42 03 3A FD 04 B7 28 3C 18 .......B.:...(<.
000510: 5B 3A F7 04 B7 20 2D 11 CD 04 CD 42 03 0E 01 CD [:... -....B....
000520: 05 00 F6 20 FE 71 CA 00 00 FE 61 20 05 32 F7 04 ... .q....a .2..
000530: 18 0C FE 62 28 31 FE 77 28 2C FE 79 20 09 3A F5 ...b(1.w(,.y .:.
000540: 04 32 F6 04 CD CC 02 FE 70 28 21 11 8F 04 CD 42 .2......p(!....B
000550: 03 E1 11 0B 00 19 AF 32 FD 04 3A F4 04 3D 28 C6 .......2..:..=(.
000560: 32 F4 04 C3 DE 01 AF 32 F6 04 18 D8 11 8F 04 CD 2......2........
000570: 42 03 E1 11 F5 FF 19 01 51 05 B7 ED 42 09 DA 00 B.......Q...B...
000580: 00 3E 01 32 FD 04 3A F4 04 3C 18 D4 01 23 00 E5 .>.2..:..<...#..
000590: D5 62 6B 13 36 00 ED B0 D1 E1 C9 E5 11 FE 04 CD .bk.6...........
0005A0: 8C 02 3A F3 04 12 13 01 0B 00 ED B0 11 22 05 CD ..:.........."..
0005B0: 8C 02 3A F2 04 12 13 21 46 05 06 0B 7E FE 3F 23 ..:....!F...~.?#
0005C0: E3 20 01 7E 23 E3 12 13 10 F2 E1 C9 11 FE 04 0E . .~#...........
0005D0: 0F CD 05 00 3C 28 68 AF 32 1E 05 3A F6 04 B7 28 ....<(h.2..:...(
0005E0: 34 21 2B 05 7E F5 36 42 23 5E 36 41 23 56 36 4B 4!+.~.6B#^6A#V6K
0005F0: E5 D5 11 22 05 0E 13 CD 05 00 21 23 05 11 33 05 ..."......!#..3.
000600: 00 57 50 20 20 20 20 20 20 43 4F 4D 00 00 00 08 .WP COM....
000610: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000620: 00 53 44 20 20 20 20 20 20 43 4F 4D 00 00 00 07 .SD COM....
000630: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000640: 00 57 44 20 20 20 20 20 20 43 4F 4D 00 00 00 04 .WD COM....
000650: 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000660: 00 21 52 45 41 44 4D 45 21 45 44 21 00 00 00 60 .!README!ED!...`
000670: 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 00 00 00 ................
000680: 00 2D 32 4A 55 4C 59 31 39 38 37 20 00 00 00 00 .-2JULY1987 ....
000690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0006A0: 00 2D 42 41 43 4B 55 50 4E 4F 57 21 00 00 00 00 .-BACKUPNOW!....
0006B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0006C0: 00 2D 56 45 52 53 49 4F 4E 31 32 34 00 00 00 00 .-VERSION124....
0006D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0006E0: 00 44 4F 4D 45 4E 55 20 20 44 45 46 00 00 00 03 .DOMENU DEF....
0006F0: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000700: 00 44 4F 4D 45 4E 55 20 20 4D 4F 44 00 00 00 39 .DOMENU MOD...9
000710: 12 13 14 15 16 17 18 19 00 00 00 00 00 00 00 00 ................
000720: 00 45 44 49 54 43 4F 4E 54 44 45 46 00 00 00 0C .EDITCONTDEF....
000730: 1A 1B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000740: 00 45 44 49 54 43 4F 4E 54 4D 4F 44 00 00 00 6D .EDITCONTMOD...m
000750: 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 00 00 .... !"#$%&'()..
000760: 00 45 44 49 54 44 49 53 50 44 45 46 00 00 00 08 .EDITDISPDEF....
000770: 2A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 *...............
000780: 00 45 44 49 54 44 49 53 50 4D 4F 44 00 00 00 33 .EDITDISPMOD...3
000790: 2B 2C 2D 2E 2F 30 31 00 00 00 00 00 00 00 00 00 +,-./01.........
0007A0: 00 45 44 49 54 53 54 41 54 44 45 46 00 00 00 04 .EDITSTATDEF....
0007B0: 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2...............
0007C0: 00 45 44 49 54 53 54 41 54 4D 4F 44 00 00 00 17 .EDITSTATMOD....
0007D0: 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 345.............
0007E0: 00 4B 45 59 42 4F 41 52 44 44 45 46 00 00 00 02 .KEYBOARDDEF....
0007F0: 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6...............
000800: 01 0B 00 ED B0 D1 E1 72 2B 73 2B F1 77 0E 17 11 .......r+s+.w...
000810: 22 05 CD 05 00 11 22 05 D5 0E 13 CD 05 00 D1 0E ".....".........
000820: 16 CD 05 00 3C 28 18 CD 77 03 C0 11 22 05 D5 0E ....<(..w..."...
000830: 10 CD 05 00 D1 0E 13 CD 05 00 11 A8 04 18 03 11 ................
000840: 9B 04 0E 09 C3 05 00 5F 0E 02 18 F8 7E C6 40 23 ......._....~.@#
000850: E5 CD 47 03 1E 3A CD 48 03 E1 06 0B E5 C5 3E 03 ..G..:.H......>.
000860: B8 20 07 E5 1E 2E CD 48 03 E1 5E CB BB 73 CD 48 . .....H..^..s.H
000870: 03 C1 E1 23 10 E6 C9 AF 32 F8 04 67 6F 22 FB 04 ...#....2..go"..
000880: 11 51 11 D5 0E 1A CD 05 00 11 FE 04 0E 14 CD 05 .Q..............
000890: 00 D1 A7 20 19 2A FB 04 23 22 FB 04 21 80 00 19 ... .*..#"..!...
0008A0: ED 5B F9 04 EB ED 52 30 DA 3E 01 32 F8 04 ED 4B .[....R0.>.2...K
0008B0: FB 04 78 B1 28 23 11 51 11 C5 D5 0E 1A CD 05 00 ..x.(#.Q........
0008C0: 11 22 05 0E 15 CD 05 00 D1 C1 A7 28 02 AF C9 21 .".........(...!
0008D0: 80 00 19 EB 0B 78 B1 20 E0 3A F8 04 A7 20 98 11 .....x. .:... ..
0008E0: 22 05 0E 10 CD 05 00 3C C9 4F AF 21 81 00 1E 02 "......<.O.!....
0008F0: D5 E5 11 0A 00 21 00 00 06 10 CB 11 17 ED 6A ED .....!........j.
000900: 52 30 01 19 3F 10 F3 CB 11 17 55 E1 72 2B D1 1D R0..?.....U.r+..
000910: 20 DE 06 02 CB 81 78 FE 01 20 02 CB C1 23 7E B7 .....x.. ...#~.
000920: 20 08 CB 41 20 04 3E 20 18 04 CB C1 C6 30 E5 C5 ..A .> .....0..
000930: CD 47 03 C1 E1 10 DF C9 AF 32 F7 04 32 F4 04 47 .G.......2..2..G
000940: 3A 80 00 4F 21 81 00 3E 2D ED B1 C0 2B 2B 7E FE :..O!..>-...++~.
000950: 20 23 23 20 F2 7E 23 FE 51 28 08 FE 42 C0 32 F5 ## .~#.Q(..B.2.
000960: 04 18 F2 32 F7 04 18 ED 57 50 20 56 33 2E 30 20 ...2....WP V3.0
000970: 28 43 29 20 31 39 38 37 20 48 69 53 6F 66 74 0D (C) 1987 HiSoft.
000980: 0A 42 75 66 66 65 72 20 73 69 7A 65 3A 20 24 0D .Buffer size: $.
000990: 0A 24 4E 6F 20 66 69 6C 65 73 24 20 4F 70 65 6E .$No files$ Open
0009A0: 20 66 61 69 6C 65 64 24 20 44 69 73 63 20 49 2F failed$ Disc I/
0009B0: 4F 20 65 72 72 6F 72 20 28 46 75 6C 6C 20 3F 29 O error (Full ?)
0009C0: 24 20 74 6F 20 24 20 20 53 61 6D 65 24 20 20 43 $ to $ Same$ C
0009D0: 6F 70 79 20 28 59 2F 4E 2F 41 2F 51 2F 50 2F 42 opy (Y/N/A/Q/P/B
0009E0: 2F 57 29 3F 20 24 00 3F 3F 3F 3F 3F 3F 3F 3F 3F /W)? $.?????????
0009F0: 3F 3F 00 00 00 00 00 00 00 00 00 00 00 00 20 4C ??............ L
000A00: 00 4B 45 59 42 4F 41 52 44 4D 4F 44 00 00 00 44 .KEYBOARDMOD...D
000A10: 37 38 39 3A 3B 3C 3D 3E 3F 00 00 00 00 00 00 00 789:;<=>?.......
000A20: 00 4D 41 43 52 4F 53 20 20 44 45 46 00 00 00 06 .MACROS DEF....
000A30: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
000A40: 00 4D 41 43 52 4F 53 20 20 4D 4F 44 00 00 00 4F .MACROS MOD...O
000A50: 41 42 43 44 45 46 47 48 49 4A 00 00 00 00 00 00 ABCDEFGHIJ......
000A60: 00 4D 41 4B 45 45 44 49 54 44 45 46 00 00 00 19 .MAKEEDITDEF....
000A70: 4B 4C 4D 4E 00 00 00 00 00 00 00 00 00 00 00 00 KLMN............
000A80: 00 4D 41 4B 45 45 44 49 54 4D 4F 44 00 00 00 80 .MAKEEDITMOD....
000A90: 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E OPQRSTUVWXYZ[\]^
000AA0: 00 4D 41 4B 45 45 44 49 54 4D 4F 44 01 00 00 20 .MAKEEDITMOD...
000AB0: 5F 60 61 62 00 00 00 00 00 00 00 00 00 00 00 00 _`ab............
000AC0: 00 4D 45 20 20 20 20 20 20 4D 4F 44 00 00 00 26 .ME MOD...&
000AD0: 63 64 65 66 67 00 00 00 00 00 00 00 00 00 00 00 cdefg...........
000AE0: 00 4D 45 4E 55 20 20 20 20 44 45 46 00 00 00 06 .MENU DEF....
000AF0: 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 h...............
000B00: 00 4D 45 4E 55 20 20 20 20 4D 4F 44 00 00 00 1D .MENU MOD....
000B10: 69 6A 6B 6C 00 00 00 00 00 00 00 00 00 00 00 00 ijkl............
000B20: 00 52 45 53 45 54 44 49 53 44 45 46 00 00 00 01 .RESETDISDEF....
000B30: 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 m...............
000B40: 00 52 45 53 45 54 44 49 53 4D 4F 44 00 00 00 02 .RESETDISMOD....
000B50: 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 n...............
000B60: 00 53 43 52 45 45 4E 44 55 44 45 46 00 00 00 06 .SCREENDUDEF....
000B70: 6F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 o...............
000B80: 00 53 43 52 45 45 4E 44 55 4D 4F 44 00 00 00 05 .SCREENDUMOD....
000B90: 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 p...............
000BA0: 00 53 43 52 45 45 4E 49 4F 44 45 46 00 00 00 20 .SCREENIODEF...
000BB0: 71 72 73 74 00 00 00 00 00 00 00 00 00 00 00 00 qrst............
000BC0: 00 53 43 52 45 45 4E 49 4F 4D 4F 44 00 00 00 2D .SCREENIOMOD...-
000BD0: 75 76 77 78 79 7A 00 00 00 00 00 00 00 00 00 00 uvwxyz..........
000BE0: 00 53 45 54 55 50 43 41 4C 44 45 46 00 00 00 05 .SETUPCALDEF....
000BF0: 7B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 {...............
000C00: ED 7B 06 00 11 F3 03 CD 87 01 0E 19 CD 05 00 32 .{.............2
000C10: 5C 04 21 80 00 7E A7 20 0B 21 1F 04 11 5C 00 01 \.!..~. .!...\..
000C20: 0C 00 ED B0 AF 32 55 04 32 5F 04 11 5C 00 D5 DD .....2U.2_..\...
000C30: E1 DD 7E 01 FE 20 20 0B D5 13 21 20 04 01 0B 00 ..~.. ...! ....
000C40: ED B0 D1 1A B7 20 04 3A 5C 04 3C 3D 32 5D 04 5F ..... .:\.<=2]._
000C50: 0E 0E CD 05 00 0E 1F CD 05 00 22 56 04 23 23 23 .........."V.###
000C60: 23 7E 32 58 04 11 5C 00 DD 36 0C 3F 0E 11 CD 05 #~2X..\..6.?....
000C70: 00 3C 20 18 11 41 04 CD 87 01 CD 1B 03 3A 5C 04 .< ..A.......:\.
000C80: 5F 0E 0E CD 05 00 C7 0E 09 C3 05 00 3D 87 87 87 _...........=...
000C90: 87 87 5F 16 00 21 80 00 19 3A 5F 04 F5 E5 21 65 .._..!...:_...!e
000CA0: 04 B7 28 07 47 11 10 00 19 10 FD D1 01 10 00 EB ..(.G...........
000CB0: ED B0 F1 3C 32 5F 04 0E 12 CD 05 00 3C 20 CD CD ...<2_......< ..
000CC0: 65 02 3A 5F 04 47 DD 21 65 04 C5 DD CB 00 7E CC e.:_.G.!e.....~.
000CD0: DC 01 11 10 00 DD 19 C1 10 F0 18 98 CD 41 02 11 .............A..
000CE0: 2E 04 DD CB 0A 7E 28 03 11 2B 04 CD 87 01 11 34 .....~(..+.....4
000CF0: 04 DD CB 09 7E 28 03 11 31 04 CD 87 01 DD 6E 0F ....~(..1.....n.
000D00: DD 66 0E 7D B4 28 13 7D E6 07 20 01 2B CB 3C CB .f.}.(.}.. .+.<.
000D10: 1D CB 3C CB 1D CB 3C CB 1D 23 4D 7C CD A2 03 11 ..<...<..#M|....
000D20: 37 04 CD 87 01 DD 4E 0F DD 7E 0E CD A2 03 11 1A 7.....N..~......
000D30: 04 3A 55 04 EE 01 32 55 04 28 03 11 1D 04 C3 87 .:U...2U.(......
000D40: 01 DD E5 E1 06 0B 23 E5 C5 3E 03 B8 20 09 E5 1E ......#..>.. ...
000D50: 2E 0E 02 CD 05 00 E1 5E CB BB 0E 02 CD 05 00 C1 .......^........
000D60: E1 23 10 E3 C9 DD 21 65 04 3A 5F 04 47 C5 3A 58 .#....!e.:_.G.:X
000D70: 04 DD BE 0C 38 25 DD 7E 0F FE 80 20 1E CD CC 02 ....8%.~... ....
000D80: 28 19 FD CB 00 FE FD 6E 0F FD 66 0E DD 5E 0F DD (......n..f..^..
000D90: 56 0E 19 DD 75 0F DD 74 0E 18 E2 3A 58 04 B7 C4 V...u..t...:X...
000DA0: AB 02 11 10 00 DD 19 C1 10 C3 C9 3C 5F DD 4E 0C ...........<_.N.
000DB0: AF 57 CD DD 03 7D B7 C8 45 DD 6E 0F DD 66 0E 11 .W...}..E.n..f..
000DC0: 80 00 19 10 FD DD 75 0F DD 74 0E C9 FD 21 65 04 ......u..t...!e.
000DD0: C5 3A 5F 04 47 DD E5 FD E5 E1 D1 A7 ED 52 28 09 .:_.G........R(.
000DE0: FD CB 00 7E CC 08 03 28 0A 11 10 00 FD 19 10 E5 ...~...(........
000DF0: AF C1 C9 3A 58 04 B7 28 0B DD E5 FD E5 DD E1 CD ...:X..(........
000E00: 00 53 45 54 55 50 43 41 4C 4D 4F 44 00 00 00 0A .SETUPCALMOD....
000E10: 7C 7D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |}..............
000E20: 00 52 45 43 4D 50 45 44 20 53 55 42 00 00 00 04 .RECMPED SUB....
000E30: 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ~...............
000E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001000: AB 02 DD E1 F6 01 C1 C9 DD E5 FD E5 D1 E1 C5 06 ................
001010: 0B 23 13 1A BE 20 02 10 F8 C1 C9 0E 0C CD 05 00 .#... ..........
001020: FE 30 30 50 DD 2A 56 04 DD 6E 05 DD 66 06 22 59 .00P.*V..n..f."Y
001030: 04 DD 7E 02 D6 02 47 AF 37 17 10 FD 32 5B 04 0E ..~...G.7...2[..
001040: 1B CD 05 00 ED 4B 59 04 03 11 00 00 3E 08 32 5E .....KY.....>.2^
001050: 04 CB 16 38 01 13 0B 79 B0 28 09 3A 5E 04 3D 20 ...8...y.(.:^.=
001060: ED 23 18 E8 6B 62 3A 5B 04 47 05 28 03 19 10 FD .#..kb:[.G.(....
001070: 7C 4D 18 23 3A 5D 04 0E 2E 5F CD 05 00 06 03 DD |M.#:]..._......
001080: 21 80 00 DD CB 02 3E DD CB 01 1E DD CB 00 1E 10 !.....>.........
001090: F2 DD 7E 01 DD 4E 00 CD A2 03 3E 4B 5F 0E 02 C3 ..~..N....>K_...
0010A0: 05 00 21 64 04 1E 05 D5 E5 11 0A 00 CD DD 03 55 ..!d...........U
0010B0: E1 72 2B D1 1D 20 F0 06 05 CB 81 78 FE 01 20 02 .r+.. .....x.. .
0010C0: CB C1 23 7E B7 20 08 CB 41 20 04 3E 20 18 04 CB ..#~. ..A .> ...
0010D0: C1 C6 30 E5 C5 CD 9C 03 C1 E1 10 DF C9 21 00 00 ..0..........!..
0010E0: 06 10 CB 11 17 ED 6A ED 52 30 01 19 3F 10 F3 CB ......j.R0..?...
0010F0: 11 17 C9 53 44 20 56 31 2E 30 20 62 79 20 41 64 ...SD V1.0 by Ad
001100: 61 6D 20 44 65 6E 6E 69 6E 67 20 28 43 29 20 48 am Denning (C) H
001110: 69 53 6F 66 74 20 31 39 38 36 0D 0A 24 09 24 00 iSoft 1986..$.$.
001120: 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 20 53 24 20 20 ??????????? S$
001130: 24 52 20 24 20 20 24 4B 20 20 52 65 63 73 3A 20 $R $ $K Recs:
001140: 24 0D 0A 44 69 73 63 20 66 72 65 65 20 73 70 61 $..Disc free spa
001150: 63 65 3A 20 24 66 75 6E 63 74 69 6F 6E F3 20 69 ce: $function. i
001160: EE 20 73 6F 75 72 63 E5 20 61 6E E4 20 4D 61 6E . sourc. an. Man
001170: F8 20 8D 0A 6C 69 62 72 61 72 F9 20 66 6F 72 6D . ..librar. form
001180: 44 4F 0D 0A 09 09 09 4C 6F 6F 6B 75 70 28 49 6E DO.....Lookup(In
001190: 66 2C 4E 61 6D 65 73 5B 6A 5D 2C 72 65 70 6C 79 f,Names[j],reply
0011A0: 29 3B 0D 0A 09 09 09 49 46 20 72 65 70 6C 79 3C );.....IF reply<
0011B0: 30 20 54 48 45 4E 0D 0A 09 09 09 09 57 72 69 74 0 THEN......Writ
0011C0: 65 53 74 72 69 6E 67 28 27 20 43 6F 75 6C 64 20 eString(' Could
0011D0: 6E 6F 74 20 6F 70 65 6E 20 27 29 3B 0D 0A 09 09 not open ');....
0011E0: 09 09 57 72 69 74 65 53 74 72 69 6E 67 28 4E 61 ..WriteString(Na
0011F0: 6D 65 73 5B 6A 5D 29 3B 0D 0A 09 09 09 09 57 72 mes[j]);......Wr
001200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
001410: 01 00 01 00 02 09 52 E5 01 00 C9 02 00 00 00 02 ......R.........
001420: 01 00 C5 02 00 00 00 02 01 00 C1 02 00 00 00 02 ................
001430: 01 00 C6 02 00 00 00 02 01 00 C2 02 00 00 00 02 ................
001440: 01 00 C7 02 00 00 00 02 01 00 C3 02 00 00 00 02 ................
001450: 01 00 C8 02 00 00 00 02 01 00 C4 02 00 00 00 02 ................
001460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001500: 73 65 72 74 2F 64 65 6C 65 74 65 20 6C 69 6E 65 sert/delete line
001510: 20 6F 72 20 63 6C 65 61 72 20 74 6F 0D 0A 65 6E or clear to..en
001520: 64 20 6F 66 20 6C 69 6E 65 29 2E 20 20 4D 69 6E d of line). Min
001530: 64 20 79 6F 75 20 64 6F 6E 27 74 20 6F 76 65 72 d you don't over
001540: 77 72 69 74 65 20 79 6F 75 72 20 6F 6E 6C 79 20 write your only
001550: 63 6F 70 79 20 6F 66 20 4D 45 2E 43 4F 4D 0D 0A copy of ME.COM..
001560: 77 68 69 6C 65 20 65 78 70 65 72 69 6D 65 6E 74 while experiment
001570: 69 6E 67 2D 2D 61 6E 64 20 63 6F 70 79 20 4D 45 ing--and copy ME
001580: 2E 43 4F 4D 20 66 72 6F 6D 20 79 6F 75 72 20 6F .COM from your o
001590: 72 69 67 69 6E 61 6C 20 64 69 73 6B 73 20 69 66 riginal disks if
0015A0: 0D 0A 79 6F 75 20 68 61 76 65 20 61 6E 79 20 64 ..you have any d
0015B0: 6F 75 62 74 73 2E 0D 0D 0A 49 66 20 73 74 72 61 oubts....If stra
0015C0: 70 70 65 64 20 66 6F 72 20 72 6F 6F 6D 2C 20 6F pped for room, o
0015D0: 72 20 6A 75 73 74 20 65 78 70 65 72 69 6D 65 6E r just experimen
0015E0: 74 69 6E 67 2C 20 4D 41 43 52 4F 53 2E 4D 42 45 ting, MACROS.MBE
0015F0: 20 68 61 73 20 6E 6F 0D 0A 66 75 6E 63 74 69 6F has no..functio
001600: 6E 20 6B 65 79 20 63 6F 64 65 20 61 6E 64 20 74 n key code and t
001610: 68 65 72 65 66 6F 72 65 20 69 73 20 73 6D 61 6C herefore is smal
001620: 6C 65 72 2E 20 20 41 73 20 62 65 66 6F 72 65 2C ler. As before,
001630: 20 72 65 6E 61 6D 65 0D 0A 69 74 20 74 6F 20 4D rename..it to M
001640: 41 43 52 4F 53 2E 4D 4F 44 20 62 65 66 6F 72 65 ACROS.MOD before
001650: 20 72 65 63 6F 6D 70 69 6C 69 6E 67 2E 0D 0D 0A recompiling....
001660: 09 09 53 41 4D 50 4C 45 20 50 52 4F 47 52 41 4D ..SAMPLE PROGRAM
001670: 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 0D 0A 0D INSTRUCTIONS...
001680: 0A 09 09 43 41 54 2E 4D 4F 44 0D 0A 09 09 3D 3D ...CAT.MOD....==
001690: 3D 3D 3D 3D 3D 0D 0A 0D 0A 41 20 66 69 6C 65 20 =====....A file
0016A0: 64 69 73 70 6C 61 79 20 70 72 6F 67 72 61 6D 20 display program
0016B0: 77 69 74 68 6F 75 74 20 74 68 65 20 73 68 6F 72 without the shor
0016C0: 74 63 6F 6D 69 6E 67 73 20 6F 66 20 27 74 79 70 tcomings of 'typ
0016D0: 65 27 2E 20 20 43 41 54 20 63 61 6E 3A 0D 0D 0A e'. CAT can:...
0016E0: 09 4E 75 6D 62 65 72 20 6F 75 74 70 75 74 20 6C .Number output l
0016F0: 69 6E 65 73 0D 0A 09 50 61 67 65 20 6F 75 74 70 ines...Page outp
001700: 43 6F 6D 70 75 74 65 72 73 27 20 5A 38 30 20 43 Computers' Z80 C
001710: 61 72 64 2E 20 20 54 6F 20 70 72 6F 64 75 63 65 ard. To produce
001720: 20 61 20 6D 65 6D 6F 72 79 20 6D 61 70 70 65 64 a memory mapped
001730: 0D 0A 09 09 76 65 72 73 69 6F 6E 2C 20 73 74 61 ....version, sta
001740: 72 74 20 77 69 74 68 20 74 68 65 20 4D 69 63 72 rt with the Micr
001750: 6F 42 65 65 2C 20 61 73 20 74 68 61 74 20 69 73 oBee, as that is
001760: 20 74 68 65 20 6D 6F 73 74 20 73 74 61 6E 64 61 the most standa
001770: 72 64 2E 0D 0D 0A 09 09 54 6F 20 72 65 70 6C 61 rd......To repla
001780: 63 65 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 ce the standard
001790: 76 65 72 73 69 6F 6E 20 6F 66 20 53 63 72 65 65 version of Scree
0017A0: 6E 49 4F 20 62 79 20 61 20 6D 65 6D 6F 72 79 20 nIO by a memory
0017B0: 6D 61 70 70 65 64 0D 0A 09 09 76 65 72 73 69 6F mapped....versio
0017C0: 6E 2C 20 73 69 6D 70 6C 79 20 63 6F 6D 70 69 6C n, simply compil
0017D0: 65 20 74 68 65 20 6D 65 6D 6F 72 79 20 6D 61 70 e the memory map
0017E0: 70 65 64 20 69 6D 70 6C 65 6D 65 6E 74 61 74 69 ped implementati
0017F0: 6F 6E 20 6D 6F 64 75 6C 65 0D 0A 09 09 69 6E 20 on module....in
001800: 70 6C 61 63 65 20 6F 66 20 74 68 65 20 73 74 61 place of the sta
001810: 6E 64 61 72 64 20 69 6D 70 6C 65 6D 65 6E 74 61 ndard implementa
001820: 74 69 6F 6E 20 6D 6F 64 75 6C 65 2D 2D 6E 6F 20 tion module--no
001830: 63 68 61 6E 67 65 73 20 61 72 65 0D 0A 09 09 6E changes are....n
001840: 65 65 64 65 64 20 69 6E 20 74 68 65 20 64 65 66 eeded in the def
001850: 69 6E 69 74 69 6F 6E 20 6D 6F 64 75 6C 65 2E 20 inition module.
001860: 20 4E 4F 54 45 3A 20 74 68 65 20 4F 73 62 6F 72 NOTE: the Osbor
001870: 6E 65 20 76 65 72 73 69 6F 6E 20 69 73 0D 0A 09 ne version is...
001880: 09 66 6F 72 20 4F 73 62 6F 72 6E 65 20 49 73 20 .for Osborne Is
001890: 6F 6E 6C 79 2C 20 4E 4F 54 20 74 68 65 20 45 78 only, NOT the Ex
0018A0: 65 63 75 74 69 76 65 2E 20 20 54 68 65 20 56 69 ecutive. The Vi
0018B0: 78 65 6E 20 69 73 20 61 6C 73 6F 0D 0A 09 09 73 xen is also....s
0018C0: 6C 69 67 68 74 6C 79 20 64 69 66 66 65 72 65 6E lightly differen
0018D0: 74 2E 0D 0D 0A 09 43 6F 6D 70 69 6C 69 6E 67 20 t.....Compiling
0018E0: 74 68 65 20 65 64 69 74 6F 72 2E 0D 09 2A 2A 2A the editor...***
0018F0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
001900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B00: 2A 2A 0D 0A 0D 0A 09 54 68 65 20 73 75 62 6D 69 **.....The submi
001B10: 74 20 66 69 6C 65 20 52 45 43 4D 50 45 44 2E 53 t file RECMPED.S
001B20: 55 42 20 63 61 6E 20 62 65 20 75 73 65 64 20 74 UB can be used t
001B30: 6F 20 72 65 63 6F 6D 70 69 6C 65 20 74 68 65 20 o recompile the
001B40: 65 64 69 74 6F 72 3A 0D 0A 0D 0A 09 09 53 55 42 editor:......SUB
001B50: 4D 49 54 20 52 45 43 4D 50 45 44 0D 0A 0D 0A 74 MIT RECMPED....t
001B60: 68 65 20 64 69 73 74 72 69 62 75 74 65 64 20 66 he distributed f
001B70: 6F 72 6D 20 6F 66 20 74 68 69 73 20 66 69 6C 65 orm of this file
001B80: 20 61 73 73 75 6D 65 73 20 74 68 61 74 20 74 68 assumes that th
001B90: 65 20 66 69 6C 65 73 20 61 72 65 20 61 6C 6C 20 e files are all
001BA0: 6F 6E 20 74 68 65 0D 0A 63 75 72 72 65 6E 74 20 on the..current
001BB0: 64 72 69 76 65 2E 20 20 59 6F 75 20 6D 61 79 20 drive. You may
001BC0: 77 61 6E 74 20 74 6F 20 61 64 64 20 22 42 3A 22 want to add "B:"
001BD0: 20 69 6E 20 66 72 6F 6E 74 20 74 68 65 20 66 69 in front the fi
001BE0: 6C 65 6E 61 6D 65 73 20 62 65 69 6E 67 0D 0A 63 lenames being..c
001BF0: 6F 6D 70 69 6C 65 64 20 28 6F 72 20 61 64 64 20 ompiled (or add
001C00: 77 68 61 74 65 76 65 72 20 64 72 69 76 65 20 6E whatever drive n
001C10: 61 6D 65 20 79 6F 75 20 61 72 65 20 75 73 69 6E ame you are usin
001C20: 67 29 2E 20 20 4E 6F 74 65 20 74 68 61 74 20 53 g). Note that S
001C30: 55 42 4D 49 54 20 6F 6E 6C 79 0D 0A 77 6F 72 6B UBMIT only..work
001C40: 73 20 66 72 6F 6D 20 64 72 69 76 65 20 41 3A 20 s from drive A:
001C50: 6F 6E 20 6D 61 6E 79 20 63 6F 6D 70 75 74 65 72 on many computer
001C60: 73 2E 0D 0D 0A 09 4D 61 70 70 69 6E 67 20 79 6F s.....Mapping yo
001C70: 75 72 20 6B 65 79 62 6F 61 72 64 2E 0D 0D 0A 09 ur keyboard.....
001C80: 49 66 20 79 6F 75 20 77 61 6E 74 20 74 6F 20 6D If you want to m
001C90: 6F 64 69 66 79 20 74 68 65 20 65 64 69 74 6F 72 odify the editor
001CA0: 20 74 6F 20 75 73 65 20 79 6F 75 72 20 6B 65 79 to use your key
001CB0: 62 6F 61 72 64 20 61 72 72 6F 77 20 6B 65 79 73 board arrow keys
001CC0: 0D 61 6E 64 20 66 75 6E 63 74 69 6F 6E 20 6B 65 .and function ke
001CD0: 79 73 2C 20 79 6F 75 20 77 69 6C 6C 20 77 61 6E ys, you will wan
001CE0: 74 20 74 6F 20 65 64 69 74 20 74 68 65 20 6D 6F t to edit the mo
001CF0: 64 75 6C 65 20 4B 45 59 42 4F 41 52 44 2E 4D 4F dule KEYBOARD.MO
001D00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001D10: 20 20 20 20 20 20 20 20 20 20 20 4E 6F 74 65 73 Notes
001D20: 20 66 6F 72 0D 20 20 20 20 20 20 20 20 20 20 20 for.
001D30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001D40: 46 54 4C 20 4D 6F 64 75 6C 61 2D 32 20 45 64 69 FTL Modula-2 Edi
001D50: 74 6F 72 2F 54 6F 6F 6C 4B 69 74 20 64 69 73 63 tor/ToolKit disc
001D60: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
001D70: 20 20 20 20 20 20 20 20 20 20 20 20 57 6F 72 6B Work
001D80: 6D 61 6E 20 26 20 41 73 73 6F 63 69 61 74 65 73 man & Associates
001D90: 0D 0D 0A 0D 0D 0A 54 68 69 73 20 64 69 73 63 20 ......This disc
001DA0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 6E 74 contains the ent
001DB0: 69 72 65 20 73 6F 75 72 63 65 73 20 66 6F 72 20 ire sources for
001DC0: 74 68 65 20 46 54 4C 20 4D 6F 64 75 6C 61 2D 32 the FTL Modula-2
001DD0: 20 65 64 69 74 6F 72 20 61 6E 64 0D 61 20 6E 75 editor and.a nu
001DE0: 6D 62 65 72 20 6F 66 20 75 74 69 6C 69 74 69 65 mber of utilitie
001DF0: 73 20 77 68 69 63 68 20 79 6F 75 20 6D 61 79 20 s which you may
001E00: 66 69 6E 64 20 75 73 65 66 75 6C 2E 20 0D 0D 0A find useful. ...
001E10: 0D 0D 0A 53 65 65 20 74 68 65 20 65 6E 64 20 6F ...See the end o
001E20: 66 20 74 68 69 73 20 66 69 6C 65 20 66 6F 72 20 f this file for
001E30: 6D 6F 72 65 20 64 65 74 61 69 6C 73 20 6F 6E 20 more details on
001E40: 74 68 65 20 75 74 69 6C 69 74 69 65 73 2E 20 20 the utilities.
001E50: 54 68 65 79 20 61 72 65 3A 0D 0D 0D 0A 43 4F 4D They are:....COM
001E60: 50 44 49 52 09 09 61 20 64 69 72 65 63 74 6F 72 PDIR..a director
001E70: 79 20 63 6F 6D 70 61 72 65 20 70 72 6F 67 72 61 y compare progra
001E80: 6D 2E 20 20 54 68 69 73 20 70 72 6F 67 72 61 6D m. This program
001E90: 20 69 73 20 69 6E 76 61 6C 75 61 62 6C 65 20 74 is invaluable t
001EA0: 6F 0D 09 09 73 6F 66 74 77 61 72 65 20 64 65 76 o...software dev
001EB0: 65 6C 6F 70 65 72 73 20 77 68 6F 20 6E 65 65 64 elopers who need
001EC0: 20 74 6F 20 65 6E 73 75 72 65 20 74 68 61 74 20 to ensure that
001ED0: 74 68 65 69 72 20 64 69 73 74 72 69 62 75 74 69 their distributi
001EE0: 6F 6E 0D 09 09 64 69 73 63 73 20 61 72 65 20 63 on...discs are c
001EF0: 6F 6D 70 6C 65 74 65 20 61 6E 64 20 63 6F 6E 74 omplete and cont
001F00: 44 2C 0D 0A 74 68 65 6E 20 72 65 63 6F 6D 70 69 D,..then recompi
001F10: 6C 65 20 74 68 65 20 65 64 69 74 6F 72 20 28 73 le the editor (s
001F20: 65 65 20 61 62 6F 76 65 29 2E 0D 0D 0A 09 45 64 ee above).....Ed
001F30: 69 74 6F 72 20 43 6F 6F 6B 27 73 20 47 75 69 64 itor Cook's Guid
001F40: 65 2E 0D 0A 0D 0A 09 54 68 65 20 6D 61 69 6E 20 e......The main
001F50: 6D 6F 64 75 6C 65 73 20 69 6E 20 74 68 65 20 65 modules in the e
001F60: 64 69 74 6F 72 20 61 72 65 3A 0D 0A 0D 0A 4D 45 ditor are:....ME
001F70: 09 09 54 68 65 20 74 6F 70 20 6C 65 76 65 6C 20 ..The top level
001F80: 6D 6F 64 75 6C 65 2E 0D 0A 45 44 49 54 43 4F 4E module...EDITCON
001F90: 54 09 43 6F 6E 74 72 6F 6C 73 20 74 68 65 20 73 T.Controls the s
001FA0: 63 72 65 65 6E 20 64 69 73 70 6C 61 79 2E 0D 0A creen display...
001FB0: 45 44 49 54 44 49 53 50 09 53 6F 6D 65 20 6F 74 EDITDISP.Some ot
001FC0: 68 65 72 20 73 63 72 65 65 6E 20 64 69 73 70 6C her screen displ
001FD0: 61 79 20 70 72 6F 63 65 64 75 72 65 73 2D 2D 65 ay procedures--e
001FE0: 73 73 65 6E 74 69 61 6C 6C 79 20 70 61 72 74 0D ssentially part.
001FF0: 0A 09 6F 66 20 45 44 49 54 43 4F 4E 54 2C 20 6B ..of EDITCONT, k
002000: 65 70 74 20 73 65 70 61 72 61 74 65 20 66 6F 72 ept separate for
002010: 20 65 61 73 65 20 6F 66 20 6D 61 69 6E 74 65 6E ease of mainten
002020: 61 6E 63 65 2E 0D 0A 4D 41 4B 45 45 44 49 54 09 ance...MAKEEDIT.
002030: 50 65 72 66 6F 72 6D 73 20 74 68 65 20 63 68 61 Performs the cha
002040: 6E 67 65 73 20 74 6F 20 74 68 65 20 66 69 6C 65 nges to the file
002050: 28 73 29 20 62 65 69 6E 67 20 65 64 69 74 65 64 (s) being edited
002060: 2E 0D 0A 4B 45 59 42 4F 41 52 44 09 41 63 63 65 ...KEYBOARD.Acce
002070: 70 74 73 20 69 6E 70 75 74 20 66 72 6F 6D 20 74 pts input from t
002080: 68 65 20 6B 65 79 62 6F 61 72 64 20 61 6E 64 20 he keyboard and
002090: 63 61 6C 6C 73 20 61 70 70 72 6F 70 72 69 61 74 calls appropriat
0020A0: 65 0D 0A 09 09 72 6F 75 74 69 6E 65 73 20 74 6F e....routines to
0020B0: 20 70 65 72 66 6F 72 6D 20 74 68 65 20 72 65 71 perform the req
0020C0: 75 65 73 74 65 64 20 65 64 69 74 20 66 75 6E 63 uested edit func
0020D0: 74 69 6F 6E 73 2E 0D 0A 44 4F 4D 45 4E 55 09 09 tions...DOMENU..
0020E0: 53 75 70 70 6F 72 74 73 20 74 68 65 20 6F 70 74 Supports the opt
0020F0: 69 6F 6E 73 20 6D 65 6E 75 20 28 74 68 61 74 20 ions menu (that
002100: 61 69 6E 20 74 68 65 20 6C 61 74 65 73 74 20 76 ain the latest v
002110: 65 72 73 69 6F 6E 73 20 6F 66 20 66 69 6C 65 73 ersions of files
002120: 2E 0A 09 09 53 65 65 20 74 68 65 20 66 69 6C 65 ....See the file
002130: 20 43 4F 4D 50 44 49 52 2E 4D 4F 44 20 61 6E 64 COMPDIR.MOD and
002140: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 62 65 instructions be
002150: 6C 6F 77 2E 0D 0A 43 4F 4D 50 41 52 45 09 09 61 low...COMPARE..a
002160: 6E 20 41 73 63 69 69 20 66 69 6C 65 20 63 6F 6D n Ascii file com
002170: 70 61 72 69 73 6F 6E 20 70 72 6F 67 72 61 6D 2E parison program.
002180: 20 20 54 68 69 73 20 70 72 6F 67 72 61 6D 20 64 This program d
002190: 6F 65 73 20 6C 69 6E 65 2D 62 79 2D 0A 09 09 6C oes line-by-...l
0021A0: 69 6E 65 20 63 6F 6D 70 61 72 69 73 6F 6E 73 20 ine comparisons
0021B0: 6F 66 20 66 69 6C 65 73 2E 20 20 49 74 20 75 73 of files. It us
0021C0: 65 73 20 61 20 70 6F 77 65 72 66 75 6C 20 63 6F es a powerful co
0021D0: 6D 70 61 72 69 73 6F 6E 0D 0A 09 09 6D 65 74 68 mparison....meth
0021E0: 6F 64 20 77 68 69 63 68 20 72 61 72 65 6C 79 20 od which rarely
0021F0: 67 65 74 73 20 6C 6F 73 74 2C 20 61 6E 64 20 77 gets lost, and w
002200: 68 69 63 68 20 63 61 6E 20 64 65 74 65 63 74 20 hich can detect
002210: 62 6C 6F 63 6B 0D 09 09 6D 6F 76 65 73 2E 20 20 block...moves.
002220: 53 65 65 20 74 68 65 20 66 69 6C 65 20 43 4F 4D See the file COM
002230: 50 41 52 45 2E 4D 4F 44 20 61 6E 64 20 74 68 65 PARE.MOD and the
002240: 20 64 6F 63 75 6D 65 6E 74 61 74 69 6F 6E 20 62 documentation b
002250: 65 6C 6F 77 2E 0D 0D 0A 43 41 54 09 09 61 20 67 elow....CAT..a g
002260: 65 6E 65 72 61 6C 69 73 65 64 20 6C 69 73 74 69 eneralised listi
002270: 6E 67 20 6D 6F 64 75 6C 65 20 69 6E 74 65 6E 64 ng module intend
002280: 65 64 20 70 72 69 6D 61 72 69 6C 79 20 66 6F 72 ed primarily for
002290: 20 75 73 65 20 6F 6E 0D 0A 09 09 52 43 50 4D 73 use on....RCPMs
0022A0: 2E 20 20 49 74 20 63 61 6E 20 64 6F 20 74 61 62 . It can do tab
0022B0: 20 65 78 70 61 6E 73 69 6F 6E 2C 20 6C 69 6E 65 expansion, line
0022C0: 20 6E 75 6D 62 65 72 69 6E 67 2C 20 73 74 72 69 numbering, stri
0022D0: 6E 67 20 73 65 61 72 63 68 2C 0D 09 09 70 6F 73 ng search,...pos
0022E0: 69 74 69 6F 6E 20 62 79 20 6C 69 6E 65 20 6E 75 ition by line nu
0022F0: 6D 62 65 72 20 61 6E 64 20 77 69 6C 64 20 63 61 mber and wild ca
002300: 69 73 2C 20 6F 70 65 6E 20 66 69 6C 65 2C 0D 0A is, open file,..
002310: 09 63 6F 6D 70 2F 65 78 69 74 2C 20 65 74 63 29 .comp/exit, etc)
002320: 2E 0D 0A 45 44 49 54 53 54 41 54 09 50 69 63 6B ...EDITSTAT.Pick
002330: 73 20 75 70 20 74 68 65 20 66 69 6C 65 20 70 6F s up the file po
002340: 73 69 74 69 6F 6E 20 66 6F 72 20 61 20 66 69 6C sition for a fil
002350: 65 20 77 68 65 6E 20 69 74 27 73 20 6F 70 65 6E e when it's open
002360: 65 64 2E 0D 0A 4D 41 43 52 4F 53 09 09 48 61 6E ed...MACROS..Han
002370: 64 6C 65 73 20 6D 61 63 72 6F 20 65 78 70 61 6E dles macro expan
002380: 73 69 6F 6E 20 61 6E 64 20 64 65 66 69 6E 69 74 sion and definit
002390: 69 6F 6E 2C 20 69 6E 63 6C 75 64 69 6E 67 20 74 ion, including t
0023A0: 68 65 0D 0A 09 6C 65 61 72 6E 20 6D 6F 64 65 2E he...learn mode.
0023B0: 20 20 4D 61 6B 65 73 20 61 6E 64 20 73 61 76 65 Makes and save
0023C0: 73 20 74 68 65 6D 20 22 6F 6E 20 74 68 65 20 66 s them "on the f
0023D0: 6C 79 22 20 64 75 72 69 6E 67 20 65 64 69 74 73 ly" during edits
0023E0: 2C 20 74 6F 6F 2E 0D 0A 53 45 54 55 50 43 41 4C , too...SETUPCAL
0023F0: 20 20 20 20 20 20 20 20 45 64 69 74 6F 72 20 75 Editor u
002400: 73 65 73 20 74 68 69 73 20 6D 6F 64 75 6C 65 20 ses this module
002410: 74 6F 20 63 61 6C 6C 20 74 68 65 20 63 6F 6D 70 to call the comp
002420: 69 6C 65 72 73 2E 20 20 53 65 65 0D 0A 09 61 6C ilers. See...al
002430: 73 6F 20 74 68 65 20 6D 6F 64 75 6C 65 20 43 48 so the module CH
002440: 41 49 4E 20 66 6F 72 20 61 6E 6F 74 68 65 72 20 AIN for another
002450: 65 78 61 6D 70 6C 65 20 6F 66 20 74 68 69 73 2E example of this.
002460: 0D 0D 0A 09 4E 6F 74 65 20 66 6F 72 20 75 73 65 ....Note for use
002470: 72 73 20 6F 72 20 61 62 75 73 65 72 73 20 6F 66 rs or abusers of
002480: 20 64 75 6D 62 20 74 65 72 6D 69 6E 61 6C 73 2E dumb terminals.
002490: 0D 0A 0D 0A 59 6F 75 20 6D 75 73 74 20 72 65 6E ....You must ren
0024A0: 61 6D 65 20 45 44 49 54 43 4F 4E 54 2E 44 4D 42 ame EDITCONT.DMB
0024B0: 20 61 6E 64 20 45 44 49 54 44 49 53 50 2E 44 4D and EDITDISP.DM
0024C0: 42 20 74 6F 20 65 6E 64 20 69 6E 20 2E 4D 4F 44 B to end in .MOD
0024D0: 20 62 65 66 6F 72 65 0D 0A 72 65 63 6F 6D 70 69 before..recompi
0024E0: 6C 69 6E 67 20 74 68 65 20 64 75 6D 62 20 65 64 ling the dumb ed
0024F0: 69 74 6F 72 20 28 77 69 74 68 6F 75 74 20 69 6E itor (without in
002500: 72 64 73 2E 0D 0D 0A 09 09 53 65 65 20 74 68 65 rds......See the
002510: 20 66 69 6C 65 20 43 41 54 2E 4D 4F 44 20 61 6E file CAT.MOD an
002520: 64 20 74 68 65 20 64 6F 63 75 6D 65 6E 74 61 74 d the documentat
002530: 69 6F 6E 20 62 65 6C 6F 77 2E 0D 0D 0A 0D 0D 0A ion below.......
002540: 50 41 54 54 45 52 4E 09 09 54 68 69 73 20 69 73 PATTERN..This is
002550: 20 61 20 70 61 74 74 65 72 6E 20 6D 61 74 63 68 a pattern match
002560: 69 6E 67 20 6D 6F 64 75 6C 65 20 77 68 69 63 68 ing module which
002570: 20 6D 61 74 63 68 65 73 20 63 6F 6D 70 6C 65 78 matches complex
002580: 0D 0A 09 09 28 65 76 65 6E 20 72 65 63 75 72 73 ....(even recurs
002590: 69 76 65 21 29 20 70 61 74 74 65 72 6E 73 2E 20 ive!) patterns.
0025A0: 20 53 65 65 20 50 41 54 54 45 52 4E 2E 44 45 46 See PATTERN.DEF
0025B0: 20 66 6F 72 20 64 65 73 63 72 69 70 74 69 6F 6E for description
0025C0: 0D 0A 09 09 6F 66 20 75 73 65 2C 20 61 6E 64 20 ....of use, and
0025D0: 54 65 73 74 50 61 74 2E 4D 4F 44 20 61 73 20 61 TestPat.MOD as a
0025E0: 6E 20 65 78 61 6D 70 6C 65 2E 0D 0D 0A 53 43 52 n example....SCR
0025F0: 45 45 4E 49 4F 09 54 68 65 20 73 63 72 65 65 6E EENIO.The screen
002600: 20 69 6E 70 75 74 2D 6F 75 74 70 75 74 20 72 6F input-output ro
002610: 75 74 69 6E 65 73 20 75 73 65 64 20 62 79 20 74 utines used by t
002620: 68 65 20 65 64 69 74 6F 72 2E 20 20 54 68 65 0D he editor. The.
002630: 0A 09 09 73 74 61 6E 64 61 72 64 20 76 65 72 73 ...standard vers
002640: 69 6F 6E 20 6F 66 20 53 63 72 65 65 6E 49 4F 20 ion of ScreenIO
002650: 28 53 43 52 45 45 4E 49 4F 2E 4D 4F 44 29 2C 20 (SCREENIO.MOD),
002660: 70 6C 75 73 20 73 6F 6D 65 20 6D 65 6D 6F 72 79 plus some memory
002670: 0D 0A 09 09 6D 61 70 70 65 64 20 76 65 72 73 69 ....mapped versi
002680: 6F 6E 73 20 61 72 65 20 73 75 70 70 6C 69 65 64 ons are supplied
002690: 2E 20 20 53 43 52 45 45 4E 49 4F 2E 4F 53 42 20 . SCREENIO.OSB
0026A0: 69 73 20 66 6F 72 20 74 68 65 20 4F 73 62 6F 72 is for the Osbor
0026B0: 6E 65 0D 0A 09 09 31 2C 20 53 43 52 45 45 4E 49 ne....1, SCREENI
0026C0: 4F 2E 4D 42 45 20 69 73 20 66 6F 72 20 74 68 65 O.MBE is for the
0026D0: 20 4D 69 63 72 6F 42 65 65 2C 20 61 6E 64 20 53 MicroBee, and S
0026E0: 43 52 45 45 4E 49 4F 2E 45 41 52 20 69 73 20 66 CREENIO.EAR is f
0026F0: 6F 72 0D 0A 09 09 74 68 65 20 45 61 72 74 68 20 or....the Earth
002700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
002710: 02 00 01 00 02 09 52 E5 02 00 C9 02 00 00 00 02 ......R.........
002720: 02 00 C5 02 00 00 00 02 02 00 C1 02 00 00 00 02 ................
002730: 02 00 C6 02 00 00 00 02 02 00 C2 02 00 00 00 02 ................
002740: 02 00 C7 02 00 00 00 02 02 00 C3 02 00 00 00 02 ................
002750: 02 00 C8 02 00 00 00 02 02 00 C4 02 00 00 00 02 ................
002760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002800: 6E 74 65 72 2E 20 20 54 68 65 73 65 20 61 72 65 nter. These are
002810: 20 76 65 72 79 20 6E 65 61 72 20 74 68 65 20 62 very near the b
002820: 65 67 69 6E 6E 69 6E 67 20 6F 66 20 74 68 65 0D eginning of the.
002830: 0A 70 72 6F 67 72 61 6D 20 28 73 65 65 20 74 68 .program (see th
002840: 65 20 2E 4D 4F 44 20 66 69 6C 65 29 2E 20 20 45 e .MOD file). E
002850: 61 63 68 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 ach control code
002860: 20 63 61 6E 20 62 65 20 75 70 20 74 6F 20 38 20 can be up to 8
002870: 63 68 61 72 61 63 74 65 72 73 20 6C 6F 6E 67 0D characters long.
002880: 0A 61 6E 64 20 69 73 20 74 65 72 6D 69 6E 61 74 .and is terminat
002890: 65 64 20 62 79 20 61 20 76 61 6C 75 65 20 6F 66 ed by a value of
0028A0: 20 30 20 69 66 20 6C 65 73 73 20 74 68 61 6E 20 0 if less than
0028B0: 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 72 characters are r
0028C0: 65 71 75 69 72 65 64 2E 0D 0A 4E 61 74 75 72 61 equired...Natura
0028D0: 6C 6C 79 2C 20 79 6F 75 20 6D 61 79 20 61 6C 73 lly, you may als
0028E0: 6F 20 63 68 61 6E 67 65 20 74 68 65 20 2E 43 4F o change the .CO
0028F0: 4D 20 66 69 6C 65 2E 0D 0D 0A 54 68 65 20 63 6F M file....The co
002900: 6E 74 72 6F 6C 20 63 68 61 72 61 63 74 65 72 73 ntrol characters
002910: 20 69 6E 20 74 68 65 20 73 75 70 70 6C 69 65 64 in the supplied
002920: 20 70 72 6F 67 72 61 6D 20 61 72 65 20 73 65 74 program are set
002930: 20 66 6F 72 20 61 20 53 54 41 52 20 44 50 53 35 for a STAR DPS5
002940: 31 30 2C 0D 0A 77 68 69 63 68 20 69 73 20 73 75 10,..which is su
002950: 70 70 6F 73 65 64 20 74 6F 20 62 65 20 45 70 73 pposed to be Eps
002960: 6F 6E 20 63 6F 6D 70 61 74 69 62 6C 65 2C 20 73 on compatible, s
002970: 6F 20 74 68 65 20 70 72 6F 67 72 61 6D 20 6D 61 o the program ma
002980: 79 20 77 65 6C 6C 20 72 75 6E 20 27 61 73 20 69 y well run 'as i
002990: 73 27 0D 0A 6F 6E 20 45 70 73 6F 6E 73 20 61 6E s'..on Epsons an
0029A0: 64 20 45 70 73 6F 6E 20 63 6C 6F 6E 65 73 2E 0D d Epson clones..
0029B0: 0A 0D 0A 48 6F 77 20 74 68 65 20 70 72 6F 67 72 ...How the progr
0029C0: 61 6D 20 77 6F 72 6B 73 0D 0A 3D 3D 3D 3D 3D 3D am works..======
0029D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ===============.
0029E0: 0A 0D 0A 46 6F 72 20 65 61 63 68 20 6C 69 6E 65 ...For each line
0029F0: 2C 20 61 20 68 61 73 68 20 74 6F 74 61 6C 20 69 , a hash total i
002A00: 67 65 20 6D 6F 64 65 2E 20 20 4D 75 6C 74 69 70 ge mode. Multip
002A10: 6C 65 20 63 6F 6D 6D 61 6E 64 73 20 6D 61 79 0D le commands may.
002A20: 0A 62 65 20 70 6C 61 63 65 64 20 6F 6E 20 61 20 .be placed on a
002A30: 6C 69 6E 65 2E 20 20 54 68 65 20 63 6F 6D 6D 61 line. The comma
002A40: 6E 64 73 20 61 72 65 3A 0D 0A 3F 20 20 20 20 20 nds are:..?
002A50: 20 20 20 20 20 20 20 20 20 44 69 73 70 6C 61 79 Display
002A60: 20 73 6F 6D 65 20 68 65 6C 70 20 69 6E 66 6F 72 some help infor
002A70: 6D 61 74 69 6F 6E 2E 0D 0A 6E 75 6D 62 65 72 20 mation...number
002A80: 20 20 20 20 20 20 20 20 52 65 73 74 61 72 74 20 Restart
002A90: 6C 69 73 74 69 6E 67 20 66 72 6F 6D 20 67 69 76 listing from giv
002AA0: 65 6E 20 6C 69 6E 65 20 6E 75 6D 62 65 72 2E 0D en line number..
002AB0: 0A 2B 20 6F 72 20 2D 20 6E 75 6D 62 65 72 20 20 .+ or - number
002AC0: 41 64 76 61 6E 63 65 20 28 6F 72 20 72 65 74 69 Advance (or reti
002AD0: 72 65 29 20 62 79 20 74 68 65 20 67 69 76 65 6E re) by the given
002AE0: 20 6E 75 6D 62 65 72 20 6F 66 20 6C 69 6E 65 73 number of lines
002AF0: 2E 0D 0A 2F 73 74 72 69 6E 67 2F 20 20 20 20 20 .../string/
002B00: 20 20 52 65 73 74 61 72 74 20 6C 69 73 74 69 6E Restart listin
002B10: 67 20 66 72 6F 6D 20 6E 65 78 74 20 6F 63 63 75 g from next occu
002B20: 72 65 6E 63 65 20 6F 66 20 73 74 72 69 6E 67 2E rence of string.
002B30: 20 54 68 65 20 64 65 6C 69 6D 69 74 65 72 73 0D The delimiters.
002B40: 0A 09 63 61 6E 20 62 65 20 61 6E 79 20 70 72 69 ..can be any pri
002B50: 6E 74 69 6E 67 20 6E 6F 6E 2D 61 6C 70 68 61 6E nting non-alphan
002B60: 75 6D 65 72 69 63 20 63 68 61 72 61 63 74 65 72 umeric character
002B70: 2E 0D 0A 0D 0A 41 20 6E 75 6D 62 65 72 20 61 6E .....A number an
002B80: 64 20 61 20 73 65 61 72 63 68 20 73 74 72 69 6E d a search strin
002B90: 67 20 63 61 6E 20 62 65 20 63 6F 6D 62 69 6E 65 g can be combine
002BA0: 64 20 74 6F 20 73 65 61 72 63 68 20 66 72 6F 6D d to search from
002BB0: 20 61 0D 0A 67 69 76 65 6E 20 6C 69 6E 65 20 6E a..given line n
002BC0: 75 6D 62 65 72 2E 20 20 49 66 20 6E 6F 20 73 74 umber. If no st
002BD0: 72 69 6E 67 20 69 73 20 65 6E 74 65 72 65 64 20 ring is entered
002BE0: 28 22 2F 2F 22 29 2C 20 74 68 65 0D 0A 70 72 65 ("//"), the..pre
002BF0: 76 69 6F 75 73 6C 79 20 65 6E 74 65 72 65 64 20 viously entered
002C00: 75 74 0D 0A 09 45 78 70 61 6E 64 20 74 61 62 73 ut...Expand tabs
002C10: 20 74 6F 20 73 70 61 63 65 73 0D 0A 09 57 72 61 to spaces...Wra
002C20: 70 20 6C 69 6E 65 73 20 66 6F 72 20 6C 69 73 74 p lines for list
002C30: 69 6E 67 20 74 6F 20 74 65 72 6D 69 6E 61 6C 73 ing to terminals
002C40: 20 77 69 74 68 6F 75 74 20 61 75 74 6F 2D 6C 69 without auto-li
002C50: 6E 65 20 77 72 61 70 0D 0A 09 52 65 70 6F 73 69 ne wrap...Reposi
002C60: 74 69 6F 6E 20 62 79 20 6C 69 6E 65 20 6E 75 6D tion by line num
002C70: 62 65 72 20 6F 72 20 62 79 20 73 74 72 69 6E 67 ber or by string
002C80: 20 73 65 61 72 63 68 0D 0A 09 55 73 65 20 77 69 search...Use wi
002C90: 6C 64 20 63 61 72 64 73 20 6F 6E 20 74 68 65 20 ld cards on the
002CA0: 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 0D 0A 09 53 command line...S
002CB0: 65 65 20 6E 6F 6E 2D 70 72 69 6E 74 69 6E 67 20 ee non-printing
002CC0: 63 68 61 72 61 63 74 65 72 73 20 69 6E 20 68 65 characters in he
002CD0: 78 20 28 6F 74 68 65 72 20 74 68 61 6E 20 43 52 x (other than CR
002CE0: 2F 4C 46 2F 54 41 42 29 0D 0A 0D 0A 43 41 54 20 /LF/TAB)....CAT
002CF0: 69 73 20 6E 6F 74 20 61 20 43 50 2F 4D 20 69 6D is not a CP/M im
002D00: 70 6C 65 6D 65 6E 74 61 74 69 6F 6E 20 6F 66 20 plementation of
002D10: 74 68 65 20 63 61 74 20 70 72 6F 67 72 61 6D 20 the cat program
002D20: 6F 6E 20 55 4E 49 58 3B 20 69 74 20 69 73 20 6D on UNIX; it is m
002D30: 6F 72 65 20 6C 69 6B 65 0D 0A 55 4E 49 58 27 73 ore like..UNIX's
002D40: 20 4D 4F 52 45 2E 0D 0A 0D 0A 54 6F 20 72 75 6E MORE.....To run
002D50: 20 74 68 65 20 70 72 6F 67 72 61 6D 3A 0D 0A 0D the program:...
002D60: 0A 09 43 41 54 20 20 20 66 69 6C 65 20 6C 69 73 ..CAT file lis
002D70: 74 20 2F 6F 70 74 69 6F 6E 73 0D 0A 6F 72 0D 0A t /options..or..
002D80: 09 43 41 54 20 20 20 66 69 6C 65 20 6C 69 73 74 .CAT file list
002D90: 20 5B 6F 70 74 69 6F 6E 73 0D 0A 0D 0A 54 68 65 [options....The
002DA0: 20 6F 70 74 69 6F 6E 73 20 6D 61 79 20 61 6C 73 options may als
002DB0: 6F 20 62 65 20 6F 6D 69 74 74 65 64 2E 20 20 54 o be omitted. T
002DC0: 68 65 20 22 66 69 6C 65 20 6C 69 73 74 22 20 69 he "file list" i
002DD0: 73 20 61 20 6C 69 73 74 20 6F 66 20 66 69 6C 65 s a list of file
002DE0: 20 6E 61 6D 65 73 20 6F 72 0D 0A 77 69 6C 64 20 names or..wild
002DF0: 63 61 72 64 73 20 77 68 69 63 68 20 6D 61 74 63 cards which matc
002E00: 73 74 72 69 6E 67 20 69 73 20 73 65 61 72 63 68 string is search
002E10: 65 64 20 66 6F 72 20 61 67 61 69 6E 2E 0D 0A 0D ed for again....
002E20: 0A 4E 09 09 54 6F 67 67 6C 65 20 6C 69 6E 65 20 .N..Toggle line
002E30: 6E 75 6D 62 65 72 69 6E 67 20 6F 70 74 69 6F 6E numbering option
002E40: 2E 0D 0A 49 09 09 54 6F 67 67 6C 65 20 74 61 62 ...I..Toggle tab
002E50: 20 65 78 70 61 6E 73 69 6F 6E 20 6F 70 74 69 6F expansion optio
002E60: 6E 2E 0D 0A 57 09 09 54 6F 67 67 6C 65 20 73 6F n...W..Toggle so
002E70: 66 74 77 61 72 65 20 6C 69 6E 65 20 77 72 61 70 ftware line wrap
002E80: 20 6F 70 74 69 6F 6E 2E 20 20 49 66 20 74 68 65 option. If the
002E90: 20 57 20 69 73 20 66 6F 6C 6C 6F 77 65 64 20 62 W is followed b
002EA0: 79 20 61 0D 0A 09 6E 75 6D 62 65 72 2C 20 74 68 y a...number, th
002EB0: 65 20 6E 75 6D 62 65 72 20 72 65 73 65 74 73 20 e number resets
002EC0: 74 68 65 20 73 63 72 65 65 6E 20 77 69 64 74 68 the screen width
002ED0: 2E 0D 0A 50 09 09 54 6F 67 67 6C 65 20 70 61 67 ...P..Toggle pag
002EE0: 65 20 6D 6F 64 65 2E 20 49 66 20 74 68 65 20 50 e mode. If the P
002EF0: 20 69 73 20 66 6F 6C 6C 6F 77 65 64 20 79 20 61 is followed y a
002F00: 20 6E 75 6D 62 65 72 2C 20 69 74 20 72 65 73 65 number, it rese
002F10: 74 73 0D 0A 09 74 68 65 20 70 61 67 65 20 6C 65 ts...the page le
002F20: 6E 67 74 68 2E 20 20 4E 6F 74 65 20 74 68 61 74 ngth. Note that
002F30: 20 74 68 65 20 66 69 72 73 74 20 50 20 6F 6E 20 the first P on
002F40: 61 6E 79 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 any command line
002F50: 0D 0A 09 61 6C 77 61 79 73 20 63 61 75 73 65 73 ...always causes
002F60: 20 70 61 67 65 20 6D 6F 64 65 20 74 6F 20 62 65 page mode to be
002F70: 20 63 6C 65 61 72 65 64 2C 20 61 73 20 70 61 67 cleared, as pag
002F80: 65 20 6D 6F 64 65 20 69 73 20 61 6C 77 61 79 73 e mode is always
002F90: 0D 0A 09 65 6E 61 62 6C 65 64 20 77 68 65 6E 20 ...enabled when
002FA0: 74 68 65 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 the command line
002FB0: 20 69 73 20 70 72 6F 63 65 73 73 65 64 2E 20 20 is processed.
002FC0: 48 65 6E 63 65 2C 20 74 6F 20 6A 75 73 74 0D 0A Hence, to just..
002FD0: 09 63 68 61 6E 67 65 20 74 68 65 20 70 61 67 65 .change the page
002FE0: 20 6C 65 6E 67 74 68 2C 20 79 6F 75 20 6D 75 73 length, you mus
002FF0: 74 20 64 6F 20 50 32 30 50 20 28 73 61 79 29 2E t do P20P (say).
003000: 68 20 66 69 6C 65 20 6E 61 6D 65 73 2E 20 20 46 h file names. F
003010: 6F 72 20 65 78 61 6D 70 6C 65 3A 0D 0A 0D 0A 09 or example:.....
003020: 43 41 54 20 62 3A 2A 2E 64 65 66 20 62 3A 2A 2E CAT b:*.def b:*.
003030: 6D 6F 64 0D 0D 0A 77 69 6C 6C 20 6C 69 73 74 20 mod...will list
003040: 74 68 65 20 64 65 66 69 6E 69 74 69 6F 6E 20 66 the definition f
003050: 69 6C 65 73 2C 20 74 68 65 6E 20 74 68 65 20 6D iles, then the m
003060: 6F 64 75 6C 65 20 66 69 6C 65 73 2E 0D 0A 0D 0A odule files.....
003070: 41 6E 20 6F 70 74 69 6F 6E 20 69 73 20 7A 65 72 An option is zer
003080: 6F 20 6F 72 20 6D 6F 72 65 20 61 6C 70 68 61 62 o or more alphab
003090: 65 74 69 63 73 2E 20 20 53 6F 6D 65 20 6F 66 20 etics. Some of
0030A0: 74 68 65 20 61 6C 70 68 61 62 65 74 69 63 73 20 the alphabetics
0030B0: 6D 61 79 20 62 65 0D 0A 66 6F 6C 6C 6F 77 65 64 may be..followed
0030C0: 20 62 79 20 61 20 6E 75 6D 62 65 72 2E 20 20 49 by a number. I
0030D0: 66 20 61 20 6E 75 6D 62 65 72 20 69 73 20 69 6E f a number is in
0030E0: 63 6C 75 64 65 64 2C 20 69 74 20 6D 75 73 74 20 cluded, it must
0030F0: 69 6D 6D 65 64 69 61 74 65 6C 79 20 66 6F 6C 6C immediately foll
003100: 6F 77 0D 0A 74 68 65 20 6F 70 74 69 6F 6E 20 63 ow..the option c
003110: 68 61 72 61 63 74 65 72 2D 2D 69 74 20 6D 75 73 haracter--it mus
003120: 74 20 6E 6F 74 20 62 65 20 73 65 70 61 72 61 74 t not be separat
003130: 65 64 2E 0D 0A 0D 0A 54 68 65 20 6F 70 74 69 6F ed.....The optio
003140: 6E 73 20 61 72 65 3A 0D 0A 0D 0A 09 50 20 2D 20 ns are:.....P -
003150: 75 73 65 20 70 61 67 65 20 6D 6F 64 65 2E 20 20 use page mode.
003160: 41 74 20 74 68 65 20 65 6E 64 20 6F 66 20 65 76 At the end of ev
003170: 65 72 79 20 70 61 67 65 20 6F 66 20 6F 75 74 70 ery page of outp
003180: 75 74 2C 20 43 41 54 20 77 69 6C 6C 0D 0A 70 72 ut, CAT will..pr
003190: 6F 6D 70 74 20 66 6F 72 20 61 20 63 6F 6D 6D 61 ompt for a comma
0031A0: 6E 64 20 28 73 65 65 20 62 65 6C 6F 77 29 2E 20 nd (see below).
0031B0: 20 54 68 65 20 6F 70 74 69 6F 6E 20 6D 61 79 20 The option may
0031C0: 62 65 20 66 6F 6C 6C 6F 77 65 64 20 62 79 20 74 be followed by t
0031D0: 68 65 20 6E 75 6D 62 65 72 0D 0A 6F 66 20 6C 69 he number..of li
0031E0: 6E 65 73 20 74 6F 20 61 20 70 61 67 65 2E 20 20 nes to a page.
0031F0: 44 65 66 61 75 6C 74 20 6C 65 6E 67 74 68 20 69 Default length i
003200: 0D 0A 51 09 09 51 75 69 74 20 74 68 69 73 20 66 ..Q..Quit this f
003210: 69 6C 65 2E 0D 0A 43 74 72 6C 20 43 09 09 52 65 ile...Ctrl C..Re
003220: 74 75 72 6E 20 74 6F 20 43 50 2F 4D 2E 0D 0A 0D turn to CP/M....
003230: 0A 0D 0A 09 43 6F 6D 70 61 72 65 20 2D 20 63 6F ....Compare - co
003240: 6D 70 61 72 65 20 74 77 6F 20 41 73 63 69 69 20 mpare two Ascii
003250: 66 69 6C 65 73 20 6C 69 6E 65 20 62 79 20 6C 69 files line by li
003260: 6E 65 0D 0A 09 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ne...===========
003270: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003280: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003290: 3D 3D 3D 0D 0A 0D 0A 54 68 69 73 20 70 72 6F 67 ===....This prog
0032A0: 72 61 6D 20 64 69 73 70 6C 61 79 73 20 74 68 65 ram displays the
0032B0: 20 64 69 66 66 65 72 65 6E 63 65 73 20 62 65 74 differences bet
0032C0: 77 65 65 6E 20 74 77 6F 20 66 69 6C 65 73 2E 20 ween two files.
0032D0: 20 49 74 20 70 72 65 73 65 6E 74 73 20 74 68 65 It presents the
0032E0: 0D 0A 6F 75 74 70 75 74 20 69 6E 20 61 20 72 65 ..output in a re
0032F0: 61 73 6F 6E 61 62 6C 79 20 72 65 61 64 61 62 6C asonably readabl
003300: 65 20 66 6F 72 6D 20 28 69 74 20 77 6F 75 6C 64 e form (it would
003310: 20 6C 6F 6F 6B 20 62 65 61 75 74 20 6F 6E 20 61 look beaut on a
003320: 20 63 6F 6C 6F 75 72 20 70 72 69 6E 74 65 72 29 colour printer)
003330: 2E 0D 0A 54 68 65 20 70 72 6F 67 72 61 6D 20 69 ...The program i
003340: 73 20 62 61 73 65 64 20 6F 6E 20 61 20 6D 65 74 s based on a met
003350: 68 6F 64 20 64 65 73 63 72 69 62 65 64 20 62 79 hod described by
003360: 20 50 61 75 6C 20 48 65 63 6B 65 6C 20 69 6E 20 Paul Heckel in
003370: 27 41 20 54 65 63 68 6E 69 71 75 65 0D 0A 66 6F 'A Technique..fo
003380: 72 20 49 73 6F 6C 61 74 69 6E 67 20 44 69 66 66 r Isolating Diff
003390: 65 72 65 6E 63 65 73 20 62 65 74 77 65 65 6E 20 erences between
0033A0: 46 69 6C 65 73 27 2C 20 43 6F 6D 6D 75 6E 69 63 Files', Communic
0033B0: 61 74 69 6F 6E 73 20 6F 66 20 74 68 65 20 41 43 ations of the AC
0033C0: 4D 2C 20 56 6F 6C 20 32 31 0D 0A 4E 6F 20 34 2C M, Vol 21..No 4,
0033D0: 20 41 70 72 69 6C 20 31 39 37 38 2C 20 70 70 20 April 1978, pp
0033E0: 32 36 34 2D 32 36 38 2E 20 20 54 6F 20 72 75 6E 264-268. To run
0033F0: 20 74 68 65 20 70 72 6F 67 72 61 6D 3A 0D 0D 0A the program:...
003400: 73 20 32 34 2E 0D 09 57 20 2D 20 53 65 74 20 73 s 24...W - Set s
003410: 6F 66 74 77 61 72 65 20 6C 69 6E 65 20 77 72 61 oftware line wra
003420: 70 2E 20 20 4C 69 6E 65 73 20 6C 6F 6E 67 65 72 p. Lines longer
003430: 20 74 68 61 6E 20 74 68 65 20 6C 69 6E 65 20 77 than the line w
003440: 69 64 74 68 20 77 69 6C 6C 20 62 65 0D 0A 77 72 idth will be..wr
003450: 61 70 70 65 64 20 61 72 6F 75 6E 64 20 62 79 20 apped around by
003460: 74 68 65 20 73 6F 66 74 77 61 72 65 2E 20 20 54 the software. T
003470: 68 69 73 20 69 73 20 75 73 65 66 75 6C 20 69 66 his is useful if
003480: 20 79 6F 75 72 20 74 65 72 6D 69 6E 61 6C 20 77 your terminal w
003490: 69 6C 6C 20 6E 6F 74 0D 0A 70 65 72 66 6F 72 6D ill not..perform
0034A0: 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 20 77 hardware line w
0034B0: 72 61 70 73 2E 20 20 49 74 20 61 6C 73 6F 20 70 raps. It also p
0034C0: 72 65 76 65 6E 74 73 20 61 6E 79 20 74 65 78 74 revents any text
0034D0: 20 66 61 6C 6C 69 6E 67 20 6F 66 66 20 74 68 65 falling off the
0034E0: 20 74 6F 70 0D 0A 6F 66 20 73 63 72 65 65 6E 20 top..of screen
0034F0: 61 73 20 74 68 65 20 72 65 73 75 6C 74 20 6F 66 as the result of
003500: 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 20 77 hardware line w
003510: 72 61 70 73 2E 20 20 22 57 22 20 6D 61 79 20 62 raps. "W" may b
003520: 65 20 66 6F 6C 6C 6F 77 65 64 20 62 79 20 74 68 e followed by th
003530: 65 0D 0A 6E 75 6D 62 65 72 20 6F 66 20 63 6F 6C e..number of col
003540: 75 6D 6E 73 20 6F 6E 20 74 68 65 20 73 63 72 65 umns on the scre
003550: 65 6E 2E 20 20 44 65 66 61 75 6C 74 20 77 69 64 en. Default wid
003560: 74 68 20 69 73 20 38 30 2E 0D 0A 09 49 20 2D 20 th is 80....I -
003570: 45 78 70 61 6E 64 20 74 61 62 73 2E 20 20 54 61 Expand tabs. Ta
003580: 62 73 20 61 72 65 20 65 78 70 61 6E 64 65 64 20 bs are expanded
003590: 74 6F 20 61 6E 20 61 70 70 72 6F 70 72 69 61 74 to an appropriat
0035A0: 65 20 6E 75 6D 62 65 72 20 6F 66 20 73 70 61 63 e number of spac
0035B0: 65 73 2E 0D 0A 09 4E 20 2D 20 4E 75 6D 62 65 72 es....N - Number
0035C0: 20 6C 69 6E 65 73 2E 20 45 61 63 68 20 6C 69 6E lines. Each lin
0035D0: 65 20 69 73 20 70 72 65 63 65 64 65 64 20 62 79 e is preceded by
0035E0: 20 61 20 6C 69 6E 65 20 6E 75 6D 62 65 72 2E 0D a line number..
0035F0: 0A 0D 0A 45 78 61 6D 70 6C 65 73 3A 0D 0A 0D 0A ...Examples:....
003600: 09 43 4F 4D 50 41 52 45 20 6F 6C 64 20 66 69 6C .COMPARE old fil
003610: 65 2C 6E 65 77 20 66 69 6C 65 2C 5B 4C 69 73 74 e,new file,[List
003620: 20 66 69 6C 65 5D 0D 0A 0D 0A 54 68 65 20 74 68 file]....The th
003630: 69 72 64 20 66 69 6C 65 20 69 73 20 6F 70 74 69 ird file is opti
003640: 6F 6E 61 6C 2E 20 20 49 66 20 6F 6D 69 74 74 65 onal. If omitte
003650: 64 2C 20 74 68 65 20 6F 75 74 70 75 74 20 69 73 d, the output is
003660: 20 74 6F 20 74 68 65 20 70 72 69 6E 74 65 72 2E to the printer.
003670: 20 20 59 6F 75 0D 0A 63 61 6E 20 75 73 65 20 64 You..can use d
003680: 65 76 69 63 65 20 6E 61 6D 65 73 20 28 65 2E 67 evice names (e.g
003690: 2E 20 54 54 59 29 20 61 73 20 77 65 6C 6C 20 61 . TTY) as well a
0036A0: 73 20 64 69 73 63 20 66 69 6C 65 20 6E 61 6D 65 s disc file name
0036B0: 73 2E 0D 0A 0D 0A 54 68 65 20 74 77 6F 20 66 69 s.....The two fi
0036C0: 6C 65 73 20 61 72 65 20 63 6F 6D 70 61 72 65 64 les are compared
0036D0: 20 6C 69 6E 65 20 62 79 20 6C 69 6E 65 2E 20 20 line by line.
0036E0: 4C 69 6E 65 73 20 77 68 69 63 68 20 68 61 76 65 Lines which have
0036F0: 20 62 65 65 6E 20 64 65 6C 65 74 65 64 20 66 72 been deleted fr
003700: 6F 6D 0D 0A 74 68 65 20 6F 6C 64 20 66 69 6C 65 om..the old file
003710: 20 61 72 65 20 70 72 69 6E 74 65 64 20 69 6E 20 are printed in
003720: 69 74 61 6C 69 63 73 2E 20 20 49 6E 73 65 72 74 italics. Insert
003730: 65 64 20 6C 69 6E 65 73 20 61 72 65 20 70 72 69 ed lines are pri
003740: 6E 74 65 64 20 69 6E 20 62 6F 6C 64 2E 0D 0A 4C nted in bold...L
003750: 69 6E 65 73 20 77 68 69 63 68 20 68 61 76 65 20 ines which have
003760: 62 65 65 6E 20 6D 6F 76 65 64 20 74 6F 20 61 20 been moved to a
003770: 6E 65 77 20 70 6F 73 69 74 69 6F 6E 20 61 72 65 new position are
003780: 20 70 72 69 6E 74 65 64 20 69 6E 20 74 68 65 69 printed in thei
003790: 72 20 6E 65 77 0D 0A 70 6F 73 69 74 69 6F 6E 20 r new..position
0037A0: 73 75 72 72 6F 75 6E 64 65 64 20 62 79 20 6C 69 surrounded by li
0037B0: 6E 65 73 20 6F 66 20 61 73 74 65 72 69 73 6B 73 nes of asterisks
0037C0: 2E 20 20 59 6F 75 20 6D 61 79 20 6E 65 65 64 20 . You may need
0037D0: 74 6F 20 70 61 74 63 68 20 74 68 65 20 70 72 69 to patch the pri
0037E0: 6E 74 65 72 0D 0A 63 6F 6E 74 72 6F 6C 20 63 6F nter..control co
0037F0: 64 65 73 20 66 6F 72 20 79 6F 75 72 20 70 72 69 des for your pri
003800: 09 43 41 54 20 20 62 3A 2A 2E 64 65 66 2F 4E 50 .CAT b:*.def/NP
003810: 0D 0A 0D 0A 55 73 65 20 70 61 67 65 20 6D 6F 64 ....Use page mod
003820: 65 20 61 6E 64 20 6E 75 6D 62 65 72 20 74 68 65 e and number the
003830: 20 6C 69 6E 65 73 2E 0D 0A 0D 0A 09 43 41 54 20 lines......CAT
003840: 20 62 3A 2A 2E 64 65 66 2F 50 31 36 57 36 34 4E b:*.def/P16W64N
003850: 0D 0A 0D 0A 55 73 65 20 70 61 67 65 20 6D 6F 64 ....Use page mod
003860: 65 20 61 6E 64 20 73 6F 66 74 77 61 72 65 20 77 e and software w
003870: 72 61 70 20 77 69 74 68 20 70 61 67 65 6C 65 6E rap with pagelen
003880: 67 74 68 20 31 36 20 61 6E 64 20 77 69 64 74 68 gth 16 and width
003890: 20 36 34 2E 0D 0A 0D 0A 09 09 43 41 54 20 43 6F 64.......CAT Co
0038A0: 6D 6D 61 6E 64 73 0D 0A 0D 0A 41 74 20 74 68 65 mmands....At the
0038B0: 20 65 6E 64 20 6F 66 20 61 20 70 61 67 65 20 6F end of a page o
0038C0: 66 20 6F 75 74 70 75 74 20 69 6E 20 70 61 67 65 f output in page
0038D0: 20 6D 6F 64 65 2C 20 43 61 74 20 77 69 6C 6C 20 mode, Cat will
0038E0: 73 74 6F 70 20 61 6E 64 20 61 73 6B 20 66 6F 72 stop and ask for
0038F0: 20 61 0D 0A 63 6F 6D 6D 61 6E 64 2E 20 20 59 6F a..command. Yo
003900: 75 20 6D 61 79 20 74 68 65 6E 20 65 6E 74 65 72 u may then enter
003910: 20 61 6E 79 20 6F 66 20 74 68 65 20 63 6F 6D 6D any of the comm
003920: 61 6E 64 73 20 64 65 73 63 72 69 62 65 64 20 62 ands described b
003930: 65 6C 6F 77 2E 0D 0A 49 6E 20 66 61 63 74 2C 20 elow...In fact,
003940: 79 6F 75 20 63 61 6E 20 65 6E 74 65 72 20 61 20 you can enter a
003950: 63 6F 6D 6D 61 6E 64 20 63 68 61 72 61 63 74 65 command characte
003960: 72 20 61 74 20 61 6E 79 20 74 69 6D 65 2E 20 20 r at any time.
003970: 57 68 65 6E 20 43 61 74 20 64 65 74 65 72 6D 69 When Cat determi
003980: 6E 65 73 0D 0A 74 68 61 74 20 61 20 63 68 61 72 nes..that a char
003990: 61 63 74 65 72 20 68 61 73 20 62 65 65 6E 20 74 acter has been t
0039A0: 79 70 65 64 2C 20 69 74 20 77 69 6C 6C 20 62 72 yped, it will br
0039B0: 69 6E 67 20 75 70 20 74 68 65 20 27 43 6F 6D 6D ing up the 'Comm
0039C0: 61 6E 64 20 20 3A 27 20 70 72 6F 6D 70 74 2C 0D and :' prompt,.
0039D0: 0A 64 69 73 70 6C 61 79 20 74 68 65 20 63 68 61 .display the cha
0039E0: 72 61 63 74 65 72 20 79 6F 75 20 74 79 70 65 64 racter you typed
0039F0: 2C 20 61 6E 64 20 67 6F 20 69 6E 74 6F 20 70 61 , and go into pa
003A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
003A10: 03 00 01 00 02 09 52 E5 03 00 C9 02 00 00 00 02 ......R.........
003A20: 03 00 C5 02 00 00 00 02 03 00 C1 02 00 00 00 02 ................
003A30: 03 00 C6 02 00 00 00 02 03 00 C2 02 00 00 00 02 ................
003A40: 03 00 C7 02 00 00 00 02 03 00 C3 02 00 00 00 02 ................
003A50: 03 00 C8 02 00 00 00 02 03 00 C4 02 00 00 00 02 ................
003A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003D00: 6E 73 69 6F 6E 2E 0D 0A 4F 70 74 69 6F 6E 61 6C nsion...Optional
003D10: 6C 79 2C 20 79 6F 75 20 6D 61 79 20 63 72 65 61 ly, you may crea
003D20: 74 65 20 61 20 66 69 6C 65 20 63 6F 6E 74 61 69 te a file contai
003D30: 6E 69 6E 67 20 61 20 6C 69 73 74 20 6F 66 20 74 ning a list of t
003D40: 68 65 20 66 69 6C 65 20 6E 61 6D 65 73 20 61 64 he file names ad
003D50: 64 65 64 2C 0D 0A 64 65 6C 65 74 65 64 20 6F 72 ded,..deleted or
003D60: 20 6D 61 74 63 68 69 6E 67 2E 0D 0A 0D 0A 54 68 matching.....Th
003D70: 65 20 63 6F 6D 6D 61 6E 64 20 74 6F 20 63 61 6C e command to cal
003D80: 6C 20 74 68 65 20 70 72 6F 67 72 61 6D 20 74 61 l the program ta
003D90: 6B 65 73 20 74 68 65 20 66 6F 72 6D 3A 0D 0A 0D kes the form:...
003DA0: 0A 09 43 4F 4D 50 44 49 52 20 77 69 6C 64 20 63 ..COMPDIR wild c
003DB0: 61 72 64 2C 20 77 69 6C 64 20 63 61 72 64 20 5B ard, wild card [
003DC0: 2C 20 6C 69 73 74 20 66 69 6C 65 5D 20 5B 2F 6F , list file] [/o
003DD0: 70 74 69 6F 6E 73 5D 0D 0A 0D 0A 57 68 65 72 65 ptions]....Where
003DE0: 20 65 61 63 68 20 77 69 6C 64 20 63 61 72 64 20 each wild card
003DF0: 70 72 6F 64 75 63 65 73 20 6F 6E 65 20 6F 66 20 produces one of
003E00: 74 68 65 20 6C 69 73 74 73 20 74 6F 20 63 6F 6D the lists to com
003E10: 70 61 72 65 2E 0D 0A 0D 0A 54 6F 20 63 6F 6D 70 pare.....To comp
003E20: 61 72 65 20 74 77 6F 20 64 69 73 63 73 3A 0D 0A are two discs:..
003E30: 0D 0A 09 43 4F 4D 50 44 49 52 20 61 3A 2A 2E 2A ...COMPDIR a:*.*
003E40: 20 62 3A 2A 2E 2A 0D 0A 0D 0A 4F 70 74 69 6F 6E b:*.*....Option
003E50: 73 20 61 72 65 20 61 6E 79 20 6F 66 20 74 68 65 s are any of the
003E60: 20 66 6F 6C 6C 6F 77 69 6E 67 3A 0D 0A 0D 0A 54 following:....T
003E70: 09 43 6F 6D 70 61 72 65 20 6F 6E 6C 79 20 66 69 .Compare only fi
003E80: 6C 65 20 65 78 74 65 6E 73 69 6F 6E 20 28 62 79 le extension (by
003E90: 20 64 65 66 61 75 6C 74 2C 20 74 68 65 20 77 68 default, the wh
003EA0: 6F 6C 65 20 6E 61 6D 65 20 69 73 20 63 6F 6D 70 ole name is comp
003EB0: 61 72 65 64 29 2E 0D 0A 4E 09 63 6F 6D 70 61 72 ared)...N.compar
003EC0: 65 20 6F 6E 6C 79 20 66 69 6C 65 20 6E 61 6D 65 e only file name
003ED0: 2D 2D 62 61 73 65 20 6E 61 6D 65 2C 20 6D 69 6E --base name, min
003EE0: 75 73 20 74 68 65 20 65 78 74 65 6E 73 69 6F 6E us the extension
003EF0: 2E 0D 0A 0D 0A 54 20 61 6E 64 20 4E 20 61 72 65 .....T and N are
003F00: 73 20 63 61 6C 63 75 6C 61 74 65 64 2E 20 20 54 s calculated. T
003F10: 68 65 6E 20 74 68 65 20 75 6E 69 71 75 65 20 6C hen the unique l
003F20: 69 6E 65 73 20 69 6E 20 65 61 63 68 20 66 69 6C ines in each fil
003F30: 65 0D 0A 61 72 65 20 69 64 65 6E 74 69 66 69 65 e..are identifie
003F40: 64 2E 20 20 57 68 65 6E 20 61 20 75 6E 69 71 75 d. When a uniqu
003F50: 65 20 6C 69 6E 65 20 6D 61 74 63 68 65 73 20 61 e line matches a
003F60: 20 75 6E 69 71 75 65 20 6C 69 6E 65 20 69 6E 20 unique line in
003F70: 74 68 65 20 73 65 63 6F 6E 64 20 66 69 6C 65 2C the second file,
003F80: 0D 0A 74 68 65 20 74 77 6F 20 6C 69 6E 65 73 20 ..the two lines
003F90: 61 72 65 20 63 72 6F 73 73 2D 6C 69 6E 6B 65 64 are cross-linked
003FA0: 2E 0D 0A 0D 0A 4E 65 78 74 2C 20 6C 69 6E 65 73 .....Next, lines
003FB0: 20 61 64 6A 61 63 65 6E 74 20 74 6F 20 63 72 6F adjacent to cro
003FC0: 73 73 2D 6C 69 6E 6B 65 64 20 6C 69 6E 65 73 20 ss-linked lines
003FD0: 61 72 65 20 63 6F 6D 70 61 72 65 64 20 61 6E 64 are compared and
003FE0: 2C 20 69 66 20 69 64 65 6E 74 69 63 61 6C 2C 0D , if identical,.
003FF0: 0A 74 68 65 79 20 61 72 65 20 6C 69 6E 6B 65 64 .they are linked
004000: 2E 20 20 54 68 69 73 20 67 72 6F 77 73 20 74 68 . This grows th
004010: 65 20 61 72 65 61 20 6F 66 20 6C 69 6E 6B 69 6E e area of linkin
004020: 67 20 6F 75 74 77 61 72 64 73 20 66 72 6F 6D 20 g outwards from
004030: 70 61 69 72 73 20 6F 66 20 0D 0A 6D 61 74 63 68 pairs of ..match
004040: 69 6E 67 20 75 6E 69 71 75 65 20 6C 69 6E 65 73 ing unique lines
004050: 20 28 61 6E 64 20 61 6C 73 6F 20 66 72 6F 6D 20 (and also from
004060: 74 68 65 20 62 65 67 69 6E 6E 69 6E 67 20 61 6E the beginning an
004070: 64 20 65 6E 64 20 6F 66 20 74 68 65 20 66 69 6C d end of the fil
004080: 65 73 29 20 75 6E 74 69 6C 0D 0A 61 73 20 6D 61 es) until..as ma
004090: 6E 79 20 6C 69 6E 65 73 20 61 73 20 70 6F 73 73 ny lines as poss
0040A0: 69 62 6C 65 20 68 61 76 65 20 62 65 65 6E 20 63 ible have been c
0040B0: 72 6F 73 73 2D 6C 69 6E 6B 65 64 2E 0D 0A 0D 0A ross-linked.....
0040C0: 46 69 6E 61 6C 6C 79 20 74 68 65 20 74 65 78 74 Finally the text
0040D0: 20 69 73 20 73 63 61 6E 6E 65 64 20 61 6E 64 20 is scanned and
0040E0: 70 72 69 6E 74 65 64 20 6F 75 74 2E 20 20 4C 69 printed out. Li
0040F0: 6E 65 73 20 69 6E 20 74 68 65 20 6E 65 77 20 66 nes in the new f
004100: 20 6D 75 74 75 61 6C 6C 79 20 65 78 63 6C 75 73 mutually exclus
004110: 69 76 65 2E 0D 0A 0D 0A 43 09 49 66 20 66 69 6C ive.....C.If fil
004120: 65 20 6E 61 6D 65 73 20 6D 61 74 63 68 2C 20 63 e names match, c
004130: 6F 6D 70 61 72 65 20 74 68 65 20 66 69 6C 65 20 ompare the file
004140: 63 6F 6E 74 65 6E 74 73 20 61 73 20 77 65 6C 6C contents as well
004150: 2E 0D 0A 45 09 4F 75 74 70 75 74 20 66 69 6C 65 ...E.Output file
004160: 20 6E 61 6D 65 73 20 77 68 69 63 68 20 6D 61 74 names which mat
004170: 63 68 20 74 6F 20 6C 69 73 74 20 66 69 6C 65 2E ch to list file.
004180: 0D 0A 41 09 4F 75 74 70 75 74 20 66 69 6C 65 20 ..A.Output file
004190: 6E 61 6D 65 73 20 77 68 69 63 68 20 68 61 76 65 names which have
0041A0: 20 62 65 65 6E 20 61 64 64 65 64 20 74 6F 20 74 been added to t
0041B0: 68 65 20 73 65 63 6F 6E 64 20 6C 69 73 74 2E 0D he second list..
0041C0: 0A 44 09 4F 75 74 70 75 74 20 66 69 6C 65 20 6E .D.Output file n
0041D0: 61 6D 65 73 20 77 68 69 63 68 20 68 61 76 65 20 ames which have
0041E0: 62 65 65 6E 20 64 65 6C 65 74 65 64 20 66 72 6F been deleted fro
0041F0: 6D 20 74 68 65 20 66 69 72 73 74 20 6C 69 73 74 m the first list
004200: 2E 0D 0A 4D 09 4F 75 74 70 75 74 20 66 69 6C 65 ...M.Output file
004210: 20 6E 61 6D 65 73 20 77 68 69 63 68 20 64 69 66 names which dif
004220: 66 65 72 20 69 6E 20 63 6F 6E 74 65 6E 74 73 2E fer in contents.
004230: 0D 0A 0D 0A 54 68 65 73 65 20 6F 70 74 69 6F 6E ....These option
004240: 73 20 6D 61 79 20 62 65 20 63 6F 6D 62 69 6E 65 s may be combine
004250: 64 2E 20 20 45 78 61 6D 70 6C 65 73 3A 0D 0A 0D d. Examples:...
004260: 0A 54 6F 20 63 68 65 63 6B 20 74 68 61 74 20 65 .To check that e
004270: 76 65 72 79 20 27 2E 6D 6F 64 27 20 66 69 6C 65 very '.mod' file
004280: 20 68 61 73 20 61 20 27 2E 72 65 6C 27 20 66 69 has a '.rel' fi
004290: 6C 65 3A 0D 0D 0A 09 43 6F 6D 70 64 69 72 20 62 le:....Compdir b
0042A0: 3A 2A 2E 6D 6F 64 20 62 3A 2A 2E 72 65 6C 2F 6E :*.mod b:*.rel/n
0042B0: 0D 0A 0D 0A 54 6F 20 77 72 69 74 65 20 74 68 65 ....To write the
0042C0: 20 64 65 6C 65 74 65 64 20 6E 61 6D 65 73 20 74 deleted names t
0042D0: 6F 20 61 20 66 69 6C 65 20 73 6F 20 74 68 61 74 o a file so that
0042E0: 20 74 68 65 20 6D 69 73 73 69 6E 67 20 20 27 2E the missing '.
0042F0: 72 65 6C 27 0D 0A 66 69 6C 65 73 20 6D 61 79 20 rel'..files may
004300: 69 6C 65 20 77 68 69 63 68 20 61 72 65 0D 0A 6E ile which are..n
004310: 6F 74 20 6C 69 6E 6B 65 64 20 74 6F 20 61 6E 79 ot linked to any
004320: 74 68 69 6E 67 20 69 6E 20 74 68 65 20 6F 6C 64 thing in the old
004330: 20 66 69 6C 65 20 61 72 65 20 69 6E 73 65 72 74 file are insert
004340: 69 6F 6E 73 2E 20 20 55 6E 6C 69 6E 6B 65 64 20 ions. Unlinked
004350: 6C 69 6E 65 73 20 69 6E 20 74 68 65 0D 0A 6F 6C lines in the..ol
004360: 64 20 66 69 6C 65 20 61 72 65 20 64 65 6C 65 74 d file are delet
004370: 69 6F 6E 73 2E 20 20 4C 69 6E 65 73 20 69 6E 20 ions. Lines in
004380: 74 68 65 20 6E 65 77 20 66 69 6C 65 20 77 68 69 the new file whi
004390: 63 68 20 6C 69 6E 6B 20 74 6F 20 6F 75 74 2D 6F ch link to out-o
0043A0: 66 2D 6F 72 64 65 72 20 6F 6C 64 0D 0A 66 69 6C f-order old..fil
0043B0: 65 20 6C 69 6E 65 73 20 61 72 65 20 70 61 72 74 e lines are part
0043C0: 73 20 6F 66 20 61 20 62 6C 6F 63 6B 20 6D 6F 76 s of a block mov
0043D0: 65 2E 0D 0A 0D 0A 46 75 72 74 68 65 72 20 57 6F e.....Further Wo
0043E0: 72 6B 3A 0D 0A 0D 0A 41 20 6E 75 6D 62 65 72 20 rk:....A number
0043F0: 6F 66 20 74 68 69 6E 67 73 20 63 61 6E 20 62 65 of things can be
004400: 20 64 6F 6E 65 20 77 69 74 68 20 74 68 69 73 20 done with this
004410: 70 72 6F 67 72 61 6D 3A 0D 0A 0D 0A 09 31 2F 20 program:.....1/
004420: 20 4D 61 6B 65 20 69 74 20 77 6F 72 6B 20 6F 6E Make it work on
004430: 20 74 68 72 65 65 20 66 69 6C 65 73 2E 0D 0A 4F three files...O
004440: 66 74 65 6E 2C 20 61 20 6E 65 77 20 76 65 72 73 ften, a new vers
004450: 69 6F 6E 20 6F 66 20 61 20 70 72 6F 67 72 61 6D ion of a program
004460: 20 69 73 20 63 72 65 61 74 65 64 20 28 73 61 79 is created (say
004470: 2C 20 66 6F 72 20 61 6E 6F 74 68 65 72 20 6D 61 , for another ma
004480: 63 68 69 6E 65 29 20 61 6E 64 0D 0A 74 68 65 6E chine) and..then
004490: 20 74 68 65 20 6F 72 69 67 69 6E 61 6C 20 76 65 the original ve
0044A0: 72 73 69 6F 6E 20 69 73 20 6D 6F 64 69 66 69 65 rsion is modifie
0044B0: 64 2E 20 20 54 68 65 20 70 72 6F 62 6C 65 6D 20 d. The problem
0044C0: 69 73 20 74 68 65 6E 20 69 6E 73 65 72 74 69 6E is then insertin
0044D0: 67 20 74 68 65 0D 0A 6E 65 77 20 63 68 61 6E 67 g the..new chang
0044E0: 65 73 20 74 6F 20 74 68 65 20 6F 72 69 67 69 6E es to the origin
0044F0: 61 6C 20 66 69 6C 65 20 69 6E 74 6F 20 74 68 65 al file into the
004500: 62 65 20 64 69 73 63 6F 76 65 72 65 64 3A 0D 0A be discovered:..
004510: 0D 0A 09 43 6F 6D 70 64 69 72 20 62 3A 2A 2E 6D ...Compdir b:*.m
004520: 6F 64 20 62 3A 2A 2E 72 65 6C 20 62 3A 63 6F 6D od b:*.rel b:com
004530: 70 73 2E 73 75 62 2F 6E 64 0D 0A 0D 0A 49 66 20 ps.sub/nd....If
004540: 79 6F 75 20 69 6E 74 65 6E 64 20 74 6F 20 72 65 you intend to re
004550: 67 65 6E 65 72 61 74 65 20 74 68 6F 73 65 20 66 generate those f
004560: 69 6C 65 73 2C 20 65 64 69 74 20 74 68 65 20 66 iles, edit the f
004570: 69 6C 65 20 74 6F 20 61 64 64 20 22 4D 32 20 22 ile to add "M2 "
004580: 20 74 6F 20 74 68 65 0D 0A 73 74 61 72 74 20 6F to the..start o
004590: 66 20 65 61 63 68 20 6C 69 6E 65 2E 20 20 49 66 f each line. If
0045A0: 20 79 6F 75 20 61 72 65 20 75 73 69 6E 67 20 74 you are using t
0045B0: 68 65 20 4D 6F 64 75 6C 61 2D 32 20 65 64 69 74 he Modula-2 edit
0045C0: 6F 72 2C 20 64 6F 20 6F 6E 65 20 69 6E 20 6C 65 or, do one in le
0045D0: 61 72 6E 0D 0A 6D 6F 64 65 20 61 6E 64 20 74 68 arn..mode and th
0045E0: 65 6E 20 64 6F 20 74 68 65 20 72 65 73 74 20 77 en do the rest w
0045F0: 69 74 68 20 61 20 72 65 70 65 61 74 65 64 20 65 ith a repeated e
004600: 78 65 63 75 74 69 6F 6E 20 6F 66 20 74 68 65 20 xecution of the
004610: 64 65 66 69 6E 65 64 20 6D 61 63 72 6F 2E 0D 0A defined macro...
004620: 0D 0A 54 6F 20 63 72 65 61 74 65 20 61 20 6C 69 ..To create a li
004630: 73 74 20 6F 66 20 61 6C 6C 20 64 65 66 69 6E 69 st of all defini
004640: 74 69 6F 6E 20 61 6E 64 20 69 6D 70 6C 65 6D 65 tion and impleme
004650: 6E 74 61 74 69 6F 6E 20 6D 6F 64 75 6C 65 73 20 ntation modules
004660: 6F 6E 20 64 69 73 63 20 42 3A 0D 0A 0D 0A 09 43 on disc B:.....C
004670: 6F 6D 70 64 69 72 20 62 3A 2A 2E 6D 6F 64 20 62 ompdir b:*.mod b
004680: 3A 2A 2E 64 65 66 20 74 2E 6C 73 74 2F 61 64 65 :*.def t.lst/ade
004690: 0D 0A 0D 0A 09 48 61 70 70 79 20 4D 6F 64 75 6C .....Happy Modul
0046A0: 61 74 69 6E 67 21 21 0D 0A 0A 0D 0D 0A 1A 1A 1A ating!!.........
0046B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0046C0: 44 46 20 20 20 20 20 20 43 4F 4D 20 00 00 00 00 DF COM ....
0046D0: 00 00 00 00 00 00 83 43 C2 0C 52 00 06 05 00 00 .......C..R.....
0046E0: 44 49 53 4B 43 4F 4D 50 45 58 45 20 00 00 00 00 DISKCOMPEXE ....
0046F0: 00 00 00 00 00 00 00 60 E7 0C 62 00 E0 0E 00 00 .......`..b.....
004700: 20 6F 74 68 65 72 20 76 65 72 73 69 6F 6E 2C 20 other version,
004710: 77 68 69 6C 65 20 72 65 74 61 69 6E 69 6E 67 0D while retaining.
004720: 0A 61 6E 79 20 63 68 61 6E 67 65 73 20 6D 61 64 .any changes mad
004730: 65 20 74 6F 70 72 6F 64 75 63 65 20 74 68 61 74 e toproduce that
004740: 20 76 65 72 73 69 6F 6E 2E 20 20 50 72 6F 62 61 version. Proba
004750: 62 6C 79 20 66 61 69 72 6C 79 20 64 69 66 66 69 bly fairly diffi
004760: 63 75 6C 74 20 74 6F 20 64 6F 2E 20 0D 0A 09 32 cult to do. ...2
004770: 2F 20 20 20 4D 61 6B 65 20 69 74 20 77 6F 72 6B / Make it work
004780: 20 61 63 72 6F 73 73 20 6D 61 63 68 69 6E 65 73 across machines
004790: 2E 0D 0A 53 6F 6D 65 74 69 6D 65 73 2C 20 6F 6E ...Sometimes, on
0047A0: 65 20 6F 66 20 74 68 65 20 66 69 6C 65 73 20 69 e of the files i
0047B0: 73 20 6F 6E 20 61 6E 6F 74 68 65 72 20 6D 61 63 s on another mac
0047C0: 68 69 6E 65 2E 20 20 49 74 20 77 6F 75 6C 64 20 hine. It would
0047D0: 62 65 20 6E 69 63 65 20 74 6F 0D 0A 68 61 76 65 be nice to..have
0047E0: 20 74 68 65 20 6F 6C 64 20 66 69 6C 65 20 6F 6E the old file on
0047F0: 20 74 68 65 20 72 65 6D 6F 74 65 20 6D 61 63 68 the remote mach
004800: 69 6E 65 20 61 6E 64 20 6F 6E 6C 79 20 74 72 61 ine and only tra
004810: 6E 73 66 65 72 20 74 68 65 20 63 68 65 63 6B 73 nsfer the checks
004820: 75 6D 73 20 61 6E 64 0D 0A 74 68 65 20 6C 69 6E ums and..the lin
004830: 65 73 20 77 68 69 63 68 20 68 61 76 65 20 62 65 es which have be
004840: 65 6E 20 64 65 6C 65 74 65 64 20 61 63 72 6F 73 en deleted acros
004850: 73 20 74 68 65 20 6C 69 6E 6B 2E 20 20 46 61 69 s the link. Fai
004860: 72 6C 79 20 65 61 73 79 2C 20 62 75 74 0D 0A 72 rly easy, but..r
004870: 65 6C 69 61 62 69 6C 69 74 79 20 6F 66 20 74 68 eliability of th
004880: 65 20 6C 69 6E 6B 20 77 69 6C 6C 20 63 61 75 73 e link will caus
004890: 65 20 70 72 6F 62 6C 65 6D 73 2E 0D 0A 09 33 2F e problems....3/
0048A0: 20 20 20 57 72 69 74 65 20 61 20 70 61 69 72 20 Write a pair
0048B0: 6F 66 20 65 78 74 72 61 63 74 2F 6D 65 72 67 65 of extract/merge
0048C0: 20 70 72 6F 67 72 61 6D 73 2E 0D 0A 43 6F 6E 74 programs...Cont
0048D0: 69 6E 75 69 6E 67 20 6F 6E 20 66 72 6F 6D 20 70 inuing on from p
0048E0: 6F 69 6E 74 20 32 2C 20 77 72 69 74 65 20 61 20 oint 2, write a
0048F0: 70 72 6F 67 72 61 6D 20 74 6F 20 63 72 65 61 74 program to creat
004900: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
004910: 45 20 44 6F 4D 65 6E 75 3B 0D 0A 0D 0A 28 2A 09 E DoMenu;....(*.
004920: 4D 65 6E 75 20 70 72 6F 63 65 73 73 6F 72 20 66 Menu processor f
004930: 6F 72 20 65 64 69 74 6F 72 2A 29 0D 0A 46 52 4F or editor*)..FRO
004940: 4D 20 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 M Files IMPORT F
004950: 69 6C 65 4E 61 6D 65 2C 46 49 4C 45 2C 43 6C 6F ileName,FILE,Clo
004960: 73 65 2C 43 72 65 61 74 65 3B 0D 0A 50 52 4F 43 se,Create;..PROC
004970: 45 44 55 52 45 20 52 65 64 69 73 70 6C 61 79 3B EDURE Redisplay;
004980: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F 4D 65 ..PROCEDURE DoMe
004990: 6E 75 4F 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 nuOp;..PROCEDURE
0049A0: 20 4F 70 65 6E 28 66 6E 3A 46 69 6C 65 4E 61 6D Open(fn:FileNam
0049B0: 65 3B 50 6F 73 3A 43 41 52 44 49 4E 41 4C 29 3B e;Pos:CARDINAL);
0049C0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 53 ..PROCEDURE GetS
0049D0: 74 72 69 6E 67 28 56 41 52 20 73 3A 41 52 52 41 tring(VAR s:ARRA
0049E0: 59 20 4F 46 20 43 48 41 52 3B 56 41 52 20 6C 65 Y OF CHAR;VAR le
0049F0: 6E 3A 43 41 52 44 49 4E 41 4C 3B 70 72 6F 6D 70 n:CARDINAL;promp
004A00: 74 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 29 t:ARRAY OF CHAR)
004A10: 3B 0D 0A 45 4E 44 20 44 6F 4D 65 6E 75 2E 0D 0A ;..END DoMenu...
004A20: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
004A30: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
004A40: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
004A50: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
004A60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
004A70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
004A80: 6F 6E 73 20 61 72 65 20 73 75 70 70 6C 69 65 64 ons are supplied
004A90: 2E 20 20 53 43 52 45 45 4E 49 4F 2E 4F 53 42 20 . SCREENIO.OSB
004AA0: 69 73 20 66 6F 72 20 74 68 65 20 4F 73 62 6F 72 is for the Osbor
004AB0: 6E 65 0D 0A 09 09 31 2C 20 53 43 52 45 45 4E 49 ne....1, SCREENI
004AC0: 4F 2E 4D 42 45 20 69 73 20 66 6F 72 20 74 68 65 O.MBE is for the
004AD0: 20 4D 69 63 72 6F 42 65 65 2C 20 61 6E 64 20 53 MicroBee, and S
004AE0: 43 52 45 45 4E 49 4F 2E 45 41 52 20 69 73 20 66 CREENIO.EAR is f
004AF0: 6F 72 0D 0A 09 09 74 68 65 20 45 61 72 74 68 20 or....the Earth
004B00: 65 20 61 20 64 69 66 66 65 72 65 6E 63 65 73 20 e a differences
004B10: 66 69 6C 65 0D 0A 61 6E 64 20 61 6E 6F 74 68 65 file..and anothe
004B20: 72 20 74 6F 20 6D 65 72 67 65 20 74 68 65 20 64 r to merge the d
004B30: 69 66 66 65 72 65 6E 63 65 73 20 6F 6E 20 61 20 ifferences on a
004B40: 72 65 6D 6F 74 65 20 6D 61 63 68 69 6E 65 2E 20 remote machine.
004B50: 20 54 68 69 73 20 73 68 6F 75 6C 64 20 62 65 0D This should be.
004B60: 0A 71 75 69 74 65 20 65 61 73 79 2C 20 67 69 76 .quite easy, giv
004B70: 65 6E 20 32 2E 0D 0A 0D 0A 41 6C 74 6F 67 65 74 en 2.....Altoget
004B80: 68 65 72 2C 20 74 68 65 73 65 20 74 68 72 65 65 her, these three
004B90: 20 65 78 74 65 6E 73 69 6F 6E 73 20 77 6F 75 6C extensions woul
004BA0: 64 20 62 65 20 61 62 6F 75 74 20 72 69 67 68 74 d be about right
004BB0: 20 66 6F 72 20 61 20 74 65 72 6D 20 70 72 6F 6A for a term proj
004BC0: 65 63 74 20 66 6F 72 0D 0A 6F 6E 65 20 73 74 75 ect for..one stu
004BD0: 64 65 6E 74 2E 20 20 4F 66 20 63 6F 75 72 73 65 dent. Of course
004BE0: 2C 20 69 66 20 61 6E 79 6F 6E 65 20 6F 75 74 20 , if anyone out
004BF0: 74 68 65 72 65 20 77 61 6E 74 73 20 74 6F 20 64 there wants to d
004C00: 6F 20 74 68 69 73 2C 20 77 65 27 6C 6C 20 68 61 o this, we'll ha
004C10: 70 70 69 6C 79 0D 0A 67 69 76 65 20 61 75 74 68 ppily..give auth
004C20: 6F 72 27 73 20 63 72 65 64 69 74 2E 0D 0A 0D 0A or's credit.....
004C30: 09 43 6F 6D 70 44 69 72 20 2D 20 43 6F 6D 70 61 .CompDir - Compa
004C40: 72 65 20 74 77 6F 20 64 69 72 65 63 74 6F 72 69 re two directori
004C50: 65 73 0D 0A 09 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D es...===========
004C60: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004C70: 3D 3D 3D 3D 3D 3D 0D 0A 0D 0A 43 6F 6D 70 44 69 ======....CompDi
004C80: 72 20 63 6F 6D 70 61 72 65 73 20 64 69 73 63 20 r compares disc
004C90: 64 69 72 65 63 74 6F 72 69 65 73 2E 20 20 54 68 directories. Th
004CA0: 65 20 63 6F 6D 70 61 72 69 73 6F 6E 20 6D 61 79 e comparison may
004CB0: 20 75 73 65 20 74 68 65 20 66 75 6C 6C 20 66 69 use the full fi
004CC0: 6C 65 0D 0A 6E 61 6D 65 2C 20 6A 75 73 74 20 74 le..name, just t
004CD0: 68 65 20 62 61 73 65 20 6E 61 6D 65 2C 20 6F 72 he base name, or
004CE0: 20 28 6E 6F 74 20 76 65 72 79 20 75 73 65 66 75 (not very usefu
004CF0: 6C 29 20 6A 75 73 74 20 74 68 65 20 65 78 74 65 l) just the exte
004D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
004D10: 04 00 01 00 02 09 52 E5 04 00 C9 02 00 00 00 02 ......R.........
004D20: 04 00 C5 02 00 00 00 02 04 00 C1 02 00 00 00 02 ................
004D30: 04 00 C6 02 00 00 00 02 04 00 C2 02 00 00 00 02 ................
004D40: 04 00 C7 02 00 00 00 02 04 00 C3 02 00 00 00 02 ................
004D50: 04 00 C8 02 00 00 00 02 04 00 C4 02 00 00 00 02 ................
004D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004E00: 4F 43 45 44 55 52 45 20 57 72 69 74 65 41 77 61 OCEDURE WriteAwa
004E10: 79 46 69 6C 65 3B 0D 0A 42 45 47 49 4E 0D 0A 09 yFile;..BEGIN...
004E20: 43 6C 6F 73 65 46 69 6C 65 28 46 69 6C 65 73 5B CloseFile(Files[
004E30: 43 75 72 72 65 6E 74 46 69 6C 65 5D 2C 72 65 70 CurrentFile],rep
004E40: 6C 79 29 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3D ly);...IF reply=
004E50: 2D 31 20 54 48 45 4E 20 0D 0A 09 09 45 72 72 6F -1 THEN ....Erro
004E60: 72 4D 65 73 73 61 67 65 28 27 44 69 73 63 20 46 rMessage('Disc F
004E70: 75 6C 6C 20 27 2C 27 20 27 29 3B 0D 0A 09 45 4C ull ',' ');...EL
004E80: 53 49 46 20 72 65 70 6C 79 3D 2D 32 20 54 48 45 SIF reply=-2 THE
004E90: 4E 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 61 67 N....ErrorMessag
004EA0: 65 28 27 44 69 72 65 63 74 6F 72 79 20 46 75 6C e('Directory Ful
004EB0: 6C 20 27 2C 27 20 27 29 3B 0D 0A 09 09 45 4E 44 l ',' ');....END
004EC0: 3B 0D 0A 09 55 70 64 61 74 65 64 5B 43 75 72 72 ;...Updated[Curr
004ED0: 65 6E 74 46 69 6C 65 5D 3A 3D 46 41 4C 53 45 3B entFile]:=FALSE;
004EE0: 0D 0A 09 45 4E 44 20 57 72 69 74 65 41 77 61 79 ...END WriteAway
004EF0: 46 69 6C 65 3B 0D 0A 50 52 4F 43 45 44 55 52 45 File;..PROCEDURE
004F00: 20 53 61 76 65 46 69 6C 65 73 3B 0D 0A 56 41 52 SaveFiles;..VAR
004F10: 09 69 3A 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 .i:INTEGER;..BEG
004F20: 49 4E 0D 0A 09 69 3A 3D 43 75 72 72 65 6E 74 46 IN...i:=CurrentF
004F30: 69 6C 65 3B 0D 0A 09 72 65 70 6C 79 3A 3D 30 3B ile;...reply:=0;
004F40: 0D 0A 09 46 4F 52 20 43 75 72 72 65 6E 74 46 69 ...FOR CurrentFi
004F50: 6C 65 3A 3D 31 20 54 4F 20 46 69 6C 65 73 4F 70 le:=1 TO FilesOp
004F60: 65 6E 65 64 20 44 4F 0D 0A 09 09 49 46 20 55 70 ened DO....IF Up
004F70: 64 61 74 65 64 5B 43 75 72 72 65 6E 74 46 69 6C dated[CurrentFil
004F80: 65 5D 20 54 48 45 4E 20 57 72 69 74 65 41 77 61 e] THEN WriteAwa
004F90: 79 46 69 6C 65 20 45 4E 44 3B 0D 0A 09 09 49 46 yFile END;....IF
004FA0: 20 72 65 70 6C 79 3C 3E 30 20 54 48 45 4E 20 52 reply<>0 THEN R
004FB0: 45 54 55 52 4E 20 45 4E 44 3B 0D 0A 09 09 45 4E ETURN END;....EN
004FC0: 44 3B 0D 0A 09 43 75 72 72 65 6E 74 46 69 6C 65 D;...CurrentFile
004FD0: 3A 3D 69 3B 0D 0A 09 45 4E 44 20 53 61 76 65 46 :=i;...END SaveF
004FE0: 69 6C 65 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 iles;..PROCEDURE
004FF0: 20 50 72 65 70 61 72 65 54 6F 4C 65 61 76 65 3B PrepareToLeave;
005000: 45 4C 53 45 0D 0A 09 09 09 09 43 6C 6F 73 65 28 ELSE......Close(
005010: 66 29 3B 0D 0A 09 09 09 09 4F 70 65 6E 46 69 6C f);......OpenFil
005020: 65 28 46 69 6C 65 73 5B 46 69 6C 65 73 4F 70 65 e(Files[FilesOpe
005030: 6E 65 64 2B 31 5D 2C 66 6E 2C 72 65 70 6C 79 2C ned+1],fn,reply,
005040: 50 6F 73 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D Pos);......END;.
005050: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B ....END;....END;
005060: 20 28 2A 72 65 70 6C 79 3D 2D 32 2A 29 0D 0A 09 (*reply=-2*)...
005070: 49 46 20 72 65 70 6C 79 3D 28 2D 34 29 20 54 48 IF reply=(-4) TH
005080: 45 4E 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 61 EN....ErrorMessa
005090: 67 65 28 27 43 6F 75 6C 64 20 6E 6F 74 20 63 72 ge('Could not cr
0050A0: 65 61 74 65 20 27 2C 66 6E 29 3B 0D 0A 09 45 4C eate ',fn);...EL
0050B0: 53 49 46 20 72 65 70 6C 79 3D 28 2D 33 29 20 54 SIF reply=(-3) T
0050C0: 48 45 4E 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 HEN....ErrorMess
0050D0: 61 67 65 28 27 4F 75 74 20 6F 66 20 4D 65 6D 6F age('Out of Memo
0050E0: 72 79 20 6C 6F 61 64 69 6E 67 20 27 2C 66 6E 20 ry loading ',fn
0050F0: 29 3B 0D 0A 09 45 4C 53 49 46 20 72 65 70 6C 79 );...ELSIF reply
005100: 3D 28 2D 32 29 20 54 48 45 4E 0D 0A 09 09 45 72 =(-2) THEN....Er
005110: 72 6F 72 4D 65 73 73 61 67 65 28 27 46 69 6C 65 rorMessage('File
005120: 20 6E 6F 74 20 66 6F 75 6E 64 3A 27 2C 66 6E 29 not found:',fn)
005130: 3B 0D 0A 09 45 4C 53 49 46 20 72 65 70 6C 79 3C ;...ELSIF reply<
005140: 30 20 54 48 45 4E 0D 0A 09 09 45 72 72 6F 72 4D 0 THEN....ErrorM
005150: 65 73 73 61 67 65 28 27 20 4F 74 68 65 72 20 65 essage(' Other e
005160: 72 72 6F 72 20 6F 70 65 6E 69 6E 67 20 66 69 6C rror opening fil
005170: 65 3A 27 2C 66 6E 29 0D 0A 09 45 4C 53 45 20 09 e:',fn)...ELSE .
005180: 28 2A 66 69 6C 65 20 6F 6B 2A 29 0D 0A 09 09 49 (*file ok*)....I
005190: 4E 43 28 46 69 6C 65 73 4F 70 65 6E 65 64 29 3B NC(FilesOpened);
0051A0: 0D 0A 09 09 49 4E 43 28 57 69 6E 64 6F 77 73 29 ....INC(Windows)
0051B0: 3B 0D 0A 09 09 57 69 6E 64 6F 77 46 69 6C 65 5B ;....WindowFile[
0051C0: 57 69 6E 64 6F 77 73 5D 3A 3D 46 69 6C 65 73 4F Windows]:=FilesO
0051D0: 70 65 6E 65 64 3B 0D 0A 09 09 53 65 74 57 69 6E pened;....SetWin
0051E0: 64 6F 77 73 28 57 69 6E 64 6F 77 73 29 3B 0D 0A dows(Windows);..
0051F0: 09 09 62 3A 3D 4C 61 62 65 6C 4F 70 28 46 69 6C ..b:=LabelOp(Fil
005200: 28 2A 09 50 65 72 66 6F 72 6D 20 6D 65 6E 75 20 (*.Perform menu
005210: 6F 70 65 72 61 74 69 6F 6E 73 0D 0A 0D 0A 09 43 operations.....C
005220: 6F 70 79 72 69 67 68 74 2C 20 20 44 61 76 65 20 opyright, Dave
005230: 4D 6F 6F 72 65 20 46 54 4C 20 4D 6F 64 75 6C 61 Moore FTL Modula
005240: 2D 32 20 31 39 38 36 0D 0A 0D 0A 09 09 32 36 20 -2 1986......26
005250: 4A 75 6E 65 20 38 36 20 20 44 20 4D 6F 6F 72 65 June 86 D Moore
005260: 20 20 50 75 74 20 42 61 63 6B 53 70 61 63 65 20 Put BackSpace
005270: 69 6E 73 69 64 65 20 49 46 20 74 6F 20 69 6D 70 inside IF to imp
005280: 72 6F 76 65 0D 0A 09 09 09 09 09 62 61 63 6B 73 rove.......backs
005290: 70 61 63 69 6E 67 20 70 65 72 66 6F 72 6D 61 6E pacing performan
0052A0: 63 65 20 6F 66 20 47 65 74 53 74 72 69 6E 67 0D ce of GetString.
0052B0: 0A 0D 0A 2A 29 0D 0A 49 4D 50 4C 45 4D 45 4E 54 ...*)..IMPLEMENT
0052C0: 41 54 49 4F 4E 20 4D 4F 44 55 4C 45 20 44 6F 4D ATION MODULE DoM
0052D0: 65 6E 75 3B 0D 0A 0D 0A 28 2A 09 6D 65 6E 75 20 enu;....(*.menu
0052E0: 70 72 6F 63 65 73 73 6F 72 20 66 6F 72 20 65 64 processor for ed
0052F0: 69 74 6F 72 0D 0A 0D 0A 09 63 6F 6E 74 61 69 6E itor.....contain
005300: 73 20 61 6C 6C 20 63 6F 6D 6D 61 6E 64 73 20 77 s all commands w
005310: 68 69 63 68 20 61 72 65 20 70 65 72 66 6F 72 6D hich are perform
005320: 65 64 20 66 72 6F 6D 20 61 20 6D 65 6E 75 2A 29 ed from a menu*)
005330: 0D 0A 46 52 4F 4D 09 54 65 72 6D 69 6E 61 6C 20 ..FROM.Terminal
005340: 49 4D 50 4F 52 54 20 57 72 69 74 65 2C 57 72 69 IMPORT Write,Wri
005350: 74 65 53 74 72 69 6E 67 2C 52 65 61 64 53 74 72 teString,ReadStr
005360: 69 6E 67 2C 52 65 61 64 42 75 66 66 65 72 2C 57 ing,ReadBuffer,W
005370: 72 69 74 65 4C 6E 2C 52 65 61 64 2C 0D 0A 09 42 riteLn,Read,...B
005380: 75 73 79 52 65 61 64 2C 43 6C 65 61 72 43 68 61 usyRead,ClearCha
005390: 72 42 75 66 66 65 72 3B 0D 0A 46 52 4F 4D 20 09 rBuffer;..FROM .
0053A0: 4D 61 6B 65 45 64 69 74 73 20 49 4D 50 4F 52 54 MakeEdits IMPORT
0053B0: 20 4F 70 65 6E 46 69 6C 65 2C 43 6C 6F 73 65 46 OpenFile,CloseF
0053C0: 69 6C 65 2C 41 62 61 6E 64 6F 6E 46 69 6C 65 2C ile,AbandonFile,
0053D0: 43 61 6C 6C 57 69 74 68 46 69 6C 65 2C 46 69 6C CallWithFile,Fil
0053E0: 65 54 79 70 65 2C 4C 61 62 65 6C 4F 70 3B 0D 0A eType,LabelOp;..
0053F0: 46 52 4F 4D 09 4D 65 6E 75 20 49 4D 50 4F 52 54 FROM.Menu IMPORT
005400: 65 73 5B 46 69 6C 65 73 4F 70 65 6E 65 64 5D 2C es[FilesOpened],
005410: 54 52 55 45 2C 43 48 52 28 57 69 6E 64 6F 77 73 TRUE,CHR(Windows
005420: 29 29 3B 0D 0A 09 09 53 65 74 4C 65 66 74 4D 61 ));....SetLeftMa
005430: 72 67 28 46 69 6C 65 73 5B 46 69 6C 65 73 4F 70 rg(Files[FilesOp
005440: 65 6E 65 64 5D 2C 57 69 6E 64 6F 77 73 2C 0D 0A ened],Windows,..
005450: 09 09 09 63 75 72 78 5B 57 69 6E 64 6F 77 73 5D ...curx[Windows]
005460: 2C 63 75 72 79 5B 57 69 6E 64 6F 77 73 5D 29 3B ,cury[Windows]);
005470: 0D 0A 09 09 55 70 64 61 74 65 64 5B 46 69 6C 65 ....Updated[File
005480: 73 4F 70 65 6E 65 64 5D 3A 3D 46 41 4C 53 45 3B sOpened]:=FALSE;
005490: 0D 0A 09 09 43 68 61 6E 67 65 57 69 6E 64 6F 77 ....ChangeWindow
0054A0: 28 57 69 6E 64 6F 77 73 29 3B 0D 0A 09 09 45 4E (Windows);....EN
0054B0: 44 3B 28 2A 72 65 70 6C 79 3D 76 61 72 69 6F 75 D;(*reply=variou
0054C0: 73 20 76 61 6C 75 65 73 2A 29 0D 0A 09 45 4E 44 s values*)...END
0054D0: 3B 28 2A 66 6E 5B 31 5D 3C 3E 27 20 27 2A 29 0D ;(*fn[1]<>' '*).
0054E0: 0A 20 20 20 20 52 65 64 69 73 70 6C 61 79 3B 0D . Redisplay;.
0054F0: 0A 20 20 20 20 45 4E 44 20 4F 70 65 6E 3B 0D 0A . END Open;..
005500: 09 09 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 .....PROCEDURE S
005510: 65 74 42 6F 78 50 6F 73 28 56 41 52 20 79 3A 43 etBoxPos(VAR y:C
005520: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
005530: 0D 0A 09 49 46 20 57 69 6E 64 6F 77 73 3D 32 20 ...IF Windows=2
005540: 54 48 45 4E 20 79 3A 3D 31 33 2A 28 43 75 72 72 THEN y:=13*(Curr
005550: 65 6E 74 57 69 6E 64 6F 77 2D 31 29 0D 0A 09 45 entWindow-1)...E
005560: 4C 53 49 46 20 43 75 72 72 65 6E 74 57 69 6E 64 LSIF CurrentWind
005570: 6F 77 3D 30 20 54 48 45 4E 20 79 3A 3D 30 0D 0A ow=0 THEN y:=0..
005580: 09 45 4C 53 45 09 79 3A 3D 38 2A 28 43 75 72 72 .ELSE.y:=8*(Curr
005590: 65 6E 74 57 69 6E 64 6F 77 2D 31 29 20 45 4E 44 entWindow-1) END
0055A0: 3B 0D 0A 09 45 4E 44 20 53 65 74 42 6F 78 50 6F ;...END SetBoxPo
0055B0: 73 3B 0D 0A 56 41 52 09 78 2C 79 2C 63 68 61 72 s;..VAR.x,y,char
0055C0: 73 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 50 52 4F s:CARDINAL;..PRO
0055D0: 43 45 44 55 52 45 20 42 61 63 6B 53 70 61 63 65 CEDURE BackSpace
0055E0: 3B 0D 0A 42 45 47 49 4E 0D 0A 09 57 72 69 74 65 ;..BEGIN...Write
0055F0: 28 30 38 78 29 3B 0D 0A 09 57 72 69 74 65 28 27 (08x);...Write('
005600: 20 47 65 74 46 72 6F 6D 4D 65 6E 75 2C 4D 65 6E GetFromMenu,Men
005610: 75 54 65 78 74 3B 0D 0A 46 52 4F 4D 20 09 45 64 uText;..FROM .Ed
005620: 69 74 43 6F 6E 74 72 6F 6C 20 49 4D 50 4F 52 54 itControl IMPORT
005630: 20 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 2C 43 CurrentWindow,C
005640: 75 72 72 65 6E 74 46 69 6C 65 2C 46 69 6C 65 73 urrentFile,Files
005650: 4F 70 65 6E 65 64 2C 63 75 72 78 2C 63 75 72 79 Opened,curx,cury
005660: 2C 46 69 6C 65 73 2C 0D 0A 09 09 09 45 6C 69 64 ,Files,.....Elid
005670: 65 57 69 6E 64 6F 77 2C 43 68 61 6E 67 65 57 69 eWindow,ChangeWi
005680: 6E 64 6F 77 2C 52 65 73 65 74 53 63 72 65 65 6E ndow,ResetScreen
005690: 50 6F 73 2C 55 70 64 61 74 65 64 2C 4C 65 66 74 Pos,Updated,Left
0056A0: 4D 61 72 67 69 6E 2C 0D 0A 09 09 09 4D 61 6B 65 Margin,.....Make
0056B0: 57 69 6E 64 6F 77 2C 57 69 6E 64 6F 77 46 69 6C Window,WindowFil
0056C0: 65 2C 46 69 6C 65 50 6F 73 69 74 69 6F 6E 3B 0D e,FilePosition;.
0056D0: 0A 46 52 4F 4D 09 45 64 69 74 44 69 73 70 6C 61 .FROM.EditDispla
0056E0: 79 20 49 4D 50 4F 52 54 20 45 72 72 6F 72 4D 65 y IMPORT ErrorMe
0056F0: 73 73 61 67 65 2C 53 65 74 57 69 6E 64 6F 77 73 ssage,SetWindows
005700: 2C 44 69 73 70 6C 61 79 46 69 6C 65 2C 53 65 74 ,DisplayFile,Set
005710: 4C 65 66 74 4D 61 72 67 2C 57 69 6E 64 6F 77 73 LeftMarg,Windows
005720: 3B 0D 0A 46 52 4F 4D 09 4D 61 63 72 6F 73 20 49 ;..FROM.Macros I
005730: 4D 50 4F 52 54 20 53 74 6F 72 65 4D 61 63 72 6F MPORT StoreMacro
005740: 73 3B 0D 0A 46 52 4F 4D 09 53 63 72 65 65 6E 44 s;..FROM.ScreenD
005750: 75 6D 6D 79 20 49 4D 50 4F 52 54 20 43 6C 65 61 ummy IMPORT Clea
005760: 72 53 63 72 65 65 6E 2C 44 72 61 77 42 6F 78 2C rScreen,DrawBox,
005770: 47 6F 74 6F 78 79 3B 0D 0A 46 52 4F 4D 09 52 65 Gotoxy;..FROM.Re
005780: 73 65 74 44 69 73 63 20 49 4D 50 4F 52 54 20 52 setDisc IMPORT R
005790: 65 73 65 74 41 6C 6C 44 69 73 63 73 3B 0D 0A 56 esetAllDiscs;..V
0057A0: 41 52 09 54 65 78 74 3A 41 52 52 41 59 20 5B 30 AR.Text:ARRAY [0
0057B0: 2E 2E 39 5D 20 4F 46 20 4D 65 6E 75 54 65 78 74 ..9] OF MenuText
0057C0: 3D 5B 20 0D 0A 09 09 09 27 4F 70 65 6E 20 20 46 =[ .....'Open F
0057D0: 69 6C 65 20 27 2C 0D 0A 09 09 09 27 53 61 76 65 ile ',.....'Save
0057E0: 20 20 46 69 6C 65 20 27 2C 0D 0A 09 09 09 27 43 File ',.....'C
0057F0: 6C 6F 73 65 20 46 69 6C 65 20 27 2C 0D 0A 09 09 lose File ',....
005800: 20 27 29 3B 0D 0A 09 57 72 69 74 65 28 30 38 78 ');...Write(08x
005810: 29 3B 0D 0A 09 44 45 43 28 63 68 61 72 73 29 3B );...DEC(chars);
005820: 0D 0A 09 45 4E 44 20 42 61 63 6B 53 70 61 63 65 ...END BackSpace
005830: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 ;..PROCEDURE Get
005840: 53 74 72 69 6E 67 28 56 41 52 20 73 3A 41 52 52 String(VAR s:ARR
005850: 41 59 20 4F 46 20 43 48 41 52 3B 56 41 52 20 6C AY OF CHAR;VAR l
005860: 65 6E 3A 43 41 52 44 49 4E 41 4C 3B 70 72 6F 6D en:CARDINAL;prom
005870: 70 74 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 pt:ARRAY OF CHAR
005880: 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 53 65 74 42 );..BEGIN...SetB
005890: 6F 78 50 6F 73 28 79 29 3B 0D 0A 09 44 72 61 77 oxPos(y);...Draw
0058A0: 42 6F 78 28 31 31 2C 79 2B 33 2C 31 34 2B 48 49 Box(11,y+3,14+HI
0058B0: 47 48 28 73 29 2B 48 49 47 48 28 70 72 6F 6D 70 GH(s)+HIGH(promp
0058C0: 74 29 2C 79 2B 31 29 3B 0D 0A 09 47 6F 74 6F 78 t),y+1);...Gotox
0058D0: 79 28 31 32 2C 79 2B 32 29 3B 0D 0A 09 46 4F 52 y(12,y+2);...FOR
0058E0: 20 78 3A 3D 30 20 54 4F 20 48 49 47 48 28 70 72 x:=0 TO HIGH(pr
0058F0: 6F 6D 70 74 29 20 44 4F 20 57 72 69 74 65 28 70 ompt) DO Write(p
005900: 72 6F 6D 70 74 5B 78 5D 29 20 45 4E 44 3B 0D 0A rompt[x]) END;..
005910: 09 46 4F 52 20 78 3A 3D 30 20 54 4F 20 48 49 47 .FOR x:=0 TO HIG
005920: 48 28 73 29 20 44 4F 20 57 72 69 74 65 28 27 20 H(s) DO Write('
005930: 27 29 20 45 4E 44 3B 0D 0A 09 47 6F 74 6F 78 79 ') END;...Gotoxy
005940: 28 31 32 2B 48 49 47 48 28 70 72 6F 6D 70 74 29 (12+HIGH(prompt)
005950: 2B 31 2C 79 2B 32 29 3B 0D 0A 09 6C 65 6E 3A 3D +1,y+2);...len:=
005960: 30 3B 63 68 3A 3D 30 78 3B 0D 0A 09 63 68 61 72 0;ch:=0x;...char
005970: 73 3A 3D 30 3B 0D 0A 09 4C 4F 4F 50 0D 0A 09 09 s:=0;...LOOP....
005980: 49 46 20 6C 65 6E 3E 48 49 47 48 28 73 29 20 54 IF len>HIGH(s) T
005990: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 HEN EXIT END;...
0059A0: 09 52 45 50 45 41 54 0D 0A 09 09 09 42 75 73 79 .REPEAT.....Busy
0059B0: 52 65 61 64 28 63 68 29 3B 0D 0A 09 09 09 55 4E Read(ch);.....UN
0059C0: 54 49 4C 20 63 68 3C 3E 30 78 3B 0D 0A 09 09 49 TIL ch<>0x;....I
0059D0: 46 20 63 68 3D 30 64 78 20 54 48 45 4E 20 45 58 F ch=0dx THEN EX
0059E0: 49 54 20 45 4E 44 3B 0D 0A 09 09 49 46 20 28 63 IT END;....IF (c
0059F0: 68 3D 30 38 78 29 20 4F 52 20 28 63 68 3D 31 33 h=08x) OR (ch=13
005A00: 09 27 53 70 6C 69 74 20 46 69 6C 65 20 27 2C 0D .'Split File ',.
005A10: 0A 09 09 09 27 43 6F 6D 70 69 6C 65 20 20 20 20 ....'Compile
005A20: 27 2C 0D 0A 09 09 09 27 43 6F 6D 70 2F 45 78 69 ',.....'Comp/Exi
005A30: 74 20 20 27 2C 0D 0A 09 09 09 27 51 75 69 74 20 t ',.....'Quit
005A40: 46 69 6C 65 20 20 27 2C 0D 0A 09 09 09 27 51 75 File ',.....'Qu
005A50: 69 74 20 57 69 6E 64 6F 77 27 2C 0D 0A 09 09 09 it Window',.....
005A60: 27 45 78 69 74 20 45 64 69 74 20 20 27 2C 0D 0A 'Exit Edit ',..
005A70: 09 09 09 27 52 65 73 65 74 20 44 69 73 63 20 27 ...'Reset Disc '
005A80: 5D 3B 0D 0A 09 63 3A 43 41 52 44 49 4E 41 4C 3B ];...c:CARDINAL;
005A90: 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 ...reply:INTEGER
005AA0: 3B 0D 0A 09 69 3A 43 41 52 44 49 4E 41 4C 3B 0D ;...i:CARDINAL;.
005AB0: 0A 09 63 68 3A 43 48 41 52 3B 0D 0A 50 52 4F 43 ..ch:CHAR;..PROC
005AC0: 45 44 55 52 45 20 52 65 64 69 73 70 6C 61 79 3B EDURE Redisplay;
005AD0: 0D 0A 42 45 47 49 4E 0D 0A 09 53 65 74 57 69 6E ..BEGIN...SetWin
005AE0: 64 6F 77 73 28 57 69 6E 64 6F 77 73 29 3B 0D 0A dows(Windows);..
005AF0: 09 46 4F 52 20 69 3A 3D 31 20 54 4F 20 57 69 6E .FOR i:=1 TO Win
005B00: 64 6F 77 73 20 44 4F 0D 0A 09 09 44 69 73 70 6C dows DO....Displ
005B10: 61 79 46 69 6C 65 28 46 69 6C 65 73 5B 57 69 6E ayFile(Files[Win
005B20: 64 6F 77 46 69 6C 65 5B 69 5D 5D 2C 69 2C 63 75 dowFile[i]],i,cu
005B30: 72 78 5B 69 5D 2C 63 75 72 79 5B 69 5D 29 3B 0D rx[i],cury[i]);.
005B40: 0A 09 09 45 4E 44 3B 0D 0A 09 52 65 73 65 74 53 ...END;...ResetS
005B50: 63 72 65 65 6E 50 6F 73 3B 0D 0A 09 45 4E 44 20 creenPos;...END
005B60: 52 65 64 69 73 70 6C 61 79 3B 0D 0A 50 52 4F 43 Redisplay;..PROC
005B70: 45 44 55 52 45 20 43 6C 65 61 72 44 69 73 70 6C EDURE ClearDispl
005B80: 61 79 3B 0D 0A 42 45 47 49 4E 0D 0A 09 47 6F 74 ay;..BEGIN...Got
005B90: 6F 78 79 28 30 2C 30 29 3B 0D 0A 09 43 6C 65 61 oxy(0,0);...Clea
005BA0: 72 53 63 72 65 65 6E 3B 0D 0A 09 45 4E 44 20 43 rScreen;...END C
005BB0: 6C 65 61 72 44 69 73 70 6C 61 79 3B 0D 0A 50 52 learDisplay;..PR
005BC0: 4F 43 45 44 55 52 45 20 52 65 61 6C 6C 79 28 29 OCEDURE Really()
005BD0: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E :BOOLEAN;..BEGIN
005BE0: 0D 0A 09 57 72 69 74 65 53 74 72 69 6E 67 28 27 ...WriteString('
005BF0: 20 28 59 2F 4E 29 3F 20 27 29 3B 0D 0A 09 52 45 (Y/N)? ');...RE
005C00: 78 29 20 4F 52 20 28 63 68 3D 37 66 78 29 20 54 x) OR (ch=7fx) T
005C10: 48 45 4E 0D 0A 09 09 09 49 46 20 6C 65 6E 3E 30 HEN.....IF len>0
005C20: 20 54 48 45 4E 20 0D 0A 09 09 09 09 44 45 43 28 THEN ......DEC(
005C30: 6C 65 6E 29 3B 0D 0A 09 09 09 09 49 46 20 73 5B len);......IF s[
005C40: 6C 65 6E 5D 3C 27 20 27 20 54 48 45 4E 20 42 61 len]<' ' THEN Ba
005C50: 63 6B 53 70 61 63 65 20 45 4E 44 3B 0D 0A 09 09 ckSpace END;....
005C60: 09 09 42 61 63 6B 53 70 61 63 65 3B 0D 0A 09 09 ..BackSpace;....
005C70: 09 09 45 4E 44 3B 0D 0A 09 09 45 4C 53 49 46 20 ..END;....ELSIF
005C80: 63 68 3D 31 38 78 20 54 48 45 4E 0D 0A 09 09 09 ch=18x THEN.....
005C90: 46 4F 52 20 6C 65 6E 3A 3D 31 20 54 4F 20 63 68 FOR len:=1 TO ch
005CA0: 61 72 73 20 44 4F 20 42 61 63 6B 53 70 61 63 65 ars DO BackSpace
005CB0: 20 45 4E 44 3B 0D 0A 09 09 09 6C 65 6E 3A 3D 30 END;.....len:=0
005CC0: 3B 0D 0A 09 09 09 63 68 61 72 73 3A 3D 30 3B 0D ;.....chars:=0;.
005CD0: 0A 09 09 45 4C 53 45 0D 0A 09 09 09 49 46 20 63 ...ELSE.....IF c
005CE0: 68 3C 27 20 27 20 54 48 45 4E 20 0D 0A 09 09 09 h<' ' THEN .....
005CF0: 09 57 72 69 74 65 28 27 5E 27 29 3B 0D 0A 09 09 .Write('^');....
005D00: 09 09 57 72 69 74 65 28 43 48 52 28 4F 52 44 28 ..Write(CHR(ORD(
005D10: 63 68 29 2B 36 34 29 29 3B 0D 0A 09 09 09 09 49 ch)+64));......I
005D20: 4E 43 28 63 68 61 72 73 29 3B 0D 0A 09 09 09 45 NC(chars);.....E
005D30: 4C 53 45 20 57 72 69 74 65 28 63 68 29 20 45 4E LSE Write(ch) EN
005D40: 44 3B 0D 0A 09 09 09 49 4E 43 28 63 68 61 72 73 D;.....INC(chars
005D50: 29 3B 0D 0A 09 09 09 73 5B 6C 65 6E 5D 3A 3D 63 );.....s[len]:=c
005D60: 68 3B 0D 0A 09 09 09 49 4E 43 28 6C 65 6E 29 3B h;.....INC(len);
005D70: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 .....END;....END
005D80: 3B 28 2A 57 48 49 4C 45 2A 29 0D 0A 09 46 4F 52 ;(*WHILE*)...FOR
005D90: 20 78 3A 3D 6C 65 6E 20 54 4F 20 48 49 47 48 28 x:=len TO HIGH(
005DA0: 73 29 20 44 4F 20 73 5B 78 5D 3A 3D 27 20 27 20 s) DO s[x]:=' '
005DB0: 45 4E 44 3B 0D 0A 09 45 4E 44 20 47 65 74 53 74 END;...END GetSt
005DC0: 72 69 6E 67 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 ring;....PROCEDU
005DD0: 52 45 20 44 6F 4D 65 6E 75 4F 70 3B 0D 0A 56 41 RE DoMenuOp;..VA
005DE0: 52 09 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 R.y:CARDINAL;...
005DF0: 66 6E 3A 46 69 6C 65 4E 61 6D 65 3B 0D 0A 50 52 fn:FileName;..PR
005E00: 50 45 41 54 0D 0A 09 09 42 75 73 79 52 65 61 64 PEAT....BusyRead
005E10: 28 63 68 29 3B 0D 0A 09 09 63 68 3A 3D 43 41 50 (ch);....ch:=CAP
005E20: 28 63 68 29 3B 0D 0A 09 09 55 4E 54 49 4C 20 28 (ch);....UNTIL (
005E30: 63 68 3D 27 59 27 29 20 4F 52 20 28 63 68 3D 27 ch='Y') OR (ch='
005E40: 4E 27 29 3B 0D 0A 09 57 72 69 74 65 28 63 68 29 N');...Write(ch)
005E50: 3B 0D 0A 09 52 45 54 55 52 4E 20 63 68 3D 27 59 ;...RETURN ch='Y
005E60: 27 0D 0A 09 45 4E 44 20 52 65 61 6C 6C 79 3B 0D '...END Really;.
005E70: 0A 50 52 4F 43 45 44 55 52 45 20 4F 70 65 6E 28 .PROCEDURE Open(
005E80: 66 6E 3A 46 69 6C 65 4E 61 6D 65 3B 50 6F 73 3A fn:FileName;Pos:
005E90: 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 28 2A 09 4F CARDINAL);..(*.O
005EA0: 70 65 6E 20 74 68 65 20 66 69 6C 65 20 77 68 6F pen the file who
005EB0: 73 65 20 6E 61 6D 65 20 69 73 20 69 6E 20 66 6E se name is in fn
005EC0: 0D 0A 0D 0A 09 72 65 2D 61 64 6A 75 73 74 20 74 .....re-adjust t
005ED0: 68 65 20 64 69 73 70 6C 61 79 20 61 73 20 72 65 he display as re
005EE0: 71 75 69 72 65 64 2A 29 0D 0A 56 41 52 09 66 3A quired*)..VAR.f:
005EF0: 46 49 4C 45 3B 0D 0A 09 62 3A 42 4F 4F 4C 45 41 FILE;...b:BOOLEA
005F00: 4E 3B 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 49 N;..BEGIN.. I
005F10: 46 20 66 6E 5B 31 5D 3C 3E 27 20 27 20 54 48 45 F fn[1]<>' ' THE
005F20: 4E 20 0D 0A 09 4F 70 65 6E 46 69 6C 65 28 46 69 N ...OpenFile(Fi
005F30: 6C 65 73 5B 46 69 6C 65 73 4F 70 65 6E 65 64 2B les[FilesOpened+
005F40: 31 5D 2C 66 6E 2C 72 65 70 6C 79 2C 50 6F 73 29 1],fn,reply,Pos)
005F50: 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3D 28 2D 32 ;...IF reply=(-2
005F60: 29 20 54 48 45 4E 0D 0A 09 09 43 6C 65 61 72 44 ) THEN....ClearD
005F70: 69 73 70 6C 61 79 3B 0D 0A 09 09 57 72 69 74 65 isplay;....Write
005F80: 53 74 72 69 6E 67 28 27 20 43 72 65 61 74 65 20 String(' Create
005F90: 27 29 3B 0D 0A 09 09 57 72 69 74 65 53 74 72 69 ');....WriteStri
005FA0: 6E 67 28 66 6E 29 3B 0D 0A 09 09 0D 0A 09 09 49 ng(fn);........I
005FB0: 46 20 52 65 61 6C 6C 79 28 29 20 54 48 45 4E 0D F Really() THEN.
005FC0: 0A 09 09 09 43 72 65 61 74 65 28 66 2C 66 6E 2C ....Create(f,fn,
005FD0: 72 65 70 6C 79 29 3B 0D 0A 09 09 09 49 46 20 72 reply);.....IF r
005FE0: 65 70 6C 79 3C 3E 30 20 54 48 45 4E 0D 0A 09 09 eply<>0 THEN....
005FF0: 09 09 72 65 70 6C 79 3A 3D 2D 34 0D 0A 09 09 09 ..reply:=-4.....
006000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
006010: 05 00 01 00 02 09 52 E5 05 00 C9 02 00 00 00 02 ......R.........
006020: 05 00 C5 02 00 00 00 02 05 00 C1 02 00 00 00 02 ................
006030: 05 00 C6 02 00 00 00 02 05 00 C2 02 00 00 00 02 ................
006040: 05 00 C7 02 00 00 00 02 05 00 C3 02 00 00 00 02 ................
006050: 05 00 C8 02 00 00 00 02 05 00 C4 02 00 00 00 02 ................
006060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006100: 4E 41 4C 3B 0D 0A 09 54 68 69 73 78 2C 54 68 69 NAL;...Thisx,Thi
006110: 73 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 4C sy:CARDINAL;...L
006120: 65 66 74 4D 61 72 67 69 6E 3A 41 52 52 41 59 5B eftMargin:ARRAY[
006130: 31 2E 2E 4D 61 78 45 64 69 74 46 69 6C 65 73 5D 1..MaxEditFiles]
006140: 20 4F 46 20 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 OF CARDINAL;...
006150: 4C 69 6E 65 4C 65 6E 3A 49 4E 54 45 47 45 52 3B LineLen:INTEGER;
006160: 0D 0A 09 4C 69 6E 65 50 6F 73 3A 49 4E 54 45 47 ...LinePos:INTEG
006170: 45 52 3B 0D 0A 09 55 70 64 61 74 65 64 3A 41 52 ER;...Updated:AR
006180: 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 74 46 69 RAY[1..MaxEditFi
006190: 6C 65 73 5D 20 4F 46 20 42 4F 4F 4C 45 41 4E 3B les] OF BOOLEAN;
0061A0: 0D 0A 09 57 69 6E 64 6F 77 46 69 6C 65 3A 41 52 ...WindowFile:AR
0061B0: 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 74 46 69 RAY[1..MaxEditFi
0061C0: 6C 65 73 5D 20 4F 46 20 43 41 52 44 49 4E 41 4C les] OF CARDINAL
0061D0: 3B 0D 0A 09 4D 6F 76 65 64 4F 4B 3A 42 4F 4F 4C ;...MovedOK:BOOL
0061E0: 45 41 4E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 EAN;..PROCEDURE
0061F0: 49 6E 73 4F 6E 65 43 68 61 72 28 63 68 3A 43 48 InsOneChar(ch:CH
006200: 41 52 29 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 AR);..PROCEDURE
006210: 44 65 6C 4F 6E 65 43 68 61 72 3B 0D 0A 50 52 4F DelOneChar;..PRO
006220: 43 45 44 55 52 45 20 44 65 6C 54 6F 45 4F 4C 3B CEDURE DelToEOL;
006230: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 6C 46 ..PROCEDURE DelF
006240: 75 6C 6C 4C 69 6E 65 3B 0D 0A 50 52 4F 43 45 44 ullLine;..PROCED
006250: 55 52 45 20 4C 65 66 74 3B 0D 0A 50 52 4F 43 45 URE Left;..PROCE
006260: 44 55 52 45 20 52 69 67 68 74 3B 0D 0A 50 52 4F DURE Right;..PRO
006270: 43 45 44 55 52 45 20 44 6F 77 6E 3B 0D 0A 50 52 CEDURE Down;..PR
006280: 4F 43 45 44 55 52 45 20 55 70 3B 0D 0A 50 52 4F OCEDURE Up;..PRO
006290: 43 45 44 55 52 45 20 55 70 53 63 72 65 65 6E 3B CEDURE UpScreen;
0062A0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F 77 6E ..PROCEDURE Down
0062B0: 53 63 72 65 65 6E 3B 0D 0A 50 52 4F 43 45 44 55 Screen;..PROCEDU
0062C0: 52 45 20 54 6F 70 3B 0D 0A 50 52 4F 43 45 44 55 RE Top;..PROCEDU
0062D0: 52 45 20 42 6F 74 74 6F 6D 3B 0D 0A 50 52 4F 43 RE Bottom;..PROC
0062E0: 45 44 55 52 45 20 43 68 61 6E 67 65 57 69 6E 64 EDURE ChangeWind
0062F0: 6F 77 28 69 3A 49 4E 54 45 47 45 52 29 3B 0D 0A ow(i:INTEGER);..
006300: 4E 44 3B 28 2A 46 69 6C 65 73 4F 70 65 6E 65 64 ND;(*FilesOpened
006310: 2A 29 0D 0A 09 20 20 7C 0D 0A 09 38 3A 49 46 20 *)... |...8:IF
006320: 46 69 6C 65 73 4F 70 65 6E 65 64 3E 30 20 54 48 FilesOpened>0 TH
006330: 45 4E 0D 0A 09 09 49 46 20 43 6F 75 6E 74 52 65 EN....IF CountRe
006340: 66 73 28 29 3E 31 20 54 48 45 4E 20 0D 0A 09 09 fs()>1 THEN ....
006350: 09 20 20 45 6C 69 64 65 57 69 6E 64 6F 77 28 43 . ElideWindow(C
006360: 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 0D 0A 09 urrentWindow)...
006370: 09 09 20 20 43 68 61 6E 67 65 57 69 6E 64 6F 77 .. ChangeWindow
006380: 28 31 29 3B 0D 0A 09 09 09 20 20 52 65 64 69 73 (1);..... Redis
006390: 70 6C 61 79 3B 0D 0A 09 20 20 09 45 4C 53 45 20 play;... .ELSE
0063A0: 43 68 65 63 6B 52 65 6D 6F 76 65 46 69 6C 65 20 CheckRemoveFile
0063B0: 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 20 END;....END;...
0063C0: 20 7C 0D 0A 09 39 3A 50 72 65 70 61 72 65 54 6F |...9:PrepareTo
0063D0: 4C 65 61 76 65 3B 0D 0A 09 20 20 49 46 20 72 65 Leave;... IF re
0063E0: 70 6C 79 3D 30 20 54 48 45 4E 20 48 41 4C 54 20 ply=0 THEN HALT
0063F0: 09 45 4E 44 7C 0D 0A 09 31 30 3A 20 52 65 73 65 .END|...10: Rese
006400: 74 41 6C 6C 44 69 73 63 73 3B 0D 0A 09 20 20 20 tAllDiscs;...
006410: 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 20 41 ErrorMessage(' A
006420: 6C 6C 20 64 69 73 63 73 20 6E 6F 77 20 72 65 61 ll discs now rea
006430: 64 2F 77 72 69 74 65 27 2C 27 20 27 29 3B 0D 0A d/write',' ');..
006440: 09 20 20 20 45 4E 44 3B 0D 0A 09 45 4E 44 3B 20 . END;...END;
006450: 28 2A 49 46 20 46 69 6C 65 73 4F 70 65 6E 65 64 (*IF FilesOpened
006460: 20 65 74 63 20 2A 29 0D 0A 09 45 4E 44 20 44 6F etc *)...END Do
006470: 4D 65 6E 75 4F 70 3B 0D 0A 09 45 4E 44 20 44 6F MenuOp;...END Do
006480: 4D 65 6E 75 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A Menu............
006490: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0064A0: 1A 1A 1A 1A 1A 1A 4C 69 73 74 20 54 48 45 4E 0D ......List THEN.
0064B0: 0A 09 09 09 57 72 69 74 65 43 68 61 72 28 4C 69 ....WriteChar(Li
0064C0: 73 74 2C 44 65 76 69 63 65 29 3B 0D 0A 09 09 09 st,Device);.....
0064D0: 57 72 69 74 65 43 68 61 72 28 4C 69 73 74 2C 63 WriteChar(List,c
0064E0: 68 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 h);.....END;....
0064F0: 57 72 69 74 65 53 74 72 69 6E 67 28 4E 61 6D 65 WriteString(Name
006500: 0D 0A 42 45 47 49 4E 0D 0A 09 53 61 76 65 46 69 ..BEGIN...SaveFi
006510: 6C 65 73 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3D les;...IF reply=
006520: 30 20 54 48 45 4E 0D 0A 09 09 43 6C 65 61 72 44 0 THEN....ClearD
006530: 69 73 70 6C 61 79 3B 0D 0A 09 09 53 74 6F 72 65 isplay;....Store
006540: 4D 61 63 72 6F 73 3B 0D 0A 09 09 45 4E 44 3B 0D Macros;....END;.
006550: 0A 09 45 4E 44 20 50 72 65 70 61 72 65 54 6F 4C ..END PrepareToL
006560: 65 61 76 65 3B 09 09 0D 0A 0D 0A 50 52 4F 43 45 eave;......PROCE
006570: 44 55 52 45 20 43 61 6C 6C 43 6F 6D 70 69 6C 65 DURE CallCompile
006580: 72 73 28 6F 70 74 31 2C 6F 70 74 32 3A 41 52 52 rs(opt1,opt2:ARR
006590: 41 59 20 4F 46 20 43 48 41 52 29 3B 0D 0A 42 45 AY OF CHAR);..BE
0065A0: 47 49 4E 0D 0A 09 50 72 65 70 61 72 65 54 6F 4C GIN...PrepareToL
0065B0: 65 61 76 65 3B 0D 0A 09 49 46 20 72 65 70 6C 79 eave;...IF reply
0065C0: 3D 30 20 54 48 45 4E 0D 0A 09 20 20 20 20 43 41 =0 THEN... CA
0065D0: 53 45 20 46 69 6C 65 54 79 70 65 28 46 69 6C 65 SE FileType(File
0065E0: 73 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 29 20 s[CurrentFile])
0065F0: 4F 46 0D 0A 09 09 31 3A 43 61 6C 6C 57 69 74 68 OF....1:CallWith
006600: 46 69 6C 65 28 6F 70 74 31 2C 46 69 6C 65 73 5B File(opt1,Files[
006610: 43 75 72 72 65 6E 74 46 69 6C 65 5D 29 7C 0D 0A CurrentFile])|..
006620: 09 09 32 3A 43 61 6C 6C 57 69 74 68 46 69 6C 65 ..2:CallWithFile
006630: 28 6F 70 74 32 2C 46 69 6C 65 73 5B 43 75 72 72 (opt2,Files[Curr
006640: 65 6E 74 46 69 6C 65 5D 29 3B 0D 0A 09 09 45 4E entFile]);....EN
006650: 44 3B 0D 0A 09 09 52 65 64 69 73 70 6C 61 79 3B D;....Redisplay;
006660: 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 61 67 65 ....ErrorMessage
006670: 28 27 20 49 6E 76 61 6C 69 64 20 46 69 6C 65 20 (' Invalid File
006680: 54 79 70 65 27 2C 27 20 27 29 3B 0D 0A 09 20 20 Type',' ');...
006690: 20 20 45 4E 44 3B 28 2A 49 46 2A 29 0D 0A 09 45 END;(*IF*)...E
0066A0: 4E 44 20 43 61 6C 6C 43 6F 6D 70 69 6C 65 72 73 ND CallCompilers
0066B0: 3B 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 6F ;...PROCEDURE Co
0066C0: 75 6E 74 52 65 66 73 28 29 3A 43 41 52 44 49 4E untRefs():CARDIN
0066D0: 41 4C 3B 09 0D 0A 56 41 52 09 6A 3A 43 41 52 44 AL;...VAR.j:CARD
0066E0: 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 6A INAL;..BEGIN...j
0066F0: 3A 3D 30 3B 0D 0A 09 46 4F 52 20 69 3A 3D 31 20 :=0;...FOR i:=1
006700: 29 3B 0D 0A 09 09 57 1A 1A 1A 1A 1A 1A 1A 1A 1A );....W.........
006710: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
006720: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
006730: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
006740: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
006750: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
006760: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
006770: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
006780: 6D 6F 64 75 6C 65 2E 0D 0A 45 44 49 54 43 4F 4E module...EDITCON
006790: 54 09 43 6F 6E 74 72 6F 6C 73 20 74 68 65 20 73 T.Controls the s
0067A0: 63 72 65 65 6E 20 64 69 73 70 6C 61 79 2E 0D 0A creen display...
0067B0: 45 44 49 54 44 49 53 50 09 53 6F 6D 65 20 6F 74 EDITDISP.Some ot
0067C0: 68 65 72 20 73 63 72 65 65 6E 20 64 69 73 70 6C her screen displ
0067D0: 61 79 20 70 72 6F 63 65 64 75 72 65 73 2D 2D 65 ay procedures--e
0067E0: 73 73 65 6E 74 69 61 6C 6C 79 20 70 61 72 74 0D ssentially part.
0067F0: 0A 09 6F 66 20 45 44 49 54 43 4F 4E 54 2C 20 6B ..of EDITCONT, k
006800: 65 70 74 20 73 65 70 61 72 61 74 65 20 66 6F 72 ept separate for
006810: 20 65 61 73 65 20 6F 66 20 6D 61 69 6E 74 65 6E ease of mainten
006820: 61 6E 63 65 2E 0D 0A 4D 41 4B 45 45 44 49 54 09 ance...MAKEEDIT.
006830: 50 65 72 66 6F 72 6D 73 20 74 68 65 20 63 68 61 Performs the cha
006840: 6E 67 65 73 20 74 6F 20 74 68 65 20 66 69 6C 65 nges to the file
006850: 28 73 29 20 62 65 69 6E 67 20 65 64 69 74 65 64 (s) being edited
006860: 2E 0D 0A 4B 45 59 42 4F 41 52 44 09 41 63 63 65 ...KEYBOARD.Acce
006870: 70 74 73 20 69 6E 70 75 74 20 66 72 6F 6D 20 74 pts input from t
006880: 68 65 20 6B 65 79 62 6F 61 72 64 20 61 6E 64 20 he keyboard and
006890: 63 61 6C 6C 73 20 61 70 70 72 6F 70 72 69 61 74 calls appropriat
0068A0: 65 0D 0A 09 09 72 6F 75 74 69 6E 65 73 20 74 6F e....routines to
0068B0: 20 70 65 72 66 6F 72 6D 20 74 68 65 20 72 65 71 perform the req
0068C0: 75 65 73 74 65 64 20 65 64 69 74 20 66 75 6E 63 uested edit func
0068D0: 74 69 6F 6E 73 2E 0D 0A 44 4F 4D 45 4E 55 09 09 tions...DOMENU..
0068E0: 53 75 70 70 6F 72 74 73 20 74 68 65 20 6F 70 74 Supports the opt
0068F0: 69 6F 6E 73 20 6D 65 6E 75 20 28 74 68 61 74 20 ions menu (that
006900: 54 4F 20 57 69 6E 64 6F 77 73 20 44 4F 0D 0A 09 TO Windows DO...
006910: 09 49 46 20 57 69 6E 64 6F 77 46 69 6C 65 5B 69 .IF WindowFile[i
006920: 5D 3D 43 75 72 72 65 6E 74 46 69 6C 65 20 54 48 ]=CurrentFile TH
006930: 45 4E 20 49 4E 43 28 6A 29 20 45 4E 44 3B 0D 0A EN INC(j) END;..
006940: 09 09 45 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 ..END;...RETURN
006950: 6A 0D 0A 09 45 4E 44 20 43 6F 75 6E 74 52 65 66 j...END CountRef
006960: 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 s;..PROCEDURE Re
006970: 6D 6F 76 65 46 69 6C 65 3B 0D 0A 56 41 52 09 6A moveFile;..VAR.j
006980: 2C 6B 3A 43 41 52 44 49 4E 41 4C 3B 63 68 3A 43 ,k:CARDINAL;ch:C
006990: 48 41 52 3B 0D 0A 42 45 47 49 4E 0D 0A 09 6A 3A HAR;..BEGIN...j:
0069A0: 3D 43 75 72 72 65 6E 74 46 69 6C 65 3B 0D 0A 09 =CurrentFile;...
0069B0: 6B 3A 3D 31 3B 0D 0A 09 57 48 49 4C 45 20 6B 3C k:=1;...WHILE k<
0069C0: 3D 57 69 6E 64 6F 77 73 20 44 4F 0D 0A 09 09 49 =Windows DO....I
0069D0: 46 20 57 69 6E 64 6F 77 46 69 6C 65 5B 6B 5D 3D F WindowFile[k]=
0069E0: 6A 20 54 48 45 4E 0D 0A 09 09 20 09 45 6C 69 64 j THEN.... .Elid
0069F0: 65 57 69 6E 64 6F 77 28 6B 29 20 20 28 2A 77 68 eWindow(k) (*wh
006A00: 69 63 68 20 64 65 63 72 65 6D 65 6E 74 73 20 77 ich decrements w
006A10: 69 6E 64 6F 77 73 2A 29 0D 0A 09 09 45 4C 53 45 indows*)....ELSE
006A20: 20 49 46 20 57 69 6E 64 6F 77 46 69 6C 65 5B 6B IF WindowFile[k
006A30: 5D 3E 6A 20 54 48 45 4E 0D 0A 09 09 09 44 45 43 ]>j THEN.....DEC
006A40: 28 57 69 6E 64 6F 77 46 69 6C 65 5B 6B 5D 29 3B (WindowFile[k]);
006A50: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 20 20 20 .....END;....
006A60: 20 20 49 4E 43 28 6B 29 3B 0D 0A 09 09 20 20 20 INC(k);....
006A70: 20 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A END;....END;..
006A80: 09 41 62 61 6E 64 6F 6E 46 69 6C 65 28 46 69 6C .AbandonFile(Fil
006A90: 65 73 5B 6A 5D 29 3B 0D 0A 09 46 4F 52 20 69 3A es[j]);...FOR i:
006AA0: 3D 6A 2B 31 20 54 4F 20 46 69 6C 65 73 4F 70 65 =j+1 TO FilesOpe
006AB0: 6E 65 64 20 44 4F 20 0D 0A 09 09 46 69 6C 65 73 ned DO ....Files
006AC0: 5B 69 2D 31 5D 3A 3D 46 69 6C 65 73 5B 69 5D 3B [i-1]:=Files[i];
006AD0: 0D 0A 09 09 55 70 64 61 74 65 64 5B 69 2D 31 5D ....Updated[i-1]
006AE0: 3A 3D 55 70 64 61 74 65 64 5B 69 5D 3B 0D 0A 09 :=Updated[i];...
006AF0: 09 45 4E 44 3B 0D 0A 09 44 45 43 28 46 69 6C 65 .END;...DEC(File
006B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
006D00: 73 4F 70 65 6E 65 64 29 3B 0D 0A 09 43 68 61 6E sOpened);...Chan
006D10: 67 65 57 69 6E 64 6F 77 28 31 29 3B 0D 0A 20 20 geWindow(1);..
006D20: 09 52 65 64 69 73 70 6C 61 79 3B 0D 0A 09 45 4E .Redisplay;...EN
006D30: 44 20 52 65 6D 6F 76 65 46 69 6C 65 3B 0D 0A 50 D RemoveFile;..P
006D40: 52 4F 43 45 44 55 52 45 20 43 68 65 63 6B 52 65 ROCEDURE CheckRe
006D50: 6D 6F 76 65 46 69 6C 65 3B 0D 0A 42 45 47 49 4E moveFile;..BEGIN
006D60: 0D 0A 09 49 46 20 55 70 64 61 74 65 64 5B 43 75 ...IF Updated[Cu
006D70: 72 72 65 6E 74 46 69 6C 65 5D 20 54 48 45 4E 0D rrentFile] THEN.
006D80: 0A 09 09 43 6C 65 61 72 44 69 73 70 6C 61 79 3B ...ClearDisplay;
006D90: 0D 0A 09 09 57 72 69 74 65 53 74 72 69 6E 67 28 ....WriteString(
006DA0: 27 20 46 69 6C 65 20 75 70 64 61 74 65 64 20 2D ' File updated -
006DB0: 20 41 72 65 20 79 6F 75 20 73 75 72 65 20 27 29 Are you sure ')
006DC0: 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 52 65 61 6C ;....IF NOT Real
006DD0: 6C 79 28 29 20 54 48 45 4E 20 0D 0A 09 09 09 52 ly() THEN .....R
006DE0: 65 64 69 73 70 6C 61 79 3B 0D 0A 09 09 09 52 45 edisplay;.....RE
006DF0: 54 55 52 4E 20 0D 0A 09 09 09 45 4E 44 3B 0D 0A TURN .....END;..
006E00: 09 09 45 4E 44 3B 0D 0A 09 52 65 6D 6F 76 65 46 ..END;...RemoveF
006E10: 69 6C 65 3B 0D 0A 09 45 4E 44 20 43 68 65 63 6B ile;...END Check
006E20: 52 65 6D 6F 76 65 46 69 6C 65 3B 0D 0A 42 45 47 RemoveFile;..BEG
006E30: 49 4E 0D 0A 09 53 65 74 42 6F 78 50 6F 73 28 79 IN...SetBoxPos(y
006E40: 29 3B 0D 0A 09 63 3A 3D 47 65 74 46 72 6F 6D 4D );...c:=GetFromM
006E50: 65 6E 75 28 54 65 78 74 2C 31 30 2C 79 2C 35 2C enu(Text,10,y,5,
006E60: 32 29 3B 0D 0A 09 43 6C 65 61 72 43 68 61 72 42 2);...ClearCharB
006E70: 75 66 66 65 72 3B 0D 0A 09 49 46 20 28 46 69 6C uffer;...IF (Fil
006E80: 65 73 4F 70 65 6E 65 64 3D 30 29 20 41 4E 44 20 esOpened=0) AND
006E90: 28 63 20 49 4E 20 7B 32 2E 2E 38 7D 29 20 54 48 (c IN {2..8}) TH
006EA0: 45 4E 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 61 EN....ErrorMessa
006EB0: 67 65 28 27 59 6F 75 20 68 61 76 65 20 74 6F 20 ge('You have to
006EC0: 62 65 20 65 64 69 74 69 6E 67 20 61 20 66 69 6C be editing a fil
006ED0: 65 20 74 6F 20 64 6F 20 74 68 69 73 27 2C 27 20 e to do this','
006EE0: 27 29 3B 0D 0A 09 45 4C 53 45 20 43 41 53 45 20 ');...ELSE CASE
006EF0: 63 20 4F 46 0D 0A 09 31 3A 49 46 20 57 69 6E 64 c OF...1:IF Wind
006F00: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
006F10: 45 20 45 64 69 74 43 6F 6E 74 72 6F 6C 3B 0D 0A E EditControl;..
006F20: 46 52 4F 4D 20 4D 61 6B 65 45 64 69 74 73 20 49 FROM MakeEdits I
006F30: 4D 50 4F 52 54 20 45 64 69 74 46 69 6C 65 2C 50 MPORT EditFile,P
006F40: 6F 73 69 74 69 6F 6E 3B 0D 0A 46 52 4F 4D 20 54 osition;..FROM T
006F50: 65 72 6D 69 6E 61 6C 20 49 4D 50 4F 52 54 20 57 erminal IMPORT W
006F60: 72 69 74 65 2C 57 72 69 74 65 4C 6E 3B 0D 0A 0D rite,WriteLn;...
006F70: 0A 28 2A 09 45 64 69 74 6F 72 20 63 6F 6E 74 72 .(*.Editor contr
006F80: 6F 6C 20 2D 20 64 61 74 61 20 61 72 65 61 73 20 ol - data areas
006F90: 66 6F 72 20 66 69 6C 65 20 61 6E 64 20 72 6F 75 for file and rou
006FA0: 74 69 6E 65 73 20 77 68 69 63 68 20 61 63 74 75 tines which actu
006FB0: 61 6C 6C 79 0D 0A 09 70 65 72 66 6F 72 6D 20 65 ally...perform e
006FC0: 64 69 74 20 66 75 6E 63 74 69 6F 6E 73 20 62 79 dit functions by
006FD0: 20 63 61 6C 6C 69 6E 67 20 6D 61 6B 65 65 64 69 calling makeedi
006FE0: 74 20 74 6F 20 65 64 69 74 20 74 68 65 20 66 69 t to edit the fi
006FF0: 6C 65 20 61 6E 64 0D 0A 09 65 64 69 74 64 69 73 le and...editdis
007000: 70 20 74 6F 20 63 68 61 6E 67 65 20 74 68 65 20 p to change the
007010: 73 63 72 65 65 6E 2A 29 0D 0A 43 4F 4E 53 54 20 screen*)..CONST
007020: 20 09 4D 61 78 45 64 69 74 46 69 6C 65 73 3D 33 .MaxEditFiles=3
007030: 3B 0D 0A 0D 0A 56 41 52 09 46 69 6C 65 73 3A 20 ;....VAR.Files:
007040: 41 52 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 74 ARRAY[1..MaxEdit
007050: 46 69 6C 65 73 5D 20 4F 46 20 45 64 69 74 46 69 Files] OF EditFi
007060: 6C 65 3B 0D 0A 09 46 69 6C 65 73 4F 70 65 6E 65 le;...FilesOpene
007070: 64 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 43 75 d:CARDINAL;...Cu
007080: 72 72 65 6E 74 46 69 6C 65 2C 43 75 72 72 65 6E rrentFile,Curren
007090: 74 57 69 6E 64 6F 77 3A 43 41 52 44 49 4E 41 4C tWindow:CARDINAL
0070A0: 3B 0D 0A 09 46 69 6C 65 50 6F 73 69 74 69 6F 6E ;...FilePosition
0070B0: 3A 41 52 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 :ARRAY[1..MaxEdi
0070C0: 74 46 69 6C 65 73 5D 20 4F 46 20 50 6F 73 69 74 tFiles] OF Posit
0070D0: 69 6F 6E 3B 0D 0A 09 63 75 72 78 2C 63 75 72 79 ion;...curx,cury
0070E0: 3A 41 52 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 :ARRAY[1..MaxEdi
0070F0: 74 46 69 6C 65 73 5D 20 4F 46 20 43 41 52 44 49 tFiles] OF CARDI
007100: 6F 77 73 3D 33 20 54 48 45 4E 20 45 72 72 6F 72 ows=3 THEN Error
007110: 4D 65 73 73 61 67 65 28 27 20 33 20 77 69 6E 64 Message(' 3 wind
007120: 6F 77 73 20 69 73 20 6D 61 78 20 61 6C 6C 6F 77 ows is max allow
007130: 65 64 27 2C 27 20 27 29 0D 0A 09 20 20 45 4C 53 ed',' ')... ELS
007140: 45 0D 0A 09 09 47 65 74 53 74 72 69 6E 67 28 66 E....GetString(f
007150: 6E 2C 79 2C 27 46 69 6C 65 3A 27 29 3B 0D 0A 09 n,y,'File:');...
007160: 09 4F 70 65 6E 28 66 6E 2C 36 35 35 33 35 29 3B .Open(fn,65535);
007170: 0D 0A 09 09 45 4E 44 0D 0A 09 20 20 7C 0D 0A 09 ....END... |...
007180: 32 3A 57 72 69 74 65 41 77 61 79 46 69 6C 65 3B 2:WriteAwayFile;
007190: 0D 0A 09 20 20 7C 0D 0A 09 33 3A 57 72 69 74 65 ... |...3:Write
0071A0: 41 77 61 79 46 69 6C 65 3B 0D 0A 09 20 20 49 46 AwayFile;... IF
0071B0: 20 72 65 70 6C 79 3D 30 20 54 48 45 4E 20 0D 0A reply=0 THEN ..
0071C0: 09 09 52 65 6D 6F 76 65 46 69 6C 65 3B 0D 0A 09 ..RemoveFile;...
0071D0: 09 45 4E 44 3B 0D 0A 09 20 20 7C 0D 0A 09 34 3A .END;... |...4:
0071E0: 49 46 20 57 69 6E 64 6F 77 73 3D 33 20 54 48 45 IF Windows=3 THE
0071F0: 4E 20 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 N ErrorMessage('
007200: 20 33 20 77 69 6E 64 6F 77 73 20 69 73 20 6D 61 3 windows is ma
007210: 78 20 61 6C 6C 6F 77 65 64 27 2C 27 20 27 29 0D x allowed',' ').
007220: 0A 09 20 20 45 4C 53 45 0D 0A 09 09 4D 61 6B 65 .. ELSE....Make
007230: 57 69 6E 64 6F 77 3B 0D 0A 09 09 53 65 74 57 69 Window;....SetWi
007240: 6E 64 6F 77 73 28 57 69 6E 64 6F 77 73 29 3B 0D ndows(Windows);.
007250: 0A 09 09 43 68 61 6E 67 65 57 69 6E 64 6F 77 28 ...ChangeWindow(
007260: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 3B 0D CurrentWindow);.
007270: 0A 09 09 52 65 64 69 73 70 6C 61 79 3B 0D 0A 09 ...Redisplay;...
007280: 09 45 4E 44 7C 0D 0A 09 09 0D 0A 09 35 3A 43 61 .END|.......5:Ca
007290: 6C 6C 43 6F 6D 70 69 6C 65 72 73 28 27 4D 32 5B llCompilers('M2[
0072A0: 45 20 27 2C 27 4D 44 5B 45 20 27 29 7C 0D 0A 09 E ','MD[E ')|...
0072B0: 36 3A 43 61 6C 6C 43 6F 6D 70 69 6C 65 72 73 28 6:CallCompilers(
0072C0: 27 4D 32 20 27 2C 27 4D 44 20 27 29 7C 0D 0A 09 'M2 ','MD ')|...
0072D0: 37 3A 49 46 20 46 69 6C 65 73 4F 70 65 6E 65 64 7:IF FilesOpened
0072E0: 3E 30 20 54 48 45 4E 0D 0A 09 09 43 68 65 63 6B >0 THEN....Check
0072F0: 52 65 6D 6F 76 65 46 69 6C 65 3B 0D 0A 09 09 45 RemoveFile;....E
007300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
007310: 06 00 01 00 02 09 52 E5 06 00 C9 02 00 00 00 02 ......R.........
007320: 06 00 C5 02 00 00 00 02 06 00 C1 02 00 00 00 02 ................
007330: 06 00 C6 02 00 00 00 02 06 00 C2 02 00 00 00 02 ................
007340: 06 00 C7 02 00 00 00 02 06 00 C3 02 00 00 00 02 ................
007350: 06 00 C8 02 00 00 00 02 06 00 C4 02 00 00 00 02 ................
007360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007400: 3A 3D 54 68 69 73 78 2D 43 75 72 72 65 6E 74 4C :=Thisx-CurrentL
007410: 65 66 74 4D 61 72 67 69 6E 3B 0D 0A 09 63 75 72 eftMargin;...cur
007420: 78 5B 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 5D x[CurrentWindow]
007430: 3A 3D 54 68 69 73 78 3B 0D 0A 09 52 65 73 65 74 :=Thisx;...Reset
007440: 50 6F 73 3B 0D 0A 09 45 4E 44 20 43 68 61 6E 67 Pos;...END Chang
007450: 65 50 6F 73 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 ePos;....PROCEDU
007460: 52 45 20 4C 69 6E 65 4D 6F 76 65 28 62 79 3A 49 RE LineMove(by:I
007470: 4E 54 45 47 45 52 29 3B 0D 0A 56 41 52 09 69 3A NTEGER);..VAR.i:
007480: 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 49 4E 0D INTEGER;..BEGIN.
007490: 0A 09 52 65 44 72 61 77 6E 3A 3D 46 41 4C 53 45 ..ReDrawn:=FALSE
0074A0: 3B 0D 0A 09 69 3A 3D 4C 69 6E 65 50 6F 73 3B 0D ;...i:=LinePos;.
0074B0: 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 62 79 29 ..SetLinePos(by)
0074C0: 3B 0D 0A 09 4C 69 6E 65 50 6F 73 3A 3D 69 3B 0D ;...LinePos:=i;.
0074D0: 0A 09 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 09 49 ..ChangePos;...I
0074E0: 46 20 41 42 53 28 62 79 29 3E 31 20 54 48 45 4E F ABS(by)>1 THEN
0074F0: 0D 0A 09 09 52 65 44 69 73 70 6C 61 79 57 69 6E ....ReDisplayWin
007500: 64 6F 77 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 dow;....END;...E
007510: 4E 44 20 4C 69 6E 65 4D 6F 76 65 3B 0D 0A 56 41 ND LineMove;..VA
007520: 52 09 70 77 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A R.pw:Position;..
007530: 50 52 4F 43 45 44 55 52 45 20 57 72 69 74 65 50 PROCEDURE WriteP
007540: 61 72 74 4C 69 6E 65 28 63 3A 43 41 52 44 49 4E artLine(c:CARDIN
007550: 41 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 44 6F AL);..BEGIN...Do
007560: 53 63 72 65 65 6E 43 68 61 6E 67 65 28 44 65 6C ScreenChange(Del
007570: 45 6F 6C 29 3B 0D 0A 09 47 65 74 50 6F 73 69 74 Eol);...GetPosit
007580: 69 6F 6E 28 43 75 72 46 69 6C 65 50 74 72 5E 2C ion(CurFilePtr^,
007590: 70 77 29 3B 0D 0A 09 4C 4F 4F 50 0D 0A 09 09 52 pw);...LOOP....R
0075A0: 65 61 64 4E 65 78 74 43 68 61 72 28 70 77 2C 63 eadNextChar(pw,c
0075B0: 68 29 3B 0D 0A 09 09 49 46 20 28 63 68 3D 30 64 h);....IF (ch=0d
0075C0: 78 29 20 4F 52 20 28 63 68 3D 31 61 78 29 20 4F x) OR (ch=1ax) O
0075D0: 52 20 28 63 68 3D 30 61 78 29 20 54 48 45 4E 20 R (ch=0ax) THEN
0075E0: 45 58 49 54 20 45 4E 44 3B 0D 0A 09 09 49 46 20 EXIT END;....IF
0075F0: 63 3E 3D 28 53 63 72 65 65 6E 57 69 64 74 68 2B c>=(ScreenWidth+
007600: 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 53 74 61 72 CARDINAL;...Star
007610: 74 6F 66 57 69 6E 64 6F 77 2C 45 6E 64 6F 66 57 tofWindow,EndofW
007620: 69 6E 64 6F 77 3A 43 41 52 44 49 4E 41 4C 3B 0D indow:CARDINAL;.
007630: 0A 09 63 68 3A 43 48 41 52 3B 0D 0A 09 43 75 72 ..ch:CHAR;...Cur
007640: 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 6E 3A 43 rentLeftMargin:C
007650: 41 52 44 49 4E 41 4C 3B 0D 0A 09 46 69 6C 65 4C ARDINAL;...FileL
007660: 69 6D 69 74 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 imit:BOOLEAN;...
007670: 52 65 44 72 61 77 6E 3A 42 4F 4F 4C 45 41 4E 3B ReDrawn:BOOLEAN;
007680: 0D 0A 09 43 75 72 46 69 6C 65 50 74 72 3A 50 45 ...CurFilePtr:PE
007690: 64 69 74 46 69 6C 65 3B 0D 0A 50 52 4F 43 45 44 ditFile;..PROCED
0076A0: 55 52 45 20 43 68 61 6E 67 65 50 6F 73 3B 46 4F URE ChangePos;FO
0076B0: 52 57 41 52 44 3B 0D 0A 50 52 4F 43 45 44 55 52 RWARD;..PROCEDUR
0076C0: 45 20 44 6F 53 63 72 65 65 6E 43 68 61 6E 67 65 E DoScreenChange
0076D0: 28 43 6F 64 65 3A 45 64 69 74 73 29 3B 0D 0A 42 (Code:Edits);..B
0076E0: 45 47 49 4E 0D 0A 09 53 63 72 65 65 6E 43 6F 6E EGIN...ScreenCon
0076F0: 74 72 6F 6C 28 43 6F 64 65 29 3B 0D 0A 09 45 4E trol(Code);...EN
007700: 44 20 44 6F 53 63 72 65 65 6E 43 68 61 6E 67 65 D DoScreenChange
007710: 3B 0D 0A 0D 0A 0D 0A 56 41 52 09 6C 69 6E 65 73 ;......VAR.lines
007720: 6D 6F 76 65 64 3A 49 4E 54 45 47 45 52 3B 0D 0A moved:INTEGER;..
007730: 09 70 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A 0D 0A .p:Position;....
007740: 50 52 4F 43 45 44 55 52 45 20 53 65 74 4C 69 6E PROCEDURE SetLin
007750: 65 50 6F 73 28 6D 6F 76 65 3A 49 4E 54 45 47 45 ePos(move:INTEGE
007760: 52 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 52 65 74 R);..BEGIN...Ret
007770: 72 6C 69 6E 65 28 43 75 72 46 69 6C 65 50 74 72 rline(CurFilePtr
007780: 5E 2C 4C 69 6E 65 4C 65 6E 2C 4C 69 6E 65 50 6F ^,LineLen,LinePo
007790: 73 2C 70 2C 6C 69 6E 65 73 6D 6F 76 65 64 2C 6D s,p,linesmoved,m
0077A0: 6F 76 65 29 3B 0D 0A 09 45 4E 44 20 53 65 74 4C ove);...END SetL
0077B0: 69 6E 65 50 6F 73 3B 0D 0A 50 52 4F 43 45 44 55 inePos;..PROCEDU
0077C0: 52 45 20 4D 61 72 6B 41 73 55 70 64 61 74 65 64 RE MarkAsUpdated
0077D0: 3B 0D 0A 42 45 47 49 4E 0D 0A 09 55 70 64 61 74 ;..BEGIN...Updat
0077E0: 65 64 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 3A ed[CurrentFile]:
0077F0: 3D 54 52 55 45 0D 0A 09 45 4E 44 20 4D 61 72 6B =TRUE...END Mark
007800: 50 52 4F 43 45 44 55 52 45 20 45 6C 69 64 65 57 PROCEDURE ElideW
007810: 69 6E 64 6F 77 28 69 3A 49 4E 54 45 47 45 52 29 indow(i:INTEGER)
007820: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D 61 6B ;..PROCEDURE Mak
007830: 65 57 69 6E 64 6F 77 3B 0D 0A 50 52 4F 43 45 44 eWindow;..PROCED
007840: 55 52 45 20 53 63 72 6F 6C 6C 55 70 3B 0D 0A 50 URE ScrollUp;..P
007850: 52 4F 43 45 44 55 52 45 20 53 63 72 6F 6C 6C 44 ROCEDURE ScrollD
007860: 6F 77 6E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 own;..PROCEDURE
007870: 52 65 73 65 74 53 63 72 65 65 6E 50 6F 73 3B 0D ResetScreenPos;.
007880: 0A 50 52 4F 43 45 44 55 52 45 20 46 61 72 52 69 .PROCEDURE FarRi
007890: 67 68 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 ght;..PROCEDURE
0078A0: 46 61 72 4C 65 66 74 3B 0D 0A 50 52 4F 43 45 44 FarLeft;..PROCED
0078B0: 55 52 45 20 53 65 61 72 63 68 28 52 65 70 6C 61 URE Search(Repla
0078C0: 63 65 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 ce:ARRAY OF CHAR
0078D0: 3B 52 4C 65 6E 3A 49 4E 54 45 47 45 52 3B 4C 65 ;RLen:INTEGER;Le
0078E0: 6E 3A 43 41 52 44 49 4E 41 4C 29 3A 42 4F 4F 4C n:CARDINAL):BOOL
0078F0: 45 41 4E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 EAN;..PROCEDURE
007900: 4F 76 65 72 57 72 69 74 65 28 63 68 3A 43 48 41 OverWrite(ch:CHA
007910: 52 29 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 R);..PROCEDURE F
007920: 69 6E 64 57 6F 72 64 28 42 61 63 6B 57 61 72 64 indWord(BackWard
007930: 3A 42 4F 4F 4C 45 41 4E 3B 44 65 6C 65 74 65 3A :BOOLEAN;Delete:
007940: 42 4F 4F 4C 45 41 4E 29 3B 0D 0A 50 52 4F 43 45 BOOLEAN);..PROCE
007950: 44 55 52 45 20 52 65 44 69 73 70 6C 61 79 3B 0D DURE ReDisplay;.
007960: 0A 50 52 4F 43 45 44 55 52 45 20 47 6F 54 6F 4C .PROCEDURE GoToL
007970: 61 62 65 6C 28 63 68 3A 43 48 41 52 29 3B 0D 0A abel(ch:CHAR);..
007980: 45 4E 44 20 45 64 69 74 43 6F 6E 74 72 6F 6C 2E END EditControl.
007990: 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0079A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0079B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0079C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0079D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0079E0: 1A 1A 1A 1A 1A 54 20 20 44 45 46 20 00 00 00 00 .....T DEF ....
0079F0: 00 00 00 00 00 00 F3 45 78 0D 0D 01 69 0B 00 00 .......Ex...i...
007A00: 41 73 55 70 64 61 74 65 64 3B 0D 0A 50 52 4F 43 AsUpdated;..PROC
007A10: 45 44 55 52 45 20 44 65 6C 54 6F 45 4F 4C 3B 0D EDURE DelToEOL;.
007A20: 0A 42 45 47 49 4E 0D 0A 09 4D 61 72 6B 41 73 55 .BEGIN...MarkAsU
007A30: 70 64 61 74 65 64 3B 0D 0A 09 49 46 20 4C 69 6E pdated;...IF Lin
007A40: 65 50 6F 73 3C 3D 4C 69 6E 65 4C 65 6E 20 54 48 ePos<=LineLen TH
007A50: 45 4E 20 0D 0A 09 09 44 65 6C 43 68 61 72 73 28 EN ....DelChars(
007A60: 43 75 72 46 69 6C 65 50 74 72 5E 2C 4C 69 6E 65 CurFilePtr^,Line
007A70: 4C 65 6E 2D 4C 69 6E 65 50 6F 73 29 20 0D 0A 09 Len-LinePos) ...
007A80: 09 45 4E 44 3B 0D 0A 09 4C 69 6E 65 4C 65 6E 3A .END;...LineLen:
007A90: 3D 4C 69 6E 65 50 6F 73 3B 0D 0A 09 44 6F 53 63 =LinePos;...DoSc
007AA0: 72 65 65 6E 43 68 61 6E 67 65 28 44 65 6C 45 6F reenChange(DelEo
007AB0: 6C 29 3B 0D 0A 09 45 4E 44 20 44 65 6C 54 6F 45 l);...END DelToE
007AC0: 4F 4C 3B 0D 0A 56 41 52 09 0D 0A 09 62 3A 42 4F OL;..VAR....b:BO
007AD0: 4F 4C 45 41 4E 3B 0D 0A 50 52 4F 43 45 44 55 52 OLEAN;..PROCEDUR
007AE0: 45 20 52 65 73 65 74 50 6F 73 3B 0D 0A 42 45 47 E ResetPos;..BEG
007AF0: 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 54 68 69 73 IN...Gotoxy(This
007B00: 78 2C 54 68 69 73 79 29 3B 0D 0A 09 45 4E 44 20 x,Thisy);...END
007B10: 52 65 73 65 74 50 6F 73 3B 0D 0A 50 52 4F 43 45 ResetPos;..PROCE
007B20: 44 55 52 45 20 52 65 44 69 73 70 6C 61 79 57 69 DURE ReDisplayWi
007B30: 6E 64 6F 77 3B 0D 0A 42 45 47 49 4E 0D 0A 09 44 ndow;..BEGIN...D
007B40: 69 73 70 6C 61 79 46 69 6C 65 28 43 75 72 46 69 isplayFile(CurFi
007B50: 6C 65 50 74 72 5E 2C 43 75 72 72 65 6E 74 57 69 lePtr^,CurrentWi
007B60: 6E 64 6F 77 2C 54 68 69 73 78 2C 54 68 69 73 79 ndow,Thisx,Thisy
007B70: 29 3B 0D 0A 09 52 65 73 65 74 50 6F 73 3B 0D 0A );...ResetPos;..
007B80: 09 63 75 72 78 5B 43 75 72 72 65 6E 74 57 69 6E .curx[CurrentWin
007B90: 64 6F 77 5D 3A 3D 54 68 69 73 78 3B 0D 0A 09 63 dow]:=Thisx;...c
007BA0: 75 72 79 5B 43 75 72 72 65 6E 74 57 69 6E 64 6F ury[CurrentWindo
007BB0: 77 5D 3A 3D 54 68 69 73 79 3B 0D 0A 09 52 65 44 w]:=Thisy;...ReD
007BC0: 72 61 77 6E 3A 3D 54 52 55 45 3B 0D 0A 09 45 4E rawn:=TRUE;...EN
007BD0: 44 20 52 65 44 69 73 70 6C 61 79 57 69 6E 64 6F D ReDisplayWindo
007BE0: 77 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 w;..PROCEDURE Re
007BF0: 44 69 73 70 6C 61 79 3B 0D 0A 42 45 47 49 4E 0D Display;..BEGIN.
007C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E00: 0A 09 52 65 44 69 73 70 6C 61 79 57 69 6E 64 6F ..ReDisplayWindo
007E10: 77 3B 0D 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 w;...SetLinePos(
007E20: 30 29 3B 0D 0A 09 43 68 61 6E 67 65 50 6F 73 3B 0);...ChangePos;
007E30: 0D 0A 09 45 4E 44 20 52 65 44 69 73 70 6C 61 79 ...END ReDisplay
007E40: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 61 ;..PROCEDURE Cha
007E50: 6E 67 65 4D 61 72 67 69 6E 28 49 6E 63 3A 49 4E ngeMargin(Inc:IN
007E60: 54 45 47 45 52 29 3B 0D 0A 42 45 47 49 4E 0D 0A TEGER);..BEGIN..
007E70: 09 49 46 20 28 49 6E 63 3C 30 29 20 41 4E 44 20 .IF (Inc<0) AND
007E80: 20 28 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 (CurrentLeftMar
007E90: 67 69 6E 3C 43 41 52 44 49 4E 41 4C 28 2D 49 6E gin<CARDINAL(-In
007EA0: 63 29 29 20 54 48 45 4E 20 0D 0A 09 09 49 6E 63 c)) THEN ....Inc
007EB0: 3A 3D 2D 49 4E 54 45 47 45 52 28 43 75 72 72 65 :=-INTEGER(Curre
007EC0: 6E 74 4C 65 66 74 4D 61 72 67 69 6E 29 20 0D 0A ntLeftMargin) ..
007ED0: 09 09 45 4E 44 3B 0D 0A 09 49 46 20 28 49 6E 63 ..END;...IF (Inc
007EE0: 3E 30 29 20 41 4E 44 20 28 54 68 69 73 78 3C 43 >0) AND (Thisx<C
007EF0: 41 52 44 49 4E 41 4C 28 49 6E 63 29 29 20 54 48 ARDINAL(Inc)) TH
007F00: 45 4E 20 49 6E 63 3A 3D 54 68 69 73 78 20 45 4E EN Inc:=Thisx EN
007F10: 44 3B 0D 0A 09 43 75 72 72 65 6E 74 4C 65 66 74 D;...CurrentLeft
007F20: 4D 61 72 67 69 6E 3A 3D 49 4E 54 45 47 45 52 28 Margin:=INTEGER(
007F30: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
007F40: 6E 29 2B 49 6E 63 3B 0D 0A 09 54 68 69 73 78 3A n)+Inc;...Thisx:
007F50: 3D 49 4E 54 45 47 45 52 28 54 68 69 73 78 29 2D =INTEGER(Thisx)-
007F60: 49 6E 63 3B 0D 0A 09 63 75 72 78 5B 43 75 72 72 Inc;...curx[Curr
007F70: 65 6E 74 57 69 6E 64 6F 77 5D 3A 3D 54 68 69 73 entWindow]:=This
007F80: 78 3B 0D 0A 09 4C 65 66 74 4D 61 72 67 69 6E 5B x;...LeftMargin[
007F90: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 5D 3A 3D CurrentWindow]:=
007FA0: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
007FB0: 6E 3B 0D 0A 09 52 65 44 69 73 70 6C 61 79 57 69 n;...ReDisplayWi
007FC0: 6E 64 6F 77 3B 0D 0A 09 52 65 73 65 74 50 6F 73 ndow;...ResetPos
007FD0: 3B 0D 0A 09 45 4E 44 20 43 68 61 6E 67 65 4D 61 ;...END ChangeMa
007FE0: 72 67 69 6E 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 rgin;....PROCEDU
007FF0: 52 45 20 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 56 RE ChangePos;..V
008000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
008010: 4F 44 55 4C 45 20 45 64 69 74 43 6F 6E 74 72 6F ODULE EditContro
008020: 6C 3B 0D 0A 0D 0A 28 2A 09 45 64 69 74 6F 72 20 l;....(*.Editor
008030: 63 6F 6E 74 72 6F 6C 20 2D 20 64 61 74 61 20 61 control - data a
008040: 72 65 61 73 20 66 6F 72 20 66 69 6C 65 20 61 6E reas for file an
008050: 64 20 72 6F 75 74 69 6E 65 73 20 77 68 69 63 68 d routines which
008060: 20 61 63 74 75 61 6C 6C 79 0D 0A 09 70 65 72 66 actually...perf
008070: 6F 72 6D 20 65 64 69 74 20 66 75 6E 63 74 69 6F orm edit functio
008080: 6E 73 20 62 79 20 63 61 6C 6C 69 6E 67 20 6D 61 ns by calling ma
008090: 6B 65 65 64 69 74 20 74 6F 20 65 64 69 74 20 74 keedit to edit t
0080A0: 68 65 20 66 69 6C 65 20 61 6E 64 0D 0A 09 65 64 he file and...ed
0080B0: 69 74 64 69 73 70 20 74 6F 20 63 68 61 6E 67 65 itdisp to change
0080C0: 20 74 68 65 20 73 63 72 65 65 6E 2A 29 0D 0A 0D the screen*)...
0080D0: 0A 46 52 4F 4D 20 4D 61 6B 65 45 64 69 74 73 20 .FROM MakeEdits
0080E0: 49 4D 50 4F 52 54 20 49 6E 73 43 68 61 72 73 2C IMPORT InsChars,
0080F0: 44 65 6C 43 68 61 72 73 2C 52 65 74 72 6C 69 6E DelChars,Retrlin
008100: 65 2C 42 61 63 6B 4F 6E 65 43 68 61 72 2C 46 6F e,BackOneChar,Fo
008110: 72 77 61 72 64 4F 6E 65 43 68 61 72 2C 0D 0A 09 rwardOneChar,...
008120: 09 47 65 74 43 75 72 72 65 6E 74 43 68 61 72 2C .GetCurrentChar,
008130: 47 65 74 50 6F 73 69 74 69 6F 6E 2C 53 65 74 50 GetPosition,SetP
008140: 6F 73 69 74 69 6F 6E 2C 52 65 61 64 4E 65 78 74 osition,ReadNext
008150: 43 68 61 72 2C 46 69 6E 64 53 74 72 69 6E 67 2C Char,FindString,
008160: 0D 0A 09 09 4C 61 62 65 6C 4F 70 3B 0D 0A 46 52 ....LabelOp;..FR
008170: 4F 4D 20 45 64 69 74 44 69 73 70 6C 61 79 20 49 OM EditDisplay I
008180: 4D 50 4F 52 54 20 44 69 73 70 6C 61 79 46 69 6C MPORT DisplayFil
008190: 65 2C 45 72 72 6F 72 4D 65 73 73 61 67 65 2C 57 e,ErrorMessage,W
0081A0: 69 6E 64 6F 77 73 2C 4C 69 6E 65 73 50 65 72 57 indows,LinesPerW
0081B0: 69 6E 64 6F 77 3B 0D 0A 46 52 4F 4D 20 53 63 72 indow;..FROM Scr
0081C0: 65 65 6E 49 4F 20 49 4D 50 4F 52 54 20 45 64 69 eenIO IMPORT Edi
0081D0: 74 73 2C 44 65 6C 43 68 61 72 2C 44 65 6C 4C 69 ts,DelChar,DelLi
0081E0: 6E 65 2C 49 6E 73 43 68 61 72 2C 49 6E 73 4C 69 ne,InsChar,InsLi
0081F0: 6E 65 2C 44 65 6C 45 6F 6C 2C 4D 6F 76 65 55 70 ne,DelEol,MoveUp
008200: 41 52 09 69 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A AR.i:CARDINAL;..
008210: 42 45 47 49 4E 0D 0A 09 49 46 20 4C 69 6E 65 4C BEGIN...IF LineL
008220: 65 6E 3C 4C 69 6E 65 50 6F 73 20 54 48 45 4E 20 en<LinePos THEN
008230: 0D 0A 09 09 4C 69 6E 65 50 6F 73 3A 3D 4C 69 6E ....LinePos:=Lin
008240: 65 4C 65 6E 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 eLen;....END;...
008250: 54 68 69 73 78 3A 3D 30 3B 0D 0A 09 69 3A 3D 30 Thisx:=0;...i:=0
008260: 3B 09 0D 0A 09 4C 4F 4F 50 0D 0A 09 09 49 4E 43 ;....LOOP....INC
008270: 28 69 29 3B 0D 0A 09 09 63 68 3A 3D 47 65 74 43 (i);....ch:=GetC
008280: 75 72 72 65 6E 74 43 68 61 72 28 43 75 72 46 69 urrentChar(CurFi
008290: 6C 65 50 74 72 5E 29 3B 0D 0A 09 09 49 46 20 28 lePtr^);....IF (
0082A0: 69 3E 43 41 52 44 49 4E 41 4C 28 4C 69 6E 65 50 i>CARDINAL(LineP
0082B0: 6F 73 29 29 20 4F 52 20 28 63 68 3D 45 4F 46 29 os)) OR (ch=EOF)
0082C0: 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D THEN EXIT END;.
0082D0: 0A 09 09 49 46 20 63 68 3D 54 41 42 20 54 48 45 ...IF ch=TAB THE
0082E0: 4E 20 54 68 69 73 78 3A 3D 49 41 4E 44 28 54 68 N Thisx:=IAND(Th
0082F0: 69 73 78 2B 38 2C 30 66 66 66 38 68 29 20 0D 0A isx+8,0fff8h) ..
008300: 09 09 45 4C 53 45 20 20 49 4E 43 28 54 68 69 73 ..ELSE INC(This
008310: 78 29 20 45 4E 44 3B 0D 0A 09 09 62 3A 3D 46 6F x) END;....b:=Fo
008320: 72 77 61 72 64 4F 6E 65 43 68 61 72 28 43 75 72 rwardOneChar(Cur
008330: 46 69 6C 65 50 74 72 5E 29 20 0D 0A 09 09 45 4E FilePtr^) ....EN
008340: 44 3B 0D 0A 09 69 3A 3D 54 68 69 73 78 3B 0D 0A D;...i:=Thisx;..
008350: 09 57 48 49 4C 45 20 54 68 69 73 78 3E 3D 28 53 .WHILE Thisx>=(S
008360: 63 72 65 65 6E 57 69 64 74 68 2B 43 75 72 72 65 creenWidth+Curre
008370: 6E 74 4C 65 66 74 4D 61 72 67 69 6E 29 20 44 4F ntLeftMargin) DO
008380: 0D 0A 09 09 43 68 61 6E 67 65 4D 61 72 67 69 6E ....ChangeMargin
008390: 28 33 32 29 3B 0D 0A 09 09 54 68 69 73 78 3A 3D (32);....Thisx:=
0083A0: 69 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 57 48 49 i;....END;...WHI
0083B0: 4C 45 20 54 68 69 73 78 3C 43 75 72 72 65 6E 74 LE Thisx<Current
0083C0: 4C 65 66 74 4D 61 72 67 69 6E 20 44 4F 0D 0A 09 LeftMargin DO...
0083D0: 09 43 68 61 6E 67 65 4D 61 72 67 69 6E 28 2D 33 .ChangeMargin(-3
0083E0: 32 29 3B 0D 0A 09 09 54 68 69 73 78 3A 3D 69 3B 2);....Thisx:=i;
0083F0: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 54 68 69 73 78 ....END;...Thisx
008400: 2C 0D 0A 09 09 09 4D 6F 76 65 44 6F 77 6E 2C 4D ,.....MoveDown,M
008410: 6F 76 65 4C 65 66 74 2C 4D 6F 76 65 52 69 67 68 oveLeft,MoveRigh
008420: 74 2C 47 6F 74 6F 78 79 2C 43 6C 65 61 72 53 63 t,Gotoxy,ClearSc
008430: 72 65 65 6E 2C 0D 0A 09 09 09 53 63 72 65 65 6E reen,.....Screen
008440: 43 6F 6E 74 72 6F 6C 2C 53 63 72 6F 6C 6C 57 69 Control,ScrollWi
008450: 6E 64 6F 77 55 70 2C 53 63 72 6F 6C 6C 57 69 6E ndowUp,ScrollWin
008460: 64 6F 77 44 6F 77 6E 2C 0D 0A 09 09 09 53 63 72 dowDown,.....Scr
008470: 65 65 6E 57 69 64 74 68 2C 53 63 72 65 65 6E 44 eenWidth,ScreenD
008480: 65 70 74 68 3B 0D 0A 46 52 4F 4D 20 49 6E 74 4C epth;..FROM IntL
008490: 6F 67 69 63 20 49 4D 50 4F 52 54 20 49 41 4E 44 ogic IMPORT IAND
0084A0: 3B 09 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 ;...FROM.SYSTEM
0084B0: 49 4D 50 4F 52 54 20 41 44 52 3B 0D 0A 43 4F 4E IMPORT ADR;..CON
0084C0: 53 54 09 43 52 3D 30 64 78 3B 0D 0A 09 54 41 42 ST.CR=0dx;...TAB
0084D0: 3D 30 39 78 3B 0D 0A 09 4C 46 3D 30 61 78 3B 0D =09x;...LF=0ax;.
0084E0: 0A 09 45 4F 46 3D 31 61 78 3B 0D 0A 28 2A 09 41 ..EOF=1ax;..(*.A
0084F0: 20 72 65 6D 61 72 6B 20 6F 6E 20 74 68 65 20 75 remark on the u
008500: 73 65 20 6F 66 20 4C 69 6E 65 50 6F 73 20 61 6E se of LinePos an
008510: 64 20 63 75 72 78 0D 0A 0D 0A 09 4C 69 6E 65 50 d curx.....LineP
008520: 6F 73 20 61 6C 77 61 79 73 20 70 6F 69 6E 74 73 os always points
008530: 20 74 6F 20 74 68 65 20 6E 75 6D 62 65 72 20 6F to the number o
008540: 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 f the character
008550: 77 69 74 68 69 6E 20 74 68 65 0D 0A 09 74 65 78 within the...tex
008560: 74 20 6C 69 6E 65 2E 20 49 74 20 6E 65 65 64 20 t line. It need
008570: 6E 6F 74 20 62 65 20 74 68 65 20 73 61 6D 65 20 not be the same
008580: 61 73 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 as the position
008590: 6F 6E 20 74 68 65 0D 0A 09 73 63 72 65 65 6E 20 on the...screen
0085A0: 62 65 63 61 75 73 65 20 6F 66 20 74 68 65 20 75 because of the u
0085B0: 73 65 20 6F 66 20 74 61 62 20 63 68 61 72 61 63 se of tab charac
0085C0: 74 65 72 73 2A 29 0D 0A 54 59 50 45 09 50 45 64 ters*)..TYPE.PEd
0085D0: 69 74 46 69 6C 65 3D 50 4F 49 4E 54 45 52 20 54 itFile=POINTER T
0085E0: 4F 20 45 64 69 74 46 69 6C 65 3B 0D 0A 56 41 52 O EditFile;..VAR
0085F0: 09 69 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 63 3A .i:INTEGER;...c:
008600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
008610: 07 00 01 00 02 09 52 E5 07 00 C9 02 00 00 00 02 ......R.........
008620: 07 00 C5 02 00 00 00 02 07 00 C1 02 00 00 00 02 ................
008630: 07 00 C6 02 00 00 00 02 07 00 C2 02 00 00 00 02 ................
008640: 07 00 C7 02 00 00 00 02 07 00 C3 02 00 00 00 02 ................
008650: 07 00 C8 02 00 00 00 02 07 00 C4 02 00 00 00 02 ................
008660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008700: 20 73 74 72 69 6E 67 20 6F 66 20 6D 61 72 6B 73 string of marks
008710: 2C 20 74 61 62 73 20 20 6F 72 20 73 70 6F 61 63 , tabs or spoac
008720: 65 73 0D 0A 0D 0A 09 54 68 65 20 63 75 72 73 6F es.....The curso
008730: 72 20 69 73 20 72 65 70 6F 73 69 74 69 6F 6E 65 r is repositione
008740: 64 2A 29 0D 0A 56 41 52 09 63 68 3A 43 48 41 52 d*)..VAR.ch:CHAR
008750: 3B 0D 0A 09 62 31 3A 42 4F 4F 4C 45 41 4E 3B 0D ;...b1:BOOLEAN;.
008760: 0A 42 45 47 49 4E 0D 0A 09 46 69 6C 65 4C 69 6D .BEGIN...FileLim
008770: 69 74 3A 3D 46 41 4C 53 45 3B 0D 0A 09 49 46 20 it:=FALSE;...IF
008780: 42 61 63 6B 77 61 72 64 20 54 48 45 4E 20 0D 0A Backward THEN ..
008790: 09 09 4C 65 66 74 3B 0D 0A 09 09 49 46 20 4E 4F ..Left;....IF NO
0087A0: 54 20 4D 6F 76 65 64 4F 4B 20 54 48 45 4E 20 52 T MovedOK THEN R
0087B0: 45 54 55 52 4E 20 45 4E 44 3B 0D 0A 09 09 45 4E ETURN END;....EN
0087C0: 44 3B 0D 0A 09 63 68 3A 3D 47 65 74 43 75 72 72 D;...ch:=GetCurr
0087D0: 65 6E 74 43 68 61 72 28 43 75 72 46 69 6C 65 50 entChar(CurFileP
0087E0: 74 72 5E 29 3B 0D 0A 09 62 31 3A 3D 41 6C 70 68 tr^);...b1:=Alph
0087F0: 61 4E 75 6D 28 63 68 29 3B 0D 0A 09 49 46 20 63 aNum(ch);...IF c
008800: 68 3D 45 4F 46 20 54 48 45 4E 20 52 45 54 55 52 h=EOF THEN RETUR
008810: 4E 20 45 4E 44 3B 0D 0A 09 52 45 50 45 41 54 0D N END;...REPEAT.
008820: 0A 09 09 49 46 20 44 65 6C 65 74 65 20 54 48 45 ...IF Delete THE
008830: 4E 20 44 65 6C 4F 6E 65 43 68 61 72 20 45 4E 44 N DelOneChar END
008840: 3B 0D 0A 09 09 49 46 20 42 61 63 6B 77 61 72 64 ;....IF Backward
008850: 20 20 20 54 48 45 4E 20 4C 65 66 74 3B 0D 0A 09 THEN Left;...
008860: 09 45 4C 53 49 46 20 4E 4F 54 20 44 65 6C 65 74 .ELSIF NOT Delet
008870: 65 20 54 48 45 4E 20 52 69 67 68 74 20 45 4E 44 e THEN Right END
008880: 3B 0D 0A 09 09 63 68 3A 3D 47 65 74 43 75 72 72 ;....ch:=GetCurr
008890: 65 6E 74 43 68 61 72 28 43 75 72 46 69 6C 65 50 entChar(CurFileP
0088A0: 74 72 5E 29 3B 0D 0A 09 09 55 4E 54 49 4C 20 20 tr^);....UNTIL
0088B0: 28 62 31 3C 3E 41 6C 70 68 61 4E 75 6D 28 63 68 (b1<>AlphaNum(ch
0088C0: 29 29 20 4F 52 20 46 69 6C 65 4C 69 6D 69 74 20 )) OR FileLimit
0088D0: 4F 52 20 28 63 68 3D 45 4F 46 29 3B 0D 0A 09 49 OR (ch=EOF);...I
0088E0: 46 20 42 61 63 6B 77 61 72 64 20 41 4E 44 20 4E F Backward AND N
0088F0: 4F 54 20 46 69 6C 65 4C 69 6D 69 74 20 54 48 45 OT FileLimit THE
008900: 6E 65 50 6F 73 28 69 29 3B 0D 0A 09 49 46 20 6C nePos(i);...IF l
008910: 69 6E 65 73 6D 6F 76 65 64 3D 69 20 54 48 45 4E inesmoved=i THEN
008920: 0D 0A 09 09 4D 6F 76 65 64 4F 4B 3A 3D 54 52 55 ....MovedOK:=TRU
008930: 45 3B 0D 0A 09 09 53 63 72 6F 6C 6C 57 69 6E 64 E;....ScrollWind
008940: 6F 77 44 6F 77 6E 28 53 74 61 72 74 6F 66 57 69 owDown(StartofWi
008950: 6E 64 6F 77 2C 45 6E 64 6F 66 57 69 6E 64 6F 77 ndow,EndofWindow
008960: 29 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 30 2C 45 );....Gotoxy(0,E
008970: 6E 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 09 ndofWindow);....
008980: 57 72 69 74 65 4C 69 6E 65 3B 0D 0A 09 09 52 65 WriteLine;....Re
008990: 73 65 74 50 6F 73 3B 0D 0A 09 45 4C 53 45 0D 0A setPos;...ELSE..
0089A0: 09 09 4D 6F 76 65 64 4F 4B 3A 3D 46 41 4C 53 45 ..MovedOK:=FALSE
0089B0: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 53 65 74 50 ;....END;...SetP
0089C0: 6F 73 69 74 69 6F 6E 28 43 75 72 46 69 6C 65 50 osition(CurFileP
0089D0: 74 72 5E 2C 70 29 3B 0D 0A 09 52 65 73 65 74 50 tr^,p);...ResetP
0089E0: 6F 73 3B 0D 0A 09 4C 69 6E 65 4C 65 6E 3A 3D 53 os;...LineLen:=S
0089F0: 61 76 65 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 4C 69 aveLineLen;...Li
008A00: 6E 65 50 6F 73 3A 3D 53 61 76 65 4C 69 6E 65 50 nePos:=SaveLineP
008A10: 6F 73 3B 0D 0A 09 45 4E 44 20 53 63 72 6F 6C 6C os;...END Scroll
008A20: 54 65 78 74 44 6F 77 6E 3B 0D 0A 50 52 4F 43 45 TextDown;..PROCE
008A30: 44 55 52 45 20 53 63 72 6F 6C 6C 44 6F 77 6E 3B DURE ScrollDown;
008A40: 0D 0A 42 45 47 49 4E 0D 0A 09 53 63 72 6F 6C 6C ..BEGIN...Scroll
008A50: 54 65 78 74 44 6F 77 6E 3B 0D 0A 09 49 46 20 4D TextDown;...IF M
008A60: 6F 76 65 64 4F 4B 20 54 48 45 4E 0D 0A 09 09 49 ovedOK THEN....I
008A70: 46 20 54 68 69 73 79 3E 53 74 61 72 74 6F 66 57 F Thisy>StartofW
008A80: 69 6E 64 6F 77 20 54 48 45 4E 20 0D 0A 09 09 09 indow THEN .....
008A90: 44 45 43 28 54 68 69 73 79 29 3B 0D 0A 09 09 09 DEC(Thisy);.....
008AA0: 52 65 73 65 74 50 6F 73 3B 0D 0A 09 09 45 4C 53 ResetPos;....ELS
008AB0: 45 0D 0A 09 09 09 4C 69 6E 65 4D 6F 76 65 28 31 E.....LineMove(1
008AC0: 29 3B 0D 0A 09 09 09 52 65 73 65 74 50 6F 73 3B );.....ResetPos;
008AD0: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 .....END;....END
008AE0: 3B 0D 0A 09 45 4E 44 20 53 63 72 6F 6C 6C 44 6F ;...END ScrollDo
008AF0: 77 6E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 4C wn;..PROCEDURE L
008B00: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
008B10: 6E 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 n) THEN EXIT END
008B20: 3B 0D 0A 09 09 49 46 20 63 68 3D 54 41 42 20 54 ;....IF ch=TAB T
008B30: 48 45 4E 20 0D 0A 09 09 09 52 45 50 45 41 54 0D HEN .....REPEAT.
008B40: 0A 09 09 09 09 49 46 20 63 3E 43 75 72 72 65 6E .....IF c>Curren
008B50: 74 4C 65 66 74 4D 61 72 67 69 6E 20 54 48 45 4E tLeftMargin THEN
008B60: 20 57 72 69 74 65 28 27 20 27 29 20 45 4E 44 3B Write(' ') END;
008B70: 20 0D 0A 09 09 09 09 49 4E 43 28 63 29 3B 0D 0A ......INC(c);..
008B80: 09 09 09 09 55 4E 54 49 4C 20 49 41 4E 44 28 63 ....UNTIL IAND(c
008B90: 2C 37 29 3D 31 3B 0D 0A 09 09 45 4C 53 45 0D 0A ,7)=1;....ELSE..
008BA0: 09 09 09 49 46 20 63 3E 43 75 72 72 65 6E 74 4C ...IF c>CurrentL
008BB0: 65 66 74 4D 61 72 67 69 6E 20 54 48 45 4E 20 57 eftMargin THEN W
008BC0: 72 69 74 65 28 63 68 29 20 45 4E 44 3B 0D 0A 09 rite(ch) END;...
008BD0: 09 09 49 4E 43 28 63 29 3B 0D 0A 09 09 09 45 4E ..INC(c);.....EN
008BE0: 44 3B 0D 0A 09 09 45 4E 44 28 2A 4C 4F 4F 50 2A D;....END(*LOOP*
008BF0: 29 3B 0D 0A 09 45 4E 44 20 57 72 69 74 65 50 61 );...END WritePa
008C00: 72 74 4C 69 6E 65 3B 0D 0A 50 52 4F 43 45 44 55 rtLine;..PROCEDU
008C10: 52 45 20 57 72 69 74 65 4C 69 6E 65 3B 0D 0A 42 RE WriteLine;..B
008C20: 45 47 49 4E 0D 0A 09 57 72 69 74 65 50 61 72 74 EGIN...WritePart
008C30: 4C 69 6E 65 28 31 29 3B 0D 0A 09 45 4E 44 20 57 Line(1);...END W
008C40: 72 69 74 65 4C 69 6E 65 3B 0D 0A 50 52 4F 43 45 riteLine;..PROCE
008C50: 44 55 52 45 20 52 65 6D 6F 76 65 4C 69 6E 65 3B DURE RemoveLine;
008C60: 0D 0A 0D 0A 28 2A 09 52 65 6D 6F 76 65 20 61 20 ....(*.Remove a
008C70: 6C 69 6E 65 20 66 72 6F 6D 20 74 68 65 20 73 63 line from the sc
008C80: 72 65 65 6E 20 61 6E 64 20 62 72 69 6E 67 20 61 reen and bring a
008C90: 6E 6F 74 68 65 72 20 6C 69 6E 65 20 75 70 20 61 nother line up a
008CA0: 74 20 74 68 65 20 62 6F 74 74 6F 6D 0D 0A 0D 0A t the bottom....
008CB0: 09 54 68 69 73 79 20 67 69 76 65 73 20 6C 69 6E .Thisy gives lin
008CC0: 65 20 74 6F 20 72 65 6D 6F 76 65 2A 29 0D 0A 56 e to remove*)..V
008CD0: 41 52 09 70 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A AR.p:Position;..
008CE0: 42 45 47 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 30 BEGIN...Gotoxy(0
008CF0: 2C 54 68 69 73 79 29 3B 0D 0A 09 53 63 72 6F 6C ,Thisy);...Scrol
008D00: 65 66 74 3B 0D 0A 56 41 52 09 63 68 3A 43 48 41 eft;..VAR.ch:CHA
008D10: 52 3B 0D 0A 09 53 61 76 65 4C 69 6E 65 4C 65 6E R;...SaveLineLen
008D20: 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 70 3A 50 :CARDINAL;...p:P
008D30: 6F 73 69 74 69 6F 6E 3B 0D 0A 42 45 47 49 4E 0D osition;..BEGIN.
008D40: 0A 09 4D 6F 76 65 64 4F 4B 3A 3D 54 52 55 45 3B ..MovedOK:=TRUE;
008D50: 0D 0A 09 52 65 44 72 61 77 6E 3A 3D 46 41 4C 53 ...ReDrawn:=FALS
008D60: 45 3B 0D 0A 09 53 61 76 65 4C 69 6E 65 4C 65 6E E;...SaveLineLen
008D70: 3A 3D 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 47 65 74 :=LineLen;...Get
008D80: 50 6F 73 69 74 69 6F 6E 28 43 75 72 46 69 6C 65 Position(CurFile
008D90: 50 74 72 5E 2C 70 29 3B 0D 0A 09 49 46 20 4C 69 Ptr^,p);...IF Li
008DA0: 6E 65 50 6F 73 3E 30 20 54 48 45 4E 0D 0A 09 09 nePos>0 THEN....
008DB0: 62 3A 3D 42 61 63 6B 4F 6E 65 43 68 61 72 28 43 b:=BackOneChar(C
008DC0: 75 72 46 69 6C 65 50 74 72 5E 29 3B 0D 0A 09 09 urFilePtr^);....
008DD0: 63 68 3A 3D 47 65 74 43 75 72 72 65 6E 74 43 68 ch:=GetCurrentCh
008DE0: 61 72 28 43 75 72 46 69 6C 65 50 74 72 5E 29 3B ar(CurFilePtr^);
008DF0: 0D 0A 09 09 49 46 20 28 43 75 72 72 65 6E 74 4C ....IF (CurrentL
008E00: 65 66 74 4D 61 72 67 69 6E 3E 30 29 20 41 4E 44 eftMargin>0) AND
008E10: 20 28 54 68 69 73 78 3D 30 29 20 54 48 45 4E 0D (Thisx=0) THEN.
008E20: 0A 09 09 09 43 68 61 6E 67 65 4D 61 72 67 69 6E ....ChangeMargin
008E30: 28 2D 33 32 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D (-32);.....END;.
008E40: 0A 09 09 44 45 43 28 4C 69 6E 65 50 6F 73 29 3B ...DEC(LinePos);
008E50: 0D 0A 09 09 49 46 20 4E 4F 54 20 52 65 44 72 61 ....IF NOT ReDra
008E60: 77 6E 20 54 48 45 4E 0D 0A 09 09 09 49 46 20 63 wn THEN.....IF c
008E70: 68 3C 3E 54 41 42 20 54 48 45 4E 0D 0A 09 09 09 h<>TAB THEN.....
008E80: 09 44 45 43 28 54 68 69 73 78 29 3B 0D 0A 09 09 .DEC(Thisx);....
008E90: 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 09 09 ..ResetPos;.....
008EA0: 45 4C 53 45 0D 0A 09 09 09 09 4C 69 6E 65 4D 6F ELSE......LineMo
008EB0: 76 65 28 30 29 3B 0D 0A 09 09 09 09 45 4E 44 3B ve(0);......END;
008EC0: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 0D 0A 09 45 4C .....END;.....EL
008ED0: 53 45 0D 0A 09 09 54 68 69 73 78 3A 3D 31 30 32 SE....Thisx:=102
008EE0: 33 3B 0D 0A 09 09 4C 69 6E 65 50 6F 73 3A 3D 31 3;....LinePos:=1
008EF0: 30 32 33 3B 0D 0A 09 09 55 70 3B 0D 0A 09 09 49 023;....Up;....I
008F00: 6C 57 69 6E 64 6F 77 44 6F 77 6E 28 54 68 69 73 lWindowDown(This
008F10: 79 2C 45 6E 64 6F 66 57 69 6E 64 6F 77 29 3B 0D y,EndofWindow);.
008F20: 0A 09 69 3A 3D 45 6E 64 6F 66 57 69 6E 64 6F 77 ..i:=EndofWindow
008F30: 2D 54 68 69 73 79 2B 31 3B 0D 0A 09 47 65 74 50 -Thisy+1;...GetP
008F40: 6F 73 69 74 69 6F 6E 28 43 75 72 46 69 6C 65 50 osition(CurFileP
008F50: 74 72 5E 2C 70 29 3B 0D 0A 09 53 65 74 4C 69 6E tr^,p);...SetLin
008F60: 65 50 6F 73 28 69 29 3B 0D 0A 09 49 46 20 6C 69 ePos(i);...IF li
008F70: 6E 65 73 6D 6F 76 65 64 3D 69 20 54 48 45 4E 0D nesmoved=i THEN.
008F80: 0A 09 09 4D 6F 76 65 64 4F 4B 3A 3D 54 52 55 45 ...MovedOK:=TRUE
008F90: 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 30 2C 45 6E ;....Gotoxy(0,En
008FA0: 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 09 57 dofWindow);....W
008FB0: 72 69 74 65 4C 69 6E 65 3B 0D 0A 09 09 45 4E 44 riteLine;....END
008FC0: 3B 0D 0A 09 53 65 74 50 6F 73 69 74 69 6F 6E 28 ;...SetPosition(
008FD0: 43 75 72 46 69 6C 65 50 74 72 5E 2C 70 29 3B 0D CurFilePtr^,p);.
008FE0: 0A 09 45 4E 44 20 52 65 6D 6F 76 65 4C 69 6E 65 ..END RemoveLine
008FF0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 6C ;..PROCEDURE Del
009000: 46 75 6C 6C 4C 69 6E 65 3B 0D 0A 42 45 47 49 4E FullLine;..BEGIN
009010: 0D 0A 09 4D 61 72 6B 41 73 55 70 64 61 74 65 64 ...MarkAsUpdated
009020: 3B 0D 0A 09 52 65 6D 6F 76 65 4C 69 6E 65 3B 0D ;...RemoveLine;.
009030: 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 30 29 3B ..SetLinePos(0);
009040: 0D 0A 09 44 65 6C 43 68 61 72 73 28 43 75 72 46 ...DelChars(CurF
009050: 69 6C 65 50 74 72 5E 2C 4C 69 6E 65 4C 65 6E 2B ilePtr^,LineLen+
009060: 32 29 3B 0D 0A 09 4C 69 6E 65 50 6F 73 3A 3D 30 2);...LinePos:=0
009070: 3B 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 4C 65 ;...IF CurrentLe
009080: 66 74 4D 61 72 67 69 6E 3E 30 20 54 48 45 4E 20 ftMargin>0 THEN
009090: 0D 0A 09 09 43 68 61 6E 67 65 4D 61 72 67 69 6E ....ChangeMargin
0090A0: 28 2D 49 4E 54 45 47 45 52 28 43 75 72 72 65 6E (-INTEGER(Curren
0090B0: 74 4C 65 66 74 4D 61 72 67 69 6E 29 29 0D 0A 09 tLeftMargin))...
0090C0: 09 45 4E 44 3B 0D 0A 09 54 68 69 73 78 3A 3D 30 .END;...Thisx:=0
0090D0: 3B 0D 0A 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ;...ResetPos;...
0090E0: 4C 69 6E 65 50 6F 73 3A 3D 30 3B 0D 0A 09 53 65 LinePos:=0;...Se
0090F0: 74 4C 69 6E 65 50 6F 73 28 30 29 3B 0D 0A 09 45 tLinePos(0);...E
009100: 46 20 4E 4F 54 20 4D 6F 76 65 64 4F 4B 20 54 48 F NOT MovedOK TH
009110: 45 4E 0D 0A 09 09 09 4C 69 6E 65 50 6F 73 3A 3D EN.....LinePos:=
009120: 30 3B 0D 0A 09 09 09 4C 69 6E 65 4C 65 6E 3A 3D 0;.....LineLen:=
009130: 53 61 76 65 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 09 SaveLineLen;....
009140: 09 53 65 74 50 6F 73 69 74 69 6F 6E 28 43 75 72 .SetPosition(Cur
009150: 46 69 6C 65 50 74 72 5E 2C 70 29 3B 0D 0A 09 09 FilePtr^,p);....
009160: 09 54 68 69 73 78 3A 3D 30 3B 0D 0A 09 09 09 52 .Thisx:=0;.....R
009170: 65 73 65 74 50 6F 73 3B 0D 0A 09 09 09 45 4E 44 esetPos;.....END
009180: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 ;....END;...END
009190: 4C 65 66 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 Left;..PROCEDURE
0091A0: 20 52 69 67 68 74 3B 0D 0A 56 41 52 09 63 68 3A Right;..VAR.ch:
0091B0: 43 48 41 52 3B 0D 0A 09 69 3A 43 41 52 44 49 4E CHAR;...i:CARDIN
0091C0: 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 63 68 3A AL;..BEGIN...ch:
0091D0: 3D 47 65 74 43 75 72 72 65 6E 74 43 68 61 72 28 =GetCurrentChar(
0091E0: 43 75 72 46 69 6C 65 50 74 72 5E 29 3B 0D 0A 09 CurFilePtr^);...
0091F0: 49 46 20 63 68 3D 31 61 78 20 28 2A 6F 6E 20 45 IF ch=1ax (*on E
009200: 4F 46 20 63 68 61 72 2A 29 20 54 48 45 4E 20 52 OF char*) THEN R
009210: 45 54 55 52 4E 20 45 4E 44 3B 0D 0A 09 49 46 20 ETURN END;...IF
009220: 4C 69 6E 65 50 6F 73 3E 3D 4C 69 6E 65 4C 65 6E LinePos>=LineLen
009230: 20 54 48 45 4E 0D 0A 09 09 54 68 69 73 78 3A 3D THEN....Thisx:=
009240: 30 3B 0D 0A 09 09 4C 69 6E 65 50 6F 73 3A 3D 30 0;....LinePos:=0
009250: 3B 0D 0A 09 09 44 6F 77 6E 3B 0D 0A 0D 0A 09 45 ;....Down;.....E
009260: 4C 53 45 0D 0A 0D 0A 09 09 49 46 20 63 68 3D 54 LSE......IF ch=T
009270: 41 42 20 54 48 45 4E 20 69 3A 3D 39 20 45 4C 53 AB THEN i:=9 ELS
009280: 45 20 69 3A 3D 31 20 45 4E 44 3B 0D 0A 09 09 49 E i:=1 END;....I
009290: 46 20 28 54 68 69 73 78 2B 69 29 3E 3D 28 53 63 F (Thisx+i)>=(Sc
0092A0: 72 65 65 6E 57 69 64 74 68 2D 31 29 20 54 48 45 reenWidth-1) THE
0092B0: 4E 0D 0A 09 09 09 43 68 61 6E 67 65 4D 61 72 67 N.....ChangeMarg
0092C0: 69 6E 28 33 32 29 3B 0D 0A 09 09 09 45 4E 44 3B in(32);.....END;
0092D0: 0D 0A 09 09 62 3A 3D 46 6F 72 77 61 72 64 4F 6E ....b:=ForwardOn
0092E0: 65 43 68 61 72 28 43 75 72 46 69 6C 65 50 74 72 eChar(CurFilePtr
0092F0: 5E 29 3B 0D 0A 09 09 49 4E 43 28 4C 69 6E 65 50 ^);....INC(LineP
009300: 4E 44 20 44 65 6C 46 75 6C 6C 4C 69 6E 65 3B 0D ND DelFullLine;.
009310: 0A 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 .....PROCEDURE S
009320: 63 72 6F 6C 6C 54 65 78 74 55 70 3B 0D 0A 0D 0A crollTextUp;....
009330: 28 2A 09 53 63 72 6F 6C 6C 20 75 70 20 6F 6E 65 (*.Scroll up one
009340: 20 6C 69 6E 65 20 69 6E 20 74 68 65 20 66 69 6C line in the fil
009350: 65 0D 0A 09 28 77 68 69 63 68 20 6D 65 61 6E 73 e...(which means
009360: 20 74 68 65 20 74 65 78 74 20 73 63 72 6F 6C 6C the text scroll
009370: 73 20 64 6F 77 6E 20 2D 20 62 61 63 6B 77 61 72 s down - backwar
009380: 64 73 20 74 6F 0D 0A 09 77 68 61 74 20 79 6F 75 ds to...what you
009390: 20 6D 69 67 68 74 20 74 68 69 6E 6B 20 61 74 20 might think at
0093A0: 66 69 72 73 74 29 2A 29 0D 0A 0D 0A 56 41 52 09 first)*)....VAR.
0093B0: 70 3A 50 6F 73 69 74 69 6F 6E 3B 09 0D 0A 09 53 p:Position;....S
0093C0: 61 76 65 4C 69 6E 65 4C 65 6E 2C 53 61 76 65 4C aveLineLen,SaveL
0093D0: 69 6E 65 50 6F 73 3A 43 41 52 44 49 4E 41 4C 3B inePos:CARDINAL;
0093E0: 0D 0A 42 45 47 49 4E 0D 0A 09 53 61 76 65 4C 69 ..BEGIN...SaveLi
0093F0: 6E 65 4C 65 6E 3A 3D 4C 69 6E 65 4C 65 6E 3B 0D neLen:=LineLen;.
009400: 0A 09 53 61 76 65 4C 69 6E 65 50 6F 73 3A 3D 4C ..SaveLinePos:=L
009410: 69 6E 65 50 6F 73 3B 0D 0A 09 69 3A 3D 53 74 61 inePos;...i:=Sta
009420: 72 74 6F 66 57 69 6E 64 6F 77 2D 54 68 69 73 79 rtofWindow-Thisy
009430: 2D 31 3B 0D 0A 09 47 65 74 50 6F 73 69 74 69 6F -1;...GetPositio
009440: 6E 28 43 75 72 46 69 6C 65 50 74 72 5E 2C 70 29 n(CurFilePtr^,p)
009450: 3B 0D 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 69 ;...SetLinePos(i
009460: 29 3B 0D 0A 09 49 46 20 6C 69 6E 65 73 6D 6F 76 );...IF linesmov
009470: 65 64 3D 69 20 54 48 45 4E 0D 0A 09 09 4D 6F 76 ed=i THEN....Mov
009480: 65 64 4F 4B 3A 3D 54 52 55 45 3B 0D 0A 09 09 53 edOK:=TRUE;....S
009490: 63 72 6F 6C 6C 57 69 6E 64 6F 77 55 70 28 53 74 crollWindowUp(St
0094A0: 61 72 74 6F 66 57 69 6E 64 6F 77 2C 45 6E 64 6F artofWindow,Endo
0094B0: 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 09 47 6F 74 fWindow);....Got
0094C0: 6F 78 79 28 30 2C 53 74 61 72 74 6F 66 57 69 6E oxy(0,StartofWin
0094D0: 64 6F 77 29 3B 0D 0A 09 09 57 72 69 74 65 4C 69 dow);....WriteLi
0094E0: 6E 65 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 4D 6F ne;...ELSE....Mo
0094F0: 76 65 64 4F 4B 3A 3D 46 41 4C 53 45 3B 0D 0A 09 vedOK:=FALSE;...
009500: 6F 73 29 3B 0D 0A 09 09 49 46 20 63 68 3C 3E 54 os);....IF ch<>T
009510: 41 42 20 54 48 45 4E 0D 0A 09 09 09 49 4E 43 28 AB THEN.....INC(
009520: 54 68 69 73 78 29 3B 0D 0A 09 09 09 52 65 73 65 Thisx);.....Rese
009530: 74 50 6F 73 3B 0D 0A 09 09 45 4C 53 45 0D 0A 0D tPos;....ELSE...
009540: 0A 09 09 09 28 2A 69 66 20 6D 6F 76 65 73 20 6F ....(*if moves o
009550: 76 65 72 20 74 61 62 73 20 61 72 65 20 73 6C 6F ver tabs are slo
009560: 77 2C 20 72 65 70 6C 61 63 65 20 74 68 65 0D 0A w, replace the..
009570: 09 09 09 20 20 72 65 70 65 61 74 65 64 20 6D 6F ... repeated mo
009580: 76 65 73 20 72 69 67 68 74 20 62 79 20 61 20 67 ves right by a g
009590: 6F 74 6F 78 79 2A 29 0D 0A 09 09 09 54 68 69 73 otoxy*).....This
0095A0: 78 3A 3D 49 41 4E 44 28 54 68 69 73 78 2B 38 2C x:=IAND(Thisx+8,
0095B0: 30 66 66 66 38 68 29 3B 0D 0A 09 09 09 52 65 73 0fff8h);.....Res
0095C0: 65 74 50 6F 73 3B 0D 0A 09 09 09 45 4E 44 3B 0D etPos;.....END;.
0095D0: 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 52 69 ...END;...END Ri
0095E0: 67 68 74 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 ght;....PROCEDUR
0095F0: 45 20 41 6C 70 68 61 4E 75 6D 28 63 68 3A 43 48 E AlphaNum(ch:CH
009600: 41 52 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 AR):BOOLEAN;..BE
009610: 47 49 4E 0D 0A 09 63 68 3A 3D 43 41 50 28 63 68 GIN...ch:=CAP(ch
009620: 29 3B 0D 0A 09 52 45 54 55 52 4E 20 28 28 63 68 );...RETURN ((ch
009630: 3E 3D 27 41 27 29 20 41 4E 44 20 28 63 68 3C 3D >='A') AND (ch<=
009640: 27 5A 27 29 29 20 4F 52 20 28 28 63 68 3E 3D 27 'Z')) OR ((ch>='
009650: 30 27 29 20 41 4E 44 20 28 63 68 3C 3D 27 39 27 0') AND (ch<='9'
009660: 29 29 3B 0D 0A 09 45 4E 44 20 41 6C 70 68 61 4E ));...END AlphaN
009670: 75 6D 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 um;....PROCEDURE
009680: 20 46 69 6E 64 57 6F 72 64 28 42 61 63 6B 77 61 FindWord(Backwa
009690: 72 64 3A 42 4F 4F 4C 45 41 4E 3B 44 65 6C 65 74 rd:BOOLEAN;Delet
0096A0: 65 3A 42 4F 4F 4C 45 41 4E 29 3B 0D 0A 0D 0A 28 e:BOOLEAN);....(
0096B0: 2A 09 46 69 6E 64 20 61 20 77 6F 72 64 20 61 6E *.Find a word an
0096C0: 64 20 6F 70 74 69 6F 6E 61 6C 6C 79 20 64 65 6C d optionally del
0096D0: 65 74 65 20 69 74 0D 0A 0D 0A 09 41 20 77 6F 72 ete it.....A wor
0096E0: 64 20 69 73 20 61 20 73 74 72 69 6E 67 20 61 6C d is a string al
0096F0: 70 68 61 6E 75 6D 65 72 69 63 73 20 6F 72 20 61 phanumerics or a
009700: 09 45 4E 44 3B 0D 0A 09 53 65 74 50 6F 73 69 74 .END;...SetPosit
009710: 69 6F 6E 28 43 75 72 46 69 6C 65 50 74 72 5E 2C ion(CurFilePtr^,
009720: 70 29 3B 0D 0A 09 52 65 73 65 74 50 6F 73 3B 0D p);...ResetPos;.
009730: 0A 09 4C 69 6E 65 4C 65 6E 3A 3D 53 61 76 65 4C ..LineLen:=SaveL
009740: 69 6E 65 4C 65 6E 3B 0D 0A 09 4C 69 6E 65 50 6F ineLen;...LinePo
009750: 73 3A 3D 53 61 76 65 4C 69 6E 65 50 6F 73 3B 0D s:=SaveLinePos;.
009760: 0A 09 45 4E 44 20 53 63 72 6F 6C 6C 54 65 78 74 ..END ScrollText
009770: 55 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 Up;..PROCEDURE S
009780: 63 72 6F 6C 6C 55 70 3B 0D 0A 42 45 47 49 4E 0D crollUp;..BEGIN.
009790: 0A 09 53 63 72 6F 6C 6C 54 65 78 74 55 70 3B 0D ..ScrollTextUp;.
0097A0: 0A 09 49 46 20 4D 6F 76 65 64 4F 4B 20 54 48 45 ..IF MovedOK THE
0097B0: 4E 0D 0A 09 09 49 46 20 54 68 69 73 79 3C 45 6E N....IF Thisy<En
0097C0: 64 6F 66 57 69 6E 64 6F 77 20 54 48 45 4E 20 0D dofWindow THEN .
0097D0: 0A 09 09 09 49 4E 43 28 54 68 69 73 79 29 3B 0D ....INC(Thisy);.
0097E0: 0A 09 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ....ResetPos;...
0097F0: 09 45 4C 53 45 20 09 0D 0A 09 09 09 4C 69 6E 65 .ELSE ......Line
009800: 4D 6F 76 65 28 2D 31 29 3B 0D 0A 09 09 09 52 65 Move(-1);.....Re
009810: 73 65 74 50 6F 73 3B 0D 0A 09 09 09 45 4E 44 3B setPos;.....END;
009820: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 53 ....END;...END S
009830: 63 72 6F 6C 6C 55 70 3B 0D 0A 50 52 4F 43 45 44 crollUp;..PROCED
009840: 55 52 45 20 53 63 72 6F 6C 6C 54 65 78 74 44 6F URE ScrollTextDo
009850: 77 6E 3B 0D 0A 56 41 52 09 70 3A 50 6F 73 69 74 wn;..VAR.p:Posit
009860: 69 6F 6E 3B 09 0D 0A 09 53 61 76 65 4C 69 6E 65 ion;....SaveLine
009870: 4C 65 6E 2C 53 61 76 65 4C 69 6E 65 50 6F 73 3A Len,SaveLinePos:
009880: 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E CARDINAL;..BEGIN
009890: 0D 0A 09 53 61 76 65 4C 69 6E 65 4C 65 6E 3A 3D ...SaveLineLen:=
0098A0: 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 53 61 76 65 4C LineLen;...SaveL
0098B0: 69 6E 65 50 6F 73 3A 3D 4C 69 6E 65 50 6F 73 3B inePos:=LinePos;
0098C0: 0D 0A 09 69 3A 3D 45 6E 64 6F 66 57 69 6E 64 6F ...i:=EndofWindo
0098D0: 77 2D 54 68 69 73 79 2B 31 3B 0D 0A 09 47 65 74 w-Thisy+1;...Get
0098E0: 50 6F 73 69 74 69 6F 6E 28 43 75 72 46 69 6C 65 Position(CurFile
0098F0: 50 74 72 5E 2C 70 29 3B 0D 0A 09 53 65 74 4C 69 Ptr^,p);...SetLi
009900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
009910: 08 00 01 00 02 09 52 E5 08 00 C9 02 00 00 00 02 ......R.........
009920: 08 00 C5 02 00 00 00 02 08 00 C1 02 00 00 00 02 ................
009930: 08 00 C6 02 00 00 00 02 08 00 C2 02 00 00 00 02 ................
009940: 08 00 C7 02 00 00 00 02 08 00 C3 02 00 00 00 02 ................
009950: 08 00 C8 02 00 00 00 02 08 00 C4 02 00 00 00 02 ................
009960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009A00: 45 4C 53 45 0D 0A 09 09 45 6E 64 6F 66 57 69 6E ELSE....EndofWin
009A10: 64 6F 77 3A 3D 53 63 72 65 65 6E 44 65 70 74 68 dow:=ScreenDepth
009A20: 2D 32 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 45 -2....END;.....E
009A30: 4E 44 20 43 68 61 6E 67 65 57 69 6E 64 6F 77 3B ND ChangeWindow;
009A40: 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 73 65 ..PROCEDURE Rese
009A50: 74 53 63 72 65 65 6E 50 6F 73 3B 0D 0A 42 45 47 tScreenPos;..BEG
009A60: 49 4E 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 57 IN...IF CurrentW
009A70: 69 6E 64 6F 77 3C 3E 30 20 54 48 45 4E 0D 0A 09 indow<>0 THEN...
009A80: 09 54 68 69 73 78 3A 3D 63 75 72 78 5B 43 75 72 .Thisx:=curx[Cur
009A90: 72 65 6E 74 57 69 6E 64 6F 77 5D 3B 0D 0A 09 09 rentWindow];....
009AA0: 54 68 69 73 79 3A 3D 63 75 72 79 5B 43 75 72 72 Thisy:=cury[Curr
009AB0: 65 6E 74 57 69 6E 64 6F 77 5D 3B 0D 0A 09 09 52 entWindow];....R
009AC0: 65 73 65 74 50 6F 73 3B 0D 0A 09 09 45 4E 44 3B esetPos;....END;
009AD0: 0D 0A 09 45 4E 44 20 52 65 73 65 74 53 63 72 65 ...END ResetScre
009AE0: 65 6E 50 6F 73 3B 0D 0A 50 52 4F 43 45 44 55 52 enPos;..PROCEDUR
009AF0: 45 20 4D 6F 76 65 57 69 6E 64 6F 77 28 66 72 6F E MoveWindow(fro
009B00: 6D 2C 74 6F 3A 43 41 52 44 49 4E 41 4C 29 3B 0D m,to:CARDINAL);.
009B10: 0A 56 41 52 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D .VAR.b:BOOLEAN;.
009B20: 0A 42 45 47 49 4E 0D 0A 09 63 75 72 78 5B 74 6F .BEGIN...curx[to
009B30: 5D 3A 3D 63 75 72 78 5B 66 72 6F 6D 5D 3B 0D 0A ]:=curx[from];..
009B40: 09 63 75 72 79 5B 74 6F 5D 3A 3D 63 75 72 79 5B .cury[to]:=cury[
009B50: 66 72 6F 6D 5D 3B 0D 0A 09 4C 65 66 74 4D 61 72 from];...LeftMar
009B60: 67 69 6E 5B 74 6F 5D 3A 3D 4C 65 66 74 4D 61 72 gin[to]:=LeftMar
009B70: 67 69 6E 5B 66 72 6F 6D 5D 3B 0D 0A 09 57 69 6E gin[from];...Win
009B80: 64 6F 77 46 69 6C 65 5B 74 6F 5D 3A 3D 57 69 6E dowFile[to]:=Win
009B90: 64 6F 77 46 69 6C 65 5B 66 72 6F 6D 5D 3B 0D 0A dowFile[from];..
009BA0: 09 62 3A 3D 4C 61 62 65 6C 4F 70 28 46 69 6C 65 .b:=LabelOp(File
009BB0: 73 5B 57 69 6E 64 6F 77 46 69 6C 65 5B 74 6F 5D s[WindowFile[to]
009BC0: 5D 2C 54 52 55 45 2C 43 48 52 28 74 6F 29 29 3B ],TRUE,CHR(to));
009BD0: 0D 0A 09 45 4E 44 20 4D 6F 76 65 57 69 6E 64 6F ...END MoveWindo
009BE0: 77 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 45 6C w;..PROCEDURE El
009BF0: 69 64 65 57 69 6E 64 6F 77 28 57 69 6E 64 6F 77 ideWindow(Window
009C00: 4E 44 20 28 63 68 3C 3E 54 41 42 29 20 54 48 45 ND (ch<>TAB) THE
009C10: 4E 0D 0A 09 09 09 44 65 6C 43 68 61 72 73 28 43 N.....DelChars(C
009C20: 75 72 46 69 6C 65 50 74 72 5E 2C 31 29 3B 0D 0A urFilePtr^,1);..
009C30: 09 09 09 43 48 31 5B 30 5D 3A 3D 63 68 3B 0D 0A ...CH1[0]:=ch;..
009C40: 09 09 09 49 6E 73 43 68 61 72 73 28 43 75 72 46 ...InsChars(CurF
009C50: 69 6C 65 50 74 72 5E 2C 43 48 31 2C 31 29 3B 0D ilePtr^,CH1,1);.
009C60: 0A 09 09 09 62 3A 3D 42 61 63 6B 4F 6E 65 43 68 ....b:=BackOneCh
009C70: 61 72 28 43 75 72 46 69 6C 65 50 74 72 5E 29 3B ar(CurFilePtr^);
009C80: 0D 0A 09 09 09 57 72 69 74 65 28 63 68 29 3B 0D .....Write(ch);.
009C90: 0A 09 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ....ResetPos;...
009CA0: 09 09 52 69 67 68 74 3B 0D 0A 09 09 09 55 70 64 ..Right;.....Upd
009CB0: 61 74 65 64 5B 43 75 72 72 65 6E 74 46 69 6C 65 ated[CurrentFile
009CC0: 5D 3A 3D 54 52 55 45 3B 0D 0A 09 09 45 4C 53 45 ]:=TRUE;....ELSE
009CD0: 0D 0A 09 09 09 44 65 6C 4F 6E 65 43 68 61 72 3B .....DelOneChar;
009CE0: 0D 0A 09 09 09 49 6E 73 4F 6E 65 43 68 61 72 28 .....InsOneChar(
009CF0: 63 68 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 ch);.....END;...
009D00: 45 4C 53 45 0D 0A 09 09 49 6E 73 4F 6E 65 43 68 ELSE....InsOneCh
009D10: 61 72 28 63 68 29 3B 0D 0A 09 09 45 4E 44 3B 0D ar(ch);....END;.
009D20: 0A 09 45 4E 44 20 4F 76 65 72 57 72 69 74 65 3B ..END OverWrite;
009D30: 0D 0A 50 52 4F 43 45 44 55 52 45 20 55 70 3B 0D ..PROCEDURE Up;.
009D40: 0A 09 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 54 ....BEGIN...IF T
009D50: 68 69 73 79 3C 3D 53 74 61 72 74 6F 66 57 69 6E hisy<=StartofWin
009D60: 64 6F 77 20 54 48 45 4E 0D 0A 09 09 53 63 72 6F dow THEN....Scro
009D70: 6C 6C 54 65 78 74 55 70 3B 0D 0A 09 09 45 4E 44 llTextUp;....END
009D80: 3B 0D 0A 09 4C 69 6E 65 4D 6F 76 65 28 2D 31 29 ;...LineMove(-1)
009D90: 3B 0D 0A 09 46 69 6C 65 4C 69 6D 69 74 3A 3D 6C ;...FileLimit:=l
009DA0: 69 6E 65 73 6D 6F 76 65 64 3D 30 3B 0D 0A 09 49 inesmoved=0;...I
009DB0: 46 20 28 6C 69 6E 65 73 6D 6F 76 65 64 3C 3E 30 F (linesmoved<>0
009DC0: 29 20 41 4E 44 20 28 54 68 69 73 79 3E 53 74 61 ) AND (Thisy>Sta
009DD0: 72 74 6F 66 57 69 6E 64 6F 77 29 20 41 4E 44 20 rtofWindow) AND
009DE0: 4E 4F 54 20 52 65 44 72 61 77 6E 20 54 48 45 4E NOT ReDrawn THEN
009DF0: 20 0D 0A 09 09 44 45 43 28 54 68 69 73 79 29 3B ....DEC(Thisy);
009E00: 4E 20 52 69 67 68 74 20 45 4E 44 3B 0D 0A 09 45 N Right END;...E
009E10: 4E 44 20 46 69 6E 64 57 6F 72 64 3B 0D 0A 50 52 ND FindWord;..PR
009E20: 4F 43 45 44 55 52 45 20 44 6F 77 6E 3B 0D 0A 42 OCEDURE Down;..B
009E30: 45 47 49 4E 0D 0A 09 4C 69 6E 65 4D 6F 76 65 28 EGIN...LineMove(
009E40: 31 29 3B 0D 0A 09 46 69 6C 65 4C 69 6D 69 74 3A 1);...FileLimit:
009E50: 3D 6C 69 6E 65 73 6D 6F 76 65 64 3D 30 3B 0D 0A =linesmoved=0;..
009E60: 09 49 46 20 6C 69 6E 65 73 6D 6F 76 65 64 3E 30 .IF linesmoved>0
009E70: 20 54 48 45 4E 0D 0A 09 09 49 46 20 28 54 68 69 THEN....IF (Thi
009E80: 73 79 3E 3D 45 6E 64 6F 66 57 69 6E 64 6F 77 29 sy>=EndofWindow)
009E90: 20 54 48 45 4E 0D 0A 09 09 09 49 4E 43 28 54 68 THEN.....INC(Th
009EA0: 69 73 79 29 3B 0D 0A 09 09 09 53 63 72 6F 6C 6C isy);.....Scroll
009EB0: 54 65 78 74 44 6F 77 6E 3B 0D 0A 09 09 09 44 45 TextDown;.....DE
009EC0: 43 28 54 68 69 73 79 29 3B 0D 0A 09 09 09 52 65 C(Thisy);.....Re
009ED0: 73 65 74 50 6F 73 3B 0D 0A 09 09 45 4C 53 49 46 setPos;....ELSIF
009EE0: 20 20 4E 4F 54 20 52 65 44 72 61 77 6E 20 54 48 NOT ReDrawn TH
009EF0: 45 4E 20 0D 0A 09 09 09 49 4E 43 28 54 68 69 73 EN .....INC(This
009F00: 79 29 3B 0D 0A 09 09 09 52 65 73 65 74 50 6F 73 y);.....ResetPos
009F10: 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E ;.....END;....EN
009F20: 44 3B 20 0D 0A 09 45 4E 44 20 44 6F 77 6E 3B 0D D; ...END Down;.
009F30: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 64 ...PROCEDURE Red
009F40: 6F 4C 69 6E 65 3B 0D 0A 42 45 47 49 4E 0D 0A 09 oLine;..BEGIN...
009F50: 47 6F 74 6F 78 79 28 30 2C 54 68 69 73 79 29 3B Gotoxy(0,Thisy);
009F60: 0D 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 30 29 ...SetLinePos(0)
009F70: 3B 0D 0A 09 57 72 69 74 65 4C 69 6E 65 3B 0D 0A ;...WriteLine;..
009F80: 09 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 09 45 4E .ChangePos;...EN
009F90: 44 20 52 65 64 6F 4C 69 6E 65 3B 0D 0A 0D 0A 50 D RedoLine;....P
009FA0: 52 4F 43 45 44 55 52 45 20 49 6E 73 4F 6E 65 43 ROCEDURE InsOneC
009FB0: 68 61 72 28 63 68 3A 43 48 41 52 29 3B 0D 0A 56 har(ch:CHAR);..V
009FC0: 41 52 09 43 48 31 3A 41 52 52 41 59 5B 30 2E 2E AR.CH1:ARRAY[0..
009FD0: 30 5D 20 4F 46 20 43 48 41 52 3B 0D 0A 42 45 47 0] OF CHAR;..BEG
009FE0: 49 4E 0D 0A 09 52 65 44 72 61 77 6E 3A 3D 46 41 IN...ReDrawn:=FA
009FF0: 4C 53 45 3B 0D 0A 09 4D 61 72 6B 41 73 55 70 64 LSE;...MarkAsUpd
00A000: 0D 0A 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ....ResetPos;...
00A010: 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 55 70 3B 0D .END;...END Up;.
00A020: 0A 50 52 4F 43 45 44 55 52 45 20 55 70 53 63 72 .PROCEDURE UpScr
00A030: 65 65 6E 3B 0D 0A 42 45 47 49 4E 0D 0A 09 4C 69 een;..BEGIN...Li
00A040: 6E 65 4D 6F 76 65 28 31 2D 49 4E 54 45 47 45 52 neMove(1-INTEGER
00A050: 28 4C 69 6E 65 73 50 65 72 57 69 6E 64 6F 77 29 (LinesPerWindow)
00A060: 29 3B 0D 0A 09 45 4E 44 20 55 70 53 63 72 65 65 );...END UpScree
00A070: 6E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F n;..PROCEDURE Do
00A080: 77 6E 53 63 72 65 65 6E 3B 0D 0A 42 45 47 49 4E wnScreen;..BEGIN
00A090: 0D 0A 09 4C 69 6E 65 4D 6F 76 65 28 4C 69 6E 65 ...LineMove(Line
00A0A0: 73 50 65 72 57 69 6E 64 6F 77 2D 31 29 3B 0D 0A sPerWindow-1);..
00A0B0: 09 45 4E 44 20 44 6F 77 6E 53 63 72 65 65 6E 3B .END DownScreen;
00A0C0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 54 6F 70 3B ..PROCEDURE Top;
00A0D0: 0D 0A 42 45 47 49 4E 0D 0A 09 4C 69 6E 65 50 6F ..BEGIN...LinePo
00A0E0: 73 3A 3D 30 3B 0D 0A 09 4C 69 6E 65 4D 6F 76 65 s:=0;...LineMove
00A0F0: 28 2D 31 36 37 33 36 29 3B 0D 0A 09 45 4E 44 20 (-16736);...END
00A100: 54 6F 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 Top;..PROCEDURE
00A110: 42 6F 74 74 6F 6D 3B 0D 0A 42 45 47 49 4E 0D 0A Bottom;..BEGIN..
00A120: 09 4C 69 6E 65 50 6F 73 3A 3D 39 39 39 3B 0D 0A .LinePos:=999;..
00A130: 09 4C 69 6E 65 4D 6F 76 65 28 31 36 37 33 36 29 .LineMove(16736)
00A140: 3B 0D 0A 09 45 4E 44 20 42 6F 74 74 6F 6D 3B 0D ;...END Bottom;.
00A150: 0A 50 52 4F 43 45 44 55 52 45 20 46 61 72 4C 65 .PROCEDURE FarLe
00A160: 66 74 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 ft;..BEGIN...IF
00A170: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
00A180: 6E 3E 30 20 54 48 45 4E 20 0D 0A 09 09 43 68 61 n>0 THEN ....Cha
00A190: 6E 67 65 4D 61 72 67 69 6E 28 2D 49 4E 54 45 47 ngeMargin(-INTEG
00A1A0: 45 52 28 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 ER(CurrentLeftMa
00A1B0: 72 67 69 6E 29 29 0D 0A 09 09 45 4E 44 3B 0D 0A rgin))....END;..
00A1C0: 09 53 65 74 4C 69 6E 65 50 6F 73 28 30 29 3B 0D .SetLinePos(0);.
00A1D0: 0A 09 4C 69 6E 65 50 6F 73 3A 3D 30 3B 0D 0A 09 ..LinePos:=0;...
00A1E0: 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 09 45 4E 44 ChangePos;...END
00A1F0: 20 46 61 72 4C 65 66 74 3B 0D 0A 50 52 4F 43 45 FarLeft;..PROCE
00A200: 61 74 65 64 3B 0D 0A 09 43 48 31 5B 30 5D 3A 3D ated;...CH1[0]:=
00A210: 63 68 3B 0D 0A 09 49 6E 73 43 68 61 72 73 28 43 ch;...InsChars(C
00A220: 75 72 46 69 6C 65 50 74 72 5E 2C 43 48 31 2C 31 urFilePtr^,CH1,1
00A230: 29 3B 0D 0A 09 49 4E 43 28 4C 69 6E 65 50 6F 73 );...INC(LinePos
00A240: 29 3B 0D 0A 09 49 4E 43 28 4C 69 6E 65 4C 65 6E );...INC(LineLen
00A250: 29 3B 0D 0A 09 49 46 20 63 68 3D 43 52 20 54 48 );...IF ch=CR TH
00A260: 45 4E 0D 0A 09 09 43 48 31 5B 30 5D 3A 3D 4C 46 EN....CH1[0]:=LF
00A270: 3B 0D 0A 09 09 49 6E 73 43 68 61 72 73 28 43 75 ;....InsChars(Cu
00A280: 72 46 69 6C 65 50 74 72 5E 2C 43 48 31 2C 31 29 rFilePtr^,CH1,1)
00A290: 3B 0D 0A 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A ;....ResetPos;..
00A2A0: 09 09 44 6F 53 63 72 65 65 6E 43 68 61 6E 67 65 ..DoScreenChange
00A2B0: 28 44 65 6C 45 6F 6C 29 3B 0D 0A 09 09 49 46 20 (DelEol);....IF
00A2C0: 54 68 69 73 79 3E 3D 45 6E 64 6F 66 57 69 6E 64 Thisy>=EndofWind
00A2D0: 6F 77 20 54 48 45 4E 0D 0A 09 28 2A 09 09 53 63 ow THEN...(*..Sc
00A2E0: 72 6F 6C 6C 54 65 78 74 44 6F 77 6E 3B 2A 29 0D rollTextDown;*).
00A2F0: 0A 09 09 09 53 63 72 6F 6C 6C 57 69 6E 64 6F 77 ....ScrollWindow
00A300: 44 6F 77 6E 28 53 74 61 72 74 6F 66 57 69 6E 64 Down(StartofWind
00A310: 6F 77 2C 45 6E 64 6F 66 57 69 6E 64 6F 77 29 3B ow,EndofWindow);
00A320: 0D 0A 09 09 09 44 45 43 28 54 68 69 73 79 29 3B .....DEC(Thisy);
00A330: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 47 6F 74 .....END;....Got
00A340: 6F 78 79 28 30 2C 45 6E 64 6F 66 57 69 6E 64 6F oxy(0,EndofWindo
00A350: 77 29 3B 0D 0A 09 09 53 63 72 6F 6C 6C 57 69 6E w);....ScrollWin
00A360: 64 6F 77 55 70 28 54 68 69 73 79 2B 31 2C 45 6E dowUp(Thisy+1,En
00A370: 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 09 52 dofWindow);....R
00A380: 65 73 65 74 50 6F 73 3B 0D 0A 09 09 49 4E 43 28 esetPos;....INC(
00A390: 54 68 69 73 79 29 3B 0D 0A 09 09 52 65 73 65 74 Thisy);....Reset
00A3A0: 50 6F 73 3B 0D 0A 09 09 4C 69 6E 65 50 6F 73 3A Pos;....LinePos:
00A3B0: 3D 30 3B 0D 0A 09 09 52 65 64 6F 4C 69 6E 65 3B =0;....RedoLine;
00A3C0: 0D 0A 09 45 4C 53 49 46 20 63 68 3D 54 41 42 20 ...ELSIF ch=TAB
00A3D0: 54 48 45 4E 20 52 65 64 6F 4C 69 6E 65 09 0D 0A THEN RedoLine...
00A3E0: 09 45 4C 53 45 0D 0A 09 09 49 46 20 54 68 69 73 .ELSE....IF This
00A3F0: 78 3E 3D 28 53 63 72 65 65 6E 57 69 64 74 68 2D x>=(ScreenWidth-
00A400: 44 55 52 45 20 46 61 72 52 69 67 68 74 3B 0D 0A DURE FarRight;..
00A410: 42 45 47 49 4E 0D 0A 09 53 65 74 4C 69 6E 65 50 BEGIN...SetLineP
00A420: 6F 73 28 30 29 3B 0D 0A 09 4C 69 6E 65 50 6F 73 os(0);...LinePos
00A430: 3A 3D 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 43 68 61 :=LineLen;...Cha
00A440: 6E 67 65 50 6F 73 3B 0D 0A 09 45 4E 44 20 46 61 ngePos;...END Fa
00A450: 72 52 69 67 68 74 3B 0D 0A 50 52 4F 43 45 44 55 rRight;..PROCEDU
00A460: 52 45 20 43 68 61 6E 67 65 57 69 6E 64 6F 77 28 RE ChangeWindow(
00A470: 4E 6F 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 56 41 No:INTEGER);..VA
00A480: 52 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 R.b:BOOLEAN;..BE
00A490: 47 49 4E 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 GIN...IF Current
00A4A0: 57 69 6E 64 6F 77 3C 3E 30 20 54 48 45 4E 0D 0A Window<>0 THEN..
00A4B0: 09 09 63 75 72 78 5B 43 75 72 72 65 6E 74 57 69 ..curx[CurrentWi
00A4C0: 6E 64 6F 77 5D 3A 3D 54 68 69 73 78 3B 0D 0A 09 ndow]:=Thisx;...
00A4D0: 09 63 75 72 79 5B 43 75 72 72 65 6E 74 57 69 6E .cury[CurrentWin
00A4E0: 64 6F 77 5D 3A 3D 54 68 69 73 79 3B 0D 0A 09 09 dow]:=Thisy;....
00A4F0: 62 3A 3D 4C 61 62 65 6C 4F 70 28 43 75 72 46 69 b:=LabelOp(CurFi
00A500: 6C 65 50 74 72 5E 2C 54 52 55 45 2C 43 48 52 28 lePtr^,TRUE,CHR(
00A510: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 29 3B CurrentWindow));
00A520: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 43 75 72 72 65 ....END;...Curre
00A530: 6E 74 57 69 6E 64 6F 77 3A 3D 4E 6F 3B 0D 0A 09 ntWindow:=No;...
00A540: 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 57 69 6E ...IF CurrentWin
00A550: 64 6F 77 3E 57 69 6E 64 6F 77 73 20 54 48 45 4E dow>Windows THEN
00A560: 20 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 3A 3D CurrentWindow:=
00A570: 57 69 6E 64 6F 77 73 20 45 4E 44 3B 0D 0A 09 49 Windows END;...I
00A580: 46 20 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 3C F CurrentWindow<
00A590: 3E 30 20 54 48 45 4E 0D 0A 09 09 28 2A 73 65 74 >0 THEN....(*set
00A5A0: 20 75 70 20 61 20 70 6F 69 6E 74 65 72 20 74 6F up a pointer to
00A5B0: 20 74 68 65 20 63 75 72 72 65 6E 74 20 66 69 6C the current fil
00A5C0: 65 20 74 6F 20 73 61 76 65 20 69 6E 64 65 78 20 e to save index
00A5D0: 63 61 6C 63 75 6C 61 74 69 6F 6E 0D 0A 09 09 20 calculation....
00A5E0: 20 65 76 65 72 79 20 74 69 6D 65 20 74 68 65 20 every time the
00A5F0: 66 69 6C 65 20 69 73 20 72 65 66 65 72 65 6E 63 file is referenc
00A600: 31 29 20 54 48 45 4E 0D 0A 09 09 09 43 68 61 6E 1) THEN.....Chan
00A610: 67 65 4D 61 72 67 69 6E 28 33 32 29 3B 0D 0A 09 geMargin(32);...
00A620: 09 09 45 4E 44 3B 0D 0A 09 09 49 46 20 4E 4F 54 ..END;....IF NOT
00A630: 20 52 65 44 72 61 77 6E 20 54 48 45 4E 0D 0A 09 ReDrawn THEN...
00A640: 09 09 49 46 20 4C 69 6E 65 50 6F 73 3C 4C 69 6E ..IF LinePos<Lin
00A650: 65 4C 65 6E 20 54 48 45 4E 0D 0A 09 09 09 09 62 eLen THEN......b
00A660: 3A 3D 42 61 63 6B 4F 6E 65 43 68 61 72 28 43 75 :=BackOneChar(Cu
00A670: 72 46 69 6C 65 50 74 72 5E 29 3B 0D 0A 09 09 09 rFilePtr^);.....
00A680: 09 57 72 69 74 65 50 61 72 74 4C 69 6E 65 28 43 .WritePartLine(C
00A690: 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 6E urrentLeftMargin
00A6A0: 2B 54 68 69 73 78 2B 31 29 3B 0D 0A 09 09 09 09 +Thisx+1);......
00A6B0: 49 4E 43 28 54 68 69 73 78 29 3B 0D 0A 09 09 09 INC(Thisx);.....
00A6C0: 09 62 3A 3D 46 6F 72 77 61 72 64 4F 6E 65 43 68 .b:=ForwardOneCh
00A6D0: 61 72 28 43 75 72 46 69 6C 65 50 74 72 5E 29 3B ar(CurFilePtr^);
00A6E0: 09 09 09 09 0D 0A 09 09 09 45 4C 53 45 0D 0A 09 .........ELSE...
00A6F0: 09 09 09 57 72 69 74 65 28 63 68 29 3B 0D 0A 09 ...Write(ch);...
00A700: 09 09 09 49 4E 43 28 54 68 69 73 78 29 3B 0D 0A ...INC(Thisx);..
00A710: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
00A720: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 52 65 73 65 ;....END;...Rese
00A730: 74 50 6F 73 3B 0D 0A 09 45 4E 44 20 49 6E 73 4F tPos;...END InsO
00A740: 6E 65 43 68 61 72 3B 0D 0A 50 52 4F 43 45 44 55 neChar;..PROCEDU
00A750: 52 45 20 44 65 6C 4F 6E 65 43 68 61 72 3B 0D 0A RE DelOneChar;..
00A760: 42 45 47 49 4E 0D 0A 09 4D 61 72 6B 41 73 55 70 BEGIN...MarkAsUp
00A770: 64 61 74 65 64 3B 0D 0A 09 63 68 3A 3D 47 65 74 dated;...ch:=Get
00A780: 43 75 72 72 65 6E 74 43 68 61 72 28 43 75 72 46 CurrentChar(CurF
00A790: 69 6C 65 50 74 72 5E 29 3B 0D 0A 09 49 46 20 4C ilePtr^);...IF L
00A7A0: 69 6E 65 50 6F 73 3D 4C 69 6E 65 4C 65 6E 20 54 inePos=LineLen T
00A7B0: 48 45 4E 20 69 3A 3D 32 0D 0A 09 45 4C 53 45 20 HEN i:=2...ELSE
00A7C0: 69 3A 3D 31 20 45 4E 44 3B 0D 0A 09 44 65 6C 43 i:=1 END;...DelC
00A7D0: 68 61 72 73 28 43 75 72 46 69 6C 65 50 74 72 5E hars(CurFilePtr^
00A7E0: 2C 69 29 3B 0D 0A 09 49 46 20 69 3D 32 20 54 48 ,i);...IF i=2 TH
00A7F0: 45 4E 0D 0A 09 09 49 46 20 54 68 69 73 79 3C 45 EN....IF Thisy<E
00A800: 65 64 2A 29 0D 0A 09 09 43 75 72 72 65 6E 74 46 ed*)....CurrentF
00A810: 69 6C 65 3A 3D 57 69 6E 64 6F 77 46 69 6C 65 5B ile:=WindowFile[
00A820: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 5D 3B 0D CurrentWindow];.
00A830: 0A 09 09 43 75 72 46 69 6C 65 50 74 72 3A 3D 50 ...CurFilePtr:=P
00A840: 45 64 69 74 46 69 6C 65 28 41 44 52 28 46 69 6C EditFile(ADR(Fil
00A850: 65 73 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 29 es[CurrentFile])
00A860: 29 3B 0D 0A 09 09 62 3A 3D 4C 61 62 65 6C 4F 70 );....b:=LabelOp
00A870: 28 43 75 72 46 69 6C 65 50 74 72 5E 2C 46 41 4C (CurFilePtr^,FAL
00A880: 53 45 2C 43 48 52 28 43 75 72 72 65 6E 74 57 69 SE,CHR(CurrentWi
00A890: 6E 64 6F 77 29 29 3B 0D 0A 09 09 54 68 69 73 78 ndow));....Thisx
00A8A0: 3A 3D 63 75 72 78 5B 43 75 72 72 65 6E 74 57 69 :=curx[CurrentWi
00A8B0: 6E 64 6F 77 5D 3B 0D 0A 09 09 54 68 69 73 79 3A ndow];....Thisy:
00A8C0: 3D 63 75 72 79 5B 43 75 72 72 65 6E 74 57 69 6E =cury[CurrentWin
00A8D0: 64 6F 77 5D 3B 0D 0A 09 09 43 75 72 72 65 6E 74 dow];....Current
00A8E0: 4C 65 66 74 4D 61 72 67 69 6E 3A 3D 4C 65 66 74 LeftMargin:=Left
00A8F0: 4D 61 72 67 69 6E 5B 43 75 72 72 65 6E 74 57 69 Margin[CurrentWi
00A900: 6E 64 6F 77 5D 3B 0D 0A 09 09 53 65 74 4C 69 6E ndow];....SetLin
00A910: 65 50 6F 73 28 30 29 3B 0D 0A 09 09 43 68 61 6E ePos(0);....Chan
00A920: 67 65 50 6F 73 3B 0D 0A 09 09 69 3A 3D 28 53 63 gePos;....i:=(Sc
00A930: 72 65 65 6E 44 65 70 74 68 2D 57 69 6E 64 6F 77 reenDepth-Window
00A940: 73 29 20 44 49 56 20 57 69 6E 64 6F 77 73 3B 0D s) DIV Windows;.
00A950: 0A 09 09 53 74 61 72 74 6F 66 57 69 6E 64 6F 77 ...StartofWindow
00A960: 3A 3D 43 41 52 44 49 4E 41 4C 28 69 2B 31 29 2A :=CARDINAL(i+1)*
00A970: 28 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 2D 31 (CurrentWindow-1
00A980: 29 3B 0D 0A 09 45 4C 53 45 20 0D 0A 09 09 53 74 );...ELSE ....St
00A990: 61 72 74 6F 66 57 69 6E 64 6F 77 3A 3D 30 3B 0D artofWindow:=0;.
00A9A0: 0A 09 09 69 3A 3D 30 20 0D 0A 09 09 45 4E 44 3B ...i:=0 ....END;
00A9B0: 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 57 69 6E ...IF CurrentWin
00A9C0: 64 6F 77 3C 57 69 6E 64 6F 77 73 20 54 48 45 4E dow<Windows THEN
00A9D0: 0D 0A 09 09 45 6E 64 6F 66 57 69 6E 64 6F 77 3A ....EndofWindow:
00A9E0: 3D 53 74 61 72 74 6F 66 57 69 6E 64 6F 77 2B 43 =StartofWindow+C
00A9F0: 41 52 44 49 4E 41 4C 28 69 2D 31 29 3B 0D 0A 09 ARDINAL(i-1);...
00AA00: 6E 64 6F 66 57 69 6E 64 6F 77 20 54 48 45 4E 20 ndofWindow THEN
00AA10: 0D 0A 09 09 09 49 4E 43 28 54 68 69 73 79 29 3B .....INC(Thisy);
00AA20: 0D 0A 09 09 09 69 3A 3D 4C 69 6E 65 50 6F 73 3B .....i:=LinePos;
00AA30: 0D 0A 09 09 09 52 65 6D 6F 76 65 4C 69 6E 65 3B .....RemoveLine;
00AA40: 0D 0A 09 09 09 4C 69 6E 65 50 6F 73 3A 3D 69 3B .....LinePos:=i;
00AA50: 0D 0A 09 09 09 44 45 43 28 54 68 69 73 79 29 3B .....DEC(Thisy);
00AA60: 0D 0A 09 09 09 52 65 64 6F 4C 69 6E 65 3B 0D 0A .....RedoLine;..
00AA70: 09 09 09 45 4E 44 3B 0D 0A 09 45 4C 53 45 09 0D ...END;...ELSE..
00AA80: 0A 09 09 44 45 43 28 4C 69 6E 65 4C 65 6E 29 3B ...DEC(LineLen);
00AA90: 0D 0A 09 09 57 72 69 74 65 50 61 72 74 4C 69 6E ....WritePartLin
00AAA0: 65 28 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 e(CurrentLeftMar
00AAB0: 67 69 6E 2B 54 68 69 73 78 2B 31 29 3B 0D 0A 09 gin+Thisx+1);...
00AAC0: 09 45 4E 44 3B 0D 0A 28 2A 09 45 4C 53 49 46 20 .END;..(*.ELSIF
00AAD0: 63 68 3D 54 41 42 20 54 48 45 4E 0D 0A 09 09 52 ch=TAB THEN....R
00AAE0: 65 64 6F 4C 69 6E 65 0D 0A 09 45 4C 53 45 0D 0A edoLine...ELSE..
00AAF0: 09 09 4C 69 6E 65 4C 65 6E 3A 3D 4C 69 6E 65 4C ..LineLen:=LineL
00AB00: 65 6E 2D 31 3B 0D 0A 09 09 44 6F 53 63 72 65 65 en-1;....DoScree
00AB10: 6E 43 68 61 6E 67 65 28 44 65 6C 43 68 61 72 29 nChange(DelChar)
00AB20: 3B 0D 0A 09 09 45 4E 44 3B 2A 29 0D 0A 09 52 65 ;....END;*)...Re
00AB30: 73 65 74 50 6F 73 3B 0D 0A 09 45 4E 44 20 44 65 setPos;...END De
00AB40: 6C 4F 6E 65 43 68 61 72 3B 0D 0A 50 52 4F 43 45 lOneChar;..PROCE
00AB50: 44 55 52 45 20 4F 76 65 72 57 72 69 74 65 28 63 DURE OverWrite(c
00AB60: 68 3A 43 48 41 52 29 3B 0D 0A 56 41 52 09 43 48 h:CHAR);..VAR.CH
00AB70: 31 3A 41 52 52 41 59 5B 30 2E 2E 30 5D 20 4F 46 1:ARRAY[0..0] OF
00AB80: 20 43 48 41 52 3B 0D 0A 42 45 47 49 4E 0D 0A 09 CHAR;..BEGIN...
00AB90: 43 48 31 5B 30 5D 3A 3D 47 65 74 43 75 72 72 65 CH1[0]:=GetCurre
00ABA0: 6E 74 43 68 61 72 28 43 75 72 46 69 6C 65 50 74 ntChar(CurFilePt
00ABB0: 72 5E 29 3B 0D 0A 09 49 46 20 28 43 48 31 5B 30 r^);...IF (CH1[0
00ABC0: 5D 3C 3E 43 52 29 20 41 4E 44 20 28 63 68 3C 3E ]<>CR) AND (ch<>
00ABD0: 43 52 29 20 41 4E 44 20 28 43 48 31 5B 30 5D 3C CR) AND (CH1[0]<
00ABE0: 3E 31 61 78 29 20 54 48 45 4E 0D 0A 09 09 49 46 >1ax) THEN....IF
00ABF0: 20 28 43 48 31 5B 30 5D 3C 3E 54 41 42 29 20 41 (CH1[0]<>TAB) A
00AC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00AC10: 09 00 01 00 02 09 52 E5 09 00 C9 02 00 00 00 02 ......R.........
00AC20: 09 00 C5 02 00 00 00 02 09 00 C1 02 00 00 00 02 ................
00AC30: 09 00 C6 02 00 00 00 02 09 00 C2 02 00 00 00 02 ................
00AC40: 09 00 C7 02 00 00 00 02 09 00 C3 02 00 00 00 02 ................
00AC50: 09 00 C8 02 00 00 00 02 09 00 C4 02 00 00 00 02 ................
00AC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AD00: 6E 64 6F 77 3A 49 4E 54 45 47 45 52 3B 56 41 52 ndow:INTEGER;VAR
00AD10: 20 63 75 72 78 2C 63 75 72 79 3A 43 41 52 44 49 curx,cury:CARDI
00AD20: 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 52 NAL);..BEGIN...R
00AD30: 65 74 72 6C 69 6E 65 28 66 2C 6C 65 6E 2C 63 68 etrline(f,len,ch
00AD40: 61 72 73 69 6E 2C 70 6F 73 2C 6D 6F 76 65 64 2C arsin,pos,moved,
00AD50: 30 29 3B 0D 0A 09 6C 69 6E 65 70 6F 73 3A 3D 30 0);...linepos:=0
00AD60: 3B 0D 0A 09 46 4F 52 20 69 63 3A 3D 30 20 54 4F ;...FOR ic:=0 TO
00AD70: 20 63 68 61 72 73 69 6E 20 44 4F 0D 0A 09 09 52 charsin DO....R
00AD80: 65 61 64 4E 65 78 74 43 68 61 72 28 70 6F 73 2C eadNextChar(pos,
00AD90: 63 68 29 3B 0D 0A 09 09 49 46 20 63 68 3D 30 39 ch);....IF ch=09
00ADA0: 78 20 54 48 45 4E 20 6C 69 6E 65 70 6F 73 3A 3D x THEN linepos:=
00ADB0: 49 41 4E 44 28 6C 69 6E 65 70 6F 73 2B 38 2C 30 IAND(linepos+8,0
00ADC0: 66 66 66 38 68 29 0D 0A 09 09 45 4C 53 45 20 49 fff8h)....ELSE I
00ADD0: 4E 43 28 6C 69 6E 65 70 6F 73 29 20 45 4E 44 3B NC(linepos) END;
00ADE0: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 4C 65 66 74 4D ....END;...LeftM
00ADF0: 61 72 67 3A 3D 30 3B 0D 0A 09 57 48 49 4C 45 20 arg:=0;...WHILE
00AE00: 6C 69 6E 65 70 6F 73 3E 28 4C 65 66 74 4D 61 72 linepos>(LeftMar
00AE10: 67 2B 53 63 72 65 65 6E 57 69 64 74 68 29 20 44 g+ScreenWidth) D
00AE20: 4F 0D 0A 09 09 4C 65 66 74 4D 61 72 67 3A 3D 4C O....LeftMarg:=L
00AE30: 65 66 74 4D 61 72 67 2B 33 32 3B 0D 0A 09 09 45 eftMarg+32;....E
00AE40: 4E 44 3B 0D 0A 09 4C 65 66 74 4D 61 72 67 69 6E ND;...LeftMargin
00AE50: 5B 77 69 6E 64 6F 77 5D 3A 3D 4C 65 66 74 4D 61 [window]:=LeftMa
00AE60: 72 67 3B 0D 0A 09 45 4E 44 20 53 65 74 4C 65 66 rg;...END SetLef
00AE70: 74 4D 61 72 67 3B 0D 0A 50 52 4F 43 45 44 55 52 tMarg;..PROCEDUR
00AE80: 45 20 44 69 73 70 6C 61 79 46 69 6C 65 28 66 3A E DisplayFile(f:
00AE90: 45 64 69 74 46 69 6C 65 3B 77 69 6E 64 6F 77 3A EditFile;window:
00AEA0: 49 4E 54 45 47 45 52 3B 56 41 52 20 63 75 72 78 INTEGER;VAR curx
00AEB0: 2C 63 75 72 79 3A 43 41 52 44 49 4E 41 4C 29 3B ,cury:CARDINAL);
00AEC0: 0D 0A 0D 0A 28 2A 09 72 65 64 69 73 70 6C 61 79 ....(*.redisplay
00AED0: 20 61 73 20 6D 75 63 68 20 74 65 78 74 20 61 73 as much text as
00AEE0: 20 77 69 6C 6C 20 66 69 74 20 69 6E 20 74 68 65 will fit in the
00AEF0: 20 77 69 6E 64 6F 77 0D 0A 09 66 6F 72 20 74 68 window...for th
00AF00: 0A 0D 0A 28 2A 09 72 65 64 69 73 70 6C 61 79 20 ...(*.redisplay
00AF10: 61 73 20 6D 75 63 68 20 74 65 78 74 20 61 73 20 as much text as
00AF20: 77 69 6C 6C 20 66 69 74 20 69 6E 20 74 68 65 20 will fit in the
00AF30: 77 69 6E 64 6F 77 0D 0A 09 66 6F 72 20 74 68 65 window...for the
00AF40: 20 67 69 76 65 6E 20 66 69 6C 65 20 73 74 61 72 given file star
00AF50: 74 69 6E 67 20 61 74 20 74 68 65 20 63 75 72 72 ting at the curr
00AF60: 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 6E 20 ent position in
00AF70: 74 68 65 20 66 69 6C 65 0D 0A 0D 0A 09 63 75 72 the file.....cur
00AF80: 78 20 61 6E 64 20 63 75 72 79 20 72 65 74 75 72 x and cury retur
00AF90: 6E 20 74 68 65 20 73 63 72 65 65 6E 20 63 6F 2D n the screen co-
00AFA0: 6F 72 64 69 6E 61 74 65 73 20 66 6F 72 20 74 68 ordinates for th
00AFB0: 65 0D 0A 09 63 75 72 72 65 6E 74 20 70 6F 73 69 e...current posi
00AFC0: 74 69 6F 6E 20 69 6E 20 74 68 65 20 66 69 6C 65 tion in the file
00AFD0: 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 *)....PROCEDURE
00AFE0: 53 65 74 4C 65 66 74 4D 61 72 67 28 66 3A 45 64 SetLeftMarg(f:Ed
00AFF0: 69 74 46 69 6C 65 3B 77 69 6E 64 6F 77 3A 49 4E itFile;window:IN
00B000: 54 45 47 45 52 3B 56 41 52 20 63 75 72 78 2C 63 TEGER;VAR curx,c
00B010: 75 72 79 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ury:CARDINAL);..
00B020: 0D 0A 28 2A 09 53 65 74 20 75 70 20 6C 65 66 74 ..(*.Set up left
00B030: 20 6D 61 72 67 69 6E 20 6F 66 20 61 20 6E 65 77 margin of a new
00B040: 6C 79 20 6F 70 65 6E 65 64 20 66 69 6C 65 20 2A ly opened file *
00B050: 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 69 73 )..PROCEDURE Dis
00B060: 70 6C 61 79 45 72 72 6F 72 3B 0D 0A 56 41 52 09 playError;..VAR.
00B070: 57 69 6E 64 6F 77 73 3A 43 41 52 44 49 4E 41 4C Windows:CARDINAL
00B080: 3B 0D 0A 09 4C 69 6E 65 73 50 65 72 57 69 6E 64 ;...LinesPerWind
00B090: 6F 77 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 45 4E ow:CARDINAL;..EN
00B0A0: 44 20 45 64 69 74 44 69 73 70 6C 61 79 2E 0D 0A D EditDisplay...
00B0B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00B0C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 18 ................
00B0D0: E9 18 EA 18 FF FF EC 18 FF FF FF FF EF 18 F0 18 ................
00B0E0: 02 19 F2 18 F3 18 F4 18 F5 18 F6 18 F7 18 F8 18 ................
00B0F0: F9 18 FA 18 FB 18 FF FF FD 18 FE 18 FF 18 00 19 ................
00B100: 4E 6F 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 42 45 No:INTEGER);..BE
00B110: 47 49 4E 0D 0A 09 46 4F 52 20 69 3A 3D 57 69 6E GIN...FOR i:=Win
00B120: 64 6F 77 4E 6F 2B 31 20 54 4F 20 49 4E 54 45 47 dowNo+1 TO INTEG
00B130: 45 52 28 57 69 6E 64 6F 77 73 29 20 44 4F 0D 0A ER(Windows) DO..
00B140: 09 09 4D 6F 76 65 57 69 6E 64 6F 77 28 69 2C 69 ..MoveWindow(i,i
00B150: 2D 31 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 44 -1);....END;...D
00B160: 45 43 28 57 69 6E 64 6F 77 73 29 3B 0D 0A 09 43 EC(Windows);...C
00B170: 75 72 72 65 6E 74 57 69 6E 64 6F 77 3A 3D 30 3B urrentWindow:=0;
00B180: 0D 0A 09 45 4E 44 20 45 6C 69 64 65 57 69 6E 64 ...END ElideWind
00B190: 6F 77 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D ow;..PROCEDURE M
00B1A0: 61 6B 65 57 69 6E 64 6F 77 3B 0D 0A 42 45 47 49 akeWindow;..BEGI
00B1B0: 4E 0D 0A 09 49 4E 43 28 57 69 6E 64 6F 77 73 29 N...INC(Windows)
00B1C0: 3B 0D 0A 09 4D 6F 76 65 57 69 6E 64 6F 77 28 43 ;...MoveWindow(C
00B1D0: 75 72 72 65 6E 74 57 69 6E 64 6F 77 2C 57 69 6E urrentWindow,Win
00B1E0: 64 6F 77 73 29 3B 0D 0A 09 45 4E 44 20 4D 61 6B dows);...END Mak
00B1F0: 65 57 69 6E 64 6F 77 3B 0D 0A 50 52 4F 43 45 44 eWindow;..PROCED
00B200: 55 52 45 20 53 65 61 72 63 68 28 52 65 70 6C 61 URE Search(Repla
00B210: 63 65 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 ce:ARRAY OF CHAR
00B220: 3B 52 4C 65 6E 3A 49 4E 54 45 47 45 52 3B 4C 65 ;RLen:INTEGER;Le
00B230: 6E 3A 43 41 52 44 49 4E 41 4C 29 3A 42 4F 4F 4C n:CARDINAL):BOOL
00B240: 45 41 4E 3B 0D 0A 0D 0A 28 2A 09 73 65 61 72 63 EAN;....(*.searc
00B250: 68 20 66 6F 72 20 73 74 72 69 6E 67 20 61 6E 64 h for string and
00B260: 20 72 65 70 6C 61 63 65 20 69 66 20 66 6F 75 6E replace if foun
00B270: 64 2A 29 0D 0A 56 41 52 09 62 3A 42 4F 4F 4C 45 d*)..VAR.b:BOOLE
00B280: 41 4E 3B 0D 0A 09 46 6F 75 6E 64 3A 42 4F 4F 4C AN;...Found:BOOL
00B290: 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A 09 62 3A EAN;..BEGIN...b:
00B2A0: 3D 4C 65 6E 3E 31 32 38 3B 0D 0A 09 49 46 20 62 =Len>128;...IF b
00B2B0: 20 54 48 45 4E 20 4C 65 6E 3A 3D 4C 65 6E 2D 31 THEN Len:=Len-1
00B2C0: 32 38 20 45 4E 44 3B 0D 0A 09 46 6F 75 6E 64 3A 28 END;...Found:
00B2D0: 3D 46 69 6E 64 53 74 72 69 6E 67 28 43 75 72 46 =FindString(CurF
00B2E0: 69 6C 65 50 74 72 5E 2C 62 29 3B 0D 0A 09 49 46 ilePtr^,b);...IF
00B2F0: 20 46 6F 75 6E 64 20 41 4E 44 20 28 52 4C 65 6E Found AND (RLen
00B300: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
00B310: 4F 44 55 4C 45 20 45 64 69 74 44 69 73 70 6C 61 ODULE EditDispla
00B320: 79 3B 0D 0A 28 2A 09 44 69 73 70 6C 61 79 20 70 y;..(*.Display p
00B330: 61 72 74 20 6F 66 20 61 20 66 69 6C 65 20 62 65 art of a file be
00B340: 69 6E 67 20 65 64 69 74 65 64 2A 29 0D 0A 46 52 ing edited*)..FR
00B350: 4F 4D 09 53 43 52 45 45 4E 49 4F 20 49 4D 50 4F OM.SCREENIO IMPO
00B360: 52 54 20 47 6F 74 6F 78 79 2C 53 63 72 65 65 6E RT Gotoxy,Screen
00B370: 43 6F 6E 74 72 6F 6C 2C 0D 0A 09 09 09 4D 61 64 Control,.....Mad
00B380: 65 43 68 61 6E 67 65 2C 53 63 72 65 65 6E 57 69 eChange,ScreenWi
00B390: 64 74 68 2C 53 63 72 65 65 6E 44 65 70 74 68 3B dth,ScreenDepth;
00B3A0: 0D 0A 46 52 4F 4D 20 09 54 65 72 6D 69 6E 61 6C ..FROM .Terminal
00B3B0: 20 49 4D 50 4F 52 54 20 57 72 69 74 65 53 74 72 IMPORT WriteStr
00B3C0: 69 6E 67 2C 57 72 69 74 65 2C 57 72 69 74 65 4C ing,Write,WriteL
00B3D0: 6E 2C 52 65 61 64 3B 0D 0A 46 52 4F 4D 20 09 4D n,Read;..FROM .M
00B3E0: 61 6B 65 45 64 69 74 73 20 49 4D 50 4F 52 54 20 akeEdits IMPORT
00B3F0: 50 6F 73 69 74 69 6F 6E 2C 52 65 74 72 6C 69 6E Position,Retrlin
00B400: 65 2C 52 65 61 64 4E 65 78 74 43 68 61 72 2C 45 e,ReadNextChar,E
00B410: 72 72 6F 72 4C 69 73 74 2C 45 72 72 6F 72 43 6F rrorList,ErrorCo
00B420: 75 6E 74 2C 4C 61 62 65 6C 4F 70 3B 0D 0A 46 52 unt,LabelOp;..FR
00B430: 4F 4D 09 45 64 69 74 43 6F 6E 74 20 49 4D 50 4F OM.EditCont IMPO
00B440: 52 54 20 4C 65 66 74 4D 61 72 67 69 6E 2C 46 69 RT LeftMargin,Fi
00B450: 6C 65 73 2C 43 75 72 72 65 6E 74 57 69 6E 64 6F les,CurrentWindo
00B460: 77 2C 43 75 72 72 65 6E 74 46 69 6C 65 2C 54 68 w,CurrentFile,Th
00B470: 69 73 78 2C 54 68 69 73 79 2C 0D 0A 09 09 09 63 isx,Thisy,.....c
00B480: 75 72 78 2C 63 75 72 79 2C 52 65 44 69 73 70 6C urx,cury,ReDispl
00B490: 61 79 3B 0D 0A 46 52 4F 4D 20 09 49 6E 74 4C 6F ay;..FROM .IntLo
00B4A0: 67 69 63 20 49 4D 50 4F 52 54 20 49 41 4E 44 3B gic IMPORT IAND;
00B4B0: 0D 0A 46 52 4F 4D 09 46 69 6C 65 73 20 49 4D 50 ..FROM.Files IMP
00B4C0: 4F 52 54 20 4C 6F 6F 6B 75 70 2C 43 6C 6F 73 65 ORT Lookup,Close
00B4D0: 2C 46 49 4C 45 2C 52 65 61 64 42 6C 6F 63 6B 3B ,FILE,ReadBlock;
00B4E0: 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D ..FROM.SYSTEM IM
00B4F0: 50 4F 52 54 20 41 44 52 3B 0D 0A 43 4F 4E 53 54 PORT ADR;..CONST
00B500: 3E 3D 30 29 20 54 48 45 4E 0D 0A 09 09 4D 61 72 >=0) THEN....Mar
00B510: 6B 41 73 55 70 64 61 74 65 64 3B 0D 0A 09 09 44 kAsUpdated;....D
00B520: 65 6C 43 68 61 72 73 28 43 75 72 46 69 6C 65 50 elChars(CurFileP
00B530: 74 72 5E 2C 4C 65 6E 29 20 0D 0A 09 09 49 6E 73 tr^,Len) ....Ins
00B540: 43 68 61 72 73 28 43 75 72 46 69 6C 65 50 74 72 Chars(CurFilePtr
00B550: 5E 2C 52 65 70 6C 61 63 65 2C 52 4C 65 6E 29 3B ^,Replace,RLen);
00B560: 0D 0A 09 09 62 3A 3D 42 61 63 6B 4F 6E 65 43 68 ....b:=BackOneCh
00B570: 61 72 28 43 75 72 46 69 6C 65 50 74 72 5E 29 3B ar(CurFilePtr^);
00B580: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 52 65 44 69 73 ....END;...ReDis
00B590: 70 6C 61 79 3B 0D 0A 09 52 45 54 55 52 4E 20 46 play;...RETURN F
00B5A0: 6F 75 6E 64 3B 0D 0A 09 45 4E 44 20 53 65 61 72 ound;...END Sear
00B5B0: 63 68 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 ch;..PROCEDURE G
00B5C0: 6F 54 6F 4C 61 62 65 6C 28 63 68 3A 43 48 41 52 oToLabel(ch:CHAR
00B5D0: 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 4C );..BEGIN...IF L
00B5E0: 61 62 65 6C 4F 70 28 43 75 72 46 69 6C 65 50 74 abelOp(CurFilePt
00B5F0: 72 5E 2C 46 41 4C 53 45 2C 63 68 29 20 54 48 45 r^,FALSE,ch) THE
00B600: 4E 0D 0A 09 09 52 65 44 69 73 70 6C 61 79 3B 0D N....ReDisplay;.
00B610: 0A 09 45 4C 53 45 0D 0A 09 09 45 72 72 6F 72 4D ..ELSE....ErrorM
00B620: 65 73 73 61 67 65 28 27 20 4C 61 62 65 6C 20 6E essage(' Label n
00B630: 6F 74 20 64 65 66 69 6E 65 64 27 2C 27 20 27 29 ot defined',' ')
00B640: 3B 0D 0A 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A ;....ResetPos;..
00B650: 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 47 6F 54 ..END;...END GoT
00B660: 6F 4C 61 62 65 6C 3B 09 09 0D 0A 42 45 47 49 4E oLabel;....BEGIN
00B670: 0D 0A 09 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 ...CurrentWindow
00B680: 3A 3D 30 3B 0D 0A 09 43 75 72 72 65 6E 74 46 69 :=0;...CurrentFi
00B690: 6C 65 3A 3D 30 3B 0D 0A 09 43 75 72 46 69 6C 65 le:=0;...CurFile
00B6A0: 50 74 72 3A 3D 50 45 64 69 74 46 69 6C 65 28 41 Ptr:=PEditFile(A
00B6B0: 44 52 28 46 69 6C 65 73 5B 31 5D 29 29 3B 0D 0A DR(Files[1]));..
00B6C0: 09 45 4E 44 20 45 64 69 74 43 6F 6E 74 72 6F 6C .END EditControl
00B6D0: 2E 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00B6E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00B6F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00B700: 09 45 4F 46 3D 31 61 78 3B 0D 0A 0D 0A 50 52 4F .EOF=1ax;....PRO
00B710: 43 45 44 55 52 45 20 45 72 72 6F 72 4D 65 73 73 CEDURE ErrorMess
00B720: 61 67 65 28 73 31 2C 73 32 3A 41 52 52 41 59 20 age(s1,s2:ARRAY
00B730: 4F 46 20 43 48 41 52 29 3B 0D 0A 0D 0A 28 2A 09 OF CHAR);....(*.
00B740: 44 69 73 70 6C 61 79 20 65 72 72 6F 72 20 6D 65 Display error me
00B750: 73 73 61 67 65 20 61 74 20 62 6F 74 74 6F 6D 20 ssage at bottom
00B760: 6F 66 20 73 63 72 65 65 6E 2A 29 0D 0A 56 41 52 of screen*)..VAR
00B770: 20 69 3A 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 i:INTEGER;..BEG
00B780: 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 30 2C 53 63 IN...Gotoxy(0,Sc
00B790: 72 65 65 6E 44 65 70 74 68 2D 31 29 3B 0D 0A 09 reenDepth-1);...
00B7A0: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 52 69 ScreenControl(Ri
00B7B0: 6E 67 42 65 6C 6C 29 3B 0D 0A 09 53 63 72 65 65 ngBell);...Scree
00B7C0: 6E 43 6F 6E 74 72 6F 6C 28 44 65 6C 45 6F 6C 29 nControl(DelEol)
00B7D0: 3B 0D 0A 09 57 72 69 74 65 53 74 72 69 6E 67 28 ;...WriteString(
00B7E0: 73 31 29 3B 57 72 69 74 65 53 74 72 69 6E 67 28 s1);WriteString(
00B7F0: 73 32 29 3B 0D 0A 09 45 4E 44 20 45 72 72 6F 72 s2);...END Error
00B800: 4D 65 73 73 61 67 65 3B 0D 0A 50 52 4F 43 45 44 Message;..PROCED
00B810: 55 52 45 20 53 65 74 57 69 6E 64 6F 77 73 28 69 URE SetWindows(i
00B820: 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A :INTEGER);....(*
00B830: 09 73 65 74 20 6E 75 6D 62 65 72 20 6F 66 20 65 .set number of e
00B840: 64 69 74 20 77 69 6E 64 6F 77 73 20 69 6E 20 75 dit windows in u
00B850: 73 65 20 2D 20 79 6F 75 20 6D 75 73 74 20 72 65 se - you must re
00B860: 66 72 65 73 68 20 74 68 65 20 65 6E 74 69 72 65 fresh the entire
00B870: 0D 0A 09 73 63 72 65 65 6E 20 77 69 74 68 20 63 ...screen with c
00B880: 61 6C 6C 73 20 74 6F 20 44 69 73 70 6C 61 79 46 alls to DisplayF
00B890: 69 6C 65 20 61 66 74 65 72 20 61 20 63 61 6C 6C ile after a call
00B8A0: 20 74 6F 20 74 68 69 73 0D 0A 09 72 6F 75 74 69 to this...routi
00B8B0: 6E 65 2A 29 0D 0A 56 41 52 09 6A 2C 6B 3A 43 41 ne*)..VAR.j,k:CA
00B8C0: 52 44 49 4E 41 4C 3B 0D 0A 09 0D 0A 42 45 47 49 RDINAL;.....BEGI
00B8D0: 4E 0D 0A 09 57 69 6E 64 6F 77 73 3A 3D 69 3B 0D N...Windows:=i;.
00B8E0: 0A 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 ..ScreenControl(
00B8F0: 43 6C 65 61 72 53 63 72 65 65 6E 29 3B 0D 0A 09 ClearScreen);...
00B900: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00B910: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00B920: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00B930: 1A 1A 1A 02 1B 02 1C 02 1D 02 1E 02 1F 02 20 02 .............. .
00B940: 21 02 22 02 23 02 24 02 25 02 26 02 27 02 28 02 !.".#.$.%.&.'.(.
00B950: 29 02 2A 02 2B 02 FF FF FF FF FF FF FF FF 30 02 ).*.+.........0.
00B960: FF FF 32 02 33 02 34 02 35 02 36 02 37 02 38 02 ..2.3.4.5.6.7.8.
00B970: 39 02 FF FF FF FF FF FF 3D 02 3E 02 3F 02 40 02 9.......=.>.?.@.
00B980: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F 4D 65 ..PROCEDURE DoMe
00B990: 6E 75 4F 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 nuOp;..PROCEDURE
00B9A0: 20 4F 70 65 6E 28 66 6E 3A 46 69 6C 65 4E 61 6D Open(fn:FileNam
00B9B0: 65 3B 50 6F 73 3A 43 41 52 44 49 4E 41 4C 29 3B e;Pos:CARDINAL);
00B9C0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 53 ..PROCEDURE GetS
00B9D0: 74 72 69 6E 67 28 56 41 52 20 73 3A 41 52 52 41 tring(VAR s:ARRA
00B9E0: 59 20 4F 46 20 43 48 41 52 3B 56 41 52 20 6C 65 Y OF CHAR;VAR le
00B9F0: 6E 3A 43 41 52 44 49 4E 41 4C 3B 70 72 6F 6D 70 n:CARDINAL;promp
00BA00: 74 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 29 t:ARRAY OF CHAR)
00BA10: 3B 0D 0A 45 4E 44 20 44 6F 4D 65 6E 75 2E 0D 0A ;..END DoMenu...
00BA20: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00BA30: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00BA40: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00BA50: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00BA60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00BA70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00BA80: 6F 6E 73 20 61 72 65 20 73 75 70 70 6C 69 65 64 ons are supplied
00BA90: 2E 20 20 53 43 52 45 45 4E 49 4F 2E 4F 53 42 20 . SCREENIO.OSB
00BAA0: 69 73 20 66 6F 72 20 74 68 65 20 4F 73 62 6F 72 is for the Osbor
00BAB0: 6E 65 0D 0A 09 09 31 2C 20 53 43 52 45 45 4E 49 ne....1, SCREENI
00BAC0: 4F 2E 4D 42 45 20 69 73 20 66 6F 72 20 74 68 65 O.MBE is for the
00BAD0: 20 4D 69 63 72 6F 42 65 65 2C 20 61 6E 64 20 53 MicroBee, and S
00BAE0: 43 52 45 45 4E 49 4F 2E 45 41 52 20 69 73 20 66 CREENIO.EAR is f
00BAF0: 6F 72 0D 0A 09 09 74 68 65 20 45 61 72 74 68 20 or....the Earth
00BB00: 49 46 20 57 69 6E 64 6F 77 73 3E 31 20 54 48 45 IF Windows>1 THE
00BB10: 4E 0D 0A 09 09 4C 69 6E 65 73 50 65 72 57 69 6E N....LinesPerWin
00BB20: 64 6F 77 3A 3D 28 53 63 72 65 65 6E 44 65 70 74 dow:=(ScreenDept
00BB30: 68 2D 57 69 6E 64 6F 77 73 29 20 44 49 56 20 57 h-Windows) DIV W
00BB40: 69 6E 64 6F 77 73 3B 0D 0A 09 45 4C 53 45 09 4C indows;...ELSE.L
00BB50: 69 6E 65 73 50 65 72 57 69 6E 64 6F 77 3A 3D 53 inesPerWindow:=S
00BB60: 63 72 65 65 6E 44 65 70 74 68 2D 31 20 45 4E 44 creenDepth-1 END
00BB70: 3B 0D 0A 09 46 4F 52 20 6A 3A 3D 32 20 54 4F 20 ;...FOR j:=2 TO
00BB80: 57 69 6E 64 6F 77 73 20 44 4F 0D 0A 09 09 47 6F Windows DO....Go
00BB90: 74 6F 78 79 28 30 2C 28 4C 69 6E 65 73 50 65 72 toxy(0,(LinesPer
00BBA0: 57 69 6E 64 6F 77 2B 31 29 2A 28 6A 2D 31 29 2D Window+1)*(j-1)-
00BBB0: 31 29 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 1);....ScreenCon
00BBC0: 74 72 6F 6C 28 53 74 61 72 74 47 72 61 70 68 29 trol(StartGraph)
00BBD0: 3B 0D 0A 09 09 46 4F 52 20 6B 3A 3D 31 20 54 4F ;....FOR k:=1 TO
00BBE0: 20 53 63 72 65 65 6E 57 69 64 74 68 20 44 4F 20 ScreenWidth DO
00BBF0: 0D 0A 09 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 .....ScreenContr
00BC00: 6F 6C 28 48 6F 72 69 7A 6F 6E 74 61 6C 29 3B 0D ol(Horizontal);.
00BC10: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 53 63 72 65 ....END;....Scre
00BC20: 65 6E 43 6F 6E 74 72 6F 6C 28 45 6E 64 47 72 61 enControl(EndGra
00BC30: 70 68 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 ph);....END;...E
00BC40: 4E 44 20 53 65 74 57 69 6E 64 6F 77 73 3B 0D 0A ND SetWindows;..
00BC50: 09 28 2A 70 75 74 20 61 20 6C 69 6E 65 20 62 65 .(*put a line be
00BC60: 74 77 65 65 6E 20 74 68 65 20 77 69 6E 64 6F 77 tween the window
00BC70: 73 2A 29 0D 0A 0D 0A 56 41 52 09 63 68 3A 43 48 s*)....VAR.ch:CH
00BC80: 41 52 3B 0D 0A 09 70 6F 73 3A 50 6F 73 69 74 69 AR;...pos:Positi
00BC90: 6F 6E 3B 0D 0A 09 63 68 61 72 73 69 6E 2C 69 63 on;...charsin,ic
00BCA0: 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 6C 65 6E 2C :INTEGER;...len,
00BCB0: 6D 6F 76 65 64 3A 49 4E 54 45 47 45 52 3B 0D 0A moved:INTEGER;..
00BCC0: 09 6C 69 6E 65 70 6F 73 2C 4C 65 66 74 4D 61 72 .linepos,LeftMar
00BCD0: 67 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 50 52 4F g:CARDINAL;..PRO
00BCE0: 43 45 44 55 52 45 20 53 65 74 4C 65 66 74 4D 61 CEDURE SetLeftMa
00BCF0: 72 67 28 66 3A 45 64 69 74 46 69 6C 65 3B 77 69 rg(f:EditFile;wi
00BD00: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
00BD10: 45 20 45 64 69 74 44 69 73 70 6C 61 79 3B 0D 0A E EditDisplay;..
00BD20: 28 2A 09 44 69 73 70 6C 61 79 20 70 61 72 74 20 (*.Display part
00BD30: 6F 66 20 61 20 66 69 6C 65 20 62 65 69 6E 67 20 of a file being
00BD40: 65 64 69 74 65 64 2A 29 0D 0A 0D 0A 46 52 4F 4D edited*)....FROM
00BD50: 20 53 63 72 65 65 6E 49 4F 20 20 49 4D 50 4F 52 ScreenIO IMPOR
00BD60: 54 20 45 64 69 74 73 3B 0D 0A 46 52 4F 4D 20 4D T Edits;..FROM M
00BD70: 61 6B 65 45 64 69 74 73 20 49 4D 50 4F 52 54 20 akeEdits IMPORT
00BD80: 45 64 69 74 46 69 6C 65 3B 0D 0A 56 41 52 09 45 EditFile;..VAR.E
00BD90: 72 72 6F 72 4F 72 64 69 6E 61 6C 3A 43 41 52 44 rrorOrdinal:CARD
00BDA0: 49 4E 41 4C 3B 0D 0A 50 52 4F 43 45 44 55 52 45 INAL;..PROCEDURE
00BDB0: 20 45 72 72 6F 72 4D 65 73 73 61 67 65 28 73 31 ErrorMessage(s1
00BDC0: 2C 73 32 3A 41 52 52 41 59 20 4F 46 20 43 48 41 ,s2:ARRAY OF CHA
00BDD0: 52 29 3B 0D 0A 0D 0A 28 2A 09 44 69 73 70 6C 61 R);....(*.Displa
00BDE0: 79 20 65 72 72 6F 72 20 6D 65 73 73 61 67 65 20 y error message
00BDF0: 61 74 20 62 6F 74 74 6F 6D 20 6F 66 20 73 63 72 at bottom of scr
00BE00: 65 65 6E 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 een*)....PROCEDU
00BE10: 52 45 20 53 65 74 57 69 6E 64 6F 77 73 28 69 3A RE SetWindows(i:
00BE20: 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A 09 INTEGER);....(*.
00BE30: 73 65 74 20 6E 75 6D 62 65 72 20 6F 66 20 65 64 set number of ed
00BE40: 69 74 20 77 69 6E 64 6F 77 73 20 69 6E 20 75 73 it windows in us
00BE50: 65 20 2D 20 79 6F 75 20 6D 75 73 74 20 72 65 66 e - you must ref
00BE60: 72 65 73 68 20 74 68 65 20 65 6E 74 69 72 65 0D resh the entire.
00BE70: 0A 09 73 63 72 65 65 6E 20 77 69 74 68 20 63 61 ..screen with ca
00BE80: 6C 6C 73 20 74 6F 20 44 69 73 70 6C 61 79 46 69 lls to DisplayFi
00BE90: 6C 65 20 61 66 74 65 72 20 61 20 63 61 6C 6C 20 le after a call
00BEA0: 74 6F 20 74 68 69 73 0D 0A 09 72 6F 75 74 69 6E to this...routin
00BEB0: 65 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 e*)....PROCEDURE
00BEC0: 20 44 69 73 70 6C 61 79 46 69 6C 65 28 66 3A 45 DisplayFile(f:E
00BED0: 64 69 74 46 69 6C 65 3B 77 69 6E 64 6F 77 3A 49 ditFile;window:I
00BEE0: 4E 54 45 47 45 52 3B 56 41 52 20 63 75 72 78 2C NTEGER;VAR curx,
00BEF0: 63 75 72 79 3A 43 41 52 44 49 4E 41 4C 29 3B 0D cury:CARDINAL);.
00BF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00BF10: 0A 00 01 00 02 09 52 E5 0A 00 C9 02 00 00 00 02 ......R.........
00BF20: 0A 00 C5 02 00 00 00 02 0A 00 C1 02 00 00 00 02 ................
00BF30: 0A 00 C6 02 00 00 00 02 0A 00 C2 02 00 00 00 02 ................
00BF40: 0A 00 C7 02 00 00 00 02 0A 00 C3 02 00 00 00 02 ................
00BF50: 0A 00 C8 02 00 00 00 02 0A 00 C4 02 00 00 00 02 ................
00BF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C000: 78 2C 54 68 69 73 79 29 3B 2A 29 0D 0A 09 47 6F x,Thisy);*)...Go
00C010: 74 6F 78 79 28 54 68 69 73 78 2C 54 68 69 73 79 toxy(Thisx,Thisy
00C020: 29 3B 0D 0A 09 63 75 72 78 5B 43 75 72 72 65 6E );...curx[Curren
00C030: 74 57 69 6E 64 6F 77 5D 3A 3D 54 68 69 73 78 3B tWindow]:=Thisx;
00C040: 0D 0A 09 63 75 72 79 5B 43 75 72 72 65 6E 74 57 ...cury[CurrentW
00C050: 69 6E 64 6F 77 5D 3A 3D 54 68 69 73 79 3B 0D 0A indow]:=Thisy;..
00C060: 09 45 4E 44 20 44 69 73 70 6C 61 79 45 72 72 6F .END DisplayErro
00C070: 72 3B 09 0D 0A 42 45 47 49 4E 0D 0A 09 57 69 6E r;...BEGIN...Win
00C080: 64 6F 77 73 3A 3D 30 3B 0D 0A 09 45 4E 44 20 45 dows:=0;...END E
00C090: 64 69 74 44 69 73 70 6C 61 79 2E 0D 0A 1A 1A 1A ditDisplay......
00C0A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C0B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C0C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C0D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C0E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 00 00 00 00 00 00 00 ................
00C0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C110: 00 00 00 00 00 00 00 00 00 00 00 00 00 1A 1A 1A ................
00C120: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C130: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C140: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C180: 66 74 4D 61 72 67 69 6E 3E 30 20 54 48 45 4E 20 ftMargin>0 THEN
00C190: 0D 0A 09 09 43 68 61 6E 67 65 4D 61 72 67 69 6E ....ChangeMargin
00C1A0: 28 2D 49 4E 54 45 47 45 52 28 43 75 72 72 65 6E (-INTEGER(Curren
00C1B0: 74 4C 65 66 74 4D 61 72 67 69 6E 29 29 0D 0A 09 tLeftMargin))...
00C1C0: 09 45 4E 44 3B 0D 0A 09 54 68 69 73 78 3A 3D 30 .END;...Thisx:=0
00C1D0: 3B 0D 0A 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ;...ResetPos;...
00C1E0: 4C 69 6E 65 50 6F 73 3A 3D 30 3B 0D 0A 09 53 65 LinePos:=0;...Se
00C1F0: 74 4C 69 6E 65 50 6F 73 28 30 29 3B 0D 0A 09 45 tLinePos(0);...E
00C200: 4E 20 52 45 54 55 52 4E 20 30 20 45 4E 44 3B 0D N RETURN 0 END;.
00C210: 0A 09 46 4F 52 20 6B 3A 3D 6B 2D 31 20 54 4F 20 ..FOR k:=k-1 TO
00C220: 30 20 42 59 20 2D 31 20 44 4F 0D 0A 09 09 69 3A 0 BY -1 DO....i:
00C230: 3D 69 2B 4F 52 44 28 62 5B 6B 5D 29 3B 0D 0A 09 =i+ORD(b[k]);...
00C240: 09 45 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 69 .END;...RETURN i
00C250: 0D 0A 09 45 4E 44 20 43 6F 75 6E 74 3B 0D 0A 50 ...END Count;..P
00C260: 52 4F 43 45 44 55 52 45 20 57 72 69 74 65 43 61 ROCEDURE WriteCa
00C270: 72 64 28 69 3A 43 41 52 44 49 4E 41 4C 29 3B 0D rd(i:CARDINAL);.
00C280: 0A 56 41 52 09 74 3A 41 52 52 41 59 5B 30 2E 2E .VAR.t:ARRAY[0..
00C290: 33 5D 20 4F 46 20 43 48 41 52 3B 0D 0A 09 6A 2C 3] OF CHAR;...j,
00C2A0: 6B 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 k:CARDINAL;..BEG
00C2B0: 49 4E 0D 0A 09 6B 3A 3D 48 49 47 48 28 74 29 3B IN...k:=HIGH(t);
00C2C0: 0D 0A 09 57 48 49 4C 45 20 69 3C 3E 30 20 44 4F ...WHILE i<>0 DO
00C2D0: 0D 0A 09 09 6A 3A 3D 69 20 44 49 56 20 31 30 3B ....j:=i DIV 10;
00C2E0: 0D 0A 09 09 74 5B 6B 5D 3A 3D 43 48 52 28 4F 52 ....t[k]:=CHR(OR
00C2F0: 44 28 27 30 27 29 2B 69 2D 31 30 2A 6A 29 3B 0D D('0')+i-10*j);.
00C300: 0A 09 09 69 3A 3D 6A 3B 0D 0A 09 09 44 45 43 28 ...i:=j;....DEC(
00C310: 6B 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 46 4F k);....END;...FO
00C320: 52 20 6B 3A 3D 6B 2B 31 20 54 4F 20 48 49 47 48 R k:=k+1 TO HIGH
00C330: 28 74 29 20 44 4F 20 57 72 69 74 65 28 74 5B 6B (t) DO Write(t[k
00C340: 5D 29 20 45 4E 44 3B 0D 0A 09 45 4E 44 20 57 72 ]) END;...END Wr
00C350: 69 74 65 43 61 72 64 3B 0D 0A 42 45 47 49 4E 0D iteCard;..BEGIN.
00C360: 0A 09 49 46 20 45 72 72 6F 72 4F 72 64 69 6E 61 ..IF ErrorOrdina
00C370: 6C 3E 3D 45 72 72 6F 72 43 6F 75 6E 74 20 54 48 l>=ErrorCount TH
00C380: 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 3B 0D 0A EN RETURN END;..
00C390: 09 47 6F 74 6F 78 79 28 30 2C 53 63 72 65 65 6E .Gotoxy(0,Screen
00C3A0: 44 65 70 74 68 2D 31 29 3B 0D 0A 09 45 72 72 6F Depth-1);...Erro
00C3B0: 72 4E 75 6D 62 65 72 3A 3D 45 72 72 6F 72 4C 69 rNumber:=ErrorLi
00C3C0: 73 74 5B 45 72 72 6F 72 4F 72 64 69 6E 61 6C 5D st[ErrorOrdinal]
00C3D0: 2E 45 72 72 6F 72 4E 75 6D 3B 0D 0A 09 53 63 72 .ErrorNum;...Scr
00C3E0: 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 65 6C 45 6F eenControl(DelEo
00C3F0: 6C 29 3B 0D 0A 09 57 72 69 74 65 53 74 72 69 6E l);...WriteStrin
00C400: 65 20 67 69 76 65 6E 20 66 69 6C 65 20 73 74 61 e given file sta
00C410: 72 74 69 6E 67 20 61 74 20 74 68 65 20 63 75 72 rting at the cur
00C420: 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 6E rent position in
00C430: 20 74 68 65 20 66 69 6C 65 2A 29 0D 0A 56 41 52 the file*)..VAR
00C440: 09 69 2C 6A 2C 6B 2C 6C 69 6E 65 70 6F 73 3A 43 .i,j,k,linepos:C
00C450: 41 52 44 49 4E 41 4C 3B 0D 0A 09 6D 6F 76 65 64 ARDINAL;...moved
00C460: 6F 6E 65 3A 49 4E 54 45 47 45 52 3B 09 0D 0A 09 one:INTEGER;....
00C470: 73 74 61 72 74 6C 69 6E 65 3A 49 4E 54 45 47 45 startline:INTEGE
00C480: 52 3B 20 28 2A 66 69 72 73 74 20 6C 69 6E 65 20 R; (*first line
00C490: 6F 66 20 77 69 6E 64 6F 77 2A 29 0D 0A 42 45 47 of window*)..BEG
00C4A0: 49 4E 0D 0A 09 4C 65 66 74 4D 61 72 67 3A 3D 4C IN...LeftMarg:=L
00C4B0: 65 66 74 4D 61 72 67 69 6E 5B 77 69 6E 64 6F 77 eftMargin[window
00C4C0: 5D 3B 0D 0A 09 73 74 61 72 74 6C 69 6E 65 3A 3D ];...startline:=
00C4D0: 28 49 4E 54 45 47 45 52 28 4C 69 6E 65 73 50 65 (INTEGER(LinesPe
00C4E0: 72 57 69 6E 64 6F 77 29 2B 31 29 2A 28 77 69 6E rWindow)+1)*(win
00C4F0: 64 6F 77 2D 31 29 3B 0D 0A 09 47 6F 74 6F 78 79 dow-1);...Gotoxy
00C500: 28 30 2C 73 74 61 72 74 6C 69 6E 65 29 3B 0D 0A (0,startline);..
00C510: 0D 0A 09 28 2A 66 69 72 73 74 20 6C 69 6E 65 20 ...(*first line
00C520: 6F 66 20 74 68 69 73 20 77 69 6E 64 6F 77 2A 29 of this window*)
00C530: 0D 0A 09 69 3A 3D 30 3B 09 28 2A 6C 69 6E 65 20 ...i:=0;.(*line
00C540: 77 69 74 68 69 6E 20 77 69 6E 64 6F 77 2A 29 0D within window*).
00C550: 0A 09 6B 3A 3D 4C 69 6E 65 73 50 65 72 57 69 6E ..k:=LinesPerWin
00C560: 64 6F 77 20 44 49 56 20 32 3B 0D 0A 09 52 65 74 dow DIV 2;...Ret
00C570: 72 6C 69 6E 65 28 66 2C 6C 65 6E 2C 63 68 61 72 rline(f,len,char
00C580: 73 69 6E 2C 70 6F 73 2C 6D 6F 76 65 64 2C 2D 6B sin,pos,moved,-k
00C590: 29 3B 0D 0A 09 0D 0A 09 4C 4F 4F 50 0D 0A 0D 0A );......LOOP....
00C5A0: 09 09 28 2A 63 68 65 63 6B 20 69 66 20 74 68 69 ..(*check if thi
00C5B0: 73 20 69 73 20 74 68 65 20 6C 69 6E 65 20 77 65 s is the line we
00C5C0: 20 77 65 72 65 20 70 6F 73 69 74 69 6F 6E 65 64 were positioned
00C5D0: 20 74 6F 20 75 70 6F 6E 20 65 6E 74 72 79 2A 29 to upon entry*)
00C5E0: 0D 0A 0D 0A 09 09 6C 69 6E 65 70 6F 73 3A 3D 30 ......linepos:=0
00C5F0: 3B 0D 0A 09 09 6A 3A 3D 30 3B 0D 0A 09 09 4C 4F ;....j:=0;....LO
00C600: 67 28 27 45 72 72 6F 72 20 27 29 3B 0D 0A 09 57 g('Error ');...W
00C610: 72 69 74 65 43 61 72 64 28 45 72 72 6F 72 4E 75 riteCard(ErrorNu
00C620: 6D 62 65 72 29 3B 0D 0A 09 57 72 69 74 65 53 74 mber);...WriteSt
00C630: 72 69 6E 67 28 27 28 27 29 3B 57 72 69 74 65 43 ring('(');WriteC
00C640: 61 72 64 28 45 72 72 6F 72 4F 72 64 69 6E 61 6C ard(ErrorOrdinal
00C650: 2B 31 29 3B 0D 0A 09 57 72 69 74 65 53 74 72 69 +1);...WriteStri
00C660: 6E 67 28 27 20 6F 66 20 27 29 3B 57 72 69 74 65 ng(' of ');Write
00C670: 43 61 72 64 28 45 72 72 6F 72 43 6F 75 6E 74 29 Card(ErrorCount)
00C680: 3B 0D 0A 09 57 72 69 74 65 53 74 72 69 6E 67 28 ;...WriteString(
00C690: 27 29 20 3A 27 29 3B 0D 0A 09 4C 6F 6F 6B 75 70 ') :');...Lookup
00C6A0: 28 66 2C 27 45 52 52 4D 53 47 2E 44 41 54 20 27 (f,'ERRMSG.DAT '
00C6B0: 2C 72 65 70 6C 79 29 3B 0D 0A 0D 0A 09 28 2A 4C ,reply);.....(*L
00C6C0: 6F 6F 6B 75 70 20 6F 70 65 6E 73 20 74 68 65 20 ookup opens the
00C6D0: 66 69 6C 65 20 66 6F 72 20 69 6E 70 75 74 2F 6F file for input/o
00C6E0: 75 74 70 75 74 0D 0A 09 20 20 72 65 70 6C 79 20 utput... reply
00C6F0: 72 65 74 75 72 6E 73 20 7A 65 72 6F 20 69 66 20 returns zero if
00C700: 6E 6F 20 66 69 6C 65 20 69 73 20 66 6F 75 6E 64 no file is found
00C710: 0D 0A 09 20 20 61 20 64 65 76 69 63 65 20 6E 61 ... a device na
00C720: 6D 65 20 63 61 6E 20 62 65 20 75 73 65 64 20 69 me can be used i
00C730: 6E 20 66 72 6F 6E 74 20 6F 66 20 74 68 65 20 66 n front of the f
00C740: 69 6C 65 20 6E 61 6D 65 0D 0A 09 20 49 6E 20 66 ile name... In f
00C750: 61 63 74 2C 20 79 6F 75 20 63 61 6E 20 75 73 65 act, you can use
00C760: 20 61 20 6E 6F 6E 2D 64 69 73 63 20 66 69 6C 65 a non-disc file
00C770: 20 6E 61 6D 65 20 28 65 67 20 50 55 4E 3A 20 6F name (eg PUN: o
00C780: 72 20 43 4F 4E 3A 29 0D 0A 09 20 62 75 74 20 69 r CON:)... but i
00C790: 66 20 79 6F 75 20 64 6F 20 74 68 69 73 2C 20 79 f you do this, y
00C7A0: 6F 75 20 6D 75 73 74 20 64 6F 20 79 6F 75 72 20 ou must do your
00C7B0: 49 4F 20 74 68 72 6F 75 67 68 20 74 68 65 20 6D IO through the m
00C7C0: 6F 64 75 6C 65 0D 0A 09 20 53 74 72 65 61 6D 73 odule... Streams
00C7D0: 20 28 6F 72 20 49 6E 4F 75 74 2C 20 77 68 69 63 (or InOut, whic
00C7E0: 68 20 63 61 6C 6C 73 20 73 74 72 65 61 6D 73 29 h calls streams)
00C7F0: 2C 20 61 73 20 74 68 65 20 49 4F 20 74 6F 20 74 , as the IO to t
00C800: 4F 50 0D 0A 09 09 09 49 46 20 28 6D 6F 76 65 64 OP.....IF (moved
00C810: 3D 30 29 20 41 4E 44 20 28 6A 3C 3D 43 41 52 44 =0) AND (j<=CARD
00C820: 49 4E 41 4C 28 63 68 61 72 73 69 6E 29 29 20 54 INAL(charsin)) T
00C830: 48 45 4E 0D 0A 09 09 09 09 63 75 72 78 3A 3D 6C HEN......curx:=l
00C840: 69 6E 65 70 6F 73 2D 4C 65 66 74 4D 61 72 67 3B inepos-LeftMarg;
00C850: 0D 0A 09 09 09 09 63 75 72 79 3A 3D 69 2B 43 41 ......cury:=i+CA
00C860: 52 44 49 4E 41 4C 28 73 74 61 72 74 6C 69 6E 65 RDINAL(startline
00C870: 29 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 )......END;.....
00C880: 49 4E 43 28 6A 29 3B 0D 0A 09 09 09 49 46 20 6A INC(j);.....IF j
00C890: 3E 43 41 52 44 49 4E 41 4C 28 6C 65 6E 29 20 54 >CARDINAL(len) T
00C8A0: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 0D HEN EXIT END;...
00C8B0: 0A 09 09 09 28 2A 63 68 65 63 6B 20 66 6F 72 20 ....(*check for
00C8C0: 63 75 72 73 6F 72 20 6C 69 6E 65 2A 29 0D 0A 0D cursor line*)...
00C8D0: 0A 09 09 09 52 65 61 64 4E 65 78 74 43 68 61 72 ....ReadNextChar
00C8E0: 28 70 6F 73 2C 63 68 29 3B 0D 0A 09 09 09 49 46 (pos,ch);.....IF
00C8F0: 20 63 68 3D 30 39 78 20 54 48 45 4E 20 0D 0A 09 ch=09x THEN ...
00C900: 09 09 09 52 45 50 45 41 54 0D 0A 09 09 09 09 09 ...REPEAT.......
00C910: 49 4E 43 28 6C 69 6E 65 70 6F 73 29 3B 0D 0A 09 INC(linepos);...
00C920: 09 09 09 09 49 46 20 28 6C 69 6E 65 70 6F 73 3E ....IF (linepos>
00C930: 4C 65 66 74 4D 61 72 67 29 20 0D 0A 09 09 09 09 LeftMarg) ......
00C940: 09 41 4E 44 20 28 6C 69 6E 65 70 6F 73 3C 28 53 .AND (linepos<(S
00C950: 63 72 65 65 6E 57 69 64 74 68 2B 4C 65 66 74 4D creenWidth+LeftM
00C960: 61 72 67 29 29 20 54 48 45 4E 20 0D 0A 09 09 09 arg)) THEN .....
00C970: 09 09 09 57 72 69 74 65 28 27 20 27 29 20 0D 0A ...Write(' ') ..
00C980: 09 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 09 ......END;......
00C990: 09 55 4E 54 49 4C 20 49 41 4E 44 28 6C 69 6E 65 .UNTIL IAND(line
00C9A0: 70 6F 73 2C 37 29 3D 30 3B 0D 0A 09 09 09 45 4C pos,7)=0;.....EL
00C9B0: 53 49 46 20 63 68 3D 45 4F 46 20 54 48 45 4E 20 SIF ch=EOF THEN
00C9C0: 45 58 49 54 0D 0A 09 09 09 45 4C 53 45 20 0D 0A EXIT.....ELSE ..
00C9D0: 09 09 09 09 49 4E 43 28 6C 69 6E 65 70 6F 73 29 ....INC(linepos)
00C9E0: 3B 0D 0A 09 09 09 09 49 46 20 28 6C 69 6E 65 70 ;......IF (linep
00C9F0: 6F 73 3E 4C 65 66 74 4D 61 72 67 29 0D 0A 09 09 os>LeftMarg)....
00CA00: 68 65 0D 0A 09 20 73 65 72 69 61 6C 20 64 65 76 he... serial dev
00CA10: 69 63 65 73 20 69 73 20 70 65 72 66 6F 72 6D 65 ices is performe
00CA20: 64 20 62 79 20 74 68 61 74 20 6D 6F 64 75 6C 65 d by that module
00CA30: 20 28 69 74 20 63 61 6C 6C 73 20 46 69 6C 65 73 (it calls Files
00CA40: 0D 0A 09 20 74 6F 20 64 6F 20 49 4F 20 74 6F 20 ... to do IO to
00CA50: 64 69 73 63 20 64 65 76 69 63 65 73 29 0D 0A 2A disc devices)..*
00CA60: 29 0D 0A 09 49 46 20 72 65 70 6C 79 3D 30 20 54 )...IF reply=0 T
00CA70: 48 45 4E 09 09 28 2A 4F 4B 20 2D 20 66 69 6C 65 HEN..(*OK - file
00CA80: 20 66 6F 75 6E 64 2A 29 0D 0A 09 09 0D 0A 0D 0A found*)........
00CA90: 09 09 28 2A 72 65 61 64 20 74 68 65 20 66 69 72 ..(*read the fir
00CAA0: 73 74 20 31 20 6F 72 20 74 77 6F 20 62 6C 6F 63 st 1 or two bloc
00CAB0: 6B 73 20 6F 66 20 74 68 65 20 65 72 72 6F 72 20 ks of the error
00CAC0: 0D 0A 09 09 20 20 6D 65 73 73 61 67 65 20 66 69 .... message fi
00CAD0: 6C 65 2C 20 63 6F 75 6E 74 69 6E 20 74 68 65 20 le, countin the
00CAE0: 63 68 61 72 61 63 74 65 72 73 20 70 72 65 63 65 characters prece
00CAF0: 64 69 6E 67 20 74 68 65 0D 0A 09 09 20 20 65 72 ding the.... er
00CB00: 72 6F 72 20 65 6D 73 73 61 67 65 20 77 65 20 77 ror emssage we w
00CB10: 61 6E 74 20 2A 29 0D 0A 09 09 52 65 61 64 42 6C ant *)....ReadBl
00CB20: 6F 63 6B 28 66 2C 41 44 52 28 62 29 2C 30 2C 31 ock(f,ADR(b),0,1
00CB30: 32 38 2C 72 65 70 6C 79 29 3B 0D 0A 09 09 6A 3A 28,reply);....j:
00CB40: 3D 45 72 72 6F 72 4E 75 6D 62 65 72 3B 0D 0A 09 =ErrorNumber;...
00CB50: 09 49 46 20 45 72 72 6F 72 4E 75 6D 62 65 72 3E .IF ErrorNumber>
00CB60: 31 32 38 20 54 48 45 4E 0D 0A 09 09 09 69 3A 3D 128 THEN.....i:=
00CB70: 43 6F 75 6E 74 28 31 32 38 29 3B 0D 0A 09 09 09 Count(128);.....
00CB80: 52 65 61 64 42 6C 6F 63 6B 28 66 2C 41 44 52 28 ReadBlock(f,ADR(
00CB90: 62 29 2C 31 2C 31 32 38 2C 72 65 70 6C 79 29 3B b),1,128,reply);
00CBA0: 0D 0A 09 09 09 6A 3A 3D 6A 2D 31 32 38 0D 0A 09 .....j:=j-128...
00CBB0: 09 45 4C 53 45 0D 0A 09 09 09 69 3A 3D 30 3B 0D .ELSE.....i:=0;.
00CBC0: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 69 3A 3D 69 ....END;....i:=i
00CBD0: 2B 43 6F 75 6E 74 28 6A 2D 31 29 3B 0D 0A 09 09 +Count(j-1);....
00CBE0: 4C 65 6E 67 74 68 3A 3D 4F 52 44 28 62 5B 6A 2D Length:=ORD(b[j-
00CBF0: 31 5D 29 3B 0D 0A 09 09 6A 3A 3D 69 20 44 49 56 1]);....j:=i DIV
00CC00: 09 09 41 4E 44 20 28 6C 69 6E 65 70 6F 73 3C 28 ..AND (linepos<(
00CC10: 53 63 72 65 65 6E 57 69 64 74 68 2B 4C 65 66 74 ScreenWidth+Left
00CC20: 4D 61 72 67 29 29 20 54 48 45 4E 20 0D 0A 09 09 Marg)) THEN ....
00CC30: 09 09 09 57 72 69 74 65 28 63 68 29 20 0D 0A 09 ...Write(ch) ...
00CC40: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 09 45 4E ....END;......EN
00CC50: 44 3B 28 2A 49 46 20 63 68 3D 76 61 72 69 6F 75 D;(*IF ch=variou
00CC60: 73 20 74 68 69 6E 67 73 2A 29 0D 0A 09 09 09 45 s things*).....E
00CC70: 4E 44 20 28 2A 69 6E 6E 65 72 20 6C 6F 6F 70 2A ND (*inner loop*
00CC80: 29 3B 0D 0A 09 09 49 4E 43 28 69 29 3B 0D 0A 09 );....INC(i);...
00CC90: 09 49 46 20 6C 69 6E 65 70 6F 73 3C 28 53 63 72 .IF linepos<(Scr
00CCA0: 65 65 6E 57 69 64 74 68 2B 4C 65 66 74 4D 61 72 eenWidth+LeftMar
00CCB0: 67 29 20 54 48 45 4E 20 0D 0A 09 09 09 53 63 72 g) THEN .....Scr
00CCC0: 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 65 6C 45 6F eenControl(DelEo
00CCD0: 6C 29 20 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 l) .....END;....
00CCE0: 49 46 20 69 3D 4C 69 6E 65 73 50 65 72 57 69 6E IF i=LinesPerWin
00CCF0: 64 6F 77 20 54 48 45 4E 20 45 58 49 54 0D 0A 09 dow THEN EXIT...
00CD00: 09 45 4C 53 45 20 0D 0A 09 09 09 57 72 69 74 65 .ELSE .....Write
00CD10: 4C 6E 3B 0D 0A 09 09 09 6C 69 6E 65 70 6F 73 3A Ln;.....linepos:
00CD20: 3D 30 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 =0;.....END;....
00CD30: 49 4E 43 28 6D 6F 76 65 64 29 3B 09 0D 0A 09 09 INC(moved);.....
00CD40: 52 65 74 72 6C 69 6E 65 28 66 2C 6C 65 6E 2C 69 Retrline(f,len,i
00CD50: 63 2C 70 6F 73 2C 6D 6F 76 65 64 6F 6E 65 2C 31 c,pos,movedone,1
00CD60: 29 3B 0D 0A 09 09 49 46 20 6D 6F 76 65 64 6F 6E );....IF movedon
00CD70: 65 3D 30 20 54 48 45 4E 0D 0A 09 09 09 46 4F 52 e=0 THEN.....FOR
00CD80: 20 69 3A 3D 69 2B 31 20 54 4F 20 4C 69 6E 65 73 i:=i+1 TO Lines
00CD90: 50 65 72 57 69 6E 64 6F 77 20 44 4F 0D 0A 09 09 PerWindow DO....
00CDA0: 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 ..ScreenControl(
00CDB0: 44 65 6C 45 6F 6C 29 3B 0D 0A 09 09 09 09 57 72 DelEol);......Wr
00CDC0: 69 74 65 4C 6E 3B 0D 0A 09 09 09 09 45 4E 44 3B iteLn;......END;
00CDD0: 0D 0A 09 09 09 45 58 49 54 0D 0A 09 09 09 45 4E .....EXIT.....EN
00CDE0: 44 0D 0A 09 09 45 4E 44 3B 28 2A 4C 4F 4F 50 2A D....END;(*LOOP*
00CDF0: 29 0D 0A 09 45 4E 44 20 44 69 73 70 6C 61 79 46 )...END DisplayF
00CE00: 20 31 32 38 3B 20 28 2A 62 6C 6F 63 6B 20 74 6F 128; (*block to
00CE10: 20 72 65 61 64 2A 29 0D 0A 09 09 69 3A 3D 69 20 read*)....i:=i
00CE20: 2D 20 31 32 38 2A 6A 3B 20 28 2A 6F 66 66 73 65 - 128*j; (*offse
00CE30: 74 20 6F 66 20 66 69 72 73 74 20 63 68 61 72 61 t of first chara
00CE40: 63 74 65 72 20 69 6E 20 62 6C 6F 63 6B 2A 29 0D cter in block*).
00CE50: 0A 09 09 52 65 61 64 42 6C 6F 63 6B 28 66 2C 41 ...ReadBlock(f,A
00CE60: 44 52 28 62 29 2C 6A 2B 32 2C 31 32 38 2C 72 65 DR(b),j+2,128,re
00CE70: 70 6C 79 29 3B 0D 0A 09 09 46 4F 52 20 6B 3A 3D ply);....FOR k:=
00CE80: 30 20 54 4F 20 4C 65 6E 67 74 68 2D 31 20 44 4F 0 TO Length-1 DO
00CE90: 0D 0A 09 09 09 49 46 20 69 3D 31 32 38 20 54 48 .....IF i=128 TH
00CEA0: 45 4E 20 0D 0A 09 09 09 09 49 4E 43 28 6A 29 3B EN ......INC(j);
00CEB0: 0D 0A 09 09 09 09 52 65 61 64 42 6C 6F 63 6B 28 ......ReadBlock(
00CEC0: 66 2C 41 44 52 28 62 29 2C 6A 2B 32 2C 31 32 38 f,ADR(b),j+2,128
00CED0: 2C 72 65 70 6C 79 29 20 0D 0A 09 09 09 09 69 3A ,reply) ......i:
00CEE0: 3D 30 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 =0;......END;...
00CEF0: 09 09 74 5B 6B 5D 3A 3D 62 5B 69 5D 3B 0D 0A 09 ..t[k]:=b[i];...
00CF00: 09 09 49 4E 43 28 69 29 3B 0D 0A 09 09 09 45 4E ..INC(i);.....EN
00CF10: 44 3B 0D 0A 09 09 74 5B 4C 65 6E 67 74 68 5D 3A D;....t[Length]:
00CF20: 3D 30 63 3B 0D 0A 09 09 57 72 69 74 65 53 74 72 =0c;....WriteStr
00CF30: 69 6E 67 28 74 29 3B 0D 0A 09 45 4C 53 45 0D 0A ing(t);...ELSE..
00CF40: 09 09 57 72 69 74 65 53 74 72 69 6E 67 28 27 20 ..WriteString('
00CF50: 43 6F 75 6C 64 20 6E 6F 74 20 6F 70 65 6E 20 65 Could not open e
00CF60: 72 72 6F 72 20 6D 65 73 73 61 67 65 73 20 66 69 rror messages fi
00CF70: 6C 65 27 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 le');....END;...
00CF80: 62 6C 3A 3D 4C 61 62 65 6C 4F 70 28 46 69 6C 65 bl:=LabelOp(File
00CF90: 73 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 2C 46 s[CurrentFile],F
00CFA0: 41 4C 53 45 2C 43 48 52 28 45 72 72 6F 72 4F 72 ALSE,CHR(ErrorOr
00CFB0: 64 69 6E 61 6C 2B 30 62 30 68 29 29 3B 0D 0A 09 dinal+0b0h));...
00CFC0: 52 65 44 69 73 70 6C 61 79 3B 0D 0A 28 2A 09 44 ReDisplay;..(*.D
00CFD0: 69 73 70 6C 61 79 46 69 6C 65 28 46 69 6C 65 73 isplayFile(Files
00CFE0: 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 2C 43 75 [CurrentFile],Cu
00CFF0: 72 72 65 6E 74 57 69 6E 64 6F 77 2C 54 68 69 73 rrentWindow,This
00D000: 69 6C 65 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 ile;..PROCEDURE
00D010: 44 69 73 70 6C 61 79 45 72 72 6F 72 3B 0D 0A 0D DisplayError;...
00D020: 0A 28 2A 09 54 68 65 20 65 72 72 6F 72 20 6D 65 .(*.The error me
00D030: 73 73 61 67 65 20 66 69 6C 65 20 63 6F 6E 74 61 ssage file conta
00D040: 69 6E 73 20 74 68 65 20 6D 65 73 73 61 67 65 73 ins the messages
00D050: 2C 20 0D 0A 0D 0A 09 54 68 65 20 66 69 72 73 74 , .....The first
00D060: 20 74 77 6F 20 62 6C 6F 63 6B 73 20 67 69 76 65 two blocks give
00D070: 20 74 68 65 20 6C 65 6E 67 74 68 73 20 6F 66 20 the lengths of
00D080: 74 68 65 20 65 72 72 6F 72 20 6D 65 73 73 61 67 the error messag
00D090: 65 73 0D 0A 09 54 68 65 20 72 65 6D 61 69 6E 69 es...The remaini
00D0A0: 6E 67 20 62 6C 6F 63 6B 73 20 67 69 76 65 20 74 ng blocks give t
00D0B0: 68 65 20 74 65 78 74 20 6F 66 20 74 68 65 20 65 he text of the e
00D0C0: 72 72 6F 72 20 6D 65 73 73 61 67 65 73 20 2A 29 rror messages *)
00D0D0: 0D 0A 54 59 50 45 09 54 65 78 74 3D 41 52 52 41 ..TYPE.Text=ARRA
00D0E0: 59 5B 30 2E 2E 36 33 5D 20 4F 46 20 43 48 41 52 Y[0..63] OF CHAR
00D0F0: 3B 0D 0A 0D 0A 56 41 52 09 66 3A 46 49 4C 45 3B ;....VAR.f:FILE;
00D100: 09 09 09 28 2A 46 49 4C 45 20 69 73 20 61 20 74 ...(*FILE is a t
00D110: 79 70 65 20 65 78 70 6F 72 74 65 64 20 66 72 6F ype exported fro
00D120: 6D 20 74 68 65 20 6D 6F 64 75 6C 65 20 46 69 6C m the module Fil
00D130: 65 73 2A 29 0D 0A 0D 0A 09 62 3A 41 52 52 41 59 es*).....b:ARRAY
00D140: 20 5B 30 2E 2E 31 32 37 5D 20 4F 46 20 43 48 41 [0..127] OF CHA
00D150: 52 3B 0D 0A 09 69 2C 6A 2C 6B 2C 4C 65 6E 67 74 R;...i,j,k,Lengt
00D160: 68 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 74 3A h:CARDINAL;...t:
00D170: 54 65 78 74 3B 0D 0A 09 45 72 72 6F 72 4E 75 6D Text;...ErrorNum
00D180: 62 65 72 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 ber:CARDINAL;...
00D190: 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 3B 0D 0A reply:INTEGER;..
00D1A0: 09 62 6C 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 50 52 .bl:BOOLEAN;..PR
00D1B0: 4F 43 45 44 55 52 45 20 43 6F 75 6E 74 28 6B 3A OCEDURE Count(k:
00D1C0: 43 41 52 44 49 4E 41 4C 29 3A 43 41 52 44 49 4E CARDINAL):CARDIN
00D1D0: 41 4C 3B 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 AL;..VAR.i:CARDI
00D1E0: 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 69 3A NAL;..BEGIN...i:
00D1F0: 3D 30 3B 0D 0A 09 49 46 20 6B 3D 30 20 54 48 45 =0;...IF k=0 THE
00D200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00D210: 0B 00 01 00 02 09 52 E5 0B 00 C9 02 00 00 00 02 ......R.........
00D220: 0B 00 C5 02 00 00 00 02 0B 00 C1 02 00 00 00 02 ................
00D230: 0B 00 C6 02 00 00 00 02 0B 00 C2 02 00 00 00 02 ................
00D240: 0B 00 C7 02 00 00 00 02 0B 00 C3 02 00 00 00 02 ................
00D250: 0B 00 C8 02 00 00 00 02 0B 00 C4 02 00 00 00 02 ................
00D260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D300: 61 6E 20 62 65 20 6F 70 65 6E 65 64 2A 29 0D 0A an be opened*)..
00D310: 09 4C 6F 6F 6B 75 70 28 64 61 74 66 69 6C 65 2C .Lookup(datfile,
00D320: 27 45 44 49 54 53 54 41 54 2E 44 41 54 20 27 2C 'EDITSTAT.DAT ',
00D330: 72 65 70 6C 79 29 3B 0D 0A 09 49 46 20 72 65 70 reply);...IF rep
00D340: 6C 79 3C 3E 30 20 54 48 45 4E 0D 0A 09 09 43 72 ly<>0 THEN....Cr
00D350: 65 61 74 65 28 64 61 74 66 69 6C 65 2C 27 45 44 eate(datfile,'ED
00D360: 49 54 53 54 41 54 2E 44 41 54 27 2C 72 65 70 6C ITSTAT.DAT',repl
00D370: 79 29 3B 0D 0A 09 09 49 46 20 72 65 70 6C 79 3C y);....IF reply<
00D380: 3E 30 20 54 48 45 4E 20 0D 0A 09 09 09 47 6F 74 >0 THEN .....Got
00D390: 6F 78 79 28 30 2C 53 63 72 65 65 6E 44 65 70 74 oxy(0,ScreenDept
00D3A0: 68 2D 31 29 3B 0D 0A 09 09 09 57 72 69 74 65 53 h-1);.....WriteS
00D3B0: 74 72 69 6E 67 28 27 20 43 6F 75 6C 64 20 6E 6F tring(' Could no
00D3C0: 74 20 6F 70 65 6E 20 73 74 61 74 75 73 20 66 69 t open status fi
00D3D0: 6C 65 27 29 3B 0D 0A 09 09 09 6F 70 65 6E 65 64 le');.....opened
00D3E0: 3A 3D 46 41 4C 53 45 3B 0D 0A 09 09 09 45 4E 44 :=FALSE;.....END
00D3F0: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 42 6C 6F 63 ;....END;...Bloc
00D400: 6B 4E 6F 3A 3D 36 30 30 30 30 3B 09 28 2A 73 65 kNo:=60000;.(*se
00D410: 74 20 69 6D 70 6F 73 73 69 62 6C 79 20 62 69 67 t impossibly big
00D420: 2A 29 0D 0A 09 0D 0A 09 45 4E 44 20 45 64 69 74 *)......END Edit
00D430: 53 74 61 74 75 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A Status..........
00D440: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D450: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D460: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D470: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D480: 64 6F 77 46 69 6C 65 5B 74 6F 5D 3A 3D 57 69 6E dowFile[to]:=Win
00D490: 64 6F 77 46 69 6C 65 5B 66 72 6F 6D 5D 3B 0D 0A dowFile[from];..
00D4A0: 09 62 3A 3D 4C 61 62 65 6C 4F 70 28 46 69 6C 65 .b:=LabelOp(File
00D4B0: 73 5B 57 69 6E 64 6F 77 46 69 6C 65 5B 74 6F 5D s[WindowFile[to]
00D4C0: 5D 2C 54 52 55 45 2C 43 48 52 28 74 6F 29 29 3B ],TRUE,CHR(to));
00D4D0: 0D 0A 09 45 4E 44 20 4D 6F 76 65 57 69 6E 64 6F ...END MoveWindo
00D4E0: 77 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 45 6C w;..PROCEDURE El
00D4F0: 69 64 65 57 69 6E 64 6F 77 28 57 69 6E 64 6F 77 ideWindow(Window
00D500: 63 6B 3D 28 42 79 74 65 73 50 65 72 42 6C 6F 63 ck=(BytesPerBloc
00D510: 6B 2D 54 53 49 5A 45 28 43 41 52 44 49 4E 41 4C k-TSIZE(CARDINAL
00D520: 29 29 20 44 49 56 20 54 53 49 5A 45 28 46 69 6C )) DIV TSIZE(Fil
00D530: 65 52 65 63 29 3B 0D 0A 09 46 69 6C 6C 53 69 7A eRec);...FillSiz
00D540: 65 3D 42 79 74 65 73 50 65 72 42 6C 6F 63 6B 2D e=BytesPerBlock-
00D550: 54 53 49 5A 45 28 43 41 52 44 49 4E 41 4C 29 2D TSIZE(CARDINAL)-
00D560: 45 6E 74 72 69 65 73 50 65 72 42 6C 6F 63 6B 2A EntriesPerBlock*
00D570: 54 53 49 5A 45 28 46 69 6C 65 52 65 63 29 3B 0D TSIZE(FileRec);.
00D580: 0A 54 59 50 45 09 42 6C 6F 63 6B 3D 52 45 43 4F .TYPE.Block=RECO
00D590: 52 44 0D 0A 09 09 45 6E 74 72 69 65 73 3A 43 41 RD....Entries:CA
00D5A0: 52 44 49 4E 41 4C 3B 09 28 2A 69 6E 20 74 68 69 RDINAL;.(*in thi
00D5B0: 73 20 62 6C 6F 63 6B 2A 29 0D 0A 09 09 46 69 6C s block*)....Fil
00D5C0: 65 45 6E 74 72 79 3A 41 52 52 41 59 5B 30 2E 2E eEntry:ARRAY[0..
00D5D0: 45 6E 74 72 69 65 73 50 65 72 42 6C 6F 63 6B 2D EntriesPerBlock-
00D5E0: 31 5D 20 4F 46 20 46 69 6C 65 52 65 63 3B 0D 0A 1] OF FileRec;..
00D5F0: 09 09 46 69 6C 6C 65 72 3A 41 52 52 41 59 5B 31 ..Filler:ARRAY[1
00D600: 2E 2E 46 69 6C 6C 53 69 7A 65 5D 20 4F 46 20 43 ..FillSize] OF C
00D610: 48 41 52 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A HAR;....END;....
00D620: 56 41 52 09 64 61 74 66 69 6C 65 3A 46 49 4C 45 VAR.datfile:FILE
00D630: 3B 0D 0A 09 42 6C 6F 63 6B 4E 6F 3A 43 41 52 44 ;...BlockNo:CARD
00D640: 49 4E 41 4C 3B 0D 0A 09 45 6E 74 72 79 4E 6F 3A INAL;...EntryNo:
00D650: 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 42 75 66 66 CARDINAL;...Buff
00D660: 65 72 3A 42 6C 6F 63 6B 3B 0D 0A 09 66 3A 46 49 er:Block;...f:FI
00D670: 4C 45 3B 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 LE;...reply:INTE
00D680: 47 45 52 3B 0D 0A 09 6F 70 65 6E 65 64 3A 42 4F GER;...opened:BO
00D690: 4F 4C 45 41 4E 3B 0D 0A 09 63 68 3A 43 48 41 52 OLEAN;...ch:CHAR
00D6A0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 57 72 69 ;..PROCEDURE Wri
00D6B0: 74 65 46 69 6C 65 3B 0D 0A 42 45 47 49 4E 0D 0A teFile;..BEGIN..
00D6C0: 09 53 65 74 42 6C 6F 63 6B 28 64 61 74 66 69 6C .SetBlock(datfil
00D6D0: 65 2C 42 6C 6F 63 6B 4E 6F 29 3B 0D 0A 09 53 65 e,BlockNo);...Se
00D6E0: 71 57 72 69 74 65 42 6C 6F 63 6B 28 64 61 74 66 qWriteBlock(datf
00D6F0: 69 6C 65 2C 41 44 52 28 42 75 66 66 65 72 29 2C ile,ADR(Buffer),
00D700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D900: 42 79 74 65 73 50 65 72 42 6C 6F 63 6B 2C 72 65 BytesPerBlock,re
00D910: 70 6C 79 29 3B 0D 0A 09 43 6C 6F 73 65 28 64 61 ply);...Close(da
00D920: 74 66 69 6C 65 29 3B 0D 0A 09 4C 6F 6F 6B 75 70 tfile);...Lookup
00D930: 28 64 61 74 66 69 6C 65 2C 27 45 44 49 54 53 54 (datfile,'EDITST
00D940: 41 54 2E 44 41 54 20 27 2C 72 65 70 6C 79 29 3B AT.DAT ',reply);
00D950: 0D 0A 09 45 4E 44 20 57 72 69 74 65 46 69 6C 65 ...END WriteFile
00D960: 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D ;....PROCEDURE M
00D970: 61 6B 65 45 6E 74 72 79 3B 0D 0A 42 45 47 49 4E akeEntry;..BEGIN
00D980: 0D 0A 09 57 49 54 48 20 42 75 66 66 65 72 2E 46 ...WITH Buffer.F
00D990: 69 6C 65 45 6E 74 72 79 5B 45 6E 74 72 79 4E 6F ileEntry[EntryNo
00D9A0: 5D 20 44 4F 0D 0A 09 09 46 69 6C 65 66 6E 3A 3D ] DO....Filefn:=
00D9B0: 66 2E 66 2E 66 63 62 66 6E 3B 0D 0A 09 09 46 69 f.f.fcbfn;....Fi
00D9C0: 6C 65 66 74 3A 3D 66 2E 66 2E 66 63 62 66 74 3B left:=f.f.fcbft;
00D9D0: 0D 0A 09 09 46 69 6C 65 50 6F 73 3A 3D 30 3B 0D ....FilePos:=0;.
00D9E0: 0A 09 09 45 4E 44 3B 0D 0A 09 57 72 69 74 65 46 ...END;...WriteF
00D9F0: 69 6C 65 3B 0D 0A 09 45 4E 44 20 4D 61 6B 65 45 ile;...END MakeE
00DA00: 6E 74 72 79 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 ntry;....PROCEDU
00DA10: 52 45 20 45 78 61 6D 69 6E 65 42 6C 6F 63 6B 3B RE ExamineBlock;
00DA20: 0D 0A 42 45 47 49 4E 0D 0A 09 45 6E 74 72 79 4E ..BEGIN...EntryN
00DA30: 6F 3A 3D 30 3B 0D 0A 09 57 48 49 4C 45 20 28 45 o:=0;...WHILE (E
00DA40: 6E 74 72 79 4E 6F 3C 42 75 66 66 65 72 2E 45 6E ntryNo<Buffer.En
00DA50: 74 72 69 65 73 29 20 0D 0A 09 20 20 20 20 41 4E tries) ... AN
00DA60: 44 20 28 20 20 20 28 42 75 66 66 65 72 2E 46 69 D ( (Buffer.Fi
00DA70: 6C 65 45 6E 74 72 79 5B 45 6E 74 72 79 4E 6F 5D leEntry[EntryNo]
00DA80: 2E 46 69 6C 65 66 6E 3C 3E 66 2E 66 2E 66 63 62 .Filefn<>f.f.fcb
00DA90: 66 6E 29 0D 0A 09 09 20 20 4F 52 20 28 42 75 66 fn).... OR (Buf
00DAA0: 66 65 72 2E 46 69 6C 65 45 6E 74 72 79 5B 45 6E fer.FileEntry[En
00DAB0: 74 72 79 4E 6F 5D 2E 46 69 6C 65 66 74 3C 3E 66 tryNo].Fileft<>f
00DAC0: 2E 66 2E 66 63 62 66 74 29 29 20 44 4F 0D 0A 09 .f.fcbft)) DO...
00DAD0: 09 49 4E 43 28 45 6E 74 72 79 4E 6F 29 3B 0D 0A .INC(EntryNo);..
00DAE0: 09 09 45 4E 44 3B 0D 0A 09 49 46 20 45 6E 74 72 ..END;...IF Entr
00DAF0: 79 4E 6F 3E 3D 42 75 66 66 65 72 2E 45 6E 74 72 yNo>=Buffer.Entr
00DB00: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
00DB10: 45 20 45 64 69 74 53 74 61 74 75 73 3B 0D 0A 0D E EditStatus;...
00DB20: 0A 28 2A 09 53 61 76 65 2F 72 65 74 75 72 6E 20 .(*.Save/return
00DB30: 65 64 69 74 20 73 74 61 74 75 73 20 66 6F 72 20 edit status for
00DB40: 61 20 66 69 6C 65 0D 0A 0D 0A 09 54 68 65 20 66 a file.....The f
00DB50: 69 6C 65 20 45 44 49 54 53 54 41 54 2E 44 41 54 ile EDITSTAT.DAT
00DB60: 20 6F 6E 20 74 68 65 20 64 65 66 61 75 6C 74 20 on the default
00DB70: 64 72 69 76 65 20 69 73 20 61 6C 77 61 79 73 20 drive is always
00DB80: 75 73 65 64 0D 0A 09 66 6F 72 20 65 64 69 74 20 used...for edit
00DB90: 73 74 61 74 69 69 2A 29 0D 0A 46 52 4F 4D 20 46 statii*)..FROM F
00DBA0: 69 6C 65 73 20 20 49 4D 50 4F 52 54 20 46 49 4C iles IMPORT FIL
00DBB0: 45 3B 0D 0A 46 52 4F 4D 09 43 50 4D 20 49 4D 50 E;..FROM.CPM IMP
00DBC0: 4F 52 54 20 61 6C 66 61 2C 65 78 74 65 6E 3B 0D ORT alfa,exten;.
00DBD0: 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 50 6F .PROCEDURE GetPo
00DBE0: 73 69 74 69 6F 6E 28 46 6E 3A 46 49 4C 45 29 3A sition(Fn:FILE):
00DBF0: 43 41 52 44 49 4E 41 4C 3B 0D 0A 0D 0A 28 2A 09 CARDINAL;....(*.
00DC00: 67 65 74 20 66 69 6C 65 20 70 6F 73 69 74 69 6F get file positio
00DC10: 6E 20 28 63 68 61 72 61 63 74 65 72 20 6E 75 6D n (character num
00DC20: 62 65 72 29 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 ber)*)....PROCED
00DC30: 55 52 45 20 53 65 74 50 6F 73 69 74 69 6F 6E 28 URE SetPosition(
00DC40: 46 6E 3A 46 49 4C 45 3B 70 6F 73 3A 43 41 52 44 Fn:FILE;pos:CARD
00DC50: 49 4E 41 4C 29 3B 0D 0A 0D 0A 28 2A 09 73 65 74 INAL);....(*.set
00DC60: 20 66 69 6C 65 20 70 6F 73 69 74 69 6F 6E 2A 29 file position*)
00DC70: 0D 0A 45 4E 44 20 45 64 69 74 53 74 61 74 75 73 ..END EditStatus
00DC80: 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DC90: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DCA0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DCB0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DCC0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DCD0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DCE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DCF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DD00: 69 65 73 20 54 48 45 4E 0D 0A 09 09 49 46 20 42 ies THEN....IF B
00DD10: 75 66 66 65 72 2E 45 6E 74 72 69 65 73 3C 48 49 uffer.Entries<HI
00DD20: 47 48 28 42 75 66 66 65 72 2E 46 69 6C 65 45 6E GH(Buffer.FileEn
00DD30: 74 72 79 29 20 54 48 45 4E 0D 0A 09 09 09 49 4E try) THEN.....IN
00DD40: 43 28 42 75 66 66 65 72 2E 45 6E 74 72 69 65 73 C(Buffer.Entries
00DD50: 29 3B 0D 0A 09 09 09 4D 61 6B 65 45 6E 74 72 79 );.....MakeEntry
00DD60: 3B 0D 0A 09 09 45 4C 53 45 09 45 6E 74 72 79 4E ;....ELSE.EntryN
00DD70: 6F 3A 3D 36 30 30 30 30 20 45 4E 44 3B 09 0D 0A o:=60000 END;...
00DD80: 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 45 78 61 ..END;...END Exa
00DD90: 6D 69 6E 65 42 6C 6F 63 6B 3B 0D 0A 50 52 4F 43 mineBlock;..PROC
00DDA0: 45 44 55 52 45 20 53 65 61 72 63 68 3B 0D 0A 0D EDURE Search;...
00DDB0: 0A 28 2A 09 46 69 6E 64 20 65 6E 74 72 79 20 2D .(*.Find entry -
00DDC0: 20 63 72 65 61 74 65 20 65 6E 74 72 79 20 69 66 create entry if
00DDD0: 20 6E 65 63 63 65 73 73 61 72 79 2A 29 0D 0A 42 neccessary*)..B
00DDE0: 45 47 49 4E 0D 0A 09 49 46 20 42 6C 6F 63 6B 4E EGIN...IF BlockN
00DDF0: 6F 3C 36 30 30 30 30 20 54 48 45 4E 20 45 78 61 o<60000 THEN Exa
00DE00: 6D 69 6E 65 42 6C 6F 63 6B 0D 0A 09 45 4C 53 45 mineBlock...ELSE
00DE10: 20 45 6E 74 72 79 4E 6F 3A 3D 36 30 30 30 30 20 EntryNo:=60000
00DE20: 45 4E 44 3B 0D 0A 09 49 46 20 45 6E 74 72 79 4E END;...IF EntryN
00DE30: 6F 3D 36 30 30 30 30 20 54 48 45 4E 0D 0A 09 09 o=60000 THEN....
00DE40: 53 65 74 42 6C 6F 63 6B 28 64 61 74 66 69 6C 65 SetBlock(datfile
00DE50: 2C 30 29 3B 0D 0A 09 09 42 6C 6F 63 6B 4E 6F 3A ,0);....BlockNo:
00DE60: 3D 30 0D 0A 09 09 45 4E 44 3B 0D 0A 09 57 48 49 =0....END;...WHI
00DE70: 4C 45 20 45 6E 74 72 79 4E 6F 3D 36 30 30 30 30 LE EntryNo=60000
00DE80: 20 44 4F 0D 0A 09 09 53 65 71 52 65 61 64 42 6C DO....SeqReadBl
00DE90: 6F 63 6B 28 64 61 74 66 69 6C 65 2C 41 44 52 28 ock(datfile,ADR(
00DEA0: 42 75 66 66 65 72 29 2C 42 79 74 65 73 50 65 72 Buffer),BytesPer
00DEB0: 42 6C 6F 63 6B 2C 72 65 70 6C 79 29 3B 0D 0A 09 Block,reply);...
00DEC0: 09 49 46 20 72 65 70 6C 79 3C 3E 42 79 74 65 73 .IF reply<>Bytes
00DED0: 50 65 72 42 6C 6F 63 6B 20 54 48 45 4E 0D 0A 09 PerBlock THEN...
00DEE0: 09 09 42 75 66 66 65 72 2E 45 6E 74 72 69 65 73 ..Buffer.Entries
00DEF0: 3A 3D 31 3B 0D 0A 09 09 09 45 6E 74 72 79 4E 6F :=1;.....EntryNo
00DF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E100: 3A 3D 30 3B 0D 0A 09 09 09 4D 61 6B 65 45 6E 74 :=0;.....MakeEnt
00E110: 72 79 3B 0D 0A 09 09 45 4C 53 45 09 0D 0A 09 09 ry;....ELSE.....
00E120: 09 45 78 61 6D 69 6E 65 42 6C 6F 63 6B 3B 0D 0A .ExamineBlock;..
00E130: 09 09 09 45 4E 44 3B 0D 0A 09 09 49 46 20 45 6E ...END;....IF En
00E140: 74 72 79 4E 6F 3D 36 30 30 30 30 20 54 48 45 4E tryNo=60000 THEN
00E150: 20 49 4E 43 28 42 6C 6F 63 6B 4E 6F 29 20 45 4E INC(BlockNo) EN
00E160: 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 D;....END;...END
00E170: 20 53 65 61 72 63 68 3B 0D 0A 09 09 0D 0A 0D 0A Search;........
00E180: 50 52 4F 43 45 44 55 52 45 20 47 65 74 50 6F 73 PROCEDURE GetPos
00E190: 69 74 69 6F 6E 28 46 6E 3A 46 49 4C 45 29 3A 43 ition(Fn:FILE):C
00E1A0: 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D ARDINAL;..BEGIN.
00E1B0: 0A 09 66 3A 3D 46 6E 3B 0D 0A 09 49 46 20 6F 70 ..f:=Fn;...IF op
00E1C0: 65 6E 65 64 20 54 48 45 4E 0D 0A 09 09 53 65 61 ened THEN....Sea
00E1D0: 72 63 68 3B 0D 0A 09 09 52 45 54 55 52 4E 20 42 rch;....RETURN B
00E1E0: 75 66 66 65 72 2E 46 69 6C 65 45 6E 74 72 79 5B uffer.FileEntry[
00E1F0: 45 6E 74 72 79 4E 6F 5D 2E 46 69 6C 65 50 6F 73 EntryNo].FilePos
00E200: 3B 0D 0A 09 45 4C 53 45 09 52 45 54 55 52 4E 20 ;...ELSE.RETURN
00E210: 30 20 45 4E 44 3B 0D 0A 09 45 4E 44 20 47 65 74 0 END;...END Get
00E220: 50 6F 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 50 52 4F Position;....PRO
00E230: 43 45 44 55 52 45 20 53 65 74 50 6F 73 69 74 69 CEDURE SetPositi
00E240: 6F 6E 28 46 6E 3A 46 49 4C 45 3B 50 6F 73 3A 43 on(Fn:FILE;Pos:C
00E250: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
00E260: 0D 0A 09 66 3A 3D 46 6E 3B 0D 0A 09 49 46 20 6F ...f:=Fn;...IF o
00E270: 70 65 6E 65 64 20 54 48 45 4E 0D 0A 09 09 53 65 pened THEN....Se
00E280: 61 72 63 68 3B 0D 0A 09 09 42 75 66 66 65 72 2E arch;....Buffer.
00E290: 46 69 6C 65 45 6E 74 72 79 5B 45 6E 74 72 79 4E FileEntry[EntryN
00E2A0: 6F 5D 2E 46 69 6C 65 50 6F 73 3A 3D 50 6F 73 3B o].FilePos:=Pos;
00E2B0: 0D 0A 09 09 57 72 69 74 65 46 69 6C 65 0D 0A 09 ....WriteFile...
00E2C0: 09 45 4E 44 0D 0A 09 45 4E 44 20 53 65 74 50 6F .END...END SetPo
00E2D0: 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 42 45 47 49 4E sition;....BEGIN
00E2E0: 0D 0A 09 6F 70 65 6E 65 64 3A 3D 54 52 55 45 3B ...opened:=TRUE;
00E2F0: 09 28 2A 61 73 73 75 6D 65 20 66 69 6C 65 20 63 .(*assume file c
00E300: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
00E310: 4F 44 55 4C 45 20 45 64 69 74 53 74 61 74 75 73 ODULE EditStatus
00E320: 3B 0D 0A 0D 0A 28 2A 09 53 61 76 65 2F 72 65 74 ;....(*.Save/ret
00E330: 75 72 6E 20 65 64 69 74 20 73 74 61 74 75 73 20 urn edit status
00E340: 66 6F 72 20 61 20 66 69 6C 65 0D 0A 0D 0A 09 54 for a file.....T
00E350: 68 65 20 66 69 6C 65 20 45 44 49 54 53 54 41 54 he file EDITSTAT
00E360: 2E 44 41 54 20 6F 6E 20 74 68 65 20 64 65 66 61 .DAT on the defa
00E370: 75 6C 74 20 64 72 69 76 65 20 69 73 20 61 6C 77 ult drive is alw
00E380: 61 79 73 20 75 73 65 64 0D 0A 09 66 6F 72 20 65 ays used...for e
00E390: 64 69 74 20 73 74 61 74 69 69 2A 29 0D 0A 46 52 dit statii*)..FR
00E3A0: 4F 4D 20 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 OM Files IMPORT
00E3B0: 4C 6F 6F 6B 75 70 2C 43 72 65 61 74 65 2C 43 6C Lookup,Create,Cl
00E3C0: 6F 73 65 2C 53 65 71 52 65 61 64 42 6C 6F 63 6B ose,SeqReadBlock
00E3D0: 2C 53 65 71 57 72 69 74 65 42 6C 6F 63 6B 2C 53 ,SeqWriteBlock,S
00E3E0: 65 74 42 6C 6F 63 6B 2C 0D 0A 09 09 43 6F 6E 76 etBlock,....Conv
00E3F0: 65 72 74 46 69 6C 65 4E 61 6D 65 3B 0D 0A 46 52 ertFileName;..FR
00E400: 4F 4D 20 53 63 72 65 65 6E 49 4F 20 49 4D 50 4F OM ScreenIO IMPO
00E410: 52 54 20 47 6F 74 6F 78 79 2C 53 63 72 65 65 6E RT Gotoxy,Screen
00E420: 44 65 70 74 68 3B 0D 0A 46 52 4F 4D 20 53 59 53 Depth;..FROM SYS
00E430: 54 45 4D 20 49 4D 50 4F 52 54 20 41 44 52 2C 54 TEM IMPORT ADR,T
00E440: 53 49 5A 45 3B 0D 0A 46 52 4F 4D 20 54 65 72 6D SIZE;..FROM Term
00E450: 69 6E 61 6C 20 49 4D 50 4F 52 54 20 57 72 69 74 inal IMPORT Writ
00E460: 65 53 74 72 69 6E 67 3B 0D 0A 54 59 50 45 09 46 eString;..TYPE.F
00E470: 69 6C 65 52 65 63 3D 52 45 43 4F 52 44 0D 0A 09 ileRec=RECORD...
00E480: 09 46 69 6C 65 66 6E 3A 61 6C 66 61 3B 0D 0A 09 .Filefn:alfa;...
00E490: 09 46 69 6C 65 66 74 3A 65 78 74 65 6E 3B 0D 0A .Fileft:exten;..
00E4A0: 09 09 46 69 6C 65 50 6F 73 3A 43 41 52 44 49 4E ..FilePos:CARDIN
00E4B0: 41 4C 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 43 AL;....END;....C
00E4C0: 4F 4E 53 54 09 42 79 74 65 73 50 65 72 42 6C 6F ONST.BytesPerBlo
00E4D0: 63 6B 3D 31 32 38 3B 09 28 2A 42 79 74 65 73 20 ck=128;.(*Bytes
00E4E0: 70 65 72 20 64 69 73 63 20 62 6C 6F 63 6B 2A 29 per disc block*)
00E4F0: 0D 0A 09 45 6E 74 72 69 65 73 50 65 72 42 6C 6F ...EntriesPerBlo
00E500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00E510: 0C 00 01 00 02 09 52 E5 0C 00 C9 02 00 00 00 02 ......R.........
00E520: 0C 00 C5 02 00 00 00 02 0C 00 C1 02 00 00 00 02 ................
00E530: 0C 00 C6 02 00 00 00 02 0C 00 C2 02 00 00 00 02 ................
00E540: 0C 00 C7 02 00 00 00 02 0C 00 C3 02 00 00 00 02 ................
00E550: 0C 00 C8 02 00 00 00 02 0C 00 C4 02 00 00 00 02 ................
00E560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E600: 47 49 4E 0D 0A 09 49 46 20 49 6E 73 65 72 74 4D GIN...IF InsertM
00E610: 6F 64 65 20 54 48 45 4E 20 0D 0A 09 09 49 6E 73 ode THEN ....Ins
00E620: 4F 6E 65 43 68 61 72 28 63 68 29 3B 0D 0A 09 45 OneChar(ch);...E
00E630: 4C 53 45 0D 0A 09 09 4F 76 65 72 57 72 69 74 65 LSE....OverWrite
00E640: 28 63 68 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 (ch);....END;...
00E650: 45 4E 44 20 49 6E 73 43 68 61 72 3B 0D 0A 50 52 END InsChar;..PR
00E660: 4F 43 45 44 55 52 45 20 42 72 65 61 6B 4C 69 6E OCEDURE BreakLin
00E670: 65 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 6E 73 4F e;..BEGIN...InsO
00E680: 6E 65 43 68 61 72 28 30 64 78 29 3B 0D 0A 09 4C neChar(0dx);...L
00E690: 65 66 74 3B 0D 0A 09 45 4E 44 20 42 72 65 61 6B eft;...END Break
00E6A0: 4C 69 6E 65 3B 0D 0A 56 41 52 09 4C 65 6E 3A 43 Line;..VAR.Len:C
00E6B0: 41 52 44 49 4E 41 4C 3D 30 3B 0D 0A 09 52 65 70 ARDINAL=0;...Rep
00E6C0: 6C 61 63 65 53 74 72 69 6E 67 3A 41 52 52 41 59 laceString:ARRAY
00E6D0: 5B 30 2E 2E 36 30 5D 20 4F 46 20 43 48 41 52 3B [0..60] OF CHAR;
00E6E0: 0D 0A 09 52 4C 65 6E 3A 49 4E 54 45 47 45 52 3B ...RLen:INTEGER;
00E6F0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F 46 69 ..PROCEDURE DoFi
00E700: 6E 64 3B 0D 0A 42 45 47 49 4E 0D 0A 0D 0A 09 28 nd;..BEGIN.....(
00E710: 2A 20 74 68 65 20 70 61 73 73 69 6E 67 20 6F 66 * the passing of
00E720: 20 74 68 65 20 62 61 63 6B 77 61 72 64 73 20 73 the backwards s
00E730: 74 61 74 75 73 20 69 73 20 61 20 72 65 61 6C 20 tatus is a real
00E740: 6B 6C 75 64 67 65 0D 0A 09 20 20 20 77 68 69 63 kludge... whic
00E750: 68 20 77 61 73 20 69 6E 74 72 6F 64 75 63 65 64 h was introduced
00E760: 20 61 73 20 61 20 71 75 69 63 6B 20 66 69 78 20 as a quick fix
00E770: 77 68 69 6C 65 20 49 20 77 61 73 20 61 20 6C 6F while I was a lo
00E780: 6E 67 0D 0A 09 20 20 20 77 61 79 20 66 72 6F 6D ng... way from
00E790: 20 68 6F 6D 65 2C 20 74 6F 20 61 76 6F 69 64 20 home, to avoid
00E7A0: 68 61 76 69 6E 67 20 74 6F 20 75 70 64 61 74 65 having to update
00E7B0: 20 6D 79 20 77 6F 72 6B 20 64 69 73 63 73 0D 0A my work discs..
00E7C0: 09 20 20 20 61 74 20 68 6F 6D 65 20 77 69 74 68 . at home with
00E7D0: 20 74 6F 6F 20 6D 75 63 68 20 73 74 75 66 66 20 too much stuff
00E7E0: 2A 29 0D 0A 0D 0A 09 49 46 20 4C 65 6E 3E 30 20 *).....IF Len>0
00E7F0: 54 48 45 4E 20 0D 0A 09 09 49 46 20 42 61 63 6B THEN ....IF Back
00E800: 63 72 6F 2C 52 65 61 64 41 43 68 61 72 2C 4D 61 cro,ReadAChar,Ma
00E810: 63 72 6F 2C 4C 65 61 72 6E 4D 61 63 72 6F 2C 50 cro,LearnMacro,P
00E820: 72 69 6E 74 4D 61 63 72 6F 73 2C 0D 0A 09 09 09 rintMacros,.....
00E830: 43 68 65 63 6B 49 6E 74 65 72 72 75 70 74 2C 46 CheckInterrupt,F
00E840: 6F 75 6E 64 3B 0D 0A 28 2A 09 41 63 74 20 6F 6E ound;..(*.Act on
00E850: 20 63 6F 6D 6D 61 6E 64 73 20 65 6E 74 65 72 65 commands entere
00E860: 64 20 66 72 6F 6D 20 74 68 65 20 6B 65 79 62 6F d from the keybo
00E870: 61 72 64 20 0D 0A 0D 0A 09 54 68 69 73 20 6D 6F ard .....This mo
00E880: 64 75 6C 65 20 68 61 6E 64 6C 65 73 20 6B 65 79 dule handles key
00E890: 62 6F 61 72 64 20 64 65 73 70 61 74 63 68 20 64 board despatch d
00E8A0: 75 72 69 6E 67 20 66 69 6C 65 20 65 64 69 74 74 uring file editt
00E8B0: 69 6E 67 2A 29 0D 0A 0D 0A 54 59 50 45 09 54 61 ing*)....TYPE.Ta
00E8C0: 62 41 72 72 61 79 3D 41 52 52 41 59 20 5B 30 78 bArray=ARRAY [0x
00E8D0: 2E 2E 37 66 78 5D 20 4F 46 20 50 52 4F 43 3B 0D ..7fx] OF PROC;.
00E8E0: 0A 09 54 61 62 6C 65 3D 50 4F 49 4E 54 45 52 20 ..Table=POINTER
00E8F0: 54 4F 20 54 61 62 41 52 52 41 59 3B 0D 0A 56 41 TO TabARRAY;..VA
00E900: 52 09 0D 0A 09 63 68 3A 43 48 41 52 3B 0D 0A 09 R....ch:CHAR;...
00E910: 4D 61 69 6E 54 61 62 6C 65 3A 54 61 62 41 72 72 MainTable:TabArr
00E920: 61 79 3B 0D 0A 09 69 6E 74 65 72 70 72 65 74 69 ay;...interpreti
00E930: 6E 67 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 50 61 ng:BOOLEAN;...Pa
00E940: 72 56 61 6C 75 65 3A 49 4E 54 45 47 45 52 3D 30 rValue:INTEGER=0
00E950: 3B 0D 0A 09 47 72 6F 75 70 4F 66 43 6F 64 65 73 ;...GroupOfCodes
00E960: 3A 41 52 52 41 59 5B 31 2E 2E 33 30 5D 20 4F 46 :ARRAY[1..30] OF
00E970: 20 43 48 41 52 3B 0D 0A 09 47 72 6F 75 70 4C 65 CHAR;...GroupLe
00E980: 6E 2C 47 72 6F 75 70 50 6F 73 3A 43 41 52 44 49 n,GroupPos:CARDI
00E990: 4E 41 4C 3B 0D 0A 09 69 3A 43 41 52 44 49 4E 41 NAL;...i:CARDINA
00E9A0: 4C 3B 0D 0A 09 49 6E 73 65 72 74 4D 6F 64 65 3A L;...InsertMode:
00E9B0: 42 4F 4F 4C 45 41 4E 3D 54 52 55 45 3B 0D 0A 09 BOOLEAN=TRUE;...
00E9C0: 4E 6F 42 65 6C 6C 3A 42 4F 4F 4C 45 41 4E 3D 46 NoBell:BOOLEAN=F
00E9D0: 41 4C 53 45 3B 0D 0A 09 42 61 63 6B 77 61 72 64 ALSE;...Backward
00E9E0: 73 3A 42 4F 4F 4C 45 41 4E 3D 46 41 4C 53 45 3B s:BOOLEAN=FALSE;
00E9F0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 65 6C 6C ..PROCEDURE Bell
00EA00: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
00EA10: 45 20 4B 65 79 62 6F 61 72 64 3B 0D 0A 0D 0A 0D E Keyboard;.....
00EA20: 0A 28 2A 09 41 63 74 20 6F 6E 20 63 6F 6D 6D 61 .(*.Act on comma
00EA30: 6E 64 73 20 65 6E 74 65 72 65 64 20 66 72 6F 6D nds entered from
00EA40: 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 0D 0A the keyboard ..
00EA50: 0D 0A 09 54 68 69 73 20 6D 6F 64 75 6C 65 20 68 ...This module h
00EA60: 61 6E 64 6C 65 73 20 6B 65 79 62 6F 61 72 64 20 andles keyboard
00EA70: 64 65 73 70 61 74 63 68 20 64 75 72 69 6E 67 20 despatch during
00EA80: 66 69 6C 65 20 65 64 69 74 74 69 6E 67 2A 29 0D file editting*).
00EA90: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 74 ...PROCEDURE Int
00EAA0: 65 72 70 72 65 74 3B 0D 0A 0D 0A 28 2A 09 53 74 erpret;....(*.St
00EAB0: 61 72 74 20 6B 65 79 62 6F 61 72 64 20 69 6E 74 art keyboard int
00EAC0: 65 72 70 72 65 74 61 74 69 6F 6E 20 28 65 66 66 erpretation (eff
00EAD0: 65 63 74 69 76 65 6C 79 20 65 64 69 74 20 6D 6F ectively edit mo
00EAE0: 64 65 29 2A 29 0D 0A 45 4E 44 20 4B 65 79 62 6F de)*)..END Keybo
00EAF0: 61 72 64 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 00 ard.............
00EB00: 65 2C 52 65 61 64 4E 65 78 74 43 68 61 72 2C 45 e,ReadNextChar,E
00EB10: 72 72 6F 72 4C 69 73 74 2C 45 72 72 6F 72 43 6F rrorList,ErrorCo
00EB20: 75 6E 74 2C 4C 61 62 65 6C 4F 70 3B 0D 0A 46 52 unt,LabelOp;..FR
00EB30: 4F 4D 09 45 64 69 74 43 6F 6E 74 20 49 4D 50 4F OM.EditCont IMPO
00EB40: 52 54 20 4C 65 66 74 4D 61 72 67 69 6E 2C 46 69 RT LeftMargin,Fi
00EB50: 6C 65 73 2C 43 75 72 72 65 6E 74 57 69 6E 64 6F les,CurrentWindo
00EB60: 77 2C 43 75 72 72 65 6E 74 46 69 6C 65 2C 54 68 w,CurrentFile,Th
00EB70: 69 73 78 2C 54 68 69 73 79 2C 0D 0A 09 09 09 63 isx,Thisy,.....c
00EB80: 75 72 78 2C 63 75 72 79 2C 52 65 44 69 73 70 6C urx,cury,ReDispl
00EB90: 61 79 3B 0D 0A 46 52 4F 4D 20 09 49 6E 74 4C 6F ay;..FROM .IntLo
00EBA0: 67 69 63 20 49 4D 50 4F 52 54 20 49 41 4E 44 3B gic IMPORT IAND;
00EBB0: 0D 0A 46 52 4F 4D 09 46 69 6C 65 73 20 49 4D 50 ..FROM.Files IMP
00EBC0: 4F 52 54 20 4C 6F 6F 6B 75 70 2C 43 6C 6F 73 65 ORT Lookup,Close
00EBD0: 2C 46 49 4C 45 2C 52 65 61 64 42 6C 6F 63 6B 3B ,FILE,ReadBlock;
00EBE0: 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D ..FROM.SYSTEM IM
00EBF0: 50 4F 52 54 20 41 44 52 3B 0D 0A 43 4F 4E 53 54 PORT ADR;..CONST
00EC00: 3B 0D 0A 0D 0A 28 2A 09 72 69 6E 67 20 74 68 65 ;....(*.ring the
00EC10: 20 62 65 6C 6C 20 2D 20 70 72 69 6D 61 72 69 6C bell - primaril
00EC20: 6C 79 20 75 73 65 64 20 66 6F 72 20 75 6E 2D 61 ly used for un-a
00EC30: 73 73 69 67 6E 65 64 20 6B 65 79 73 2A 29 0D 0A ssigned keys*)..
00EC40: 42 45 47 49 4E 0D 0A 09 49 46 20 4E 4F 54 20 4E BEGIN...IF NOT N
00EC50: 6F 42 65 6C 6C 20 54 48 45 4E 0D 0A 09 09 52 69 oBell THEN....Ri
00EC60: 6E 67 42 65 6C 6C 3B 0D 0A 09 09 45 4E 44 3B 0D ngBell;....END;.
00EC70: 0A 09 50 61 72 56 61 6C 75 65 3A 3D 30 3B 0D 0A ..ParValue:=0;..
00EC80: 09 45 4E 44 20 42 65 6C 6C 3B 0D 0A 50 52 4F 43 .END Bell;..PROC
00EC90: 45 44 55 52 45 20 51 75 69 63 6B 3B 46 4F 52 57 EDURE Quick;FORW
00ECA0: 41 52 44 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 ARD;..PROCEDURE
00ECB0: 45 73 63 61 70 65 43 6F 75 6E 74 3B 0D 0A 0D 0A EscapeCount;....
00ECC0: 28 2A 09 65 73 63 61 70 65 20 63 68 61 72 61 63 (*.escape charac
00ECD0: 74 65 72 20 70 72 6F 63 65 73 73 69 6E 67 0D 0A ter processing..
00ECE0: 0D 0A 09 69 66 20 66 6F 6C 6C 6F 77 65 64 20 62 ...if followed b
00ECF0: 79 20 6E 75 6D 62 65 72 2C 20 72 65 70 65 61 74 y number, repeat
00ED00: 73 20 6E 65 78 74 20 6B 65 79 20 67 69 76 65 6E s next key given
00ED10: 20 6E 75 6D 62 65 72 20 6F 66 20 74 69 6D 65 73 number of times
00ED20: 0D 0A 2A 29 0D 0A 56 41 52 09 69 3A 49 4E 54 45 ..*)..VAR.i:INTE
00ED30: 47 45 52 3B 0D 0A 42 45 47 49 4E 0D 0A 09 50 61 GER;..BEGIN...Pa
00ED40: 72 56 61 6C 75 65 3A 3D 30 3B 0D 0A 09 4C 4F 4F rValue:=0;...LOO
00ED50: 50 0D 0A 09 09 49 46 20 28 63 68 3E 3D 27 30 27 P....IF (ch>='0'
00ED60: 29 20 41 4E 44 20 28 63 68 3C 3D 27 39 27 29 20 ) AND (ch<='9')
00ED70: 54 48 45 4E 0D 0A 09 09 09 50 61 72 56 61 6C 75 THEN.....ParValu
00ED80: 65 3A 3D 31 30 2A 50 61 72 56 61 6C 75 65 2B 28 e:=10*ParValue+(
00ED90: 4F 52 44 28 63 68 29 2D 4F 52 44 28 27 30 27 29 ORD(ch)-ORD('0')
00EDA0: 29 0D 0A 09 09 45 4C 53 45 20 0D 0A 09 09 09 45 )....ELSE .....E
00EDB0: 58 49 54 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 XIT.....END;....
00EDC0: 52 65 61 64 41 43 68 61 72 28 63 68 29 3B 0D 0A ReadAChar(ch);..
00EDD0: 09 09 45 4E 44 3B 28 2A 4C 4F 4F 50 2A 29 0D 0A ..END;(*LOOP*)..
00EDE0: 0D 0A 09 49 46 20 28 63 68 3D 31 62 78 29 20 4F ...IF (ch=1bx) O
00EDF0: 52 20 28 63 68 3D 30 61 78 29 20 54 48 45 4E 20 R (ch=0ax) THEN
00EE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00EFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F000: 28 2A 65 73 63 61 70 65 20 73 6F 6D 65 74 68 69 (*escape somethi
00F010: 6E 67 2A 29 0D 0A 09 09 52 65 61 64 41 43 68 61 ng*)....ReadACha
00F020: 72 28 63 68 29 3B 0D 0A 09 09 4D 61 63 72 6F 28 r(ch);....Macro(
00F030: 63 68 2C 50 61 72 56 61 6C 75 65 29 3B 0D 0A 09 ch,ParValue);...
00F040: 09 50 61 72 56 61 6C 75 65 3A 3D 30 3B 0D 0A 09 .ParValue:=0;...
00F050: 45 4C 53 49 46 20 63 68 3D 31 31 78 20 54 48 45 ELSIF ch=11x THE
00F060: 4E 20 51 75 69 63 6B 0D 0A 09 45 4C 53 45 0D 0A N Quick...ELSE..
00F070: 09 09 46 6F 75 6E 64 3A 3D 54 52 55 45 3B 20 28 ..Found:=TRUE; (
00F080: 2A 53 65 74 20 66 61 6C 73 65 20 61 73 20 73 69 *Set false as si
00F090: 67 6E 20 6F 66 20 66 61 69 6C 75 72 65 20 2A 29 gn of failure *)
00F0A0: 0D 0A 09 09 57 48 49 4C 45 20 28 50 61 72 56 61 ....WHILE (ParVa
00F0B0: 6C 75 65 3E 30 29 20 41 4E 44 20 46 6F 75 6E 64 lue>0) AND Found
00F0C0: 20 44 4F 20 0D 0A 09 09 09 49 46 20 43 68 65 63 DO .....IF Chec
00F0D0: 6B 49 6E 74 65 72 72 75 70 74 28 29 20 54 48 45 kInterrupt() THE
00F0E0: 4E 20 50 61 72 56 61 6C 75 65 3A 3D 30 20 0D 0A N ParValue:=0 ..
00F0F0: 09 09 09 45 4C 53 45 0D 0A 09 09 09 09 44 45 43 ...ELSE......DEC
00F100: 28 50 61 72 56 61 6C 75 65 29 3B 0D 0A 09 09 09 (ParValue);.....
00F110: 09 49 46 20 63 68 3E 43 48 52 28 31 32 37 29 20 .IF ch>CHR(127)
00F120: 54 48 45 4E 20 63 68 3A 3D 43 48 52 28 4F 52 44 THEN ch:=CHR(ORD
00F130: 28 63 68 29 2D 31 32 38 29 20 45 4E 44 3B 0D 0A (ch)-128) END;..
00F140: 09 09 09 09 4D 61 69 6E 54 61 62 6C 65 5B 63 68 ....MainTable[ch
00F150: 5D 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ];......END;....
00F160: 09 45 4E 44 3B 0D 0A 09 09 50 61 72 56 61 6C 75 .END;....ParValu
00F170: 65 3A 3D 30 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 e:=0;....END;...
00F180: 45 4E 44 20 45 73 63 61 70 65 43 6F 75 6E 74 3B END EscapeCount;
00F190: 0D 0A 50 52 4F 43 45 44 55 52 45 20 45 73 63 61 ..PROCEDURE Esca
00F1A0: 70 65 3B 0D 0A 56 41 52 20 53 61 76 65 42 61 63 pe;..VAR SaveBac
00F1B0: 6B 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 k:BOOLEAN;..BEGI
00F1C0: 4E 0D 0A 09 52 65 61 64 41 43 68 61 72 28 63 68 N...ReadAChar(ch
00F1D0: 29 3B 0D 0A 09 49 46 20 63 68 3D 27 2D 27 20 54 );...IF ch='-' T
00F1E0: 48 45 4E 0D 0A 09 09 42 61 63 6B 77 61 72 64 73 HEN....Backwards
00F1F0: 3A 3D 54 52 55 45 3B 0D 0A 09 09 52 65 61 64 41 :=TRUE;....ReadA
00F200: 28 2A 09 4B 65 79 62 6F 61 72 64 20 64 65 73 70 (*.Keyboard desp
00F210: 61 74 63 68 65 72 20 61 6E 64 20 73 6F 6D 65 20 atcher and some
00F220: 65 64 69 74 69 6E 67 20 66 75 6E 63 74 69 6F 6E editing function
00F230: 73 0D 0A 0D 0A 09 43 6F 70 79 72 69 67 68 74 20 s.....Copyright
00F240: 28 43 29 20 44 61 76 65 20 4D 6F 6F 72 65 20 46 (C) Dave Moore F
00F250: 54 4C 20 4D 6F 64 75 6C 61 2D 32 20 31 39 38 36 TL Modula-2 1986
00F260: 0D 0A 0D 0A 09 4D 6F 64 69 66 69 63 61 74 69 6F .....Modificatio
00F270: 6E 73 3A 0D 0A 09 09 32 30 20 4A 75 6C 79 20 38 ns:....20 July 8
00F280: 36 20 48 61 6E 64 6C 69 6E 67 20 6F 66 20 62 61 6 Handling of ba
00F290: 63 6B 77 61 72 64 73 20 63 68 61 6E 67 65 64 20 ckwards changed
00F2A0: 73 6F 20 74 68 61 74 20 64 69 72 65 63 74 69 6F so that directio
00F2B0: 6E 0D 0A 09 09 09 20 20 20 6F 66 20 66 69 6E 64 n..... of find
00F2C0: 20 72 65 6D 61 69 6E 73 20 73 61 6D 65 20 75 6E remains same un
00F2D0: 6C 65 73 73 20 65 78 70 6C 69 63 69 74 20 63 6F less explicit co
00F2E0: 75 6E 74 20 65 6E 74 65 72 65 64 2E 0D 0A 09 09 unt entered.....
00F2F0: 09 20 20 20 54 68 69 73 20 61 6C 6C 6F 77 73 20 . This allows
00F300: 75 73 65 20 6F 66 20 6A 75 73 74 20 5E 4C 20 66 use of just ^L f
00F310: 6F 72 20 62 61 63 6B 77 61 72 64 73 20 73 65 61 or backwards sea
00F320: 72 63 68 65 73 0D 0A 0D 0A 2A 29 0D 0A 0D 0A 49 rches....*)....I
00F330: 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D 4F MPLEMENTATION MO
00F340: 44 55 4C 45 20 4B 65 79 62 6F 61 72 64 3B 0D 0A DULE Keyboard;..
00F350: 0D 0A 46 52 4F 4D 09 53 63 72 65 65 6E 44 75 6D ..FROM.ScreenDum
00F360: 6D 79 20 49 4D 50 4F 52 54 20 52 69 6E 67 42 65 my IMPORT RingBe
00F370: 6C 6C 2C 47 6F 74 6F 78 79 2C 43 6C 65 61 72 53 ll,Gotoxy,ClearS
00F380: 63 72 65 65 6E 2C 4F 75 74 70 75 74 54 6F 53 63 creen,OutputToSc
00F390: 72 65 65 6E 3B 0D 0A 46 52 4F 4D 09 45 64 69 74 reen;..FROM.Edit
00F3A0: 44 69 73 70 6C 61 79 20 49 4D 50 4F 52 54 20 45 Display IMPORT E
00F3B0: 72 72 6F 72 4D 65 73 73 61 67 65 2C 57 69 6E 64 rrorMessage,Wind
00F3C0: 6F 77 73 2C 44 69 73 70 6C 61 79 45 72 72 6F 72 ows,DisplayError
00F3D0: 2C 45 72 72 6F 72 4F 72 64 69 6E 61 6C 3B 0D 0A ,ErrorOrdinal;..
00F3E0: 46 52 4F 4D 09 45 64 69 74 43 6F 6E 74 72 6F 6C FROM.EditControl
00F3F0: 20 49 4D 50 4F 52 54 20 49 6E 73 4F 6E 65 43 68 IMPORT InsOneCh
00F400: 43 68 61 72 28 63 68 29 3B 0D 0A 09 09 45 73 63 Char(ch);....Esc
00F410: 61 70 65 43 6F 75 6E 74 3B 0D 0A 09 09 0D 0A 09 apeCount;.......
00F420: 45 4C 53 49 46 20 28 63 68 3E 3D 27 30 27 29 20 ELSIF (ch>='0')
00F430: 41 4E 44 20 28 63 68 3C 3D 27 39 27 29 20 54 48 AND (ch<='9') TH
00F440: 45 4E 20 0D 0A 09 09 42 61 63 6B 77 61 72 64 73 EN ....Backwards
00F450: 3A 3D 46 41 4C 53 45 3B 0D 0A 09 09 45 73 63 61 :=FALSE;....Esca
00F460: 70 65 43 6F 75 6E 74 0D 0A 09 45 4C 53 49 46 20 peCount...ELSIF
00F470: 63 68 3D 30 34 78 20 54 48 45 4E 20 44 65 66 4D ch=04x THEN DefM
00F480: 61 63 72 6F 3B 52 65 64 69 73 70 6C 61 79 0D 0A acro;Redisplay..
00F490: 09 45 4C 53 49 46 20 63 68 3D 30 63 78 20 54 48 .ELSIF ch=0cx TH
00F4A0: 45 4E 20 4C 65 61 72 6E 4D 61 63 72 6F 3B 52 65 EN LearnMacro;Re
00F4B0: 64 69 73 70 6C 61 79 0D 0A 09 45 4C 53 49 46 20 display...ELSIF
00F4C0: 63 68 3D 31 30 78 20 54 48 45 4E 20 43 6C 65 61 ch=10x THEN Clea
00F4D0: 72 53 63 72 65 65 6E 3B 50 72 69 6E 74 4D 61 63 rScreen;PrintMac
00F4E0: 72 6F 73 3B 52 65 64 69 73 70 6C 61 79 0D 0A 09 ros;Redisplay...
00F4F0: 45 4C 53 45 20 4D 61 63 72 6F 28 63 68 2C 31 29 ELSE Macro(ch,1)
00F500: 20 45 4E 44 3B 0D 0A 09 45 4E 44 20 45 73 63 61 END;...END Esca
00F510: 70 65 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 45 pe;..PROCEDURE E
00F520: 6E 64 69 6E 74 65 72 70 72 65 74 3B 0D 0A 0D 0A ndinterpret;....
00F530: 28 2A 09 45 6E 64 20 6B 65 79 62 6F 61 72 64 20 (*.End keyboard
00F540: 69 6E 74 65 72 70 72 65 74 61 74 69 6F 6E 0D 0A interpretation..
00F550: 0D 0A 09 4E 6F 74 65 20 74 68 61 74 20 74 68 69 ...Note that thi
00F560: 73 20 6D 6F 64 75 6C 65 20 63 61 6E 20 62 65 20 s module can be
00F570: 61 73 73 69 67 6E 65 64 20 74 6F 20 61 20 6B 65 assigned to a ke
00F580: 79 20 73 6F 20 74 68 61 74 20 79 6F 75 20 63 61 y so that you ca
00F590: 6E 0D 0A 09 65 78 69 74 20 66 72 6F 6D 20 65 64 n...exit from ed
00F5A0: 69 74 20 6D 6F 64 65 20 67 72 61 63 65 66 75 6C it mode graceful
00F5B0: 6C 79 0D 0A 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 ly..*)..BEGIN...
00F5C0: 69 6E 74 65 72 70 72 65 74 69 6E 67 3A 3D 46 41 interpreting:=FA
00F5D0: 4C 53 45 3B 0D 0A 09 45 4E 44 20 45 6E 64 69 6E LSE;...END Endin
00F5E0: 74 65 72 70 72 65 74 3B 0D 0A 50 52 4F 43 45 44 terpret;..PROCED
00F5F0: 55 52 45 20 49 6E 73 43 68 61 72 3B 0D 0A 42 45 URE InsChar;..BE
00F600: 61 72 2C 44 65 6C 4F 6E 65 43 68 61 72 2C 44 65 ar,DelOneChar,De
00F610: 6C 54 6F 45 4F 4C 2C 44 65 6C 46 75 6C 6C 4C 69 lToEOL,DelFullLi
00F620: 6E 65 2C 0D 0A 09 09 09 20 20 20 4C 65 66 74 2C ne,..... Left,
00F630: 52 69 67 68 74 2C 44 6F 77 6E 2C 55 70 2C 55 70 Right,Down,Up,Up
00F640: 53 63 72 65 65 6E 2C 44 6F 77 6E 53 63 72 65 65 Screen,DownScree
00F650: 6E 2C 54 6F 70 2C 42 6F 74 74 6F 6D 2C 0D 0A 09 n,Top,Bottom,...
00F660: 09 09 20 20 20 43 75 72 72 65 6E 74 57 69 6E 64 .. CurrentWind
00F670: 6F 77 2C 46 69 6C 65 73 4F 70 65 6E 65 64 2C 63 ow,FilesOpened,c
00F680: 75 72 78 2C 63 75 72 79 2C 43 68 61 6E 67 65 57 urx,cury,ChangeW
00F690: 69 6E 64 6F 77 2C 0D 0A 09 09 09 20 20 20 53 63 indow,..... Sc
00F6A0: 72 6F 6C 6C 55 70 2C 53 63 72 6F 6C 6C 44 6F 77 rollUp,ScrollDow
00F6B0: 6E 2C 52 65 73 65 74 53 63 72 65 65 6E 50 6F 73 n,ResetScreenPos
00F6C0: 2C 0D 0A 09 09 09 20 20 20 54 6F 70 2C 42 6F 74 ,..... Top,Bot
00F6D0: 74 6F 6D 2C 46 61 72 4C 65 66 74 2C 46 61 72 52 tom,FarLeft,FarR
00F6E0: 69 67 68 74 2C 46 69 6C 65 73 2C 53 65 61 72 63 ight,Files,Searc
00F6F0: 68 2C 4F 76 65 72 57 72 69 74 65 2C 20 0D 0A 09 h,OverWrite, ...
00F700: 09 09 20 20 20 46 69 6E 64 57 6F 72 64 2C 52 65 .. FindWord,Re
00F710: 44 69 73 70 6C 61 79 2C 47 6F 54 6F 4C 61 62 65 Display,GoToLabe
00F720: 6C 2C 55 70 64 61 74 65 64 2C 43 75 72 72 65 6E l,Updated,Curren
00F730: 74 46 69 6C 65 2C 0D 0A 09 09 09 20 20 20 54 68 tFile,..... Th
00F740: 69 73 78 2C 54 68 69 73 79 2C 57 69 6E 64 6F 77 isx,Thisy,Window
00F750: 46 69 6C 65 2C 4D 6F 76 65 64 4F 4B 3B 0D 0A 46 File,MovedOK;..F
00F760: 52 4F 4D 09 4D 61 6B 65 45 64 69 74 20 49 4D 50 ROM.MakeEdit IMP
00F770: 4F 52 54 20 50 72 65 70 61 72 65 53 74 72 69 6E ORT PrepareStrin
00F780: 67 2C 46 69 6E 64 53 74 72 69 6E 67 2C 4C 61 62 g,FindString,Lab
00F790: 65 6C 4F 70 2C 42 6C 6F 63 6B 43 6F 70 79 2C 42 elOp,BlockCopy,B
00F7A0: 6C 6F 63 6B 44 65 6C 2C 0D 0A 09 09 09 45 72 72 lockDel,.....Err
00F7B0: 6F 72 43 6F 75 6E 74 3B 0D 0A 46 52 4F 4D 09 44 orCount;..FROM.D
00F7C0: 6F 4D 65 6E 75 20 20 49 4D 50 4F 52 54 20 20 20 oMenu IMPORT
00F7D0: 20 20 47 65 74 53 74 72 69 6E 67 2C 52 65 64 69 GetString,Redi
00F7E0: 73 70 6C 61 79 3B 0D 0A 46 52 4F 4D 09 4D 61 63 splay;..FROM.Mac
00F7F0: 72 6F 73 09 49 4D 50 4F 52 54 09 44 65 66 4D 61 ros.IMPORT.DefMa
00F800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00F810: 0D 00 01 00 02 09 52 E5 0D 00 C9 02 00 00 00 02 ......R.........
00F820: 0D 00 C5 02 00 00 00 02 0D 00 C1 02 00 00 00 02 ................
00F830: 0D 00 C6 02 00 00 00 02 0D 00 C2 02 00 00 00 02 ................
00F840: 0D 00 C7 02 00 00 00 02 0D 00 C3 02 00 00 00 02 ................
00F850: 0D 00 C8 02 00 00 00 02 0D 00 C4 02 00 00 00 02 ................
00F860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F900: 3D 4C 65 66 74 3B 09 09 28 2A 43 74 72 6C 20 48 =Left;..(*Ctrl H
00F910: 20 28 42 61 63 6B 73 70 61 63 65 29 2A 29 0D 0A (Backspace)*)..
00F920: 09 4D 61 69 6E 54 61 62 6C 65 5B 31 61 78 5D 3A .MainTable[1ax]:
00F930: 3D 53 63 72 6F 6C 6C 44 6F 77 6E 3B 09 28 2A 43 =ScrollDown;.(*C
00F940: 74 72 6C 20 5A 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl Z*)...MainTa
00F950: 62 6C 65 5B 30 33 78 5D 3A 3D 44 6F 77 6E 53 63 ble[03x]:=DownSc
00F960: 72 65 65 6E 3B 09 28 2A 43 74 72 6C 20 43 2A 29 reen;.(*Ctrl C*)
00F970: 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 31 32 78 ...MainTable[12x
00F980: 5D 3A 3D 55 70 53 63 72 65 65 6E 3B 09 28 2A 43 ]:=UpScreen;.(*C
00F990: 74 72 6C 20 52 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl R*)...MainTa
00F9A0: 62 6C 65 5B 31 34 78 5D 3A 3D 44 65 6C 57 6F 72 ble[14x]:=DelWor
00F9B0: 64 3B 09 28 2A 43 74 72 6C 20 54 2A 29 0D 0A 09 d;.(*Ctrl T*)...
00F9C0: 4D 61 69 6E 54 61 62 6C 65 5B 30 36 78 5D 3A 3D MainTable[06x]:=
00F9D0: 46 6F 72 77 61 72 64 57 6F 72 64 3B 09 28 2A 43 ForwardWord;.(*C
00F9E0: 74 72 6C 20 46 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl F*)...MainTa
00F9F0: 62 6C 65 5B 30 61 78 5D 3A 3D 45 73 63 61 70 65 ble[0ax]:=Escape
00FA00: 3B 09 09 28 2A 74 72 65 61 74 20 6C 69 6E 65 20 ;..(*treat line
00FA10: 66 65 65 64 20 61 73 20 69 66 20 65 73 63 61 70 feed as if escap
00FA20: 65 2A 29 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B e*)...MainTable[
00FA30: 30 31 78 5D 3A 3D 42 61 63 6B 77 61 72 64 57 6F 01x]:=BackwardWo
00FA40: 72 64 3B 09 28 2A 43 74 72 6C 20 41 2A 29 0D 0A rd;.(*Ctrl A*)..
00FA50: 09 4D 61 69 6E 54 61 62 6C 65 5B 31 31 78 5D 3A .MainTable[11x]:
00FA60: 3D 51 75 69 63 6B 3B 09 09 28 2A 43 74 72 6C 20 =Quick;..(*Ctrl
00FA70: 51 2A 29 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B Q*)...MainTable[
00FA80: 30 32 78 5D 3A 3D 57 69 6E 64 6F 77 3B 09 09 28 02x]:=Window;..(
00FA90: 2A 43 74 72 6C 20 42 2A 29 0D 0A 09 4D 61 69 6E *Ctrl B*)...Main
00FAA0: 54 61 62 6C 65 5B 31 37 78 5D 3A 3D 53 63 72 6F Table[17x]:=Scro
00FAB0: 6C 6C 55 70 3B 09 28 2A 43 74 72 6C 20 57 2A 29 llUp;.(*Ctrl W*)
00FAC0: 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 30 62 78 ...MainTable[0bx
00FAD0: 5D 3A 3D 44 65 66 4C 61 62 65 6C 3B 09 28 2A 43 ]:=DefLabel;.(*C
00FAE0: 74 72 6C 20 4B 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl K*)...MainTa
00FAF0: 62 6C 65 5B 37 66 78 5D 3A 3D 44 65 6C 42 61 63 ble[7fx]:=DelBac
00FB00: 6F 45 72 72 6F 72 28 45 72 72 6F 72 4F 72 64 69 oError(ErrorOrdi
00FB10: 6E 61 6C 29 7C 0D 0A 09 09 27 30 27 2E 2E 27 39 nal)|....'0'..'9
00FB20: 27 3A 47 6F 74 6F 45 72 72 6F 72 28 4F 52 44 28 ':GotoError(ORD(
00FB30: 63 68 29 2D 4F 52 44 28 27 30 27 29 29 0D 0A 09 ch)-ORD('0'))...
00FB40: 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 4D 6F 76 65 .END;...END Move
00FB50: 54 6F 45 72 72 6F 72 3B 0D 0A 50 52 4F 43 45 44 ToError;..PROCED
00FB60: 55 52 45 20 51 75 69 63 6B 3B 0D 0A 56 41 52 09 URE Quick;..VAR.
00FB70: 46 69 72 73 74 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A First:BOOLEAN;..
00FB80: 42 45 47 49 4E 0D 0A 09 46 69 72 73 74 3A 3D 54 BEGIN...First:=T
00FB90: 52 55 45 3B 0D 0A 09 52 65 61 64 41 43 68 61 72 RUE;...ReadAChar
00FBA0: 28 63 68 29 3B 0D 0A 09 63 68 3A 3D 43 41 50 28 (ch);...ch:=CAP(
00FBB0: 63 68 29 3B 0D 0A 09 49 46 20 50 61 72 56 61 6C ch);...IF ParVal
00FBC0: 75 65 3D 30 20 54 48 45 4E 20 50 61 72 56 61 6C ue=0 THEN ParVal
00FBD0: 75 65 3A 3D 31 20 45 4E 44 3B 0D 0A 09 57 48 49 ue:=1 END;...WHI
00FBE0: 4C 45 20 50 61 72 56 61 6C 75 65 3E 30 20 44 4F LE ParValue>0 DO
00FBF0: 0D 0A 09 20 20 43 41 53 45 20 63 68 20 4F 46 0D ... CASE ch OF.
00FC00: 0A 09 20 20 20 20 27 45 27 2C 30 35 78 3A 4D 6F .. 'E',05x:Mo
00FC10: 76 65 54 6F 45 72 72 6F 72 7C 0D 0A 09 20 20 20 veToError|...
00FC20: 20 27 59 27 2C 31 39 78 3A 44 65 6C 54 6F 45 4F 'Y',19x:DelToEO
00FC30: 4C 7C 0D 0A 09 20 20 20 20 27 44 27 2C 30 34 78 L|... 'D',04x
00FC40: 3A 46 61 72 52 69 67 68 74 7C 0D 0A 09 20 20 20 :FarRight|...
00FC50: 20 27 53 27 2C 31 33 78 3A 46 61 72 4C 65 66 74 'S',13x:FarLeft
00FC60: 7C 0D 0A 09 20 20 20 20 27 52 27 2C 31 32 78 3A |... 'R',12x:
00FC70: 54 6F 70 7C 0D 0A 09 20 20 20 20 27 43 27 2C 30 Top|... 'C',0
00FC80: 33 78 3A 42 6F 74 74 6F 6D 7C 0D 0A 09 20 20 20 3x:Bottom|...
00FC90: 20 27 46 27 2C 30 36 78 3A 49 46 20 46 69 72 73 'F',06x:IF Firs
00FCA0: 74 20 54 48 45 4E 20 46 69 6E 64 20 45 4C 53 45 t THEN Find ELSE
00FCB0: 20 44 6F 46 69 6E 64 20 45 4E 44 7C 20 0D 0A 09 DoFind END| ...
00FCC0: 20 20 20 20 27 41 27 2C 30 31 78 3A 49 46 20 46 'A',01x:IF F
00FCD0: 69 72 73 74 20 54 48 45 4E 20 52 65 70 6C 61 63 irst THEN Replac
00FCE0: 65 20 45 4C 53 45 20 44 6F 46 69 6E 64 20 45 4E e ELSE DoFind EN
00FCF0: 44 7C 0D 0A 09 20 20 20 20 27 47 27 2C 30 37 78 D|... 'G',07x
00FD00: 77 61 72 64 73 20 54 48 45 4E 20 46 6F 75 6E 64 wards THEN Found
00FD10: 3A 3D 53 65 61 72 63 68 28 52 65 70 6C 61 63 65 :=Search(Replace
00FD20: 53 74 72 69 6E 67 2C 52 4C 65 6E 2C 4C 65 6E 2B String,RLen,Len+
00FD30: 31 32 38 29 0D 0A 09 09 45 4C 53 45 20 46 6F 75 128)....ELSE Fou
00FD40: 6E 64 3A 3D 53 65 61 72 63 68 28 52 65 70 6C 61 nd:=Search(Repla
00FD50: 63 65 53 74 72 69 6E 67 2C 52 4C 65 6E 2C 4C 65 ceString,RLen,Le
00FD60: 6E 29 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D n) END;....END;.
00FD70: 0A 09 45 4E 44 20 44 6F 46 69 6E 64 3B 0D 0A 50 ..END DoFind;..P
00FD80: 52 4F 43 45 44 55 52 45 20 46 69 6E 64 3B 0D 0A ROCEDURE Find;..
00FD90: 56 41 52 09 53 65 61 72 63 68 53 74 72 69 6E 67 VAR.SearchString
00FDA0: 3A 41 52 52 41 59 5B 30 2E 2E 36 30 5D 20 4F 46 :ARRAY[0..60] OF
00FDB0: 20 43 48 41 52 3B 0D 0A 42 45 47 49 4E 0D 0A 09 CHAR;..BEGIN...
00FDC0: 47 65 74 53 74 72 69 6E 67 28 53 65 61 72 63 68 GetString(Search
00FDD0: 53 74 72 69 6E 67 2C 4C 65 6E 2C 27 46 69 6E 64 String,Len,'Find
00FDE0: 3A 27 29 3B 0D 0A 09 49 46 20 4C 65 6E 3E 30 20 :');...IF Len>0
00FDF0: 54 48 45 4E 0D 0A 09 09 50 72 65 70 61 72 65 53 THEN....PrepareS
00FE00: 74 72 69 6E 67 28 53 65 61 72 63 68 53 74 72 69 tring(SearchStri
00FE10: 6E 67 2C 4C 65 6E 29 3B 0D 0A 09 09 52 4C 65 6E ng,Len);....RLen
00FE20: 3A 3D 2D 31 3B 0D 0A 09 09 44 6F 46 69 6E 64 3B :=-1;....DoFind;
00FE30: 0D 0A 09 45 4C 53 45 0D 0A 09 09 52 65 44 69 73 ...ELSE....ReDis
00FE40: 70 6C 61 79 3B 0D 0A 09 09 45 4E 44 3B 0A 09 45 play;....END;..E
00FE50: 4E 44 20 46 69 6E 64 3B 0D 0A 50 52 4F 43 45 44 ND Find;..PROCED
00FE60: 55 52 45 20 52 65 70 6C 61 63 65 3B 0D 0A 56 41 URE Replace;..VA
00FE70: 52 09 53 65 61 72 63 68 53 74 72 69 6E 67 3A 41 R.SearchString:A
00FE80: 52 52 41 59 5B 30 2E 2E 36 30 5D 20 4F 46 20 43 RRAY[0..60] OF C
00FE90: 48 41 52 3B 0D 0A 09 4C 3A 43 41 52 44 49 4E 41 HAR;...L:CARDINA
00FEA0: 4C 3B 0D 0A 09 0D 0A 42 45 47 49 4E 0D 0A 09 47 L;.....BEGIN...G
00FEB0: 65 74 53 74 72 69 6E 67 28 53 65 61 72 63 68 53 etString(SearchS
00FEC0: 74 72 69 6E 67 2C 4C 65 6E 2C 27 41 6C 74 65 72 tring,Len,'Alter
00FED0: 3A 27 29 3B 0D 0A 09 49 46 20 4C 65 6E 3E 30 20 :');...IF Len>0
00FEE0: 54 48 45 4E 0D 0A 09 09 50 72 65 70 61 72 65 53 THEN....PrepareS
00FEF0: 74 72 69 6E 67 28 53 65 61 72 63 68 53 74 72 69 tring(SearchStri
00FF00: 3A 4E 6F 42 65 6C 6C 3A 3D 4E 4F 54 20 4E 6F 42 :NoBell:=NOT NoB
00FF10: 65 6C 6C 7C 0D 0A 09 20 20 20 20 27 4B 27 2C 27 ell|... 'K','
00FF20: 42 27 2C 27 30 27 2E 2E 27 39 27 3A 47 6F 54 6F B','0'..'9':GoTo
00FF30: 4C 61 62 65 6C 28 63 68 29 3B 0D 0A 09 20 09 45 Label(ch);... .E
00FF40: 4E 44 3B 0D 0A 09 20 20 46 69 72 73 74 3A 3D 46 ND;... First:=F
00FF50: 41 4C 53 45 3B 0D 0A 09 20 20 44 45 43 28 50 61 ALSE;... DEC(Pa
00FF60: 72 56 61 6C 75 65 29 3B 0D 0A 09 20 20 45 4E 44 rValue);... END
00FF70: 3B 0D 0A 09 45 4E 44 20 51 75 69 63 6B 3B 0D 0A ;...END Quick;..
00FF80: 50 52 4F 43 45 44 55 52 45 20 57 69 6E 64 6F 77 PROCEDURE Window
00FF90: 3B 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 4E 41 ;..VAR.i:CARDINA
00FFA0: 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 69 3A 3D 43 L;..BEGIN...i:=C
00FFB0: 75 72 72 65 6E 74 57 69 6E 64 6F 77 2B 31 3B 0D urrentWindow+1;.
00FFC0: 0A 09 49 46 20 69 3E 57 69 6E 64 6F 77 73 20 54 ..IF i>Windows T
00FFD0: 48 45 4E 20 69 3A 3D 31 20 45 4E 44 3B 0D 0A 09 HEN i:=1 END;...
00FFE0: 43 68 61 6E 67 65 57 69 6E 64 6F 77 28 69 29 3B ChangeWindow(i);
00FFF0: 0D 0A 09 52 65 44 69 73 70 6C 61 79 3B 0D 0A 09 ...ReDisplay;...
010000: 45 4E 44 20 57 69 6E 64 6F 77 3B 0D 0A 50 52 4F END Window;..PRO
010010: 43 45 44 55 52 45 20 44 65 6C 42 61 63 6B 3B 0D CEDURE DelBack;.
010020: 0A 42 45 47 49 4E 0D 0A 09 4C 65 66 74 3B 0D 0A .BEGIN...Left;..
010030: 09 49 46 20 4D 6F 76 65 64 4F 4B 20 54 48 45 4E .IF MovedOK THEN
010040: 20 44 65 6C 4F 6E 65 43 68 61 72 20 45 4E 44 3B DelOneChar END;
010050: 0D 0A 09 45 4E 44 20 44 65 6C 42 61 63 6B 3B 0D ...END DelBack;.
010060: 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 74 65 72 .PROCEDURE Inter
010070: 70 72 65 74 3B 0D 0A 0D 0A 28 2A 09 53 74 61 72 pret;....(*.Star
010080: 74 20 6B 65 79 62 6F 61 72 64 20 69 6E 74 65 72 t keyboard inter
010090: 70 72 65 74 61 74 69 6F 6E 2A 29 0D 0A 42 45 47 pretation*)..BEG
0100A0: 49 4E 0D 0A 09 52 65 73 65 74 53 63 72 65 65 6E IN...ResetScreen
0100B0: 50 6F 73 3B 0D 0A 09 69 6E 74 65 72 70 72 65 74 Pos;...interpret
0100C0: 69 6E 67 3A 3D 54 52 55 45 3B 0D 0A 09 50 61 72 ing:=TRUE;...Par
0100D0: 56 61 6C 75 65 3A 3D 30 3B 0D 0A 09 57 48 49 4C Value:=0;...WHIL
0100E0: 45 20 69 6E 74 65 72 70 72 65 74 69 6E 67 20 44 E interpreting D
0100F0: 4F 0D 0A 09 09 52 65 61 64 41 43 68 61 72 28 63 O....ReadAChar(c
010100: 6E 67 2C 4C 65 6E 29 3B 0D 0A 09 09 47 65 74 53 ng,Len);....GetS
010110: 74 72 69 6E 67 28 52 65 70 6C 61 63 65 53 74 72 tring(ReplaceStr
010120: 69 6E 67 2C 4C 2C 27 54 6F 20 20 20 3A 27 29 3B ing,L,'To :');
010130: 0D 0A 09 09 52 4C 65 6E 3A 3D 4C 3B 0D 0A 09 09 ....RLen:=L;....
010140: 44 6F 46 69 6E 64 3B 0D 0A 09 45 4C 53 45 0D 0A DoFind;...ELSE..
010150: 09 09 52 65 44 69 73 70 6C 61 79 3B 0D 0A 09 09 ..ReDisplay;....
010160: 45 4E 44 3B 0D 0A 09 45 4E 44 20 52 65 70 6C 61 END;...END Repla
010170: 63 65 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 ce;..PROCEDURE S
010180: 65 74 55 70 64 61 74 65 64 3B 0D 0A 42 45 47 49 etUpdated;..BEGI
010190: 4E 0D 0A 09 55 70 64 61 74 65 64 5B 43 75 72 72 N...Updated[Curr
0101A0: 65 6E 74 46 69 6C 65 5D 3A 3D 54 52 55 45 0D 0A entFile]:=TRUE..
0101B0: 09 45 4E 44 20 53 65 74 55 70 64 61 74 65 64 3B .END SetUpdated;
0101C0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 6C 41 ..PROCEDURE DelA
0101D0: 42 6C 6F 63 6B 28 69 3A 43 41 52 44 49 4E 41 4C Block(i:CARDINAL
0101E0: 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 56 41 52 20 ):BOOLEAN;..VAR
0101F0: 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 6A 3A .b:BOOLEAN;...j:
010200: 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E CARDINAL;..BEGIN
010210: 0D 0A 09 62 3A 3D 42 6C 6F 63 6B 44 65 6C 28 46 ...b:=BlockDel(F
010220: 69 6C 65 73 5B 69 5D 29 3B 0D 0A 09 6A 3A 3D 43 iles[i]);...j:=C
010230: 75 72 72 65 6E 74 46 69 6C 65 3B 0D 0A 09 43 68 urrentFile;...Ch
010240: 61 6E 67 65 57 69 6E 64 6F 77 28 69 29 3B 0D 0A angeWindow(i);..
010250: 09 52 65 64 69 73 70 6C 61 79 3B 0D 0A 09 43 68 .Redisplay;...Ch
010260: 61 6E 67 65 57 69 6E 64 6F 77 28 6A 29 3B 0D 0A angeWindow(j);..
010270: 09 52 45 54 55 52 4E 20 62 0D 0A 09 45 4E 44 20 .RETURN b...END
010280: 44 65 6C 41 42 6C 6F 63 6B 3B 0D 0A 50 52 4F 43 DelABlock;..PROC
010290: 45 44 55 52 45 20 44 65 66 4C 61 62 65 6C 3B 0D EDURE DefLabel;.
0102A0: 0A 56 41 52 09 69 3A 43 41 52 44 49 4E 41 4C 3B .VAR.i:CARDINAL;
0102B0: 0D 0A 09 62 2C 72 3A 42 4F 4F 4C 45 41 4E 3B 0D ...b,r:BOOLEAN;.
0102C0: 0A 42 45 47 49 4E 0D 0A 09 52 65 61 64 41 43 68 .BEGIN...ReadACh
0102D0: 61 72 28 63 68 29 3B 0D 0A 09 69 3A 3D 43 75 72 ar(ch);...i:=Cur
0102E0: 72 65 6E 74 57 69 6E 64 6F 77 3B 0D 0A 0D 0A 09 rentWindow;.....
0102F0: 28 2A 09 49 66 20 63 6F 6E 74 72 6F 6C 20 42 27 (*.If control B'
010300: 68 29 3B 0D 0A 09 09 49 46 20 63 68 3E 43 48 52 h);....IF ch>CHR
010310: 28 31 32 37 29 20 54 48 45 4E 20 63 68 3A 3D 43 (127) THEN ch:=C
010320: 48 52 28 4F 52 44 28 63 68 29 2D 31 32 38 29 20 HR(ORD(ch)-128)
010330: 45 4E 44 3B 0D 0A 09 09 4D 61 69 6E 54 61 62 6C END;....MainTabl
010340: 65 5B 63 68 5D 3B 0D 0A 09 09 45 4E 44 3B 0D 0A e[ch];....END;..
010350: 09 45 4E 44 20 49 6E 74 65 72 70 72 65 74 3B 0D .END Interpret;.
010360: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 6C 69 ...PROCEDURE Fli
010370: 70 49 6E 73 65 72 74 3B 0D 0A 42 45 47 49 4E 0D pInsert;..BEGIN.
010380: 0A 09 49 6E 73 65 72 74 4D 6F 64 65 3A 3D 4E 4F ..InsertMode:=NO
010390: 54 20 49 6E 73 65 72 74 4D 6F 64 65 3B 0D 0A 09 T InsertMode;...
0103A0: 45 4E 44 20 46 6C 69 70 49 6E 73 65 72 74 3B 0D END FlipInsert;.
0103B0: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 6C ...PROCEDURE Del
0103C0: 57 6F 72 64 3B 0D 0A 42 45 47 49 4E 0D 0A 09 46 Word;..BEGIN...F
0103D0: 69 6E 64 57 6F 72 64 28 46 41 4C 53 45 2C 54 52 indWord(FALSE,TR
0103E0: 55 45 29 3B 0D 0A 09 45 4E 44 20 44 65 6C 57 6F UE);...END DelWo
0103F0: 72 64 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 rd;....PROCEDURE
010400: 20 46 6F 72 77 61 72 64 57 6F 72 64 3B 0D 0A 42 ForwardWord;..B
010410: 45 47 49 4E 0D 0A 09 46 69 6E 64 57 6F 72 64 28 EGIN...FindWord(
010420: 46 41 4C 53 45 2C 46 41 4C 53 45 29 3B 0D 0A 09 FALSE,FALSE);...
010430: 45 4E 44 20 46 6F 72 77 61 72 64 57 6F 72 64 3B END ForwardWord;
010440: 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 61 63 6B ..PROCEDURE Back
010450: 77 61 72 64 57 6F 72 64 3B 0D 0A 42 45 47 49 4E wardWord;..BEGIN
010460: 0D 0A 09 46 69 6E 64 57 6F 72 64 28 54 52 55 45 ...FindWord(TRUE
010470: 2C 46 41 4C 53 45 29 3B 0D 0A 09 45 4E 44 20 42 ,FALSE);...END B
010480: 61 63 6B 77 61 72 64 57 6F 72 64 3B 0D 0A 0D 0A ackwardWord;....
010490: 28 2A 09 49 6E 69 74 69 61 6C 69 73 65 20 61 20 (*.Initialise a
0104A0: 6B 65 79 62 6F 61 72 64 20 64 69 73 70 61 74 63 keyboard dispatc
0104B0: 68 20 74 61 62 6C 65 73 2A 29 0D 0A 0D 0A 42 45 h tables*)....BE
0104C0: 47 49 4E 0D 0A 09 46 4F 52 20 63 68 3A 3D 30 78 GIN...FOR ch:=0x
0104D0: 20 54 4F 20 37 66 78 20 44 4F 20 4D 61 69 6E 54 TO 7fx DO MainT
0104E0: 61 62 6C 65 5B 63 68 5D 3A 3D 42 65 6C 6C 20 45 able[ch]:=Bell E
0104F0: 4E 44 3B 0D 0A 09 0D 0A 09 4D 61 69 6E 54 61 62 ND;......MainTab
010500: 73 20 69 6E 74 65 72 76 65 6E 65 2C 20 63 68 61 s intervene, cha
010510: 6E 67 65 20 73 6F 75 72 63 65 20 77 69 6E 64 6F nge source windo
010520: 77 2A 29 0D 0A 09 57 48 49 4C 45 20 63 68 3D 30 w*)...WHILE ch=0
010530: 32 78 20 28 2A 43 54 52 4C 20 42 2A 29 20 44 4F 2x (*CTRL B*) DO
010540: 0D 0A 09 09 49 46 20 69 3E 3D 57 69 6E 64 6F 77 ....IF i>=Window
010550: 73 20 54 48 45 4E 20 69 3A 3D 31 20 45 4C 53 45 s THEN i:=1 ELSE
010560: 20 49 4E 43 28 69 29 20 45 4E 44 3B 0D 0A 09 09 INC(i) END;....
010570: 47 6F 74 6F 78 79 28 63 75 72 78 5B 69 5D 2C 63 Gotoxy(curx[i],c
010580: 75 72 79 5B 69 5D 29 3B 0D 0A 09 09 52 65 61 64 ury[i]);....Read
010590: 41 43 68 61 72 28 63 68 29 3B 0D 0A 09 09 45 4E AChar(ch);....EN
0105A0: 44 3B 0D 0A 09 63 68 3A 3D 43 41 50 28 63 68 29 D;...ch:=CAP(ch)
0105B0: 3B 0D 0A 09 72 3A 3D 46 41 4C 53 45 3B 0D 0A 09 ;...r:=FALSE;...
0105C0: 69 3A 3D 57 69 6E 64 6F 77 46 69 6C 65 5B 69 5D i:=WindowFile[i]
0105D0: 3B 0D 0A 09 43 41 53 45 20 63 68 20 4F 46 0D 0A ;...CASE ch OF..
0105E0: 09 09 27 43 27 2C 30 33 78 3A 62 3A 3D 42 6C 6F ..'C',03x:b:=Blo
0105F0: 63 6B 43 6F 70 79 28 46 69 6C 65 73 5B 69 5D 2C ckCopy(Files[i],
010600: 46 69 6C 65 73 5B 43 75 72 72 65 6E 74 46 69 6C Files[CurrentFil
010610: 65 5D 29 3B 0D 0A 09 09 09 7C 0D 0A 09 09 27 59 e]);.....|....'Y
010620: 27 2C 31 39 78 3A 62 3A 3D 44 65 6C 41 42 6C 6F ',19x:b:=DelABlo
010630: 63 6B 28 69 29 3B 0D 0A 09 09 09 7C 0D 0A 09 09 ck(i);.....|....
010640: 27 56 27 2C 31 36 78 3A 62 3A 3D 42 6C 6F 63 6B 'V',16x:b:=Block
010650: 43 6F 70 79 28 46 69 6C 65 73 5B 69 5D 2C 46 69 Copy(Files[i],Fi
010660: 6C 65 73 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D les[CurrentFile]
010670: 29 3B 0D 0A 09 09 09 49 46 20 62 20 20 54 48 45 );.....IF b THE
010680: 4E 20 62 3A 3D 44 65 6C 41 42 6C 6F 63 6B 28 69 N b:=DelABlock(i
010690: 29 20 45 4E 44 3B 0D 0A 09 09 09 7C 0D 0A 09 09 ) END;.....|....
0106A0: 45 4C 53 45 20 0D 0A 09 09 09 62 3A 3D 20 4C 61 ELSE .....b:= La
0106B0: 62 65 6C 4F 70 28 46 69 6C 65 73 5B 43 75 72 72 belOp(Files[Curr
0106C0: 65 6E 74 46 69 6C 65 5D 2C 54 52 55 45 2C 63 68 entFile],TRUE,ch
0106D0: 29 3B 0D 0A 09 09 09 72 3A 3D 54 52 55 45 3B 0D );.....r:=TRUE;.
0106E0: 0A 09 09 45 4E 44 3B 0D 0A 09 49 46 20 62 20 54 ...END;...IF b T
0106F0: 48 45 4E 0D 0A 09 09 49 46 20 4E 4F 54 20 72 20 HEN....IF NOT r
010700: 6C 65 5B 31 62 78 5D 3A 3D 45 73 63 61 70 65 3B le[1bx]:=Escape;
010710: 0D 0A 0D 0A 09 28 2A 09 70 72 69 6E 74 61 62 6C .....(*.printabl
010720: 65 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 e characters are
010730: 20 69 6E 73 65 72 74 65 64 20 61 73 20 69 73 20 inserted as is
010740: 2A 29 0D 0A 0D 0A 09 46 4F 52 20 63 68 3A 3D 27 *).....FOR ch:='
010750: 20 27 20 54 4F 20 27 7E 27 20 44 4F 20 4D 61 69 ' TO '~' DO Mai
010760: 6E 54 61 62 6C 65 5B 63 68 5D 3A 3D 49 6E 73 43 nTable[ch]:=InsC
010770: 68 61 72 20 45 4E 44 3B 0D 0A 09 4D 61 69 6E 54 har END;...MainT
010780: 61 62 6C 65 5B 30 64 78 5D 3A 3D 49 6E 73 43 68 able[0dx]:=InsCh
010790: 61 72 3B 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B ar;...MainTable[
0107A0: 30 39 78 5D 3A 3D 49 6E 73 43 68 61 72 3B 0D 0A 09x]:=InsChar;..
0107B0: 0D 0A 09 28 2A 09 63 75 72 73 6F 72 20 63 6F 6E ...(*.cursor con
0107C0: 74 72 6F 6C 20 6B 65 79 73 2A 29 0D 0A 0D 0A 09 trol keys*).....
0107D0: 4D 61 69 6E 54 61 62 6C 65 5B 31 33 78 5D 3A 3D MainTable[13x]:=
0107E0: 4C 65 66 74 3B 0D 0A 09 4D 61 69 6E 54 61 62 6C Left;...MainTabl
0107F0: 65 5B 31 38 78 5D 3A 3D 44 6F 77 6E 3B 0D 0A 09 e[18x]:=Down;...
010800: 4D 61 69 6E 54 61 62 6C 65 5B 30 34 78 5D 3A 3D MainTable[04x]:=
010810: 52 69 67 68 74 3B 0D 0A 09 4D 61 69 6E 54 61 62 Right;...MainTab
010820: 6C 65 5B 30 35 78 5D 3A 3D 55 70 3B 0D 0A 0D 0A le[05x]:=Up;....
010830: 09 28 2A 09 4F 74 68 65 72 20 63 6F 6E 74 72 6F .(*.Other contro
010840: 6C 20 6B 65 79 73 2A 29 0D 0A 0D 0A 09 4D 61 69 l keys*).....Mai
010850: 6E 54 61 62 6C 65 5B 30 37 78 5D 3A 3D 44 65 6C nTable[07x]:=Del
010860: 4F 6E 65 43 68 61 72 3B 09 28 2A 43 74 72 6C 20 OneChar;.(*Ctrl
010870: 47 2A 29 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B G*)...MainTable[
010880: 31 39 78 5D 3A 3D 44 65 6C 46 75 6C 6C 4C 69 6E 19x]:=DelFullLin
010890: 65 3B 09 28 2A 43 74 72 6C 20 59 2A 29 0D 0A 09 e;.(*Ctrl Y*)...
0108A0: 4D 61 69 6E 54 61 62 6C 65 5B 31 36 78 5D 3A 3D MainTable[16x]:=
0108B0: 46 6C 69 70 49 6E 73 65 72 74 3B 09 28 2A 43 74 FlipInsert;.(*Ct
0108C0: 72 6C 20 56 2A 29 0D 0A 09 4D 61 69 6E 54 61 62 rl V*)...MainTab
0108D0: 6C 65 5B 30 65 78 5D 3A 3D 42 72 65 61 6B 4C 69 le[0ex]:=BreakLi
0108E0: 6E 65 3B 09 28 2A 43 74 72 6C 20 4E 2A 29 0D 0A ne;.(*Ctrl N*)..
0108F0: 09 4D 61 69 6E 54 61 62 6C 65 5B 30 38 78 5D 3A .MainTable[08x]:
010900: 54 48 45 4E 20 52 65 44 69 73 70 6C 61 79 3B 53 THEN ReDisplay;S
010910: 65 74 55 70 64 61 74 65 64 20 45 4E 44 3B 0D 0A etUpdated END;..
010920: 09 45 4C 53 45 0D 0A 09 09 49 46 20 72 20 54 48 .ELSE....IF r TH
010930: 45 4E 20 45 72 72 6F 72 4D 65 73 73 61 67 65 28 EN ErrorMessage(
010940: 27 42 61 64 20 6C 61 62 65 6C 27 2C 27 20 27 29 'Bad label',' ')
010950: 3B 0D 0A 09 09 45 4C 53 45 20 45 72 72 6F 72 4D ;....ELSE ErrorM
010960: 65 73 73 61 67 65 28 27 42 6C 6F 63 6B 20 55 6E essage('Block Un
010970: 64 65 66 69 6E 65 64 27 2C 27 20 27 29 20 45 4E defined',' ') EN
010980: 44 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 54 68 69 D;....Gotoxy(Thi
010990: 73 78 2C 54 68 69 73 79 29 3B 0D 0A 09 09 45 4E sx,Thisy);....EN
0109A0: 44 3B 0D 0A 09 45 4E 44 20 44 65 66 4C 61 62 65 D;...END DefLabe
0109B0: 6C 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D 6F l;..PROCEDURE Mo
0109C0: 76 65 54 6F 45 72 72 6F 72 3B 0D 0A 50 52 4F 43 veToError;..PROC
0109D0: 45 44 55 52 45 20 47 6F 74 6F 45 72 72 6F 72 28 EDURE GotoError(
0109E0: 69 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 i:CARDINAL);..BE
0109F0: 47 49 4E 0D 0A 09 49 46 20 69 3C 45 72 72 6F 72 GIN...IF i<Error
010A00: 43 6F 75 6E 74 20 54 48 45 4E 20 45 72 72 6F 72 Count THEN Error
010A10: 4F 72 64 69 6E 61 6C 3A 3D 69 3B 44 69 73 70 6C Ordinal:=i;Displ
010A20: 61 79 45 72 72 6F 72 0D 0A 09 45 4C 53 45 0D 0A ayError...ELSE..
010A30: 09 09 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 ..ErrorMessage('
010A40: 20 4E 6F 20 73 75 63 68 20 65 72 72 6F 72 20 27 No such error '
010A50: 2C 27 20 27 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A ,' ');....END;..
010A60: 09 45 4E 44 20 47 6F 74 6F 45 72 72 6F 72 3B 0D .END GotoError;.
010A70: 0A 0D 0A 42 45 47 49 4E 0D 0A 09 52 65 61 64 41 ...BEGIN...ReadA
010A80: 43 68 61 72 28 63 68 29 3B 0D 0A 09 63 68 3A 3D Char(ch);...ch:=
010A90: 43 41 50 28 63 68 29 3B 0D 0A 09 43 41 53 45 20 CAP(ch);...CASE
010AA0: 63 68 20 4F 46 0D 0A 09 09 27 4E 27 2C 30 65 78 ch OF....'N',0ex
010AB0: 3A 47 6F 74 6F 45 72 72 6F 72 28 45 72 72 6F 72 :GotoError(Error
010AC0: 4F 72 64 69 6E 61 6C 2B 31 29 7C 0D 0A 09 09 27 Ordinal+1)|....'
010AD0: 50 27 2C 31 30 78 3A 47 6F 74 6F 45 72 72 6F 72 P',10x:GotoError
010AE0: 28 45 72 72 6F 72 4F 72 64 69 6E 61 6C 2D 31 29 (ErrorOrdinal-1)
010AF0: 7C 0D 0A 09 09 27 43 27 2C 30 33 78 3A 47 6F 74 |....'C',03x:Got
010B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
010B10: 0E 00 01 00 02 09 52 E5 0E 00 C9 02 00 00 00 02 ......R.........
010B20: 0E 00 C5 02 00 00 00 02 0E 00 C1 02 00 00 00 02 ................
010B30: 0E 00 C6 02 00 00 00 02 0E 00 C2 02 00 00 00 02 ................
010B40: 0E 00 C7 02 00 00 00 02 0E 00 C3 02 00 00 00 02 ................
010B50: 0E 00 C8 02 00 00 00 02 0E 00 C4 02 00 00 00 02 ................
010B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010C00: 70 61 72 74 20 2A 29 0D 0A 0D 0A 09 57 48 49 4C part *).....WHIL
010C10: 45 20 28 4B 65 79 50 6F 73 3C 3E 4E 49 4C 29 20 E (KeyPos<>NIL)
010C20: 41 4E 44 20 20 28 4B 65 79 53 65 71 5B 69 5D 3C AND (KeySeq[i]<
010C30: 3E 27 20 27 29 20 44 4F 0D 0A 09 09 0D 0A 09 09 >' ') DO........
010C40: 53 65 61 72 63 68 54 6F 4E 65 78 74 28 4B 65 79 SearchToNext(Key
010C50: 53 65 71 5B 69 5D 29 3B 0D 0A 09 09 49 46 20 4B Seq[i]);....IF K
010C60: 65 79 50 6F 73 3C 3E 4E 49 4C 20 54 48 45 4E 20 eyPos<>NIL THEN
010C70: 0D 0A 09 09 09 49 4E 43 28 69 29 3B 0D 0A 09 09 .....INC(i);....
010C80: 09 4C 61 73 74 4B 65 79 50 6F 73 3A 3D 4B 65 79 .LastKeyPos:=Key
010C90: 50 6F 73 3B 0D 0A 09 09 09 4C 65 61 72 6E 4B 65 Pos;.....LearnKe
010CA0: 79 3A 3D 4B 65 79 50 6F 73 3B 0D 0A 09 09 09 4B y:=KeyPos;.....K
010CB0: 65 79 50 6F 73 3A 3D 4B 65 79 50 6F 73 5E 2E 4E eyPos:=KeyPos^.N
010CC0: 65 78 74 43 68 61 72 3B 0D 0A 09 09 09 45 4E 44 extChar;.....END
010CD0: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 49 46 20 4B ;....END;...IF K
010CE0: 65 79 53 65 71 5B 69 5D 3D 27 20 27 20 54 48 45 eySeq[i]=' ' THE
010CF0: 4E 20 28 2A 6D 75 73 74 20 61 6C 72 65 61 64 79 N (*must already
010D00: 20 62 65 20 69 6E 20 74 61 62 6C 65 2A 29 0D 0A be in table*)..
010D10: 09 09 52 45 54 55 52 4E 0D 0A 09 09 45 4E 44 3B ..RETURN....END;
010D20: 0D 0A 09 0D 0A 09 28 2A 20 41 73 73 75 6D 69 6E ......(* Assumin
010D30: 67 20 74 68 69 73 20 69 73 20 6E 6F 74 20 74 68 g this is not th
010D40: 65 20 66 69 72 73 74 20 65 6E 74 72 79 2C 20 4C e first entry, L
010D50: 61 73 74 4B 65 79 50 6F 73 20 70 6F 69 6E 74 73 astKeyPos points
010D60: 0D 0A 09 20 20 20 74 6F 20 74 68 65 20 65 6E 74 ... to the ent
010D70: 72 79 20 74 6F 20 77 68 69 63 68 20 77 65 20 73 ry to which we s
010D80: 68 6F 75 6C 64 20 61 74 74 61 63 68 20 74 68 69 hould attach thi
010D90: 73 20 6E 65 77 20 63 68 61 72 61 63 74 65 72 0D s new character.
010DA0: 0A 09 2A 29 0D 0A 09 57 48 49 4C 45 20 20 28 4B ..*)...WHILE (K
010DB0: 65 79 53 65 71 5B 69 5D 3C 3E 27 20 27 29 20 44 eySeq[i]<>' ') D
010DC0: 4F 0D 0A 09 09 4E 45 57 28 4B 65 79 50 6F 73 29 O....NEW(KeyPos)
010DD0: 3B 0D 0A 09 09 57 49 54 48 20 4B 65 79 50 6F 73 ;....WITH KeyPos
010DE0: 5E 20 44 4F 0D 0A 09 09 09 63 68 3A 3D 4B 65 79 ^ DO.....ch:=Key
010DF0: 53 65 71 5B 69 5D 3B 0D 0A 09 09 09 4E 65 78 74 Seq[i];.....Next
010E00: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
010E10: 4F 44 55 4C 45 20 4D 61 63 72 6F 73 3B 0D 0A 46 ODULE Macros;..F
010E20: 52 4F 4D 09 44 6F 4D 65 6E 75 20 49 4D 50 4F 52 ROM.DoMenu IMPOR
010E30: 54 20 47 65 74 53 74 72 69 6E 67 2C 52 65 64 69 T GetString,Redi
010E40: 73 70 6C 61 79 3B 0D 0A 46 52 4F 4D 09 53 74 6F splay;..FROM.Sto
010E50: 72 61 67 65 20 49 4D 50 4F 52 54 20 20 41 4C 4C rage IMPORT ALL
010E60: 4F 43 41 54 45 2C 44 45 41 4C 4C 4F 43 41 54 45 OCATE,DEALLOCATE
010E70: 3B 0D 0A 46 52 4F 4D 09 54 65 72 6D 69 6E 61 6C ;..FROM.Terminal
010E80: 20 49 4D 50 4F 52 54 20 42 75 73 79 52 65 61 64 IMPORT BusyRead
010E90: 2C 57 72 69 74 65 53 74 72 69 6E 67 2C 57 72 69 ,WriteString,Wri
010EA0: 74 65 4C 6E 2C 57 72 69 74 65 3B 0D 0A 46 52 4F teLn,Write;..FRO
010EB0: 4D 09 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 M.Files IMPORT F
010EC0: 49 4C 45 2C 53 65 71 52 65 61 64 42 6C 6F 63 6B ILE,SeqReadBlock
010ED0: 2C 53 65 71 57 72 69 74 65 42 6C 6F 63 6B 2C 4C ,SeqWriteBlock,L
010EE0: 6F 6F 6B 75 70 2C 43 72 65 61 74 65 2C 43 6C 6F ookup,Create,Clo
010EF0: 73 65 3B 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D se;..FROM.SYSTEM
010F00: 20 49 4D 50 4F 52 54 20 41 44 52 2C 54 53 49 5A IMPORT ADR,TSIZ
010F10: 45 3B 0D 0A 46 52 4F 4D 09 45 64 69 74 44 69 73 E;..FROM.EditDis
010F20: 70 6C 61 79 20 49 4D 50 4F 52 54 20 45 72 72 6F play IMPORT Erro
010F30: 72 4D 65 73 73 61 67 65 3B 0D 0A 46 52 4F 4D 09 rMessage;..FROM.
010F40: 46 61 73 74 4D 6F 76 65 20 49 4D 50 4F 52 54 20 FastMove IMPORT
010F50: 4D 6F 76 65 75 70 3B 0D 0A 46 52 4F 4D 09 53 63 Moveup;..FROM.Sc
010F60: 72 65 65 6E 44 75 20 49 4D 50 4F 52 54 20 4F 75 reenDu IMPORT Ou
010F70: 74 70 75 74 54 6F 53 63 72 65 65 6E 3B 0D 0A 43 tputToScreen;..C
010F80: 4F 4E 53 54 09 42 6C 6F 63 6B 4C 65 6E 3D 31 32 ONST.BlockLen=12
010F90: 38 3B 0D 0A 09 45 53 43 3D 31 62 78 3B 0D 0A 54 8;...ESC=1bx;..T
010FA0: 59 50 45 0D 0A 09 4B 65 79 44 65 66 3D 52 45 43 YPE...KeyDef=REC
010FB0: 4F 52 44 0D 0A 09 09 4C 65 6E 67 74 68 3A 5B 31 ORD....Length:[1
010FC0: 2E 2E 36 31 5D 3B 0D 0A 09 09 43 6F 6D 6D 43 68 ..61];....CommCh
010FD0: 61 72 73 3A 41 52 52 41 59 5B 31 2E 2E 32 30 5D ars:ARRAY[1..20]
010FE0: 20 4F 46 20 43 48 41 52 3B 0D 0A 09 09 45 4E 44 OF CHAR;....END
010FF0: 3B 0D 0A 09 50 4B 65 79 44 65 66 3D 50 4F 49 4E ;...PKeyDef=POIN
011000: 6B 3B 09 28 2A 44 65 6C 20 2A 29 0D 0A 09 4D 61 k;.(*Del *)...Ma
011010: 69 6E 54 61 62 6C 65 5B 30 63 78 5D 3A 3D 44 6F inTable[0cx]:=Do
011020: 46 69 6E 64 3B 09 09 28 2A 43 74 72 6C 20 4C 2A Find;..(*Ctrl L*
011030: 29 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 31 66 78 )..MainTable[1fx
011040: 5D 3A 3D 44 65 6C 42 61 63 6B 3B 09 28 2A 5E 2D ]:=DelBack;.(*^-
011050: 20 6F 6E 20 4F 73 62 6F 72 6E 65 20 31 2A 29 0D on Osborne 1*).
011060: 0A 0D 0A 09 28 2A 09 54 68 65 20 6E 65 78 74 20 ....(*.The next
011070: 6B 65 79 2C 20 20 61 73 73 69 67 6E 65 64 20 74 key, assigned t
011080: 6F 20 45 6E 64 69 6E 74 65 72 70 72 65 74 20 69 o Endinterpret i
011090: 73 20 63 61 6C 6C 65 64 2C 0D 0A 09 09 27 4D 65 s called,....'Me
0110A0: 6E 75 27 20 69 6E 20 74 68 65 20 64 6F 63 75 6D nu' in the docum
0110B0: 65 6E 74 61 74 69 6F 6E 2E 20 54 68 61 74 20 69 entation. That i
0110C0: 73 2C 20 74 6F 20 70 72 6F 63 65 73 73 20 61 20 s, to process a
0110D0: 6D 65 6E 75 2C 0D 0A 09 09 77 65 20 64 72 6F 70 menu,....we drop
0110E0: 20 6F 75 74 20 6F 66 20 65 64 69 74 20 6D 6F 64 out of edit mod
0110F0: 65 2E 20 54 68 65 20 63 61 6C 6C 69 6E 67 20 72 e. The calling r
011100: 6F 75 74 69 6E 65 20 28 4D 65 29 20 74 68 65 20 outine (Me) the
011110: 63 61 6C 6C 73 0D 0A 09 09 74 68 65 20 6D 65 6E calls....the men
011120: 75 20 72 6F 75 74 69 6E 65 20 2D 20 6E 6F 74 20 u routine - not
011130: 74 68 69 73 20 6D 6F 64 75 6C 65 2A 29 0D 0A 0D this module*)...
011140: 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 30 66 78 5D ..MainTable[0fx]
011150: 3A 3D 45 6E 64 69 6E 74 65 72 70 72 65 74 3B 09 :=Endinterpret;.
011160: 28 2A 43 74 72 6C 20 4F 2A 29 0D 0A 09 45 4E 44 (*Ctrl O*)...END
011170: 20 4B 65 79 62 6F 61 72 64 2E 0D 0A 1A 1A 1A 1A Keyboard.......
011180: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011190: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0111A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0111B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0111C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0111D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0111E0: 1A 1A 1A 1A 1A 1A 1A 1A 44 4F 43 20 00 00 00 00 ........DOC ....
0111F0: 00 00 00 00 00 00 5B B6 4A 0D 58 0E 53 63 00 00 ......[.J.X.Sc..
011200: 54 45 52 20 54 4F 20 4B 65 79 44 65 66 3B 0D 0A TER TO KeyDef;..
011210: 09 4D 61 63 72 6F 50 6F 69 6E 74 3D 52 45 43 4F .MacroPoint=RECO
011220: 52 44 0D 0A 09 09 50 6F 73 3A 43 41 52 44 49 4E RD....Pos:CARDIN
011230: 41 4C 3B 0D 0A 09 09 44 65 66 3A 50 4B 65 79 44 AL;....Def:PKeyD
011240: 65 66 3B 0D 0A 09 09 43 6F 75 6E 74 3A 49 4E 54 ef;....Count:INT
011250: 45 47 45 52 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 EGER;....END;...
011260: 50 4B 65 79 43 68 61 69 6E 3D 50 4F 49 4E 54 45 PKeyChain=POINTE
011270: 52 20 54 4F 20 4B 65 79 43 68 61 69 6E 3B 0D 0A R TO KeyChain;..
011280: 09 4B 65 79 43 68 61 69 6E 3D 52 45 43 4F 52 44 .KeyChain=RECORD
011290: 0D 0A 09 09 63 68 3A 43 48 41 52 3B 0D 0A 09 09 ....ch:CHAR;....
0112A0: 4E 65 78 74 41 6C 74 3A 50 4B 65 79 43 68 61 69 NextAlt:PKeyChai
0112B0: 6E 3B 20 28 2A 6E 65 78 74 20 61 6C 74 65 72 6E n; (*next altern
0112C0: 61 74 69 76 65 2A 29 0D 0A 09 09 43 41 53 45 20 ative*)....CASE
0112D0: 54 65 72 6D 69 6E 61 74 6F 72 3A 42 4F 4F 4C 45 Terminator:BOOLE
0112E0: 41 4E 20 4F 46 0D 0A 09 09 09 54 52 55 45 3A 20 AN OF.....TRUE:
0112F0: 28 2A 74 65 72 6D 69 6E 61 74 65 73 20 61 20 6B (*terminates a k
011300: 65 79 20 73 65 71 75 65 6E 63 65 20 2A 29 0D 0A ey sequence *)..
011310: 09 09 09 09 44 65 66 3A 50 4B 65 79 44 65 66 7C ....Def:PKeyDef|
011320: 0D 0A 09 09 09 46 41 4C 53 45 3A 20 28 2A 69 6E .....FALSE: (*in
011330: 20 74 68 65 20 6D 6F 64 64 6C 65 20 6F 66 20 61 the moddle of a
011340: 20 6B 65 79 20 73 65 71 75 65 6E 63 65 20 2A 29 key sequence *)
011350: 0D 0A 09 09 09 09 4E 65 78 74 43 68 61 72 3A 50 ......NextChar:P
011360: 4B 65 79 43 68 61 69 6E 0D 0A 09 09 09 45 4E 44 KeyChain.....END
011370: 3B 20 28 2A 43 41 53 45 2A 29 0D 0A 09 09 45 4E ; (*CASE*)....EN
011380: 44 3B 28 2A 52 45 43 4F 52 44 2A 29 0D 0A 09 09 D;(*RECORD*)....
011390: 09 09 0D 0A 56 41 52 0D 0A 09 63 68 3A 43 48 41 ....VAR...ch:CHA
0113A0: 52 3B 0D 0A 09 43 6F 6D 6D 61 6E 64 73 3A 41 52 R;...Commands:AR
0113B0: 52 41 59 5B 27 40 27 2E 2E 27 5A 27 5D 20 4F 46 RAY['@'..'Z'] OF
0113C0: 20 50 4B 65 79 44 65 66 3B 0D 0A 09 4D 61 63 72 PKeyDef;...Macr
0113D0: 6F 44 65 70 74 68 3A 43 41 52 44 49 4E 41 4C 3D oDepth:CARDINAL=
0113E0: 30 3B 0D 0A 09 4D 61 63 72 6F 53 74 61 63 6B 3A 0;...MacroStack:
0113F0: 41 52 52 41 59 5B 31 2E 2E 35 5D 20 4F 46 20 4D ARRAY[1..5] OF M
011400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0114A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0114B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0114C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0114D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0114E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0114F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0115A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0115B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0115C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0115D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0115E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0115F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011600: 61 63 72 6F 50 6F 69 6E 74 3B 0D 0A 09 4C 65 61 acroPoint;...Lea
011610: 72 6E 63 68 3A 43 48 41 52 3B 0D 0A 09 4C 65 61 rnch:CHAR;...Lea
011620: 72 6E 4C 65 6E 3A 43 41 52 44 49 4E 41 4C 3B 0D rnLen:CARDINAL;.
011630: 0A 09 4C 65 61 72 6E 69 6E 67 3A 42 4F 4F 4C 45 ..Learning:BOOLE
011640: 41 4E 3D 46 41 4C 53 45 3B 0D 0A 09 54 65 78 74 AN=FALSE;...Text
011650: 3A 41 52 52 41 59 5B 31 2E 2E 36 30 5D 20 4F 46 :ARRAY[1..60] OF
011660: 20 43 48 41 52 3B 0D 0A 09 69 3A 43 41 52 44 49 CHAR;...i:CARDI
011670: 4E 41 4C 3B 0D 0A 09 4B 65 79 53 65 71 3A 41 52 NAL;...KeySeq:AR
011680: 52 41 59 5B 31 2E 2E 31 30 5D 20 4F 46 20 43 48 RAY[1..10] OF CH
011690: 41 52 3B 0D 0A 09 4B 65 79 43 68 61 69 6E 42 61 AR;...KeyChainBa
0116A0: 73 65 3A 50 4B 65 79 43 68 61 69 6E 3D 4E 49 4C se:PKeyChain=NIL
0116B0: 3B 09 28 2A 62 61 73 65 20 6F 66 20 74 61 62 6C ;.(*base of tabl
0116C0: 65 20 6F 66 20 6B 65 79 20 64 65 66 73 2A 29 0D e of key defs*).
0116D0: 0A 09 4C 61 73 74 4B 65 79 50 6F 73 2C 4B 65 79 ..LastKeyPos,Key
0116E0: 50 6F 73 3A 50 4B 65 79 43 68 61 69 6E 3B 09 28 Pos:PKeyChain;.(
0116F0: 2A 70 6F 69 6E 74 65 72 73 20 75 73 65 64 20 66 *pointers used f
011700: 6F 72 20 73 65 61 72 63 68 69 6E 67 2A 29 0D 0A or searching*)..
011710: 09 4C 65 61 72 6E 4B 65 79 3A 50 4B 65 79 43 68 .LearnKey:PKeyCh
011720: 61 69 6E 3B 09 09 28 2A 70 6F 69 6E 74 65 72 20 ain;..(*pointer
011730: 74 6F 20 6B 65 79 20 62 65 69 6E 67 20 64 65 66 to key being def
011740: 69 6E 65 64 2A 29 0D 0A 0D 0A 09 28 2A 09 6B 65 ined*).....(*.ke
011750: 65 70 20 61 20 63 69 72 63 75 6C 61 72 20 62 75 ep a circular bu
011760: 66 66 65 72 20 6F 66 20 63 68 61 72 61 63 74 65 ffer of characte
011770: 72 73 20 77 68 69 6C 65 20 6D 61 74 63 68 69 6E rs while matchin
011780: 67 20 69 73 0D 0A 09 09 68 61 70 70 65 6E 69 6E g is....happenin
011790: 67 2A 29 0D 0A 0D 0A 09 69 6E 3A 43 41 52 44 49 g*).....in:CARDI
0117A0: 4E 41 4C 3D 31 3B 0D 0A 09 6F 75 74 3A 43 41 52 NAL=1;...out:CAR
0117B0: 44 49 4E 41 4C 3D 31 3B 0D 0A 09 6C 6F 6F 6B 3A DINAL=1;...look:
0117C0: 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 42 75 66 66 CARDINAL;...Buff
0117D0: 65 72 3A 41 52 52 41 59 5B 31 2E 2E 31 31 5D 20 er:ARRAY[1..11]
0117E0: 4F 46 20 43 48 41 52 3B 09 0D 0A 09 53 68 6F 77 OF CHAR;....Show
0117F0: 43 68 61 6E 67 65 3A 42 4F 4F 4C 45 41 4E 3B 0D Change:BOOLEAN;.
011800: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
011810: 45 20 4D 61 63 72 6F 73 3B 0D 0A 0D 0A 28 2A 09 E Macros;....(*.
011820: 41 20 73 69 6D 70 6C 65 20 6D 61 63 72 6F 20 70 A simple macro p
011830: 72 6F 63 65 73 73 6F 72 20 66 6F 72 20 20 74 68 rocessor for th
011840: 65 20 65 64 69 74 6F 72 0D 0A 0D 0A 09 43 61 6E e editor.....Can
011850: 20 70 72 6F 62 61 62 6C 79 20 62 65 20 65 61 73 probably be eas
011860: 69 6C 79 20 68 61 63 6B 65 64 20 66 6F 72 20 6F ily hacked for o
011870: 74 68 65 72 20 70 75 72 70 6F 73 65 73 2A 29 0D ther purposes*).
011880: 0A 0D 0A 56 41 52 09 46 6F 75 6E 64 3A 42 4F 4F ...VAR.Found:BOO
011890: 4C 45 41 4E 3D 54 52 55 45 3B 0D 0A 0D 0A 28 2A LEAN=TRUE;....(*
0118A0: 09 46 6F 75 6E 64 20 69 73 20 61 20 76 61 72 69 .Found is a vari
0118B0: 61 62 6C 65 20 77 68 69 63 68 2C 20 69 66 20 73 able which, if s
0118C0: 65 74 20 74 6F 20 66 61 6C 73 65 2C 20 77 69 6C et to false, wil
0118D0: 6C 20 61 62 6F 72 74 20 61 6C 6C 0D 0A 09 6D 61 l abort all...ma
0118E0: 63 72 6F 73 20 2A 29 0D 0A 50 52 4F 43 45 44 55 cros *)..PROCEDU
0118F0: 52 45 20 4C 65 61 72 6E 4D 61 63 72 6F 3B 0D 0A RE LearnMacro;..
011900: 50 52 4F 43 45 44 55 52 45 20 44 65 66 4D 61 63 PROCEDURE DefMac
011910: 72 6F 3B 0D 0A 0D 0A 28 2A 09 64 65 66 69 6E 65 ro;....(*.define
011920: 20 61 20 6D 61 63 72 6F 20 2A 29 0D 0A 0D 0A 50 a macro *)....P
011930: 52 4F 43 45 44 55 52 45 20 52 65 61 64 41 43 68 ROCEDURE ReadACh
011940: 61 72 28 56 41 52 20 63 68 3A 43 48 41 52 29 3B ar(VAR ch:CHAR);
011950: 0D 0A 0D 0A 28 2A 09 72 65 61 64 20 6E 65 78 74 ....(*.read next
011960: 20 63 68 61 72 61 63 74 65 72 20 2D 20 66 72 6F character - fro
011970: 6D 20 6D 61 63 72 6F 20 69 66 20 6F 6E 65 20 61 m macro if one a
011980: 63 74 69 76 65 0D 0A 09 09 09 20 20 20 20 2D 20 ctive..... -
011990: 66 72 6F 6D 20 74 65 72 6D 69 6E 61 6C 20 69 66 from terminal if
0119A0: 20 6E 6F 74 09 2A 29 0D 0A 0D 0A 50 52 4F 43 45 not.*)....PROCE
0119B0: 44 55 52 45 20 4D 61 63 72 6F 28 63 68 3A 43 48 DURE Macro(ch:CH
0119C0: 41 52 3B 72 65 70 65 61 74 3A 49 4E 54 45 47 45 AR;repeat:INTEGE
0119D0: 52 29 3B 0D 0A 0D 0A 28 2A 09 73 74 61 72 74 20 R);....(*.start
0119E0: 6D 61 63 72 6F 20 77 69 74 68 20 67 69 76 65 6E macro with given
0119F0: 20 63 68 61 72 61 63 74 65 72 20 76 61 6C 75 65 character value
011A00: 0A 50 52 4F 43 45 44 55 52 45 20 53 65 61 72 63 .PROCEDURE Searc
011A10: 68 54 6F 4E 65 78 74 28 63 68 3A 43 48 41 52 29 hToNext(ch:CHAR)
011A20: 3B 0D 0A 0D 0A 28 2A 09 53 65 61 72 63 68 20 66 ;....(*.Search f
011A30: 6F 72 20 74 68 65 20 63 68 61 72 61 63 74 65 72 or the character
011A40: 20 63 68 0D 0A 0D 0A 09 4B 65 79 50 6F 73 20 70 ch.....KeyPos p
011A50: 6F 69 6E 74 73 20 74 6F 20 74 68 65 20 66 69 72 oints to the fir
011A60: 73 74 20 74 61 62 6C 65 20 20 74 6F 20 65 78 61 st table to exa
011A70: 6D 69 6E 65 0D 0A 09 66 6F 72 20 61 20 6D 61 74 mine...for a mat
011A80: 63 68 0D 0A 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 ch..*)..BEGIN...
011A90: 57 48 49 4C 45 20 28 4B 65 79 50 6F 73 3C 3E 4E WHILE (KeyPos<>N
011AA0: 49 4C 29 20 41 4E 44 20 28 4B 65 79 50 6F 73 5E IL) AND (KeyPos^
011AB0: 2E 63 68 3C 3E 63 68 29 20 44 4F 0D 0A 09 09 4B .ch<>ch) DO....K
011AC0: 65 79 50 6F 73 3A 3D 4B 65 79 50 6F 73 5E 2E 4E eyPos:=KeyPos^.N
011AD0: 65 78 74 41 6C 74 3B 0D 0A 09 09 45 4E 44 3B 0D extAlt;....END;.
011AE0: 0A 09 45 4E 44 20 53 65 61 72 63 68 54 6F 4E 65 ..END SearchToNe
011AF0: 78 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 xt;..PROCEDURE B
011B00: 75 69 6C 64 4B 65 79 53 65 71 3B 0D 0A 0D 0A 28 uildKeySeq;....(
011B10: 2A 09 45 6E 74 65 72 20 61 20 6B 65 79 20 73 65 *.Enter a key se
011B20: 71 75 65 6E 63 65 20 69 6E 74 6F 20 74 68 65 20 quence into the
011B30: 6B 65 79 20 73 65 71 75 65 6E 63 65 20 74 72 65 key sequence tre
011B40: 65 0D 0A 0D 0A 09 4F 6E 20 65 6E 74 72 79 2C 20 e.....On entry,
011B50: 4B 65 79 53 65 71 20 63 6F 6E 74 61 69 6E 73 20 KeySeq contains
011B60: 73 65 71 75 65 6E 63 65 20 74 6F 20 62 75 69 6C sequence to buil
011B70: 64 0D 0A 0D 0A 09 4F 6E 20 65 78 69 74 2C 20 4B d.....On exit, K
011B80: 65 79 50 6F 73 20 70 6F 69 6E 74 73 20 74 6F 20 eyPos points to
011B90: 65 6E 74 72 79 20 66 6F 72 20 6D 61 63 72 6F 20 entry for macro
011BA0: 70 6F 69 6E 74 65 72 2A 29 0D 0A 42 45 47 49 4E pointer*)..BEGIN
011BB0: 0D 0A 09 69 3A 3D 31 3B 0D 0A 09 4B 65 79 50 6F ...i:=1;...KeyPo
011BC0: 73 3A 3D 4B 65 79 43 68 61 69 6E 42 61 73 65 3B s:=KeyChainBase;
011BD0: 0D 0A 09 4C 61 73 74 4B 65 79 50 6F 73 3A 3D 4E ...LastKeyPos:=N
011BE0: 49 4C 3B 0D 0A 09 28 2A 20 46 69 72 73 74 20 73 IL;...(* First s
011BF0: 63 61 6E 20 64 6F 77 6E 20 63 6F 6D 6D 6F 6E 20 can down common
011C00: 0D 0A 09 28 6D 75 73 74 20 62 65 20 61 6C 70 68 ...(must be alph
011C10: 61 29 2A 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 a)*)..PROCEDURE
011C20: 53 74 6F 72 65 4D 61 63 72 6F 73 3B 0D 0A 50 52 StoreMacros;..PR
011C30: 4F 43 45 44 55 52 45 20 50 72 69 6E 74 4D 61 63 OCEDURE PrintMac
011C40: 72 6F 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 ros;..PROCEDURE
011C50: 43 68 65 63 6B 49 6E 74 65 72 72 75 70 74 28 29 CheckInterrupt()
011C60: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 45 4E 44 20 4D :BOOLEAN;..END M
011C70: 61 63 72 6F 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A acros...........
011C80: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011C90: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011CA0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011CB0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011CC0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011CD0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011CE0: 1A 1A 1A 1A 1A 30 30 20 4D 4F 44 20 00 00 00 00 .....00 MOD ....
011CF0: 00 00 00 00 00 00 9B 4C 01 0D D7 27 01 04 00 00 .......L...'....
011D00: 3B 0D 0A 09 45 4C 53 45 09 52 45 54 55 52 4E 20 ;...ELSE.RETURN
011D10: 30 20 45 4E 44 3B 0D 0A 09 45 4E 44 20 47 65 74 0 END;...END Get
011D20: 50 6F 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 50 52 4F Position;....PRO
011D30: 43 45 44 55 52 45 20 53 65 74 50 6F 73 69 74 69 CEDURE SetPositi
011D40: 6F 6E 28 46 6E 3A 46 49 4C 45 3B 50 6F 73 3A 43 on(Fn:FILE;Pos:C
011D50: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
011D60: 0D 0A 09 66 3A 3D 46 6E 3B 0D 0A 09 49 46 20 6F ...f:=Fn;...IF o
011D70: 70 65 6E 65 64 20 54 48 45 4E 0D 0A 09 09 53 65 pened THEN....Se
011D80: 61 72 63 68 3B 0D 0A 09 09 42 75 66 66 65 72 2E arch;....Buffer.
011D90: 46 69 6C 65 45 6E 74 72 79 5B 45 6E 74 72 79 4E FileEntry[EntryN
011DA0: 6F 5D 2E 46 69 6C 65 50 6F 73 3A 3D 50 6F 73 3B o].FilePos:=Pos;
011DB0: 0D 0A 09 09 57 72 69 74 65 46 69 6C 65 0D 0A 09 ....WriteFile...
011DC0: 09 45 4E 44 0D 0A 09 45 4E 44 20 53 65 74 50 6F .END...END SetPo
011DD0: 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 42 45 47 49 4E sition;....BEGIN
011DE0: 0D 0A 09 6F 70 65 6E 65 64 3A 3D 54 52 55 45 3B ...opened:=TRUE;
011DF0: 09 28 2A 61 73 73 75 6D 65 20 66 69 6C 65 20 63 .(*assume file c
011E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
011E10: 0F 00 01 00 02 09 52 E5 0F 00 C9 02 00 00 00 02 ......R.........
011E20: 0F 00 C5 02 00 00 00 02 0F 00 C1 02 00 00 00 02 ................
011E30: 0F 00 C6 02 00 00 00 02 0F 00 C2 02 00 00 00 02 ................
011E40: 0F 00 C7 02 00 00 00 02 0F 00 C3 02 00 00 00 02 ................
011E50: 0F 00 C8 02 00 00 00 02 0F 00 C4 02 00 00 00 02 ................
011E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011F00: 28 2A 09 4C 65 61 72 6E 20 61 20 6D 61 63 72 6F (*.Learn a macro
011F10: 20 64 65 66 69 6E 69 74 69 6F 6E 09 0D 0A 09 63 definition....c
011F20: 61 6C 6C 65 64 20 61 74 20 65 69 74 68 65 72 20 alled at either
011F30: 65 6E 64 20 6F 66 20 64 65 66 69 6E 69 74 69 6F end of definitio
011F40: 6E 2A 29 0D 0A 0D 0A 42 45 47 49 4E 0D 0A 09 49 n*)....BEGIN...I
011F50: 46 20 4E 4F 54 20 4C 65 61 72 6E 69 6E 67 20 54 F NOT Learning T
011F60: 48 45 4E 0D 0A 09 09 47 65 74 44 65 66 43 68 61 HEN....GetDefCha
011F70: 72 3B 0D 0A 09 09 4C 65 61 72 6E 69 6E 67 3A 3D r;....Learning:=
011F80: 54 52 55 45 3B 0D 0A 09 09 4C 65 61 72 6E 4C 65 TRUE;....LearnLe
011F90: 6E 3A 3D 30 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 n:=0;...ELSE....
011FA0: 4C 65 61 72 6E 4C 65 6E 3A 3D 4C 65 61 72 6E 4C LearnLen:=LearnL
011FB0: 65 6E 2D 32 3B 0D 0A 09 09 44 65 66 4D 61 63 72 en-2;....DefMacr
011FC0: 6F 54 65 78 74 3B 0D 0A 09 09 4C 65 61 72 6E 69 oText;....Learni
011FD0: 6E 67 3A 3D 46 41 4C 53 45 3B 0D 0A 09 09 45 4E ng:=FALSE;....EN
011FE0: 44 3B 0D 0A 09 45 4E 44 20 4C 65 61 72 6E 4D 61 D;...END LearnMa
011FF0: 63 72 6F 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 cro;..PROCEDURE
012000: 44 65 66 4D 61 63 72 6F 3B 0D 0A 42 45 47 49 4E DefMacro;..BEGIN
012010: 0D 0A 09 47 65 74 44 65 66 43 68 61 72 3B 0D 0A ...GetDefChar;..
012020: 09 49 46 20 28 4C 65 61 72 6E 63 68 3E 3D 27 41 .IF (Learnch>='A
012030: 27 29 20 41 4E 44 20 28 4C 65 61 72 6E 63 68 3C ') AND (Learnch<
012040: 3D 27 5A 27 29 20 4F 52 20 28 4C 65 61 72 6E 63 ='Z') OR (Learnc
012050: 68 3D 45 53 43 29 20 54 48 45 4E 0D 0A 09 09 47 h=ESC) THEN....G
012060: 65 74 53 74 72 69 6E 67 28 54 65 78 74 2C 4C 65 etString(Text,Le
012070: 61 72 6E 4C 65 6E 2C 27 4D 61 63 72 6F 3A 27 29 arnLen,'Macro:')
012080: 3B 0D 0A 09 09 44 65 66 4D 61 63 72 6F 54 65 78 ;....DefMacroTex
012090: 74 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 t;....END;...END
0120A0: 20 44 65 66 4D 61 63 72 6F 3B 0D 0A 50 52 4F 43 DefMacro;..PROC
0120B0: 45 44 55 52 45 20 4D 61 63 72 6F 28 63 68 3A 43 EDURE Macro(ch:C
0120C0: 48 41 52 3B 72 65 70 65 61 74 3A 49 4E 54 45 47 HAR;repeat:INTEG
0120D0: 45 52 29 3B 0D 0A 56 41 52 09 69 3A 43 41 52 44 ER);..VAR.i:CARD
0120E0: 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 63 INAL;..BEGIN...c
0120F0: 68 3A 3D 43 41 50 28 63 68 29 3B 0D 0A 09 49 46 h:=CAP(ch);...IF
012100: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 20 the characters
012110: 77 68 69 63 68 20 68 61 76 65 20 62 65 65 6E 20 which have been
012120: 72 65 61 64 20 61 68 65 61 64 0D 0A 09 42 79 20 read ahead...By
012130: 52 65 61 64 41 43 68 61 72 20 69 6E 20 61 6E 20 ReadAChar in an
012140: 61 74 74 65 6D 70 74 20 74 6F 20 72 65 73 6F 6C attempt to resol
012150: 76 65 20 61 20 6D 61 63 72 6F 0D 0A 0D 0A 09 57 ve a macro.....W
012160: 68 65 6E 20 52 65 61 64 41 43 68 61 72 20 69 73 hen ReadAChar is
012170: 20 65 6E 74 65 72 65 64 2C 20 69 66 20 74 68 69 entered, if thi
012180: 73 20 62 75 66 66 65 72 20 69 73 20 6E 6F 74 20 s buffer is not
012190: 65 6D 70 74 79 2C 0D 0A 09 74 68 65 20 66 69 72 empty,...the fir
0121A0: 73 74 20 63 68 61 72 61 63 74 65 72 20 69 73 20 st character is
0121B0: 74 6F 20 62 65 20 6C 6F 6F 6B 65 64 20 75 70 20 to be looked up
0121C0: 74 6F 20 73 65 65 20 69 66 20 69 74 20 69 73 20 to see if it is
0121D0: 61 20 0D 0A 09 73 74 61 72 74 20 6F 66 20 61 20 a ...start of a
0121E0: 6B 65 79 20 64 65 66 69 6E 69 74 69 6F 6E 2A 29 key definition*)
0121F0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 63 50 ..PROCEDURE IncP
012200: 6F 69 6E 74 65 72 28 56 41 52 20 69 3A 43 41 52 ointer(VAR i:CAR
012210: 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A DINAL);..BEGIN..
012220: 09 49 46 20 69 3D 48 49 47 48 28 42 75 66 66 65 .IF i=HIGH(Buffe
012230: 72 29 20 54 48 45 4E 20 69 3A 3D 30 20 45 4E 44 r) THEN i:=0 END
012240: 3B 0D 0A 09 49 4E 43 28 69 29 3B 0D 0A 09 45 4E ;...INC(i);...EN
012250: 44 20 49 6E 63 50 6F 69 6E 74 65 72 3B 0D 0A 42 D IncPointer;..B
012260: 45 47 49 4E 0D 0A 09 6C 6F 6F 6B 3A 3D 6F 75 74 EGIN...look:=out
012270: 3B 0D 0A 09 49 46 20 53 70 65 63 69 61 6C 53 65 ;...IF SpecialSe
012280: 71 75 65 6E 63 65 20 54 48 45 4E 20 0D 0A 0D 0A quence THEN ....
012290: 09 09 28 2A 20 40 20 69 73 20 75 73 65 64 20 66 ..(* @ is used f
0122A0: 6F 72 20 66 75 6E 63 74 69 6F 6E 2F 61 72 72 6F or function/arro
0122B0: 77 20 6B 65 79 73 20 61 73 20 61 20 6D 61 63 72 w keys as a macr
0122C0: 6F 0D 0A 09 09 20 20 20 73 6F 20 74 68 61 74 20 o.... so that
0122D0: 72 65 70 65 61 74 20 63 6F 75 6E 74 73 20 63 61 repeat counts ca
0122E0: 6E 20 73 74 69 6C 6C 20 62 65 20 75 73 65 64 2A n still be used*
0122F0: 29 0D 0A 0D 0A 09 09 52 65 73 75 6C 74 3A 3D 27 )......Result:='
012300: 43 68 61 72 3A 3D 4E 49 4C 3B 0D 0A 09 09 09 54 Char:=NIL;.....T
012310: 65 72 6D 69 6E 61 74 6F 72 3A 3D 46 41 4C 53 45 erminator:=FALSE
012320: 3B 0D 0A 09 09 09 49 46 20 4C 61 73 74 4B 65 79 ;.....IF LastKey
012330: 50 6F 73 3C 3E 4E 49 4C 20 54 48 45 4E 0D 0A 09 Pos<>NIL THEN...
012340: 09 09 09 4E 65 78 74 41 6C 74 3A 3D 4C 61 73 74 ...NextAlt:=Last
012350: 4B 65 79 50 6F 73 5E 2E 4E 65 78 74 43 68 61 72 KeyPos^.NextChar
012360: 3B 0D 0A 09 09 09 09 4C 61 73 74 4B 65 79 50 6F ;......LastKeyPo
012370: 73 5E 2E 4E 65 78 74 43 68 61 72 3A 3D 4B 65 79 s^.NextChar:=Key
012380: 50 6F 73 3B 0D 0A 09 09 09 45 4C 53 45 0D 0A 09 Pos;.....ELSE...
012390: 09 09 09 4E 65 78 74 41 6C 74 3A 3D 4B 65 79 43 ...NextAlt:=KeyC
0123A0: 68 61 69 6E 42 61 73 65 3B 0D 0A 09 09 09 09 4B hainBase;......K
0123B0: 65 79 43 68 61 69 6E 42 61 73 65 3A 3D 4B 65 79 eyChainBase:=Key
0123C0: 50 6F 73 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A Pos;......END;..
0123D0: 09 09 09 45 4E 44 3B 0D 0A 09 09 4C 61 73 74 4B ...END;....LastK
0123E0: 65 79 50 6F 73 3A 3D 4B 65 79 50 6F 73 3B 0D 0A eyPos:=KeyPos;..
0123F0: 09 09 49 4E 43 28 69 29 3B 0D 0A 09 09 45 4E 44 ..INC(i);....END
012400: 3B 0D 0A 09 4C 65 61 72 6E 4B 65 79 3A 3D 4B 65 ;...LearnKey:=Ke
012410: 79 50 6F 73 3B 0D 0A 09 45 4E 44 20 42 75 69 6C yPos;...END Buil
012420: 64 4B 65 79 53 65 71 3B 20 0D 0A 0D 0A 50 52 4F dKeySeq; ....PRO
012430: 43 45 44 55 52 45 20 57 61 69 74 46 6F 72 43 68 CEDURE WaitForCh
012440: 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 4E 4F ;..BEGIN...IF NO
012450: 54 20 53 68 6F 77 43 68 61 6E 67 65 20 54 48 45 T ShowChange THE
012460: 4E 0D 0A 09 09 53 68 6F 77 43 68 61 6E 67 65 3A N....ShowChange:
012470: 3D 54 52 55 45 3B 0D 0A 09 09 4F 75 74 70 75 74 =TRUE;....Output
012480: 54 6F 53 63 72 65 65 6E 28 54 52 55 45 29 3B 0D ToScreen(TRUE);.
012490: 0A 09 09 52 65 64 69 73 70 6C 61 79 3B 0D 0A 09 ...Redisplay;...
0124A0: 09 45 4E 44 3B 0D 0A 09 52 45 50 45 41 54 0D 0A .END;...REPEAT..
0124B0: 09 09 42 75 73 79 52 65 61 64 28 63 68 29 3B 0D ..BusyRead(ch);.
0124C0: 0A 09 09 55 4E 54 49 4C 20 63 68 3C 3E 30 78 3B ...UNTIL ch<>0x;
0124D0: 0D 0A 09 45 4E 44 20 57 61 69 74 46 6F 72 43 68 ...END WaitForCh
0124E0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 65 ;..PROCEDURE Che
0124F0: 63 6B 49 6E 74 65 72 72 75 70 74 28 29 3A 42 4F ckInterrupt():BO
012500: 40 27 3B 0D 0A 09 09 53 70 65 63 69 61 6C 53 65 @';....SpecialSe
012510: 71 75 65 6E 63 65 3A 3D 46 41 4C 53 45 3B 0D 0A quence:=FALSE;..
012520: 09 09 52 45 54 55 52 4E 0D 0A 09 09 45 4E 44 3B ..RETURN....END;
012530: 0D 0A 09 4B 65 79 50 6F 73 3A 3D 4B 65 79 43 68 ...KeyPos:=KeyCh
012540: 61 69 6E 42 61 73 65 3B 0D 0A 09 4C 4F 4F 50 0D ainBase;...LOOP.
012550: 0A 09 09 49 46 20 69 6E 3C 3E 6C 6F 6F 6B 20 54 ...IF in<>look T
012560: 48 45 4E 0D 0A 09 09 09 52 65 73 75 6C 74 3A 3D HEN.....Result:=
012570: 42 75 66 66 65 72 5B 6C 6F 6F 6B 5D 3B 0D 0A 09 Buffer[look];...
012580: 09 09 49 6E 63 50 6F 69 6E 74 65 72 28 6C 6F 6F ..IncPointer(loo
012590: 6B 29 3B 0D 0A 09 09 45 4C 53 45 0D 0A 09 09 09 k);....ELSE.....
0125A0: 47 65 74 41 43 68 61 72 28 52 65 73 75 6C 74 29 GetAChar(Result)
0125B0: 3B 0D 0A 09 09 09 42 75 66 66 65 72 5B 69 6E 5D ;.....Buffer[in]
0125C0: 3A 3D 52 65 73 75 6C 74 3B 0D 0A 09 09 09 49 6E :=Result;.....In
0125D0: 63 50 6F 69 6E 74 65 72 28 69 6E 29 3B 0D 0A 09 cPointer(in);...
0125E0: 09 09 6C 6F 6F 6B 3A 3D 69 6E 3B 0D 0A 09 09 09 ..look:=in;.....
0125F0: 45 4E 44 3B 0D 0A 09 09 53 65 61 72 63 68 54 6F END;....SearchTo
012600: 4E 65 78 74 28 52 65 73 75 6C 74 29 3B 0D 0A 09 Next(Result);...
012610: 09 49 46 20 4B 65 79 50 6F 73 3D 4E 49 4C 20 54 .IF KeyPos=NIL T
012620: 48 45 4E 0D 0A 09 09 09 52 65 73 75 6C 74 3A 3D HEN.....Result:=
012630: 42 75 66 66 65 72 5B 6F 75 74 5D 3B 0D 0A 09 09 Buffer[out];....
012640: 09 49 6E 63 50 6F 69 6E 74 65 72 28 6F 75 74 29 .IncPointer(out)
012650: 3B 0D 0A 09 09 09 52 45 54 55 52 4E 0D 0A 09 09 ;.....RETURN....
012660: 09 45 4E 44 3B 0D 0A 09 09 57 49 54 48 20 4B 65 .END;....WITH Ke
012670: 79 50 6F 73 5E 20 44 4F 0D 0A 09 09 09 49 46 20 yPos^ DO.....IF
012680: 54 65 72 6D 69 6E 61 74 6F 72 20 54 48 45 4E 0D Terminator THEN.
012690: 0A 09 09 09 09 6F 75 74 3A 3D 6C 6F 6F 6B 3B 0D .....out:=look;.
0126A0: 0A 09 09 09 09 69 6E 3A 3D 6C 6F 6F 6B 3B 0D 0A .....in:=look;..
0126B0: 0D 0A 09 09 09 09 28 2A 20 77 65 20 63 6F 75 6C ......(* we coul
0126C0: 64 20 61 64 64 20 74 68 65 20 6D 61 63 72 6F 20 d add the macro
0126D0: 0D 0A 09 09 09 09 64 69 72 65 63 74 6C 79 20 61 ......directly a
0126E0: 74 20 74 68 69 73 20 70 6F 69 6E 74 20 28 74 68 t this point (th
0126F0: 65 20 66 69 72 73 74 0D 0A 09 09 09 09 76 65 72 e first......ver
012700: 4F 4C 45 41 4E 3B 0D 0A 0D 0A 28 2A 09 43 68 65 OLEAN;....(*.Che
012710: 63 6B 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 ck the keyboard
012720: 66 6F 72 20 61 6E 20 69 6E 74 65 72 75 70 74 20 for an interupt
012730: 28 43 6F 6E 74 72 6F 6C 20 55 29 0D 0A 0D 0A 09 (Control U).....
012740: 41 6C 73 6F 2C 20 69 66 20 45 73 63 61 70 65 20 Also, if Escape
012750: 68 61 73 20 62 65 65 6E 20 74 79 70 65 64 2C 20 has been typed,
012760: 73 74 6F 70 20 74 65 72 6D 69 6E 61 6C 20 6F 75 stop terminal ou
012770: 74 70 75 74 0D 0A 09 75 6E 74 69 6C 20 61 6E 6F tput...until ano
012780: 74 68 65 72 20 63 68 61 72 61 63 74 65 72 20 69 ther character i
012790: 73 20 74 79 70 65 64 2A 29 0D 0A 0D 0A 56 41 52 s typed*)....VAR
0127A0: 09 63 68 31 3A 43 48 41 52 3B 0D 0A 42 45 47 49 .ch1:CHAR;..BEGI
0127B0: 4E 0D 0A 09 42 75 73 79 52 65 61 64 28 63 68 31 N...BusyRead(ch1
0127C0: 29 3B 0D 0A 09 43 41 53 45 20 63 68 31 20 4F 46 );...CASE ch1 OF
0127D0: 20 0D 0A 09 09 31 35 78 3A 52 45 54 55 52 4E 20 ....15x:RETURN
0127E0: 54 52 55 45 0D 0A 09 09 20 20 20 20 7C 0D 0A 09 TRUE.... |...
0127F0: 09 31 62 78 3A 53 68 6F 77 43 68 61 6E 67 65 3A .1bx:ShowChange:
012800: 3D 46 41 4C 53 45 3B 0D 0A 09 09 20 20 20 20 4F =FALSE;.... O
012810: 75 74 70 75 74 54 6F 53 63 72 65 65 6E 28 46 41 utputToScreen(FA
012820: 4C 53 45 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 LSE);....END;...
012830: 52 45 54 55 52 4E 20 46 41 4C 53 45 0D 0A 09 45 RETURN FALSE...E
012840: 4E 44 20 43 68 65 63 6B 49 6E 74 65 72 72 75 70 ND CheckInterrup
012850: 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 t;..PROCEDURE Ge
012860: 74 41 43 68 61 72 28 56 41 52 20 63 68 31 3A 43 tAChar(VAR ch1:C
012870: 48 41 52 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 HAR);..BEGIN...I
012880: 46 20 4D 61 63 72 6F 44 65 70 74 68 3D 30 20 54 F MacroDepth=0 T
012890: 48 45 4E 0D 0A 09 09 57 61 69 74 46 6F 72 43 68 HEN....WaitForCh
0128A0: 3B 0D 0A 09 09 63 68 31 3A 3D 63 68 3B 0D 0A 09 ;....ch1:=ch;...
0128B0: 09 49 46 20 4C 65 61 72 6E 69 6E 67 20 41 4E 44 .IF Learning AND
0128C0: 20 28 4C 65 61 72 6E 4C 65 6E 3C 48 49 47 48 28 (LearnLen<HIGH(
0128D0: 54 65 78 74 29 29 20 54 48 45 4E 0D 0A 09 09 09 Text)) THEN.....
0128E0: 49 4E 43 28 4C 65 61 72 6E 4C 65 6E 29 3B 0D 0A INC(LearnLen);..
0128F0: 09 09 09 54 65 78 74 5B 4C 65 61 72 6E 4C 65 6E ...Text[LearnLen
012900: 73 69 6F 6E 20 64 69 64 20 73 6F 29 2C 20 62 75 sion did so), bu
012910: 74 20 74 68 61 74 20 77 6F 75 6C 64 20 70 72 65 t that would pre
012920: 76 65 6E 74 20 74 68 65 0D 0A 09 09 09 09 75 73 vent the......us
012930: 65 20 6F 66 20 72 65 70 65 61 74 20 63 6F 75 6E e of repeat coun
012940: 74 73 20 77 69 74 68 20 66 75 6E 63 74 69 6F 6E ts with function
012950: 2F 61 72 72 6F 77 0D 0A 09 09 09 09 6B 65 79 73 /arrow......keys
012960: 2E 20 53 6F 20 69 6E 73 74 65 61 64 20 45 53 43 . So instead ESC
012970: 20 40 20 69 73 20 72 65 74 75 72 6E 65 64 2C 20 @ is returned,
012980: 77 68 65 72 65 0D 0A 09 09 09 09 45 53 43 20 40 where......ESC @
012990: 20 69 73 20 61 6C 77 61 79 73 20 74 68 65 20 6D is always the m
0129A0: 61 63 72 6F 20 77 65 20 6A 75 73 74 20 66 6F 75 acro we just fou
0129B0: 6E 64 2A 29 0D 0A 0D 0A 09 09 09 09 43 6F 6D 6D nd*)........Comm
0129C0: 61 6E 64 73 5B 27 40 27 5D 3A 3D 44 65 66 3B 0D ands['@']:=Def;.
0129D0: 0A 09 09 09 09 53 70 65 63 69 61 6C 53 65 71 75 .....SpecialSequ
0129E0: 65 6E 63 65 3A 3D 54 52 55 45 3B 0D 0A 09 09 09 ence:=TRUE;.....
0129F0: 09 52 65 73 75 6C 74 3A 3D 45 53 43 3B 0D 0A 09 .Result:=ESC;...
012A00: 09 09 0D 0A 09 09 09 09 52 45 54 55 52 4E 3B 0D ........RETURN;.
012A10: 0A 09 09 09 45 4C 53 45 0D 0A 09 09 09 09 4B 65 ....ELSE......Ke
012A20: 79 50 6F 73 3A 3D 4E 65 78 74 43 68 61 72 3B 0D yPos:=NextChar;.
012A30: 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E .....END;.....EN
012A40: 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 D;....END;...END
012A50: 20 52 65 61 64 41 43 68 61 72 3B 0D 0A 09 09 09 ReadAChar;.....
012A60: 09 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 ....PROCEDURE Ge
012A70: 74 44 65 66 43 68 61 72 3B 0D 0A 56 41 52 09 54 tDefChar;..VAR.T
012A80: 65 78 74 3A 41 52 52 41 59 5B 31 2E 2E 31 5D 20 ext:ARRAY[1..1]
012A90: 4F 46 20 43 48 41 52 3B 0D 0A 42 45 47 49 4E 0D OF CHAR;..BEGIN.
012AA0: 0A 09 47 65 74 53 74 72 69 6E 67 28 54 65 78 74 ..GetString(Text
012AB0: 2C 4C 65 61 72 6E 4C 65 6E 2C 27 43 68 61 72 20 ,LearnLen,'Char
012AC0: 74 6F 20 64 65 66 69 6E 65 3A 27 29 3B 0D 0A 09 to define:');...
012AD0: 4C 65 61 72 6E 63 68 3A 3D 43 41 50 28 54 65 78 Learnch:=CAP(Tex
012AE0: 74 5B 31 5D 29 3B 0D 0A 09 49 46 20 4C 65 61 72 t[1]);...IF Lear
012AF0: 6E 63 68 3D 45 53 43 20 54 48 45 4E 0D 0A 09 09 nch=ESC THEN....
012B00: 5D 3A 3D 63 68 3B 0D 0A 09 09 09 45 4E 44 3B 0D ]:=ch;.....END;.
012B10: 0A 09 45 4C 53 45 0D 0A 09 09 57 49 54 48 20 4D ..ELSE....WITH M
012B20: 61 63 72 6F 53 74 61 63 6B 5B 4D 61 63 72 6F 44 acroStack[MacroD
012B30: 65 70 74 68 5D 20 44 4F 0D 0A 09 09 09 49 46 20 epth] DO.....IF
012B40: 50 6F 73 3E 44 65 66 5E 2E 4C 65 6E 67 74 68 20 Pos>Def^.Length
012B50: 54 48 45 4E 0D 0A 09 09 09 20 20 20 20 44 45 43 THEN..... DEC
012B60: 28 43 6F 75 6E 74 29 3B 0D 0A 09 09 09 20 20 20 (Count);.....
012B70: 20 49 46 20 43 68 65 63 6B 49 6E 74 65 72 72 75 IF CheckInterru
012B80: 70 74 28 29 20 4F 52 20 4E 4F 54 20 46 6F 75 6E pt() OR NOT Foun
012B90: 64 20 54 48 45 4E 0D 0A 09 09 09 09 4D 61 63 72 d THEN......Macr
012BA0: 6F 44 65 70 74 68 3A 3D 31 3B 0D 0A 09 09 09 09 oDepth:=1;......
012BB0: 43 6F 75 6E 74 3A 3D 30 3B 0D 0A 09 09 09 09 45 Count:=0;......E
012BC0: 4E 44 3B 0D 0A 09 09 09 20 20 20 20 49 46 20 43 ND;..... IF C
012BD0: 6F 75 6E 74 3C 31 20 54 48 45 4E 0D 0A 09 09 09 ount<1 THEN.....
012BE0: 09 44 45 43 28 4D 61 63 72 6F 44 65 70 74 68 29 .DEC(MacroDepth)
012BF0: 3B 0D 0A 09 09 09 20 20 20 20 45 4C 53 45 0D 0A ;..... ELSE..
012C00: 09 09 09 09 50 6F 73 3A 3D 31 3B 0D 0A 09 09 09 ....Pos:=1;.....
012C10: 09 45 4E 44 3B 0D 0A 09 09 09 20 20 20 20 47 65 .END;..... Ge
012C20: 74 41 43 68 61 72 28 63 68 31 29 3B 0D 0A 09 09 tAChar(ch1);....
012C30: 09 45 4C 53 45 0D 0A 09 09 09 09 63 68 31 3A 3D .ELSE......ch1:=
012C40: 44 65 66 5E 2E 43 6F 6D 6D 43 68 61 72 73 5B 50 Def^.CommChars[P
012C50: 6F 73 5D 3B 0D 0A 09 09 09 09 49 4E 43 28 50 6F os];......INC(Po
012C60: 73 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 s);......END;...
012C70: 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A ..END;....END;..
012C80: 09 45 4E 44 20 47 65 74 41 43 68 61 72 3B 0D 0A .END GetAChar;..
012C90: 50 52 4F 43 45 44 55 52 45 20 41 64 64 4D 61 63 PROCEDURE AddMac
012CA0: 72 6F 28 70 3A 50 4B 65 79 44 65 66 3B 72 65 70 ro(p:PKeyDef;rep
012CB0: 65 61 74 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 42 eat:INTEGER);..B
012CC0: 45 47 49 4E 0D 0A 09 49 46 20 28 70 3C 3E 4E 49 EGIN...IF (p<>NI
012CD0: 4C 29 20 41 4E 44 20 28 4D 61 63 72 6F 44 65 70 L) AND (MacroDep
012CE0: 74 68 3C 3D 48 49 47 48 28 4D 61 63 72 6F 53 74 th<=HIGH(MacroSt
012CF0: 61 63 6B 29 29 20 54 48 45 4E 0D 0A 0D 0A 09 09 ack)) THEN......
012D00: 47 65 74 53 74 72 69 6E 67 28 4B 65 79 53 65 71 GetString(KeySeq
012D10: 2C 4C 65 61 72 6E 4C 65 6E 2C 27 4B 65 79 20 74 ,LearnLen,'Key t
012D20: 6F 20 64 65 66 69 6E 65 3A 27 29 3B 0D 0A 09 09 o define:');....
012D30: 42 75 69 6C 64 4B 65 79 53 65 71 3B 0D 0A 09 09 BuildKeySeq;....
012D40: 45 4E 44 3B 0D 0A 09 45 4E 44 20 47 65 74 44 65 END;...END GetDe
012D50: 66 43 68 61 72 3B 0D 0A 50 52 4F 43 45 44 55 52 fChar;..PROCEDUR
012D60: 45 20 44 65 66 4D 61 63 72 6F 54 65 78 74 3B 0D E DefMacroText;.
012D70: 0A 56 41 52 09 70 3A 50 4B 65 79 44 65 66 3B 0D .VAR.p:PKeyDef;.
012D80: 0A 42 45 47 49 4E 0D 0A 09 49 46 20 4C 65 61 72 .BEGIN...IF Lear
012D90: 6E 4C 65 6E 3E 30 20 54 48 45 4E 0D 0A 09 09 41 nLen>0 THEN....A
012DA0: 4C 4C 4F 43 41 54 45 28 70 2C 54 53 49 5A 45 28 LLOCATE(p,TSIZE(
012DB0: 43 41 52 44 49 4E 41 4C 29 2B 4C 65 61 72 6E 4C CARDINAL)+LearnL
012DC0: 65 6E 29 3B 0D 0A 09 09 49 46 20 4C 65 61 72 6E en);....IF Learn
012DD0: 63 68 3D 45 53 43 20 54 48 45 4E 20 0D 0A 09 09 ch=ESC THEN ....
012DE0: 09 4C 65 61 72 6E 4B 65 79 5E 2E 44 65 66 3A 3D .LearnKey^.Def:=
012DF0: 70 3B 0D 0A 09 09 09 4C 65 61 72 6E 4B 65 79 5E p;.....LearnKey^
012E00: 2E 54 65 72 6D 69 6E 61 74 6F 72 3A 3D 54 52 55 .Terminator:=TRU
012E10: 45 0D 0A 09 09 45 4C 53 45 20 0D 0A 09 09 09 43 E....ELSE .....C
012E20: 6F 6D 6D 61 6E 64 73 5B 4C 65 61 72 6E 63 68 5D ommands[Learnch]
012E30: 3A 3D 70 20 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 :=p .....END;...
012E40: 09 57 49 54 48 20 70 5E 20 44 4F 0D 0A 09 09 09 .WITH p^ DO.....
012E50: 4C 65 6E 67 74 68 3A 3D 4C 65 61 72 6E 4C 65 6E Length:=LearnLen
012E60: 3B 0D 0A 09 09 09 46 4F 52 20 4C 65 61 72 6E 4C ;.....FOR LearnL
012E70: 65 6E 3A 3D 4C 65 61 72 6E 4C 65 6E 20 54 4F 20 en:=LearnLen TO
012E80: 31 20 42 59 20 2D 31 20 44 4F 0D 0A 09 09 09 09 1 BY -1 DO......
012E90: 43 6F 6D 6D 43 68 61 72 73 5B 4C 65 61 72 6E 4C CommChars[LearnL
012EA0: 65 6E 5D 3A 3D 54 65 78 74 5B 4C 65 61 72 6E 4C en]:=Text[LearnL
012EB0: 65 6E 5D 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A en];......END;..
012EC0: 09 09 09 45 4E 44 3B 0D 0A 0D 0A 09 09 45 4E 44 ...END;......END
012ED0: 3B 0D 0A 09 45 4E 44 20 44 65 66 4D 61 63 72 6F ;...END DefMacro
012EE0: 54 65 78 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 Text;..PROCEDURE
012EF0: 20 4C 65 61 72 6E 4D 61 63 72 6F 3B 0D 0A 0D 0A LearnMacro;....
012F00: 28 2A 6D 61 6B 65 20 73 75 72 65 20 74 68 61 74 (*make sure that
012F10: 20 6D 61 63 72 6F 20 69 73 20 6E 6F 74 20 72 65 macro is not re
012F20: 63 75 72 73 69 76 65 2A 29 0D 0A 0D 0A 0D 0A 09 cursive*).......
012F30: 09 46 4F 52 20 69 3A 3D 31 20 54 4F 20 4D 61 63 .FOR i:=1 TO Mac
012F40: 72 6F 44 65 70 74 68 20 44 4F 0D 0A 09 09 09 49 roDepth DO.....I
012F50: 46 20 4D 61 63 72 6F 53 74 61 63 6B 5B 69 5D 2E F MacroStack[i].
012F60: 44 65 66 3D 70 20 54 48 45 4E 0D 0A 09 09 09 09 Def=p THEN......
012F70: 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 52 65 ErrorMessage('Re
012F80: 63 75 72 73 69 76 65 20 6D 61 63 72 6F 73 21 27 cursive macros!'
012F90: 2C 27 20 27 29 3B 0D 0A 09 09 09 09 4D 61 63 72 ,' ');......Macr
012FA0: 6F 44 65 70 74 68 3A 3D 30 3B 0D 0A 09 09 09 09 oDepth:=0;......
012FB0: 52 45 54 55 52 4E 3B 0D 0A 09 09 09 09 45 4E 44 RETURN;......END
012FC0: 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 49 4E ;.....END;....IN
012FD0: 43 28 4D 61 63 72 6F 44 65 70 74 68 29 3B 0D 0A C(MacroDepth);..
012FE0: 09 09 57 49 54 48 20 4D 61 63 72 6F 53 74 61 63 ..WITH MacroStac
012FF0: 6B 5B 4D 61 63 72 6F 44 65 70 74 68 5D 20 44 4F k[MacroDepth] DO
013000: 0D 0A 09 09 09 50 6F 73 3A 3D 31 3B 0D 0A 09 09 .....Pos:=1;....
013010: 09 44 65 66 3A 3D 70 3B 0D 0A 09 09 09 43 6F 75 .Def:=p;.....Cou
013020: 6E 74 3A 3D 72 65 70 65 61 74 3B 0D 0A 09 09 09 nt:=repeat;.....
013030: 45 4E 44 3B 28 2A 57 49 54 48 2A 29 0D 0A 09 09 END;(*WITH*)....
013040: 45 4E 44 3B 28 2A 70 3C 3E 4E 49 4C 20 65 74 63 END;(*p<>NIL etc
013050: 2A 29 0D 0A 09 45 4E 44 20 41 64 64 4D 61 63 72 *)...END AddMacr
013060: 6F 3B 0D 0A 56 41 52 09 53 70 65 63 69 61 6C 53 o;..VAR.SpecialS
013070: 65 71 75 65 6E 63 65 3A 42 4F 4F 4C 45 41 4E 3D equence:BOOLEAN=
013080: 46 41 4C 53 45 3B 0D 0A 50 52 4F 43 45 44 55 52 FALSE;..PROCEDUR
013090: 45 20 52 65 61 64 41 43 68 61 72 28 56 41 52 20 E ReadAChar(VAR
0130A0: 52 65 73 75 6C 74 3A 43 48 41 52 29 3B 0D 0A 0D Result:CHAR);...
0130B0: 0A 28 2A 09 72 65 61 64 20 6E 65 78 74 20 63 68 .(*.read next ch
0130C0: 61 72 61 63 74 65 72 2C 20 63 68 65 63 6B 69 6E aracter, checkin
0130D0: 67 20 66 6F 72 20 61 72 72 6F 77 73 2F 66 75 6E g for arrows/fun
0130E0: 63 74 69 6F 6E 20 6B 65 79 73 0D 0A 09 69 6E 20 ction keys...in
0130F0: 61 6E 64 20 6F 75 74 20 70 6F 69 6E 74 20 74 6F and out point to
013100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
013110: 10 00 01 00 02 09 52 E5 10 00 C9 02 00 00 00 02 ......R.........
013120: 10 00 C5 02 00 00 00 02 10 00 C1 02 00 00 00 02 ................
013130: 10 00 C6 02 00 00 00 02 10 00 C2 02 00 00 00 02 ................
013140: 10 00 C7 02 00 00 00 02 10 00 C3 02 00 00 00 02 ................
013150: 10 00 C8 02 00 00 00 02 10 00 C4 02 00 00 00 02 ................
013160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013200: 73 20 61 20 6C 61 62 65 6C 0D 0A 09 54 68 69 73 s a label...This
013210: 20 6C 61 62 65 6C 20 6D 75 73 74 20 6E 6F 74 20 label must not
013220: 62 65 20 61 6C 74 65 72 65 64 20 75 6E 6C 65 73 be altered unles
013230: 73 20 69 74 20 69 73 20 64 65 6C 65 74 65 64 0D s it is deleted.
013240: 0A 09 77 69 74 68 20 44 65 6C 50 6F 73 69 74 69 ..with DelPositi
013250: 6F 6E 20 66 69 72 73 74 2A 29 0D 0A 0D 0A 50 52 on first*)....PR
013260: 4F 43 45 44 55 52 45 20 4C 61 62 65 6C 4F 70 28 OCEDURE LabelOp(
013270: 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 44 VAR f:EditFile;D
013280: 65 66 69 6E 65 3A 42 4F 4F 4C 45 41 4E 3B 63 68 efine:BOOLEAN;ch
013290: 3A 43 48 41 52 29 3A 42 4F 4F 4C 45 41 4E 3B 0D :CHAR):BOOLEAN;.
0132A0: 0A 0D 0A 28 2A 09 44 65 66 69 6E 65 20 6F 72 20 ...(*.Define or
0132B0: 73 65 74 20 61 20 6C 61 62 65 6C 0D 0A 09 63 68 set a label...ch
0132C0: 20 69 73 20 61 20 63 68 61 72 61 63 74 65 72 20 is a character
0132D0: 66 72 6F 6D 20 74 68 65 20 73 65 74 20 30 2E 2E from the set 0..
0132E0: 39 2C 42 2C 4B 0D 0A 2A 29 0D 0A 0D 0A 50 52 4F 9,B,K..*)....PRO
0132F0: 43 45 44 55 52 45 20 44 65 6C 43 68 61 72 73 28 CEDURE DelChars(
013300: 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 6E VAR f:EditFile;n
013310: 75 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 3B 0D umber:INTEGER);.
013320: 0A 0D 0A 28 2A 09 64 65 6C 65 74 65 20 61 20 6E ...(*.delete a n
013330: 75 6D 62 65 72 20 6F 66 20 63 68 61 72 61 63 74 umber of charact
013340: 65 72 73 0D 0A 09 69 66 20 6E 75 6D 62 65 72 20 ers...if number
013350: 69 73 20 3C 30 2C 20 69 74 20 68 61 73 20 74 68 is <0, it has th
013360: 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 6D 65 61 6E e following mean
013370: 69 6E 67 73 3A 0D 0A 09 2D 31 20 64 65 6C 65 74 ings:...-1 delet
013380: 65 20 74 6F 20 65 6E 64 20 6F 66 20 6C 69 6E 65 e to end of line
013390: 0D 0A 09 2D 32 20 64 65 6C 65 74 65 20 65 6E 74 ...-2 delete ent
0133A0: 69 72 65 20 6C 69 6E 65 0D 0A 09 2D 33 20 64 65 ire line...-3 de
0133B0: 6C 65 74 65 20 72 65 6D 61 69 6E 64 65 72 20 6F lete remainder o
0133C0: 66 20 66 69 6C 65 2A 29 0D 0A 50 52 4F 43 45 44 f file*)..PROCED
0133D0: 55 52 45 20 49 6E 73 43 68 61 72 73 28 56 41 52 URE InsChars(VAR
0133E0: 20 66 3A 45 64 69 74 46 69 6C 65 3B 56 41 52 20 f:EditFile;VAR
0133F0: 53 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 3B S:ARRAY OF CHAR;
013400: 29 0D 0A 0D 0A 09 4C 65 61 72 6E 63 68 3A 3D 45 ).....Learnch:=E
013410: 53 43 3B 0D 0A 09 4B 65 79 53 65 71 3A 3D 27 20 SC;...KeySeq:='
013420: 20 20 20 20 20 20 20 20 20 27 3B 0D 0A 09 4F 75 ';...Ou
013430: 74 4B 65 79 53 65 71 28 31 2C 4B 65 79 43 68 61 tKeySeq(1,KeyCha
013440: 69 6E 42 61 73 65 29 3B 0D 0A 09 0D 0A 09 49 46 inBase);......IF
013450: 20 72 65 70 6C 79 3C 3E 30 20 54 48 45 4E 0D 0A reply<>0 THEN..
013460: 09 09 42 6C 6F 63 6B 5B 72 65 70 6C 79 5D 3A 3D ..Block[reply]:=
013470: 30 78 3B 0D 0A 09 09 53 65 71 57 72 69 74 65 42 0x;....SeqWriteB
013480: 6C 6F 63 6B 28 46 2C 41 44 52 28 42 6C 6F 63 6B lock(F,ADR(Block
013490: 29 2C 42 6C 6F 63 6B 4C 65 6E 2C 72 65 70 6C 79 ),BlockLen,reply
0134A0: 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 43 6C 6F );....END;...Clo
0134B0: 73 65 28 46 29 3B 0D 0A 09 45 4E 44 20 53 74 6F se(F);...END Sto
0134C0: 72 65 4D 61 63 72 6F 73 3B 0D 0A 50 52 4F 43 45 reMacros;..PROCE
0134D0: 44 55 52 45 20 4F 75 74 43 68 28 63 68 3A 43 48 DURE OutCh(ch:CH
0134E0: 41 52 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 AR);..BEGIN...IF
0134F0: 20 63 68 3C 27 20 27 20 54 48 45 4E 0D 0A 09 09 ch<' ' THEN....
013500: 57 72 69 74 65 28 27 5E 27 29 3B 57 72 69 74 65 Write('^');Write
013510: 28 43 48 52 28 4F 52 44 28 63 68 29 2B 36 34 29 (CHR(ORD(ch)+64)
013520: 29 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 57 72 69 );...ELSE....Wri
013530: 74 65 28 63 68 29 3B 0D 0A 09 09 45 4E 44 3B 0D te(ch);....END;.
013540: 0A 09 45 4E 44 20 4F 75 74 43 68 3B 0D 0A 50 52 ..END OutCh;..PR
013550: 4F 43 45 44 55 52 45 20 50 72 69 6E 74 4D 61 63 OCEDURE PrintMac
013560: 72 6F 73 3B 0D 0A 42 45 47 49 4E 0D 0A 09 46 4F ros;..BEGIN...FO
013570: 52 20 63 68 3A 3D 27 41 27 20 54 4F 20 27 5A 27 R ch:='A' TO 'Z'
013580: 20 44 4F 0D 0A 09 09 49 46 20 43 6F 6D 6D 61 6E DO....IF Comman
013590: 64 73 5B 63 68 5D 3C 3E 4E 49 4C 20 54 48 45 4E ds[ch]<>NIL THEN
0135A0: 20 0D 0A 09 09 20 20 20 20 57 49 54 48 20 43 6F .... WITH Co
0135B0: 6D 6D 61 6E 64 73 5B 63 68 5D 5E 20 44 4F 0D 0A mmands[ch]^ DO..
0135C0: 09 09 09 4F 75 74 43 68 28 63 68 29 3B 0D 0A 09 ...OutCh(ch);...
0135D0: 09 09 46 4F 52 20 69 3A 3D 31 20 54 4F 20 4C 65 ..FOR i:=1 TO Le
0135E0: 6E 67 74 68 20 44 4F 20 0D 0A 09 09 09 09 4F 75 ngth DO ......Ou
0135F0: 74 43 68 28 43 6F 6D 6D 43 68 61 72 73 5B 69 5D tCh(CommChars[i]
013600: 20 63 68 3C 27 20 27 20 54 48 45 4E 20 63 68 3A ch<' ' THEN ch:
013610: 3D 43 48 52 28 4F 52 44 28 63 68 29 2B 36 34 29 =CHR(ORD(ch)+64)
013620: 20 45 4E 44 3B 0D 0A 09 49 46 20 28 63 68 3E 3D END;...IF (ch>=
013630: 27 40 27 29 20 41 4E 44 20 28 63 68 3C 3D 27 5A '@') AND (ch<='Z
013640: 27 29 20 54 48 45 4E 0D 0A 09 09 41 64 64 4D 61 ') THEN....AddMa
013650: 63 72 6F 28 43 6F 6D 6D 61 6E 64 73 5B 63 68 5D cro(Commands[ch]
013660: 2C 72 65 70 65 61 74 29 3B 0D 0A 09 09 45 4E 44 ,repeat);....END
013670: 3B 0D 0A 09 45 4E 44 20 4D 61 63 72 6F 3B 0D 0A ;...END Macro;..
013680: 56 41 52 09 46 3A 46 49 4C 45 3B 0D 0A 09 72 65 VAR.F:FILE;...re
013690: 70 6C 79 3A 49 4E 54 45 47 45 52 3B 0D 0A 50 52 ply:INTEGER;..PR
0136A0: 4F 43 45 44 55 52 45 20 4C 6F 61 64 4D 61 63 72 OCEDURE LoadMacr
0136B0: 6F 73 3B 0D 0A 56 41 52 09 42 6C 6F 63 6B 3A 41 os;..VAR.Block:A
0136C0: 52 52 41 59 5B 30 2E 2E 42 6C 6F 63 6B 4C 65 6E RRAY[0..BlockLen
0136D0: 2D 31 5D 20 4F 46 20 43 48 41 52 3B 0D 0A 42 45 -1] OF CHAR;..BE
0136E0: 47 49 4E 0D 0A 09 4C 4F 4F 50 0D 0A 09 09 53 65 GIN...LOOP....Se
0136F0: 71 52 65 61 64 42 6C 6F 63 6B 28 46 2C 41 44 52 qReadBlock(F,ADR
013700: 28 42 6C 6F 63 6B 29 2C 42 6C 6F 63 6B 4C 65 6E (Block),BlockLen
013710: 2C 72 65 70 6C 79 29 3B 0D 0A 09 09 49 46 20 72 ,reply);....IF r
013720: 65 70 6C 79 3C 3E 42 6C 6F 63 6B 4C 65 6E 20 54 eply<>BlockLen T
013730: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 HEN EXIT END;...
013740: 09 72 65 70 6C 79 3A 3D 30 3B 0D 0A 09 09 57 48 .reply:=0;....WH
013750: 49 4C 45 20 42 6C 6F 63 6B 5B 72 65 70 6C 79 5D ILE Block[reply]
013760: 3C 3E 30 78 20 44 4F 0D 0A 09 09 09 4C 65 61 72 <>0x DO.....Lear
013770: 6E 4C 65 6E 3A 3D 4F 52 44 28 42 6C 6F 63 6B 5B nLen:=ORD(Block[
013780: 72 65 70 6C 79 5D 29 3B 0D 0A 09 09 09 4C 65 61 reply]);.....Lea
013790: 72 6E 63 68 3A 3D 42 6C 6F 63 6B 5B 72 65 70 6C rnch:=Block[repl
0137A0: 79 2B 31 5D 3B 0D 0A 09 09 09 49 46 20 4C 65 61 y+1];.....IF Lea
0137B0: 72 6E 63 68 3D 45 53 43 20 54 48 45 4E 0D 0A 09 rnch=ESC THEN...
0137C0: 09 09 09 4D 6F 76 65 75 70 28 41 44 52 28 42 6C ...Moveup(ADR(Bl
0137D0: 6F 63 6B 5B 72 65 70 6C 79 2B 32 5D 29 2C 41 44 ock[reply+2]),AD
0137E0: 52 28 4B 65 79 53 65 71 29 2C 31 30 29 3B 0D 0A R(KeySeq),10);..
0137F0: 09 09 09 09 42 75 69 6C 64 4B 65 79 53 65 71 3B ....BuildKeySeq;
013800: 29 20 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ) ......END;....
013810: 09 45 4E 44 3B 0D 0A 09 09 20 20 20 20 57 72 69 .END;.... Wri
013820: 74 65 4C 6E 3B 0D 0A 09 09 20 20 20 20 45 4E 44 teLn;.... END
013830: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 57 72 69 74 ;....END;...Writ
013840: 65 53 74 72 69 6E 67 28 27 20 45 6E 74 65 72 20 eString(' Enter
013850: 61 6E 79 20 63 68 61 72 61 63 74 65 72 20 74 6F any character to
013860: 20 63 6F 6E 74 69 6E 75 65 20 3A 27 29 3B 0D 0A continue :');..
013870: 09 57 61 69 74 46 6F 72 43 68 3B 0D 0A 09 45 4E .WaitForCh;...EN
013880: 44 20 50 72 69 6E 74 4D 61 63 72 6F 73 3B 0D 0A D PrintMacros;..
013890: 42 45 47 49 4E 0D 0A 09 46 4F 52 20 63 68 3A 3D BEGIN...FOR ch:=
0138A0: 27 40 27 20 54 4F 20 27 5A 27 20 44 4F 20 43 6F '@' TO 'Z' DO Co
0138B0: 6D 6D 61 6E 64 73 5B 63 68 5D 3A 3D 4E 49 4C 20 mmands[ch]:=NIL
0138C0: 45 4E 44 3B 0D 0A 09 53 68 6F 77 43 68 61 6E 67 END;...ShowChang
0138D0: 65 3A 3D 54 52 55 45 3B 0D 0A 09 4C 6F 6F 6B 75 e:=TRUE;...Looku
0138E0: 70 28 46 2C 27 4D 41 43 52 4F 53 2E 44 41 54 20 p(F,'MACROS.DAT
0138F0: 27 2C 72 65 70 6C 79 29 3B 0D 0A 09 49 46 20 72 ',reply);...IF r
013900: 65 70 6C 79 3D 30 20 54 48 45 4E 0D 0A 09 09 4C eply=0 THEN....L
013910: 6F 61 64 4D 61 63 72 6F 73 3B 0D 0A 09 09 45 4E oadMacros;....EN
013920: 44 3B 0D 0A 09 09 0D 0A 09 45 4E 44 20 4D 61 63 D;.......END Mac
013930: 72 6F 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ros.............
013940: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
013950: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
013960: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
013970: 1A 1A 1A 1A 1A 1A 1A 1A 29 3B 0D 0A 09 09 09 57 ........);.....W
013980: 75 72 78 2C 63 75 72 79 2C 52 65 44 69 73 70 6C urx,cury,ReDispl
013990: 61 79 3B 0D 0A 46 52 4F 4D 20 09 49 6E 74 4C 6F ay;..FROM .IntLo
0139A0: 67 69 63 20 49 4D 50 4F 52 54 20 49 41 4E 44 3B gic IMPORT IAND;
0139B0: 0D 0A 46 52 4F 4D 09 46 69 6C 65 73 20 49 4D 50 ..FROM.Files IMP
0139C0: 4F 52 54 20 4C 6F 6F 6B 75 70 2C 43 6C 6F 73 65 ORT Lookup,Close
0139D0: 2C 46 49 4C 45 2C 52 65 61 64 42 6C 6F 63 6B 3B ,FILE,ReadBlock;
0139E0: 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D ..FROM.SYSTEM IM
0139F0: 50 4F 52 54 20 41 44 52 3B 0D 0A 43 4F 4E 53 54 PORT ADR;..CONST
013A00: 0D 0A 09 09 09 09 72 65 70 6C 79 3A 3D 72 65 70 ......reply:=rep
013A10: 6C 79 2B 31 30 3B 0D 0A 09 09 09 09 45 4E 44 3B ly+10;......END;
013A20: 0D 0A 0D 0A 09 09 09 72 65 70 6C 79 3A 3D 72 65 .......reply:=re
013A30: 70 6C 79 2B 32 3B 0D 0A 09 09 09 46 4F 52 20 69 ply+2;.....FOR i
013A40: 3A 3D 31 20 54 4F 20 4C 65 61 72 6E 4C 65 6E 20 :=1 TO LearnLen
013A50: 44 4F 0D 0A 09 09 09 09 54 65 78 74 5B 69 5D 3A DO......Text[i]:
013A60: 3D 42 6C 6F 63 6B 5B 72 65 70 6C 79 5D 3B 0D 0A =Block[reply];..
013A70: 09 09 09 09 49 4E 43 28 72 65 70 6C 79 29 3B 0D ....INC(reply);.
013A80: 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 44 65 .....END;.....De
013A90: 66 4D 61 63 72 6F 54 65 78 74 3B 0D 0A 09 09 09 fMacroText;.....
013AA0: 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 END;....END;...E
013AB0: 4E 44 20 4C 6F 61 64 4D 61 63 72 6F 73 3B 09 09 ND LoadMacros;..
013AC0: 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 74 6F ...PROCEDURE Sto
013AD0: 72 65 4D 61 63 72 6F 73 3B 0D 0A 56 41 52 09 42 reMacros;..VAR.B
013AE0: 6C 6F 63 6B 3A 41 52 52 41 59 5B 30 2E 2E 42 6C lock:ARRAY[0..Bl
013AF0: 6F 63 6B 4C 65 6E 2D 31 5D 20 4F 46 20 43 48 41 ockLen-1] OF CHA
013B00: 52 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 R;....PROCEDURE
013B10: 53 74 6F 72 65 4F 6E 65 4D 61 63 72 6F 28 70 3A StoreOneMacro(p:
013B20: 50 4B 65 79 44 65 66 29 3B 0D 0A 42 45 47 49 4E PKeyDef);..BEGIN
013B30: 0D 0A 09 49 46 20 70 3C 3E 4E 49 4C 20 54 48 45 ...IF p<>NIL THE
013B40: 4E 0D 0A 09 09 57 49 54 48 20 70 5E 20 44 4F 0D N....WITH p^ DO.
013B50: 0A 09 09 09 49 46 20 28 72 65 70 6C 79 2B 4C 65 ....IF (reply+Le
013B60: 6E 67 74 68 2B 31 34 29 3E 3D 42 6C 6F 63 6B 4C ngth+14)>=BlockL
013B70: 65 6E 20 54 48 45 4E 0D 0A 09 09 09 09 42 6C 6F en THEN......Blo
013B80: 63 6B 5B 72 65 70 6C 79 5D 3A 3D 30 78 3B 0D 0A ck[reply]:=0x;..
013B90: 09 09 09 09 53 65 71 57 72 69 74 65 42 6C 6F 63 ....SeqWriteBloc
013BA0: 6B 28 46 2C 41 44 52 28 42 6C 6F 63 6B 29 2C 42 k(F,ADR(Block),B
013BB0: 6C 6F 63 6B 4C 65 6E 2C 72 65 70 6C 79 29 3B 0D lockLen,reply);.
013BC0: 0A 09 09 09 09 72 65 70 6C 79 3A 3D 30 3B 0D 0A .....reply:=0;..
013BD0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 42 6C 6F ....END;.....Blo
013BE0: 63 6B 5B 72 65 70 6C 79 5D 3A 3D 43 48 52 28 4C ck[reply]:=CHR(L
013BF0: 65 6E 67 74 68 29 3B 0D 0A 09 09 09 42 6C 6F 63 ength);.....Bloc
013C00: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
013C10: 45 20 4D 61 6B 65 45 64 69 74 73 3B 0D 0A 0D 0A E MakeEdits;....
013C20: 0D 0A 28 2A 09 52 6F 75 74 69 6E 65 73 20 74 6F ..(*.Routines to
013C30: 20 65 64 69 74 20 61 20 66 69 6C 65 0D 0A 0D 0A edit a file....
013C40: 09 28 69 2E 65 2E 2C 20 61 63 74 75 61 6C 6C 79 .(i.e., actually
013C50: 20 6D 61 6B 65 20 63 68 61 6E 67 65 73 20 74 6F make changes to
013C60: 20 74 68 65 20 66 69 6C 65 29 0D 0A 0D 0A 09 44 the file).....D
013C70: 20 4D 6F 6F 72 65 20 31 31 20 4A 61 6E 20 38 35 Moore 11 Jan 85
013C80: 2A 29 0D 0A 0D 0A 46 52 4F 4D 20 46 69 6C 65 73 *)....FROM Files
013C90: 20 49 4D 50 4F 52 54 20 46 69 6C 65 4E 61 6D 65 IMPORT FileName
013CA0: 3B 0D 0A 0D 0A 54 59 50 45 09 45 64 69 74 46 69 ;....TYPE.EditFi
013CB0: 6C 65 3B 0D 0A 09 50 6F 73 69 74 69 6F 6E 3B 0D le;...Position;.
013CC0: 0A 09 0D 0A 09 45 72 72 6F 72 52 65 63 6F 72 64 .....ErrorRecord
013CD0: 3D 52 45 43 4F 52 44 0D 0A 09 09 45 72 72 6F 72 =RECORD....Error
013CE0: 4E 75 6D 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 Num:CARDINAL;...
013CF0: 09 43 68 61 72 50 3A 43 41 52 44 49 4E 41 4C 3B .CharP:CARDINAL;
013D00: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 72 72 6F 72 ....END;...Error
013D10: 41 72 72 61 79 3D 41 52 52 41 59 5B 30 2E 2E 39 Array=ARRAY[0..9
013D20: 5D 20 4F 46 20 45 72 72 6F 72 52 65 63 6F 72 64 ] OF ErrorRecord
013D30: 3B 0D 0A 56 41 52 09 45 72 72 6F 72 4C 69 73 74 ;..VAR.ErrorList
013D40: 3A 45 72 72 6F 72 41 72 72 61 79 3B 0D 0A 09 45 :ErrorArray;...E
013D50: 72 72 6F 72 43 6F 75 6E 74 3A 43 41 52 44 49 4E rrorCount:CARDIN
013D60: 41 4C 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 AL;....PROCEDURE
013D70: 20 4F 70 65 6E 46 69 6C 65 28 56 41 52 20 66 3A OpenFile(VAR f:
013D80: 45 64 69 74 46 69 6C 65 3B 66 6E 3A 46 69 6C 65 EditFile;fn:File
013D90: 4E 61 6D 65 3B 56 41 52 20 72 65 70 6C 79 3A 49 Name;VAR reply:I
013DA0: 4E 54 45 47 45 52 3B 50 6F 73 3A 43 41 52 44 49 NTEGER;Pos:CARDI
013DB0: 4E 41 4C 29 3B 0D 0A 0D 0A 28 2A 09 4C 6F 61 64 NAL);....(*.Load
013DC0: 20 74 68 65 20 66 69 6C 65 20 69 6E 74 6F 20 6D the file into m
013DD0: 65 6D 6F 72 79 0D 0A 0D 0A 09 49 66 20 69 6E 73 emory.....If ins
013DE0: 75 66 66 69 63 69 65 6E 74 20 6D 65 6D 6F 72 79 ufficient memory
013DF0: 2C 20 72 65 74 75 72 6E 73 20 72 65 70 6C 79 3D , returns reply=
013E00: 6B 5B 72 65 70 6C 79 2B 31 5D 3A 3D 4C 65 61 72 k[reply+1]:=Lear
013E10: 6E 63 68 3B 0D 0A 09 09 09 49 46 20 4C 65 61 72 nch;.....IF Lear
013E20: 6E 63 68 3D 45 53 43 20 54 48 45 4E 0D 0A 09 09 nch=ESC THEN....
013E30: 09 09 4D 6F 76 65 75 70 28 41 44 52 28 4B 65 79 ..Moveup(ADR(Key
013E40: 53 65 71 29 2C 41 44 52 28 42 6C 6F 63 6B 5B 72 Seq),ADR(Block[r
013E50: 65 70 6C 79 2B 32 5D 29 2C 31 30 29 3B 0D 0A 09 eply+2]),10);...
013E60: 09 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B ...reply:=reply+
013E70: 31 30 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 10;......END;...
013E80: 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B 32 ..reply:=reply+2
013E90: 3B 0D 0A 09 09 09 46 4F 52 20 69 3A 3D 31 20 54 ;.....FOR i:=1 T
013EA0: 4F 20 4C 65 6E 67 74 68 20 44 4F 0D 0A 09 09 09 O Length DO.....
013EB0: 09 42 6C 6F 63 6B 5B 72 65 70 6C 79 5D 3A 3D 43 .Block[reply]:=C
013EC0: 6F 6D 6D 43 68 61 72 73 5B 69 5D 3B 0D 0A 09 09 ommChars[i];....
013ED0: 09 09 49 4E 43 28 72 65 70 6C 79 29 3B 0D 0A 09 ..INC(reply);...
013EE0: 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B ...END;.....END;
013EF0: 28 2A 57 49 54 48 20 70 5E 2A 29 0D 0A 09 09 45 (*WITH p^*)....E
013F00: 4E 44 20 28 2A 49 46 20 3C 3E 4E 49 4C 2A 29 0D ND (*IF <>NIL*).
013F10: 0A 09 45 4E 44 20 53 74 6F 72 65 4F 6E 65 4D 61 ..END StoreOneMa
013F20: 63 72 6F 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 cro;..PROCEDURE
013F30: 4F 75 74 4B 65 79 53 65 71 28 43 68 61 72 4E 6F OutKeySeq(CharNo
013F40: 3A 43 41 52 44 49 4E 41 4C 3B 70 3A 50 4B 65 79 :CARDINAL;p:PKey
013F50: 43 68 61 69 6E 29 3B 0D 0A 42 45 47 49 4E 0D 0A Chain);..BEGIN..
013F60: 09 49 46 20 70 3C 3E 4E 49 4C 20 54 48 45 4E 0D .IF p<>NIL THEN.
013F70: 0A 09 09 57 49 54 48 20 70 5E 20 44 4F 0D 0A 09 ...WITH p^ DO...
013F80: 09 09 4B 65 79 53 65 71 5B 43 68 61 72 4E 6F 5D ..KeySeq[CharNo]
013F90: 3A 3D 63 68 3B 0D 0A 09 09 09 49 46 20 54 65 72 :=ch;.....IF Ter
013FA0: 6D 69 6E 61 74 6F 72 20 54 48 45 4E 0D 0A 09 09 minator THEN....
013FB0: 09 09 53 74 6F 72 65 4F 6E 65 4D 61 63 72 6F 28 ..StoreOneMacro(
013FC0: 44 65 66 29 3B 0D 0A 09 09 09 45 4C 53 45 0D 0A Def);.....ELSE..
013FD0: 09 09 09 09 4F 75 74 4B 65 79 53 65 71 28 43 68 ....OutKeySeq(Ch
013FE0: 61 72 4E 6F 2B 31 2C 4E 65 78 74 43 68 61 72 29 arNo+1,NextChar)
013FF0: 3B 0D 0A 09 09 09 09 4B 65 79 53 65 71 5B 43 68 ;......KeySeq[Ch
014000: 2D 33 0D 0A 09 69 66 20 66 69 6C 65 20 6E 6F 74 -3...if file not
014010: 20 66 6F 75 6E 64 2C 20 72 65 74 75 72 6E 73 20 found, returns
014020: 72 65 70 6C 79 3D 2D 32 0D 0A 09 72 65 70 6C 79 reply=-2...reply
014030: 3E 30 20 69 66 20 6F 6B 2C 20 72 65 74 75 72 6E >0 if ok, return
014040: 73 20 62 6C 6F 63 6B 73 20 72 65 61 64 2A 29 0D s blocks read*).
014050: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 6C 6F ...PROCEDURE Clo
014060: 73 65 46 69 6C 65 28 56 41 52 20 66 3A 45 64 69 seFile(VAR f:Edi
014070: 74 46 69 6C 65 3B 56 41 52 20 72 65 70 6C 79 3A tFile;VAR reply:
014080: 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A 09 INTEGER);....(*.
014090: 57 72 69 74 65 20 6F 75 74 20 63 68 61 6E 67 65 Write out change
0140A0: 73 20 74 6F 20 61 6E 20 65 64 69 74 20 66 69 6C s to an edit fil
0140B0: 65 20 61 6E 64 20 63 6C 6F 73 65 20 69 74 0D 0A e and close it..
0140C0: 09 44 6F 6E 65 20 72 65 74 75 72 6E 73 20 66 61 .Done returns fa
0140D0: 6C 73 65 20 69 66 20 6F 75 74 20 6F 66 20 64 69 lse if out of di
0140E0: 73 63 20 73 70 61 63 65 2A 29 0D 0A 0D 0A 50 52 sc space*)....PR
0140F0: 4F 43 45 44 55 52 45 20 41 62 61 6E 64 6F 6E 46 OCEDURE AbandonF
014100: 69 6C 65 28 66 3A 45 64 69 74 46 69 6C 65 29 3B ile(f:EditFile);
014110: 0D 0A 0D 0A 28 2A 09 41 62 61 6E 64 6F 6E 20 63 ....(*.Abandon c
014120: 68 61 6E 67 65 73 20 74 6F 20 61 6E 20 65 64 69 hanges to an edi
014130: 74 20 66 69 6C 65 2A 29 0D 0A 50 52 4F 43 45 44 t file*)..PROCED
014140: 55 52 45 20 47 65 74 50 6F 73 69 74 69 6F 6E 28 URE GetPosition(
014150: 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 56 VAR f:EditFile;V
014160: 41 52 20 70 3A 50 6F 73 69 74 69 6F 6E 29 3B 0D AR p:Position);.
014170: 0A 50 52 4F 43 45 44 55 52 45 20 53 65 74 50 6F .PROCEDURE SetPo
014180: 73 69 74 69 6F 6E 28 56 41 52 20 66 3A 45 64 69 sition(VAR f:Edi
014190: 74 46 69 6C 65 3B 70 3A 50 6F 73 69 74 69 6F 6E tFile;p:Position
0141A0: 29 3B 0D 0A 28 2A 09 67 65 74 2F 73 65 74 20 70 );..(*.get/set p
0141B0: 6F 73 69 74 69 6F 6E 20 69 6E 20 61 20 66 69 6C osition in a fil
0141C0: 65 0D 0A 09 47 65 74 50 6F 73 69 74 69 6F 6E 20 e...GetPosition
0141D0: 72 65 74 75 72 6E 73 20 74 68 65 20 63 75 72 65 returns the cure
0141E0: 6E 74 20 70 6F 73 69 74 69 6F 6E 0D 0A 09 44 65 nt position...De
0141F0: 66 69 6E 65 4C 61 62 65 6C 20 64 65 66 69 6E 65 fineLabel define
014200: 61 72 4E 6F 2B 31 5D 3A 3D 27 20 27 3B 0D 0A 09 arNo+1]:=' ';...
014210: 09 09 09 45 4E 44 3B 0D 0A 09 09 09 4F 75 74 4B ...END;.....OutK
014220: 65 79 53 65 71 28 43 68 61 72 4E 6F 2C 4E 65 78 eySeq(CharNo,Nex
014230: 74 41 6C 74 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D tAlt);.....END;.
014240: 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 4F 75 ...END;...END Ou
014250: 74 4B 65 79 53 65 71 3B 0D 0A 42 45 47 49 4E 0D tKeySeq;..BEGIN.
014260: 0A 09 4C 65 61 72 6E 63 68 3A 3D 27 41 27 3B 0D ..Learnch:='A';.
014270: 0A 09 57 48 49 4C 45 20 28 43 6F 6D 6D 61 6E 64 ..WHILE (Command
014280: 73 5B 4C 65 61 72 6E 63 68 5D 3D 4E 49 4C 29 20 s[Learnch]=NIL)
014290: 41 4E 44 20 28 4C 65 61 72 6E 63 68 3C 3D 27 5A AND (Learnch<='Z
0142A0: 27 29 20 44 4F 20 0D 0A 09 09 4C 65 61 72 6E 63 ') DO ....Learnc
0142B0: 68 3A 3D 43 48 52 28 4F 52 44 28 4C 65 61 72 6E h:=CHR(ORD(Learn
0142C0: 63 68 29 2B 31 29 3B 0D 0A 09 09 45 4E 44 3B 0D ch)+1);....END;.
0142D0: 0A 09 49 46 20 4C 65 61 72 6E 63 68 3E 27 5A 27 ..IF Learnch>'Z'
0142E0: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 THEN RETURN END
0142F0: 3B 0D 0A 09 43 72 65 61 74 65 28 46 2C 27 4D 41 ;...Create(F,'MA
014300: 43 52 4F 53 2E 44 41 54 20 27 2C 72 65 70 6C 79 CROS.DAT ',reply
014310: 29 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3C 3E 30 );...IF reply<>0
014320: 20 54 48 45 4E 0D 0A 09 09 57 72 69 74 65 53 74 THEN....WriteSt
014330: 72 69 6E 67 28 27 20 63 6F 75 6C 64 20 6E 6F 74 ring(' could not
014340: 20 73 61 76 65 20 6D 61 63 72 6F 73 20 66 69 6C save macros fil
014350: 65 27 29 3B 0D 0A 09 09 57 72 69 74 65 4C 6E 3B e');....WriteLn;
014360: 0D 0A 09 09 52 45 54 55 52 4E 0D 0A 09 09 45 4E ....RETURN....EN
014370: 44 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3C 3E 30 D;...IF reply<>0
014380: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 THEN RETURN END
014390: 3B 0D 0A 09 72 65 70 6C 79 3A 3D 30 3B 0D 0A 09 ;...reply:=0;...
0143A0: 46 4F 52 20 4C 65 61 72 6E 63 68 3A 3D 27 41 27 FOR Learnch:='A'
0143B0: 20 54 4F 20 27 5A 27 20 44 4F 20 53 74 6F 72 65 TO 'Z' DO Store
0143C0: 4F 6E 65 4D 61 63 72 6F 28 43 6F 6D 6D 61 6E 64 OneMacro(Command
0143D0: 73 5B 4C 65 61 72 6E 63 68 5D 29 20 45 4E 44 3B s[Learnch]) END;
0143E0: 0D 0A 0D 0A 09 28 2A 4E 6F 77 20 6F 75 74 70 75 .....(*Now outpu
0143F0: 74 20 6B 65 79 20 73 65 71 75 65 6E 63 65 73 2A t key sequences*
014400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
014410: 11 00 01 00 02 09 52 E5 11 00 C9 02 00 00 00 02 ......R.........
014420: 11 00 C5 02 00 00 00 02 11 00 C1 02 00 00 00 02 ................
014430: 11 00 C6 02 00 00 00 02 11 00 C2 02 00 00 00 02 ................
014440: 11 00 C7 02 00 00 00 02 11 00 C3 02 00 00 00 02 ................
014450: 11 00 C8 02 00 00 00 02 11 00 C4 02 00 00 00 02 ................
014460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014500: 6C 6F 63 6B 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 lock;....PROCEDU
014510: 52 45 20 73 65 74 63 75 72 70 6F 73 28 56 41 52 RE setcurpos(VAR
014520: 20 66 3A 45 64 69 74 46 69 6C 65 29 3B 0D 0A 42 f:EditFile);..B
014530: 45 47 49 4E 0D 0A 09 57 49 54 48 20 66 2E 43 75 EGIN...WITH f.Cu
014540: 72 50 6F 73 20 44 4F 0D 0A 09 09 57 6F 72 6B 69 rPos DO....Worki
014550: 6E 67 3A 3D 42 6C 6F 63 6B 3B 0D 0A 09 09 43 68 ng:=Block;....Ch
014560: 61 72 50 6F 73 3A 3D 4F 66 66 73 65 74 3B 0D 0A arPos:=Offset;..
014570: 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 73 65 74 ..END;...END set
014580: 63 75 72 70 6F 73 3B 0D 0A 0D 0A 50 52 4F 43 45 curpos;....PROCE
014590: 44 55 52 45 20 73 61 76 65 63 75 72 70 6F 73 28 DURE savecurpos(
0145A0: 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3B VAR f:EditFile);
0145B0: 0D 0A 42 45 47 49 4E 0D 0A 09 57 49 54 48 20 66 ..BEGIN...WITH f
0145C0: 2E 43 75 72 50 6F 73 20 44 4F 0D 0A 09 09 49 46 .CurPos DO....IF
0145D0: 20 43 68 61 72 50 6F 73 3E 4F 52 44 28 57 6F 72 CharPos>ORD(Wor
0145E0: 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 king^.BlockLen)
0145F0: 54 48 45 4E 20 0D 0A 09 09 09 43 68 61 72 50 6F THEN .....CharPo
014600: 73 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 s:=Working^.Bloc
014610: 6B 4C 65 6E 20 0D 0A 09 09 09 45 4E 44 3B 0D 0A kLen .....END;..
014620: 09 09 42 6C 6F 63 6B 3A 3D 57 6F 72 6B 69 6E 67 ..Block:=Working
014630: 3B 0D 0A 09 09 4F 66 66 73 65 74 3A 3D 43 68 61 ;....Offset:=Cha
014640: 72 50 6F 73 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 rPos;....END;...
014650: 45 4E 44 20 73 61 76 65 63 75 72 70 6F 73 3B 0D END savecurpos;.
014660: 0A 56 41 52 09 69 3A 49 4E 54 45 47 45 52 3B 0D .VAR.i:INTEGER;.
014670: 0A 50 52 4F 43 45 44 55 52 45 20 42 61 63 6B 75 .PROCEDURE Backu
014680: 70 28 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 0D 0A p():BOOLEAN;....
014690: 28 2A 09 62 61 63 6B 20 75 70 20 61 20 63 68 61 (*.back up a cha
0146A0: 72 61 63 74 65 72 20 70 6F 73 69 74 69 6F 6E 20 racter position
0146B0: 69 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 66 in the current f
0146C0: 69 6C 65 0D 0A 09 72 65 74 75 72 6E 73 20 54 52 ile...returns TR
0146D0: 55 45 20 69 66 20 73 75 63 63 65 73 73 66 75 6C UE if successful
0146E0: 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 43 *)..BEGIN...IF C
0146F0: 68 61 72 50 6F 73 3C 3D 30 20 54 48 45 4E 0D 0A harPos<=0 THEN..
014700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0147A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0147B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0147C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0147D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0147E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0147F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0148A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0148B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0148C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0148D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0148E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0148F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014900: 6C 65 6E 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 28 len:INTEGER);..(
014910: 2A 09 69 6E 73 65 72 74 20 63 68 61 72 61 63 74 *.insert charact
014920: 65 72 73 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 ers*)....PROCEDU
014930: 52 45 20 52 65 74 72 6C 69 6E 65 28 56 41 52 20 RE Retrline(VAR
014940: 66 3A 45 64 69 74 46 69 6C 65 3B 56 41 52 20 6C f:EditFile;VAR l
014950: 65 6E 2C 70 6F 73 3A 49 4E 54 45 47 45 52 3B 0D en,pos:INTEGER;.
014960: 0A 09 09 56 41 52 20 70 3A 50 6F 73 69 74 69 6F ...VAR p:Positio
014970: 6E 3B 56 41 52 20 4C 69 6E 65 73 6D 6F 76 65 64 n;VAR Linesmoved
014980: 3A 49 4E 54 45 47 45 52 3B 4C 69 6E 65 73 3A 49 :INTEGER;Lines:I
014990: 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A 09 72 NTEGER);....(*.r
0149A0: 65 74 75 72 6E 20 69 6E 66 6F 72 6D 61 74 69 6F eturn informatio
0149B0: 6E 20 61 62 6F 75 74 20 61 20 6C 69 6E 65 20 66 n about a line f
0149C0: 6F 72 20 74 68 65 20 67 69 76 65 6E 20 66 69 6C or the given fil
0149D0: 65 0D 0A 0D 0A 09 6C 65 6E 20 72 65 74 75 72 6E e.....len return
0149E0: 73 20 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 s the length of
0149F0: 74 68 65 20 6C 69 6E 65 0D 0A 09 70 6F 73 20 72 the line...pos r
014A00: 65 74 75 72 6E 73 20 63 75 72 72 65 6E 74 20 70 eturns current p
014A10: 6F 73 69 74 69 6F 6E 20 69 6E 20 74 68 65 20 6C osition in the l
014A20: 69 6E 65 20 28 63 68 61 72 61 63 74 65 72 20 6E ine (character n
014A30: 75 6D 62 65 72 29 0D 0A 09 70 20 20 20 72 65 74 umber)...p ret
014A40: 75 72 6E 73 20 70 6F 73 69 74 69 6F 6E 20 6F 66 urns position of
014A50: 20 73 74 61 72 74 20 6F 66 20 6C 69 6E 65 0D 0A start of line..
014A60: 09 4C 69 6E 65 73 6D 6F 76 65 64 20 72 65 74 75 .Linesmoved retu
014A70: 72 6E 73 20 6E 75 6D 62 65 72 20 6F 66 20 6C 69 rns number of li
014A80: 6E 65 73 20 61 63 74 75 61 6C 6C 79 20 6D 6F 76 nes actually mov
014A90: 65 64 20 2D 20 62 75 74 20 6F 6E 6C 79 0D 0A 09 ed - but only...
014AA0: 09 69 66 20 6D 6F 76 65 20 77 61 73 20 6E 65 67 .if move was neg
014AB0: 61 74 69 76 65 2E 20 52 65 74 75 72 6E 73 20 6E ative. Returns n
014AC0: 65 67 61 74 69 76 65 20 76 61 6C 75 65 0D 0A 09 egative value...
014AD0: 6C 69 6E 65 73 20 28 69 6E 70 75 74 29 20 69 73 lines (input) is
014AE0: 20 6E 75 6D 62 65 72 20 6F 66 20 6C 69 6E 65 73 number of lines
014AF0: 20 74 6F 20 6D 6F 76 65 20 66 72 6F 6D 20 63 75 to move from cu
014B00: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
014B10: 4F 44 55 4C 45 20 4D 61 6B 65 45 64 69 74 73 3B ODULE MakeEdits;
014B20: 0D 0A 0D 0A 0D 0A 28 2A 09 52 6F 75 74 69 6E 65 ......(*.Routine
014B30: 73 20 74 6F 20 65 64 69 74 20 61 20 66 69 6C 65 s to edit a file
014B40: 0D 0A 0D 0A 09 28 69 2E 65 2E 2C 20 61 63 74 75 .....(i.e., actu
014B50: 61 6C 6C 79 20 6D 61 6B 65 20 63 68 61 6E 67 65 ally make change
014B60: 73 20 74 6F 20 74 68 65 20 66 69 6C 65 29 0D 0A s to the file)..
014B70: 0D 0A 09 44 20 4D 6F 6F 72 65 20 31 31 20 4A 61 ...D Moore 11 Ja
014B80: 6E 20 38 35 2A 29 0D 0A 46 52 4F 4D 20 09 46 69 n 85*)..FROM .Fi
014B90: 6C 65 73 20 49 4D 50 4F 52 54 20 46 49 4C 45 2C les IMPORT FILE,
014BA0: 4C 6F 6F 6B 75 70 2C 43 72 65 61 74 65 2C 53 65 Lookup,Create,Se
014BB0: 71 52 65 61 64 42 6C 6F 63 6B 2C 53 65 71 57 72 qReadBlock,SeqWr
014BC0: 69 74 65 42 6C 6F 63 6B 2C 0D 0A 09 4D 61 6B 65 iteBlock,...Make
014BD0: 42 41 4B 2C 43 6C 6F 73 65 3B 0D 0A 46 52 4F 4D BAK,Close;..FROM
014BE0: 09 53 74 6F 72 61 67 65 20 49 4D 50 4F 52 54 20 .Storage IMPORT
014BF0: 41 4C 4C 4F 43 41 54 45 2C 44 45 41 4C 4C 4F 43 ALLOCATE,DEALLOC
014C00: 41 54 45 2C 46 72 65 65 53 70 61 63 65 3B 0D 0A ATE,FreeSpace;..
014C10: 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D 50 4F FROM.SYSTEM IMPO
014C20: 52 54 20 41 44 52 2C 42 59 54 45 3B 0D 0A 46 52 RT ADR,BYTE;..FR
014C30: 4F 4D 20 20 09 46 61 73 74 4D 6F 76 65 20 49 4D OM .FastMove IM
014C40: 50 4F 52 54 20 4D 6F 76 65 75 70 2C 4D 6F 76 65 PORT Moveup,Move
014C50: 64 6F 77 6E 2C 53 65 61 72 63 68 75 70 2C 53 65 down,Searchup,Se
014C60: 61 72 63 68 64 6F 77 6E 3B 0D 0A 46 52 4F 4D 09 archdown;..FROM.
014C70: 53 65 74 55 70 43 61 6C 6C 20 49 4D 50 4F 52 54 SetUpCall IMPORT
014C80: 20 4D 61 6B 65 43 61 6C 6C 3B 0D 0A 49 4D 50 4F MakeCall;..IMPO
014C90: 52 54 09 45 64 69 74 53 74 61 74 75 73 3B 0D 0A RT.EditStatus;..
014CA0: 43 4F 4E 53 54 09 54 65 78 74 4C 65 6E 3D 31 34 CONST.TextLen=14
014CB0: 30 3B 09 28 2A 20 6D 75 73 74 20 65 78 63 65 65 0;.(* must excee
014CC0: 64 20 61 20 62 6C 6F 63 6B 20 6F 6E 20 74 68 65 d a block on the
014CD0: 20 64 69 73 63 0D 0A 09 09 09 20 20 20 72 65 6D disc..... rem
014CE0: 61 69 6E 69 6E 67 20 73 70 61 63 65 20 69 73 20 aining space is
014CF0: 66 6F 72 20 70 61 64 64 69 6E 67 2A 29 0D 0A 09 for padding*)...
014D00: 72 72 65 6E 74 20 6C 69 6E 65 0D 0A 2A 29 0D 0A rrent line..*)..
014D10: 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 61 ...PROCEDURE Rea
014D20: 64 4E 65 78 74 43 68 61 72 28 56 41 52 20 70 3A dNextChar(VAR p:
014D30: 50 6F 73 69 74 69 6F 6E 3B 56 41 52 20 63 68 3A Position;VAR ch:
014D40: 43 48 41 52 29 3B 0D 0A 28 2A 09 52 65 61 64 20 CHAR);..(*.Read
014D50: 6E 65 78 74 20 63 68 61 72 61 63 74 65 72 20 66 next character f
014D60: 72 6F 6D 20 61 20 6C 69 6E 65 0D 0A 09 70 20 6D rom a line...p m
014D70: 75 73 74 20 62 65 20 61 20 70 6F 73 69 74 69 6F ust be a positio
014D80: 6E 20 72 65 74 75 72 6E 65 64 20 62 79 20 52 65 n returned by Re
014D90: 74 72 6C 69 6E 65 20 6F 72 20 52 65 61 64 43 68 trline or ReadCh
014DA0: 20 2D 20 6E 6F 74 20 47 65 74 50 6F 73 69 74 69 - not GetPositi
014DB0: 6F 6E 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 on*)....PROCEDUR
014DC0: 45 20 50 72 65 70 61 72 65 53 74 72 69 6E 67 28 E PrepareString(
014DD0: 73 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 3B s:ARRAY OF CHAR;
014DE0: 6C 65 6E 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 0D len:INTEGER);...
014DF0: 0A 28 2A 09 70 72 65 70 61 72 65 20 61 20 73 74 .(*.prepare a st
014E00: 72 69 6E 67 20 66 6F 72 20 75 73 65 20 69 6E 20 ring for use in
014E10: 61 20 66 69 6E 64 20 63 6F 6D 6D 61 6E 64 2A 29 a find command*)
014E20: 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 61 ....PROCEDURE Ba
014E30: 63 6B 4F 6E 65 43 68 61 72 28 56 41 52 20 66 3A ckOneChar(VAR f:
014E40: 45 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 EditFile):BOOLEA
014E50: 4E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 6F N;..PROCEDURE Fo
014E60: 72 77 61 72 64 4F 6E 65 43 68 61 72 28 56 41 52 rwardOneChar(VAR
014E70: 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 42 4F 4F f:EditFile):BOO
014E80: 4C 45 41 4E 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 LEAN;....PROCEDU
014E90: 52 45 20 46 69 6E 64 53 74 72 69 6E 67 28 56 41 RE FindString(VA
014EA0: 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 42 61 63 R f:EditFile;Bac
014EB0: 6B 77 61 72 64 73 3A 42 4F 4F 4C 45 41 4E 29 3A kwards:BOOLEAN):
014EC0: 42 4F 4F 4C 45 41 4E 3B 0D 0A 0D 0A 28 2A 09 41 BOOLEAN;....(*.A
014ED0: 63 74 75 61 6C 6C 79 20 66 69 6E 64 20 74 68 65 ctually find the
014EE0: 20 6E 65 78 74 20 6F 63 63 75 72 72 65 6E 63 65 next occurrence
014EF0: 20 6F 66 20 74 68 65 20 73 74 72 69 6E 67 09 0D of the string..
014F00: 42 6C 6F 63 6B 53 69 7A 65 3D 31 32 38 3B 09 28 BlockSize=128;.(
014F10: 2A 20 63 68 61 72 61 63 74 65 72 73 20 69 6E 20 * characters in
014F20: 61 20 64 69 73 63 20 62 6C 6F 63 6B 2A 29 0D 0A a disc block*)..
014F30: 09 48 65 61 64 52 6F 6F 6D 3D 35 31 32 3B 09 28 .HeadRoom=512;.(
014F40: 2A 6D 69 6E 69 6D 75 6D 20 68 65 61 64 20 72 6F *minimum head ro
014F50: 6F 6D 20 74 6F 20 6C 65 61 76 65 20 62 65 74 77 om to leave betw
014F60: 65 65 6E 20 73 74 61 63 6B 20 61 6E 64 20 68 65 een stack and he
014F70: 61 70 2A 29 0D 0A 09 43 52 3D 30 64 78 3B 0D 0A ap*)...CR=0dx;..
014F80: 09 4C 46 3D 30 61 78 3B 0D 0A 09 46 46 3D 30 63 .LF=0ax;...FF=0c
014F90: 78 3B 0D 0A 09 45 4F 46 3D 31 61 78 3B 0D 0A 54 x;...EOF=1ax;..T
014FA0: 59 50 45 09 50 54 65 78 74 3D 50 4F 49 4E 54 45 YPE.PText=POINTE
014FB0: 52 20 54 4F 20 54 65 78 74 3B 0D 0A 09 50 50 6F R TO Text;...PPo
014FC0: 73 69 74 69 6F 6E 3D 50 4F 49 4E 54 45 52 20 54 sition=POINTER T
014FD0: 4F 20 50 6F 73 69 74 69 6F 6E 3B 0D 0A 09 54 65 O Position;...Te
014FE0: 78 74 3D 52 45 43 4F 52 44 0D 0A 09 09 42 6C 6F xt=RECORD....Blo
014FF0: 63 6B 4C 65 6E 3A 42 59 54 45 3B 0D 0A 09 09 43 ckLen:BYTE;....C
015000: 68 61 72 73 3A 41 52 52 41 59 5B 30 2E 2E 54 65 hars:ARRAY[0..Te
015010: 78 74 4C 65 6E 2D 31 5D 20 4F 46 20 43 48 41 52 xtLen-1] OF CHAR
015020: 3B 0D 0A 09 09 4E 65 78 74 3A 50 54 65 78 74 3B ;....Next:PText;
015030: 09 09 28 2A 6E 65 78 74 20 62 6C 6F 63 6B 2A 29 ..(*next block*)
015040: 0D 0A 09 09 50 72 65 64 3A 50 54 65 78 74 3B 09 ....Pred:PText;.
015050: 09 28 2A 70 72 65 63 65 64 69 6E 67 20 62 6C 6F .(*preceding blo
015060: 63 6B 2A 29 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A ck*)....END;....
015070: 09 09 0D 0A 09 50 6F 73 69 74 69 6F 6E 3D 52 45 .....Position=RE
015080: 43 4F 52 44 0D 0A 09 09 42 6C 6F 63 6B 3A 50 54 CORD....Block:PT
015090: 65 78 74 3B 0D 0A 09 09 4F 66 66 73 65 74 3A 42 ext;....Offset:B
0150A0: 59 54 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 YTE;....END;...E
0150B0: 64 69 74 46 69 6C 65 3D 52 45 43 4F 52 44 0D 0A ditFile=RECORD..
0150C0: 09 09 66 3A 46 49 4C 45 3B 0D 0A 09 09 43 68 61 ..f:FILE;....Cha
0150D0: 69 6E 3A 50 54 65 78 74 3B 0D 0A 09 09 43 75 72 in:PText;....Cur
0150E0: 50 6F 73 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A 09 Pos:Position;...
0150F0: 09 4C 61 62 65 6C 73 3A 41 52 52 41 59 5B 30 2E .Labels:ARRAY[0.
015100: 0A 0D 0A 09 44 6F 6E 65 20 72 65 74 75 72 6E 73 ....Done returns
015110: 20 74 72 75 65 20 69 66 20 6F 6E 65 20 69 73 20 true if one is
015120: 66 6F 75 6E 64 2A 29 0D 0A 50 52 4F 43 45 44 55 found*)..PROCEDU
015130: 52 45 20 47 65 74 43 75 72 72 65 6E 74 43 68 61 RE GetCurrentCha
015140: 72 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 r(VAR f:EditFile
015150: 29 3A 43 48 41 52 3B 0D 0A 0D 0A 28 2A 09 52 65 ):CHAR;....(*.Re
015160: 74 75 72 6E 20 63 68 61 72 61 63 74 65 72 20 63 turn character c
015170: 75 72 72 65 6E 74 6C 79 20 70 6F 73 69 74 69 6F urrently positio
015180: 6E 65 64 20 74 6F 2A 29 0D 0A 0D 0A 50 52 4F 43 ned to*)....PROC
015190: 45 44 55 52 45 20 43 61 6C 6C 57 69 74 68 46 69 EDURE CallWithFi
0151A0: 6C 65 28 6E 61 6D 65 3A 41 52 52 41 59 20 4F 46 le(name:ARRAY OF
0151B0: 20 43 48 41 52 3B 56 41 52 20 66 3A 45 64 69 74 CHAR;VAR f:Edit
0151C0: 46 69 6C 65 29 3B 0D 0A 50 52 4F 43 45 44 55 52 File);..PROCEDUR
0151D0: 45 20 46 69 6C 65 54 79 70 65 28 56 41 52 20 66 E FileType(VAR f
0151E0: 3A 45 64 69 74 46 69 6C 65 29 3A 43 41 52 44 49 :EditFile):CARDI
0151F0: 4E 41 4C 3B 0D 0A 0D 0A 28 2A 09 43 61 6C 6C 20 NAL;....(*.Call
015200: 70 72 6F 67 72 61 6D 20 77 69 74 68 20 66 69 6C program with fil
015210: 65 20 61 73 20 70 61 72 61 6D 65 74 65 72 2A 29 e as parameter*)
015220: 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 6C 6F 63 ..PROCEDURE Bloc
015230: 6B 43 6F 70 79 28 56 41 52 20 46 72 6F 6D 46 69 kCopy(VAR FromFi
015240: 6C 65 2C 54 6F 46 69 6C 65 3A 45 64 69 74 46 69 le,ToFile:EditFi
015250: 6C 65 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 50 52 le):BOOLEAN;..PR
015260: 4F 43 45 44 55 52 45 20 42 6C 6F 63 6B 44 65 6C OCEDURE BlockDel
015270: 28 56 41 52 20 46 72 6F 6D 46 69 6C 65 3A 45 64 (VAR FromFile:Ed
015280: 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 4E 3B itFile):BOOLEAN;
015290: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 66 69 ..PROCEDURE Defi
0152A0: 6E 65 45 72 72 6F 72 73 28 56 41 52 20 66 3A 45 neErrors(VAR f:E
0152B0: 64 69 74 46 69 6C 65 29 3B 0D 0A 45 4E 44 20 4D ditFile);..END M
0152C0: 61 6B 65 45 64 69 74 73 2E 0D 0A 0D 0A 0D 0A 09 akeEdits........
0152D0: 0D 0A 0D 0A 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A ................
0152E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0152F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015300: 2E 32 34 5D 20 4F 46 20 50 6F 73 69 74 69 6F 6E .24] OF Position
015310: 3B 0D 0A 0D 0A 09 09 28 2A 6C 61 62 65 6C 73 20 ;......(*labels
015320: 30 20 74 6F 20 39 20 61 72 65 20 20 5E 6B 30 20 0 to 9 are ^k0
015330: 74 6F 20 5E 6B 39 0D 0A 09 09 20 20 20 31 30 20 to ^k9.... 10
015340: 69 73 20 5E 6B 42 0D 0A 09 09 20 20 20 31 31 20 is ^kB.... 11
015350: 69 73 20 5E 6B 6B 0D 0A 09 09 20 20 20 31 32 20 is ^kk.... 12
015360: 74 68 72 6F 75 67 68 20 31 34 20 61 72 65 20 74 through 14 are t
015370: 68 65 20 70 6F 73 69 74 69 6F 6E 73 20 69 6E 20 he positions in
015380: 74 68 65 20 77 69 6E 64 6F 77 73 0D 0A 09 09 20 the windows....
015390: 20 20 31 35 20 74 68 72 6F 75 67 68 20 32 34 20 15 through 24
0153A0: 61 72 65 20 65 72 72 6F 72 20 6D 61 72 6B 65 72 are error marker
0153B0: 73 2A 29 0D 0A 0D 0A 09 09 45 4E 44 3B 0D 0A 56 s*)......END;..V
0153C0: 41 52 09 44 6F 6E 65 3A 42 4F 4F 4C 45 41 4E 3B AR.Done:BOOLEAN;
0153D0: 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 ...reply:INTEGER
0153E0: 3B 09 0D 0A 0D 0A 09 28 2A 76 61 72 69 61 62 6C ;......(*variabl
0153F0: 65 73 20 75 73 65 64 20 66 6F 72 20 74 65 78 74 es used for text
015400: 20 70 6F 73 69 74 69 6F 6E 20 64 75 72 69 6E 67 position during
015410: 20 6D 6F 76 65 20 6F 70 65 72 61 74 69 6F 6E 73 move operations
015420: 20 65 74 63 2A 29 0D 0A 0D 0A 09 57 6F 72 6B 69 etc*).....Worki
015430: 6E 67 3A 50 54 65 78 74 3B 0D 0A 09 43 68 61 72 ng:PText;...Char
015440: 50 6F 73 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 63 Pos:INTEGER;...c
015450: 68 3A 43 48 41 52 3B 0D 0A 09 70 6F 73 3A 50 6F h:CHAR;...pos:Po
015460: 73 69 74 69 6F 6E 3B 0D 0A 09 70 6F 73 31 2C 70 sition;...pos1,p
015470: 6F 73 32 3A 50 50 6F 73 69 74 69 6F 6E 3B 0D 0A os2:PPosition;..
015480: 09 43 68 61 72 6E 6F 2C 43 68 61 72 73 72 65 61 .Charno,Charsrea
015490: 64 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 0D 0A 50 d:CARDINAL;....P
0154A0: 52 4F 43 45 44 55 52 45 20 4E 65 77 42 6C 6F 63 ROCEDURE NewBloc
0154B0: 6B 3B 0D 0A 42 45 47 49 4E 0D 0A 09 4E 45 57 28 k;..BEGIN...NEW(
0154C0: 57 6F 72 6B 69 6E 67 29 3B 0D 0A 09 57 6F 72 6B Working);...Work
0154D0: 69 6E 67 5E 2E 50 72 65 64 3A 3D 4E 49 4C 3B 0D ing^.Pred:=NIL;.
0154E0: 0A 09 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3A ..Working^.Next:
0154F0: 3D 4E 49 4C 3B 0D 0A 09 45 4E 44 20 4E 65 77 42 =NIL;...END NewB
015500: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015510: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015520: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015530: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015540: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 28 1A DE 20 ............(..
015550: 2F 1A 2B 1A E1 20 2C 1A 2D 1A FF FF 04 21 73 1A /.+.. ,.-....!s.
015560: FF FF FF FF FF FF 07 1F FF FF 36 1A 37 1A 38 1A ..........6.7.8.
015570: FF FF FF FF 3B 1A FF FF 3D 1A FF FF FF FF FF FF ....;...=.......
015580: 44 20 50 72 69 6E 74 4D 61 63 72 6F 73 3B 0D 0A D PrintMacros;..
015590: 42 45 47 49 4E 0D 0A 09 46 4F 52 20 63 68 3A 3D BEGIN...FOR ch:=
0155A0: 27 40 27 20 54 4F 20 27 5A 27 20 44 4F 20 43 6F '@' TO 'Z' DO Co
0155B0: 6D 6D 61 6E 64 73 5B 63 68 5D 3A 3D 4E 49 4C 20 mmands[ch]:=NIL
0155C0: 45 4E 44 3B 0D 0A 09 53 68 6F 77 43 68 61 6E 67 END;...ShowChang
0155D0: 65 3A 3D 54 52 55 45 3B 0D 0A 09 4C 6F 6F 6B 75 e:=TRUE;...Looku
0155E0: 70 28 46 2C 27 4D 41 43 52 4F 53 2E 44 41 54 20 p(F,'MACROS.DAT
0155F0: 27 2C 72 65 70 6C 79 29 3B 0D 0A 09 49 46 20 72 ',reply);...IF r
015600: 65 70 6C 79 3D 30 20 54 48 45 4E 0D 0A 09 09 4C eply=0 THEN....L
015610: 6F 61 64 4D 61 63 72 6F 73 3B 0D 0A 09 09 45 4E oadMacros;....EN
015620: 44 3B 0D 0A 09 09 0D 0A 09 45 4E 44 20 4D 61 63 D;.......END Mac
015630: 72 6F 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ros.............
015640: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015650: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015660: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015670: 1A 1A 1A 1A 1A 1A 1A 1A 29 3B 0D 0A 09 09 09 57 ........);.....W
015680: 30 32 78 5D 3A 3D 57 69 6E 64 6F 77 3B 09 09 28 02x]:=Window;..(
015690: 2A 43 74 72 6C 20 42 2A 29 0D 0A 09 4D 61 69 6E *Ctrl B*)...Main
0156A0: 54 61 62 6C 65 5B 31 37 78 5D 3A 3D 53 63 72 6F Table[17x]:=Scro
0156B0: 6C 6C 55 70 3B 09 28 2A 43 74 72 6C 20 57 2A 29 llUp;.(*Ctrl W*)
0156C0: 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 30 62 78 ...MainTable[0bx
0156D0: 5D 3A 3D 44 65 66 4C 61 62 65 6C 3B 09 28 2A 43 ]:=DefLabel;.(*C
0156E0: 74 72 6C 20 4B 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl K*)...MainTa
0156F0: 62 6C 65 5B 37 66 78 5D 3A 3D 44 65 6C 42 61 63 ble[7fx]:=DelBac
015700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
015710: 12 00 01 00 02 09 52 E5 12 00 C9 02 00 00 00 02 ......R.........
015720: 12 00 C5 02 00 00 00 02 12 00 C1 02 00 00 00 02 ................
015730: 12 00 C6 02 00 00 00 02 12 00 C2 02 00 00 00 02 ................
015740: 12 00 C7 02 00 00 00 02 12 00 C3 02 00 00 00 02 ................
015750: 12 00 C8 02 00 00 00 02 12 00 C4 02 00 00 00 02 ................
015760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015800: 63 68 61 72 61 63 74 65 72 20 70 6F 73 69 74 69 character positi
015810: 6F 6E 20 69 6E 20 74 68 65 20 63 75 72 72 65 6E on in the curren
015820: 74 20 66 69 6C 65 2A 29 0D 0A 42 45 47 49 4E 09 t file*)..BEGIN.
015830: 09 0D 0A 09 49 4E 43 28 43 68 61 72 50 6F 73 29 ....INC(CharPos)
015840: 3B 0D 0A 09 49 46 20 43 68 61 72 50 6F 73 3E 3D ;...IF CharPos>=
015850: 49 4E 54 45 47 45 52 28 57 6F 72 6B 69 6E 67 5E INTEGER(Working^
015860: 2E 42 6C 6F 63 6B 4C 65 6E 29 20 54 48 45 4E 0D .BlockLen) THEN.
015870: 0A 09 09 0D 0A 09 09 49 46 20 57 6F 72 6B 69 6E .......IF Workin
015880: 67 5E 2E 4E 65 78 74 3C 3E 4E 49 4C 20 54 48 45 g^.Next<>NIL THE
015890: 4E 0D 0A 09 09 09 57 6F 72 6B 69 6E 67 3A 3D 57 N.....Working:=W
0158A0: 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B 0D 0A 09 orking^.Next;...
0158B0: 09 09 43 68 61 72 50 6F 73 3A 3D 30 3B 0D 0A 09 ..CharPos:=0;...
0158C0: 09 45 4C 53 45 0D 0A 09 09 09 52 45 54 55 52 4E .ELSE.....RETURN
0158D0: 20 46 41 4C 53 45 0D 0A 09 09 09 45 4E 44 3B 0D FALSE.....END;.
0158E0: 0A 09 09 45 4E 44 3B 20 28 2A 43 68 61 72 50 6F ...END; (*CharPo
0158F0: 73 3E 42 6C 6F 63 6B 4C 65 6E 2A 29 0D 0A 09 52 s>BlockLen*)...R
015900: 45 54 55 52 4E 20 57 6F 72 6B 69 6E 67 5E 2E 43 ETURN Working^.C
015910: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3C 3E 45 hars[CharPos]<>E
015920: 4F 46 0D 0A 09 45 4E 44 20 41 64 76 61 6E 63 65 OF...END Advance
015930: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 73 ;..PROCEDURE Ins
015940: 69 64 65 42 6C 6F 63 6B 28 56 41 52 20 46 3A 45 ideBlock(VAR F:E
015950: 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 4E ditFile):BOOLEAN
015960: 3B 0D 0A 0D 0A 28 2A 09 43 68 65 63 6B 20 69 66 ;....(*.Check if
015970: 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 6F current positio
015980: 6E 20 69 73 20 69 6E 73 69 64 65 20 62 6C 6F 63 n is inside bloc
015990: 6B 20 2A 29 0D 0A 56 41 52 09 62 3A 50 54 65 78 k *)..VAR.b:PTex
0159A0: 74 3B 0D 0A 09 43 6F 75 6C 64 42 65 3A 42 4F 4F t;...CouldBe:BOO
0159B0: 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A 09 73 LEAN;..BEGIN...s
0159C0: 65 74 63 75 72 70 6F 73 28 46 29 3B 0D 0A 09 49 etcurpos(F);...I
0159D0: 46 20 28 46 2E 4C 61 62 65 6C 73 5B 31 30 5D 2E F (F.Labels[10].
0159E0: 42 6C 6F 63 6B 3D 4E 49 4C 29 20 4F 52 20 28 46 Block=NIL) OR (F
0159F0: 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C 6F 63 .Labels[11].Bloc
015A00: 09 09 53 65 71 57 72 69 74 65 42 6C 6F 63 6B 28 ..SeqWriteBlock(
015A10: 66 2E 66 2C 41 44 52 28 62 29 2C 42 6C 6F 63 6B f.f,ADR(b),Block
015A20: 53 69 7A 65 2C 0D 0A 09 09 09 09 09 09 72 65 70 Size,........rep
015A30: 6C 79 29 3B 0D 0A 09 09 09 09 09 70 6F 73 3A 3D ly);.......pos:=
015A40: 30 3B 0D 0A 09 09 09 09 09 49 46 20 72 65 70 6C 0;.......IF repl
015A50: 79 3C 3E 42 6C 6F 63 6B 53 69 7A 65 20 54 48 45 y<>BlockSize THE
015A60: 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 09 09 N EXIT END;.....
015A70: 09 09 45 4E 44 3B 20 28 2A 49 46 2A 29 0D 0A 09 ..END; (*IF*)...
015A80: 09 09 09 62 5B 70 6F 73 5D 3A 3D 43 68 61 72 73 ...b[pos]:=Chars
015A90: 5B 69 5D 3B 0D 0A 09 09 09 09 49 4E 43 28 70 6F [i];......INC(po
015AA0: 73 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 28 2A 46 s);......END;(*F
015AB0: 4F 52 2A 29 0D 0A 09 09 0D 0A 09 09 09 49 46 20 OR*).........IF
015AC0: 57 6F 72 6B 69 6E 67 3D 66 2E 43 75 72 50 6F 73 Working=f.CurPos
015AD0: 2E 42 6C 6F 63 6B 20 54 48 45 4E 0D 0A 09 09 09 .Block THEN.....
015AE0: 20 20 20 20 45 64 69 74 53 74 61 74 75 73 2E 53 EditStatus.S
015AF0: 65 74 50 6F 73 69 74 69 6F 6E 28 66 2E 66 2C 43 etPosition(f.f,C
015B00: 68 61 72 6E 6F 2B 4F 52 44 28 66 2E 43 75 72 50 harno+ORD(f.CurP
015B10: 6F 73 2E 4F 66 66 73 65 74 29 29 0D 0A 09 09 09 os.Offset)).....
015B20: 20 20 20 20 45 4E 44 3B 0D 0A 09 09 09 43 68 61 END;.....Cha
015B30: 72 6E 6F 3A 3D 43 68 61 72 6E 6F 2B 4F 52 44 28 rno:=Charno+ORD(
015B40: 42 6C 6F 63 6B 4C 65 6E 29 3B 0D 0A 09 09 09 57 BlockLen);.....W
015B50: 6F 72 6B 69 6E 67 3A 3D 4E 65 78 74 0D 0A 09 09 orking:=Next....
015B60: 09 45 4E 44 3B 28 2A 57 49 54 48 20 57 6F 72 6B .END;(*WITH Work
015B70: 69 6E 67 2A 29 0D 0A 09 09 20 20 20 20 45 4E 44 ing*).... END
015B80: 3B 20 28 2A 57 48 49 4C 45 20 57 6F 72 6B 69 6E ; (*WHILE Workin
015B90: 67 3C 3E 4E 49 4C 20 61 6E 64 20 6E 6F 74 20 64 g<>NIL and not d
015BA0: 69 73 63 20 66 75 6C 6C 2A 29 0D 0A 09 09 46 4F isc full*)....FO
015BB0: 52 20 70 6F 73 3A 3D 70 6F 73 20 54 4F 20 42 6C R pos:=pos TO Bl
015BC0: 6F 63 6B 53 69 7A 65 2D 31 20 44 4F 20 62 5B 70 ockSize-1 DO b[p
015BD0: 6F 73 5D 3A 3D 45 4F 46 20 45 4E 44 3B 0D 0A 09 os]:=EOF END;...
015BE0: 09 49 46 20 72 65 70 6C 79 3D 42 6C 6F 63 6B 53 .IF reply=BlockS
015BF0: 69 7A 65 20 54 48 45 4E 20 0D 0A 09 09 09 53 65 ize THEN .....Se
015C00: 20 09 09 49 46 20 57 6F 72 6B 69 6E 67 5E 2E 50 ..IF Working^.P
015C10: 72 65 64 3C 3E 4E 49 4C 20 54 48 45 4E 0D 0A 09 red<>NIL THEN...
015C20: 09 09 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B 69 ..Working:=Worki
015C30: 6E 67 5E 2E 50 72 65 64 3B 0D 0A 09 09 09 43 68 ng^.Pred;.....Ch
015C40: 61 72 50 6F 73 3A 3D 57 6F 72 6B 69 6E 67 5E 2E arPos:=Working^.
015C50: 42 6C 6F 63 6B 4C 65 6E 3B 0D 0A 09 09 45 4C 53 BlockLen;....ELS
015C60: 45 0D 0A 09 09 09 52 45 54 55 52 4E 20 46 41 4C E.....RETURN FAL
015C70: 53 45 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 SE.....END;....E
015C80: 4E 44 3B 20 28 2A 43 68 61 72 50 6F 73 3C 3D 30 ND; (*CharPos<=0
015C90: 2A 29 0D 0A 09 44 45 43 28 43 68 61 72 50 6F 73 *)...DEC(CharPos
015CA0: 29 3B 0D 0A 09 52 45 54 55 52 4E 20 54 52 55 45 );...RETURN TRUE
015CB0: 0D 0A 09 45 4E 44 20 42 61 63 6B 75 70 3B 0D 0A ...END Backup;..
015CC0: 50 52 4F 43 45 44 55 52 45 20 4F 70 65 6E 46 69 PROCEDURE OpenFi
015CD0: 6C 65 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C le(VAR f:EditFil
015CE0: 65 3B 66 6E 3A 46 69 6C 65 4E 61 6D 65 3B 56 41 e;fn:FileName;VA
015CF0: 52 20 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 3B R reply:INTEGER;
015D00: 50 6F 73 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A Pos:CARDINAL);..
015D10: 56 41 52 09 70 3A 50 54 65 78 74 3B 0D 0A 42 45 VAR.p:PText;..BE
015D20: 47 49 4E 0D 0A 09 4C 6F 6F 6B 75 70 28 66 2E 66 GIN...Lookup(f.f
015D30: 2C 66 6E 2C 72 65 70 6C 79 29 3B 0D 0A 09 49 46 ,fn,reply);...IF
015D40: 20 50 6F 73 3D 36 35 35 33 35 20 54 48 45 4E 20 Pos=65535 THEN
015D50: 43 68 61 72 6E 6F 3A 3D 45 64 69 74 53 74 61 74 Charno:=EditStat
015D60: 75 73 2E 47 65 74 50 6F 73 69 74 69 6F 6E 28 66 us.GetPosition(f
015D70: 2E 66 29 3B 0D 0A 09 45 4C 53 45 20 43 68 61 72 .f);...ELSE Char
015D80: 6E 6F 3A 3D 50 6F 73 20 45 4E 44 3B 0D 0A 09 43 no:=Pos END;...C
015D90: 68 61 72 73 72 65 61 64 3A 3D 30 3B 0D 0A 09 49 harsread:=0;...I
015DA0: 46 20 72 65 70 6C 79 3C 30 20 54 48 45 4E 20 0D F reply<0 THEN .
015DB0: 0A 09 09 72 65 70 6C 79 3A 3D 2D 32 3B 0D 0A 09 ...reply:=-2;...
015DC0: 09 52 45 54 55 52 4E 0D 0A 09 09 45 4E 44 3B 0D .RETURN....END;.
015DD0: 0A 09 70 3A 3D 4E 49 4C 3B 0D 0A 09 72 65 70 6C ..p:=NIL;...repl
015DE0: 79 3A 3D 30 3B 0D 0A 09 46 4F 52 20 69 3A 3D 30 y:=0;...FOR i:=0
015DF0: 20 54 4F 20 48 49 47 48 28 66 2E 4C 61 62 65 6C TO HIGH(f.Label
015E00: 71 57 72 69 74 65 42 6C 6F 63 6B 28 66 2E 66 2C qWriteBlock(f.f,
015E10: 41 44 52 28 62 29 2C 42 6C 6F 63 6B 53 69 7A 65 ADR(b),BlockSize
015E20: 2C 72 65 70 6C 79 29 20 0D 0A 09 09 09 45 4E 44 ,reply) .....END
015E30: 3B 0D 0A 09 09 43 6C 6F 73 65 28 66 2E 66 29 3B ;....Close(f.f);
015E40: 0D 0A 09 09 49 46 20 72 65 70 6C 79 3C 3E 42 6C ....IF reply<>Bl
015E50: 6F 63 6B 53 69 7A 65 20 54 48 45 4E 20 72 65 70 ockSize THEN rep
015E60: 6C 79 3A 3D 2D 31 0D 0A 09 09 45 4C 53 45 20 72 ly:=-1....ELSE r
015E70: 65 70 6C 79 3A 3D 30 20 45 4E 44 3B 0D 0A 09 45 eply:=0 END;...E
015E80: 4C 53 45 09 72 65 70 6C 79 3A 3D 2D 32 20 0D 0A LSE.reply:=-2 ..
015E90: 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 43 6C 6F ..END;...END Clo
015EA0: 73 65 46 69 6C 65 3B 0D 0A 09 09 09 0D 0A 09 0D seFile;.........
015EB0: 0A 50 52 4F 43 45 44 55 52 45 20 41 62 61 6E 64 .PROCEDURE Aband
015EC0: 6F 6E 46 69 6C 65 28 66 3A 45 64 69 74 46 69 6C onFile(f:EditFil
015ED0: 65 29 3B 0D 0A 56 41 52 09 70 3A 50 54 65 78 74 e);..VAR.p:PText
015EE0: 3B 0D 0A 28 2A 09 41 62 61 6E 64 6F 6E 20 63 68 ;..(*.Abandon ch
015EF0: 61 6E 67 65 73 20 74 6F 20 61 6E 20 65 64 69 74 anges to an edit
015F00: 20 66 69 6C 65 2A 29 0D 0A 42 45 47 49 4E 0D 0A file*)..BEGIN..
015F10: 09 57 6F 72 6B 69 6E 67 3A 3D 66 2E 43 68 61 69 .Working:=f.Chai
015F20: 6E 3B 0D 0A 09 57 48 49 4C 45 20 57 6F 72 6B 69 n;...WHILE Worki
015F30: 6E 67 3C 3E 4E 49 4C 20 44 4F 20 0D 0A 09 09 70 ng<>NIL DO ....p
015F40: 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B :=Working^.Next;
015F50: 0D 0A 09 09 44 49 53 50 4F 53 45 28 57 6F 72 6B ....DISPOSE(Work
015F60: 69 6E 67 29 3B 0D 0A 09 09 57 6F 72 6B 69 6E 67 ing);....Working
015F70: 3A 3D 70 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 :=p;....END;...E
015F80: 4E 44 20 41 62 61 6E 64 6F 6E 46 69 6C 65 3B 0D ND AbandonFile;.
015F90: 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 50 6F .PROCEDURE GetPo
015FA0: 73 69 74 69 6F 6E 28 56 41 52 20 66 3A 45 64 69 sition(VAR f:Edi
015FB0: 74 46 69 6C 65 3B 56 41 52 20 70 3A 50 6F 73 69 tFile;VAR p:Posi
015FC0: 74 69 6F 6E 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 tion);..BEGIN...
015FD0: 70 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 45 p:=f.CurPos;...E
015FE0: 4E 44 20 47 65 74 50 6F 73 69 74 69 6F 6E 3B 0D ND GetPosition;.
015FF0: 0A 09 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 .....PROCEDURE S
016000: 73 29 20 44 4F 20 66 2E 4C 61 62 65 6C 73 5B 69 s) DO f.Labels[i
016010: 5D 2E 42 6C 6F 63 6B 3A 3D 4E 49 4C 20 45 4E 44 ].Block:=NIL END
016020: 3B 0D 0A 09 4C 4F 4F 50 09 28 2A 72 65 61 64 20 ;...LOOP.(*read
016030: 69 6E 20 74 68 65 20 66 69 6C 65 2A 29 0D 0A 09 in the file*)...
016040: 09 49 46 20 46 72 65 65 53 70 61 63 65 28 29 3C .IF FreeSpace()<
016050: 48 65 61 64 52 6F 6F 6D 20 54 48 45 4E 0D 0A 09 HeadRoom THEN...
016060: 09 09 41 62 61 6E 64 6F 6E 46 69 6C 65 28 66 29 ..AbandonFile(f)
016070: 3B 0D 0A 09 09 09 72 65 70 6C 79 3A 3D 2D 33 3B ;.....reply:=-3;
016080: 0D 0A 09 09 09 52 45 54 55 52 4E 0D 0A 09 09 09 .....RETURN.....
016090: 45 4E 44 3B 0D 0A 09 09 4E 65 77 42 6C 6F 63 6B END;....NewBlock
0160A0: 3B 0D 0A 09 09 57 6F 72 6B 69 6E 67 5E 2E 50 72 ;....Working^.Pr
0160B0: 65 64 3A 3D 70 3B 0D 0A 09 09 49 46 20 70 3D 4E ed:=p;....IF p=N
0160C0: 49 4C 20 54 48 45 4E 20 66 2E 43 68 61 69 6E 3A IL THEN f.Chain:
0160D0: 3D 57 6F 72 6B 69 6E 67 0D 0A 09 09 45 4C 53 45 =Working....ELSE
0160E0: 20 70 5E 2E 4E 65 78 74 3A 3D 57 6F 72 6B 69 6E p^.Next:=Workin
0160F0: 67 20 45 4E 44 3B 0D 0A 09 09 53 65 71 52 65 61 g END;....SeqRea
016100: 64 42 6C 6F 63 6B 28 66 2E 66 2C 41 44 52 28 57 dBlock(f.f,ADR(W
016110: 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 29 2C 42 orking^.Chars),B
016120: 6C 6F 63 6B 53 69 7A 65 2C 69 29 3B 0D 0A 09 09 lockSize,i);....
016130: 49 46 20 69 3C 3E 42 6C 6F 63 6B 53 69 7A 65 20 IF i<>BlockSize
016140: 54 48 45 4E 20 28 2A 65 6E 64 20 6F 66 20 66 69 THEN (*end of fi
016150: 6C 65 20 66 6F 75 6E 64 2A 29 0D 0A 09 09 09 49 le found*).....I
016160: 46 20 70 3C 3E 4E 49 4C 20 54 48 45 4E 20 0D 0A F p<>NIL THEN ..
016170: 09 09 09 09 70 5E 2E 4E 65 78 74 3A 3D 4E 49 4C ....p^.Next:=NIL
016180: 3B 0D 0A 09 09 09 09 44 49 53 50 4F 53 45 28 57 ;......DISPOSE(W
016190: 6F 72 6B 69 6E 67 29 3B 0D 0A 09 09 09 45 4C 53 orking);.....ELS
0161A0: 45 09 28 2A 61 6C 77 61 79 73 20 6B 65 65 70 20 E.(*always keep
0161B0: 61 74 20 6C 65 61 73 74 20 6F 6E 65 20 62 6C 6F at least one blo
0161C0: 63 6B 2A 29 0D 0A 09 09 09 09 57 6F 72 6B 69 6E ck*)......Workin
0161D0: 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 3A 3D 31 3B 0D g^.BlockLen:=1;.
0161E0: 0A 20 20 20 09 09 09 09 57 6F 72 6B 69 6E 67 5E . ....Working^
0161F0: 2E 43 68 61 72 73 5B 30 5D 3A 3D 45 4F 46 3B 0D .Chars[0]:=EOF;.
016200: 65 74 50 6F 73 69 74 69 6F 6E 28 56 41 52 20 66 etPosition(VAR f
016210: 3A 45 64 69 74 46 69 6C 65 3B 70 3A 50 6F 73 69 :EditFile;p:Posi
016220: 74 69 6F 6E 29 3B 0D 0A 28 2A 09 67 65 74 2F 73 tion);..(*.get/s
016230: 65 74 20 70 6F 73 69 74 69 6F 6E 20 69 6E 20 61 et position in a
016240: 20 66 69 6C 65 2A 29 0D 0A 42 45 47 49 4E 0D 0A file*)..BEGIN..
016250: 09 66 2E 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 .f.CurPos:=p;...
016260: 0D 0A 09 28 2A 09 70 6F 69 6E 74 65 72 20 6D 61 ...(*.pointer ma
016270: 79 20 62 65 20 70 6F 69 6E 74 69 6E 67 20 6A 75 y be pointing ju
016280: 73 74 20 61 66 74 65 72 20 65 6E 64 20 6F 66 20 st after end of
016290: 62 6C 6F 63 6B 0D 0A 09 09 28 61 66 74 65 72 20 block....(after
0162A0: 64 65 6C 65 74 65 73 29 2C 20 72 65 67 75 6C 61 deletes), regula
0162B0: 72 69 7A 65 20 74 68 61 74 20 73 69 74 75 61 74 rize that situat
0162C0: 69 6F 6E 2A 29 0D 0A 0D 0A 09 57 49 54 48 20 66 ion*).....WITH f
0162D0: 2E 43 75 72 50 6F 73 20 44 4F 0D 0A 09 09 49 46 .CurPos DO....IF
0162E0: 20 09 20 20 20 20 28 4F 66 66 73 65 74 3E 3D 42 . (Offset>=B
0162F0: 6C 6F 63 6B 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 lock^.BlockLen)
016300: 0D 0A 09 09 09 41 4E 44 20 28 42 6C 6F 63 6B 5E .....AND (Block^
016310: 2E 4E 65 78 74 3C 3E 4E 49 4C 29 20 54 48 45 4E .Next<>NIL) THEN
016320: 0D 0A 09 09 09 4F 66 66 73 65 74 3A 3D 30 3B 0D .....Offset:=0;.
016330: 0A 09 09 09 42 6C 6F 63 6B 3A 3D 42 6C 6F 63 6B ....Block:=Block
016340: 5E 2E 4E 65 78 74 0D 0A 09 09 09 45 4E 44 3B 0D ^.Next.....END;.
016350: 0A 09 09 45 4E 44 3B 20 0D 0A 09 45 4E 44 20 53 ...END; ...END S
016360: 65 74 50 6F 73 69 74 69 6F 6E 3B 0D 0A 50 52 4F etPosition;..PRO
016370: 43 45 44 55 52 45 20 4C 61 62 65 6C 4F 70 28 56 CEDURE LabelOp(V
016380: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 44 65 AR f:EditFile;De
016390: 66 69 6E 65 3A 42 4F 4F 4C 45 41 4E 3B 63 68 3A fine:BOOLEAN;ch:
0163A0: 43 48 41 52 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A CHAR):BOOLEAN;..
0163B0: 28 2A 0D 0A 09 70 65 72 66 6F 72 6D 20 61 20 6C (*...perform a l
0163C0: 61 62 65 6C 20 6F 70 65 72 61 74 69 6F 6E 20 2C abel operation ,
0163D0: 20 72 65 74 75 72 6E 20 74 72 75 65 20 69 66 20 return true if
0163E0: 73 75 63 63 65 73 73 66 75 6C 0D 0A 09 44 65 66 successful...Def
0163F0: 69 6E 65 20 69 73 20 74 72 75 65 20 69 66 20 74 ine is true if t
016400: 0A 09 09 09 09 43 68 61 72 50 6F 73 3A 3D 30 3B .....CharPos:=0;
016410: 0D 0A 09 09 09 09 73 61 76 65 63 75 72 70 6F 73 ......savecurpos
016420: 28 66 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A (f);......END;..
016430: 09 09 09 45 58 49 54 0D 0A 09 09 45 4C 53 45 09 ...EXIT....ELSE.
016440: 0D 0A 09 09 0D 0A 09 09 09 57 48 49 4C 45 20 28 .........WHILE (
016450: 69 3E 30 29 20 41 4E 44 20 28 57 6F 72 6B 69 6E i>0) AND (Workin
016460: 67 5E 2E 43 68 61 72 73 5B 69 2D 31 5D 3D 45 4F g^.Chars[i-1]=EO
016470: 46 29 20 44 4F 0D 0A 09 09 09 09 44 45 43 28 69 F) DO......DEC(i
016480: 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 );......END;....
016490: 09 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 .IF (Working^.Ch
0164A0: 61 72 73 5B 69 2D 31 5D 3C 3E 30 61 78 29 20 41 ars[i-1]<>0ax) A
0164B0: 4E 44 20 28 69 3C 42 6C 6F 63 6B 53 69 7A 65 29 ND (i<BlockSize)
0164C0: 20 54 48 45 4E 0D 0A 09 09 09 09 49 4E 43 28 69 THEN......INC(i
0164D0: 29 3B 0D 0A 09 09 09 09 57 6F 72 6B 69 6E 67 5E );......Working^
0164E0: 2E 43 68 61 72 73 5B 69 2D 31 5D 3A 3D 45 4F 46 .Chars[i-1]:=EOF
0164F0: 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 ;......END;.....
016500: 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 Working^.BlockLe
016510: 6E 3A 3D 69 3B 0D 0A 09 09 09 49 46 20 43 68 61 n:=i;.....IF Cha
016520: 72 73 72 65 61 64 3C 3D 43 68 61 72 6E 6F 20 20 rsread<=Charno
016530: 54 48 45 4E 20 0D 0A 09 09 09 09 43 68 61 72 50 THEN ......CharP
016540: 6F 73 3A 3D 43 68 61 72 6E 6F 2D 43 68 61 72 73 os:=Charno-Chars
016550: 72 65 61 64 3B 0D 0A 09 09 09 09 73 61 76 65 63 read;......savec
016560: 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 70 urpos(f);......p
016570: 3A 3D 57 6F 72 6B 69 6E 67 3B 0D 0A 09 09 09 09 :=Working;......
016580: 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 IF (Working^.Cha
016590: 72 73 5B 43 68 61 72 50 6F 73 5D 3D 4C 46 29 20 rs[CharPos]=LF)
0165A0: 0D 0A 09 09 09 09 20 20 20 41 4E 44 20 42 61 63 ...... AND Bac
0165B0: 6B 75 70 28 29 20 54 48 45 4E 0D 0A 09 09 09 09 kup() THEN......
0165C0: 09 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D .savecurpos(f);.
0165D0: 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 09 ......END;......
0165E0: 57 6F 72 6B 69 6E 67 3A 3D 70 3B 0D 0A 09 09 09 Working:=p;.....
0165F0: 09 45 4E 44 3B 0D 0A 09 09 09 43 68 61 72 73 72 .END;.....Charsr
016600: 68 65 20 6F 70 65 72 61 74 69 6F 6E 20 69 73 20 he operation is
016610: 61 20 64 65 66 69 6E 65 20 6C 61 62 65 6C 0D 0A a define label..
016620: 09 69 74 20 69 73 20 66 61 6C 73 65 20 69 66 20 .it is false if
016630: 69 74 20 69 73 20 61 20 67 6F 74 6F 20 6C 61 62 it is a goto lab
016640: 65 6C 0D 0A 2A 29 0D 0A 0D 0A 56 41 52 09 69 3A el..*)....VAR.i:
016650: 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E CARDINAL;..BEGIN
016660: 0D 0A 09 28 2A 24 41 5E 2A 29 0D 0A 09 63 68 3A ...(*$A^*)...ch:
016670: 3D 43 41 50 28 63 68 29 3B 0D 0A 09 43 41 53 45 =CAP(ch);...CASE
016680: 20 63 68 20 4F 46 0D 0A 09 09 27 42 27 3A 20 69 ch OF....'B': i
016690: 3A 3D 31 30 7C 0D 0A 09 09 27 5E 4B 27 2C 27 4B :=10|....'^K','K
0166A0: 27 3A 20 69 3A 3D 31 31 7C 0D 0A 09 09 31 78 2E ': i:=11|....1x.
0166B0: 2E 33 78 3A 69 3A 3D 4F 52 44 28 63 68 29 2B 31 .3x:i:=ORD(ch)+1
0166C0: 31 7C 0D 0A 09 09 27 30 27 2E 2E 27 39 27 3A 69 1|....'0'..'9':i
0166D0: 3A 3D 4F 52 44 28 63 68 29 2D 4F 52 44 28 27 30 :=ORD(ch)-ORD('0
0166E0: 27 29 7C 0D 0A 09 09 30 62 30 78 2E 2E 30 62 39 ')|....0b0x..0b9
0166F0: 78 3A 69 3A 3D 4F 52 44 28 63 68 29 2D 30 62 30 x:i:=ORD(ch)-0b0
016700: 68 2B 31 35 0D 0A 09 09 45 4C 53 45 20 52 45 54 h+15....ELSE RET
016710: 55 52 4E 20 46 41 4C 53 45 0D 0A 09 09 45 4E 44 URN FALSE....END
016720: 3B 0D 0A 09 49 46 20 44 65 66 69 6E 65 20 54 48 ;...IF Define TH
016730: 45 4E 0D 0A 09 09 47 65 74 50 6F 73 69 74 69 6F EN....GetPositio
016740: 6E 28 66 2C 66 2E 4C 61 62 65 6C 73 5B 69 5D 29 n(f,f.Labels[i])
016750: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 49 46 20 66 ;...ELSE....IF f
016760: 2E 4C 61 62 65 6C 73 5B 69 5D 2E 42 6C 6F 63 6B .Labels[i].Block
016770: 3D 4E 49 4C 20 54 48 45 4E 20 52 45 54 55 52 4E =NIL THEN RETURN
016780: 20 46 41 4C 53 45 20 45 4E 44 3B 0D 0A 09 09 53 FALSE END;....S
016790: 65 74 50 6F 73 69 74 69 6F 6E 28 66 2C 66 2E 4C etPosition(f,f.L
0167A0: 61 62 65 6C 73 5B 69 5D 29 3B 0D 0A 09 20 09 45 abels[i]);... .E
0167B0: 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 54 52 55 ND;...RETURN TRU
0167C0: 45 3B 0D 0A 09 45 4E 44 20 4C 61 62 65 6C 4F 70 E;...END LabelOp
0167D0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 41 64 76 ;..PROCEDURE Adv
0167E0: 61 6E 63 65 28 29 3A 42 4F 4F 4C 45 41 4E 3B 0D ance():BOOLEAN;.
0167F0: 0A 0D 0A 28 2A 09 61 64 76 61 6E 63 65 20 61 20 ...(*.advance a
016800: 65 61 64 3A 3D 43 68 61 72 73 72 65 61 64 2B 4F ead:=Charsread+O
016810: 52 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 RD(Working^.Bloc
016820: 6B 4C 65 6E 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D kLen);.....END;.
016830: 0A 09 09 70 3A 3D 57 6F 72 6B 69 6E 67 3B 0D 0A ...p:=Working;..
016840: 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B 31 ..reply:=reply+1
016850: 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A 72 65 61 64 ;....END; (*read
016860: 20 66 69 6C 65 20 6C 6F 6F 70 2A 29 0D 0A 09 43 file loop*)...C
016870: 6C 6F 73 65 28 66 2E 66 29 3B 0D 0A 09 45 4E 44 lose(f.f);...END
016880: 20 4F 70 65 6E 46 69 6C 65 3B 0D 0A 09 09 0D 0A OpenFile;......
016890: 50 52 4F 43 45 44 55 52 45 20 43 6C 6F 73 65 46 PROCEDURE CloseF
0168A0: 69 6C 65 28 56 41 52 20 66 3A 45 64 69 74 46 69 ile(VAR f:EditFi
0168B0: 6C 65 3B 56 41 52 20 72 65 70 6C 79 3A 49 4E 54 le;VAR reply:INT
0168C0: 45 47 45 52 29 3B 0D 0A 56 41 52 09 0D 0A 09 62 EGER);..VAR....b
0168D0: 3A 41 52 52 41 59 5B 30 2E 2E 42 6C 6F 63 6B 53 :ARRAY[0..BlockS
0168E0: 69 7A 65 2D 31 5D 20 4F 46 20 43 48 41 52 3B 0D ize-1] OF CHAR;.
0168F0: 0A 09 70 6F 73 3A 49 4E 54 45 47 45 52 3B 0D 0A ..pos:INTEGER;..
016900: 42 45 47 49 4E 0D 0A 09 4D 61 6B 65 42 41 4B 28 BEGIN...MakeBAK(
016910: 66 2E 66 2C 72 65 70 6C 79 29 3B 0D 0A 09 43 68 f.f,reply);...Ch
016920: 61 72 6E 6F 3A 3D 31 3B 0D 0A 09 49 46 20 72 65 arno:=1;...IF re
016930: 70 6C 79 3D 30 20 54 48 45 4E 20 0D 0A 09 09 57 ply=0 THEN ....W
016940: 6F 72 6B 69 6E 67 3A 3D 66 2E 43 68 61 69 6E 3B orking:=f.Chain;
016950: 0D 0A 09 09 70 6F 73 3A 3D 30 3B 0D 0A 09 09 72 ....pos:=0;....r
016960: 65 70 6C 79 3A 3D 42 6C 6F 63 6B 53 69 7A 65 3B eply:=BlockSize;
016970: 0D 0A 09 09 4C 4F 4F 50 0D 0A 09 09 20 20 20 20 ....LOOP....
016980: 49 46 20 20 28 57 6F 72 6B 69 6E 67 3D 4E 49 4C IF (Working=NIL
016990: 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 3B ) THEN EXIT END;
0169A0: 0D 0A 09 09 20 20 20 20 57 49 54 48 20 57 6F 72 .... WITH Wor
0169B0: 6B 69 6E 67 5E 20 44 4F 0D 0A 09 09 09 46 4F 52 king^ DO.....FOR
0169C0: 20 69 3A 3D 30 20 54 4F 20 49 4E 54 45 47 45 52 i:=0 TO INTEGER
0169D0: 28 42 6C 6F 63 6B 4C 65 6E 29 2D 31 20 44 4F 0D (BlockLen)-1 DO.
0169E0: 0A 09 09 09 09 49 46 20 70 6F 73 3E 3D 42 6C 6F .....IF pos>=Blo
0169F0: 63 6B 53 69 7A 65 20 54 48 45 4E 0D 0A 09 09 09 ckSize THEN.....
016A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
016A10: 13 00 01 00 02 09 52 E5 13 00 C9 02 00 00 00 02 ......R.........
016A20: 13 00 C5 02 00 00 00 02 13 00 C1 02 00 00 00 02 ................
016A30: 13 00 C6 02 00 00 00 02 13 00 C2 02 00 00 00 02 ................
016A40: 13 00 C7 02 00 00 00 02 13 00 C3 02 00 00 00 02 ................
016A50: 13 00 C8 02 00 00 00 02 13 00 C4 02 00 00 00 02 ................
016A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016B00: 46 20 28 6E 75 6D 62 65 72 3D 4F 52 44 28 42 6C F (number=ORD(Bl
016B10: 6F 63 6B 4C 65 6E 29 29 20 28 2A 3D 3E 43 68 61 ockLen)) (*=>Cha
016B20: 72 50 6F 73 3D 30 2A 29 20 54 48 45 4E 0D 0A 09 rPos=0*) THEN...
016B30: 09 09 28 2A 44 65 6C 65 74 65 20 62 6C 6F 63 6B ..(*Delete block
016B40: 2A 29 0D 0A 0D 0A 09 09 09 49 46 20 4E 65 78 74 *).......IF Next
016B50: 3C 3E 4E 49 4C 20 54 48 45 4E 20 4E 65 78 74 5E <>NIL THEN Next^
016B60: 2E 50 72 65 64 3A 3D 50 72 65 64 20 45 4E 44 3B .Pred:=Pred END;
016B70: 0D 0A 09 09 09 49 46 20 50 72 65 64 3C 3E 4E 49 .....IF Pred<>NI
016B80: 4C 20 54 48 45 4E 20 0D 0A 09 09 09 09 50 72 65 L THEN ......Pre
016B90: 64 5E 2E 4E 65 78 74 3A 3D 4E 65 78 74 3B 0D 0A d^.Next:=Next;..
016BA0: 09 09 09 09 44 49 53 50 4F 53 45 28 57 6F 72 6B ....DISPOSE(Work
016BB0: 69 6E 67 29 3B 0D 0A 09 09 09 45 4C 53 49 46 20 ing);.....ELSIF
016BC0: 4E 65 78 74 3C 3E 4E 49 4C 20 54 48 45 4E 20 0D Next<>NIL THEN .
016BD0: 0A 09 09 09 09 66 2E 43 68 61 69 6E 3A 3D 4E 65 .....f.Chain:=Ne
016BE0: 78 74 3B 0D 0A 09 09 09 09 44 49 53 50 4F 53 45 xt;......DISPOSE
016BF0: 28 57 6F 72 6B 69 6E 67 29 3B 0D 0A 09 09 09 45 (Working);.....E
016C00: 4C 53 45 09 28 2A 6F 6E 6C 79 20 62 6C 6F 63 6B LSE.(*only block
016C10: 20 69 6E 20 66 69 6C 65 20 73 6F 20 6B 65 65 70 in file so keep
016C20: 2A 29 0D 0A 09 09 09 09 42 6C 6F 63 6B 4C 65 6E *)......BlockLen
016C30: 3A 3D 31 3B 0D 0A 09 09 09 09 57 6F 72 6B 69 6E :=1;......Workin
016C40: 67 5E 2E 43 68 61 72 73 5B 30 5D 3A 3D 45 4F 46 g^.Chars[0]:=EOF
016C50: 3B 0D 0A 09 09 09 09 45 4E 44 3B 28 2A 50 72 65 ;......END;(*Pre
016C60: 64 3C 3E 4E 49 4C 2A 29 0D 0A 09 09 45 4C 53 45 d<>NIL*)....ELSE
016C70: 09 0D 0A 09 09 09 49 46 20 4F 52 44 28 42 6C 6F ......IF ORD(Blo
016C80: 63 6B 4C 65 6E 29 3E 28 43 68 61 72 50 6F 73 2B ckLen)>(CharPos+
016C90: 6E 75 6D 62 65 72 29 20 54 48 45 4E 0D 0A 09 09 number) THEN....
016CA0: 09 20 20 20 20 4D 6F 76 65 64 6F 77 6E 28 41 44 . Movedown(AD
016CB0: 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 2B R(Chars[CharPos+
016CC0: 6E 75 6D 62 65 72 5D 29 2C 0D 0A 09 09 09 09 41 number]),......A
016CD0: 44 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 DR(Chars[CharPos
016CE0: 5D 29 2C 0D 0A 09 09 09 09 4F 52 44 28 42 6C 6F ]),......ORD(Blo
016CF0: 63 6B 4C 65 6E 29 2D 4F 52 44 28 43 68 61 72 50 ckLen)-ORD(CharP
016D00: 0A 09 09 43 68 61 72 50 6F 73 3A 3D 4F 66 66 73 ...CharPos:=Offs
016D10: 65 74 3B 0D 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D et;....Working:=
016D20: 42 6C 6F 63 6B 3B 0D 0A 09 09 45 4E 44 3B 0D 0A Block;....END;..
016D30: 09 43 68 61 72 73 72 65 61 64 3A 3D 30 3B 0D 0A .Charsread:=0;..
016D40: 09 69 3A 3D 72 65 70 6C 79 3B 0D 0A 09 72 3A 3D .i:=reply;...r:=
016D50: 46 72 6F 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3B FromFile.CurPos;
016D60: 0D 0A 09 71 3A 3D 54 6F 46 69 6C 65 2E 43 75 72 ...q:=ToFile.Cur
016D70: 50 6F 73 3B 0D 0A 09 46 72 6F 6D 46 69 6C 65 2E Pos;...FromFile.
016D80: 43 75 72 50 6F 73 3A 3D 46 72 6F 6D 46 69 6C 65 CurPos:=FromFile
016D90: 2E 4C 61 62 65 6C 73 5B 31 30 5D 3B 0D 0A 09 4C .Labels[10];...L
016DA0: 4F 4F 50 0D 0A 09 09 49 46 20 69 3D 30 20 54 48 OOP....IF i=0 TH
016DB0: 45 4E 20 0D 0A 09 09 09 45 58 49 54 20 0D 0A 09 EN .....EXIT ...
016DC0: 09 09 45 4E 44 3B 0D 0A 09 09 49 4E 43 28 43 68 ..END;....INC(Ch
016DD0: 61 72 73 72 65 61 64 29 3B 0D 0A 09 09 63 5B 43 arsread);....c[C
016DE0: 68 61 72 73 72 65 61 64 5D 3A 3D 57 6F 72 6B 69 harsread]:=Worki
016DF0: 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F ng^.Chars[CharPo
016E00: 73 5D 3B 0D 0A 09 09 49 46 20 28 43 68 61 72 73 s];....IF (Chars
016E10: 72 65 61 64 3D 48 49 47 48 28 63 29 29 20 4F 52 read=HIGH(c)) OR
016E20: 20 28 69 3D 31 29 20 54 48 45 4E 0D 0A 09 09 09 (i=1) THEN.....
016E30: 73 61 76 65 63 75 72 70 6F 73 28 46 72 6F 6D 46 savecurpos(FromF
016E40: 69 6C 65 29 3B 0D 0A 09 09 09 70 3A 3D 46 72 6F ile);.....p:=Fro
016E50: 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3B 0D 0A 09 mFile.CurPos;...
016E60: 09 09 54 6F 46 69 6C 65 2E 43 75 72 50 6F 73 3A ..ToFile.CurPos:
016E70: 3D 71 3B 0D 0A 09 09 09 57 48 49 4C 45 20 43 68 =q;.....WHILE Ch
016E80: 61 72 73 72 65 61 64 3E 30 20 44 4F 0D 0A 09 09 arsread>0 DO....
016E90: 09 09 49 46 20 43 68 61 72 73 72 65 61 64 3E 54 ..IF Charsread>T
016EA0: 68 69 72 64 20 54 48 45 4E 0D 0A 09 09 09 09 09 hird THEN.......
016EB0: 49 6E 73 43 68 61 72 73 28 54 6F 46 69 6C 65 2C InsChars(ToFile,
016EC0: 63 2C 54 68 69 72 64 29 3B 0D 0A 09 09 09 09 09 c,Third);.......
016ED0: 43 68 61 72 73 72 65 61 64 3A 3D 43 68 61 72 73 Charsread:=Chars
016EE0: 72 65 61 64 2D 54 68 69 72 64 3B 0D 0A 09 09 09 read-Third;.....
016EF0: 09 09 4D 6F 76 65 64 6F 77 6E 28 41 44 52 28 63 ..Movedown(ADR(c
016F00: 6B 3D 4E 49 4C 29 20 54 48 45 4E 0D 0A 09 09 52 k=NIL) THEN....R
016F10: 45 54 55 52 4E 20 46 41 4C 53 45 3B 0D 0A 09 09 ETURN FALSE;....
016F20: 45 4E 44 3B 0D 0A 09 62 3A 3D 46 2E 4C 61 62 65 END;...b:=F.Labe
016F30: 6C 73 5B 31 30 5D 2E 42 6C 6F 63 6B 3B 0D 0A 0D ls[10].Block;...
016F40: 0A 09 57 48 49 4C 45 20 28 62 3C 3E 4E 49 4C 29 ..WHILE (b<>NIL)
016F50: 20 41 4E 44 20 28 62 3C 3E 46 2E 4C 61 62 65 6C AND (b<>F.Label
016F60: 73 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 41 4E 44 s[11].Block) AND
016F70: 20 28 62 3C 3E 57 6F 72 6B 69 6E 67 29 20 44 4F (b<>Working) DO
016F80: 0D 0A 09 09 62 3A 3D 62 5E 2E 4E 65 78 74 3B 0D ....b:=b^.Next;.
016F90: 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 0D 0A 09 28 ...END;........(
016FA0: 2A 69 66 20 65 6E 64 20 70 72 65 63 65 64 65 73 *if end precedes
016FB0: 20 62 65 67 69 6E 6E 69 6E 67 20 6F 66 20 62 6C beginning of bl
016FC0: 6F 63 6B 2A 29 0D 0A 09 43 6F 75 6C 64 42 65 3A ock*)...CouldBe:
016FD0: 3D 62 3D 57 6F 72 6B 69 6E 67 3B 0D 0A 09 49 46 =b=Working;...IF
016FE0: 20 4E 4F 54 20 43 6F 75 6C 64 42 65 20 54 48 45 NOT CouldBe THE
016FF0: 4E 20 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 N RETURN FALSE E
017000: 4E 44 3B 0D 0A 09 49 46 20 62 3D 46 2E 4C 61 62 ND;...IF b=F.Lab
017010: 65 6C 73 5B 31 30 5D 2E 42 6C 6F 63 6B 20 54 48 els[10].Block TH
017020: 45 4E 0D 0A 09 09 28 2A 09 69 6E 20 73 74 61 72 EN....(*.in star
017030: 74 20 62 6C 6F 63 6B 20 2D 20 63 68 65 63 6B 20 t block - check
017040: 61 66 74 65 72 20 6C 61 62 65 6C 20 73 74 61 72 after label star
017050: 74 2A 29 0D 0A 09 09 43 6F 75 6C 64 42 65 3A 3D t*)....CouldBe:=
017060: 43 68 61 72 50 6F 73 3E 3D 4F 52 44 28 46 2E 4C CharPos>=ORD(F.L
017070: 61 62 65 6C 73 5B 31 30 5D 2E 4F 66 66 73 65 74 abels[10].Offset
017080: 29 0D 0A 09 09 45 4E 44 3B 0D 0A 09 49 46 20 62 )....END;...IF b
017090: 3D 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C =F.Labels[11].Bl
0170A0: 6F 63 6B 20 54 48 45 4E 0D 0A 09 09 28 2A 09 69 ock THEN....(*.i
0170B0: 6E 20 73 74 61 72 74 20 62 6C 6F 63 6B 20 2D 20 n start block -
0170C0: 63 68 65 63 6B 20 61 66 74 65 72 20 6C 61 62 65 check after labe
0170D0: 6C 20 73 74 61 72 74 2A 29 0D 0A 09 09 43 6F 75 l start*)....Cou
0170E0: 6C 64 42 65 3A 3D 43 6F 75 6C 64 42 65 20 41 4E ldBe:=CouldBe AN
0170F0: 44 20 28 43 68 61 72 50 6F 73 3C 3D 4F 52 44 28 D (CharPos<=ORD(
017100: 5B 54 68 69 72 64 2B 31 5D 29 2C 0D 0A 09 09 09 [Third+1]),.....
017110: 09 09 09 41 44 52 28 63 29 2C 43 68 61 72 73 72 ...ADR(c),Charsr
017120: 65 61 64 29 3B 0D 0A 09 09 09 09 45 4C 53 45 0D ead);......ELSE.
017130: 0A 09 09 09 09 09 49 6E 73 43 68 61 72 73 28 54 ......InsChars(T
017140: 6F 46 69 6C 65 2C 63 2C 43 68 61 72 73 72 65 61 oFile,c,Charsrea
017150: 64 29 3B 0D 0A 09 09 09 09 09 43 68 61 72 73 72 d);.......Charsr
017160: 65 61 64 3A 3D 30 3B 0D 0A 09 09 09 09 09 45 4E ead:=0;.......EN
017170: 44 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 D;......END;....
017180: 09 71 3A 3D 54 6F 46 69 6C 65 2E 43 75 72 50 6F .q:=ToFile.CurPo
017190: 73 3B 0D 0A 09 09 09 46 72 6F 6D 46 69 6C 65 2E s;.....FromFile.
0171A0: 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 09 09 73 CurPos:=p;.....s
0171B0: 65 74 63 75 72 70 6F 73 28 46 72 6F 6D 46 69 6C etcurpos(FromFil
0171C0: 65 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 e);.....END;....
0171D0: 49 46 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 29 IF NOT Advance()
0171E0: 20 54 48 45 4E 20 45 58 49 54 20 28 2A 20 6E 65 THEN EXIT (* ne
0171F0: 76 65 72 20 74 61 6B 65 6E 2A 29 20 45 4E 44 3B ver taken*) END;
017200: 0D 0A 09 09 44 45 43 28 69 29 3B 0D 0A 09 09 45 ....DEC(i);....E
017210: 4E 44 3B 09 28 2A 4C 4F 4F 50 2A 29 0D 0A 09 46 ND;.(*LOOP*)...F
017220: 72 6F 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3A 3D romFile.CurPos:=
017230: 72 3B 0D 0A 09 54 6F 46 69 6C 65 2E 43 75 72 50 r;...ToFile.CurP
017240: 6F 73 3A 3D 71 3B 0D 0A 09 52 45 54 55 52 4E 20 os:=q;...RETURN
017250: 54 52 55 45 3B 0D 0A 09 45 4E 44 20 42 6C 6F 63 TRUE;...END Bloc
017260: 6B 43 6F 70 79 3B 0D 0A 50 52 4F 43 45 44 55 52 kCopy;..PROCEDUR
017270: 45 20 42 6C 6F 63 6B 44 65 6C 28 56 41 52 20 46 E BlockDel(VAR F
017280: 72 6F 6D 46 69 6C 65 3A 45 64 69 74 46 69 6C 65 romFile:EditFile
017290: 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 56 41 52 09 ):BOOLEAN;..VAR.
0172A0: 70 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A 42 45 47 p:Position;..BEG
0172B0: 49 4E 0D 0A 09 49 46 20 4E 4F 54 20 43 68 65 63 IN...IF NOT Chec
0172C0: 6B 42 6C 6F 63 6B 28 46 72 6F 6D 46 69 6C 65 29 kBlock(FromFile)
0172D0: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 46 41 4C THEN RETURN FAL
0172E0: 53 45 20 45 4E 44 3B 0D 0A 09 57 49 54 48 20 46 SE END;...WITH F
0172F0: 72 6F 6D 46 69 6C 65 20 44 4F 0D 0A 09 09 4C 61 romFile DO....La
017300: 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 4F 66 66 F.Labels[11].Off
017310: 73 65 74 29 29 0D 0A 09 09 45 4E 44 3B 0D 0A 09 set))....END;...
017320: 49 46 20 43 6F 75 6C 64 42 65 20 54 48 45 4E 0D IF CouldBe THEN.
017330: 0A 09 09 57 48 49 4C 45 20 28 62 3C 3E 4E 49 4C ...WHILE (b<>NIL
017340: 29 20 41 4E 44 20 28 62 3C 3E 46 2E 4C 61 62 65 ) AND (b<>F.Labe
017350: 6C 73 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 44 4F ls[11].Block) DO
017360: 20 62 3A 3D 62 5E 2E 4E 65 78 74 20 45 4E 44 3B b:=b^.Next END;
017370: 0D 0A 09 09 43 6F 75 6C 64 42 65 3A 3D 62 3C 3E ....CouldBe:=b<>
017380: 4E 49 4C 0D 0A 09 09 45 4E 44 3B 0D 0A 09 52 45 NIL....END;...RE
017390: 54 55 52 4E 20 43 6F 75 6C 64 42 65 3B 0D 0A 09 TURN CouldBe;...
0173A0: 45 4E 44 20 49 6E 73 69 64 65 42 6C 6F 63 6B 3B END InsideBlock;
0173B0: 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 ....PROCEDURE Ch
0173C0: 65 63 6B 42 6C 6F 63 6B 28 56 41 52 20 46 3A 45 eckBlock(VAR F:E
0173D0: 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 4E ditFile):BOOLEAN
0173E0: 3B 0D 0A 0D 0A 28 2A 09 43 68 65 63 6B 20 69 66 ;....(*.Check if
0173F0: 20 62 65 67 69 6E 20 61 6E 64 20 65 6E 64 20 6F begin and end o
017400: 66 20 62 6C 6F 63 6B 20 68 61 76 65 20 62 65 65 f block have bee
017410: 6E 20 63 6F 72 72 65 63 74 6C 79 20 73 65 74 20 n correctly set
017420: 75 70 2A 29 0D 0A 0D 0A 42 45 47 49 4E 0D 0A 09 up*)....BEGIN...
017430: 49 46 20 28 46 2E 4C 61 62 65 6C 73 5B 31 30 5D IF (F.Labels[10]
017440: 2E 42 6C 6F 63 6B 3D 4E 49 4C 29 20 4F 52 20 28 .Block=NIL) OR (
017450: 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C 6F F.Labels[11].Blo
017460: 63 6B 3D 4E 49 4C 29 20 54 48 45 4E 0D 0A 09 09 ck=NIL) THEN....
017470: 52 45 54 55 52 4E 20 46 41 4C 53 45 3B 0D 0A 09 RETURN FALSE;...
017480: 09 45 4E 44 3B 0D 0A 09 57 6F 72 6B 69 6E 67 3A .END;...Working:
017490: 3D 46 2E 4C 61 62 65 6C 73 5B 31 30 5D 2E 42 6C =F.Labels[10].Bl
0174A0: 6F 63 6B 3B 0D 0A 09 72 65 70 6C 79 3A 3D 30 3B ock;...reply:=0;
0174B0: 0D 0A 0D 0A 09 57 48 49 4C 45 20 28 57 6F 72 6B .....WHILE (Work
0174C0: 69 6E 67 3C 3E 4E 49 4C 29 20 41 4E 44 20 28 57 ing<>NIL) AND (W
0174D0: 6F 72 6B 69 6E 67 3C 3E 46 2E 4C 61 62 65 6C 73 orking<>F.Labels
0174E0: 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 44 4F 0D 0A [11].Block) DO..
0174F0: 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B 4F ..reply:=reply+O
017500: 62 65 6C 73 5B 32 35 5D 3A 3D 43 75 72 50 6F 73 bels[25]:=CurPos
017510: 3B 0D 0A 09 09 43 75 72 50 6F 73 3A 3D 4C 61 62 ;....CurPos:=Lab
017520: 65 6C 73 5B 31 30 5D 3B 0D 0A 09 20 20 20 20 20 els[10];...
017530: 20 20 20 44 65 6C 43 68 61 72 73 28 46 72 6F 6D DelChars(From
017540: 46 69 6C 65 2C 72 65 70 6C 79 29 3B 0D 0A 09 09 File,reply);....
017550: 43 75 72 50 6F 73 3A 3D 4C 61 62 65 6C 73 5B 32 CurPos:=Labels[2
017560: 35 5D 3B 0D 0A 09 09 4C 61 62 65 6C 73 5B 32 35 5];....Labels[25
017570: 5D 2E 42 6C 6F 63 6B 3A 3D 4E 49 4C 3B 0D 0A 09 ].Block:=NIL;...
017580: 09 45 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 54 .END;...RETURN T
017590: 52 55 45 3B 0D 0A 09 45 4E 44 20 42 6C 6F 63 6B RUE;...END Block
0175A0: 44 65 6C 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 Del;..PROCEDURE
0175B0: 52 65 6C 6F 63 61 74 65 4C 61 62 65 6C 73 28 56 RelocateLabels(V
0175C0: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 6E 75 AR f:EditFile;nu
0175D0: 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 3B 0D 0A mber:INTEGER);..
0175E0: 28 2A 09 52 65 6C 6F 63 61 74 65 20 6C 61 62 65 (*.Relocate labe
0175F0: 6C 73 20 66 6F 72 20 74 68 65 20 63 75 72 72 65 ls for the curre
017600: 6E 74 20 62 6C 6F 63 6B 0D 0A 09 6E 75 6D 62 65 nt block...numbe
017610: 72 20 69 73 20 6E 75 6D 62 65 72 20 6F 66 20 63 r is number of c
017620: 68 61 72 61 63 74 65 72 73 20 62 65 69 6E 67 20 haracters being
017630: 64 65 6C 65 74 65 64 20 0D 0A 09 28 2D 76 65 20 deleted ...(-ve
017640: 66 6F 72 20 69 6E 73 65 72 74 69 6F 6E 73 29 0D for insertions).
017650: 0A 2A 29 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 .*)..BEGIN..
017660: 20 20 20 20 46 4F 52 20 72 65 70 6C 79 3A 3D 30 FOR reply:=0
017670: 20 54 4F 20 48 49 47 48 28 66 2E 4C 61 62 65 6C TO HIGH(f.Label
017680: 73 29 20 44 4F 0D 0A 09 09 57 49 54 48 20 66 2E s) DO....WITH f.
017690: 4C 61 62 65 6C 73 5B 72 65 70 6C 79 5D 20 44 4F Labels[reply] DO
0176A0: 0D 0A 09 09 09 49 46 20 28 42 6C 6F 63 6B 3D 57 .....IF (Block=W
0176B0: 6F 72 6B 69 6E 67 29 20 41 4E 44 20 28 4F 52 44 orking) AND (ORD
0176C0: 28 4F 66 66 73 65 74 29 3E 3D 43 68 61 72 50 6F (Offset)>=CharPo
0176D0: 73 29 20 54 48 45 4E 0D 0A 09 09 09 09 49 46 20 s) THEN......IF
0176E0: 28 6E 75 6D 62 65 72 3D 4F 52 44 28 57 6F 72 6B (number=ORD(Work
0176F0: 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 29 20 ing^.BlockLen))
017700: 52 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 RD(Working^.Bloc
017710: 6B 4C 65 6E 29 3B 0D 0A 09 09 57 6F 72 6B 69 6E kLen);....Workin
017720: 67 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 g:=Working^.Next
017730: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 49 46 ;....END;.....IF
017740: 20 57 6F 72 6B 69 6E 67 3D 4E 49 4C 20 54 48 45 Working=NIL THE
017750: 4E 20 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 N RETURN FALSE E
017760: 4E 44 3B 0D 0A 09 0D 0A 09 28 2A 69 66 20 65 6E ND;......(*if en
017770: 64 20 70 72 65 63 65 64 65 73 20 62 65 67 69 6E d precedes begin
017780: 6E 69 6E 67 20 6F 66 20 62 6C 6F 63 6B 2A 29 0D ning of block*).
017790: 0A 0D 0A 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 ....reply:=reply
0177A0: 2B 4F 52 44 28 46 2E 4C 61 62 65 6C 73 5B 31 31 +ORD(F.Labels[11
0177B0: 5D 2E 4F 66 66 73 65 74 29 2D 4F 52 44 28 46 2E ].Offset)-ORD(F.
0177C0: 4C 61 62 65 6C 73 5B 31 30 5D 2E 4F 66 66 73 65 Labels[10].Offse
0177D0: 74 29 3B 0D 0A 09 52 45 54 55 52 4E 20 72 65 70 t);...RETURN rep
0177E0: 6C 79 3E 3D 30 0D 0A 09 45 4E 44 20 43 68 65 63 ly>=0...END Chec
0177F0: 6B 42 6C 6F 63 6B 3B 0D 0A 50 52 4F 43 45 44 55 kBlock;..PROCEDU
017800: 52 45 20 42 6C 6F 63 6B 43 6F 70 79 28 56 41 52 RE BlockCopy(VAR
017810: 20 46 72 6F 6D 46 69 6C 65 2C 54 6F 46 69 6C 65 FromFile,ToFile
017820: 3A 45 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 :EditFile):BOOLE
017830: 41 4E 3B 0D 0A 0D 0A 28 2A 09 43 61 72 65 66 75 AN;....(*.Carefu
017840: 6C 20 2D 20 45 61 73 79 20 2D 20 4F 75 63 68 21 l - Easy - Ouch!
017850: 0D 0A 0D 0A 09 46 72 6F 6D 46 69 6C 65 20 61 6E .....FromFile an
017860: 64 20 54 6F 46 69 6C 65 20 6D 61 79 20 62 65 20 d ToFile may be
017870: 74 68 65 20 73 61 6D 65 20 20 76 61 72 69 61 62 the same variab
017880: 6C 65 2A 29 0D 0A 0D 0A 56 41 52 09 69 3A 49 4E le*)....VAR.i:IN
017890: 54 45 47 45 52 3B 0D 0A 09 63 3A 41 52 52 41 59 TEGER;...c:ARRAY
0178A0: 5B 31 2E 2E 54 65 78 74 4C 65 6E 5D 20 4F 46 20 [1..TextLen] OF
0178B0: 43 48 41 52 3B 0D 0A 09 70 2C 71 2C 72 3A 50 6F CHAR;...p,q,r:Po
0178C0: 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 28 2A 09 54 68 sition;....(*.Th
0178D0: 69 73 20 63 6F 64 65 20 69 73 20 61 20 6C 69 74 is code is a lit
0178E0: 74 6C 65 20 6F 64 64 20 66 6F 72 20 74 68 65 20 tle odd for the
0178F0: 66 6F 6C 6C 6F 77 69 6E 67 20 72 65 61 73 6F 6E following reason
017900: 54 48 45 4E 0D 0A 09 09 09 09 09 42 6C 6F 63 6B THEN.......Block
017910: 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B :=Working^.Next;
017920: 0D 0A 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 30 .......Offset:=0
017930: 3B 0D 0A 09 09 09 09 45 4C 53 49 46 20 28 6E 75 ;......ELSIF (nu
017940: 6D 62 65 72 2B 43 68 61 72 50 6F 73 29 3E 4F 52 mber+CharPos)>OR
017950: 44 28 4F 66 66 73 65 74 29 20 54 48 45 4E 0D 0A D(Offset) THEN..
017960: 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 43 68 61 .....Offset:=Cha
017970: 72 50 6F 73 0D 0A 09 09 09 09 45 4C 53 45 0D 0A rPos......ELSE..
017980: 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 4F 52 44 .....Offset:=ORD
017990: 28 4F 66 66 73 65 74 29 2D 6E 75 6D 62 65 72 0D (Offset)-number.
0179A0: 0A 09 09 09 09 09 45 4E 44 3B 28 2A 49 46 2A 29 ......END;(*IF*)
0179B0: 0D 0A 09 09 09 09 45 4E 44 3B 28 2A 49 46 20 42 ......END;(*IF B
0179C0: 6C 6F 63 6B 3D 57 6F 72 6B 69 6E 67 20 65 74 63 lock=Working etc
0179D0: 2A 29 0D 0A 09 09 09 45 4E 44 3B 20 28 2A 57 49 *).....END; (*WI
0179E0: 54 48 2A 29 0D 0A 09 09 45 4E 44 3B 28 2A 46 4F TH*)....END;(*FO
0179F0: 52 2A 29 0D 0A 09 45 4E 44 20 52 65 6C 6F 63 61 R*)...END Reloca
017A00: 74 65 4C 61 62 65 6C 73 3B 0D 0A 0D 0A 0D 0A 50 teLabels;......P
017A10: 52 4F 43 45 44 55 52 45 20 44 65 6C 43 68 61 72 ROCEDURE DelChar
017A20: 73 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 s(VAR f:EditFile
017A30: 3B 6E 75 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 ;number:INTEGER)
017A40: 3B 0D 0A 0D 0A 28 2A 09 64 65 6C 65 74 65 20 61 ;....(*.delete a
017A50: 20 6E 75 6D 62 65 72 20 6F 66 20 63 68 61 72 61 number of chara
017A60: 63 74 65 72 73 2A 29 0D 0A 0D 0A 50 52 4F 43 45 cters*)....PROCE
017A70: 44 55 52 45 20 44 65 6C 49 6E 42 6C 6F 63 6B 28 DURE DelInBlock(
017A80: 6E 75 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 3B number:INTEGER);
017A90: 0D 0A 0D 0A 28 2A 09 50 65 72 66 6F 72 6D 20 61 ....(*.Perform a
017AA0: 20 64 65 6C 65 74 65 20 77 68 69 63 68 20 64 6F delete which do
017AB0: 65 73 20 6E 6F 74 20 73 70 61 6E 20 61 20 62 6C es not span a bl
017AC0: 6F 63 6B 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 52 ock*)..BEGIN...R
017AD0: 65 6C 6F 63 61 74 65 4C 61 62 65 6C 73 28 66 2C elocateLabels(f,
017AE0: 6E 75 6D 62 65 72 29 3B 0D 0A 09 57 49 54 48 20 number);...WITH
017AF0: 57 6F 72 6B 69 6E 67 5E 20 44 4F 0D 0A 09 09 49 Working^ DO....I
017B00: 3A 0D 0A 0D 0A 09 31 2F 09 49 6E 73 43 68 61 72 :.....1/.InsChar
017B10: 73 20 63 61 6E 6E 6F 74 20 69 6E 73 65 72 74 20 s cannot insert
017B20: 6D 6F 72 65 20 74 68 61 6E 20 68 61 6C 66 20 61 more than half a
017B30: 20 62 6C 6F 63 6B 20 6F 66 20 63 68 61 72 61 63 block of charac
017B40: 74 65 72 73 0D 0A 09 32 2F 09 49 66 20 79 6F 75 ters...2/.If you
017B50: 20 64 6F 6E 27 74 20 72 65 61 64 20 61 74 20 6C don't read at l
017B60: 65 61 73 74 20 61 20 62 6C 6F 63 6B 20 61 74 20 east a block at
017B70: 61 20 74 69 6D 65 20 61 6E 64 20 74 68 65 0D 0A a time and the..
017B80: 09 09 74 6F 20 61 6E 64 20 66 72 6F 6D 20 66 69 ..to and from fi
017B90: 6C 65 73 20 61 72 65 20 74 68 65 20 73 61 6D 65 les are the same
017BA0: 2C 20 79 6F 75 20 6D 61 79 20 68 61 76 65 20 74 , you may have t
017BB0: 6F 20 63 68 61 6E 67 65 20 74 68 65 0D 0A 09 09 o change the....
017BC0: 70 6F 73 69 74 69 6F 6E 20 69 6E 20 74 68 65 20 position in the
017BD0: 66 72 6F 6D 20 66 69 6C 65 20 74 6F 20 72 65 66 from file to ref
017BE0: 6C 65 63 74 20 69 6E 73 65 72 74 69 6F 6E 73 2C lect insertions,
017BF0: 20 77 68 69 63 68 20 69 73 0D 0A 09 09 61 77 6B which is....awk
017C00: 77 61 72 64 20 28 74 68 6F 75 67 68 20 79 6F 75 ward (though you
017C10: 20 63 6F 75 6C 64 20 61 6C 77 61 79 73 20 61 64 could always ad
017C20: 64 20 61 20 74 65 6D 70 6F 72 61 72 79 20 6C 61 d a temporary la
017C30: 62 65 6C 29 0D 0A 0D 0A 09 54 68 65 72 65 66 6F bel).....Therefo
017C40: 72 65 2C 20 74 65 78 74 20 69 73 20 72 65 61 64 re, text is read
017C50: 20 61 6E 64 20 74 68 65 6E 20 69 6E 73 65 72 74 and then insert
017C60: 65 64 20 69 6E 20 75 70 20 74 6F 20 74 68 72 65 ed in up to thre
017C70: 65 20 67 6F 65 73 21 2A 29 0D 0A 0D 0A 09 54 68 e goes!*).....Th
017C80: 69 72 64 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 ird:CARDINAL;..B
017C90: 45 47 49 4E 0D 0A 09 54 68 69 72 64 3A 3D 54 65 EGIN...Third:=Te
017CA0: 78 74 4C 65 6E 20 44 49 56 20 33 3B 0D 0A 09 49 xtLen DIV 3;...I
017CB0: 46 20 4E 4F 54 20 43 68 65 63 6B 42 6C 6F 63 6B F NOT CheckBlock
017CC0: 28 46 72 6F 6D 46 69 6C 65 29 20 54 48 45 4E 20 (FromFile) THEN
017CD0: 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 4E 44 RETURN FALSE END
017CE0: 3B 0D 0A 09 57 49 54 48 20 46 72 6F 6D 46 69 6C ;...WITH FromFil
017CF0: 65 2E 4C 61 62 65 6C 73 5B 31 30 5D 20 44 4F 0D e.Labels[10] DO.
017D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
017D10: 14 00 01 00 02 09 52 E5 14 00 C9 02 00 00 00 02 ......R.........
017D20: 14 00 C5 02 00 00 00 02 14 00 C1 02 00 00 00 02 ................
017D30: 14 00 C6 02 00 00 00 02 14 00 C2 02 00 00 00 02 ................
017D40: 14 00 C7 02 00 00 00 02 14 00 C3 02 00 00 00 02 ................
017D50: 14 00 C8 02 00 00 00 02 14 00 C4 02 00 00 00 02 ................
017D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017E00: 20 20 5E 51 43 20 61 6E 64 20 5E 51 52 2A 29 0D ^QC and ^QR*).
017E10: 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D 66 2E 43 68 ...Working:=f.Ch
017E20: 61 69 6E 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A ain;....CharPos:
017E30: 3D 30 3B 0D 0A 09 09 70 6F 73 3A 3D 30 3B 0D 0A =0;....pos:=0;..
017E40: 09 45 4C 53 49 46 20 6C 69 6E 65 73 74 6F 6D 6F .ELSIF linestomo
017E50: 76 65 3D 31 36 37 33 36 20 54 48 45 4E 0D 0A 09 ve=16736 THEN...
017E60: 09 57 48 49 4C 45 20 57 6F 72 6B 69 6E 67 5E 2E .WHILE Working^.
017E70: 4E 65 78 74 3C 3E 4E 49 4C 20 44 4F 0D 0A 09 09 Next<>NIL DO....
017E80: 09 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B 69 6E .Working:=Workin
017E90: 67 5E 2E 4E 65 78 74 3B 0D 0A 09 09 09 45 4E 44 g^.Next;.....END
017EA0: 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 4F 52 ;....CharPos:=OR
017EB0: 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B D(Working^.Block
017EC0: 4C 65 6E 29 3B 0D 0A 09 09 49 46 20 57 6F 72 6B Len);....IF Work
017ED0: 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 ing^.Chars[CharP
017EE0: 6F 73 2D 31 5D 3D 45 4F 46 20 54 48 45 4E 0D 0A os-1]=EOF THEN..
017EF0: 09 09 09 44 45 43 28 43 68 61 72 50 6F 73 29 3B ...DEC(CharPos);
017F00: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 73 61 76 .....END;....sav
017F10: 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 70 ecurpos(f);....p
017F20: 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 09 70 :=f.CurPos;....p
017F30: 6F 73 3A 3D 42 61 63 6B 75 70 4C 69 6E 65 28 29 os:=BackupLine()
017F40: 3B 0D 0A 09 09 66 2E 43 75 72 50 6F 73 3A 3D 70 ;....f.CurPos:=p
017F50: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 20 20 20 20 28 ;...ELSE... (
017F60: 2A 63 68 61 73 65 20 62 61 63 6B 77 61 72 64 73 *chase backwards
017F70: 20 75 6E 74 69 6C 20 61 20 43 52 2C 20 4C 46 20 until a CR, LF
017F80: 6F 72 20 46 46 20 69 73 20 66 6F 75 6E 64 20 61 or FF is found a
017F90: 6E 64 0D 0A 09 20 20 20 20 20 20 63 61 6C 63 75 nd... calcu
017FA0: 6C 61 74 65 20 70 6F 73 69 74 69 6F 6E 20 69 6E late position in
017FB0: 20 6C 69 6E 65 2A 29 0D 0A 09 20 20 20 20 70 6F line*)... po
017FC0: 73 3A 3D 42 61 63 6B 75 70 4C 69 6E 65 28 29 3B s:=BackupLine();
017FD0: 0D 0A 09 20 20 20 20 6C 65 6E 3A 3D 30 3B 0D 0A ... len:=0;..
017FE0: 0D 0A 09 20 20 20 20 28 2A 09 6E 6F 77 20 70 6F ... (*.now po
017FF0: 73 69 74 69 6F 6E 65 64 20 74 6F 20 62 65 67 69 sitioned to begi
018000: 3B 0D 0A 09 09 09 09 09 4F 66 66 73 65 74 3A 3D ;.......Offset:=
018010: 4F 52 44 28 4F 66 66 73 65 74 29 2D 6C 65 66 74 ORD(Offset)-left
018020: 3B 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ;.......END;....
018030: 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B 0D ..END;.....END;.
018040: 0A 09 09 09 09 09 0D 0A 09 09 57 49 54 48 20 4D ..........WITH M
018050: 61 69 6E 42 6C 6F 63 6B 5E 20 44 4F 0D 0A 09 09 ainBlock^ DO....
018060: 09 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3A 3D .Working^.Next:=
018070: 4E 65 78 74 3B 0D 0A 09 09 09 49 46 20 4E 65 78 Next;.....IF Nex
018080: 74 3C 3E 4E 49 4C 20 54 48 45 4E 20 4E 65 78 74 t<>NIL THEN Next
018090: 5E 2E 50 72 65 64 3A 3D 57 6F 72 6B 69 6E 67 20 ^.Pred:=Working
0180A0: 45 4E 44 3B 0D 0A 09 09 09 4E 65 78 74 3A 3D 57 END;.....Next:=W
0180B0: 6F 72 6B 69 6E 67 3B 0D 0A 09 09 09 57 6F 72 6B orking;.....Work
0180C0: 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 3A 3D 4F ing^.BlockLen:=O
0180D0: 52 44 28 42 6C 6F 63 6B 4C 65 6E 29 2D 6C 65 66 RD(BlockLen)-lef
0180E0: 74 3B 0D 0A 09 09 09 42 6C 6F 63 6B 4C 65 6E 3A t;.....BlockLen:
0180F0: 3D 6C 65 66 74 3B 0D 0A 09 09 09 4D 6F 76 65 75 =left;.....Moveu
018100: 70 28 41 44 52 28 43 68 61 72 73 5B 42 6C 6F 63 p(ADR(Chars[Bloc
018110: 6B 4C 65 6E 5D 29 2C 0D 0A 09 09 09 20 20 20 20 kLen]),.....
018120: 41 44 52 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 ADR(Working^.Cha
018130: 72 73 29 2C 0D 0A 09 09 09 20 20 20 20 6C 65 66 rs),..... lef
018140: 74 2B 31 29 3B 0D 0A 09 09 09 49 46 20 43 68 61 t+1);.....IF Cha
018150: 72 50 6F 73 3C 4F 52 44 28 42 6C 6F 63 6B 4C 65 rPos<ORD(BlockLe
018160: 6E 29 20 54 48 45 4E 20 57 6F 72 6B 69 6E 67 3A n) THEN Working:
018170: 3D 4D 61 69 6E 42 6C 6F 63 6B 0D 0A 09 09 09 45 =MainBlock.....E
018180: 4C 53 45 20 43 68 61 72 50 6F 73 3A 3D 43 68 61 LSE CharPos:=Cha
018190: 72 50 6F 73 2D 4F 52 44 28 42 6C 6F 63 6B 4C 65 rPos-ORD(BlockLe
0181A0: 6E 29 20 45 4E 44 3B 0D 0A 09 09 09 49 6E 73 49 n) END;.....InsI
0181B0: 6E 42 6C 6F 63 6B 3B 0D 0A 09 09 09 45 4E 44 3B nBlock;.....END;
0181C0: 28 2A 57 49 54 48 2A 29 0D 0A 09 09 45 4E 44 3B (*WITH*)....END;
0181D0: 28 2A 6C 65 66 74 3E 3D 6C 65 6E 2A 29 0D 0A 09 (*left>=len*)...
0181E0: 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A savecurpos(f);..
0181F0: 09 45 4E 44 20 49 6E 73 43 68 61 72 73 3B 0D 0A .END InsChars;..
018200: 6F 73 29 2D 6E 75 6D 62 65 72 29 3B 0D 0A 09 09 os)-number);....
018210: 09 09 45 4E 44 3B 0D 0A 09 09 09 42 6C 6F 63 6B ..END;.....Block
018220: 4C 65 6E 3A 3D 4F 52 44 28 42 6C 6F 63 6B 4C 65 Len:=ORD(BlockLe
018230: 6E 29 2D 6E 75 6D 62 65 72 3B 0D 0A 09 09 09 49 n)-number;.....I
018240: 46 20 28 4E 65 78 74 3D 4E 49 4C 29 20 41 4E 44 F (Next=NIL) AND
018250: 20 28 43 68 61 72 73 5B 42 6C 6F 63 6B 4C 65 6E (Chars[BlockLen
018260: 2D 31 5D 3C 3E 45 4F 46 29 20 54 48 45 4E 0D 0A -1]<>EOF) THEN..
018270: 09 09 09 09 43 68 61 72 73 5B 42 6C 6F 63 6B 4C ....Chars[BlockL
018280: 65 6E 5D 3A 3D 45 4F 46 3B 0D 0A 09 09 09 09 49 en]:=EOF;......I
018290: 4E 43 28 42 6C 6F 63 6B 4C 65 6E 29 3B 20 0D 0A NC(BlockLen); ..
0182A0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
0182B0: 28 2A 20 42 6C 6F 63 6B 20 6E 6F 74 20 6E 6F 77 (* Block not now
0182C0: 20 65 6D 70 74 79 2A 29 3B 0D 0A 09 09 45 4E 44 empty*);....END
0182D0: 3B 28 2A 57 49 54 48 2A 29 0D 0A 09 45 4E 44 20 ;(*WITH*)...END
0182E0: 44 65 6C 49 6E 42 6C 6F 63 6B 3B 0D 0A 0D 0A 56 DelInBlock;....V
0182F0: 41 52 09 4E 65 78 74 42 6C 6F 63 6B 3A 50 54 65 AR.NextBlock:PTe
018300: 78 74 3B 0D 0A 42 45 47 49 4E 0D 0A 09 73 65 74 xt;..BEGIN...set
018310: 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 57 48 49 curpos(f);...WHI
018320: 4C 45 20 28 6E 75 6D 62 65 72 3E 30 29 20 41 4E LE (number>0) AN
018330: 44 20 28 57 6F 72 6B 69 6E 67 3C 3E 4E 49 4C 29 D (Working<>NIL)
018340: 20 44 4F 0D 0A 09 09 4E 65 78 74 42 6C 6F 63 6B DO....NextBlock
018350: 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B :=Working^.Next;
018360: 0D 0A 09 09 49 46 20 6E 75 6D 62 65 72 3C 3D 28 ....IF number<=(
018370: 4F 52 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F ORD(Working^.Blo
018380: 63 6B 4C 65 6E 29 2D 43 68 61 72 50 6F 73 29 20 ckLen)-CharPos)
018390: 54 48 45 4E 0D 0A 09 09 09 44 65 6C 49 6E 42 6C THEN.....DelInBl
0183A0: 6F 63 6B 28 6E 75 6D 62 65 72 29 3B 0D 0A 09 09 ock(number);....
0183B0: 09 6E 75 6D 62 65 72 3A 3D 30 3B 0D 0A 09 09 45 .number:=0;....E
0183C0: 4C 53 45 0D 0A 09 09 09 6E 75 6D 62 65 72 3A 3D LSE.....number:=
0183D0: 6E 75 6D 62 65 72 2D 4F 52 44 28 57 6F 72 6B 69 number-ORD(Worki
0183E0: 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 2B 43 68 ng^.BlockLen)+Ch
0183F0: 61 72 50 6F 73 3B 0D 0A 09 09 09 44 65 6C 49 6E arPos;.....DelIn
018400: 0D 0A 0D 0A 56 41 52 09 62 3A 42 4F 4F 4C 45 41 ....VAR.b:BOOLEA
018410: 4E 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 N;....PROCEDURE
018420: 42 61 63 6B 75 70 4C 69 6E 65 28 29 3A 49 4E 54 BackupLine():INT
018430: 45 47 45 52 3B 0D 0A 0D 0A 28 2A 09 42 61 63 6B EGER;....(*.Back
018440: 75 70 20 74 6F 20 62 65 67 69 6E 6E 69 6E 67 20 up to beginning
018450: 6F 66 20 63 75 72 72 65 6E 74 20 6C 69 6E 65 0D of current line.
018460: 0A 09 72 65 74 75 72 6E 73 20 6E 75 6D 62 65 72 ..returns number
018470: 20 6F 66 20 63 68 61 72 61 63 74 65 72 73 20 62 of characters b
018480: 61 63 6B 65 64 20 75 70 0D 0A 0D 0A 09 61 66 74 acked up.....aft
018490: 65 72 20 74 68 65 20 63 61 6C 6C 2C 20 74 68 65 er the call, the
0184A0: 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 74 68 65 position is the
0184B0: 20 66 69 72 73 74 20 63 68 61 72 61 63 74 65 72 first character
0184C0: 0D 0A 09 61 66 74 65 72 20 6F 66 20 74 68 65 20 ...after of the
0184D0: 6C 69 6E 65 2A 29 0D 0A 56 41 52 09 70 6F 73 3A line*)..VAR.pos:
0184E0: 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 49 4E 0D INTEGER;..BEGIN.
0184F0: 0A 09 70 6F 73 3A 3D 30 3B 0D 0A 09 4C 4F 4F 50 ..pos:=0;...LOOP
018500: 0D 0A 09 09 49 46 20 4E 4F 54 20 42 61 63 6B 75 ....IF NOT Backu
018510: 70 28 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E p() THEN EXIT EN
018520: 44 3B 0D 0A 09 09 63 68 3A 3D 57 6F 72 6B 69 6E D;....ch:=Workin
018530: 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F 73 g^.Chars[CharPos
018540: 5D 3B 0D 0A 09 09 49 46 20 28 28 63 68 3D 43 52 ];....IF ((ch=CR
018550: 29 20 4F 52 20 28 63 68 3D 4C 46 29 20 4F 52 20 ) OR (ch=LF) OR
018560: 28 63 68 3D 46 46 29 29 20 20 54 48 45 4E 20 0D (ch=FF)) THEN .
018570: 0A 09 09 09 62 3A 3D 41 64 76 61 6E 63 65 28 29 ....b:=Advance()
018580: 3B 0D 0A 09 09 09 45 58 49 54 20 0D 0A 09 09 09 ;.....EXIT .....
018590: 45 4E 44 3B 0D 0A 09 09 70 6F 73 3A 3D 70 6F 73 END;....pos:=pos
0185A0: 2B 31 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A 4C 4F +1;....END; (*LO
0185B0: 4F 50 2A 29 0D 0A 09 52 45 54 55 52 4E 20 70 6F OP*)...RETURN po
0185C0: 73 3B 0D 0A 09 45 4E 44 20 42 61 63 6B 75 70 4C s;...END BackupL
0185D0: 69 6E 65 3B 0D 0A 56 41 52 09 41 64 76 61 6E 63 ine;..VAR.Advanc
0185E0: 65 4F 4B 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 50 52 eOK:BOOLEAN;..PR
0185F0: 4F 43 45 44 55 52 45 20 41 64 76 61 6E 63 65 4C OCEDURE AdvanceL
018600: 42 6C 6F 63 6B 28 4F 52 44 28 57 6F 72 6B 69 6E Block(ORD(Workin
018610: 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 2D 43 68 61 g^.BlockLen)-Cha
018620: 72 50 6F 73 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D rPos);.....END;.
018630: 0A 09 09 49 46 20 28 6E 75 6D 62 65 72 3E 30 29 ...IF (number>0)
018640: 20 4F 52 20 28 57 6F 72 6B 69 6E 67 3D 4E 49 4C OR (Working=NIL
018650: 29 20 54 48 45 4E 20 0D 0A 09 09 09 57 6F 72 6B ) THEN .....Work
018660: 69 6E 67 3A 3D 4E 65 78 74 42 6C 6F 63 6B 3B 0D ing:=NextBlock;.
018670: 0A 09 09 09 43 68 61 72 50 6F 73 3A 3D 30 3B 20 ....CharPos:=0;
018680: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 .....END;....END
018690: 3B 20 28 2A 57 48 49 4C 45 2A 29 0D 0A 09 49 46 ; (*WHILE*)...IF
0186A0: 20 57 6F 72 6B 69 6E 67 3D 4E 49 4C 20 54 48 45 Working=NIL THE
0186B0: 4E 20 0D 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D 66 N ....Working:=f
0186C0: 2E 43 68 61 69 6E 3B 0D 0A 09 09 57 48 49 4C 45 .Chain;....WHILE
0186D0: 20 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3C 3E Working^.Next<>
0186E0: 4E 49 4C 20 44 4F 20 57 6F 72 6B 69 6E 67 3A 3D NIL DO Working:=
0186F0: 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 20 45 4E Working^.Next EN
018700: 44 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 57 D;....CharPos:=W
018710: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
018720: 0D 0A 09 09 45 4E 44 3B 28 2A 64 65 6C 65 74 65 ....END;(*delete
018730: 64 20 65 76 65 72 79 74 68 69 6E 67 2A 29 0D 0A d everything*)..
018740: 09 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D .savecurpos(f);.
018750: 0A 09 45 4E 44 20 44 65 6C 43 68 61 72 73 3B 0D ..END DelChars;.
018760: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 73 ...PROCEDURE Ins
018770: 43 68 61 72 73 28 56 41 52 20 66 3A 45 64 69 74 Chars(VAR f:Edit
018780: 46 69 6C 65 3B 56 41 52 20 53 3A 41 52 52 41 59 File;VAR S:ARRAY
018790: 20 4F 46 20 43 48 41 52 3B 6C 65 6E 3A 49 4E 54 OF CHAR;len:INT
0187A0: 45 47 45 52 29 3B 0D 0A 28 2A 09 69 6E 73 65 72 EGER);..(*.inser
0187B0: 74 20 63 68 61 72 61 63 74 65 72 73 2A 29 0D 0A t characters*)..
0187C0: 56 41 52 09 6C 65 66 74 2C 66 6F 6C 6C 6F 77 73 VAR.left,follows
0187D0: 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 4D 61 69 6E :INTEGER;...Main
0187E0: 42 6C 6F 63 6B 3A 50 54 65 78 74 3B 0D 0A 50 52 Block:PText;..PR
0187F0: 4F 43 45 44 55 52 45 20 49 6E 73 49 6E 42 6C 6F OCEDURE InsInBlo
018800: 69 6E 65 28 29 3A 49 4E 54 45 47 45 52 3B 0D 0A ine():INTEGER;..
018810: 0D 0A 28 2A 09 6D 6F 76 65 20 20 74 6F 20 73 74 ..(*.move to st
018820: 61 72 74 20 6F 66 20 6E 65 78 74 20 6C 69 6E 65 art of next line
018830: 0D 0A 09 72 65 74 75 72 6E 73 20 63 68 61 72 61 ...returns chara
018840: 63 74 65 72 73 20 61 64 76 61 6E 63 65 64 0D 0A cters advanced..
018850: 09 70 6F 73 69 74 69 6F 6E 73 20 74 6F 20 66 69 .positions to fi
018860: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 rst character of
018870: 20 6E 65 78 74 20 6C 69 6E 65 2A 29 0D 0A 56 41 next line*)..VA
018880: 52 09 70 6F 73 3A 49 4E 54 45 47 45 52 3B 0D 0A R.pos:INTEGER;..
018890: 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 .b:BOOLEAN;..BEG
0188A0: 49 4E 0D 0A 09 41 64 76 61 6E 63 65 4F 4B 3A 3D IN...AdvanceOK:=
0188B0: 54 52 55 45 3B 0D 0A 09 70 6F 73 3A 3D 30 3B 0D TRUE;...pos:=0;.
0188C0: 0A 09 4C 4F 4F 50 0D 0A 09 09 63 68 3A 3D 57 6F ..LOOP....ch:=Wo
0188D0: 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 rking^.Chars[Cha
0188E0: 72 50 6F 73 5D 3B 0D 0A 09 09 49 46 20 63 68 3D rPos];....IF ch=
0188F0: 45 4F 46 20 54 48 45 4E 20 0D 0A 09 09 09 41 64 EOF THEN .....Ad
018900: 76 61 6E 63 65 4F 4B 3A 3D 46 41 4C 53 45 3B 0D vanceOK:=FALSE;.
018910: 0A 09 09 09 45 58 49 54 20 0D 0A 09 09 09 45 4E ....EXIT .....EN
018920: 44 3B 0D 0A 09 09 49 46 20 28 63 68 3D 43 52 29 D;....IF (ch=CR)
018930: 20 4F 52 20 28 63 68 3D 4C 46 29 20 4F 52 20 28 OR (ch=LF) OR (
018940: 63 68 3D 46 46 29 20 54 48 45 4E 20 0D 0A 09 09 ch=FF) THEN ....
018950: 09 49 46 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 .IF NOT Advance(
018960: 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 3B ) THEN EXIT END;
018970: 0D 0A 09 09 09 63 68 3A 3D 57 6F 72 6B 69 6E 67 .....ch:=Working
018980: 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F 73 5D ^.Chars[CharPos]
018990: 3B 0D 0A 09 09 09 49 46 20 63 68 3D 4C 46 20 54 ;.....IF ch=LF T
0189A0: 48 45 4E 20 62 3A 3D 41 64 76 61 6E 63 65 28 29 HEN b:=Advance()
0189B0: 20 45 4E 44 3B 0D 0A 09 09 09 45 58 49 54 0D 0A END;.....EXIT..
0189C0: 09 09 09 45 4E 44 3B 0D 0A 09 09 49 4E 43 28 70 ...END;....INC(p
0189D0: 6F 73 29 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 41 os);....IF NOT A
0189E0: 64 76 61 6E 63 65 28 29 20 54 48 45 4E 20 0D 0A dvance() THEN ..
0189F0: 09 09 09 41 64 76 61 6E 63 65 4F 4B 3A 3D 46 41 ...AdvanceOK:=FA
018A00: 63 6B 3B 0D 0A 56 41 52 09 73 74 61 72 74 3A 49 ck;..VAR.start:I
018A10: 4E 54 45 47 45 52 3B 0D 0A 09 69 3A 49 4E 54 45 NTEGER;...i:INTE
018A20: 47 45 52 3B 0D 0A 42 45 47 49 4E 0D 0A 0D 0A 09 GER;..BEGIN.....
018A30: 09 28 2A 61 64 6A 75 73 74 20 6C 61 62 65 6C 73 .(*adjust labels
018A40: 2A 29 0D 0A 09 52 65 6C 6F 63 61 74 65 4C 61 62 *)...RelocateLab
018A50: 65 6C 73 28 66 2C 2D 6C 65 6E 29 3B 0D 0A 09 73 els(f,-len);...s
018A60: 74 61 72 74 3A 3D 30 3B 0D 0A 09 57 49 54 48 20 tart:=0;...WITH
018A70: 57 6F 72 6B 69 6E 67 5E 20 44 4F 0D 0A 09 09 49 Working^ DO....I
018A80: 46 20 4F 52 44 28 42 6C 6F 63 6B 4C 65 6E 29 3E F ORD(BlockLen)>
018A90: 43 68 61 72 50 6F 73 20 54 48 45 4E 0D 0A 09 09 CharPos THEN....
018AA0: 20 20 20 20 4D 6F 76 65 75 70 28 41 44 52 28 43 Moveup(ADR(C
018AB0: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 29 2C 41 hars[CharPos]),A
018AC0: 44 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 DR(Chars[CharPos
018AD0: 2B 6C 65 6E 5D 29 2C 0D 0A 09 09 09 4F 52 44 28 +len]),.....ORD(
018AE0: 42 6C 6F 63 6B 4C 65 6E 29 2D 43 68 61 72 50 6F BlockLen)-CharPo
018AF0: 73 29 3B 0D 0A 09 09 20 20 20 20 45 4E 44 3B 0D s);.... END;.
018B00: 0A 09 09 42 6C 6F 63 6B 4C 65 6E 3A 3D 4F 52 44 ...BlockLen:=ORD
018B10: 28 42 6C 6F 63 6B 4C 65 6E 29 2B 6C 65 6E 3B 0D (BlockLen)+len;.
018B20: 0A 09 09 57 48 49 4C 45 20 6C 65 6E 3E 30 20 44 ...WHILE len>0 D
018B30: 4F 0D 0A 09 09 09 43 68 61 72 73 5B 43 68 61 72 O.....Chars[Char
018B40: 50 6F 73 5D 3A 3D 53 5B 73 74 61 72 74 5D 3B 0D Pos]:=S[start];.
018B50: 0A 09 09 09 49 4E 43 28 73 74 61 72 74 29 3B 0D ....INC(start);.
018B60: 0A 09 09 09 44 45 43 28 6C 65 6E 29 3B 0D 0A 09 ....DEC(len);...
018B70: 09 09 49 4E 43 28 43 68 61 72 50 6F 73 29 3B 0D ..INC(CharPos);.
018B80: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B ....END;....END;
018B90: 0D 0A 09 45 4E 44 20 49 6E 73 49 6E 42 6C 6F 63 ...END InsInBloc
018BA0: 6B 3B 0D 0A 09 09 09 0D 0A 28 2A 09 49 66 20 74 k;.......(*.If t
018BB0: 65 78 74 20 77 69 6C 6C 20 66 69 74 20 69 6E 20 ext will fit in
018BC0: 63 75 72 72 65 6E 74 20 62 6C 6F 63 6B 2C 20 65 current block, e
018BD0: 6E 74 65 72 20 69 6E 20 63 75 72 72 65 6E 74 20 nter in current
018BE0: 62 6C 6F 63 6B 0D 0A 09 65 6C 73 65 20 73 70 6C block...else spl
018BF0: 69 74 20 62 6C 6F 63 6B 20 61 6E 64 20 65 6E 74 it block and ent
018C00: 4C 53 45 3B 0D 0A 09 09 09 45 58 49 54 20 0D 0A LSE;.....EXIT ..
018C10: 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 20 ...END;....END;
018C20: 28 2A 4C 4F 4F 50 2A 29 0D 0A 09 52 45 54 55 52 (*LOOP*)...RETUR
018C30: 4E 20 70 6F 73 3B 0D 0A 09 45 4E 44 20 41 64 76 N pos;...END Adv
018C40: 61 6E 63 65 4C 69 6E 65 3B 0D 0A 0D 0A 09 0D 0A anceLine;.......
018C50: 50 52 4F 43 45 44 55 52 45 20 52 65 74 72 6C 69 PROCEDURE Retrli
018C60: 6E 65 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C ne(VAR f:EditFil
018C70: 65 3B 56 41 52 20 6C 65 6E 2C 70 6F 73 3A 49 4E e;VAR len,pos:IN
018C80: 54 45 47 45 52 3B 56 41 52 20 70 3A 50 6F 73 69 TEGER;VAR p:Posi
018C90: 74 69 6F 6E 3B 0D 0A 09 09 56 41 52 20 6C 69 6E tion;....VAR lin
018CA0: 65 73 6D 6F 76 65 64 3A 49 4E 54 45 47 45 52 3B esmoved:INTEGER;
018CB0: 6C 69 6E 65 73 74 6F 6D 6F 76 65 3A 49 4E 54 45 linestomove:INTE
018CC0: 47 45 52 29 3B 0D 0A 28 2A 09 72 65 74 75 72 6E GER);..(*.return
018CD0: 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 69 6E the position in
018CE0: 20 74 68 65 20 63 75 72 72 65 6E 74 20 6C 69 6E the current lin
018CF0: 65 2A 29 0D 0A 56 41 52 09 63 68 3A 43 48 41 52 e*)..VAR.ch:CHAR
018D00: 3B 0D 0A 09 69 3A 49 4E 54 45 47 45 52 3B 0D 0A ;...i:INTEGER;..
018D10: 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 .b:BOOLEAN;..BEG
018D20: 49 4E 0D 0A 09 73 65 74 63 75 72 70 6F 73 28 66 IN...setcurpos(f
018D30: 29 3B 0D 0A 09 6C 69 6E 65 73 6D 6F 76 65 64 3A );...linesmoved:
018D40: 3D 30 3B 0D 0A 0D 0A 09 49 46 20 43 68 61 72 50 =0;.....IF CharP
018D50: 6F 73 3E 49 4E 54 45 47 45 52 28 57 6F 72 6B 69 os>INTEGER(Worki
018D60: 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 54 48 ng^.BlockLen) TH
018D70: 45 4E 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 57 EN....CharPos:=W
018D80: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
018D90: 20 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 49 46 ....END;.....IF
018DA0: 20 6C 69 6E 65 73 74 6F 6D 6F 76 65 3D 2D 31 36 linestomove=-16
018DB0: 37 33 36 20 54 48 45 4E 20 28 2A 67 6F 20 74 6F 736 THEN (*go to
018DC0: 20 74 6F 70 20 6F 66 20 66 69 6C 65 0D 0A 09 09 top of file....
018DD0: 09 09 20 20 20 20 54 68 69 73 20 69 73 20 61 20 .. This is a
018DE0: 72 65 63 65 6E 74 20 6D 6F 64 20 74 6F 20 73 70 recent mod to sp
018DF0: 65 65 64 20 75 70 20 0D 0A 09 09 09 09 20 20 20 eed up ......
018E00: 65 72 20 69 6E 20 61 70 70 72 6F 70 72 69 61 74 er in appropriat
018E10: 65 20 62 6C 6F 63 6B 2A 29 0D 0A 0D 0A 42 45 47 e block*)....BEG
018E20: 49 4E 0D 0A 09 73 65 74 63 75 72 70 6F 73 28 66 IN...setcurpos(f
018E30: 29 3B 0D 0A 09 6C 65 66 74 3A 3D 54 65 78 74 4C );...left:=TextL
018E40: 65 6E 2D 4F 52 44 28 57 6F 72 6B 69 6E 67 5E 2E en-ORD(Working^.
018E50: 42 6C 6F 63 6B 4C 65 6E 29 3B 0D 0A 0D 0A 09 28 BlockLen);.....(
018E60: 2A 09 6C 65 66 74 20 69 73 20 63 68 61 72 61 63 *.left is charac
018E70: 74 65 72 73 20 6C 65 66 74 20 69 6E 20 62 6C 6F ters left in blo
018E80: 63 6B 2A 29 0D 0A 0D 0A 09 49 46 20 6C 65 66 74 ck*).....IF left
018E90: 3E 3D 6C 65 6E 20 54 48 45 4E 20 49 6E 73 49 6E >=len THEN InsIn
018EA0: 42 6C 6F 63 6B 0D 0A 09 45 4C 53 45 0D 0A 0D 0A Block...ELSE....
018EB0: 09 09 28 2A 73 70 6C 69 74 20 74 68 65 20 62 6C ..(*split the bl
018EC0: 6F 63 6B 20 73 6F 20 74 68 61 74 20 61 66 74 65 ock so that afte
018ED0: 72 20 69 6E 73 65 72 74 20 74 68 65 20 74 77 6F r insert the two
018EE0: 20 62 6C 6F 63 6B 73 0D 0A 09 09 20 20 77 69 6C blocks.... wil
018EF0: 6C 20 62 65 20 61 70 70 72 6F 78 20 65 71 75 61 l be approx equa
018F00: 6C 20 69 6E 20 73 69 7A 65 2A 29 0D 0A 09 09 6C l in size*)....l
018F10: 65 66 74 3A 3D 4F 52 44 28 57 6F 72 6B 69 6E 67 eft:=ORD(Working
018F20: 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 44 49 56 20 ^.BlockLen) DIV
018F30: 32 3B 0D 0A 09 09 4D 61 69 6E 42 6C 6F 63 6B 3A 2;....MainBlock:
018F40: 3D 57 6F 72 6B 69 6E 67 3B 0D 0A 09 09 4E 65 77 =Working;....New
018F50: 42 6C 6F 63 6B 3B 0D 0A 09 09 57 6F 72 6B 69 6E Block;....Workin
018F60: 67 5E 2E 50 72 65 64 3A 3D 4D 61 69 6E 42 6C 6F g^.Pred:=MainBlo
018F70: 63 6B 3B 0D 0A 09 09 46 4F 52 20 72 65 70 6C 79 ck;....FOR reply
018F80: 3A 3D 30 20 54 4F 20 48 49 47 48 28 66 2E 4C 61 :=0 TO HIGH(f.La
018F90: 62 65 6C 73 29 20 44 4F 0D 0A 09 09 09 57 49 54 bels) DO.....WIT
018FA0: 48 20 66 2E 4C 61 62 65 6C 73 5B 72 65 70 6C 79 H f.Labels[reply
018FB0: 5D 20 44 4F 0D 0A 09 09 09 09 49 46 20 28 42 6C ] DO......IF (Bl
018FC0: 6F 63 6B 3D 4D 61 69 6E 42 6C 6F 63 6B 29 20 41 ock=MainBlock) A
018FD0: 4E 44 20 28 4F 52 44 28 4F 66 66 73 65 74 29 3E ND (ORD(Offset)>
018FE0: 3D 6C 65 66 74 29 20 54 48 45 4E 0D 0A 09 09 09 =left) THEN.....
018FF0: 09 09 42 6C 6F 63 6B 3A 3D 57 6F 72 6B 69 6E 67 ..Block:=Working
019000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
019010: 15 00 01 00 02 09 52 E5 15 00 C9 02 00 00 00 02 ......R.........
019020: 15 00 C5 02 00 00 00 02 15 00 C1 02 00 00 00 02 ................
019030: 15 00 C6 02 00 00 00 02 15 00 C2 02 00 00 00 02 ................
019040: 15 00 C7 02 00 00 00 02 15 00 C3 02 00 00 00 02 ................
019050: 15 00 C8 02 00 00 00 02 15 00 C4 02 00 00 00 02 ................
019060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019100: 09 45 4E 44 20 4D 6F 76 65 54 6F 43 68 61 72 3B .END MoveToChar;
019110: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 66 69 ..PROCEDURE Defi
019120: 6E 65 45 72 72 6F 72 73 28 56 41 52 20 66 3A 45 neErrors(VAR f:E
019130: 64 69 74 46 69 6C 65 29 3B 0D 0A 56 41 52 09 69 ditFile);..VAR.i
019140: 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 62 3A 42 :CARDINAL;...b:B
019150: 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A OOLEAN;..BEGIN..
019160: 09 49 46 20 45 72 72 6F 72 43 6F 75 6E 74 3D 30 .IF ErrorCount=0
019170: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 THEN RETURN END
019180: 3B 0D 0A 09 46 4F 52 20 69 3A 3D 30 20 54 4F 20 ;...FOR i:=0 TO
019190: 45 72 72 6F 72 43 6F 75 6E 74 2D 31 20 44 4F 0D ErrorCount-1 DO.
0191A0: 0A 09 09 4D 6F 76 65 54 6F 43 68 61 72 28 66 2C ...MoveToChar(f,
0191B0: 45 72 72 6F 72 4C 69 73 74 5B 69 5D 2E 43 68 61 ErrorList[i].Cha
0191C0: 72 50 29 3B 0D 0A 09 09 62 3A 3D 4C 61 62 65 6C rP);....b:=Label
0191D0: 4F 70 28 66 2C 54 52 55 45 2C 43 48 52 28 30 62 Op(f,TRUE,CHR(0b
0191E0: 30 68 2B 69 29 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0h+i));....END;.
0191F0: 0A 09 45 4E 44 20 44 65 66 69 6E 65 45 72 72 6F ..END DefineErro
019200: 72 73 3B 0D 0A 0D 0A 45 4E 44 20 4D 61 6B 65 45 rs;....END MakeE
019210: 64 69 74 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A dits............
019220: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019230: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019240: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019250: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019260: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019270: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019280: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 00 ................
019290: 00 00 00 00 00 00 00 00 00 00 30 00 80 19 00 00 ..........0.....
0192A0: 45 44 49 54 53 54 41 54 44 45 46 20 80 00 00 00 EDITSTATDEF ....
0192B0: 00 00 00 00 00 00 00 00 00 00 32 00 00 02 00 00 ..........2.....
0192C0: 45 44 49 54 53 54 41 54 4D 4F 44 20 80 00 00 00 EDITSTATMOD ....
0192D0: 00 00 00 00 00 00 00 00 00 00 33 00 80 0B 00 00 ..........3.....
0192E0: 46 49 4C 45 4F 50 53 20 44 45 46 20 80 00 00 00 FILEOPS DEF ....
0192F0: 00 00 00 00 00 00 00 00 00 00 35 00 00 02 00 00 ..........5.....
019300: 52 28 73 29 2C 41 44 52 28 53 74 72 69 6E 67 29 R(s),ADR(String)
019310: 2C 6C 65 6E 29 3B 0A 09 45 4E 44 20 50 72 65 70 ,len);..END Prep
019320: 61 72 65 53 74 72 69 6E 67 3B 0D 0A 28 2A 09 70 areString;..(*.p
019330: 72 65 70 61 72 65 20 61 20 73 74 72 69 6E 67 20 repare a string
019340: 66 6F 72 20 75 73 65 20 69 6E 20 61 20 66 69 6E for use in a fin
019350: 64 20 63 6F 6D 6D 61 6E 64 2A 29 0D 0A 0D 0A 50 d command*)....P
019360: 52 4F 43 45 44 55 52 45 20 46 69 6E 64 53 74 72 ROCEDURE FindStr
019370: 69 6E 67 28 56 41 52 20 66 3A 45 64 69 74 46 69 ing(VAR f:EditFi
019380: 6C 65 3B 42 61 63 6B 77 61 72 64 73 3A 42 4F 4F le;Backwards:BOO
019390: 4C 45 41 4E 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A LEAN):BOOLEAN;..
0193A0: 0D 0A 0D 0A 28 2A 09 62 61 63 6B 77 61 72 64 73 ....(*.backwards
0193B0: 20 6E 6F 74 20 79 65 74 20 69 6D 70 6C 65 6D 65 not yet impleme
0193C0: 6E 74 65 64 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 nted*)..BEGIN...
0193D0: 49 46 20 53 74 72 69 6E 67 4C 65 6E 3D 30 20 54 IF StringLen=0 T
0193E0: 48 45 4E 20 52 45 54 55 52 4E 20 54 52 55 45 20 HEN RETURN TRUE
0193F0: 45 4E 44 3B 0D 0A 09 73 65 74 63 75 72 70 6F 73 END;...setcurpos
019400: 28 66 29 3B 0D 0A 09 49 46 20 42 61 63 6B 77 61 (f);...IF Backwa
019410: 72 64 73 20 54 48 45 4E 0D 0A 09 09 4D 61 74 63 rds THEN....Matc
019420: 68 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 53 74 hChar:=String[St
019430: 72 69 6E 67 4C 65 6E 2D 31 5D 3B 0D 0A 09 09 4C ringLen-1];....L
019440: 4F 4F 50 0D 0A 09 09 09 49 46 20 4E 4F 54 20 42 OOP.....IF NOT B
019450: 61 63 6B 75 70 28 29 20 54 48 45 4E 20 45 58 49 ackup() THEN EXI
019460: 54 20 45 4E 44 3B 0D 0A 09 09 09 49 46 20 28 57 T END;.....IF (W
019470: 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 orking^.Chars[Ch
019480: 61 72 50 6F 73 5D 3D 4D 61 74 63 68 43 68 61 72 arPos]=MatchChar
019490: 29 20 0D 0A 09 09 09 20 20 4F 52 20 28 57 6F 72 ) ..... OR (Wor
0194A0: 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 king^.Chars[Char
0194B0: 50 6F 73 5D 3D 43 41 50 28 4D 61 74 63 68 43 68 Pos]=CAP(MatchCh
0194C0: 61 72 29 29 20 54 48 45 4E 0D 0A 09 09 09 09 4D ar)) THEN......M
0194D0: 61 74 63 68 43 68 61 72 4E 6F 3A 3D 53 74 72 69 atchCharNo:=Stri
0194E0: 6E 67 4C 65 6E 2D 32 3B 0D 0A 09 09 09 09 73 61 ngLen-2;......sa
0194F0: 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 vecurpos(f);....
019500: 6E 6E 69 6E 67 20 6F 66 20 63 75 72 72 65 6E 74 nning of current
019510: 20 6C 69 6E 65 0D 0A 09 09 6D 6F 76 65 20 72 65 line....move re
019520: 71 75 69 72 65 64 20 6E 75 6D 62 65 72 20 6F 66 quired number of
019530: 20 6C 69 6E 65 73 2A 29 0D 0A 0D 0A 09 20 20 20 lines*).....
019540: 20 49 46 20 6C 69 6E 65 73 74 6F 6D 6F 76 65 3C IF linestomove<
019550: 30 20 54 48 45 4E 0D 0A 09 09 57 48 49 4C 45 20 0 THEN....WHILE
019560: 09 28 6C 69 6E 65 73 74 6F 6D 6F 76 65 3C 30 29 .(linestomove<0)
019570: 0D 0A 09 09 20 20 20 20 20 41 4E 44 20 28 28 43 .... AND ((C
019580: 68 61 72 50 6F 73 3E 30 29 20 4F 52 20 28 57 6F harPos>0) OR (Wo
019590: 72 6B 69 6E 67 5E 2E 50 72 65 64 3C 3E 4E 49 4C rking^.Pred<>NIL
0195A0: 29 29 20 44 4F 0D 0A 09 09 09 49 4E 43 28 6C 69 )) DO.....INC(li
0195B0: 6E 65 73 74 6F 6D 6F 76 65 29 3B 0D 0A 0D 0A 09 nestomove);.....
0195C0: 09 09 28 2A 6D 6F 76 65 20 62 61 63 6B 20 6F 76 ..(*move back ov
0195D0: 65 72 20 63 72 2F 6C 66 2A 29 0D 0A 0D 0A 09 09 er cr/lf*)......
0195E0: 09 49 46 20 42 61 63 6B 75 70 28 29 20 41 4E 44 .IF Backup() AND
0195F0: 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 (Working^.Chars
019600: 5B 43 68 61 72 50 6F 73 5D 3D 4C 46 29 20 54 48 [CharPos]=LF) TH
019610: 45 4E 0D 0A 09 09 09 09 62 3A 3D 42 61 63 6B 75 EN......b:=Backu
019620: 70 28 29 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 p()......END;...
019630: 09 09 44 45 43 28 6C 69 6E 65 73 6D 6F 76 65 64 ..DEC(linesmoved
019640: 29 3B 0D 0A 09 09 09 6C 65 6E 3A 3D 42 61 63 6B );.....len:=Back
019650: 75 70 4C 69 6E 65 28 29 3B 0D 0A 09 09 09 45 4E upLine();.....EN
019660: 44 3B 0D 0A 09 20 20 20 20 45 4C 53 45 0D 0A 09 D;... ELSE...
019670: 09 57 48 49 4C 45 20 09 28 6C 69 6E 65 73 74 6F .WHILE .(linesto
019680: 6D 6F 76 65 3E 30 29 0D 0A 09 09 09 41 4E 44 20 move>0).....AND
019690: 28 20 20 28 43 68 61 72 50 6F 73 3C 49 4E 54 45 ( (CharPos<INTE
0196A0: 47 45 52 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F GER(Working^.Blo
0196B0: 63 6B 4C 65 6E 29 29 0D 0A 09 09 09 20 20 20 20 ckLen)).....
0196C0: 4F 52 20 28 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 OR (Working^.Nex
0196D0: 74 3C 3E 4E 49 4C 29 29 20 44 4F 20 0D 0A 0D 0A t<>NIL)) DO ....
0196E0: 09 09 09 44 45 43 28 6C 69 6E 65 73 74 6F 6D 6F ...DEC(linestomo
0196F0: 76 65 29 3B 0D 0A 09 09 09 6C 65 6E 3A 3D 41 64 ve);.....len:=Ad
019700: 09 09 57 48 49 4C 45 20 28 4D 61 74 63 68 43 68 ..WHILE (MatchCh
019710: 61 72 4E 6F 3E 30 29 0D 0A 09 09 09 09 20 20 20 arNo>0)......
019720: 20 41 4E 44 20 28 42 61 63 6B 75 70 28 29 29 0D AND (Backup()).
019730: 0A 09 09 09 09 20 20 20 20 41 4E 44 20 4D 61 74 ..... AND Mat
019740: 63 68 65 73 28 29 20 44 4F 0D 0A 09 09 09 09 09 ches() DO.......
019750: 44 45 43 28 4D 61 74 63 68 43 68 61 72 4E 6F 29 DEC(MatchCharNo)
019760: 3B 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ;.......END;....
019770: 09 09 49 46 20 42 61 63 6B 75 70 28 29 20 41 4E ..IF Backup() AN
019780: 44 20 4D 61 74 63 68 65 73 28 29 20 0D 0A 09 09 D Matches() ....
019790: 09 09 20 20 20 41 4E 44 20 28 4D 61 74 63 68 43 .. AND (MatchC
0197A0: 68 61 72 4E 6F 3D 30 29 20 54 48 45 4E 0D 0A 09 harNo=0) THEN...
0197B0: 09 09 09 09 52 45 54 55 52 4E 20 54 52 55 45 3B ....RETURN TRUE;
0197C0: 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 .......END;.....
0197D0: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
0197E0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
0197F0: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 4D 61 74 63 ;...ELSE....Matc
019800: 68 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 30 5D hChar:=String[0]
019810: 3B 0D 0A 09 09 4C 4F 4F 50 0D 0A 09 09 09 49 46 ;....LOOP.....IF
019820: 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 29 20 54 NOT Advance() T
019830: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 HEN EXIT END;...
019840: 09 09 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 ..IF (Working^.C
019850: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3D 4D 61 hars[CharPos]=Ma
019860: 74 63 68 43 68 61 72 29 0D 0A 09 09 09 20 20 4F tchChar)..... O
019870: 52 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 R (Working^.Char
019880: 73 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 4D s[CharPos]=CAP(M
019890: 61 74 63 68 43 68 61 72 29 29 20 54 48 45 4E 0D atchChar)) THEN.
0198A0: 0A 09 09 09 09 4D 61 74 63 68 43 68 61 72 4E 6F .....MatchCharNo
0198B0: 3A 3D 31 3B 0D 0A 09 09 09 09 73 61 76 65 63 75 :=1;......savecu
0198C0: 72 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 57 48 rpos(f);......WH
0198D0: 49 4C 45 20 28 4D 61 74 63 68 43 68 61 72 4E 6F ILE (MatchCharNo
0198E0: 3C 53 74 72 69 6E 67 4C 65 6E 29 0D 0A 09 09 09 <StringLen).....
0198F0: 09 20 20 20 20 41 4E 44 20 28 41 64 76 61 6E 63 . AND (Advanc
019900: 76 61 6E 63 65 4C 69 6E 65 28 29 3B 0D 0A 09 09 vanceLine();....
019910: 09 49 46 20 41 64 76 61 6E 63 65 4F 4B 20 54 48 .IF AdvanceOK TH
019920: 45 4E 20 49 4E 43 28 6C 69 6E 65 73 6D 6F 76 65 EN INC(linesmove
019930: 64 29 20 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B d) END;.....END;
019940: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 20 20 20 20 45 ....END;... E
019950: 4E 44 3B 0D 0A 09 73 61 76 65 63 75 72 70 6F 73 ND;...savecurpos
019960: 28 66 29 3B 70 3A 3D 66 2E 43 75 72 50 6F 73 3B (f);p:=f.CurPos;
019970: 0D 0A 09 49 46 20 57 6F 72 6B 69 6E 67 5E 2E 43 ...IF Working^.C
019980: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3D 45 4F hars[CharPos]=EO
019990: 46 20 54 48 45 4E 0D 0A 0D 0A 09 09 28 2A 49 46 F THEN......(*IF
0199A0: 20 77 65 20 61 72 65 20 61 74 20 65 6E 64 20 6F we are at end o
0199B0: 66 20 66 69 6C 65 2C 20 72 65 70 6F 73 69 74 69 f file, repositi
0199C0: 6F 6E 20 74 6F 20 73 74 61 72 74 0D 0A 09 09 20 on to start....
0199D0: 20 6F 66 20 63 75 72 72 65 6E 74 20 6C 69 6E 65 of current line
0199E0: 20 61 73 20 52 65 74 72 6C 69 6E 65 20 61 6C 77 as Retrline alw
0199F0: 61 79 73 20 72 65 74 75 72 6E 73 0D 0A 09 09 20 ays returns....
019A00: 20 70 6F 73 69 74 69 6F 6E 20 61 73 20 61 74 20 position as at
019A10: 73 74 61 72 74 20 6F 66 20 6C 69 6E 65 2A 29 0D start of line*).
019A20: 0A 0D 0A 09 09 6C 65 6E 3A 3D 42 61 63 6B 75 70 .....len:=Backup
019A30: 4C 69 6E 65 28 29 3B 0D 0A 09 09 73 61 76 65 63 Line();....savec
019A40: 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 70 3A 3D urpos(f);....p:=
019A50: 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 09 70 6F 73 f.CurPos;....pos
019A60: 3A 3D 6C 65 6E 0D 0A 09 45 4C 53 45 0D 0A 09 09 :=len...ELSE....
019A70: 6C 65 6E 3A 3D 41 64 76 61 6E 63 65 4C 69 6E 65 len:=AdvanceLine
019A80: 28 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 66 2E ();....END;...f.
019A90: 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 45 4E 44 CurPos:=p;...END
019AA0: 20 52 65 74 72 6C 69 6E 65 3B 0D 0A 50 52 4F 43 Retrline;..PROC
019AB0: 45 44 55 52 45 20 52 65 61 64 4E 65 78 74 43 68 EDURE ReadNextCh
019AC0: 61 72 28 56 41 52 20 70 3A 50 6F 73 69 74 69 6F ar(VAR p:Positio
019AD0: 6E 3B 56 41 52 20 63 68 3A 43 48 41 52 29 3B 0D n;VAR ch:CHAR);.
019AE0: 0A 42 45 47 49 4E 0D 0A 09 57 49 54 48 20 70 20 .BEGIN...WITH p
019AF0: 44 4F 0D 0A 09 09 49 46 20 4F 66 66 73 65 74 3E DO....IF Offset>
019B00: 65 28 29 29 0D 0A 09 09 09 09 20 20 20 20 41 4E e())...... AN
019B10: 44 20 20 4D 61 74 63 68 65 73 28 29 20 44 4F 0D D Matches() DO.
019B20: 0A 09 09 09 09 09 49 4E 43 28 4D 61 74 63 68 43 ......INC(MatchC
019B30: 68 61 72 4E 6F 29 3B 0D 0A 09 09 09 09 09 45 4E harNo);.......EN
019B40: 44 3B 0D 0A 09 09 09 09 49 46 20 4D 61 74 63 68 D;......IF Match
019B50: 43 68 61 72 4E 6F 3E 3D 53 74 72 69 6E 67 4C 65 CharNo>=StringLe
019B60: 6E 20 54 48 45 4E 0D 0A 09 09 09 09 09 52 45 54 n THEN.......RET
019B70: 55 52 4E 20 54 52 55 45 3B 0D 0A 09 09 09 09 09 URN TRUE;.......
019B80: 45 4E 44 3B 0D 0A 09 09 09 09 73 65 74 63 75 72 END;......setcur
019B90: 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 45 4E 44 pos(f);......END
019BA0: 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E ;.....END;....EN
019BB0: 44 3B 0D 0A 09 73 61 76 65 63 75 72 70 6F 73 28 D;...savecurpos(
019BC0: 66 29 3B 0D 0A 09 52 45 54 55 52 4E 20 46 41 4C f);...RETURN FAL
019BD0: 53 45 3B 0D 0A 09 45 4E 44 20 46 69 6E 64 53 74 SE;...END FindSt
019BE0: 72 69 6E 67 3B 0D 0A 28 2A 09 41 63 74 75 61 6C ring;..(*.Actual
019BF0: 6C 79 20 66 69 6E 64 20 74 68 65 20 6E 65 78 74 ly find the next
019C00: 20 6F 63 63 75 72 72 65 6E 63 65 20 6F 66 20 74 occurrence of t
019C10: 68 65 20 73 74 72 69 6E 67 09 0D 0A 0D 0A 09 44 he string......D
019C20: 6F 6E 65 20 72 65 74 75 72 6E 73 20 74 72 75 65 one returns true
019C30: 20 69 66 20 6F 6E 65 20 69 73 20 66 6F 75 6E 64 if one is found
019C40: 2A 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 61 *)..PROCEDURE Ca
019C50: 6C 6C 57 69 74 68 46 69 6C 65 28 4E 61 6D 65 3A llWithFile(Name:
019C60: 41 52 52 41 59 20 4F 46 20 43 48 41 52 3B 56 41 ARRAY OF CHAR;VA
019C70: 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3B 0D 0A R f:EditFile);..
019C80: 42 45 47 49 4E 0D 0A 09 4D 61 6B 65 43 61 6C 6C BEGIN...MakeCall
019C90: 28 4E 61 6D 65 2C 66 2E 66 2E 66 29 3B 0D 0A 09 (Name,f.f.f);...
019CA0: 45 4E 44 20 43 61 6C 6C 57 69 74 68 46 69 6C 65 END CallWithFile
019CB0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 69 6C ;..PROCEDURE Fil
019CC0: 65 54 79 70 65 28 56 41 52 20 66 3A 45 64 69 74 eType(VAR f:Edit
019CD0: 46 69 6C 65 29 3A 43 41 52 44 49 4E 41 4C 3B 0D File):CARDINAL;.
019CE0: 0A 42 45 47 49 4E 0D 0A 09 49 46 20 66 2E 66 2E .BEGIN...IF f.f.
019CF0: 66 2E 66 63 62 66 74 3D 27 4D 4F 44 27 20 54 48 f.fcbft='MOD' TH
019D00: 3D 42 6C 6F 63 6B 5E 2E 42 6C 6F 63 6B 4C 65 6E =Block^.BlockLen
019D10: 20 54 48 45 4E 0D 0A 09 09 09 49 46 20 42 6C 6F THEN.....IF Blo
019D20: 63 6B 5E 2E 4E 65 78 74 3D 4E 49 4C 20 54 48 45 ck^.Next=NIL THE
019D30: 4E 0D 0A 09 09 09 09 63 68 3A 3D 45 4F 46 3B 0D N......ch:=EOF;.
019D40: 0A 09 09 09 09 52 45 54 55 52 4E 0D 0A 09 09 09 .....RETURN.....
019D50: 45 4C 53 45 0D 0A 09 09 09 09 42 6C 6F 63 6B 3A ELSE......Block:
019D60: 3D 42 6C 6F 63 6B 5E 2E 4E 65 78 74 3B 0D 0A 09 =Block^.Next;...
019D70: 09 09 09 4F 66 66 73 65 74 3A 3D 30 3B 0D 0A 09 ...Offset:=0;...
019D80: 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B ...END;.....END;
019D90: 0D 0A 09 09 63 68 3A 3D 42 6C 6F 63 6B 5E 2E 43 ....ch:=Block^.C
019DA0: 68 61 72 73 5B 4F 66 66 73 65 74 5D 3B 0D 0A 09 hars[Offset];...
019DB0: 09 49 46 20 63 68 3C 3E 45 4F 46 20 54 48 45 4E .IF ch<>EOF THEN
019DC0: 20 4F 66 66 73 65 74 3A 3D 4F 66 66 73 65 74 2B Offset:=Offset+
019DD0: 31 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 1 END;....END;..
019DE0: 09 45 4E 44 20 52 65 61 64 4E 65 78 74 43 68 61 .END ReadNextCha
019DF0: 72 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 r;..PROCEDURE Ge
019E00: 74 43 75 72 72 65 6E 74 43 68 61 72 28 56 41 52 tCurrentChar(VAR
019E10: 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 43 48 41 f:EditFile):CHA
019E20: 52 3B 0D 0A 0D 0A 42 45 47 49 4E 0D 0A 09 70 6F R;....BEGIN...po
019E30: 73 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 52 s:=f.CurPos;...R
019E40: 65 61 64 4E 65 78 74 43 68 61 72 28 70 6F 73 2C eadNextChar(pos,
019E50: 63 68 29 3B 0D 0A 09 52 45 54 55 52 4E 20 63 68 ch);...RETURN ch
019E60: 0D 0A 09 45 4E 44 20 47 65 74 43 75 72 72 65 6E ...END GetCurren
019E70: 74 43 68 61 72 3B 0D 0A 50 52 4F 43 45 44 55 52 tChar;..PROCEDUR
019E80: 45 20 20 42 61 63 6B 4F 6E 65 43 68 61 72 28 56 E BackOneChar(V
019E90: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 42 AR f:EditFile):B
019EA0: 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A OOLEAN;..BEGIN..
019EB0: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
019EC0: 09 62 3A 3D 42 61 63 6B 75 70 28 29 3B 0D 0A 09 .b:=Backup();...
019ED0: 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A savecurpos(f);..
019EE0: 09 52 45 54 55 52 4E 20 62 0D 0A 09 45 4E 44 20 .RETURN b...END
019EF0: 42 61 63 6B 4F 6E 65 43 68 61 72 3B 09 09 09 09 BackOneChar;....
019F00: 45 4E 20 52 45 54 55 52 4E 20 31 0D 0A 09 45 4C EN RETURN 1...EL
019F10: 53 49 46 20 66 2E 66 2E 66 2E 66 63 62 66 74 3D SIF f.f.f.fcbft=
019F20: 27 44 45 46 27 20 54 48 45 4E 20 52 45 54 55 52 'DEF' THEN RETUR
019F30: 4E 20 32 0D 0A 09 45 4C 53 45 20 52 45 54 55 52 N 2...ELSE RETUR
019F40: 4E 20 30 0D 0A 09 09 45 4E 44 0D 0A 09 45 4E 44 N 0....END...END
019F50: 20 46 69 6C 65 54 79 70 65 3B 0D 0A 50 52 4F 43 FileType;..PROC
019F60: 45 44 55 52 45 20 4D 6F 76 65 54 6F 43 68 61 72 EDURE MoveToChar
019F70: 28 56 41 52 20 46 69 6C 65 3A 45 64 69 74 46 69 (VAR File:EditFi
019F80: 6C 65 3B 50 6F 73 3A 43 41 52 44 49 4E 41 4C 29 le;Pos:CARDINAL)
019F90: 3B 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 4E 41 ;..VAR.i:CARDINA
019FA0: 4C 3B 77 3A 50 54 65 78 74 3B 0D 0A 42 45 47 49 L;w:PText;..BEGI
019FB0: 4E 0D 0A 09 57 6F 72 6B 69 6E 67 3A 3D 46 69 6C N...Working:=Fil
019FC0: 65 2E 43 68 61 69 6E 3B 0D 0A 09 77 3A 3D 4E 49 e.Chain;...w:=NI
019FD0: 4C 3B 0D 0A 09 69 3A 3D 30 3B 0D 0A 09 4C 4F 4F L;...i:=0;...LOO
019FE0: 50 0D 0A 09 09 49 46 20 57 6F 72 6B 69 6E 67 3D P....IF Working=
019FF0: 4E 49 4C 20 54 48 45 4E 20 45 58 49 54 20 45 4E NIL THEN EXIT EN
01A000: 44 3B 0D 0A 09 09 69 3A 3D 69 2B 4F 52 44 28 57 D;....i:=i+ORD(W
01A010: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
01A020: 29 3B 0D 0A 09 09 77 3A 3D 57 6F 72 6B 69 6E 67 );....w:=Working
01A030: 3B 0D 0A 09 09 49 46 20 69 3C 50 6F 73 20 54 48 ;....IF i<Pos TH
01A040: 45 4E 20 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B EN Working:=Work
01A050: 69 6E 67 5E 2E 4E 65 78 74 20 45 4C 53 45 20 45 ing^.Next ELSE E
01A060: 58 49 54 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B XIT END;....END;
01A070: 0D 0A 09 49 46 20 57 6F 72 6B 69 6E 67 3D 4E 49 ...IF Working=NI
01A080: 4C 20 54 48 45 4E 20 0D 0A 09 09 57 6F 72 6B 69 L THEN ....Worki
01A090: 6E 67 3A 3D 77 3B 0D 0A 09 09 43 68 61 72 50 6F ng:=w;....CharPo
01A0A0: 73 3A 3D 77 5E 2E 42 6C 6F 63 6B 4C 65 6E 3B 0D s:=w^.BlockLen;.
01A0B0: 0A 09 45 4C 53 45 0D 0A 09 09 43 68 61 72 50 6F ..ELSE....CharPo
01A0C0: 73 3A 3D 50 6F 73 2D 28 69 2D 4F 52 44 28 57 6F s:=Pos-(i-ORD(Wo
01A0D0: 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 rking^.BlockLen)
01A0E0: 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 73 61 76 );....END;...sav
01A0F0: 65 63 75 72 70 6F 73 28 46 69 6C 65 29 3B 0D 0A ecurpos(File);..
01A100: 0D 0A 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 .....PROCEDURE
01A110: 46 6F 72 77 61 72 64 4F 6E 65 43 68 61 72 28 56 ForwardOneChar(V
01A120: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 42 AR f:EditFile):B
01A130: 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A OOLEAN;..BEGIN..
01A140: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
01A150: 09 62 3A 3D 41 64 76 61 6E 63 65 28 29 3B 0D 0A .b:=Advance();..
01A160: 09 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D .savecurpos(f);.
01A170: 0A 09 52 45 54 55 52 4E 20 62 0D 0A 09 45 4E 44 ..RETURN b...END
01A180: 20 46 6F 72 77 61 72 64 4F 6E 65 43 68 61 72 3B ForwardOneChar;
01A190: 09 09 09 09 0D 0A 56 41 52 09 53 74 72 69 6E 67 ......VAR.String
01A1A0: 3A 41 52 52 41 59 5B 30 2E 2E 35 39 5D 20 4F 46 :ARRAY[0..59] OF
01A1B0: 20 43 48 41 52 3B 0D 0A 09 53 74 72 69 6E 67 4C CHAR;...StringL
01A1C0: 65 6E 3A 43 41 52 44 49 4E 41 4C 3D 30 3B 09 0D en:CARDINAL=0;..
01A1D0: 0A 09 4D 61 74 63 68 43 68 61 72 4E 6F 3A 43 41 ..MatchCharNo:CA
01A1E0: 52 44 49 4E 41 4C 3B 0D 0A 09 4D 61 74 63 68 43 RDINAL;...MatchC
01A1F0: 68 61 72 3A 43 48 41 52 3B 0D 0A 0D 0A 50 52 4F har:CHAR;....PRO
01A200: 43 45 44 55 52 45 20 4D 61 74 63 68 65 73 28 29 CEDURE Matches()
01A210: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E :BOOLEAN;..BEGIN
01A220: 0D 0A 09 52 45 54 55 52 4E 20 28 57 6F 72 6B 69 ...RETURN (Worki
01A230: 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F ng^.Chars[CharPo
01A240: 73 5D 3D 53 74 72 69 6E 67 5B 4D 61 74 63 68 43 s]=String[MatchC
01A250: 68 61 72 4E 6F 5D 29 0D 0A 09 20 20 20 20 4F 52 harNo])... OR
01A260: 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 (Working^.Chars
01A270: 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 53 74 [CharPos]=CAP(St
01A280: 72 69 6E 67 5B 4D 61 74 63 68 43 68 61 72 4E 6F ring[MatchCharNo
01A290: 5D 29 29 0D 0A 09 45 4E 44 20 4D 61 74 63 68 65 ]))...END Matche
01A2A0: 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 50 72 s;..PROCEDURE Pr
01A2B0: 65 70 61 72 65 53 74 72 69 6E 67 28 73 3A 41 52 epareString(s:AR
01A2C0: 52 41 59 20 4F 46 20 43 48 41 52 3B 6C 65 6E 3A RAY OF CHAR;len:
01A2D0: 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 42 45 47 INTEGER);....BEG
01A2E0: 49 4E 0D 0A 09 53 74 72 69 6E 67 4C 65 6E 3A 3D IN...StringLen:=
01A2F0: 6C 65 6E 3B 0D 0A 09 4D 6F 76 65 75 70 28 41 44 len;...Moveup(AD
01A300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01A310: 16 00 01 00 02 09 52 E5 16 00 C9 02 00 00 00 02 ......R.........
01A320: 16 00 C5 02 00 00 00 02 16 00 C1 02 00 00 00 02 ................
01A330: 16 00 C6 02 00 00 00 02 16 00 C2 02 00 00 00 02 ................
01A340: 16 00 C7 02 00 00 00 02 16 00 C3 02 00 00 00 02 ................
01A350: 16 00 C8 02 00 00 00 02 16 00 C4 02 00 00 00 02 ................
01A360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A400: 6F 65 73 20 72 6F 75 6E 64 20 66 6F 72 20 65 76 oes round for ev
01A410: 65 72 20 73 69 6E 63 65 20 74 68 65 72 65 20 69 er since there i
01A420: 73 20 61 6E 0D 0A 09 09 20 20 65 78 70 6C 69 63 s an.... explic
01A430: 69 74 20 48 41 4C 54 20 69 6E 20 64 6F 6D 65 6E it HALT in domen
01A440: 75 20 74 6F 20 73 74 6F 70 20 74 68 65 20 70 72 u to stop the pr
01A450: 6F 67 72 61 6D 2A 29 0D 0A 0D 0A 09 09 49 46 20 ogram*)......IF
01A460: 46 69 6C 65 73 4F 70 65 6E 65 64 3E 30 20 54 48 FilesOpened>0 TH
01A470: 45 4E 20 0D 0A 09 09 09 49 6E 74 65 72 70 72 65 EN .....Interpre
01A480: 74 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 69 t;.....END;....i
01A490: 3A 3D 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 3B :=CurrentWindow;
01A4A0: 09 0D 0A 09 09 6B 3A 3D 43 75 72 72 65 6E 74 46 .....k:=CurrentF
01A4B0: 69 6C 65 3B 0D 0A 0D 0A 09 09 28 2A 72 65 6D 65 ile;......(*reme
01A4C0: 6D 62 65 72 20 63 75 72 72 65 6E 74 20 77 69 6E mber current win
01A4D0: 64 6F 77 20 73 69 6E 63 65 20 44 6F 6D 65 6E 75 dow since Domenu
01A4E0: 4F 70 20 6D 61 79 20 63 68 61 6E 67 65 20 69 74 Op may change it
01A4F0: 2A 29 0D 0A 0D 0A 09 09 6A 3A 3D 46 69 6C 65 73 *)......j:=Files
01A500: 4F 70 65 6E 65 64 3B 0D 0A 09 09 44 6F 4D 65 6E Opened;....DoMen
01A510: 75 4F 70 3B 09 28 2A 65 78 70 6C 69 63 69 74 20 uOp;.(*explicit
01A520: 65 78 69 74 20 69 6E 20 74 68 69 73 20 6D 6F 64 exit in this mod
01A530: 75 6C 65 2A 29 0D 0A 09 09 49 46 20 28 69 3D 43 ule*)....IF (i=C
01A540: 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 20 41 4E urrentWindow) AN
01A550: 44 20 28 57 69 6E 64 6F 77 73 3E 30 29 20 54 48 D (Windows>0) TH
01A560: 45 4E 0D 0A 0D 0A 09 09 09 28 2A 61 66 74 65 72 EN.......(*after
01A570: 20 6D 65 6E 75 2C 20 72 65 64 69 73 70 6C 61 79 menu, redisplay
01A580: 20 77 69 6E 64 6F 77 20 69 6E 20 77 68 69 63 68 window in which
01A590: 20 74 68 65 0D 0A 09 09 09 20 20 77 69 6E 64 6F the..... windo
01A5A0: 77 20 70 6F 70 70 65 64 20 75 70 2A 29 0D 0A 0D w popped up*)...
01A5B0: 0A 09 09 09 44 69 73 70 6C 61 79 46 69 6C 65 28 ....DisplayFile(
01A5C0: 46 69 6C 65 73 5B 6B 5D 2C 69 2C 63 75 72 78 5B Files[k],i,curx[
01A5D0: 69 5D 2C 63 75 72 79 5B 69 5D 29 3B 0D 0A 09 09 i],cury[i]);....
01A5E0: 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A .END;....END; (*
01A5F0: 4C 4F 4F 50 2A 29 0D 0A 0D 0A 09 45 4E 44 20 6D LOOP*).....END m
01A600: 0D 0A 28 2A 09 45 72 72 6F 72 20 64 69 73 70 6C ..(*.Error displ
01A610: 61 79 20 72 6F 75 74 69 6E 65 0D 0A 0D 0A 09 49 ay routine.....I
01A620: 66 20 74 68 65 20 65 64 69 74 6F 72 20 69 73 20 f the editor is
01A630: 65 6E 74 65 72 65 64 20 61 73 20 74 68 65 20 72 entered as the r
01A640: 65 73 75 6C 74 20 6F 66 20 61 20 63 6F 6D 70 69 esult of a compi
01A650: 6C 61 74 69 6F 6E 20 65 72 72 6F 72 2C 0D 0A 09 lation error,...
01A660: 74 68 65 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 the command line
01A670: 20 63 6F 6E 73 69 73 74 73 20 6F 66 20 74 68 65 consists of the
01A680: 20 6E 61 6D 65 20 6F 66 20 74 68 65 20 66 69 6C name of the fil
01A690: 65 20 77 68 69 63 68 20 77 61 73 0D 0A 09 62 65 e which was...be
01A6A0: 69 6E 67 20 63 6F 6D 70 69 6C 65 64 20 66 6F 6C ing compiled fol
01A6B0: 6C 6F 77 65 64 20 62 79 20 61 6E 20 6F 70 74 69 lowed by an opti
01A6C0: 6F 6E 2E 20 54 68 65 20 6F 70 74 69 6F 6E 20 63 on. The option c
01A6D0: 6F 6E 74 61 69 6E 73 0D 0A 09 74 77 6F 20 69 6E ontains...two in
01A6E0: 74 65 67 65 72 20 76 61 6C 75 65 73 20 69 6E 20 teger values in
01A6F0: 62 69 6E 61 72 79 20 28 73 6F 20 79 6F 75 20 63 binary (so you c
01A700: 61 6E 6E 6F 74 20 65 6E 74 65 72 20 73 61 6D 65 annot enter same
01A710: 20 66 72 6F 6D 0D 0A 09 74 68 65 20 43 50 2F 4D from...the CP/M
01A720: 20 70 72 6F 6D 70 74 20 2D 20 6F 72 20 61 74 20 prompt - or at
01A730: 6C 65 61 73 74 20 6E 6F 74 20 65 61 73 69 6C 79 least not easily
01A740: 29 2E 20 47 69 76 69 6E 67 20 74 68 65 20 70 6F ). Giving the po
01A750: 73 69 74 69 6F 6E 0D 0A 09 6F 66 20 74 68 65 20 sition...of the
01A760: 65 72 72 6F 72 20 69 6E 20 74 68 65 20 66 69 6C error in the fil
01A770: 65 20 61 6E 64 20 74 68 65 20 65 72 72 6F 72 20 e and the error
01A780: 6E 75 6D 62 65 72 2A 29 0D 0A 0D 0A 0D 0A 28 2A number*)......(*
01A790: 09 57 6F 72 6B 20 74 68 72 6F 75 67 68 20 74 68 .Work through th
01A7A0: 65 20 70 61 72 61 6D 65 74 65 72 73 20 6F 70 65 e parameters ope
01A7B0: 6E 69 6E 67 20 74 68 65 20 66 69 6C 65 73 20 74 ning the files t
01A7C0: 6F 20 62 65 20 65 64 69 74 65 64 0D 0A 09 50 61 o be edited...Pa
01A7D0: 72 73 20 61 6E 64 20 50 61 72 43 6F 75 6E 74 20 rs and ParCount
01A7E0: 68 61 76 65 20 61 6C 72 65 61 64 79 20 62 65 65 have already bee
01A7F0: 6E 20 73 65 74 20 75 70 20 62 79 20 61 20 63 61 n set up by a ca
01A800: 4D 4F 44 55 4C 45 20 6D 65 3B 0D 0A 0D 0A 28 2A MODULE me;....(*
01A810: 09 4D 6F 64 75 6C 61 20 20 65 64 69 74 6F 72 0D .Modula editor.
01A820: 0A 0D 0A 09 44 61 76 65 20 4D 6F 6F 72 65 20 31 ....Dave Moore 1
01A830: 20 46 65 62 20 38 35 0D 0A 0D 0A 09 54 68 69 73 Feb 85.....This
01A840: 20 69 73 20 74 68 65 20 6D 61 69 6E 20 6D 6F 64 is the main mod
01A850: 75 6C 65 20 66 6F 72 20 74 68 65 20 65 64 69 74 ule for the edit
01A860: 6F 72 0D 0A 0D 0A 09 49 20 68 61 76 65 20 61 64 or.....I have ad
01A870: 64 65 64 20 73 6F 6D 65 20 63 6F 6D 6D 65 6E 74 ded some comment
01A880: 73 20 61 74 20 76 65 72 73 69 6F 6E 20 31 2E 32 s at version 1.2
01A890: 20 77 68 69 63 68 20 73 68 6F 75 6C 64 20 62 65 which should be
01A8A0: 20 0D 0A 09 77 6F 72 74 68 20 72 65 61 64 69 6E ...worth readin
01A8B0: 67 20 69 66 20 79 6F 75 20 61 72 65 20 74 72 79 g if you are try
01A8C0: 69 6E 67 20 74 6F 20 6C 65 61 72 6E 20 74 6F 20 ing to learn to
01A8D0: 77 72 69 74 65 20 69 6E 20 4D 6F 64 75 6C 61 2D write in Modula-
01A8E0: 32 0D 0A 2A 29 0D 0A 0D 0A 46 52 4F 4D 20 45 64 2..*)....FROM Ed
01A8F0: 69 74 43 6F 6E 74 72 6F 6C 20 49 4D 50 4F 52 54 itControl IMPORT
01A900: 20 46 69 6C 65 73 2C 46 69 6C 65 73 4F 70 65 6E Files,FilesOpen
01A910: 65 64 2C 63 75 72 78 2C 63 75 72 79 2C 43 75 72 ed,curx,cury,Cur
01A920: 72 65 6E 74 57 69 6E 64 6F 77 2C 43 68 61 6E 67 rentWindow,Chang
01A930: 65 57 69 6E 64 6F 77 2C 0D 0A 09 09 09 52 65 73 eWindow,.....Res
01A940: 65 74 53 63 72 65 65 6E 50 6F 73 2C 43 75 72 72 etScreenPos,Curr
01A950: 65 6E 74 46 69 6C 65 3B 0D 0A 46 52 4F 4D 20 45 entFile;..FROM E
01A960: 64 69 74 44 69 73 70 6C 61 79 20 49 4D 50 4F 52 ditDisplay IMPOR
01A970: 54 20 45 72 72 6F 72 4D 65 73 73 61 67 65 2C 53 T ErrorMessage,S
01A980: 65 74 57 69 6E 64 6F 77 73 2C 44 69 73 70 6C 61 etWindows,Displa
01A990: 79 46 69 6C 65 2C 57 69 6E 64 6F 77 73 2C 0D 0A yFile,Windows,..
01A9A0: 09 09 44 69 73 70 6C 61 79 45 72 72 6F 72 2C 45 ..DisplayError,E
01A9B0: 72 72 6F 72 4F 72 64 69 6E 61 6C 3B 0D 0A 0D 0A rrorOrdinal;....
01A9C0: 46 52 4F 4D 20 44 6F 4D 65 6E 75 20 49 4D 50 4F FROM DoMenu IMPO
01A9D0: 52 54 20 44 6F 4D 65 6E 75 4F 70 2C 4F 70 65 6E RT DoMenuOp,Open
01A9E0: 3B 0D 0A 0D 0A 46 52 4F 4D 20 4B 65 79 42 6F 61 ;....FROM KeyBoa
01A9F0: 72 64 20 49 4D 50 4F 52 54 20 49 6E 74 65 72 70 rd IMPORT Interp
01AA00: 6C 6C 20 74 6F 0D 0A 09 74 68 65 20 43 6F 6D 6D ll to...the Comm
01AA10: 61 6E 64 20 6D 6F 64 75 6C 65 2A 29 0D 0A 0D 0A and module*)....
01AA20: 50 52 4F 43 45 44 55 52 45 20 4F 70 65 6E 46 69 PROCEDURE OpenFi
01AA30: 6C 65 73 3B 0D 0A 56 41 52 09 6B 3A 49 4E 54 45 les;..VAR.k:INTE
01AA40: 47 45 52 3B 0D 0A 09 46 69 6C 65 50 6F 73 69 74 GER;...FilePosit
01AA50: 69 6F 6E 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 ion:CARDINAL;..B
01AA60: 45 47 49 4E 0D 0A 0D 0A 09 28 2A 09 63 68 65 63 EGIN.....(*.chec
01AA70: 6B 20 66 6F 72 20 6F 70 74 69 6F 6E 20 67 69 76 k for option giv
01AA80: 69 6E 67 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 ing error number
01AA90: 20 61 6E 64 20 70 6F 73 69 74 69 6F 6E 2A 29 0D and position*).
01AAA0: 0A 09 45 72 72 6F 72 43 6F 75 6E 74 3A 3D 30 3B ..ErrorCount:=0;
01AAB0: 0D 0A 09 45 72 72 6F 72 4F 72 64 69 6E 61 6C 3A ...ErrorOrdinal:
01AAC0: 3D 30 3B 0D 0A 09 57 49 54 48 20 50 61 72 73 5B =0;...WITH Pars[
01AAD0: 50 61 72 43 6F 75 6E 74 2D 31 5D 5E 20 44 4F 0D ParCount-1]^ DO.
01AAE0: 0A 09 09 49 46 20 43 6C 61 73 73 3D 6F 70 74 69 ...IF Class=opti
01AAF0: 6F 6E 20 54 48 45 4E 0D 0A 09 09 09 45 72 72 6F on THEN.....Erro
01AB00: 72 43 6F 75 6E 74 3A 3D 46 69 6C 65 50 6F 73 3B rCount:=FilePos;
01AB10: 0D 0A 09 09 09 4D 6F 76 65 75 70 28 41 44 52 28 .....Moveup(ADR(
01AB20: 43 68 61 72 73 5B 32 5D 29 2C 41 44 52 28 45 72 Chars[2]),ADR(Er
01AB30: 72 6F 72 4C 69 73 74 29 2C 34 2A 45 72 72 6F 72 rorList),4*Error
01AB40: 43 6F 75 6E 74 29 3B 0D 0A 09 09 09 44 45 43 28 Count);.....DEC(
01AB50: 50 61 72 43 6F 75 6E 74 29 3B 0D 0A 09 09 45 4C ParCount);....EL
01AB60: 53 45 0D 0A 09 09 09 46 69 6C 65 50 6F 73 69 74 SE.....FilePosit
01AB70: 69 6F 6E 3A 3D 36 35 35 33 35 0D 0A 09 09 09 45 ion:=65535.....E
01AB80: 4E 44 3B 28 2A 49 46 2A 29 0D 0A 09 09 45 4E 44 ND;(*IF*)....END
01AB90: 3B 09 0D 0A 09 46 4F 52 20 6B 3A 3D 30 20 54 4F ;....FOR k:=0 TO
01ABA0: 20 50 61 72 43 6F 75 6E 74 2D 31 20 44 4F 0D 0A ParCount-1 DO..
01ABB0: 09 09 57 49 54 48 20 50 61 72 73 5B 6B 5D 5E 20 ..WITH Pars[k]^
01ABC0: 44 4F 0D 0A 0D 0A 09 09 28 2A 20 4E 6F 74 65 20 DO......(* Note
01ABD0: 74 68 65 20 65 78 74 65 6E 73 69 6F 6E 20 62 65 the extension be
01ABE0: 6C 6F 77 3A 0D 0A 0D 0A 09 09 20 20 41 73 20 6F low:...... As o
01ABF0: 66 20 56 31 2E 32 2C 20 54 68 65 20 63 6F 6D 70 f V1.2, The comp
01AC00: 72 65 74 3B 0D 0A 46 52 4F 4D 09 4D 61 6B 65 45 ret;..FROM.MakeE
01AC10: 64 69 74 20 49 4D 50 4F 52 54 20 44 65 66 69 6E dit IMPORT Defin
01AC20: 65 45 72 72 6F 72 73 2C 45 72 72 6F 72 4C 69 73 eErrors,ErrorLis
01AC30: 74 2C 45 72 72 6F 72 43 6F 75 6E 74 3B 0D 0A 46 t,ErrorCount;..F
01AC40: 52 4F 4D 09 46 61 73 74 4D 6F 76 65 20 49 4D 50 ROM.FastMove IMP
01AC50: 4F 52 54 20 4D 6F 76 65 75 70 3B 0D 0A 28 2A 0D ORT Moveup;..(*.
01AC60: 0A 09 54 68 65 20 6D 6F 64 75 6C 65 73 20 61 62 ..The modules ab
01AC70: 6F 76 65 20 61 72 65 20 70 61 72 74 20 6F 66 20 ove are part of
01AC80: 74 68 65 20 65 64 69 74 6F 72 0D 0A 09 54 68 65 the editor...The
01AC90: 20 66 6F 6C 6C 6F 77 69 6E 67 20 6D 6F 64 75 6C following modul
01ACA0: 65 73 20 61 72 65 20 61 6C 6C 20 67 65 6E 65 72 es are all gener
01ACB0: 61 6C 20 70 75 72 70 6F 73 65 20 6D 6F 64 75 6C al purpose modul
01ACC0: 65 73 0D 0A 2A 29 0D 0A 0D 0A 46 52 4F 4D 20 43 es..*)....FROM C
01ACD0: 6F 6D 6D 61 6E 64 20 49 4D 50 4F 52 54 20 50 61 ommand IMPORT Pa
01ACE0: 72 63 6C 61 73 73 2C 6E 61 6D 65 2C 73 74 72 69 rclass,name,stri
01ACF0: 6E 67 2C 6F 70 74 69 6F 6E 2C 0D 0A 09 09 20 20 ng,option,....
01AD00: 20 54 65 78 74 2C 50 61 72 61 6D 65 74 65 72 2C Text,Parameter,
01AD10: 47 65 74 50 61 72 61 6D 73 3B 0D 0A 0D 0A 28 2A GetParams;....(*
01AD20: 09 43 6F 6D 6D 61 6E 64 20 63 72 61 63 6B 73 20 .Command cracks
01AD30: 74 68 65 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 the command line
01AD40: 20 70 61 72 61 6D 65 74 65 72 73 20 77 68 69 63 parameters whic
01AD50: 68 20 61 72 65 20 73 65 74 20 75 70 0D 0A 09 62 h are set up...b
01AD60: 79 20 43 50 2F 4D 20 61 74 20 61 64 64 72 65 73 y CP/M at addres
01AD70: 73 20 38 30 0D 0A 2A 29 0D 0A 0D 0A 46 52 4F 4D s 80..*)....FROM
01AD80: 20 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 69 Files IMPORT Fi
01AD90: 6C 65 4E 61 6D 65 2C 46 49 4C 45 2C 4C 6F 6F 6B leName,FILE,Look
01ADA0: 75 70 2C 52 65 61 64 42 6C 6F 63 6B 2C 53 65 74 up,ReadBlock,Set
01ADB0: 42 6C 6F 63 6B 3B 0D 0A 0D 0A 28 2A 09 46 69 6C Block;....(*.Fil
01ADC0: 65 73 20 69 73 20 74 68 65 20 66 69 6C 65 20 6F es is the file o
01ADD0: 72 69 65 6E 74 65 64 20 62 6C 6F 63 6B 20 6C 65 riented block le
01ADE0: 76 65 6C 20 49 4F 20 73 79 73 74 65 6D 2A 29 0D vel IO system*).
01ADF0: 0A 0D 0A 46 52 4F 4D 20 53 59 53 54 45 4D 20 49 ...FROM SYSTEM I
01AE00: 69 6C 65 72 20 61 6C 6C 6F 77 73 20 79 6F 75 20 iler allows you
01AE10: 74 6F 20 74 79 70 65 20 62 72 65 61 6B 20 77 69 to type break wi
01AE20: 74 68 20 74 79 70 65 73 0D 0A 09 09 20 20 61 6E th types.... an
01AE30: 64 20 76 61 72 69 61 62 6C 65 73 20 6D 6F 72 65 d variables more
01AE40: 20 74 68 61 6E 20 74 77 6F 20 62 79 74 65 73 20 than two bytes
01AE50: 69 6E 20 6C 65 6E 67 74 68 2C 20 77 68 69 63 68 in length, which
01AE60: 20 73 69 6D 70 6C 69 66 79 73 0D 0A 09 09 20 20 simplifys....
01AE70: 74 68 69 73 20 63 6F 64 65 20 67 72 65 61 74 65 this code greate
01AE80: 6C 79 2E 20 57 68 61 74 20 69 73 20 68 61 70 70 ly. What is happ
01AE90: 65 6E 69 6E 67 20 69 73 20 74 68 61 74 20 43 68 ening is that Ch
01AEA0: 61 72 73 20 69 73 20 72 65 61 6C 6C 79 0D 0A 09 ars is really...
01AEB0: 09 20 20 6F 66 20 74 79 70 65 20 41 52 52 41 59 . of type ARRAY
01AEC0: 5B 73 6F 6D 65 74 68 69 6E 67 5D 20 4F 46 20 43 [something] OF C
01AED0: 48 41 52 2C 20 61 6E 64 20 69 73 20 6E 6F 74 20 HAR, and is not
01AEE0: 74 68 65 20 73 61 6D 65 20 61 73 20 46 69 6C 65 the same as File
01AEF0: 4E 61 6D 65 0D 0A 09 09 0D 0A 09 09 20 20 42 79 Name........ By
01AF00: 20 70 75 74 74 69 6E 67 20 74 68 65 20 76 61 72 putting the var
01AF10: 69 61 62 6C 65 20 69 6E 20 46 69 6C 65 4E 61 6D iable in FileNam
01AF20: 65 28 29 2C 20 69 74 73 20 74 79 70 65 20 69 73 e(), its type is
01AF30: 20 63 68 61 6E 67 65 64 20 74 6F 0D 0A 09 09 20 changed to....
01AF40: 20 62 65 20 46 69 6C 65 4E 61 6D 65 2E 20 54 68 be FileName. Th
01AF50: 69 73 20 69 73 6E 27 74 20 72 65 61 6C 6C 79 20 is isn't really
01AF60: 61 20 63 6F 65 72 63 69 6F 6E 20 73 69 6E 63 65 a coercion since
01AF70: 20 74 68 65 20 64 61 74 61 20 69 73 20 6E 6F 74 the data is not
01AF80: 0D 0A 09 09 20 20 61 6C 74 65 72 65 64 20 69 6E .... altered in
01AF90: 20 61 6E 79 20 77 61 79 2E 20 49 74 20 73 69 6D any way. It sim
01AFA0: 70 6C 79 20 64 65 66 65 61 74 73 20 74 68 65 20 ply defeats the
01AFB0: 63 6F 6D 70 69 6C 65 72 27 73 20 74 79 70 65 0D compiler's type.
01AFC0: 0A 09 09 20 20 63 68 65 63 6B 69 6E 67 2E 20 20 ... checking.
01AFD0: 2A 29 0D 0A 0D 0A 09 20 09 09 4F 70 65 6E 28 46 *)..... ..Open(F
01AFE0: 69 6C 65 4E 61 6D 65 28 43 68 61 72 73 29 2C 46 ileName(Chars),F
01AFF0: 69 6C 65 50 6F 73 69 74 69 6F 6E 29 3B 0D 0A 09 ilePosition);...
01B000: 4D 50 4F 52 54 20 41 44 52 3B 0D 0A 0D 0A 46 52 MPORT ADR;....FR
01B010: 4F 4D 20 53 74 6F 72 61 67 65 20 49 4D 50 4F 52 OM Storage IMPOR
01B020: 54 20 46 75 6C 6C 55 70 3B 0D 0A 0D 0A 28 2A 09 T FullUp;....(*.
01B030: 54 65 72 6D 69 6E 61 6C 20 69 73 20 74 68 65 20 Terminal is the
01B040: 73 74 61 6E 64 61 72 64 20 74 65 72 6D 69 6E 61 standard termina
01B050: 6C 20 69 6E 70 75 74 2D 6F 75 74 70 75 74 20 6D l input-output m
01B060: 6F 64 75 6C 65 0D 0A 0D 0A 09 49 74 20 69 73 20 odule.....It is
01B070: 61 6C 73 6F 20 70 6F 73 73 69 62 6C 65 20 74 6F also possible to
01B080: 20 64 6F 20 49 6E 70 75 74 2D 4F 75 74 70 75 74 do Input-Output
01B090: 20 74 6F 20 74 68 65 20 74 65 72 6D 69 6E 61 6C to the terminal
01B0A0: 0D 0A 09 74 68 72 6F 75 67 68 20 74 68 65 20 6D ...through the m
01B0B0: 6F 64 75 6C 65 73 20 53 74 72 65 61 6D 73 20 61 odules Streams a
01B0C0: 6E 64 20 49 6E 4F 75 74 2C 20 62 75 74 20 74 68 nd InOut, but th
01B0D0: 65 73 65 0D 0A 09 69 6E 63 72 65 61 73 65 20 74 ese...increase t
01B0E0: 68 65 20 73 69 7A 65 20 6F 66 20 74 68 65 20 70 he size of the p
01B0F0: 72 6F 67 72 61 6D 20 61 6E 64 20 61 72 65 20 6F rogram and are o
01B100: 6E 6C 79 20 72 65 71 75 69 72 65 64 20 69 66 20 nly required if
01B110: 0D 0A 09 79 6F 75 20 77 61 6E 74 20 74 6F 20 64 ...you want to d
01B120: 6F 20 6D 6F 72 65 20 70 6F 77 65 72 66 75 6C 20 o more powerful
01B130: 74 68 69 6E 67 73 2C 20 73 75 63 68 20 61 73 20 things, such as
01B140: 66 69 6C 65 0D 0A 09 72 65 64 69 72 65 63 74 69 file...redirecti
01B150: 6F 6E 20 61 6E 64 20 6E 75 6D 62 65 72 20 63 6F on and number co
01B160: 6E 76 65 72 73 69 6F 6E 2E 20 49 66 20 61 6C 6C nversion. If all
01B170: 20 79 6F 75 20 77 61 6E 74 20 69 73 20 6E 75 6D you want is num
01B180: 62 65 72 20 0D 0A 09 63 6F 6E 76 65 72 73 69 6F ber ...conversio
01B190: 6E 2C 20 53 6D 61 6C 6C 49 4F 20 63 61 6E 20 62 n, SmallIO can b
01B1A0: 65 20 75 73 65 64 20 2A 29 20 0D 0A 0D 0A 56 41 e used *) ....VA
01B1B0: 52 09 50 61 72 73 3A 41 52 52 41 59 5B 30 2E 2E R.Pars:ARRAY[0..
01B1C0: 33 5D 20 4F 46 20 50 61 72 61 6D 65 74 65 72 3B 3] OF Parameter;
01B1D0: 0D 0A 09 50 61 72 43 6F 75 6E 74 3A 49 4E 54 45 ...ParCount:INTE
01B1E0: 47 45 52 3B 0D 0A 0D 0A 09 28 2A 09 50 61 72 73 GER;.....(*.Pars
01B1F0: 20 69 73 20 61 6E 20 61 72 72 61 79 20 69 6E 74 is an array int
01B200: 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A ..END;....END;..
01B210: 09 49 46 20 45 72 72 6F 72 43 6F 75 6E 74 3E 30 .IF ErrorCount>0
01B220: 20 54 48 45 4E 20 44 65 66 69 6E 65 45 72 72 6F THEN DefineErro
01B230: 72 73 28 46 69 6C 65 73 5B 43 75 72 72 65 6E 74 rs(Files[Current
01B240: 46 69 6C 65 5D 29 20 45 4E 44 3B 0D 0A 09 45 4E File]) END;...EN
01B250: 44 20 4F 70 65 6E 46 69 6C 65 73 3B 09 09 09 09 D OpenFiles;....
01B260: 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D 65 6D 46 ..PROCEDURE MemF
01B270: 75 6C 6C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 45 72 ull;..BEGIN...Er
01B280: 72 6F 72 4D 65 73 73 61 67 65 28 27 20 4D 65 6D rorMessage(' Mem
01B290: 6F 72 79 20 69 73 20 66 75 6C 6C 20 2D 20 70 6C ory is full - pl
01B2A0: 65 61 73 65 20 73 61 76 65 20 66 69 6C 65 73 20 ease save files
01B2B0: 6E 6F 77 27 2C 27 20 27 29 3B 0D 0A 09 44 6F 4D now',' ');...DoM
01B2C0: 65 6E 75 4F 70 3B 0D 0A 09 45 4E 44 20 4D 65 6D enuOp;...END Mem
01B2D0: 46 75 6C 6C 3B 0D 0A 56 41 52 09 63 63 63 3A 43 Full;..VAR.ccc:C
01B2E0: 48 41 52 3B 0D 0A 42 45 47 49 4E 0D 0A 0D 0A 09 HAR;..BEGIN.....
01B2F0: 28 2A 47 65 74 50 61 72 61 6D 73 20 72 65 61 64 (*GetParams read
01B300: 73 20 74 68 65 20 70 61 72 61 6D 65 74 65 72 73 s the parameters
01B310: 20 66 72 6F 6D 20 74 68 65 20 63 6F 6D 6D 61 6E from the comman
01B320: 64 20 6C 69 6E 65 2A 29 0D 0A 0D 0A 09 46 75 6C d line*).....Ful
01B330: 6C 55 70 3A 3D 4D 65 6D 46 75 6C 6C 3B 0D 0A 09 lUp:=MemFull;...
01B340: 47 65 74 50 61 72 61 6D 73 28 50 61 72 73 2C 50 GetParams(Pars,P
01B350: 61 72 43 6F 75 6E 74 29 3B 0D 0A 09 46 69 6C 65 arCount);...File
01B360: 73 4F 70 65 6E 65 64 3A 3D 30 3B 0D 0A 09 49 46 sOpened:=0;...IF
01B370: 20 50 61 72 43 6F 75 6E 74 3E 30 20 54 48 45 4E ParCount>0 THEN
01B380: 20 4F 70 65 6E 46 69 6C 65 73 20 45 4E 44 3B 0D OpenFiles END;.
01B390: 0A 09 49 46 20 45 72 72 6F 72 43 6F 75 6E 74 3C ..IF ErrorCount<
01B3A0: 3E 30 20 54 48 45 4E 20 44 69 73 70 6C 61 79 45 >0 THEN DisplayE
01B3B0: 72 72 6F 72 20 45 4E 44 3B 0D 0A 09 49 46 20 46 rror END;...IF F
01B3C0: 69 6C 65 73 4F 70 65 6E 65 64 3E 30 20 54 48 45 ilesOpened>0 THE
01B3D0: 4E 20 43 68 61 6E 67 65 57 69 6E 64 6F 77 28 31 N ChangeWindow(1
01B3E0: 29 20 45 4E 44 3B 0D 0A 09 4C 4F 4F 50 0D 0A 0D ) END;...LOOP...
01B3F0: 0A 09 09 28 2A 74 68 69 73 20 6C 6F 6F 70 20 67 ...(*this loop g
01B400: 6F 20 77 68 69 63 68 20 43 6F 6D 6D 61 6E 64 20 o which Command
01B410: 77 69 6C 6C 20 70 6C 61 63 65 0D 0A 09 09 74 68 will place....th
01B420: 65 20 70 61 72 61 6D 65 74 65 72 73 20 65 6E 74 e parameters ent
01B430: 65 72 65 64 20 6F 6E 20 74 68 65 20 63 6F 6D 6D ered on the comm
01B440: 61 6E 64 20 6C 69 6E 65 0D 0A 09 09 0D 0A 09 09 and line........
01B450: 49 74 20 6E 65 65 64 20 6F 6E 6C 79 20 62 65 20 It need only be
01B460: 61 73 20 6C 61 72 67 65 20 61 73 20 74 68 65 20 as large as the
01B470: 6E 75 6D 62 65 72 20 6F 66 20 70 61 72 61 6D 65 number of parame
01B480: 74 65 72 73 0D 0A 09 09 79 6F 75 20 65 78 70 65 ters....you expe
01B490: 63 74 20 74 6F 20 62 65 20 65 6E 74 65 72 65 64 ct to be entered
01B4A0: 20 6F 6E 20 74 68 65 20 63 6F 6D 6D 61 6E 64 20 on the command
01B4B0: 6C 69 6E 65 0D 0A 0D 0A 09 09 54 68 65 20 65 64 line......The ed
01B4C0: 69 74 6F 72 20 65 78 70 65 63 74 73 20 75 70 20 itor expects up
01B4D0: 74 6F 20 66 6F 75 72 20 70 61 72 61 6D 65 74 65 to four paramete
01B4E0: 72 73 3A 20 74 68 72 65 65 0D 0A 09 09 66 69 6C rs: three....fil
01B4F0: 65 20 6E 61 6D 65 73 20 61 6E 64 20 73 6F 6D 65 e names and some
01B500: 20 6F 70 74 69 6F 6E 73 2C 20 61 6C 74 68 6F 75 options, althou
01B510: 67 68 20 74 68 65 20 6F 70 74 69 6F 6E 73 0D 0A gh the options..
01B520: 09 09 61 72 65 20 63 75 72 72 65 6E 74 6C 79 20 ..are currently
01B530: 6F 6E 6C 79 20 75 73 65 64 20 62 79 20 74 68 65 only used by the
01B540: 20 63 6F 6D 70 69 6C 65 72 20 77 68 65 6E 20 69 compiler when i
01B550: 74 20 0D 0A 09 09 6C 69 6E 6B 73 20 74 6F 20 74 t ....links to t
01B560: 68 65 20 65 64 69 74 6F 72 20 61 66 74 65 72 20 he editor after
01B570: 61 6E 20 65 72 72 6F 72 20 61 6E 64 20 69 6E 20 an error and in
01B580: 74 68 61 74 0D 0A 09 09 63 61 73 65 2C 20 74 68 that....case, th
01B590: 65 72 65 20 69 73 20 6F 6E 6C 79 20 6F 6E 65 20 ere is only one
01B5A0: 6F 74 68 65 72 20 70 61 72 61 6D 65 74 65 72 0D other parameter.
01B5B0: 0A 09 2A 29 0D 0A 0D 0A 09 6B 3A 49 4E 54 45 47 ..*).....k:INTEG
01B5C0: 45 52 3B 0D 0A 09 69 2C 6A 3A 43 41 52 44 49 4E ER;...i,j:CARDIN
01B5D0: 41 4C 3B 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 AL;...reply:INTE
01B5E0: 47 45 52 3B 0D 0A 09 66 6E 3A 46 69 6C 65 4E 61 GER;...fn:FileNa
01B5F0: 6D 65 3B 0D 0A 09 63 68 3A 43 48 41 52 3B 0D 0A me;...ch:CHAR;..
01B600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01B610: 17 00 01 00 02 09 52 E5 17 00 C9 02 00 00 00 02 ......R.........
01B620: 17 00 C5 02 00 00 00 02 17 00 C1 02 00 00 00 02 ................
01B630: 17 00 C6 02 00 00 00 02 17 00 C2 02 00 00 00 02 ................
01B640: 17 00 C7 02 00 00 00 02 17 00 C3 02 00 00 00 02 ................
01B650: 17 00 C8 02 00 00 00 02 17 00 C4 02 00 00 00 02 ................
01B660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B700: 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A 46 END;....END; (*F
01B710: 4F 52 2A 29 0D 0A 0D 0A 09 28 2A 66 69 6E 69 73 OR*).....(*finis
01B720: 68 20 6F 66 66 20 63 75 72 72 65 6E 74 20 63 6F h off current co
01B730: 6C 75 6D 6E 2A 29 0D 0A 0D 0A 09 49 46 20 79 31 lumn*).....IF y1
01B740: 3C 3E 28 79 2B 31 29 20 54 48 45 4E 0D 0A 09 09 <>(y+1) THEN....
01B750: 57 48 49 4C 45 20 6A 3C 64 65 70 74 68 20 44 4F WHILE j<depth DO
01B760: 0D 0A 09 09 09 47 6F 74 6F 78 79 28 78 31 2C 79 .....Gotoxy(x1,y
01B770: 31 29 3B 0D 0A 09 09 09 57 72 69 74 65 53 74 72 1);.....WriteStr
01B780: 69 6E 67 28 27 20 20 20 20 20 20 20 20 20 20 20 ing('
01B790: 27 29 3B 0D 0A 09 09 09 49 4E 43 28 6A 29 3B 0D ');.....INC(j);.
01B7A0: 0A 09 09 09 49 4E 43 28 79 31 29 3B 0D 0A 09 09 ....INC(y1);....
01B7B0: 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 .END;....END;...
01B7C0: 0D 0A 09 28 2A 61 63 63 65 70 74 20 61 6E 20 6F ...(*accept an o
01B7D0: 70 74 69 6F 6E 2A 29 0D 0A 0D 0A 09 4C 4F 4F 50 ption*).....LOOP
01B7E0: 0D 0A 0D 0A 09 09 28 2A 69 6E 76 65 72 73 65 20 ......(*inverse
01B7F0: 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 currently select
01B800: 65 64 20 6F 70 74 69 6F 6E 2A 29 0D 0A 0D 0A 09 ed option*).....
01B810: 09 78 31 3A 3D 78 2B 31 3B 0D 0A 09 09 79 31 3A .x1:=x+1;....y1:
01B820: 3D 79 2B 31 2B 4F 70 74 69 6F 6E 4E 6F 3B 0D 0A =y+1+OptionNo;..
01B830: 09 09 57 48 49 4C 45 20 79 31 3E 3D 28 79 2B 64 ..WHILE y1>=(y+d
01B840: 65 70 74 68 2B 31 29 20 44 4F 0D 0A 09 09 09 79 epth+1) DO.....y
01B850: 31 3A 3D 79 31 2D 64 65 70 74 68 3B 0D 0A 09 09 1:=y1-depth;....
01B860: 09 78 31 3A 3D 78 31 2B 77 69 64 74 68 2B 31 0D .x1:=x1+width+1.
01B870: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 47 6F 74 6F ....END;....Goto
01B880: 78 79 28 78 31 2C 79 31 29 3B 0D 0A 09 09 53 63 xy(x1,y1);....Sc
01B890: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 49 6E 76 65 reenControl(Inve
01B8A0: 72 73 65 29 3B 0D 0A 09 09 57 72 69 74 65 53 74 rse);....WriteSt
01B8B0: 72 69 6E 67 28 54 65 78 74 5B 4F 70 74 69 6F 6E ring(Text[Option
01B8C0: 4E 6F 5D 29 3B 0D 0A 09 09 53 63 72 65 65 6E 43 No]);....ScreenC
01B8D0: 6F 6E 74 72 6F 6C 28 4E 6F 72 6D 61 6C 29 3B 0D ontrol(Normal);.
01B8E0: 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C 79 31 29 ...Gotoxy(x1,y1)
01B8F0: 3B 0D 0A 09 09 52 45 50 45 41 54 0D 0A 09 09 09 ;....REPEAT.....
01B900: 20 61 73 20 69 73 20 65 73 63 61 70 65 2A 29 0D as is escape*).
01B910: 0A 0D 0A 46 52 4F 4D 09 53 63 72 65 65 6E 49 4F ...FROM.ScreenIO
01B920: 09 49 4D 50 4F 52 54 09 47 6F 74 6F 78 79 2C 44 .IMPORT.Gotoxy,D
01B930: 72 61 77 42 6F 78 2C 44 69 6D 2C 53 74 61 72 74 rawBox,Dim,Start
01B940: 47 72 61 70 68 2C 0D 0A 09 09 09 09 45 6E 64 47 Graph,......EndG
01B950: 72 61 70 68 2C 56 65 72 74 69 63 61 6C 2C 49 6E raph,Vertical,In
01B960: 76 65 72 73 65 2C 4E 6F 72 6D 61 6C 2C 0D 0A 09 verse,Normal,...
01B970: 09 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C ...ScreenControl
01B980: 2C 52 69 6E 67 42 65 6C 6C 3B 0D 0A 46 52 4F 4D ,RingBell;..FROM
01B990: 09 54 65 72 6D 69 6E 61 6C 09 49 4D 50 4F 52 54 .Terminal.IMPORT
01B9A0: 20 09 57 72 69 74 65 53 74 72 69 6E 67 2C 52 65 .WriteString,Re
01B9B0: 61 64 2C 57 72 69 74 65 2C 42 75 73 79 52 65 61 ad,Write,BusyRea
01B9C0: 64 3B 0D 0A 43 4F 4E 53 54 09 77 69 64 74 68 3D d;..CONST.width=
01B9D0: 31 31 3B 09 28 2A 77 69 64 74 68 20 6F 66 20 6F 11;.(*width of o
01B9E0: 6E 65 20 6F 70 74 69 6F 6E 2A 29 0D 0A 09 45 53 ne option*)...ES
01B9F0: 43 3D 31 62 78 3B 0D 0A 09 43 52 3D 30 64 78 3B C=1bx;...CR=0dx;
01BA00: 0D 0A 09 43 74 72 6C 58 3D 31 38 78 3B 0D 0A 09 ...CtrlX=18x;...
01BA10: 43 74 72 6C 45 3D 30 35 78 3B 0D 0A 09 43 74 72 CtrlE=05x;...Ctr
01BA20: 6C 44 3D 30 34 78 3B 0D 0A 09 43 74 72 6C 53 3D lD=04x;...CtrlS=
01BA30: 31 33 78 3B 0D 0A 09 4C 46 3D 30 61 78 3B 0D 0A 13x;...LF=0ax;..
01BA40: 09 42 53 3D 30 38 78 3B 0D 0A 50 52 4F 43 45 44 .BS=08x;..PROCED
01BA50: 55 52 45 20 47 65 74 46 72 6F 6D 4D 65 6E 75 28 URE GetFromMenu(
01BA60: 56 41 52 20 54 65 78 74 3A 41 52 52 41 59 20 4F VAR Text:ARRAY O
01BA70: 46 20 4D 65 6E 75 54 65 78 74 3B 78 2C 79 3A 43 F MenuText;x,y:C
01BA80: 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 64 65 70 74 ARDINAL;....dept
01BA90: 68 2C 63 6F 6C 75 6D 6E 73 3A 43 41 52 44 49 4E h,columns:CARDIN
01BAA0: 41 4C 29 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 0D AL):CARDINAL;...
01BAB0: 0A 28 2A 20 09 54 65 78 74 20 69 73 20 74 68 65 .(* .Text is the
01BAC0: 20 74 65 78 74 20 74 6F 20 64 69 73 70 6C 61 79 text to display
01BAD0: 0D 0A 0D 0A 0D 0A 09 78 20 61 6E 64 20 79 20 61 .......x and y a
01BAE0: 72 65 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 re the position
01BAF0: 66 6F 72 20 74 68 65 20 74 6F 70 20 6C 65 66 74 for the top left
01BB00: 65 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 45 4E e.............EN
01BB10: 44 3B 20 28 2A 43 68 61 72 50 6F 73 3E 42 6C 6F D; (*CharPos>Blo
01BB20: 63 6B 4C 65 6E 2A 29 0D 0A 09 52 45 54 55 52 4E ckLen*)...RETURN
01BB30: 20 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B Working^.Chars[
01BB40: 43 68 61 72 50 6F 73 5D 3C 3E 45 4F 46 0D 0A 09 CharPos]<>EOF...
01BB50: 45 4E 44 20 41 64 76 61 6E 63 65 3B 0D 0A 0D 0A END Advance;....
01BB60: 50 52 4F 43 45 44 55 52 45 20 43 68 65 63 6B 42 PROCEDURE CheckB
01BB70: 6C 6F 63 6B 28 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A lock(...........
01BB80: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01BB90: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 18 8F 65 01 00 .............e..
01BBA0: 31 35 46 45 42 38 37 20 44 4F 43 20 00 00 00 00 15FEB87 DOC ....
01BBB0: 00 00 00 00 00 00 AC 3B 50 0E 51 0D 8F 65 01 00 .......;P.Q..e..
01BBC0: 46 49 58 45 53 20 20 20 44 4F 43 20 00 00 00 00 FIXES DOC ....
01BBD0: 00 00 00 00 00 00 F0 73 50 0E 47 25 74 05 00 00 .......sP.G%t...
01BBE0: 46 49 58 45 53 20 20 20 42 41 4B 20 00 00 00 00 FIXES BAK ....
01BBF0: 00 00 00 00 00 00 E2 70 50 0E F1 21 D4 03 00 00 .......pP..!....
01BC00: 0D 0A 09 09 44 45 43 28 69 29 3B 0D 0A 09 09 45 ....DEC(i);....E
01BC10: 4E 44 3B 09 28 2A 4C 4F 4F 50 2A 29 0D 0A 09 46 ND;.(*LOOP*)...F
01BC20: 72 6F 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3A 3D romFile.CurPos:=
01BC30: 72 3B 0D 0A 09 54 6F 46 69 6C 65 2E 43 75 72 50 r;...ToFile.CurP
01BC40: 6F 73 3A 3D 71 3B 0D 0A 09 52 45 54 55 52 4E 20 os:=q;...RETURN
01BC50: 54 52 55 45 3B 0D 0A 09 45 4E 44 20 42 6C 6F 63 TRUE;...END Bloc
01BC60: 6B 43 6F 70 79 3B 0D 0A 50 52 4F 43 45 44 55 52 kCopy;..PROCEDUR
01BC70: 45 20 42 6C 6F 63 6B 44 65 6C 28 56 41 52 20 46 E BlockDel(VAR F
01BC80: 72 6F 6D 46 69 6C 65 3A 45 64 69 74 46 69 6C 65 romFile:EditFile
01BC90: 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 56 41 52 09 ):BOOLEAN;..VAR.
01BCA0: 70 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A 42 45 47 p:Position;..BEG
01BCB0: 49 4E 0D 0A 09 49 46 20 4E 4F 54 20 43 68 65 63 IN...IF NOT Chec
01BCC0: 6B 42 6C 6F 63 6B 28 46 72 6F 6D 46 69 6C 65 29 kBlock(FromFile)
01BCD0: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 46 41 4C THEN RETURN FAL
01BCE0: 53 45 20 45 4E 44 3B 0D 0A 09 57 49 54 48 20 46 SE END;...WITH F
01BCF0: 72 6F 6D 46 69 6C 65 20 44 4F 0D 0A 09 09 4C 61 romFile DO....La
01BD00: 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 62 corner of the b
01BD10: 6F 78 0D 0A 09 64 65 70 74 68 20 69 73 20 74 68 ox...depth is th
01BD20: 65 20 6E 75 6D 62 65 72 20 6F 66 20 6F 70 74 69 e number of opti
01BD30: 6F 6E 73 20 69 6E 20 61 20 63 6F 6C 75 6D 6E 0D ons in a column.
01BD40: 0A 09 63 6F 6C 75 6D 6E 73 20 69 73 20 74 68 65 ..columns is the
01BD50: 20 6E 75 6D 62 65 72 20 6F 66 20 63 6F 6C 75 6D number of colum
01BD60: 6E 73 20 74 68 61 74 20 77 69 6C 6C 20 62 65 20 ns that will be
01BD70: 72 65 71 75 69 72 65 64 09 2A 29 0D 0A 0D 0A 56 required.*)....V
01BD80: 41 52 09 78 31 2C 79 31 3A 43 41 52 44 49 4E 41 AR.x1,y1:CARDINA
01BD90: 4C 3B 0D 0A 09 69 2C 6A 3A 43 41 52 44 49 4E 41 L;...i,j:CARDINA
01BDA0: 4C 3B 0D 0A 09 4F 70 74 69 6F 6E 4E 6F 3A 43 41 L;...OptionNo:CA
01BDB0: 52 44 49 4E 41 4C 3B 0D 0A 09 63 68 3A 43 48 41 RDINAL;...ch:CHA
01BDC0: 52 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 R;..PROCEDURE Ch
01BDD0: 61 6E 67 65 4F 70 74 69 6F 6E 28 62 79 3A 49 4E angeOption(by:IN
01BDE0: 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A 09 63 68 TEGER);....(*.ch
01BDF0: 61 6E 67 65 20 74 68 65 20 63 75 72 72 65 6E 74 ange the current
01BE00: 20 6F 70 74 69 6F 6E 20 6E 75 6D 62 65 72 20 79 option number y
01BE10: 20 67 69 76 65 6E 20 69 6E 63 72 65 6D 65 6E 74 given increment
01BE20: 0D 0A 0D 0A 09 65 6E 73 75 72 65 20 69 74 20 72 .....ensure it r
01BE30: 65 6D 61 69 6E 73 20 69 6E 20 72 61 6E 67 65 2A emains in range*
01BE40: 29 0D 0A 42 45 47 49 4E 0D 0A 09 62 79 3A 3D 62 )..BEGIN...by:=b
01BE50: 79 2B 49 4E 54 45 47 45 52 28 4F 70 74 69 6F 6E y+INTEGER(Option
01BE60: 4E 6F 29 3B 0D 0A 09 49 46 20 62 79 3C 30 20 54 No);...IF by<0 T
01BE70: 48 45 4E 20 62 79 3A 3D 48 49 47 48 28 54 65 78 HEN by:=HIGH(Tex
01BE80: 74 29 20 0D 0A 09 45 4C 53 49 46 20 62 79 3E 48 t) ...ELSIF by>H
01BE90: 49 47 48 28 54 65 78 74 29 20 54 48 45 4E 20 62 IGH(Text) THEN b
01BEA0: 79 3A 3D 30 20 45 4E 44 3B 0D 0A 09 4F 70 74 69 y:=0 END;...Opti
01BEB0: 6F 6E 4E 6F 3A 3D 62 79 0D 0A 09 45 4E 44 20 43 onNo:=by...END C
01BEC0: 68 61 6E 67 65 4F 70 74 69 6F 6E 3B 0D 0A 50 52 hangeOption;..PR
01BED0: 4F 43 45 44 55 52 45 20 43 68 61 6E 67 65 50 6F OCEDURE ChangePo
01BEE0: 73 3B 0D 0A 0D 0A 28 2A 09 43 68 61 6E 67 65 20 s;....(*.Change
01BEF0: 70 6F 73 69 74 69 6F 6E 20 75 73 69 6E 67 20 66 position using f
01BF00: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
01BF10: 45 20 4D 65 6E 75 3B 0D 0A 0D 0A 28 2A 09 4D 65 E Menu;....(*.Me
01BF20: 6E 75 20 64 72 69 76 65 72 0D 0A 0D 0A 09 42 72 nu driver.....Br
01BF30: 69 6E 67 20 75 70 20 61 20 6D 65 6E 75 20 61 74 ing up a menu at
01BF40: 20 73 65 6C 65 63 74 65 64 20 70 6F 69 6E 74 20 selected point
01BF50: 6F 6E 20 73 63 72 65 65 6E 20 61 6E 64 20 61 63 on screen and ac
01BF60: 63 65 70 74 20 61 6E 20 6F 70 74 69 6F 6E 0D 0A cept an option..
01BF70: 0D 0A 09 6F 70 74 69 6F 6E 73 20 63 61 6E 20 62 ...options can b
01BF80: 65 20 73 65 6C 65 63 74 65 64 20 65 69 74 68 65 e selected eithe
01BF90: 72 20 62 79 20 73 74 72 69 6B 69 6E 67 20 66 69 r by striking fi
01BFA0: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 rst character of
01BFB0: 0D 0A 0D 0A 09 6F 70 74 69 6F 6E 20 6F 72 20 62 .....option or b
01BFC0: 79 20 65 6E 74 65 72 69 6E 67 20 6F 70 74 69 6F y entering optio
01BFD0: 6E 20 6E 6F 20 28 6C 69 6D 69 74 65 64 20 74 6F n no (limited to
01BFE0: 20 30 2D 39 29 0D 0A 0D 0A 09 6F 70 74 69 6F 6E 0-9).....option
01BFF0: 20 30 20 69 73 20 61 6C 77 61 79 73 20 65 78 69 0 is always exi
01C000: 74 20 77 69 74 68 6F 75 74 20 73 65 6C 65 63 74 t without select
01C010: 69 6F 6E 20 61 73 20 69 73 20 65 73 63 61 70 65 ion as is escape
01C020: 2A 29 0D 0A 0D 0A 54 59 50 45 09 4D 65 6E 75 54 *)....TYPE.MenuT
01C030: 65 78 74 3D 41 52 52 41 59 5B 31 2E 2E 31 31 5D ext=ARRAY[1..11]
01C040: 20 4F 46 20 43 48 41 52 3B 0D 0A 0D 0A 50 52 4F OF CHAR;....PRO
01C050: 43 45 44 55 52 45 20 47 65 74 46 72 6F 6D 4D 65 CEDURE GetFromMe
01C060: 6E 75 28 56 41 52 20 54 65 78 74 3A 41 52 52 41 nu(VAR Text:ARRA
01C070: 59 20 4F 46 20 4D 65 6E 75 54 65 78 74 3B 78 2C Y OF MenuText;x,
01C080: 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 64 y:CARDINAL;....d
01C090: 65 70 74 68 2C 63 6F 6C 75 6D 6E 73 3A 43 41 52 epth,columns:CAR
01C0A0: 44 49 4E 41 4C 29 3A 43 41 52 44 49 4E 41 4C 3B DINAL):CARDINAL;
01C0B0: 0D 0A 0D 0A 28 2A 20 09 54 65 78 74 20 69 73 20 ....(* .Text is
01C0C0: 74 68 65 20 74 65 78 74 20 74 6F 20 64 69 73 70 the text to disp
01C0D0: 6C 61 79 0D 0A 0D 0A 09 78 20 61 6E 64 20 79 20 lay.....x and y
01C0E0: 61 72 65 20 74 68 65 20 70 6F 73 69 74 69 6F 6E are the position
01C0F0: 20 66 6F 72 20 74 68 65 20 74 6F 70 20 6C 65 66 for the top lef
01C100: 69 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F irst character o
01C110: 66 20 6D 65 6E 75 20 61 73 20 6F 70 74 69 6F 6E f menu as option
01C120: 0D 0A 09 41 6C 77 61 79 73 20 6D 6F 76 65 20 2D ...Always move -
01C130: 20 73 6F 20 74 68 61 74 20 69 66 20 6D 6F 72 65 so that if more
01C140: 20 74 68 61 6E 20 6F 6E 65 20 63 6F 6D 6D 61 6E than one comman
01C150: 64 20 73 74 61 72 74 73 20 77 69 74 68 0D 0A 09 d starts with...
01C160: 74 68 65 20 73 61 6D 65 20 63 68 61 72 61 63 74 the same charact
01C170: 65 72 20 79 6F 75 20 63 61 6E 20 67 65 74 20 74 er you can get t
01C180: 6F 20 6F 74 68 65 72 20 74 68 61 6E 20 74 68 65 o other than the
01C190: 20 66 69 72 73 74 20 2A 29 0D 0A 56 41 52 09 69 first *)..VAR.i
01C1A0: 3A 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 49 4E :INTEGER;..BEGIN
01C1B0: 0D 0A 09 69 3A 3D 48 49 47 48 28 54 65 78 74 29 ...i:=HIGH(Text)
01C1C0: 3B 0D 0A 09 52 45 50 45 41 54 0D 0A 09 09 43 68 ;...REPEAT....Ch
01C1D0: 61 6E 67 65 4F 70 74 69 6F 6E 28 31 29 3B 0D 0A angeOption(1);..
01C1E0: 09 09 44 45 43 28 69 29 3B 0D 0A 09 09 55 4E 54 ..DEC(i);....UNT
01C1F0: 49 4C 20 28 69 3C 30 29 20 4F 52 20 28 43 41 50 IL (i<0) OR (CAP
01C200: 28 54 65 78 74 5B 4F 70 74 69 6F 6E 4E 6F 5D 5B (Text[OptionNo][
01C210: 31 5D 29 3D 43 41 50 28 63 68 29 29 3B 0D 0A 09 1])=CAP(ch));...
01C220: 45 4E 44 20 43 68 61 6E 67 65 50 6F 73 3B 0D 0A END ChangePos;..
01C230: 42 45 47 49 4E 0D 0A 09 28 2A 09 64 72 61 77 20 BEGIN...(*.draw
01C240: 74 68 65 20 62 6F 78 2A 29 0D 0A 0D 0A 09 78 31 the box*).....x1
01C250: 3A 3D 78 2B 28 77 69 64 74 68 2B 31 29 2A 63 6F :=x+(width+1)*co
01C260: 6C 75 6D 6E 73 3B 0D 0A 09 79 31 3A 3D 79 2B 64 lumns;...y1:=y+d
01C270: 65 70 74 68 2B 31 3B 0D 0A 09 44 72 61 77 42 6F epth+1;...DrawBo
01C280: 78 28 78 2C 79 31 2C 78 31 2C 79 29 3B 0D 0A 09 x(x,y1,x1,y);...
01C290: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 69 ScreenControl(Di
01C2A0: 6D 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F 6E 74 m);...ScreenCont
01C2B0: 72 6F 6C 28 53 74 61 72 74 47 72 61 70 68 29 3B rol(StartGraph);
01C2C0: 0D 0A 09 46 4F 52 20 69 3A 3D 31 20 54 4F 20 63 ...FOR i:=1 TO c
01C2D0: 6F 6C 75 6D 6E 73 2D 31 20 44 4F 0D 0A 09 09 78 olumns-1 DO....x
01C2E0: 31 3A 3D 78 2B 69 2A 28 77 69 64 74 68 2B 31 29 1:=x+i*(width+1)
01C2F0: 3B 0D 0A 09 09 46 4F 52 20 6A 3A 3D 79 2B 31 20 ;....FOR j:=y+1
01C300: 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 t corner of the
01C310: 62 6F 78 0D 0A 09 64 65 70 74 68 20 69 73 20 74 box...depth is t
01C320: 68 65 20 6E 75 6D 62 65 72 20 6F 66 20 6F 70 74 he number of opt
01C330: 69 6F 6E 73 20 69 6E 20 61 20 63 6F 6C 75 6D 6E ions in a column
01C340: 0D 0A 09 63 6F 6C 75 6D 6E 73 20 69 73 20 74 68 ...columns is th
01C350: 65 20 6E 75 6D 62 65 72 20 6F 66 20 63 6F 6C 75 e number of colu
01C360: 6D 6E 73 20 74 68 61 74 20 77 69 6C 6C 20 62 65 mns that will be
01C370: 20 72 65 71 75 69 72 65 64 09 2A 29 0D 0A 0D 0A required.*)....
01C380: 45 4E 44 20 4D 65 6E 75 2E 0D 0A 1A 1A 1A 1A 1A END Menu........
01C390: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C3A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C3B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C3C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C3D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C3E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C3F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C400: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 73 61 76 .....END;....sav
01C410: 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 70 ecurpos(f);....p
01C420: 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 09 70 :=f.CurPos;....p
01C430: 6F 73 3A 3D 42 61 63 6B 75 70 4C 69 6E 65 28 29 os:=BackupLine()
01C440: 3B 0D 0A 09 09 66 2E 43 75 72 50 6F 73 3A 3D 70 ;....f.CurPos:=p
01C450: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 20 20 20 20 28 ;...ELSE... (
01C460: 2A 63 68 61 73 65 20 62 61 63 6B 77 61 72 64 73 *chase backwards
01C470: 20 75 6E 74 69 6C 20 61 20 43 52 2C 20 4C 46 20 until a CR, LF
01C480: 6F 72 20 46 46 20 69 73 20 66 6F 75 6E 64 20 61 or FF is found a
01C490: 6E 64 0D 0A 09 20 20 20 20 20 20 63 61 6C 63 75 nd... calcu
01C4A0: 6C 61 74 65 20 70 6F 73 69 74 69 6F 6E 20 69 6E late position in
01C4B0: 20 6C 69 6E 65 2A 29 0D 0A 09 20 20 20 20 70 6F line*)... po
01C4C0: 73 3A 3D 42 61 63 6B 75 70 4C 69 6E 65 28 29 3B s:=BackupLine();
01C4D0: 0D 0A 09 20 20 20 20 6C 65 6E 3A 3D 30 3B 0D 0A ... len:=0;..
01C4E0: 0D 0A 09 20 20 20 20 28 2A 09 6E 6F 77 20 70 6F ... (*.now po
01C4F0: 73 69 74 69 6F 6E 65 64 20 74 6F 20 62 65 67 69 sitioned to begi
01C500: 54 4F 20 79 31 2D 31 20 44 4F 0D 0A 09 09 09 47 TO y1-1 DO.....G
01C510: 6F 74 6F 78 79 28 78 31 2C 6A 29 3B 0D 0A 09 09 otoxy(x1,j);....
01C520: 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 56 .ScreenControl(V
01C530: 65 72 74 69 63 61 6C 29 3B 0D 0A 09 09 09 45 4E ertical);.....EN
01C540: 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 53 63 72 D;....END;...Scr
01C550: 65 65 6E 43 6F 6E 74 72 6F 6C 28 45 6E 64 47 72 eenControl(EndGr
01C560: 61 70 68 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F aph);...ScreenCo
01C570: 6E 74 72 6F 6C 28 4E 6F 72 6D 61 6C 29 3B 0D 0A ntrol(Normal);..
01C580: 0D 0A 09 28 2A 77 65 20 6E 6F 77 20 68 61 76 65 ...(*we now have
01C590: 20 61 20 62 6F 78 20 61 72 6F 75 6E 64 20 74 68 a box around th
01C5A0: 65 20 6D 65 6E 75 20 77 69 74 68 20 64 69 6D 20 e menu with dim
01C5B0: 62 61 72 73 20 62 65 74 77 65 65 6E 20 63 6F 6C bars between col
01C5C0: 75 6D 6E 73 2A 29 0D 0A 0D 0A 09 4F 70 74 69 6F umns*).....Optio
01C5D0: 6E 4E 6F 3A 3D 30 3B 09 28 2A 61 63 74 75 61 6C nNo:=0;.(*actual
01C5E0: 6C 79 20 6F 6E 65 20 6C 65 73 73 20 74 68 61 6E ly one less than
01C5F0: 20 76 61 6C 75 65 20 72 65 74 75 72 6E 65 64 2A value returned*
01C600: 29 0D 0A 09 6A 3A 3D 30 3B 09 09 28 2A 72 6F 77 )...j:=0;..(*row
01C610: 20 6E 75 6D 62 65 72 2A 29 0D 0A 09 78 31 3A 3D number*)...x1:=
01C620: 78 2B 31 3B 09 28 2A 70 6F 73 69 74 69 6F 6E 20 x+1;.(*position
01C630: 66 6F 72 20 74 65 78 74 2A 29 0D 0A 09 79 31 3A for text*)...y1:
01C640: 3D 79 2B 31 3B 09 0D 0A 09 46 4F 52 20 69 3A 3D =y+1;....FOR i:=
01C650: 30 20 54 4F 20 48 49 47 48 28 54 65 78 74 29 20 0 TO HIGH(Text)
01C660: 44 4F 09 0D 0A 09 09 47 6F 74 6F 78 79 28 78 31 DO.....Gotoxy(x1
01C670: 2C 79 31 29 3B 0D 0A 09 09 57 72 69 74 65 53 74 ,y1);....WriteSt
01C680: 72 69 6E 67 28 54 65 78 74 5B 69 5D 29 3B 0D 0A ring(Text[i]);..
01C690: 09 09 49 4E 43 28 6A 29 3B 0D 0A 09 09 49 46 20 ..INC(j);....IF
01C6A0: 6A 3D 64 65 70 74 68 20 54 48 45 4E 20 28 2A 6E j=depth THEN (*n
01C6B0: 65 78 74 20 63 6F 6C 75 6D 6E 2A 29 0D 0A 09 09 ext column*)....
01C6C0: 09 78 31 3A 3D 78 31 2B 77 69 64 74 68 2B 31 3B .x1:=x1+width+1;
01C6D0: 0D 0A 09 09 09 79 31 3A 3D 79 2B 31 3B 0D 0A 09 .....y1:=y+1;...
01C6E0: 09 09 6A 3A 3D 30 0D 0A 09 09 45 4C 53 45 0D 0A ..j:=0....ELSE..
01C6F0: 09 09 09 49 4E 43 28 79 31 29 3B 0D 0A 09 09 09 ...INC(y1);.....
01C700: 28 2A 09 6D 65 6E 75 20 68 61 6E 64 6C 65 72 0D (*.menu handler.
01C710: 0A 0D 0A 09 43 6F 70 79 72 69 67 68 74 20 44 61 ....Copyright Da
01C720: 76 65 20 4D 6F 6F 72 65 20 46 54 4C 20 4D 6F 64 ve Moore FTL Mod
01C730: 75 6C 61 2D 32 20 31 39 38 36 0D 0A 0D 0A 09 4D ula-2 1986.....M
01C740: 6F 64 69 66 69 63 61 74 69 6F 6E 73 3A 09 43 68 odifications:.Ch
01C750: 61 6E 67 65 64 20 74 6F 20 61 6C 6C 6F 77 20 70 anged to allow p
01C760: 6F 73 69 74 69 6F 6E 20 74 6F 20 6F 70 74 69 6F osition to optio
01C770: 6E 20 75 73 69 6E 67 20 66 69 72 73 74 0D 0A 09 n using first...
01C780: 09 09 6C 65 74 74 65 72 20 6F 66 20 6F 70 74 69 ..letter of opti
01C790: 6F 6E 2E 20 49 66 20 6D 6F 72 65 20 74 68 61 6E on. If more than
01C7A0: 20 6F 6E 65 20 6F 70 74 69 6F 6E 20 73 74 61 72 one option star
01C7B0: 74 73 0D 0A 09 09 09 77 69 74 68 20 61 20 67 69 ts.....with a gi
01C7C0: 76 65 6E 20 6C 65 74 74 65 72 2C 20 61 6C 77 61 ven letter, alwa
01C7D0: 79 73 20 6D 6F 76 65 73 20 74 6F 20 6E 65 78 74 ys moves to next
01C7E0: 20 2A 29 0D 0A 0D 0A 0D 0A 49 4D 50 4C 45 4D 45 *)......IMPLEME
01C7F0: 4E 54 41 54 49 4F 4E 20 4D 4F 44 55 4C 45 20 4D NTATION MODULE M
01C800: 65 6E 75 3B 0D 0A 0D 0A 28 2A 09 4D 65 6E 75 20 enu;....(*.Menu
01C810: 64 72 69 76 65 72 0D 0A 0D 0A 09 42 72 69 6E 67 driver.....Bring
01C820: 20 75 70 20 61 20 6D 65 6E 75 20 61 74 20 73 65 up a menu at se
01C830: 6C 65 63 74 65 64 20 70 6F 69 6E 74 20 6F 6E 20 lected point on
01C840: 73 63 72 65 65 6E 20 61 6E 64 20 61 63 63 65 70 screen and accep
01C850: 74 20 61 6E 20 6F 70 74 69 6F 6E 0D 0A 0D 0A 09 t an option.....
01C860: 6F 70 74 69 6F 6E 73 20 63 61 6E 20 62 65 20 73 options can be s
01C870: 65 6C 65 63 74 65 64 20 65 69 74 68 65 72 20 62 elected either b
01C880: 79 20 73 74 72 69 6B 69 6E 67 20 66 69 72 73 74 y striking first
01C890: 20 63 68 61 72 61 63 74 65 72 20 6F 66 0D 0A 0D character of...
01C8A0: 0A 09 6F 70 74 69 6F 6E 20 6F 72 20 62 79 20 65 ..option or by e
01C8B0: 6E 74 65 72 69 6E 67 20 6F 70 74 69 6F 6E 20 6E ntering option n
01C8C0: 6F 20 28 6C 69 6D 69 74 65 64 20 74 6F 20 30 2D o (limited to 0-
01C8D0: 39 29 0D 0A 0D 0A 09 6F 70 74 69 6F 6E 20 30 20 9).....option 0
01C8E0: 69 73 20 61 6C 77 61 79 73 20 65 78 69 74 20 77 is always exit w
01C8F0: 69 74 68 6F 75 74 20 73 65 6C 65 63 74 69 6F 6E ithout selection
01C900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01C910: 18 00 01 00 02 09 52 E5 18 00 C9 02 00 00 00 02 ......R.........
01C920: 18 00 C5 02 00 00 00 02 18 00 C1 02 00 00 00 02 ................
01C930: 18 00 C6 02 00 00 00 02 18 00 C2 02 00 00 00 02 ................
01C940: 18 00 C7 02 00 00 00 02 18 00 C3 02 00 00 00 02 ................
01C950: 18 00 C8 02 00 00 00 02 18 00 C4 02 00 00 00 02 ................
01C960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01CA00: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
01CA10: 4F 44 55 4C 45 20 53 63 72 65 65 6E 44 75 6D 6D ODULE ScreenDumm
01CA20: 79 3B 0D 0A 49 4D 50 4F 52 54 09 53 63 72 65 65 y;..IMPORT.Scree
01CA30: 6E 49 4F 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 nIO;....PROCEDUR
01CA40: 45 20 43 6C 65 61 72 53 63 72 65 65 6E 3B 0D 0A E ClearScreen;..
01CA50: 42 45 47 49 4E 0D 0A 09 53 63 72 65 65 6E 49 4F BEGIN...ScreenIO
01CA60: 2E 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 53 .ScreenControl(S
01CA70: 63 72 65 65 6E 49 4F 2E 43 6C 65 61 72 53 63 72 creenIO.ClearScr
01CA80: 65 65 6E 29 3B 0D 0A 09 45 4E 44 20 43 6C 65 61 een);...END Clea
01CA90: 72 53 63 72 65 65 6E 3B 0D 0A 50 52 4F 43 45 44 rScreen;..PROCED
01CAA0: 55 52 45 20 47 6F 74 6F 78 79 28 78 2C 79 3A 43 URE Gotoxy(x,y:C
01CAB0: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
01CAC0: 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 47 6F 74 6F ...ScreenIO.Goto
01CAD0: 78 79 28 78 2C 79 29 3B 0D 0A 09 45 4E 44 20 47 xy(x,y);...END G
01CAE0: 6F 74 6F 78 79 3B 0D 0A 50 52 4F 43 45 44 55 52 otoxy;..PROCEDUR
01CAF0: 45 20 52 69 6E 67 42 65 6C 6C 3B 0D 0A 42 45 47 E RingBell;..BEG
01CB00: 49 4E 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 53 63 IN...ScreenIO.Sc
01CB10: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 53 63 72 65 reenControl(Scre
01CB20: 65 6E 49 4F 2E 52 69 6E 67 42 65 6C 6C 29 3B 0D enIO.RingBell);.
01CB30: 0A 09 45 4E 44 20 52 69 6E 67 42 65 6C 6C 3B 0D ..END RingBell;.
01CB40: 0A 50 52 4F 43 45 44 55 52 45 20 4F 75 74 70 75 .PROCEDURE Outpu
01CB50: 74 54 6F 53 63 72 65 65 6E 28 62 3A 42 4F 4F 4C tToScreen(b:BOOL
01CB60: 45 41 4E 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 53 EAN);..BEGIN...S
01CB70: 63 72 65 65 6E 49 4F 2E 4F 75 74 70 75 74 54 6F creenIO.OutputTo
01CB80: 53 63 72 65 65 6E 28 62 29 3B 0D 0A 09 45 4E 44 Screen(b);...END
01CB90: 20 4F 75 74 70 75 74 54 6F 53 63 72 65 65 6E 3B OutputToScreen;
01CBA0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 44 72 61 ..PROCEDURE Dra
01CBB0: 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 2C 79 32 wBox(x1,y1,x2,y2
01CBC0: 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 :CARDINAL);..BEG
01CBD0: 49 4E 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 44 72 IN...ScreenIO.Dr
01CBE0: 61 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 2C 79 awBox(x1,y1,x2,y
01CBF0: 32 29 3B 0D 0A 09 45 4E 44 20 44 72 61 77 42 6F 2);...END DrawBo
01CC00: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
01CC10: 4F 44 55 4C 45 20 52 65 73 65 74 44 69 73 63 3B ODULE ResetDisc;
01CC20: 0D 0A 46 52 4F 4D 09 43 50 4D 20 49 4D 50 4F 52 ..FROM.CPM IMPOR
01CC30: 54 20 42 44 4F 53 2C 72 73 64 66 63 3B 0D 0A 50 T BDOS,rsdfc;..P
01CC40: 52 4F 43 45 44 55 52 45 20 52 65 73 65 74 41 6C ROCEDURE ResetAl
01CC50: 6C 44 69 73 63 73 3B 0D 0A 56 41 52 09 63 3A 43 lDiscs;..VAR.c:C
01CC60: 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D ARDINAL;..BEGIN.
01CC70: 0A 09 63 3A 3D 42 44 4F 53 28 72 73 64 66 63 2C ..c:=BDOS(rsdfc,
01CC80: 30 33 66 68 29 3B 0D 0A 09 45 4E 44 20 52 65 73 03fh);...END Res
01CC90: 65 74 41 6C 6C 44 69 73 63 73 3B 0D 0A 45 4E 44 etAllDiscs;..END
01CCA0: 20 52 65 73 65 74 44 69 73 63 2E 0D 0A 1A 1A 1A ResetDisc......
01CCB0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CCC0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CCD0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CCE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CCF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CD00: 72 43 6F 75 6E 74 3A 3D 46 69 6C 65 50 6F 73 3B rCount:=FilePos;
01CD10: 0D 0A 09 09 09 4D 6F 76 65 75 70 28 41 44 52 28 .....Moveup(ADR(
01CD20: 43 68 61 72 73 5B 32 5D 29 2C 41 44 52 28 45 72 Chars[2]),ADR(Er
01CD30: 72 6F 72 4C 69 73 74 29 2C 34 2A 45 72 72 6F 72 rorList),4*Error
01CD40: 43 6F 75 6E 74 29 3B 0D 0A 09 09 09 44 45 43 28 Count);.....DEC(
01CD50: 50 61 72 43 6F 75 6E 74 29 3B 0D 0A 09 09 45 4C ParCount);....EL
01CD60: 53 45 0D 0A 09 09 09 46 69 6C 65 50 6F 73 69 74 SE.....FilePosit
01CD70: 69 6F 6E 3A 3D 36 35 35 33 35 0D 0A 09 09 09 45 ion:=65535.....E
01CD80: 4E 44 3B 28 2A 49 46 2A 29 0D 0A 09 09 45 4E 44 ND;(*IF*)....END
01CD90: 3B 09 0D 0A 09 46 4F 52 20 6B 3A 3D 30 20 54 4F ;....FOR k:=0 TO
01CDA0: 20 50 61 72 43 6F 75 6E 74 2D 31 20 44 4F 0D 0A ParCount-1 DO..
01CDB0: 09 09 57 49 54 48 20 50 61 72 73 5B 6B 5D 5E 20 ..WITH Pars[k]^
01CDC0: 44 4F 0D 0A 0D 0A 09 09 28 2A 20 4E 6F 74 65 20 DO......(* Note
01CDD0: 74 68 65 20 65 78 74 65 6E 73 69 6F 6E 20 62 65 the extension be
01CDE0: 6C 6F 77 3A 0D 0A 0D 0A 09 09 20 20 41 73 20 6F low:...... As o
01CDF0: 66 20 56 31 2E 32 2C 20 54 68 65 20 63 6F 6D 70 f V1.2, The comp
01CE00: 42 75 73 79 52 65 61 64 28 63 68 29 3B 0D 0A 09 BusyRead(ch);...
01CE10: 09 09 55 4E 54 49 4C 20 63 68 3C 3E 30 78 3B 0D ..UNTIL ch<>0x;.
01CE20: 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C 79 31 29 ...Gotoxy(x1,y1)
01CE30: 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 ;....ScreenContr
01CE40: 6F 6C 28 4E 6F 72 6D 61 6C 29 3B 0D 0A 09 09 57 ol(Normal);....W
01CE50: 72 69 74 65 53 74 72 69 6E 67 28 54 65 78 74 5B riteString(Text[
01CE60: 4F 70 74 69 6F 6E 4E 6F 5D 29 3B 0D 0A 09 09 43 OptionNo]);....C
01CE70: 41 53 45 20 43 41 50 28 63 68 29 20 4F 46 0D 0A ASE CAP(ch) OF..
01CE80: 09 09 45 53 43 2C 27 20 27 3A 20 52 45 54 55 52 ..ESC,' ': RETUR
01CE90: 4E 20 30 7C 0D 0A 09 09 43 52 3A 20 20 52 45 54 N 0|....CR: RET
01CEA0: 55 52 4E 20 4F 70 74 69 6F 6E 4E 6F 2B 31 7C 0D URN OptionNo+1|.
01CEB0: 0A 09 09 43 74 72 6C 53 2C 42 53 3A 43 68 61 6E ...CtrlS,BS:Chan
01CEC0: 67 65 4F 70 74 69 6F 6E 28 2D 64 65 70 74 68 29 geOption(-depth)
01CED0: 7C 0D 0A 09 09 43 74 72 6C 45 3A 43 68 61 6E 67 |....CtrlE:Chang
01CEE0: 65 4F 70 74 69 6F 6E 28 2D 31 29 7C 0D 0A 09 09 eOption(-1)|....
01CEF0: 43 74 72 6C 44 3A 43 68 61 6E 67 65 4F 70 74 69 CtrlD:ChangeOpti
01CF00: 6F 6E 28 64 65 70 74 68 29 7C 0D 0A 09 09 43 74 on(depth)|....Ct
01CF10: 72 6C 58 2C 4C 46 3A 43 68 61 6E 67 65 4F 70 74 rlX,LF:ChangeOpt
01CF20: 69 6F 6E 28 31 29 7C 0D 0A 09 09 27 41 27 2E 2E ion(1)|....'A'..
01CF30: 27 5A 27 3A 43 68 61 6E 67 65 50 6F 73 7C 0D 0A 'Z':ChangePos|..
01CF40: 09 09 45 4C 53 45 20 53 63 72 65 65 6E 43 6F 6E ..ELSE ScreenCon
01CF50: 74 72 6F 6C 28 52 69 6E 67 42 65 6C 6C 29 0D 0A trol(RingBell)..
01CF60: 09 09 45 4E 44 3B 28 2A 63 61 73 65 2A 29 0D 0A ..END;(*case*)..
01CF70: 09 09 45 4E 44 3B 28 2A 4C 4F 4F 50 2A 29 0D 0A ..END;(*LOOP*)..
01CF80: 09 45 4E 44 20 47 65 74 46 72 6F 6D 4D 65 6E 75 .END GetFromMenu
01CF90: 3B 0D 0A 09 45 4E 44 20 4D 65 6E 75 2E 0D 0A 1A ;...END Menu....
01CFA0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CFB0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CFC0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CFD0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CFE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01CFF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01D200: 1A 1A 1A 1A 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 ........END;....
01D210: 4C 6F 63 3A 3D 4C 6F 63 2B 31 32 38 3B 0D 0A 09 Loc:=Loc+128;...
01D220: 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 43 6F 6D 70 .END;...END Comp
01D230: 42 69 6E 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A Bin.............
01D240: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D250: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D260: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D270: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D280: 20 46 6F 72 77 61 72 64 4F 6E 65 43 68 61 72 3B ForwardOneChar;
01D290: 09 09 09 09 0D 0A 56 41 52 09 53 74 72 69 6E 67 ......VAR.String
01D2A0: 3A 41 52 52 41 59 5B 30 2E 2E 35 39 5D 20 4F 46 :ARRAY[0..59] OF
01D2B0: 20 43 48 41 52 3B 0D 0A 09 53 74 72 69 6E 67 4C CHAR;...StringL
01D2C0: 65 6E 3A 43 41 52 44 49 4E 41 4C 3D 30 3B 09 0D en:CARDINAL=0;..
01D2D0: 0A 09 4D 61 74 63 68 43 68 61 72 4E 6F 3A 43 41 ..MatchCharNo:CA
01D2E0: 52 44 49 4E 41 4C 3B 0D 0A 09 4D 61 74 63 68 43 RDINAL;...MatchC
01D2F0: 68 61 72 3A 43 48 41 52 3B 0D 0A 0D 0A 50 52 4F har:CHAR;....PRO
01D300: 43 45 44 55 52 45 20 4D 61 74 63 68 65 73 28 29 CEDURE Matches()
01D310: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E :BOOLEAN;..BEGIN
01D320: 0D 0A 09 52 45 54 55 52 4E 20 28 57 6F 72 6B 69 ...RETURN (Worki
01D330: 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F ng^.Chars[CharPo
01D340: 73 5D 3D 53 74 72 69 6E 67 5B 4D 61 74 63 68 43 s]=String[MatchC
01D350: 68 61 72 4E 6F 5D 29 0D 0A 09 20 20 20 20 4F 52 harNo])... OR
01D360: 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 (Working^.Chars
01D370: 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 53 74 [CharPos]=CAP(St
01D380: 72 69 6E 67 5B 4D 61 74 63 68 43 68 61 72 4E 6F ring[MatchCharNo
01D390: 5D 29 29 0D 0A 09 45 4E 44 20 4D 61 74 63 68 65 ]))...END Matche
01D3A0: 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 50 72 s;..PROCEDURE Pr
01D3B0: 65 70 61 72 65 53 74 72 69 6E 67 28 73 3A 41 52 epareString(s:AR
01D3C0: 52 41 59 20 4F 46 20 43 48 41 52 3B 6C 65 6E 3A RAY OF CHAR;len:
01D3D0: 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 42 45 47 INTEGER);....BEG
01D3E0: 49 4E 0D 0A 09 53 74 72 69 6E 67 4C 65 6E 3A 3D IN...StringLen:=
01D3F0: 6C 65 6E 3B 0D 0A 09 4D 6F 76 65 75 70 28 41 44 len;...Moveup(AD
01D400: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
01D410: 45 20 53 63 72 65 65 6E 44 75 6D 6D 79 3B 0D 0A E ScreenDummy;..
01D420: 0D 0A 28 2A 09 74 68 69 73 20 6D 6F 64 75 6C 65 ..(*.this module
01D430: 20 77 61 73 20 77 72 69 74 74 65 6E 20 74 6F 20 was written to
01D440: 65 6E 61 62 6C 65 0D 0A 09 73 65 76 65 72 61 6C enable...several
01D450: 20 6D 6F 64 75 6C 65 73 20 74 6F 20 62 65 20 63 modules to be c
01D460: 6F 6D 70 69 6C 65 64 0D 0A 09 6F 6E 20 6D 61 63 ompiled...on mac
01D470: 68 69 6E 65 73 20 77 69 74 68 20 74 69 67 68 74 hines with tight
01D480: 20 54 50 41 27 73 2E 20 54 68 65 20 73 61 6D 65 TPA's. The same
01D490: 0D 0A 09 74 68 69 6E 67 20 63 61 6E 20 62 65 20 ...thing can be
01D4A0: 64 6F 6E 65 20 77 69 74 68 20 6F 74 68 65 72 20 done with other
01D4B0: 6D 6F 64 75 6C 65 73 20 69 66 0D 0A 09 79 6F 75 modules if...you
01D4C0: 72 20 54 50 41 20 69 73 20 74 69 67 68 74 65 72 r TPA is tighter
01D4D0: 20 74 68 61 6E 20 74 68 61 74 20 6F 66 20 6D 79 than that of my
01D4E0: 20 74 65 73 74 0D 0A 09 6D 61 63 68 69 6E 65 2E test...machine.
01D4F0: 0D 0A 0D 0A 09 57 68 61 74 20 68 61 73 20 62 65 .....What has be
01D500: 65 6E 20 64 6F 6E 65 20 69 73 20 74 6F 20 72 65 en done is to re
01D510: 70 6C 61 63 65 20 61 20 6C 61 72 67 65 0D 0A 09 place a large...
01D520: 73 79 6D 62 6F 6C 20 74 61 62 6C 65 20 28 74 68 symbol table (th
01D530: 61 74 20 6F 66 20 53 63 72 65 65 6E 49 4F 29 20 at of ScreenIO)
01D540: 77 69 74 68 20 61 20 0D 0A 09 73 6D 61 6C 6C 20 with a ...small
01D550: 73 79 6D 62 6F 6C 20 74 61 62 6C 65 20 28 74 68 symbol table (th
01D560: 69 73 20 6D 6F 64 75 6C 65 29 2E 20 54 68 69 73 is module). This
01D570: 0D 0A 09 72 65 64 75 63 65 73 20 74 68 65 20 73 ...reduces the s
01D580: 79 6D 62 6F 6C 20 74 61 62 6C 65 20 73 70 61 63 ymbol table spac
01D590: 65 20 75 73 65 64 20 62 79 20 74 68 65 0D 0A 09 e used by the...
01D5A0: 63 61 6C 6C 69 6E 67 20 6D 6F 64 75 6C 65 73 2E calling modules.
01D5B0: 20 54 68 69 73 20 69 73 20 66 75 72 74 68 65 72 This is further
01D5C0: 20 64 69 73 63 75 73 73 65 64 0D 0A 09 69 6E 20 discussed...in
01D5D0: 74 68 65 20 6D 61 6E 75 61 6C 2E 0D 0A 2A 29 0D the manual...*).
01D5E0: 0A 50 52 4F 43 45 44 55 52 45 20 43 6C 65 61 72 .PROCEDURE Clear
01D5F0: 53 63 72 65 65 6E 3B 0D 0A 50 52 4F 43 45 44 55 Screen;..PROCEDU
01D600: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
01D610: 45 20 52 65 73 65 74 44 69 73 63 3B 0D 0A 50 52 E ResetDisc;..PR
01D620: 4F 43 45 44 55 52 45 20 52 65 73 65 74 41 6C 6C OCEDURE ResetAll
01D630: 44 69 73 63 73 3B 0D 0A 45 4E 44 20 52 65 73 65 Discs;..END Rese
01D640: 74 44 69 73 63 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A tDisc...........
01D650: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D660: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D670: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D680: 20 64 6F 20 49 6E 70 75 74 2D 4F 75 74 70 75 74 do Input-Output
01D690: 20 74 6F 20 74 68 65 20 74 65 72 6D 69 6E 61 6C to the terminal
01D6A0: 0D 0A 09 74 68 72 6F 75 67 68 20 74 68 65 20 6D ...through the m
01D6B0: 6F 64 75 6C 65 73 20 53 74 72 65 61 6D 73 20 61 odules Streams a
01D6C0: 6E 64 20 49 6E 4F 75 74 2C 20 62 75 74 20 74 68 nd InOut, but th
01D6D0: 65 73 65 0D 0A 09 69 6E 63 72 65 61 73 65 20 74 ese...increase t
01D6E0: 68 65 20 73 69 7A 65 20 6F 66 20 74 68 65 20 70 he size of the p
01D6F0: 72 6F 67 72 61 6D 20 61 6E 64 20 61 72 65 20 6F rogram and are o
01D700: 6E 6C 79 20 72 65 71 75 69 72 65 64 20 69 66 20 nly required if
01D710: 0D 0A 09 79 6F 75 20 77 61 6E 74 20 74 6F 20 64 ...you want to d
01D720: 6F 20 6D 6F 72 65 20 70 6F 77 65 72 66 75 6C 20 o more powerful
01D730: 74 68 69 6E 67 73 2C 20 73 75 63 68 20 61 73 20 things, such as
01D740: 66 69 6C 65 0D 0A 09 72 65 64 69 72 65 63 74 69 file...redirecti
01D750: 6F 6E 20 61 6E 64 20 6E 75 6D 62 65 72 20 63 6F on and number co
01D760: 6E 76 65 72 73 69 6F 6E 2E 20 49 66 20 61 6C 6C nversion. If all
01D770: 20 79 6F 75 20 77 61 6E 74 20 69 73 20 6E 75 6D you want is num
01D780: 62 65 72 20 0D 0A 09 63 6F 6E 76 65 72 73 69 6F ber ...conversio
01D790: 6E 2C 20 53 6D 61 6C 6C 49 4F 20 63 61 6E 20 62 n, SmallIO can b
01D7A0: 65 20 75 73 65 64 20 2A 29 20 0D 0A 0D 0A 56 41 e used *) ....VA
01D7B0: 52 09 50 61 72 73 3A 41 52 52 41 59 5B 30 2E 2E R.Pars:ARRAY[0..
01D7C0: 33 5D 20 4F 46 20 50 61 72 61 6D 65 74 65 72 3B 3] OF Parameter;
01D7D0: 0D 0A 09 50 61 72 43 6F 75 6E 74 3A 49 4E 54 45 ...ParCount:INTE
01D7E0: 47 45 52 3B 0D 0A 0D 0A 09 28 2A 09 50 61 72 73 GER;.....(*.Pars
01D7F0: 20 69 73 20 61 6E 20 61 72 72 61 79 20 69 6E 74 is an array int
01D800: 52 45 20 47 6F 74 6F 78 79 28 78 2C 79 3A 43 41 RE Gotoxy(x,y:CA
01D810: 52 44 49 4E 41 4C 29 3B 0D 0A 50 52 4F 43 45 44 RDINAL);..PROCED
01D820: 55 52 45 20 52 69 6E 67 42 65 6C 6C 3B 0D 0A 50 URE RingBell;..P
01D830: 52 4F 43 45 44 55 52 45 20 4F 75 74 70 75 74 54 ROCEDURE OutputT
01D840: 6F 53 63 72 65 65 6E 28 62 3A 42 4F 4F 4C 45 41 oScreen(b:BOOLEA
01D850: 4E 29 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 N);..PROCEDURE
01D860: 44 72 61 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 DrawBox(x1,y1,x2
01D870: 2C 79 32 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ,y2:CARDINAL);..
01D880: 45 4E 44 20 53 63 72 65 65 6E 44 75 6D 6D 79 2E END ScreenDummy.
01D890: 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D8A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D8B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D8C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D8D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D8E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D8F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01D900: 4F 70 65 6E 65 64 3B 0D 0A 09 09 44 6F 4D 65 6E Opened;....DoMen
01D910: 75 4F 70 3B 09 28 2A 65 78 70 6C 69 63 69 74 20 uOp;.(*explicit
01D920: 65 78 69 74 20 69 6E 20 74 68 69 73 20 6D 6F 64 exit in this mod
01D930: 75 6C 65 2A 29 0D 0A 09 09 49 46 20 28 69 3D 43 ule*)....IF (i=C
01D940: 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 20 41 4E urrentWindow) AN
01D950: 44 20 28 57 69 6E 64 6F 77 73 3E 30 29 20 54 48 D (Windows>0) TH
01D960: 45 4E 0D 0A 0D 0A 09 09 09 28 2A 61 66 74 65 72 EN.......(*after
01D970: 20 6D 65 6E 75 2C 20 72 65 64 69 73 70 6C 61 79 menu, redisplay
01D980: 20 77 69 6E 64 6F 77 20 69 6E 20 77 68 69 63 68 window in which
01D990: 20 74 68 65 0D 0A 09 09 09 20 20 77 69 6E 64 6F the..... windo
01D9A0: 77 20 70 6F 70 70 65 64 20 75 70 2A 29 0D 0A 0D w popped up*)...
01D9B0: 0A 09 09 09 44 69 73 70 6C 61 79 46 69 6C 65 28 ....DisplayFile(
01D9C0: 46 69 6C 65 73 5B 6B 5D 2C 69 2C 63 75 72 78 5B Files[k],i,curx[
01D9D0: 69 5D 2C 63 75 72 79 5B 69 5D 29 3B 0D 0A 09 09 i],cury[i]);....
01D9E0: 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A .END;....END; (*
01D9F0: 4C 4F 4F 50 2A 29 0D 0A 0D 0A 09 45 4E 44 20 6D LOOP*).....END m
01DA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01DC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01DC10: 19 00 01 00 02 09 52 E5 19 00 C9 02 00 00 00 02 ......R.........
01DC20: 19 00 C5 02 00 00 00 02 19 00 C1 02 00 00 00 02 ................
01DC30: 19 00 C6 02 00 00 00 02 19 00 C2 02 00 00 00 02 ................
01DC40: 19 00 C7 02 00 00 00 02 19 00 C3 02 00 00 00 02 ................
01DC50: 19 00 C8 02 00 00 00 02 19 00 C4 02 00 00 00 02 ................
01DC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DD00: 44 49 4E 41 4C 29 3B 0D 0A 50 52 4F 43 45 44 55 DINAL);..PROCEDU
01DD10: 52 45 20 4F 75 74 70 75 74 54 6F 53 63 72 65 65 RE OutputToScree
01DD20: 6E 28 54 75 72 6E 4F 6E 3A 42 4F 4F 4C 45 41 4E n(TurnOn:BOOLEAN
01DD30: 29 3B 0D 0A 0D 0A 28 2A 09 43 61 6C 6C 20 74 68 );....(*.Call th
01DD40: 69 73 20 72 6F 75 74 69 6E 65 20 77 69 74 68 20 is routine with
01DD50: 46 41 4C 53 45 20 74 6F 20 70 72 65 76 65 6E 74 FALSE to prevent
01DD60: 20 6F 75 74 70 75 74 20 67 6F 69 6E 67 20 74 6F output going to
01DD70: 20 74 68 65 0D 0A 09 73 63 72 65 65 6E 2E 20 54 the...screen. T
01DD80: 68 69 73 20 61 6C 6C 6F 77 73 20 79 6F 75 20 74 his allows you t
01DD90: 6F 20 73 75 70 70 72 65 73 73 20 6F 75 74 70 75 o suppress outpu
01DDA0: 74 20 77 68 69 6C 65 20 6C 61 72 67 65 20 61 6D t while large am
01DDB0: 6F 75 6E 74 73 0D 0A 09 6F 66 20 73 63 72 65 65 ounts...of scree
01DDC0: 6E 20 61 6C 74 65 72 61 74 69 6F 6E 73 20 61 72 n alterations ar
01DDD0: 65 20 62 65 69 6E 67 20 6D 61 64 65 20 74 6F 20 e being made to
01DDE0: 73 70 65 65 64 20 75 70 20 61 20 70 72 6F 67 72 speed up a progr
01DDF0: 61 6D 2E 20 4F 66 0D 0A 09 63 6F 75 72 73 65 2C am. Of...course,
01DE00: 20 79 6F 75 20 6D 75 73 74 20 72 65 2D 65 6E 61 you must re-ena
01DE10: 62 6C 65 20 73 63 72 65 65 6E 20 6F 75 74 70 75 ble screen outpu
01DE20: 74 20 61 6E 64 20 74 68 65 6E 20 72 65 2D 64 72 t and then re-dr
01DE30: 61 77 20 74 68 65 0D 0A 09 73 63 72 65 65 6E 20 aw the...screen
01DE40: 6C 61 74 65 72 2E 20 54 68 69 73 20 69 73 20 75 later. This is u
01DE50: 73 65 64 20 62 79 20 74 68 65 20 65 64 69 74 6F sed by the edito
01DE60: 72 20 74 6F 20 73 75 70 70 72 65 73 73 20 73 63 r to suppress sc
01DE70: 72 65 65 6E 0D 0A 09 61 6C 74 65 72 61 74 69 6F reen...alteratio
01DE80: 6E 73 20 64 75 72 69 6E 67 20 65 78 65 63 75 74 ns during execut
01DE90: 69 6F 6E 20 6F 66 20 72 65 70 65 61 74 73 20 2A ion of repeats *
01DEA0: 29 0D 0A 45 4E 44 20 53 63 72 65 65 6E 49 4F 2E )..END ScreenIO.
01DEB0: 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01DEC0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01DED0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01DEE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01DEF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01DF00: 64 69 6E 61 74 65 73 20 61 6E 64 20 61 66 74 65 dinates and afte
01DF10: 72 20 74 68 65 0D 0A 09 09 09 63 75 72 73 6F 72 r the.....cursor
01DF20: 20 61 64 64 72 65 73 73 20 63 6F 6D 6D 61 6E 64 address command
01DF30: 2E 0D 0A 0D 0A 09 09 4D 6F 76 65 4C 65 66 74 2C .......MoveLeft,
01DF40: 4D 6F 76 65 52 69 67 68 74 2C 4D 6F 76 65 44 6F MoveRight,MoveDo
01DF50: 77 6E 2C 4D 6F 76 65 55 70 0D 0A 0D 0A 09 09 09 wn,MoveUp.......
01DF60: 43 75 72 73 6F 72 20 6D 6F 76 65 20 63 6F 6D 6D Cursor move comm
01DF70: 61 6E 64 73 0D 0A 09 09 2A 29 0D 0A 09 28 2A 09 ands....*)...(*.
01DF80: 59 6F 75 20 73 68 6F 75 6C 64 20 6E 6F 74 20 6E You should not n
01DF90: 65 65 64 20 74 6F 20 75 73 65 20 74 68 65 20 6E eed to use the n
01DFA0: 65 78 74 20 66 65 77 20 74 79 70 65 20 64 65 63 ext few type dec
01DFB0: 6C 61 72 61 74 69 6F 6E 73 0D 0A 09 09 54 68 65 larations....The
01DFC0: 79 20 61 72 65 20 69 6E 63 6C 75 64 65 64 20 68 y are included h
01DFD0: 65 72 65 20 66 6F 72 20 75 73 65 20 62 79 20 74 ere for use by t
01DFE0: 68 65 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E he configuration
01DFF0: 20 70 72 6F 67 72 61 6D 2A 29 0D 0A 0D 0A 0D 0A program*)......
01E000: 50 52 4F 43 45 44 55 52 45 20 47 6F 74 6F 78 79 PROCEDURE Gotoxy
01E010: 28 78 2C 79 3A 43 41 52 44 49 4E 41 4C 29 3B 09 (x,y:CARDINAL);.
01E020: 09 0D 0A 0D 0A 28 2A 09 09 50 6F 73 69 74 69 6F .....(*..Positio
01E030: 6E 20 74 6F 20 67 69 76 65 6E 20 63 6F 6F 72 64 n to given coord
01E040: 69 6E 61 74 65 73 0D 0A 09 09 74 6F 70 20 6C 65 inates....top le
01E050: 66 74 20 69 73 20 61 6C 77 61 79 73 20 30 2C 30 ft is always 0,0
01E060: 2C 20 77 68 69 63 68 20 6D 65 61 6E 73 20 74 68 , which means th
01E070: 61 74 0D 0A 09 09 74 68 65 20 62 69 67 67 65 72 at....the bigger
01E080: 20 79 20 69 73 2C 20 74 68 65 20 66 75 72 74 68 y is, the furth
01E090: 65 72 20 64 6F 77 6E 20 74 68 65 20 73 63 72 65 er down the scre
01E0A0: 65 6E 0D 0A 0D 0A 09 09 78 20 69 73 20 63 6F 6C en......x is col
01E0B0: 75 6D 6E 2C 20 79 20 69 73 20 72 6F 77 0D 0A 0D umn, y is row...
01E0C0: 0A 09 09 41 20 27 53 74 61 6E 64 61 72 64 27 20 ...A 'Standard'
01E0D0: 53 63 72 65 65 6E 20 69 73 20 38 30 20 62 79 20 Screen is 80 by
01E0E0: 32 34 2E 20 54 68 65 20 6C 69 6D 69 74 20 69 73 24. The limit is
01E0F0: 20 73 65 74 20 62 79 0D 0A 09 09 74 68 65 20 74 set by....the t
01E100: 78 3B 0D 0A 45 4E 44 20 53 63 72 65 65 6E 44 75 x;..END ScreenDu
01E110: 6D 6D 79 2E 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A mmy.............
01E120: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01E130: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01E140: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01E150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01E160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01E170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01E180: 65 20 73 65 6C 65 63 74 65 64 20 65 69 74 68 65 e selected eithe
01E190: 72 20 62 79 20 73 74 72 69 6B 69 6E 67 20 66 69 r by striking fi
01E1A0: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 rst character of
01E1B0: 0D 0A 0D 0A 09 6F 70 74 69 6F 6E 20 6F 72 20 62 .....option or b
01E1C0: 79 20 65 6E 74 65 72 69 6E 67 20 6F 70 74 69 6F y entering optio
01E1D0: 6E 20 6E 6F 20 28 6C 69 6D 69 74 65 64 20 74 6F n no (limited to
01E1E0: 20 30 2D 39 29 0D 0A 0D 0A 09 6F 70 74 69 6F 6E 0-9).....option
01E1F0: 20 30 20 69 73 20 61 6C 77 61 79 73 20 65 78 69 0 is always exi
01E200: 74 20 77 69 74 68 6F 75 74 20 73 65 6C 65 63 74 t without select
01E210: 69 6F 6E 20 61 73 20 69 73 20 65 73 63 61 70 65 ion as is escape
01E220: 2A 29 0D 0A 0D 0A 54 59 50 45 09 4D 65 6E 75 54 *)....TYPE.MenuT
01E230: 65 78 74 3D 41 52 52 41 59 5B 31 2E 2E 31 31 5D ext=ARRAY[1..11]
01E240: 20 4F 46 20 43 48 41 52 3B 0D 0A 0D 0A 50 52 4F OF CHAR;....PRO
01E250: 43 45 44 55 52 45 20 47 65 74 46 72 6F 6D 4D 65 CEDURE GetFromMe
01E260: 6E 75 28 56 41 52 20 54 65 78 74 3A 41 52 52 41 nu(VAR Text:ARRA
01E270: 59 20 4F 46 20 4D 65 6E 75 54 65 78 74 3B 78 2C Y OF MenuText;x,
01E280: 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 64 y:CARDINAL;....d
01E290: 65 70 74 68 2C 63 6F 6C 75 6D 6E 73 3A 43 41 52 epth,columns:CAR
01E2A0: 44 49 4E 41 4C 29 3A 43 41 52 44 49 4E 41 4C 3B DINAL):CARDINAL;
01E2B0: 0D 0A 0D 0A 28 2A 20 09 54 65 78 74 20 69 73 20 ....(* .Text is
01E2C0: 74 68 65 20 74 65 78 74 20 74 6F 20 64 69 73 70 the text to disp
01E2D0: 6C 61 79 0D 0A 0D 0A 09 78 20 61 6E 64 20 79 20 lay.....x and y
01E2E0: 61 72 65 20 74 68 65 20 70 6F 73 69 74 69 6F 6E are the position
01E2F0: 20 66 6F 72 20 74 68 65 20 74 6F 70 20 6C 65 66 for the top lef
01E300: 65 72 6D 69 6E 61 6C 20 64 65 66 69 6E 69 74 69 erminal definiti
01E310: 6F 6E 20 66 69 6C 65 09 2A 29 0D 0A 0D 0A 50 52 on file.*)....PR
01E320: 4F 43 45 44 55 52 45 20 4C 6F 61 64 54 65 72 6D OCEDURE LoadTerm
01E330: 43 6F 64 65 28 66 69 6C 65 6E 61 6D 65 3A 46 69 Code(filename:Fi
01E340: 6C 65 4E 61 6D 65 29 3B 0D 0A 0D 0A 28 2A 09 09 leName);....(*..
01E350: 4C 6F 61 64 20 74 68 65 20 74 65 72 6D 69 6E 61 Load the termina
01E360: 6C 20 64 65 66 69 6E 69 74 69 6F 6E 20 66 6F 72 l definition for
01E370: 20 74 68 65 20 63 75 72 72 65 6E 74 20 74 65 72 the current ter
01E380: 6D 69 6E 61 6C 0D 0A 0D 0A 09 09 66 69 6C 65 6E minal......filen
01E390: 61 6D 65 20 69 73 20 74 68 65 20 6E 61 6D 65 20 ame is the name
01E3A0: 6F 66 20 74 68 65 20 66 69 6C 65 20 74 6F 20 72 of the file to r
01E3B0: 65 61 64 0D 0A 0D 0A 09 09 4E 6F 72 6D 61 6C 6C ead......Normall
01E3C0: 79 2C 20 77 68 65 6E 20 74 68 65 20 70 72 6F 67 y, when the prog
01E3D0: 72 61 6D 20 69 73 20 6C 6F 61 64 65 64 2C 20 74 ram is loaded, t
01E3E0: 68 65 20 66 69 6C 65 0D 0A 09 09 27 54 45 52 4D he file....'TERM
01E3F0: 49 4E 41 4C 2E 43 4F 44 27 20 69 73 20 6C 6F 61 INAL.COD' is loa
01E400: 64 65 64 20 66 72 6F 6D 20 74 68 65 20 6C 6F 67 ded from the log
01E410: 67 65 64 20 69 6E 20 64 69 73 63 0D 0A 09 09 54 ged in disc....T
01E420: 68 69 73 20 72 6F 75 74 69 6E 65 20 6F 6E 6C 79 his routine only
01E430: 20 6E 65 65 64 73 20 74 6F 20 62 65 20 75 73 65 needs to be use
01E440: 64 20 69 66 20 74 68 61 74 0D 0A 09 09 66 69 6C d if that....fil
01E450: 65 20 69 73 20 6E 6F 74 20 74 68 65 20 6F 6E 65 e is not the one
01E460: 20 74 6F 20 75 73 65 20 28 65 67 2C 20 74 6F 20 to use (eg, to
01E470: 73 77 61 70 20 73 63 72 65 65 6E 73 2A 29 20 0D swap screens*) .
01E480: 0A 0D 0A 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 .......PROCEDURE
01E490: 20 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 73 ScreenControl(s
01E4A0: 3A 45 64 69 74 73 29 3B 0D 0A 0D 0A 28 2A 09 09 :Edits);....(*..
01E4B0: 50 65 72 66 6F 72 6D 20 61 20 73 63 72 65 65 6E Perform a screen
01E4C0: 20 63 6F 6E 74 72 6F 6C 20 6F 70 65 72 61 74 69 control operati
01E4D0: 6F 6E 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 on*)....PROCEDUR
01E4E0: 45 20 20 44 72 61 77 42 6F 78 28 78 31 2C 79 31 E DrawBox(x1,y1
01E4F0: 2C 78 32 2C 79 32 3A 43 41 52 44 49 4E 41 4C 29 ,x2,y2:CARDINAL)
01E500: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
01E510: 45 20 53 63 72 65 65 6E 49 4F 3B 0D 0A 0D 0A 28 E ScreenIO;....(
01E520: 2A 09 53 63 72 65 65 6E 20 68 61 6E 64 6C 69 6E *.Screen handlin
01E530: 67 20 72 6F 75 74 69 6E 65 73 20 66 6F 72 20 63 g routines for c
01E540: 75 72 73 6F 72 20 70 6F 73 69 74 69 6F 6E 2C 20 ursor position,
01E550: 61 74 74 72 69 62 75 74 65 20 65 74 63 0D 0A 0D attribute etc...
01E560: 0A 09 53 70 65 63 69 66 69 63 20 74 6F 20 74 68 ..Specific to th
01E570: 69 73 20 63 6F 6D 70 69 6C 65 72 2A 29 0D 0A 0D is compiler*)...
01E580: 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D 50 .FROM.SYSTEM IMP
01E590: 4F 52 54 20 42 59 54 45 3B 0D 0A 46 52 4F 4D 09 ORT BYTE;..FROM.
01E5A0: 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 69 6C Files IMPORT Fil
01E5B0: 65 4E 61 6D 65 3B 0D 0A 54 59 50 45 09 45 64 69 eName;..TYPE.Edi
01E5C0: 74 73 3D 28 44 69 6D 2C 42 72 69 67 68 74 2C 4E ts=(Dim,Bright,N
01E5D0: 6F 72 6D 61 6C 2C 49 6E 76 65 72 73 65 2C 42 6C ormal,Inverse,Bl
01E5E0: 69 6E 6B 2C 53 74 61 72 74 47 72 61 70 68 2C 45 ink,StartGraph,E
01E5F0: 6E 64 47 72 61 70 68 2C 0D 0A 09 09 44 65 6C 43 ndGraph,....DelC
01E600: 68 61 72 2C 44 65 6C 4C 69 6E 65 2C 49 6E 73 43 har,DelLine,InsC
01E610: 68 61 72 2C 49 6E 73 4C 69 6E 65 2C 44 65 6C 45 har,InsLine,DelE
01E620: 6F 6C 2C 44 65 6C 45 6F 73 2C 43 6C 65 61 72 53 ol,DelEos,ClearS
01E630: 63 72 65 65 6E 2C 0D 0A 09 09 48 6F 72 69 7A 6F creen,....Horizo
01E640: 6E 74 61 6C 2C 56 65 72 74 69 63 61 6C 2C 43 6F ntal,Vertical,Co
01E650: 72 6E 65 72 4C 4C 2C 43 6F 72 6E 65 72 55 4C 2C rnerLL,CornerUL,
01E660: 43 6F 72 6E 65 72 55 52 2C 43 6F 72 6E 65 72 4C CornerUR,CornerL
01E670: 52 2C 0D 0A 09 09 53 74 61 72 74 78 79 2C 4D 69 R,....Startxy,Mi
01E680: 64 64 6C 65 58 59 2C 45 6E 64 58 59 2C 52 69 6E ddleXY,EndXY,Rin
01E690: 67 42 65 6C 6C 2C 4D 6F 76 65 4C 65 66 74 2C 4D gBell,MoveLeft,M
01E6A0: 6F 76 65 52 69 67 68 74 2C 0D 0A 09 09 4D 6F 76 oveRight,....Mov
01E6B0: 65 44 6F 77 6E 2C 4D 6F 76 65 55 70 29 3B 0D 0A eDown,MoveUp);..
01E6C0: 0D 0A 09 28 2A 09 54 68 65 20 65 64 69 74 74 69 ...(*.The editti
01E6D0: 6E 67 20 6D 6E 65 6D 6F 6E 69 63 73 20 68 61 76 ng mnemonics hav
01E6E0: 65 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 e the following
01E6F0: 6D 65 61 6E 69 6E 67 20 0D 0A 0D 0A 09 09 44 69 meaning ......Di
01E700: 3B 0D 0A 0D 0A 28 2A 09 09 64 72 61 77 20 61 20 ;....(*..draw a
01E710: 62 6F 78 20 66 6F 72 20 61 20 77 69 6E 64 6F 77 box for a window
01E720: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 0D 0A on the screen..
01E730: 0D 0A 09 09 78 31 2C 79 31 20 20 69 73 20 74 68 ....x1,y1 is th
01E740: 65 20 6C 6F 77 65 72 20 6C 65 66 74 20 63 6F 72 e lower left cor
01E750: 6E 65 72 0D 0A 09 09 78 32 2C 79 32 20 20 69 73 ner....x2,y2 is
01E760: 20 75 70 70 65 72 20 72 69 67 68 74 20 63 6F 72 upper right cor
01E770: 6E 65 72 2A 29 0D 0A 50 52 4F 43 45 44 55 52 45 ner*)..PROCEDURE
01E780: 20 43 6C 69 70 28 78 31 2C 79 31 2C 78 32 2C 79 Clip(x1,y1,x2,y
01E790: 32 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 28 2A 2:CARDINAL);..(*
01E7A0: 09 09 53 65 74 20 63 6C 69 70 20 62 6F 75 6E 64 ..Set clip bound
01E7B0: 61 72 69 65 73 0D 0A 09 09 75 73 65 64 20 62 79 aries....used by
01E7C0: 20 57 69 6E 64 6F 77 73 20 77 68 65 6E 20 64 72 Windows when dr
01E7D0: 61 77 69 6E 67 20 62 6F 78 65 73 20 73 6F 20 74 awing boxes so t
01E7E0: 68 61 74 20 6F 6E 6C 79 20 74 68 65 0D 0A 09 09 hat only the....
01E7F0: 70 61 72 74 73 20 6F 66 20 74 68 65 20 62 6F 78 parts of the box
01E800: 65 73 20 6D 61 73 6B 65 64 20 61 72 65 20 72 65 es masked are re
01E810: 2D 64 72 61 77 6E 0D 0A 09 09 68 61 73 20 6E 6F -drawn....has no
01E820: 20 65 66 66 65 63 74 20 65 78 63 65 70 74 20 69 effect except i
01E830: 6E 20 44 72 61 77 42 6F 78 2A 29 0D 0A 56 41 52 n DrawBox*)..VAR
01E840: 09 53 63 72 65 65 6E 44 65 70 74 68 2C 53 63 72 .ScreenDepth,Scr
01E850: 65 65 6E 57 69 64 74 68 3A 43 41 52 44 49 4E 41 eenWidth:CARDINA
01E860: 4C 3B 0D 0A 09 4D 61 64 65 43 68 61 6E 67 65 3A L;...MadeChange:
01E870: 42 4F 4F 4C 45 41 4E 3B 0D 0A 0D 0A 09 28 2A 09 BOOLEAN;.....(*.
01E880: 43 6F 6E 74 72 6F 6C 20 69 73 20 74 68 65 20 63 Control is the c
01E890: 75 72 72 65 6E 74 20 63 6F 6E 74 72 6F 6C 20 63 urrent control c
01E8A0: 6F 64 65 20 73 65 74 20 66 6F 72 20 74 68 65 20 ode set for the
01E8B0: 74 65 72 6D 69 6E 61 6C 0D 0A 0D 0A 09 09 4D 61 terminal......Ma
01E8C0: 64 65 43 68 61 6E 67 65 20 69 73 20 54 52 55 45 deChange is TRUE
01E8D0: 20 6F 6E 20 72 65 74 75 72 6E 20 66 72 6F 6D 20 on return from
01E8E0: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 20 69 66 ScreenControl if
01E8F0: 20 74 68 65 20 0D 0A 09 09 72 65 71 75 69 72 65 the ....require
01E900: 6D 2C 42 72 69 67 68 74 2C 4E 6F 72 6D 61 6C 2C m,Bright,Normal,
01E910: 49 6E 76 65 72 73 65 2C 42 6C 69 6E 6B 0D 0A 0D Inverse,Blink...
01E920: 0A 09 09 09 45 6E 74 65 72 20 74 68 65 20 67 69 ....Enter the gi
01E930: 76 65 6E 20 6D 6F 64 65 2E 20 4D 6F 64 65 73 20 ven mode. Modes
01E940: 73 68 6F 75 6C 64 20 6E 6F 74 20 62 65 20 63 6F should not be co
01E950: 6D 62 69 6E 65 64 0D 0A 09 09 09 61 73 20 74 6F mbined.....as to
01E960: 6F 20 6D 75 63 68 20 76 61 72 69 61 74 69 6F 6E o much variation
01E970: 20 65 78 69 73 74 73 20 62 65 74 77 65 65 6E 20 exists between
01E980: 74 65 72 6D 69 6E 61 6C 73 20 69 6E 0D 0A 09 09 terminals in....
01E990: 09 74 68 69 73 20 61 72 65 61 0D 0A 0D 0A 09 09 .this area......
01E9A0: 53 74 61 72 74 47 72 61 70 68 2C 45 6E 64 47 72 StartGraph,EndGr
01E9B0: 61 70 68 0D 0A 0D 0A 09 09 09 45 6E 74 65 72 20 aph.......Enter
01E9C0: 61 6E 64 20 65 78 69 74 20 67 72 61 70 68 69 63 and exit graphic
01E9D0: 20 63 68 61 72 61 63 74 65 72 20 73 65 74 20 6D character set m
01E9E0: 6F 64 65 0D 0A 09 09 09 55 73 65 64 20 66 6F 72 ode.....Used for
01E9F0: 20 64 72 61 77 69 6E 67 20 62 61 72 73 20 61 72 drawing bars ar
01EA00: 6F 75 6E 64 20 77 69 6E 64 6F 77 73 0D 0A 09 09 ound windows....
01EA10: 09 49 66 20 79 6F 75 72 20 74 65 72 6D 69 6E 61 .If your termina
01EA20: 6C 20 63 61 6E 20 64 6F 20 74 68 69 73 20 77 69 l can do this wi
01EA30: 74 68 20 6F 72 64 69 6E 61 72 79 20 63 68 61 72 th ordinary char
01EA40: 61 63 74 65 72 73 2C 0D 0A 09 09 09 73 65 74 20 acters,.....set
01EA50: 74 68 65 73 65 20 73 65 71 75 65 6E 63 65 73 20 these sequences
01EA60: 65 6D 70 74 79 20 61 6E 64 20 70 75 74 20 74 68 empty and put th
01EA70: 65 20 72 65 71 75 69 72 65 64 20 0D 0A 09 09 09 e required .....
01EA80: 63 68 61 72 61 63 74 65 72 73 20 69 6E 20 74 68 characters in th
01EA90: 65 20 73 65 71 75 65 6E 63 65 73 20 62 65 6C 6F e sequences belo
01EAA0: 77 0D 0A 0D 0A 09 09 44 65 6C 43 68 61 72 2C 44 w......DelChar,D
01EAB0: 65 6C 4C 69 6E 65 2C 49 6E 73 43 68 61 72 2C 49 elLine,InsChar,I
01EAC0: 6E 73 4C 69 6E 65 2C 44 65 6C 45 6F 6C 2C 44 65 nsLine,DelEol,De
01EAD0: 6C 45 6F 73 2C 43 6C 65 61 72 53 63 72 65 65 6E lEos,ClearScreen
01EAE0: 0D 0A 0D 0A 09 09 09 50 65 72 66 6F 72 6D 20 74 .......Perform t
01EAF0: 68 65 20 76 61 72 69 6F 75 73 20 65 64 69 74 74 he various editt
01EB00: 64 20 63 6F 64 65 20 69 73 20 69 6D 70 6C 65 6D d code is implem
01EB10: 65 6E 74 65 64 2C 20 65 6C 73 65 20 66 61 6C 73 ented, else fals
01EB20: 65 0D 0A 0D 0A 09 09 45 64 69 74 44 69 73 70 20 e......EditDisp
01EB30: 63 6F 6E 74 61 69 6E 73 20 63 6F 64 65 20 74 6F contains code to
01EB40: 20 73 69 6D 75 6C 61 74 65 20 73 6F 6D 65 20 63 simulate some c
01EB50: 6F 64 65 73 20 77 68 65 6E 20 74 68 65 79 0D 0A odes when they..
01EB60: 09 09 61 72 65 20 6E 6F 74 20 69 6D 70 6C 65 6D ..are not implem
01EB70: 65 6E 74 65 64 2A 29 0D 0A 0D 0A 28 2A 09 4E 65 ented*)....(*.Ne
01EB80: 77 20 72 6F 75 74 69 6E 65 73 20 61 64 64 65 64 w routines added
01EB90: 20 61 74 20 76 65 72 73 69 6F 6E 20 31 2E 30 32 at version 1.02
01EBA0: 0D 0A 0D 0A 09 54 68 65 73 65 20 72 6F 75 74 69 .....These routi
01EBB0: 6E 65 73 20 6D 6F 76 65 20 74 68 65 20 72 65 73 nes move the res
01EBC0: 70 6F 73 69 62 69 6C 74 79 20 66 6F 72 20 73 63 posibilty for sc
01EBD0: 72 6F 6C 6C 69 6E 67 20 77 69 74 68 69 6E 20 61 rolling within a
01EBE0: 20 77 69 6E 64 6F 77 20 66 72 6F 6D 0D 0A 09 45 window from...E
01EBF0: 64 69 74 53 74 61 74 20 74 6F 20 53 63 72 65 65 ditStat to Scree
01EC00: 6E 49 4F 0D 0A 0D 0A 09 54 68 69 73 20 69 73 20 nIO.....This is
01EC10: 64 6F 6E 65 20 73 6F 20 74 68 61 74 2C 20 77 68 done so that, wh
01EC20: 65 6E 20 77 6F 72 6B 69 6E 67 20 77 69 74 68 20 en working with
01EC30: 74 68 65 20 6D 65 6D 6F 72 79 20 6D 61 70 70 65 the memory mappe
01EC40: 64 20 76 65 72 73 69 6F 6E 20 6F 66 20 53 63 72 d version of Scr
01EC50: 65 65 6E 49 4F 2C 0D 0A 09 54 68 65 20 42 61 72 eenIO,...The Bar
01EC60: 73 20 6E 65 65 64 20 6E 6F 74 20 6A 75 6D 70 20 s need not jump
01EC70: 75 70 20 61 6E 64 20 64 6F 77 6E 20 77 68 65 6E up and down when
01EC80: 20 61 20 77 69 6E 64 6F 77 20 69 73 20 73 63 72 a window is scr
01EC90: 6F 6C 6C 65 64 2A 29 0D 0A 50 52 4F 43 45 44 55 olled*)..PROCEDU
01ECA0: 52 45 20 53 63 72 6F 6C 6C 57 69 6E 64 6F 77 55 RE ScrollWindowU
01ECB0: 70 28 53 74 61 72 74 4C 69 6E 65 2C 45 6E 64 4C p(StartLine,EndL
01ECC0: 69 6E 65 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ine:CARDINAL);..
01ECD0: 50 52 4F 43 45 44 55 52 45 20 53 63 72 6F 6C 6C PROCEDURE Scroll
01ECE0: 57 69 6E 64 6F 77 44 6F 77 6E 28 53 74 61 72 74 WindowDown(Start
01ECF0: 4C 69 6E 65 2C 45 6E 64 4C 69 6E 65 3A 43 41 52 Line,EndLine:CAR
01ED00: 69 6E 67 20 73 65 71 75 65 6E 63 65 73 0D 0A 09 ing sequences...
01ED10: 09 09 44 65 6C 45 6F 6C 20 64 65 6C 65 74 65 73 ..DelEol deletes
01ED20: 20 66 72 6F 6D 20 75 6E 64 65 72 20 63 75 72 73 from under curs
01ED30: 6F 72 20 74 6F 20 65 6E 64 20 6F 66 20 6C 69 6E or to end of lin
01ED40: 65 0D 0A 09 09 09 44 65 6C 45 6F 73 20 64 65 6C e.....DelEos del
01ED50: 65 74 65 73 20 66 72 6F 6D 20 75 6E 64 65 72 20 etes from under
01ED60: 63 75 72 73 6F 72 20 74 6F 20 65 6E 64 20 6F 66 cursor to end of
01ED70: 20 73 63 72 65 65 6E 0D 0A 09 09 09 43 6C 65 61 screen.....Clea
01ED80: 72 73 63 72 65 65 6E 20 68 6F 6D 65 73 20 74 68 rscreen homes th
01ED90: 65 20 63 75 72 73 6F 72 20 61 73 20 77 65 6C 6C e cursor as well
01EDA0: 20 28 74 6F 20 74 6F 70 20 6C 65 66 74 29 0D 0A (to top left)..
01EDB0: 0D 0A 09 09 48 6F 72 69 7A 6F 6E 74 61 6C 2C 56 ....Horizontal,V
01EDC0: 65 72 74 69 63 61 6C 2C 43 6F 72 6E 65 72 4C 4C ertical,CornerLL
01EDD0: 2C 43 6F 72 6E 65 72 55 4C 2C 43 6F 72 6E 65 72 ,CornerUL,Corner
01EDE0: 55 52 2C 43 6F 72 6E 65 72 4C 52 0D 0A 0D 0A 09 UR,CornerLR.....
01EDF0: 09 09 43 68 61 72 61 63 74 65 72 20 73 65 71 75 ..Character sequ
01EE00: 65 6E 63 65 73 20 74 6F 20 64 72 61 77 20 68 6F ences to draw ho
01EE10: 72 69 7A 6F 6E 74 61 6C 20 61 6E 64 20 76 65 72 rizontal and ver
01EE20: 74 69 63 61 6C 0D 0A 09 09 09 62 61 72 73 20 61 tical.....bars a
01EE30: 72 6F 75 6E 64 20 77 69 6E 64 6F 77 73 20 61 6E round windows an
01EE40: 64 20 74 6F 20 64 6F 20 74 68 65 20 63 6F 72 6E d to do the corn
01EE50: 65 72 73 20 28 6C 6F 77 65 72 20 6C 65 66 74 2C ers (lower left,
01EE60: 0D 0A 09 09 09 75 70 70 65 72 20 6C 65 66 74 2C .....upper left,
01EE70: 20 75 70 70 65 72 20 72 69 67 68 74 2C 6C 6F 77 upper right,low
01EE80: 65 72 20 72 69 67 68 74 29 0D 0A 0D 0A 09 09 53 er right)......S
01EE90: 74 61 72 74 78 79 2C 4D 69 64 64 6C 65 58 59 2C tartxy,MiddleXY,
01EEA0: 45 6E 64 58 59 0D 0A 0D 0A 09 09 09 54 68 65 20 EndXY.......The
01EEB0: 63 68 61 72 61 63 74 65 72 20 73 65 71 75 65 6E character sequen
01EEC0: 63 65 73 20 74 6F 20 73 74 61 72 74 20 61 20 63 ces to start a c
01EED0: 75 72 73 6F 72 20 61 64 64 72 65 73 73 0D 0A 09 ursor address...
01EEE0: 09 09 63 6F 6D 6D 61 6E 64 2C 20 66 6F 72 20 62 ..command, for b
01EEF0: 65 74 77 65 65 6E 20 74 68 65 20 63 6F 2D 6F 72 etween the co-or
01EF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01EF10: 1A 00 01 00 02 09 52 E5 1A 00 C9 02 00 00 00 02 ......R.........
01EF20: 1A 00 C5 02 00 00 00 02 1A 00 C1 02 00 00 00 02 ................
01EF30: 1A 00 C6 02 00 00 00 02 1A 00 C2 02 00 00 00 02 ................
01EF40: 1A 00 C7 02 00 00 00 02 1A 00 C3 02 00 00 00 02 ................
01EF50: 1A 00 C8 02 00 00 00 02 1A 00 C4 02 00 00 00 02 ................
01EF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01F000: 49 46 20 41 63 74 69 76 65 20 41 4E 44 20 4F 75 IF Active AND Ou
01F010: 74 70 75 74 45 6E 61 62 6C 65 64 20 54 48 45 4E tputEnabled THEN
01F020: 0D 0A 09 57 49 54 48 20 43 6F 6E 74 72 6F 6C 20 ...WITH Control
01F030: 44 4F 0D 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C DO....Gotoxy(x1,
01F040: 79 31 29 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F y1);....ScreenCo
01F050: 6E 74 72 6F 6C 28 53 74 61 72 74 47 72 61 70 68 ntrol(StartGraph
01F060: 29 3B 0D 0A 09 09 49 6E 42 6F 75 6E 64 28 78 31 );....InBound(x1
01F070: 2C 79 31 2C 43 6F 72 6E 65 72 4C 4C 29 3B 0D 0A ,y1,CornerLL);..
01F080: 09 09 46 4F 52 20 69 3A 3D 78 31 2B 31 20 54 4F ..FOR i:=x1+1 TO
01F090: 20 78 32 2D 31 20 44 4F 20 49 6E 42 6F 75 6E 64 x2-1 DO InBound
01F0A0: 28 69 2C 79 31 2C 48 6F 72 69 7A 6F 6E 74 61 6C (i,y1,Horizontal
01F0B0: 29 20 45 4E 44 3B 0D 0A 09 09 49 6E 42 6F 75 6E ) END;....InBoun
01F0C0: 64 28 78 32 2C 79 31 2C 43 6F 72 6E 65 72 4C 52 d(x2,y1,CornerLR
01F0D0: 29 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C );....Gotoxy(x1,
01F0E0: 79 32 29 3B 0D 0A 09 09 49 6E 42 6F 75 6E 64 28 y2);....InBound(
01F0F0: 78 31 2C 79 32 2C 43 6F 72 6E 65 72 55 4C 29 3B x1,y2,CornerUL);
01F100: 0D 0A 09 09 46 4F 52 20 69 3A 3D 78 31 2B 31 20 ....FOR i:=x1+1
01F110: 54 4F 20 78 32 2D 31 20 44 4F 20 49 6E 42 6F 75 TO x2-1 DO InBou
01F120: 6E 64 28 69 2C 79 32 2C 48 6F 72 69 7A 6F 6E 74 nd(i,y2,Horizont
01F130: 61 6C 29 20 45 4E 44 3B 0D 0A 09 09 49 6E 42 6F al) END;....InBo
01F140: 75 6E 64 28 78 32 2C 79 32 2C 43 6F 72 6E 65 72 und(x2,y2,Corner
01F150: 55 52 29 3B 0D 0A 09 09 46 4F 52 20 69 3A 3D 79 UR);....FOR i:=y
01F160: 32 2B 31 20 54 4F 20 79 31 2D 31 20 20 44 4F 0D 2+1 TO y1-1 DO.
01F170: 0A 09 09 09 47 6F 74 6F 78 79 28 78 32 2C 69 29 ....Gotoxy(x2,i)
01F180: 3B 0D 0A 09 09 09 49 6E 42 6F 75 6E 64 28 78 32 ;.....InBound(x2
01F190: 2C 69 2C 56 65 72 74 69 63 61 6C 29 3B 0D 0A 09 ,i,Vertical);...
01F1A0: 09 09 45 4E 44 3B 0D 0A 09 09 46 4F 52 20 69 3A ..END;....FOR i:
01F1B0: 3D 79 32 2B 31 20 54 4F 20 79 31 2D 31 20 44 4F =y2+1 TO y1-1 DO
01F1C0: 0D 0A 09 09 09 47 6F 74 6F 78 79 28 78 31 2C 69 .....Gotoxy(x1,i
01F1D0: 29 3B 0D 0A 09 09 09 49 6E 42 6F 75 6E 64 28 78 );.....InBound(x
01F1E0: 31 2C 69 2C 56 65 72 74 69 63 61 6C 29 3B 0D 0A 1,i,Vertical);..
01F1F0: 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 28 ...END;....END;(
01F200: 66 66 73 65 74 3B 0D 0A 09 09 09 6A 3A 3D 79 2B ffset;.....j:=y+
01F210: 58 59 4F 66 66 73 65 74 3B 0D 0A 09 09 45 4C 53 XYOffset;....ELS
01F220: 45 0D 0A 09 09 09 69 3A 3D 79 2B 58 59 4F 66 66 E.....i:=y+XYOff
01F230: 73 65 74 3B 0D 0A 09 09 09 6A 3A 3D 78 2B 58 59 set;.....j:=x+XY
01F240: 4F 66 66 73 65 74 3B 0D 0A 09 09 09 45 4E 44 3B Offset;.....END;
01F250: 0D 0A 09 09 49 46 20 41 73 63 69 69 20 54 48 45 ....IF Ascii THE
01F260: 4E 20 57 72 69 74 65 41 73 63 69 69 28 69 29 0D N WriteAscii(i).
01F270: 0A 09 09 45 4C 53 45 20 57 72 69 74 65 28 43 48 ...ELSE Write(CH
01F280: 52 28 69 29 29 20 45 4E 44 3B 0D 0A 09 09 53 63 R(i)) END;....Sc
01F290: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 4D 69 64 64 reenControl(Midd
01F2A0: 6C 65 58 59 29 3B 0D 0A 09 09 49 46 20 41 73 63 leXY);....IF Asc
01F2B0: 69 69 20 54 48 45 4E 20 57 72 69 74 65 41 73 63 ii THEN WriteAsc
01F2C0: 69 69 28 6A 29 0D 0A 09 09 45 4C 53 45 20 57 72 ii(j)....ELSE Wr
01F2D0: 69 74 65 28 43 48 52 28 6A 29 29 20 45 4E 44 3B ite(CHR(j)) END;
01F2E0: 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F ....ScreenContro
01F2F0: 6C 28 45 6E 64 58 59 29 3B 0D 0A 09 09 45 4E 44 l(EndXY);....END
01F300: 3B 20 28 2A 57 49 54 48 2A 29 0D 0A 09 49 46 20 ; (*WITH*)...IF
01F310: 69 6E 67 20 54 48 45 4E 20 53 63 72 65 65 6E 43 ing THEN ScreenC
01F320: 6F 6E 74 72 6F 6C 28 53 74 61 72 74 47 72 61 70 ontrol(StartGrap
01F330: 68 29 20 45 4E 44 3B 0D 0A 09 45 4E 44 28 2A 49 h) END;...END(*I
01F340: 46 2A 29 0D 0A 20 20 20 20 45 4E 44 20 47 6F 74 F*).. END Got
01F350: 6F 78 79 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 oxy;....PROCEDUR
01F360: 45 20 4C 6F 61 64 54 65 72 6D 43 6F 64 65 28 66 E LoadTermCode(f
01F370: 69 6C 65 6E 61 6D 65 3A 46 69 6C 65 4E 61 6D 65 ilename:FileName
01F380: 29 3B 0D 0A 56 41 52 09 66 6E 3A 46 49 4C 45 3B );..VAR.fn:FILE;
01F390: 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 ...reply:INTEGER
01F3A0: 3B 0D 0A 0D 0A 28 2A 09 09 64 65 66 69 6E 65 20 ;....(*..define
01F3B0: 61 20 74 65 6D 70 6F 72 61 72 79 20 61 72 65 61 a temporary area
01F3C0: 20 66 6F 72 20 72 65 61 64 69 6E 67 20 6F 66 20 for reading of
01F3D0: 66 69 6C 65 0D 0A 09 09 69 74 20 6D 75 73 74 20 file....it must
01F3E0: 62 65 20 65 71 75 61 6C 20 69 6E 20 73 69 7A 65 be equal in size
01F3F0: 20 74 6F 20 74 68 65 20 73 69 7A 65 20 6F 66 20 to the size of
01F400: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
01F410: 4F 44 55 4C 45 20 53 63 72 65 65 6E 49 4F 3B 0D ODULE ScreenIO;.
01F420: 0A 46 52 4F 4D 20 54 65 72 6D 69 6E 61 6C 20 49 .FROM Terminal I
01F430: 4D 50 4F 52 54 20 43 68 61 72 52 6F 75 74 69 6E MPORT CharRoutin
01F440: 65 2C 43 68 61 72 45 6E 61 62 6C 65 64 3B 0D 0A e,CharEnabled;..
01F450: 46 52 4F 4D 20 46 69 6C 65 73 20 49 4D 50 4F 52 FROM Files IMPOR
01F460: 54 20 4C 6F 6F 6B 75 70 2C 46 49 4C 45 2C 52 65 T Lookup,FILE,Re
01F470: 61 64 42 6C 6F 63 6B 3B 0D 0A 46 52 4F 4D 20 46 adBlock;..FROM F
01F480: 61 73 74 4D 6F 76 65 20 49 4D 50 4F 52 54 20 4D astMove IMPORT M
01F490: 6F 76 65 75 70 3B 0D 0A 46 52 4F 4D 20 53 59 53 oveup;..FROM SYS
01F4A0: 54 45 4D 20 49 4D 50 4F 52 54 20 41 44 52 2C 53 TEM IMPORT ADR,S
01F4B0: 49 5A 45 2C 57 4F 52 44 3B 0D 0A 46 52 4F 4D 09 IZE,WORD;..FROM.
01F4C0: 43 50 4D 20 49 4D 50 4F 52 54 20 77 63 63 66 63 CPM IMPORT wccfc
01F4D0: 2C 42 44 4F 53 3B 0D 0A 28 2A 09 53 63 72 65 65 ,BDOS;..(*.Scree
01F4E0: 6E 20 68 61 6E 64 6C 69 6E 67 20 72 6F 75 74 69 n handling routi
01F4F0: 6E 65 73 20 66 6F 72 20 63 75 72 73 6F 72 20 70 nes for cursor p
01F500: 6F 73 69 74 69 6F 6E 2C 20 61 74 74 72 69 62 75 osition, attribu
01F510: 74 65 20 65 74 63 0D 0A 0D 0A 09 54 68 69 73 20 te etc.....This
01F520: 6D 6F 64 75 6C 65 20 69 73 20 73 70 65 63 69 66 module is specif
01F530: 69 63 20 74 6F 20 74 68 69 73 20 63 6F 6D 70 69 ic to this compi
01F540: 6C 65 72 2A 29 0D 0A 54 59 50 45 0D 0A 09 43 6F ler*)..TYPE...Co
01F550: 6E 74 72 6F 6C 53 65 71 75 65 6E 63 65 3D 52 45 ntrolSequence=RE
01F560: 43 4F 52 44 0D 0A 09 09 43 68 61 72 73 3A 41 52 CORD....Chars:AR
01F570: 52 41 59 5B 31 2E 2E 37 5D 20 4F 46 20 43 48 41 RAY[1..7] OF CHA
01F580: 52 3B 0D 0A 09 09 53 65 71 4C 65 6E 3A 42 59 54 R;....SeqLen:BYT
01F590: 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 0D 0A E;....END;......
01F5A0: 09 43 6F 6E 74 72 6F 6C 43 6F 64 65 73 3D 52 45 .ControlCodes=RE
01F5B0: 43 4F 52 44 0D 0A 09 09 45 64 69 74 53 65 71 75 CORD....EditSequ
01F5C0: 65 6E 63 65 73 3A 41 52 52 41 59 20 45 64 69 74 ences:ARRAY Edit
01F5D0: 73 20 4F 46 20 43 6F 6E 74 72 6F 6C 53 65 71 75 s OF ControlSequ
01F5E0: 65 6E 63 65 3B 0D 0A 09 09 41 73 63 69 69 3A 42 ence;....Ascii:B
01F5F0: 4F 4F 4C 45 41 4E 3B 20 28 2A 74 72 75 65 20 69 OOLEAN; (*true i
01F600: 63 6F 6E 74 72 6F 6C 2C 20 70 61 64 64 65 64 0D control, padded.
01F610: 0A 09 09 6F 75 74 20 74 6F 20 61 20 6D 75 6C 74 ...out to a mult
01F620: 69 70 6C 65 20 6F 66 20 31 32 38 20 62 79 74 65 iple of 128 byte
01F630: 73 2A 29 0D 0A 0D 0A 09 62 6C 6F 63 6B 3A 41 52 s*).....block:AR
01F640: 52 41 59 5B 30 2E 2E 31 32 38 2A 28 53 49 5A 45 RAY[0..128*(SIZE
01F650: 28 43 6F 6E 74 72 6F 6C 29 20 44 49 56 20 31 32 (Control) DIV 12
01F660: 38 29 2B 31 32 37 5D 20 4F 46 20 43 48 41 52 3B 8)+127] OF CHAR;
01F670: 0D 0A 0D 0A 28 2A 09 09 4C 6F 61 64 20 74 68 65 ....(*..Load the
01F680: 20 74 65 72 6D 69 6E 61 6C 20 64 65 66 69 6E 69 terminal defini
01F690: 74 69 6F 6E 20 66 6F 72 20 74 68 65 20 63 75 72 tion for the cur
01F6A0: 72 65 6E 74 20 74 65 72 6D 69 6E 61 6C 0D 0A 0D rent terminal...
01F6B0: 0A 09 09 66 69 6C 65 6E 61 6D 65 20 69 73 20 74 ...filename is t
01F6C0: 68 65 20 6E 61 6D 65 20 6F 66 20 74 68 65 20 66 he name of the f
01F6D0: 69 6C 65 20 74 6F 20 72 65 61 64 0D 0A 0D 0A 09 ile to read.....
01F6E0: 09 4E 6F 72 6D 61 6C 6C 79 2C 20 77 68 65 6E 20 .Normally, when
01F6F0: 74 68 65 20 70 72 6F 67 72 61 6D 20 69 73 20 6C the program is l
01F700: 6F 61 64 65 64 2C 20 74 68 65 20 66 69 6C 65 0D oaded, the file.
01F710: 0A 09 09 27 54 45 52 4D 49 4E 41 4C 2E 43 4F 44 ...'TERMINAL.COD
01F720: 27 20 69 73 20 6C 6F 61 64 65 64 20 66 72 6F 6D ' is loaded from
01F730: 20 74 68 65 20 6C 6F 67 67 65 64 20 69 6E 20 64 the logged in d
01F740: 69 73 63 0D 0A 09 09 54 68 69 73 20 72 6F 75 74 isc....This rout
01F750: 69 6E 65 20 6F 6E 6C 79 20 6E 65 65 64 73 20 74 ine only needs t
01F760: 6F 20 62 65 20 75 73 65 64 20 69 66 20 74 68 61 o be used if tha
01F770: 74 0D 0A 09 09 66 69 6C 65 20 69 73 20 6E 6F 74 t....file is not
01F780: 20 74 68 65 20 6F 6E 65 20 74 6F 20 75 73 65 20 the one to use
01F790: 28 65 67 2C 20 74 6F 20 73 77 61 70 20 73 63 72 (eg, to swap scr
01F7A0: 65 65 6E 73 2A 29 20 0D 0A 0D 0A 42 45 47 49 4E eens*) ....BEGIN
01F7B0: 0D 0A 09 4C 6F 6F 6B 75 70 28 66 6E 2C 66 69 6C ...Lookup(fn,fil
01F7C0: 65 6E 61 6D 65 2C 72 65 70 6C 79 29 3B 0D 0A 09 ename,reply);...
01F7D0: 49 46 20 72 65 70 6C 79 3C 30 20 54 48 45 4E 20 IF reply<0 THEN
01F7E0: 41 63 74 69 76 65 3A 3D 46 41 4C 53 45 0D 0A 09 Active:=FALSE...
01F7F0: 45 4C 53 45 0D 0A 09 09 52 65 61 64 42 6C 6F 63 ELSE....ReadBloc
01F800: 66 20 63 6F 2D 6F 72 64 69 6E 61 74 65 73 20 6F f co-ordinates o
01F810: 75 74 20 6F 75 74 70 75 74 20 61 73 20 0D 0A 09 ut output as ...
01F820: 09 09 09 20 61 73 63 69 69 20 6E 75 6D 62 65 72 ... ascii number
01F830: 73 20 72 61 74 68 65 72 20 74 68 61 6E 20 62 69 s rather than bi
01F840: 6E 61 72 79 2A 29 0D 0A 09 09 43 6F 6C 75 6D 6E nary*)....Column
01F850: 46 69 72 73 74 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A First:BOOLEAN;..
01F860: 09 09 41 64 64 72 65 73 73 49 6E 47 72 61 70 68 ..AddressInGraph
01F870: 3A 42 4F 4F 4C 45 41 4E 3B 20 28 2A 74 72 75 65 :BOOLEAN; (*true
01F880: 20 69 66 20 63 61 6E 20 63 68 61 6E 67 65 20 63 if can change c
01F890: 6F 6F 72 64 69 6E 61 74 65 73 0D 0A 09 09 09 09 oordinates......
01F8A0: 09 20 20 69 6E 20 67 72 61 70 68 20 6D 6F 64 65 . in graph mode
01F8B0: 2A 29 0D 0A 09 09 43 61 72 72 69 61 67 65 52 65 *)....CarriageRe
01F8C0: 74 75 72 6E 3A 42 4F 4F 4C 45 41 4E 3B 20 28 2A turn:BOOLEAN; (*
01F8D0: 74 72 75 65 20 69 66 20 63 61 72 72 69 61 67 65 true if carriage
01F8E0: 20 72 65 74 75 72 6E 20 72 65 74 75 72 6E 73 20 return returns
01F8F0: 0D 0A 09 09 09 09 09 20 20 74 6F 20 73 74 61 72 ....... to star
01F900: 74 20 6F 66 20 63 75 72 72 65 6E 74 20 72 6F 77 t of current row
01F910: 2A 29 0D 0A 09 09 53 63 72 65 65 6E 44 65 70 74 *)....ScreenDept
01F920: 68 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 53 h:CARDINAL;....S
01F930: 63 72 65 65 6E 57 69 64 74 68 3A 43 41 52 44 49 creenWidth:CARDI
01F940: 4E 41 4C 3B 0D 0A 09 09 58 59 4F 66 66 73 65 74 NAL;....XYOffset
01F950: 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 45 4E :CARDINAL;....EN
01F960: 44 3B 20 0D 0A 09 09 0D 0A 0D 0A 56 41 52 09 43 D; ........VAR.C
01F970: 6F 6E 74 72 6F 6C 3A 43 6F 6E 74 72 6F 6C 43 6F ontrol:ControlCo
01F980: 64 65 73 3B 0D 0A 09 41 63 74 69 76 65 3A 42 4F des;...Active:BO
01F990: 4F 4C 45 41 4E 3B 0D 0A 09 49 6E 47 72 61 70 68 OLEAN;...InGraph
01F9A0: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 4C 6F 77 78 :BOOLEAN;...Lowx
01F9B0: 2C 48 69 67 68 78 2C 4C 6F 77 79 2C 48 69 67 68 ,Highx,Lowy,High
01F9C0: 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 4F 75 y:CARDINAL;...Ou
01F9D0: 74 70 75 74 45 6E 61 62 6C 65 64 3A 42 4F 4F 4C tputEnabled:BOOL
01F9E0: 45 41 4E 3B 0D 0A 28 2A 50 52 4F 43 45 44 55 52 EAN;..(*PROCEDUR
01F9F0: 45 20 57 72 69 74 65 28 69 3A 43 48 41 52 29 3B E Write(i:CHAR);
01FA00: 6B 28 66 6E 2C 41 44 52 28 62 6C 6F 63 6B 29 2C k(fn,ADR(block),
01FA10: 30 2C 53 49 5A 45 28 62 6C 6F 63 6B 29 2C 72 65 0,SIZE(block),re
01FA20: 70 6C 79 29 3B 0D 0A 09 09 41 63 74 69 76 65 3A ply);....Active:
01FA30: 3D 72 65 70 6C 79 3E 3D 53 49 5A 45 28 43 6F 6E =reply>=SIZE(Con
01FA40: 74 72 6F 6C 29 3B 0D 0A 09 09 4D 6F 76 65 75 70 trol);....Moveup
01FA50: 28 41 44 52 28 62 6C 6F 63 6B 29 2C 41 44 52 28 (ADR(block),ADR(
01FA60: 43 6F 6E 74 72 6F 6C 29 2C 53 49 5A 45 28 43 6F Control),SIZE(Co
01FA70: 6E 74 72 6F 6C 29 29 3B 0D 0A 09 09 45 4E 44 3B ntrol));....END;
01FA80: 0D 0A 09 53 63 72 65 65 6E 57 69 64 74 68 3A 3D ...ScreenWidth:=
01FA90: 43 6F 6E 74 72 6F 6C 2E 53 63 72 65 65 6E 57 69 Control.ScreenWi
01FAA0: 64 74 68 3B 0D 0A 09 53 63 72 65 65 6E 44 65 70 dth;...ScreenDep
01FAB0: 74 68 3A 3D 43 6F 6E 74 72 6F 6C 2E 53 63 72 65 th:=Control.Scre
01FAC0: 65 6E 44 65 70 74 68 3B 0D 0A 09 45 4E 44 20 4C enDepth;...END L
01FAD0: 6F 61 64 54 65 72 6D 43 6F 64 65 3B 0D 0A 0D 0A oadTermCode;....
01FAE0: 50 52 4F 43 45 44 55 52 45 20 53 63 72 65 65 6E PROCEDURE Screen
01FAF0: 43 6F 6E 74 72 6F 6C 28 73 3A 45 64 69 74 73 29 Control(s:Edits)
01FB00: 3B 0D 0A 0D 0A 28 2A 09 09 50 65 72 66 6F 72 6D ;....(*..Perform
01FB10: 20 61 20 73 63 72 65 65 6E 20 63 6F 6E 74 72 6F a screen contro
01FB20: 6C 20 6F 70 65 72 61 74 69 6F 6E 2A 29 0D 0A 56 l operation*)..V
01FB30: 41 52 09 69 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A AR.i:CARDINAL;..
01FB40: 42 45 47 49 4E 0D 0A 09 49 46 20 41 63 74 69 76 BEGIN...IF Activ
01FB50: 65 20 41 4E 44 20 4F 75 74 70 75 74 45 6E 61 62 e AND OutputEnab
01FB60: 6C 65 64 20 54 48 45 4E 0D 0A 09 09 57 49 54 48 led THEN....WITH
01FB70: 20 43 6F 6E 74 72 6F 6C 2E 45 64 69 74 53 65 71 Control.EditSeq
01FB80: 75 65 6E 63 65 73 5B 73 5D 20 44 4F 0D 0A 09 09 uences[s] DO....
01FB90: 09 4D 61 64 65 43 68 61 6E 67 65 3A 3D 53 65 71 .MadeChange:=Seq
01FBA0: 4C 65 6E 3E 30 3B 0D 0A 09 09 09 46 4F 52 20 69 Len>0;.....FOR i
01FBB0: 3A 3D 31 20 54 4F 20 4F 52 44 28 53 65 71 4C 65 :=1 TO ORD(SeqLe
01FBC0: 6E 29 20 44 4F 20 57 72 69 74 65 28 43 68 61 72 n) DO Write(Char
01FBD0: 73 5B 69 5D 29 20 45 4E 44 3B 0D 0A 09 09 09 45 s[i]) END;.....E
01FBE0: 4E 44 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 43 6F ND;....IF NOT Co
01FBF0: 6E 74 72 6F 6C 2E 41 64 64 72 65 73 73 49 6E 47 ntrol.AddressInG
01FC00: 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 28 69 3E ..BEGIN...IF (i>
01FC10: 3D 27 20 27 29 20 41 4E 44 20 28 69 3C 3D 27 7A =' ') AND (i<='z
01FC20: 27 29 20 54 48 45 4E 20 54 65 72 6D 69 6E 61 6C ') THEN Terminal
01FC30: 2E 57 72 69 74 65 28 69 29 0D 0A 09 45 4C 53 45 .Write(i)...ELSE
01FC40: 20 0D 0A 09 09 54 65 72 6D 69 6E 61 6C 2E 57 72 ....Terminal.Wr
01FC50: 69 74 65 28 27 3C 27 29 3B 0D 0A 09 09 57 72 69 ite('<');....Wri
01FC60: 74 65 48 65 78 28 4F 52 44 28 69 29 2C 33 29 3B teHex(ORD(i),3);
01FC70: 0D 0A 09 09 54 65 72 6D 69 6E 61 6C 2E 57 72 69 ....Terminal.Wri
01FC80: 74 65 28 27 3E 27 29 3B 0D 0A 09 09 45 4E 44 3B te('>');....END;
01FC90: 0D 0A 09 45 4E 44 20 57 72 69 74 65 3B 2A 29 0D ...END Write;*).
01FCA0: 0A 50 52 4F 43 45 44 55 52 45 20 57 72 69 74 65 .PROCEDURE Write
01FCB0: 28 62 3A 43 48 41 52 29 3B 0D 0A 56 41 52 09 69 (b:CHAR);..VAR.i
01FCC0: 3A 49 4E 54 45 47 45 52 3B 09 28 2A 6E 65 65 64 :INTEGER;.(*need
01FCD0: 65 64 20 74 6F 20 61 76 6F 69 64 20 63 6F 6E 66 ed to avoid conf
01FCE0: 6C 69 63 74 20 77 69 74 68 20 67 6C 6F 62 61 6C lict with global
01FCF0: 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 4F *)..BEGIN...IF O
01FD00: 75 74 70 75 74 45 6E 61 62 6C 65 64 20 54 48 45 utputEnabled THE
01FD10: 4E 0D 0A 09 09 69 3A 3D 42 44 4F 53 28 77 63 63 N....i:=BDOS(wcc
01FD20: 66 63 2C 57 4F 52 44 28 62 29 29 0D 0A 09 09 45 fc,WORD(b))....E
01FD30: 4E 44 3B 0D 0A 09 45 4E 44 20 57 72 69 74 65 3B ND;...END Write;
01FD40: 0D 0A 50 52 4F 43 45 44 55 52 45 20 57 72 69 74 ..PROCEDURE Writ
01FD50: 65 41 73 63 69 69 28 69 3A 49 4E 54 45 47 45 52 eAscii(i:INTEGER
01FD60: 29 3B 0D 0A 56 41 52 09 54 65 78 74 3A 41 52 52 );..VAR.Text:ARR
01FD70: 41 59 5B 31 2E 2E 33 5D 20 4F 46 20 43 48 41 52 AY[1..3] OF CHAR
01FD80: 3B 0D 0A 09 6A 2C 6B 3A 49 4E 54 45 47 45 52 3B ;...j,k:INTEGER;
01FD90: 0D 0A 42 45 47 49 4E 0D 0A 09 6A 3A 3D 33 3B 0D ..BEGIN...j:=3;.
01FDA0: 0A 09 57 48 49 4C 45 20 28 6A 3E 30 29 20 41 4E ..WHILE (j>0) AN
01FDB0: 44 20 28 69 3C 3E 30 29 20 44 4F 0D 0A 09 09 6B D (i<>0) DO....k
01FDC0: 3A 3D 69 20 44 49 56 20 31 30 3B 0D 0A 09 09 54 :=i DIV 10;....T
01FDD0: 65 78 74 5B 6A 5D 3A 3D 43 48 52 28 69 2D 31 30 ext[j]:=CHR(i-10
01FDE0: 2A 6B 2B 4F 52 44 28 27 30 27 29 29 3B 0D 0A 09 *k+ORD('0'));...
01FDF0: 09 69 3A 3D 6B 3B 0D 0A 09 09 6A 3A 3D 6A 2D 31 .i:=k;....j:=j-1
01FE00: 72 61 70 68 20 54 48 45 4E 0D 0A 09 09 09 49 46 raph THEN.....IF
01FE10: 20 73 3D 53 74 61 72 74 47 72 61 70 68 20 54 48 s=StartGraph TH
01FE20: 45 4E 20 49 6E 47 72 61 70 68 3A 3D 54 52 55 45 EN InGraph:=TRUE
01FE30: 0D 0A 09 09 09 45 4C 53 49 46 20 73 3D 45 6E 64 .....ELSIF s=End
01FE40: 47 72 61 70 68 20 54 48 45 4E 20 49 6E 47 72 61 Graph THEN InGra
01FE50: 70 68 3A 3D 46 41 4C 53 45 20 45 4E 44 3B 0D 0A ph:=FALSE END;..
01FE60: 09 09 09 45 4E 44 3B 0D 0A 09 45 4C 53 45 20 20 ...END;...ELSE
01FE70: 4D 61 64 65 43 68 61 6E 67 65 3A 3D 46 41 4C 53 MadeChange:=FALS
01FE80: 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 E;....END;...END
01FE90: 20 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 3B 0D ScreenControl;.
01FEA0: 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 42 6F 75 .PROCEDURE InBou
01FEB0: 6E 64 28 78 2C 79 3A 43 41 52 44 49 4E 41 4C 3B nd(x,y:CARDINAL;
01FEC0: 63 68 3A 45 64 69 74 73 29 3B 0D 0A 42 45 47 49 ch:Edits);..BEGI
01FED0: 4E 0D 0A 09 49 46 20 09 28 78 3E 3D 4C 6F 77 78 N...IF .(x>=Lowx
01FEE0: 29 20 41 4E 44 20 28 78 3C 3D 48 69 67 68 78 29 ) AND (x<=Highx)
01FEF0: 0D 0A 09 20 20 41 4E 44 09 28 79 3E 3D 4C 6F 77 ... AND.(y>=Low
01FF00: 79 29 20 41 4E 44 20 28 79 3C 3D 48 69 67 68 79 y) AND (y<=Highy
01FF10: 29 20 54 48 45 4E 20 0D 0A 09 09 53 63 72 65 65 ) THEN ....Scree
01FF20: 6E 43 6F 6E 74 72 6F 6C 28 63 68 29 3B 0D 0A 09 nControl(ch);...
01FF30: 09 45 4E 44 0D 0A 09 45 4E 44 20 49 6E 42 6F 75 .END...END InBou
01FF40: 6E 64 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 nd;..PROCEDURE
01FF50: 44 72 61 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 DrawBox(x1,y1,x2
01FF60: 2C 79 32 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ,y2:CARDINAL);..
01FF70: 0D 0A 28 2A 09 09 64 72 61 77 20 61 20 62 6F 78 ..(*..draw a box
01FF80: 20 66 6F 72 20 61 20 77 69 6E 64 6F 77 20 6F 6E for a window on
01FF90: 20 74 68 65 20 73 63 72 65 65 6E 0D 0A 0D 0A 09 the screen.....
01FFA0: 09 78 31 2C 79 31 20 20 69 73 20 74 68 65 20 6C .x1,y1 is the l
01FFB0: 6F 77 65 72 20 6C 65 66 74 20 63 6F 72 6E 65 72 ower left corner
01FFC0: 0D 0A 09 09 78 32 2C 79 32 20 20 69 73 20 75 70 ....x2,y2 is up
01FFD0: 70 65 72 20 72 69 67 68 74 20 63 6F 72 6E 65 72 per right corner
01FFE0: 2A 29 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 4E *)..VAR.i:CARDIN
01FFF0: 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 AL;..BEGIN..
020000: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 46 4F 52 20 ;....END;...FOR
020010: 6B 3A 3D 6A 2B 31 20 54 4F 20 33 20 44 4F 20 57 k:=j+1 TO 3 DO W
020020: 72 69 74 65 28 54 65 78 74 5B 6B 5D 29 20 45 4E rite(Text[k]) EN
020030: 44 3B 0D 0A 09 45 4E 44 20 57 72 69 74 65 41 73 D;...END WriteAs
020040: 63 69 69 3B 20 0D 0A 50 52 4F 43 45 44 55 52 45 cii; ..PROCEDURE
020050: 20 47 6F 74 6F 78 79 28 78 2C 79 3A 43 41 52 44 Gotoxy(x,y:CARD
020060: 49 4E 41 4C 29 3B 09 09 0D 0A 0D 0A 28 2A 09 09 INAL);......(*..
020070: 50 6F 73 69 74 69 6F 6E 20 74 6F 20 67 69 76 65 Position to give
020080: 6E 20 63 6F 6F 72 64 69 6E 61 74 65 73 0D 0A 09 n coordinates...
020090: 09 74 6F 70 20 6C 65 66 74 20 69 73 20 61 6C 77 .top left is alw
0200A0: 61 79 73 20 30 2C 30 20 0D 0A 0D 0A 09 09 78 20 ays 0,0 ......x
0200B0: 69 73 20 63 6F 6C 75 6D 6E 2C 20 79 20 69 73 20 is column, y is
0200C0: 72 6F 77 0D 0A 0D 0A 09 09 41 20 27 53 74 61 6E row......A 'Stan
0200D0: 64 61 72 64 27 20 53 63 72 65 65 6E 20 69 73 20 dard' Screen is
0200E0: 38 30 20 62 79 20 32 34 2E 20 54 68 65 20 6C 69 80 by 24. The li
0200F0: 6D 69 74 20 69 73 20 73 65 74 20 62 79 0D 0A 09 mit is set by...
020100: 09 74 68 65 20 74 65 72 6D 69 6E 61 6C 20 64 65 .the terminal de
020110: 66 69 6E 69 74 69 6F 6E 20 66 69 6C 65 09 2A 29 finition file.*)
020120: 0D 0A 56 41 52 09 69 2C 6A 3A 49 4E 54 45 47 45 ..VAR.i,j:INTEGE
020130: 52 3B 0D 0A 09 69 6E 67 3A 42 4F 4F 4C 45 41 4E R;...ing:BOOLEAN
020140: 3B 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 49 46 ;..BEGIN.. IF
020150: 20 41 63 74 69 76 65 20 41 4E 44 20 4F 75 74 70 Active AND Outp
020160: 75 74 45 6E 61 62 6C 65 64 20 54 48 45 4E 0D 0A utEnabled THEN..
020170: 09 57 49 54 48 20 43 6F 6E 74 72 6F 6C 20 44 4F .WITH Control DO
020180: 0D 0A 09 09 69 6E 67 3A 3D 49 6E 47 72 61 70 68 ....ing:=InGraph
020190: 3B 0D 0A 09 09 49 46 20 49 6E 47 72 61 70 68 20 ;....IF InGraph
0201A0: 54 48 45 4E 20 53 63 72 65 65 6E 43 6F 6E 74 72 THEN ScreenContr
0201B0: 6F 6C 28 45 6E 64 47 72 61 70 68 29 20 45 4E 44 ol(EndGraph) END
0201C0: 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 ;....ScreenContr
0201D0: 6F 6C 28 53 74 61 72 74 78 79 29 3B 0D 0A 09 09 ol(Startxy);....
0201E0: 49 46 20 43 6F 6C 75 6D 6E 46 69 72 73 74 20 54 IF ColumnFirst T
0201F0: 48 45 4E 0D 0A 09 09 09 69 3A 3D 78 2B 58 59 4F HEN.....i:=x+XYO
020200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
020210: 1B 00 01 00 02 09 52 E5 1B 00 C9 02 00 00 00 02 ......R.........
020220: 1B 00 C5 02 00 00 00 02 1B 00 C1 02 00 00 00 02 ................
020230: 1B 00 C6 02 00 00 00 02 1B 00 C2 02 00 00 00 02 ................
020240: 1B 00 C7 02 00 00 00 02 1B 00 C3 02 00 00 00 02 ................
020250: 1B 00 C8 02 00 00 00 02 1B 00 C4 02 00 00 00 02 ................
020260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020500: 0A 45 4E 44 20 53 65 74 55 70 43 61 6C 6C 2E 0D .END SetUpCall..
020510: 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020520: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020530: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020540: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020550: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020560: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020570: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020580: 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D 50 .FROM.SYSTEM IMP
020590: 4F 52 54 20 42 59 54 45 3B 0D 0A 46 52 4F 4D 09 ORT BYTE;..FROM.
0205A0: 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 69 6C Files IMPORT Fil
0205B0: 65 4E 61 6D 65 3B 0D 0A 54 59 50 45 09 45 64 69 eName;..TYPE.Edi
0205C0: 74 73 3D 28 44 69 6D 2C 42 72 69 67 68 74 2C 4E ts=(Dim,Bright,N
0205D0: 6F 72 6D 61 6C 2C 49 6E 76 65 72 73 65 2C 42 6C ormal,Inverse,Bl
0205E0: 69 6E 6B 2C 53 74 61 72 74 47 72 61 70 68 2C 45 ink,StartGraph,E
0205F0: 6E 64 47 72 61 70 68 2C 0D 0A 09 09 44 65 6C 43 ndGraph,....DelC
020600: 68 61 72 2C 44 65 6C 4C 69 6E 65 2C 49 6E 73 43 har,DelLine,InsC
020610: 68 61 72 2C 49 6E 73 4C 69 6E 65 2C 44 65 6C 45 har,InsLine,DelE
020620: 6F 6C 2C 44 65 6C 45 6F 73 2C 43 6C 65 61 72 53 ol,DelEos,ClearS
020630: 63 72 65 65 6E 2C 0D 0A 09 09 48 6F 72 69 7A 6F creen,....Horizo
020640: 6E 74 61 6C 2C 56 65 72 74 69 63 61 6C 2C 43 6F ntal,Vertical,Co
020650: 72 6E 65 72 4C 4C 2C 43 6F 72 6E 65 72 55 4C 2C rnerLL,CornerUL,
020660: 43 6F 72 6E 65 72 55 52 2C 43 6F 72 6E 65 72 4C CornerUR,CornerL
020670: 52 2C 0D 0A 09 09 53 74 61 72 74 78 79 2C 4D 69 R,....Startxy,Mi
020680: 64 64 6C 65 58 59 2C 45 6E 64 58 59 2C 52 69 6E ddleXY,EndXY,Rin
020690: 67 42 65 6C 6C 2C 4D 6F 76 65 4C 65 66 74 2C 4D gBell,MoveLeft,M
0206A0: 6F 76 65 52 69 67 68 74 2C 0D 0A 09 09 4D 6F 76 oveRight,....Mov
0206B0: 65 44 6F 77 6E 2C 4D 6F 76 65 55 70 29 3B 0D 0A eDown,MoveUp);..
0206C0: 0D 0A 09 28 2A 09 54 68 65 20 65 64 69 74 74 69 ...(*.The editti
0206D0: 6E 67 20 6D 6E 65 6D 6F 6E 69 63 73 20 68 61 76 ng mnemonics hav
0206E0: 65 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 e the following
0206F0: 6D 65 61 6E 69 6E 67 20 0D 0A 0D 0A 09 09 44 69 meaning ......Di
020700: 2A 57 49 54 48 20 43 6F 6E 74 72 6F 6C 2A 29 0D *WITH Control*).
020710: 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C ...ScreenControl
020720: 28 45 6E 64 47 72 61 70 68 29 3B 0D 0A 09 45 4E (EndGraph);...EN
020730: 44 3B 20 28 2A 49 46 20 41 63 74 69 76 65 2A 29 D; (*IF Active*)
020740: 0D 0A 20 20 20 20 45 4E 44 20 44 72 61 77 42 6F .. END DrawBo
020750: 78 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 6C x;..PROCEDURE Cl
020760: 69 70 28 78 31 2C 79 31 2C 78 32 2C 79 32 3A 43 ip(x1,y1,x2,y2:C
020770: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
020780: 0D 0A 09 4C 6F 77 78 3A 3D 78 31 3B 0D 0A 09 48 ...Lowx:=x1;...H
020790: 69 67 68 78 3A 3D 78 32 3B 0D 0A 09 4C 6F 77 79 ighx:=x2;...Lowy
0207A0: 3A 3D 79 32 3B 0D 0A 09 48 69 67 68 79 3A 3D 79 :=y2;...Highy:=y
0207B0: 31 3B 0D 0A 09 45 4E 44 20 43 6C 69 70 3B 0D 0A 1;...END Clip;..
0207C0: 50 52 4F 43 45 44 55 52 45 20 53 63 72 6F 6C 6C PROCEDURE Scroll
0207D0: 57 69 6E 64 6F 77 55 70 28 53 74 61 72 74 6F 66 WindowUp(Startof
0207E0: 57 69 6E 64 6F 77 2C 45 6E 64 6F 66 57 69 6E 64 Window,EndofWind
0207F0: 6F 77 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 ow:CARDINAL);..B
020800: 45 47 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 30 2C EGIN...Gotoxy(0,
020810: 45 6E 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 EndofWindow);...
020820: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 65 ScreenControl(De
020830: 6C 4C 69 6E 65 29 3B 0D 0A 09 47 6F 74 6F 78 79 lLine);...Gotoxy
020840: 28 30 2C 53 74 61 72 74 6F 66 57 69 6E 64 6F 77 (0,StartofWindow
020850: 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F 6E 74 72 );...ScreenContr
020860: 6F 6C 28 49 6E 73 4C 69 6E 65 29 3B 0D 0A 09 45 ol(InsLine);...E
020870: 4E 44 20 53 63 72 6F 6C 6C 57 69 6E 64 6F 77 55 ND ScrollWindowU
020880: 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 63 p;..PROCEDURE Sc
020890: 72 6F 6C 6C 57 69 6E 64 6F 77 44 6F 77 6E 28 53 rollWindowDown(S
0208A0: 74 61 72 74 6F 66 57 69 6E 64 6F 77 2C 45 6E 64 tartofWindow,End
0208B0: 6F 66 57 69 6E 64 6F 77 3A 43 41 52 44 49 4E 41 ofWindow:CARDINA
0208C0: 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 47 6F 74 L);..BEGIN...Got
0208D0: 6F 78 79 28 30 2C 53 74 61 72 74 6F 66 57 69 6E oxy(0,StartofWin
0208E0: 64 6F 77 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F dow);...ScreenCo
0208F0: 6E 74 72 6F 6C 28 44 65 6C 4C 69 6E 65 29 3B 0D ntrol(DelLine);.
020900: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
020910: 4F 44 55 4C 45 20 53 65 74 55 70 43 61 6C 6C 3B ODULE SetUpCall;
020920: 0D 0A 0D 0A 28 2A 09 53 45 54 20 55 70 20 63 61 ....(*.SET Up ca
020930: 6C 6C 20 70 61 72 61 6D 65 74 65 72 73 20 66 6F ll parameters fo
020940: 72 20 61 20 70 72 6F 67 72 61 6D 20 61 6E 64 20 r a program and
020950: 63 68 61 69 6E 20 74 6F 20 69 74 0D 0A 09 2A 29 chain to it...*)
020960: 0D 0A 46 52 4F 4D 09 43 68 61 69 6E 20 49 4D 50 ..FROM.Chain IMP
020970: 4F 52 54 20 4C 6F 61 64 41 6E 64 45 78 65 63 75 ORT LoadAndExecu
020980: 74 65 3B 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D te;..FROM.SYSTEM
020990: 20 49 4D 50 4F 52 54 20 42 59 54 45 3B 0D 0A 28 IMPORT BYTE;..(
0209A0: 2A 09 4C 6F 77 20 63 6F 72 65 20 76 61 72 69 61 *.Low core varia
0209B0: 62 6C 65 73 2A 29 0D 0A 56 41 52 09 66 63 62 31 bles*)..VAR.fcb1
0209C0: 5B 35 63 68 5D 3A 66 63 62 3B 0D 0A 09 66 63 62 [5ch]:fcb;...fcb
0209D0: 32 5B 36 63 68 5D 3A 66 63 62 3B 0D 0A 09 63 6F 2[6ch]:fcb;...co
0209E0: 6D 6D 61 6E 64 6C 65 6E 5B 38 30 68 5D 3A 42 59 mmandlen[80h]:BY
0209F0: 54 45 3B 0D 0A 09 63 6F 6D 6D 61 6E 64 5B 38 31 TE;...command[81
020A00: 68 5D 3A 41 52 52 41 59 5B 30 2E 2E 38 30 5D 20 h]:ARRAY[0..80]
020A10: 4F 46 20 43 48 41 52 3B 0D 0A 09 69 2C 6A 3A 49 OF CHAR;...i,j:I
020A20: 4E 54 45 47 45 52 3B 0D 0A 50 52 4F 43 45 44 55 NTEGER;..PROCEDU
020A30: 52 45 20 4D 61 6B 65 43 61 6C 6C 28 70 72 6F 67 RE MakeCall(prog
020A40: 6E 61 6D 65 3A 41 52 52 41 59 20 4F 46 20 43 48 name:ARRAY OF CH
020A50: 41 52 3B 56 41 52 20 66 3A 66 63 62 29 3B 0D 0A AR;VAR f:fcb);..
020A60: 42 45 47 49 4E 0D 0A 20 09 66 63 62 31 3A 3D 66 BEGIN.. .fcb1:=f
020A70: 3B 0D 0A 09 66 63 62 32 2E 66 63 62 64 6E 3A 3D ;...fcb2.fcbdn:=
020A80: 30 3B 0D 0A 09 66 63 62 32 2E 66 63 62 66 6E 5B 0;...fcb2.fcbfn[
020A90: 31 5D 3A 3D 27 20 27 3B 0D 0A 09 28 2A 73 65 74 1]:=' ';...(*set
020AA0: 20 75 70 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 up command line
020AB0: 2A 29 0D 0A 0D 0A 09 69 3A 3D 30 3B 0D 0A 09 6A *).....i:=0;...j
020AC0: 3A 3D 31 3B 0D 0A 09 49 46 20 66 63 62 31 2E 66 :=1;...IF fcb1.f
020AD0: 63 62 64 6E 3C 3E 30 20 54 48 45 4E 0D 0A 09 09 cbdn<>0 THEN....
020AE0: 63 6F 6D 6D 61 6E 64 5B 69 5D 3A 3D 43 48 52 28 command[i]:=CHR(
020AF0: 4F 52 44 28 66 63 62 31 2E 66 63 62 64 6E 29 2B ORD(fcb1.fcbdn)+
020B00: 0A 09 47 6F 74 6F 78 79 28 30 2C 45 6E 64 6F 66 ..Gotoxy(0,Endof
020B10: 57 69 6E 64 6F 77 29 3B 20 20 20 0D 0A 09 53 63 Window); ...Sc
020B20: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 49 6E 73 4C reenControl(InsL
020B30: 69 6E 65 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F ine);...ScreenCo
020B40: 6E 74 72 6F 6C 28 44 65 6C 45 6F 6C 29 3B 20 20 ntrol(DelEol);
020B50: 20 0D 0A 09 45 4E 44 20 53 63 72 6F 6C 6C 57 69 ...END ScrollWi
020B60: 6E 64 6F 77 44 6F 77 6E 3B 0D 0A 0D 0A 28 2A 09 ndowDown;....(*.
020B70: 43 75 72 73 6F 72 20 62 6C 69 6E 6B 20 72 6F 75 Cursor blink rou
020B80: 74 69 6E 65 20 2D 20 6F 6E 6C 79 20 73 75 70 70 tine - only supp
020B90: 6F 72 74 65 64 20 69 6E 20 6D 65 6D 6F 72 79 20 orted in memory
020BA0: 6D 61 70 70 65 64 0D 0A 09 76 65 72 73 69 6F 6E mapped...version
020BB0: 20 6F 66 20 73 63 72 65 65 6E 69 6F 2A 29 0D 0A of screenio*)..
020BC0: 50 52 4F 43 45 44 55 52 45 20 4F 75 74 70 75 74 PROCEDURE Output
020BD0: 54 6F 53 63 72 65 65 6E 28 4F 6E 3A 42 4F 4F 4C ToScreen(On:BOOL
020BE0: 45 41 4E 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 4F EAN);..BEGIN...O
020BF0: 75 74 70 75 74 45 6E 61 62 6C 65 64 3A 3D 4F 6E utputEnabled:=On
020C00: 0D 0A 09 45 4E 44 20 4F 75 74 70 75 74 54 6F 53 ...END OutputToS
020C10: 63 72 65 65 6E 3B 09 0D 0A 0D 0A 42 45 47 49 4E creen;.....BEGIN
020C20: 09 28 2A 49 6E 69 74 69 61 6C 69 73 61 74 69 6F .(*Initialisatio
020C30: 6E 20 70 61 72 74 2A 29 0D 0A 09 43 68 61 72 52 n part*)...CharR
020C40: 6F 75 74 69 6E 65 3A 3D 57 72 69 74 65 3B 0D 0A outine:=Write;..
020C50: 09 43 68 61 72 45 6E 61 62 6C 65 64 3A 3D 54 52 .CharEnabled:=TR
020C60: 55 45 3B 09 0D 0A 0D 0A 09 49 6E 47 72 61 70 68 UE;......InGraph
020C70: 3A 3D 46 41 4C 53 45 3B 0D 0A 09 4F 75 74 70 75 :=FALSE;...Outpu
020C80: 74 45 6E 61 62 6C 65 64 3A 3D 54 52 55 45 3B 0D tEnabled:=TRUE;.
020C90: 0A 09 4C 6F 61 64 54 65 72 6D 43 6F 64 65 28 27 ..LoadTermCode('
020CA0: 43 4F 4E 54 52 4F 4C 2E 44 41 54 27 29 3B 0D 0A CONTROL.DAT');..
020CB0: 09 4C 6F 77 78 3A 3D 30 3B 4C 6F 77 79 3A 3D 30 .Lowx:=0;Lowy:=0
020CC0: 3B 0D 0A 09 48 69 67 68 78 3A 3D 39 39 39 3B 48 ;...Highx:=999;H
020CD0: 69 67 68 79 3A 3D 39 39 39 3B 0D 0A 09 53 63 72 ighy:=999;...Scr
020CE0: 65 65 6E 57 69 64 74 68 3A 3D 43 6F 6E 74 72 6F eenWidth:=Contro
020CF0: 6C 2E 53 63 72 65 65 6E 57 69 64 74 68 3B 0D 0A l.ScreenWidth;..
020D00: 4F 52 44 28 27 41 27 29 2D 31 29 3B 0D 0A 09 09 ORD('A')-1);....
020D10: 49 4E 43 28 69 29 3B 0D 0A 09 09 63 6F 6D 6D 61 INC(i);....comma
020D20: 6E 64 5B 69 5D 3A 3D 27 3A 27 3B 0D 0A 09 09 49 nd[i]:=':';....I
020D30: 4E 43 28 69 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A NC(i);....END;..
020D40: 09 57 48 49 4C 45 20 28 6A 3C 3D 38 29 20 41 4E .WHILE (j<=8) AN
020D50: 44 20 28 66 63 62 31 2E 66 63 62 66 6E 5B 6A 5D D (fcb1.fcbfn[j]
020D60: 3C 3E 27 20 27 29 20 44 4F 0D 0A 09 09 63 6F 6D <>' ') DO....com
020D70: 6D 61 6E 64 5B 69 5D 3A 3D 66 63 62 31 2E 66 63 mand[i]:=fcb1.fc
020D80: 62 66 6E 5B 6A 5D 3B 0D 0A 09 09 49 4E 43 28 69 bfn[j];....INC(i
020D90: 29 3B 0D 0A 09 09 49 4E 43 28 6A 29 3B 0D 0A 09 );....INC(j);...
020DA0: 09 45 4E 44 3B 0D 0A 09 6A 3A 3D 31 3B 0D 0A 09 .END;...j:=1;...
020DB0: 63 6F 6D 6D 61 6E 64 5B 69 5D 3A 3D 27 2E 27 3B command[i]:='.';
020DC0: 0D 0A 09 49 4E 43 28 69 29 3B 0D 0A 09 57 48 49 ...INC(i);...WHI
020DD0: 4C 45 20 28 6A 3C 3D 33 29 20 41 4E 44 20 28 66 LE (j<=3) AND (f
020DE0: 2E 66 63 62 66 74 5B 6A 5D 3C 3E 27 20 27 29 20 .fcbft[j]<>' ')
020DF0: 44 4F 0D 0A 09 09 63 6F 6D 6D 61 6E 64 5B 69 5D DO....command[i]
020E00: 3A 3D 66 63 62 31 2E 66 63 62 66 74 5B 6A 5D 3B :=fcb1.fcbft[j];
020E10: 0D 0A 09 09 49 4E 43 28 69 29 3B 0D 0A 09 09 49 ....INC(i);....I
020E20: 4E 43 28 6A 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A NC(j);....END;..
020E30: 09 6A 3A 3D 30 3B 0D 0A 09 57 48 49 4C 45 20 28 .j:=0;...WHILE (
020E40: 6A 3C 3D 48 49 47 48 28 70 72 6F 67 6E 61 6D 65 j<=HIGH(progname
020E50: 29 29 20 41 4E 44 20 28 70 72 6F 67 6E 61 6D 65 )) AND (progname
020E60: 5B 6A 5D 3C 3E 27 5B 27 29 20 44 4F 20 49 4E 43 [j]<>'[') DO INC
020E70: 28 6A 29 20 45 4E 44 3B 0D 0A 09 49 46 20 28 6A (j) END;...IF (j
020E80: 3C 48 49 47 48 28 70 72 6F 67 6E 61 6D 65 29 29 <HIGH(progname))
020E90: 20 54 48 45 4E 20 0D 0A 09 09 63 6F 6D 6D 61 6E THEN ....comman
020EA0: 64 5B 69 5D 3A 3D 27 5B 27 3B 0D 0A 09 09 49 4E d[i]:='[';....IN
020EB0: 43 28 69 29 3B 0D 0A 09 09 63 6F 6D 6D 61 6E 64 C(i);....command
020EC0: 5B 69 5D 3A 3D 70 72 6F 67 6E 61 6D 65 5B 6A 2B [i]:=progname[j+
020ED0: 31 5D 3B 0D 0A 09 09 49 4E 43 28 69 29 3B 0D 0A 1];....INC(i);..
020EE0: 09 09 45 4E 44 3B 0D 0A 09 63 6F 6D 6D 61 6E 64 ..END;...command
020EF0: 6C 65 6E 3A 3D 69 3B 0D 0A 09 66 2E 66 63 62 66 len:=i;...f.fcbf
020F00: 09 53 63 72 65 65 6E 44 65 70 74 68 3A 3D 43 6F .ScreenDepth:=Co
020F10: 6E 74 72 6F 6C 2E 53 63 72 65 65 6E 44 65 70 74 ntrol.ScreenDept
020F20: 68 3B 0D 0A 09 53 63 72 65 65 6E 43 6F 6E 74 72 h;...ScreenContr
020F30: 6F 6C 28 43 6C 65 61 72 53 63 72 65 65 6E 29 3B ol(ClearScreen);
020F40: 0D 0A 09 45 4E 44 20 53 63 72 65 65 6E 49 4F 2E ...END ScreenIO.
020F50: 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020F60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020F70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020F80: 45 4E 44 3B 0D 0A 09 09 09 09 73 65 74 63 75 72 END;......setcur
020F90: 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 45 4E 44 pos(f);......END
020FA0: 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E ;.....END;....EN
020FB0: 44 3B 0D 0A 09 73 61 76 65 63 75 72 70 6F 73 28 D;...savecurpos(
020FC0: 66 29 3B 0D 0A 09 52 45 54 55 52 4E 20 46 41 4C f);...RETURN FAL
020FD0: 53 45 3B 0D 0A 09 45 4E 44 20 46 69 6E 64 53 74 SE;...END FindSt
020FE0: 72 69 6E 67 3B 0D 0A 28 2A 09 41 63 74 75 61 6C ring;..(*.Actual
020FF0: 6C 79 20 66 69 6E 64 20 74 68 65 20 6E 65 78 74 ly find the next
021000: 20 6F 63 63 75 72 72 65 6E 63 65 20 6F 66 20 74 occurrence of t
021010: 68 65 20 73 74 72 69 6E 67 09 0D 0A 0D 0A 09 44 he string......D
021020: 6F 6E 65 20 72 65 74 75 72 6E 73 20 74 72 75 65 one returns true
021030: 20 69 66 20 6F 6E 65 20 69 73 20 66 6F 75 6E 64 if one is found
021040: 2A 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 61 *)..PROCEDURE Ca
021050: 6C 6C 57 69 74 68 46 69 6C 65 28 4E 61 6D 65 3A llWithFile(Name:
021060: 41 52 52 41 59 20 4F 46 20 43 48 41 52 3B 56 41 ARRAY OF CHAR;VA
021070: 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3B 0D 0A R f:EditFile);..
021080: 42 45 47 49 4E 0D 0A 09 4D 61 6B 65 43 61 6C 6C BEGIN...MakeCall
021090: 28 4E 61 6D 65 2C 66 2E 66 2E 66 29 3B 0D 0A 09 (Name,f.f.f);...
0210A0: 45 4E 44 20 43 61 6C 6C 57 69 74 68 46 69 6C 65 END CallWithFile
0210B0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 69 6C ;..PROCEDURE Fil
0210C0: 65 54 79 70 65 28 56 41 52 20 66 3A 45 64 69 74 eType(VAR f:Edit
0210D0: 46 69 6C 65 29 3A 43 41 52 44 49 4E 41 4C 3B 0D File):CARDINAL;.
0210E0: 0A 42 45 47 49 4E 0D 0A 09 49 46 20 66 2E 66 2E .BEGIN...IF f.f.
0210F0: 66 2E 66 63 62 66 74 3D 27 4D 4F 44 27 20 54 48 f.fcbft='MOD' TH
021100: 6E 3A 3D 27 20 20 20 20 20 20 20 20 27 3B 0D 0A n:=' ';..
021110: 09 46 4F 52 20 69 3A 3D 30 20 54 4F 20 6A 2D 31 .FOR i:=0 TO j-1
021120: 20 44 4F 0D 0A 09 09 66 2E 66 63 62 66 6E 5B 69 DO....f.fcbfn[i
021130: 2B 31 5D 3A 3D 70 72 6F 67 6E 61 6D 65 5B 69 5D +1]:=progname[i]
021140: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 66 2E 66 63 ;....END;...f.fc
021150: 62 66 74 3A 3D 27 43 4F 4D 27 3B 0D 0A 09 66 2E bft:='COM';...f.
021160: 66 63 62 64 6E 3A 3D 30 3B 0D 0A 09 66 2E 66 63 fcbdn:=0;...f.fc
021170: 62 65 78 3A 3D 30 3B 0D 0A 09 66 2E 66 63 62 63 bex:=0;...f.fcbc
021180: 72 3A 3D 30 3B 0D 0A 09 4C 6F 61 64 41 6E 64 45 r:=0;...LoadAndE
021190: 78 65 63 75 74 65 28 66 29 3B 0D 0A 09 45 4E 44 xecute(f);...END
0211A0: 20 4D 61 6B 65 43 61 6C 6C 3B 09 0D 0A 45 4E 44 MakeCall;...END
0211B0: 20 53 65 74 55 70 43 61 6C 6C 2E 0D 0A 0D 0A 1A SetUpCall......
0211C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0211D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0211E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0211F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
021200: 64 65 64 20 66 72 6F 6D 20 74 68 65 20 6C 6F 67 ded from the log
021210: 67 65 64 20 69 6E 20 64 69 73 63 0D 0A 09 09 54 ged in disc....T
021220: 68 69 73 20 72 6F 75 74 69 6E 65 20 6F 6E 6C 79 his routine only
021230: 20 6E 65 65 64 73 20 74 6F 20 62 65 20 75 73 65 needs to be use
021240: 64 20 69 66 20 74 68 61 74 0D 0A 09 09 66 69 6C d if that....fil
021250: 65 20 69 73 20 6E 6F 74 20 74 68 65 20 6F 6E 65 e is not the one
021260: 20 74 6F 20 75 73 65 20 28 65 67 2C 20 74 6F 20 to use (eg, to
021270: 73 77 61 70 20 73 63 72 65 65 6E 73 2A 29 20 0D swap screens*) .
021280: 0A 0D 0A 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 .......PROCEDURE
021290: 20 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 73 ScreenControl(s
0212A0: 3A 45 64 69 74 73 29 3B 0D 0A 0D 0A 28 2A 09 09 :Edits);....(*..
0212B0: 50 65 72 66 6F 72 6D 20 61 20 73 63 72 65 65 6E Perform a screen
0212C0: 20 63 6F 6E 74 72 6F 6C 20 6F 70 65 72 61 74 69 control operati
0212D0: 6F 6E 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 on*)....PROCEDUR
0212E0: 45 20 20 44 72 61 77 42 6F 78 28 78 31 2C 79 31 E DrawBox(x1,y1
0212F0: 2C 78 32 2C 79 32 3A 43 41 52 44 49 4E 41 4C 29 ,x2,y2:CARDINAL)
021300: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
021310: 45 20 53 65 74 55 70 43 61 6C 6C 3B 0D 0A 0D 0A E SetUpCall;....
021320: 28 2A 09 53 45 54 20 55 70 20 63 61 6C 6C 20 70 (*.SET Up call p
021330: 61 72 61 6D 65 74 65 72 73 20 66 6F 72 20 61 20 arameters for a
021340: 70 72 6F 67 72 61 6D 20 61 6E 64 20 63 68 61 69 program and chai
021350: 6E 20 74 6F 20 69 74 0D 0A 0D 0A 09 54 68 69 73 n to it.....This
021360: 20 6D 6F 64 75 6C 65 20 69 73 20 75 73 65 64 20 module is used
021370: 62 79 20 74 68 65 20 65 64 69 74 6F 72 20 66 6F by the editor fo
021380: 72 20 63 61 6C 6C 69 6E 67 20 74 68 65 0D 0A 09 r calling the...
021390: 63 6F 6D 70 69 6C 65 72 73 2E 0D 0A 0D 0A 09 54 compilers......T
0213A0: 68 65 20 73 65 63 6F 6E 64 20 70 61 72 61 6D 65 he second parame
0213B0: 74 65 72 20 69 73 20 74 68 65 20 66 63 62 20 66 ter is the fcb f
0213C0: 6F 72 20 74 68 65 20 66 69 6C 65 20 77 68 69 63 or the file whic
0213D0: 68 20 69 73 20 74 6F 20 62 65 20 63 6F 6D 70 69 h is to be compi
0213E0: 6C 65 64 0D 0A 0D 0A 09 49 74 20 77 69 6C 6C 20 led.....It will
0213F0: 62 65 20 73 65 74 20 75 70 20 6F 6E 20 74 68 65 be set up on the
021400: 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 20 61 73 command line as
021410: 20 61 20 70 61 72 61 6D 65 74 65 72 2E 20 49 74 a parameter. It
021420: 20 77 69 6C 6C 20 62 65 20 66 6F 6C 6C 6F 77 65 will be followe
021430: 64 0D 0A 09 62 79 20 2F 45 20 61 73 20 61 6E 20 d...by /E as an
021440: 6F 70 74 69 6F 6E 2E 0D 0A 0D 0A 09 49 66 20 74 option......If t
021450: 68 69 73 20 69 73 20 74 6F 6F 20 63 6C 65 76 65 his is too cleve
021460: 72 20 66 6F 72 20 79 6F 75 72 20 72 65 71 75 69 r for your requi
021470: 72 65 6D 65 6E 74 73 2C 20 79 6F 75 20 63 6F 75 rements, you cou
021480: 6C 64 20 75 73 65 20 74 68 65 20 6D 6F 64 75 6C ld use the modul
021490: 65 0D 0A 09 27 43 68 61 69 6E 27 20 64 69 72 65 e...'Chain' dire
0214A0: 63 74 6C 79 2E 0D 0A 09 2A 29 0D 0A 0D 0A 46 52 ctly....*)....FR
0214B0: 4F 4D 20 09 43 50 4D 20 49 4D 50 4F 52 54 20 66 OM .CPM IMPORT f
0214C0: 63 62 2C 61 6C 66 61 3B 0D 0A 50 52 4F 43 45 44 cb,alfa;..PROCED
0214D0: 55 52 45 20 4D 61 6B 65 43 61 6C 6C 28 70 72 6F URE MakeCall(pro
0214E0: 67 6E 61 6D 65 3A 41 52 52 41 59 20 4F 46 20 43 gname:ARRAY OF C
0214F0: 48 41 52 3B 56 41 52 20 66 3A 66 63 62 29 3B 0D HAR;VAR f:fcb);.
021500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
021510: 1C 00 01 00 02 09 52 E5 1C 00 C9 02 00 00 00 02 ......R.........
021520: 1C 00 C5 02 00 00 00 02 1C 00 C1 02 00 00 00 02 ................
021530: 1C 00 C6 02 00 00 00 02 1C 00 C2 02 00 00 00 02 ................
021540: 1C 00 C7 02 00 00 00 02 1C 00 C3 02 00 00 00 02 ................
021550: 1C 00 C8 02 00 00 00 02 1C 00 C4 02 00 00 00 02 ................
021560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0216A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0216B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0216C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0216D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0216E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0216F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0217A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0217B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0217C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0217D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0217E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0217F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0218A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0218B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0218C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0218D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0218E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0218F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0219A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0219B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0219C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0219D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0219E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0219F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A00: 6D 64 20 73 63 72 65 65 6E 69 6F 2E 64 65 66 0D md screenio.def.
021A10: 0A 6D 64 20 73 63 72 65 65 6E 64 75 2E 64 65 66 .md screendu.def
021A20: 0D 0A 6D 64 20 72 65 73 65 74 64 69 73 2E 64 65 ..md resetdis.de
021A30: 66 0D 0A 6D 32 20 73 63 72 65 65 6E 69 6F 2E 6D f..m2 screenio.m
021A40: 6F 64 0D 0A 6D 64 20 6D 61 6B 65 65 64 69 74 2E od..md makeedit.
021A50: 64 65 66 0D 0A 6D 64 20 65 64 69 74 73 74 61 74 def..md editstat
021A60: 2E 64 65 66 0D 0A 6D 32 20 6D 61 6B 65 65 64 69 .def..m2 makeedi
021A70: 74 2E 6D 6F 64 0D 0A 6D 64 20 65 64 69 74 63 6F t.mod..md editco
021A80: 6E 74 2E 64 65 66 0D 0A 6D 64 20 6D 61 63 72 6F nt.def..md macro
021A90: 73 2E 64 65 66 0D 0A 6D 64 20 6D 65 6E 75 2E 64 s.def..md menu.d
021AA0: 65 66 0D 0A 6D 64 20 64 6F 6D 65 6E 75 2E 64 65 ef..md domenu.de
021AB0: 66 0D 0A 6D 64 20 65 64 69 74 64 69 73 70 2E 64 f..md editdisp.d
021AC0: 65 66 0D 0A 6D 64 20 73 65 74 75 70 63 61 6C 2E ef..md setupcal.
021AD0: 64 65 66 0D 0A 6D 64 20 65 64 69 74 63 6F 6E 74 def..md editcont
021AE0: 2E 64 65 66 0D 0A 6D 64 20 6B 65 79 62 6F 61 72 .def..md keyboar
021AF0: 64 2E 64 65 66 0D 0A 6D 32 20 6D 65 6E 75 2E 6D d.def..m2 menu.m
021B00: 6F 64 0D 0A 6D 32 20 65 64 69 74 73 74 61 74 2E od..m2 editstat.
021B10: 6D 6F 64 0D 0A 6D 32 20 6D 61 63 72 6F 73 2E 6D mod..m2 macros.m
021B20: 6F 64 0D 0A 6D 32 20 64 6F 6D 65 6E 75 2E 6D 6F od..m2 domenu.mo
021B30: 64 0D 0A 6D 32 20 65 64 69 74 64 69 73 70 2E 6D d..m2 editdisp.m
021B40: 6F 64 0D 0A 6D 32 20 65 64 69 74 63 6F 6E 74 2E od..m2 editcont.
021B50: 6D 6F 64 0D 0A 6D 32 20 6D 65 2E 6D 6F 64 0D 0A mod..m2 me.mod..
021B60: 6D 32 20 73 63 72 65 65 6E 64 75 2E 6D 6F 64 0D m2 screendu.mod.
021B70: 0A 6D 32 20 72 65 73 65 74 64 69 73 2E 6D 6F 64 .m2 resetdis.mod
021B80: 0D 0A 6D 32 20 6B 65 79 62 6F 61 72 64 2E 6D 6F ..m2 keyboard.mo
021B90: 64 0D 0A 6D 32 20 73 65 74 75 70 63 61 6C 2E 6D d..m2 setupcal.m
021BA0: 6F 64 0D 0A 6D 32 20 6D 61 63 72 6F 73 2E 6D 6F od..m2 macros.mo
021BB0: 64 0D 0A 6D 32 20 6D 61 6B 65 65 64 69 74 2E 6D d..m2 makeedit.m
021BC0: 6F 64 0D 0A 6D 32 20 6D 65 2E 6D 6F 64 0D 0A 6D od..m2 me.mod..m
021BD0: 6C 20 6D 65 2F 64 0D 0A 1A 65 2E 6D 6F 64 0D 0A l me/d...e.mod..
021BE0: 6D 32 20 73 63 72 65 65 6E 64 75 2E 6D 6F 64 0D m2 screendu.mod.
021BF0: 0A 6D 32 20 72 65 73 65 74 64 69 73 2E 6D 6F 64 .m2 resetdis.mod
021C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0220A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0220B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0220C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0220D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0220E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0220F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0221A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0221B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0221C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0221D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0221E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0221F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0222A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0222B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0222C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0222D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0222E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0222F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0223A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0223B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0223C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0223D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0223E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0223F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0224A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0224B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0224C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0224D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0224E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0224F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0225A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0225B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0225C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0225D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0225E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0225F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0226A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0226B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0226C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0226D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0226E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0226F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0227A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0227B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0227C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0227D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0227E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0227F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
022810: 1D 00 01 00 02 09 52 E5 1D 00 C9 02 00 00 00 02 ......R.........
022820: 1D 00 C5 02 00 00 00 02 1D 00 C1 02 00 00 00 02 ................
022830: 1D 00 C6 02 00 00 00 02 1D 00 C2 02 00 00 00 02 ................
022840: 1D 00 C7 02 00 00 00 02 1D 00 C3 02 00 00 00 02 ................
022850: 1D 00 C8 02 00 00 00 02 1D 00 C4 02 00 00 00 02 ................
022860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0229A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0229B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0229C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0229D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0229E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0229F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
022FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0230A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0230B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0230C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0230D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0230E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0230F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0233A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0233B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0233C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0233D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0233E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0233F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0234A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0234B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0234C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0234D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0234E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0234F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0235A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0235B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0235C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0235D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0235E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0235F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0236A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0236B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0236C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0236D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0236E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0236F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0237A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0237B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0237C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0237D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0237E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0237F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0238A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0238B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0238C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0238D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0238E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0238F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
023B10: 1E 00 01 00 02 09 52 E5 1E 00 C9 02 00 00 00 02 ......R.........
023B20: 1E 00 C5 02 00 00 00 02 1E 00 C1 02 00 00 00 02 ................
023B30: 1E 00 C6 02 00 00 00 02 1E 00 C2 02 00 00 00 02 ................
023B40: 1E 00 C7 02 00 00 00 02 1E 00 C3 02 00 00 00 02 ................
023B50: 1E 00 C8 02 00 00 00 02 1E 00 C4 02 00 00 00 02 ................
023B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0244A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0244B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0244C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0244D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0244E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0244F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0245A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0245B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0245C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0245D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0245E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0245F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0246A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0246B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0246C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0246D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0246E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0246F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0247A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0247B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0247C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0247D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0247E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0247F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
024E10: 1F 00 01 00 02 09 52 E5 1F 00 C9 02 00 00 00 02 ......R.........
024E20: 1F 00 C5 02 00 00 00 02 1F 00 C1 02 00 00 00 02 ................
024E30: 1F 00 C6 02 00 00 00 02 1F 00 C2 02 00 00 00 02 ................
024E40: 1F 00 C7 02 00 00 00 02 1F 00 C3 02 00 00 00 02 ................
024E50: 1F 00 C8 02 00 00 00 02 1F 00 C4 02 00 00 00 02 ................
024E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0250A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0250B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0250C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0250D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0250E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0250F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0251A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0251B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0251C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0251D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0251E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0251F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0252A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0252B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0252C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0252D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0252E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0252F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0253A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0253B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0253C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0253D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0253E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0253F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0254A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0254B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0254C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0254D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0254E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0254F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0255A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0255B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0255C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0255D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0255E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0255F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0256A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0256B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0256C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0256D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0256E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0256F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0257A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0257B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0257C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0257D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0257E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0257F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0258A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0258B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0258C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0258D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0258E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0258F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0259A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0259B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0259C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0259D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0259E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0259F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
025FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0260A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0260B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0260C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0260D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0260E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0260F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
026110: 20 00 01 00 02 09 52 E5 20 00 C9 02 00 00 00 02 .....R. .......
026120: 20 00 C5 02 00 00 00 02 20 00 C1 02 00 00 00 02 ....... .......
026130: 20 00 C6 02 00 00 00 02 20 00 C2 02 00 00 00 02 ....... .......
026140: 20 00 C7 02 00 00 00 02 20 00 C3 02 00 00 00 02 ....... .......
026150: 20 00 C8 02 00 00 00 02 20 00 C4 02 00 00 00 02 ....... .......
026160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0262A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0262B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0262C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0262D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0262E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0262F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0263A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0263B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0263C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0263D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0263E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0263F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
027410: 21 00 01 00 02 09 52 E5 21 00 C9 02 00 00 00 02 !.....R.!.......
027420: 21 00 C5 02 00 00 00 02 21 00 C1 02 00 00 00 02 !.......!.......
027430: 21 00 C6 02 00 00 00 02 21 00 C2 02 00 00 00 02 !.......!.......
027440: 21 00 C7 02 00 00 00 02 21 00 C3 02 00 00 00 02 !.......!.......
027450: 21 00 C8 02 00 00 00 02 21 00 C4 02 00 00 00 02 !.......!.......
027460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
028710: 22 00 01 00 02 09 52 E5 22 00 C9 02 00 00 00 02 ".....R.".......
028720: 22 00 C5 02 00 00 00 02 22 00 C1 02 00 00 00 02 ".......".......
028730: 22 00 C6 02 00 00 00 02 22 00 C2 02 00 00 00 02 ".......".......
028740: 22 00 C7 02 00 00 00 02 22 00 C3 02 00 00 00 02 ".......".......
028750: 22 00 C8 02 00 00 00 02 22 00 C4 02 00 00 00 02 ".......".......
028760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
029A10: 23 00 01 00 02 09 52 E5 23 00 C9 02 00 00 00 02 #.....R.#.......
029A20: 23 00 C5 02 00 00 00 02 23 00 C1 02 00 00 00 02 #.......#.......
029A30: 23 00 C6 02 00 00 00 02 23 00 C2 02 00 00 00 02 #.......#.......
029A40: 23 00 C7 02 00 00 00 02 23 00 C3 02 00 00 00 02 #.......#.......
029A50: 23 00 C8 02 00 00 00 02 23 00 C4 02 00 00 00 02 #.......#.......
029A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AD00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02AD10: 24 00 01 00 02 09 52 E5 24 00 C9 02 00 00 00 02 $.....R.$.......
02AD20: 24 00 C5 02 00 00 00 02 24 00 C1 02 00 00 00 02 $.......$.......
02AD30: 24 00 C6 02 00 00 00 02 24 00 C2 02 00 00 00 02 $.......$.......
02AD40: 24 00 C7 02 00 00 00 02 24 00 C3 02 00 00 00 02 $.......$.......
02AD50: 24 00 C8 02 00 00 00 02 24 00 C4 02 00 00 00 02 $.......$.......
02AD60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02C010: 25 00 01 00 02 09 52 E5 25 00 C9 02 00 00 00 02 %.....R.%.......
02C020: 25 00 C5 02 00 00 00 02 25 00 C1 02 00 00 00 02 %.......%.......
02C030: 25 00 C6 02 00 00 00 02 25 00 C2 02 00 00 00 02 %.......%.......
02C040: 25 00 C7 02 00 00 00 02 25 00 C3 02 00 00 00 02 %.......%.......
02C050: 25 00 C8 02 00 00 00 02 25 00 C4 02 00 00 00 02 %.......%.......
02C060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02D310: 26 00 01 00 02 09 52 E5 26 00 C9 02 00 00 00 02 &.....R.&.......
02D320: 26 00 C5 02 00 00 00 02 26 00 C1 02 00 00 00 02 &.......&.......
02D330: 26 00 C6 02 00 00 00 02 26 00 C2 02 00 00 00 02 &.......&.......
02D340: 26 00 C7 02 00 00 00 02 26 00 C3 02 00 00 00 02 &.......&.......
02D350: 26 00 C8 02 00 00 00 02 26 00 C4 02 00 00 00 02 &.......&.......
02D360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02E610: 27 00 01 00 02 09 52 E5 27 00 C9 02 00 00 00 02 '.....R.'.......
02E620: 27 00 C5 02 00 00 00 02 27 00 C1 02 00 00 00 02 '.......'.......
02E630: 27 00 C6 02 00 00 00 02 27 00 C2 02 00 00 00 02 '.......'.......
02E640: 27 00 C7 02 00 00 00 02 27 00 C3 02 00 00 00 02 '.......'.......
02E650: 27 00 C8 02 00 00 00 02 27 00 C4 02 00 00 00 02 '.......'.......
02E660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
RESULT OF SEARCH :
PRO=333 CHEA=0 COD=20 MUSI=0 COP=13 GRA=58 WRIT=125 198=7 199=0 STARTER=0 KBI=0 CAAV=0 L.TOURNIER=0
EXTENDED CPC DSK File SAMdisk140311( R! ! !222 2!G7£o(! !$ q(a 2y Wp((2R8
#!(Gw#2# .# WDEL V2.0 (C) 1987 HiSoft $Drive is R/O!$No matching files$ Cannot
delete!$ Delete (Y/N/A/Q/P) $*"QRhB8KGB h2!l #- #Q(B # 2mh2BF!m ! ! !!Q(G2
!Q!LB!"L# B( -B qa 2b(1w(,y 2p(!B2(22BQB2#bk6"!F# #(h2(4!+6B#6A#V6K"!#3WP C
OMSD COMWD COM!README!ED! -2JULY1987 -BACKUPNOW!-VERSION124DOMENU DE
FDOMENU MOD9EDITCONTDEFEDITCONTMODm !"#$%&'()EDITDISPDEF*EDITDISPMOD3+,-./01EDI
TSTATDEF2EDITSTATMOD345KEYBOARDDEF6r+s+w""(w"#GH .HsH#2go"Q *#"!R02Kx(#Q"(!x "O
! !jR0Ur+ x # A 0G22GO!-++ ## #Q(B22WP V3.0 (C) 1987 HiSoft Buffer size $ $No
files$ Open failed$ Disc I/O error (Full )$ to $ Same$ Copy (Y/N/A/Q/P/B/W) $
LKEYBOARDMODD789MACROS DEFMACROS MODOABCDEFGHIJMAKEEDITDEFKLMNMAKEEDITMODOPQR
STUVWXYZMAKEEDITMOD abME MOD&cdefgMENU DEFhMENU MODijklRESETDISDEFmRE
SETDISMODnSCREENDUDEFoSCREENDUMODpSCREENIODEF qrstSCREENIOMOD-uvwxyzSETUPCALDEF2
! !2U2 ! 2"V####2X6 A!!e(G2 eG!eA. (+4(1nf( +#M7NU2U(# .#!eGX8% (nfVutXNWEnfut
!eGR(( X(SETUPCALMOD RECMPED SUB# 00P*Vnf"YG72KY28y( #kbG(M#.!NK!d Ur+ x # A 0!
jR0SD V1.0 by Adam Denning (C) HiSoft 1986 $$ S$ $R $ $K Recs $ Disc free s
pace $function i sourc an Man librar formDO Lookup(Inf,Namesj,reply) IF reply
0 THEN WriteString(' Could not open ') WriteString(Namesj) Wr Rsert/delete l
ine or clear to end of line). Mind you don't overwrite your only copy of ME.CO
M while experimenting--and copy ME.COM from your original disks if you have an
y doubts. If strapped for room, or just experimenting, MACROS.MBE has no func
tion key code and therefore is smaller. As before, rename it to MACROS.MOD bef
ore recompiling. SAMPLE PROGRAM INSTRUCTIONS CAT.MOD A file display pr
ogram without the shortcomings of 'type'. CAT can Number output lines Page o
utpComputers' Z80 Card. To produce a memory mapped version, start with the Mic
roBee, as that is the most standard. To replace the standard version of Screen
IO by a memory mapped version, simply compile the memory mapped implementation
module in place of the standard implementation module--no changes are needed i
n the definition module. NOTE the Osborne version is for Osborne Is only, NOT
the Executive. The Vixen is also slightly different. Compiling the editor. *
******************** The submit file RECMPED.SUB can be used to recompile the
editor SUBMIT RECMPED the distributed form of this file assumes that the
files are all on the current drive. You may want to add "B" in front the filen
ames being compiled (or add whatever drive name you are using). Note that SUBM
IT only works from drive A on many computers. Mapping your keyboard. If you
want to modify the editor to use your keyboard arrow keys and function keys, yo
u will want to edit the module KEYBOARD.MO Notes for
FTL Modula-2 Editor/ToolKit disc
Workman & Associates This disc contains the entire sources for the FT
L Modula-2 editor and a number of utilities which you may find useful. See
the end of this file for more details on the utilities. They are COMPDIRa d
irectory compare program. This program is invaluable to software developers who
need to ensure that their distribution discs are complete and contD, then reco
mpile the editor (see above). Editor Cook's Guide. The main modules in the
editor are METhe top level module. EDITCONTControls the screen display. EDI
TDISPSome other screen display procedures--essentially part of EDITCONT, kept s
eparate for ease of maintenance. MAKEEDITPerforms the changes to the file(s) be
ing edited. KEYBOARDAccepts input from the keyboard and calls appropriate rout
ines to perform the requested edit functions. DOMENUSupports the options menu (
that ain the latest versions of files. See the file COMPDIR.MOD and instructions
below. COMPAREan Ascii file comparison program. This program does line-by- li
ne comparisons of files. It uses a powerful comparison method which rarely get
s lost, and which can detect block moves. See the file COMPARE.MOD and the docu
mentation below. CATa generalised listing module intended primarily for use on
RCPMs. It can do tab expansion, line numbering, string search, position by li
ne number and wild cais, open file, comp/exit, etc). EDITSTATPicks up the file
position for a file when it's opened. MACROSHandles macro expansion and defini
tion, including the learn mode. Makes and saves them "on the fly" during edits
, too. SETUPCAL Editor uses this module to call the compilers. See als
o the module CHAIN for another example of this. Note for users or abusers of d
umb terminals. You must rename EDITCONT.DMB and EDITDISP.DMB to end in .MOD b
efore recompiling the dumb editor (without inrds. See the file CAT.MOD and th
e documentation below. PATTERNThis is a pattern matching module which match
es complex (even recursive!) patterns. See PATTERN.DEF for description of use
, and TestPat.MOD as an example. SCREENIOThe screen input-output routines used
by the editor. The standard version of ScreenIO (SCREENIO.MOD), plus some mem
ory mapped versions are supplied. SCREENIO.OSB is for the Osborne 1, SCREENIO
.MBE is for the MicroBee, and SCREENIO.EAR is for the Earth Rnter. These are
very near the beginning of the program (see the .MOD file). Each control code
can be up to 8 characters long and is terminated by a value of 0 if less than
characters are required. Naturally, you may also change the .COM file. The co
ntrol characters in the supplied program are set for a STAR DPS510, which is su
pposed to be Epson compatible, so the program may well run 'as is' on Epsons an
d Epson clones. How the program works For each line, a hash total ige mo
de. Multiple commands may be placed on a line. The commands are
Display some help information. number Restart listing from given line
number. + or - number Advance (or retire) by the given number of lines. /str
ing/ Restart listing from next occurence of string. The delimiters can be
any printing non-alphanumeric character. A number and a search string can be
combined to search from a given line number. If no string is entered ("//"),
the previously entered ut Expand tabs to spaces Wrap lines for listing to ter
minals without auto-line wrap Reposition by line number or by string search Us
e wild cards on the command line See non-printing characters in hex (other than
CR/LF/TAB) CAT is not a CP/M implementation of the cat program on UNIX it is
more like UNIX's MORE. To run the program CAT file list /options or
CAT file list options The options may also be omitted. The "file list" is
a list of file names or wild cards which matcstring is searched for again. N
Toggle line numbering option. IToggle tab expansion option. WToggle software l
ine wrap option. If the W is followed by a number, the number resets the scree
n width. PToggle page mode. If the P is followed y a number, it resets the pag
e length. Note that the first P on any command line always causes page mode to
be cleared, as page mode is always enabled when the command line is processed.
Hence, to just change the page length, you must do P20P (say).h file names.
For example CAT b*.def b*.mod will list the definition files, then the modu
le files. An option is zero or more alphabetics. Some of the alphabetics may
be followed by a number. If a number is included, it must immediately follow
the option character--it must not be separated. The options are P - use p
age mode. At the end of every page of output, CAT will prompt for a command (s
ee below). The option may be followed by the number of lines to a page. Defau
lt length i QQuit this file. Ctrl CReturn to CP/M. Compare - compare two
Ascii files line by line This program displays the differences between two
files. It presents the output in a reasonably readable form (it would look bea
ut on a colour printer). The program is based on a method described by Paul Hec
kel in 'A Technique for Isolating Differences between Files', Communications of
the ACM, Vol 21 No 4, April 1978, pp 264-268. To run the program s 24. W -
Set software line wrap. Lines longer than the line width will be wrapped aroun
d by the software. This is useful if your terminal will not perform hardware l
ine wraps. It also prevents any text falling off the top of screen as the resu
lt of hardware line wraps. "W" may be followed by the number of columns on the
screen. Default width is 80. I - Expand tabs. Tabs are expanded to an approp
riate number of spaces. N - Number lines. Each line is preceded by a line numbe
r. Examples COMPARE old file,new file,List file The third file is optio
nal. If omitted, the output is to the printer. You can use device names (e.g.
TTY) as well as disc file names. The two files are compared line by line. L
ines which have been deleted from the old file are printed in italics. Inserte
d lines are printed in bold. Lines which have been moved to a new position are
printed in their new position surrounded by lines of asterisks. You may need t
o patch the printer control codes for your priCAT b*.def/NP Use page mode a
nd number the lines. CAT b*.def/P16W64N Use page mode and software wrap w
ith pagelength 16 and width 64. CAT Commands At the end of a page of outpu
t in page mode, Cat will stop and ask for a command. You may then enter any of
the commands described below. In fact, you can enter a command character at an
y time. When Cat determines that a character has been typed, it will bring up
the 'Command ' prompt, display the character you typed, and go into pa Rnsion
. Optionally, you may create a file containing a list of the file names added,
deleted or matching. The command to call the program takes the form COMPD
IR wild card, wild card , list file /options Where each wild card produces on
e of the lists to compare. To compare two discs COMPDIR a*.* b*.* Optio
ns are any of the following TCompare only file extension (by default, the who
le name is compared). Ncompare only file name--base name, minus the extension.
T and N ares calculated. Then the unique lines in each file are identified.
When a unique line matches a unique line in the second file, the two lines ar
e cross-linked. Next, lines adjacent to cross-linked lines are compared and,
if identical, they are linked. This grows the area of linking outwards from pa
irs of matching unique lines (and also from the beginning and end of the files
) until as many lines as possible have been cross-linked. Finally the text i
s scanned and printed out. Lines in the new f mutually exclusive. CIf file n
ames match, compare the file contents as well. EOutput file names which match t
o list file. AOutput file names which have been added to the second list. DOut
put file names which have been deleted from the first list. MOutput file names
which differ in contents. These options may be combined. Examples To chec
k that every '.mod' file has a '.rel' file Compdir b*.mod b*.rel/n To write
the deleted names to a file so that the missing '.rel' files may ile which ar
e not linked to anything in the old file are insertions. Unlinked lines in the
old file are deletions. Lines in the new file which link to out-of-order old
file lines are parts of a block move. Further Work A number of things can
be done with this program 1/ Make it work on three files. Often, a new ver
sion of a program is created (say, for another machine) and then the original v
ersion is modified. The problem is then inserting the new changes to the origi
nal file into thebe discovered Compdir b*.mod b*.rel bcomps.sub/nd If you
intend to regenerate those files, edit the file to add "M2 " to the start of ea
ch line. If you are using the Modula-2 editor, do one in learn mode and then d
o the rest with a repeated execution of the defined macro. To create a list o
f all definition and implementation modules on disc B Compdir b*.mod b*.def t
.lst/ade Happy Modulating!! DF COM CRDISKCOMPEXE b other version, w
hile retaining any changes made toproduce that version. Probably fairly diffic
ult to do. 2/ Make it work across machines. Sometimes, one of the files is
on another machine. It would be nice to have the old file on the remote machin
e and only transfer the checksums and the lines which have been deleted across
the link. Fairly easy, but reliability of the link will cause problems. 3/
Write a pair of extract/merge programs. Continuing on from point 2, write a pro
gram to creatDEFINITION MODULE DoMenu (*Menu processor for editor*) FROM Fil
es IMPORT FileName,FILE,Close,Create PROCEDURE Redisplay PROCEDURE DoMenuOp P
ROCEDURE Open(fnFileNamePosCARDINAL) PROCEDURE GetString(VAR sARRAY OF CHARVAR
lenCARDINALpromptARRAY OF CHAR) END DoMenu. ons are supplied. SCREENIO.OSB is
for the Osborne 1, SCREENIO.MBE is for the MicroBee, and SCREENIO.EAR is for
the Earth e a differences file and another to merge the differences on a remote
machine. This should be quite easy, given 2. Altogether, these three exten
sions would be about right for a term project for one student. Of course, if a
nyone out there wants to do this, we'll happily give author's credit. CompDi
r - Compare two directories CompDir compares disc directories. The compari
son may use the full file name, just the base name, or (not very useful) just t
he exte ROCEDURE WriteAwayFile BEGIN CloseFile(FilesCurrentFile,reply) IF re
ply-1 THEN ErrorMessage('Disc Full ',' ') ELSIF reply-2 THEN ErrorMessage('D
irectory Full ',' ') END UpdatedCurrentFileFALSE END WriteAwayFile PROCEDURE
SaveFiles VARiINTEGER BEGIN iCurrentFile reply0 FOR CurrentFile1 TO FilesO
pened DO IF UpdatedCurrentFile THEN WriteAwayFile END IF reply0 THEN RETURN EN
D END CurrentFilei END SaveFiles PROCEDURE PrepareToLeaveELSE Close(f) Ope
nFile(FilesFilesOpened+1,fn,reply,Pos) END END END (*reply-2*) IF reply(-4)
THEN ErrorMessage('Could not create ',fn) ELSIF reply(-3) THEN ErrorMessage('
Out of Memory loading ',fn ) ELSIF reply(-2) THEN ErrorMessage('File not found
',fn) ELSIF reply0 THEN ErrorMessage(' Other error opening file',fn) ELSE (*f
ile ok*) INC(FilesOpened) INC(Windows) WindowFileWindowsFilesOpened SetWindo
ws(Windows) bLabelOp(Fil(*Perform menu operations Copyright, Dave Moore FTL
Modula-2 1986 26 June 86 D Moore Put BackSpace inside IF to improve backs
pacing performance of GetString *) IMPLEMENTATION MODULE DoMenu (*menu pr
ocessor for editor contains all commands which are performed from a menu*) F
ROMTerminal IMPORT Write,WriteString,ReadString,ReadBuffer,WriteLn,Read, BusyRe
ad,ClearCharBuffer FROM MakeEdits IMPORT OpenFile,CloseFile,AbandonFile,CallWit
hFile,FileType,LabelOp FROMMenu IMPORTesFilesOpened,TRUE,CHR(Windows)) SetLeft
Marg(FilesFilesOpened,Windows, curxWindows,curyWindows) UpdatedFilesOpenedFALS
E ChangeWindow(Windows) END(*replyvarious values*) END(*fn1' '*) Redispl
ay END Open PROCEDURE SetBoxPos(VAR yCARDINAL) BEGIN IF Windows2 THEN
y13*(CurrentWindow-1) ELSIF CurrentWindow0 THEN y0 ELSEy8*(CurrentWindow-1) EN
D END SetBoxPos VARx,y,charsCARDINAL PROCEDURE BackSpace BEGIN Write(08x)
Write(' GetFromMenu,MenuText FROM EditControl IMPORT CurrentWindow,CurrentFile,
FilesOpened,curx,cury,Files, ElideWindow,ChangeWindow,ResetScreenPos,Updated,Le
ftMargin, MakeWindow,WindowFile,FilePosition FROMEditDisplay IMPORT ErrorMessa
ge,SetWindows,DisplayFile,SetLeftMarg,Windows FROMMacros IMPORT StoreMacros FR
OMScreenDummy IMPORT ClearScreen,DrawBox,Gotoxy FROMResetDisc IMPORT ResetAllDi
scs VARTextARRAY 0..9 OF MenuText 'Open File ', 'Save File ', 'Close File
', ') Write(08x) DEC(chars) END BackSpace PROCEDURE GetString(VAR sARRAY
OF CHARVAR lenCARDINALpromptARRAY OF CHAR) BEGIN SetBoxPos(y) DrawBox(11,y+3,
14+HIGH(s)+HIGH(prompt),y+1) Gotoxy(12,y+2) FOR x0 TO HIGH(prompt) DO Write(pr
omptx) END FOR x0 TO HIGH(s) DO Write(' ') END Gotoxy(12+HIGH(prompt)+1,y+2)
len0ch0x chars0 LOOP IF lenHIGH(s) THEN EXIT END REPEAT BusyRead(ch) UNTIL
ch0x IF ch0dx THEN EXIT END IF (ch08x) OR (ch13'Split File ', 'Compile ',
'Comp/Exit ', 'Quit File ', 'Quit Window', 'Exit Edit ', 'Reset Disc '
cCARDINAL replyINTEGER iCARDINAL chCHAR PROCEDURE Redisplay BEGIN SetWind
ows(Windows) FOR i1 TO Windows DO DisplayFile(FilesWindowFilei,i,curxi,curyi)
END ResetScreenPos END Redisplay PROCEDURE ClearDisplay BEGIN Gotoxy(0,0)
ClearScreen END ClearDisplay PROCEDURE Really()BOOLEAN BEGIN WriteString('
(Y/N) ') REx) OR (ch7fx) THEN IF len0 THEN DEC(len) IF slen' ' THEN BackSpa
ce END BackSpace END ELSIF ch18x THEN FOR len1 TO chars DO BackSpace END le
n0 chars0 ELSE IF ch' ' THEN Write('') Write(CHR(ORD(ch)+64)) INC(chars)
ELSE Write(ch) END INC(chars) slench INC(len) END END(*WHILE*) FOR xlen T
O HIGH(s) DO sx' ' END END GetString PROCEDURE DoMenuOp VARyCARDINAL fnFil
eName PRPEAT BusyRead(ch) chCAP(ch) UNTIL (ch'Y') OR (ch'N') Write(ch) RET
URN ch'Y' END Really PROCEDURE Open(fnFileNamePosCARDINAL) (*Open the file wh
ose name is in fn re-adjust the display as required*) VARfFILE bBOOLEAN BE
GIN IF fn1' ' THEN OpenFile(FilesFilesOpened+1,fn,reply,Pos) IF reply(-2
) THEN ClearDisplay WriteString(' Create ') WriteString(fn) IF Really() TH
EN Create(f,fn,reply) IF reply0 THEN reply-4 RNAL Thisx,ThisyCARDINAL Le
ftMarginARRAY1..MaxEditFiles OF CARDINAL LineLenINTEGER LinePosINTEGER Update
dARRAY1..MaxEditFiles OF BOOLEAN WindowFileARRAY1..MaxEditFiles OF CARDINAL Mo
vedOKBOOLEAN PROCEDURE InsOneChar(chCHAR) PROCEDURE DelOneChar PROCEDURE DelT
oEOL PROCEDURE DelFullLine PROCEDURE Left PROCEDURE Right PROCEDURE Down PR
OCEDURE Up PROCEDURE UpScreen PROCEDURE DownScreen PROCEDURE Top PROCEDURE B
ottom PROCEDURE ChangeWindow(iINTEGER) ND(*FilesOpened*) 8IF FilesOpened0
THEN IF CountRefs()1 THEN ElideWindow(CurrentWindow) ChangeWindow(1)
Redisplay ELSE CheckRemoveFile END END 9PrepareToLeave IF reply0 TH
EN HALT END 10 ResetAllDiscs ErrorMessage(' All discs now read/write',' ')
END END (*IF FilesOpened etc *) END DoMenuOp END DoMenu. List THEN Writ
eChar(List,Device) WriteChar(List,ch) END WriteString(Name BEGIN SaveFiles
IF reply0 THEN ClearDisplay StoreMacros END END PrepareToLeave PROCEDURE
CallCompilers(opt1,opt2ARRAY OF CHAR) BEGIN PrepareToLeave IF reply0 THEN
CASE FileType(FilesCurrentFile) OF 1CallWithFile(opt1,FilesCurrentFile) 2Ca
llWithFile(opt2,FilesCurrentFile) END Redisplay ErrorMessage(' Invalid File T
ype',' ') END(*IF*) END CallCompilers PROCEDURE CountRefs()CARDINAL VARj
CARDINAL BEGIN j0 FOR i1 ) Wmodule. EDITCONTControls the screen display. E
DITDISPSome other screen display procedures--essentially part of EDITCONT, kept
separate for ease of maintenance. MAKEEDITPerforms the changes to the file(s)
being edited. KEYBOARDAccepts input from the keyboard and calls appropriate ro
utines to perform the requested edit functions. DOMENUSupports the options menu
(that TO Windows DO IF WindowFileiCurrentFile THEN INC(j) END END RETURN j
END CountRefs PROCEDURE RemoveFile VARj,kCARDINALchCHAR BEGIN jCurrentFile
k1 WHILE kWindows DO IF WindowFilekj THEN ElideWindow(k) (*which decrements
windows*) ELSE IF WindowFilekj THEN DEC(WindowFilek) END INC(k)
END END AbandonFile(Filesj) FOR ij+1 TO FilesOpened DO Filesi-1Filesi Upda
tedi-1Updatedi END DEC(FilesOpened) ChangeWindow(1) Redisplay END RemoveF
ile PROCEDURE CheckRemoveFile BEGIN IF UpdatedCurrentFile THEN ClearDisplay
WriteString(' File updated - Are you sure ') IF NOT Really() THEN Redisplay
RETURN END END RemoveFile END CheckRemoveFile BEGIN SetBoxPos(y) cGetFr
omMenu(Text,10,y,5,2) ClearCharBuffer IF (FilesOpened0) AND (c IN 2..8) THEN
ErrorMessage('You have to be editing a file to do this',' ') ELSE CASE c OF 1I
F WindDEFINITION MODULE EditControl FROM MakeEdits IMPORT EditFile,Position FR
OM Terminal IMPORT Write,WriteLn (*Editor control - data areas for file and r
outines which actually perform edit functions by calling makeedit to edit the f
ile and editdisp to change the screen*) CONST MaxEditFiles3 VARFiles ARRAY
1..MaxEditFiles OF EditFile FilesOpenedCARDINAL CurrentFile,CurrentWindowCARDI
NAL FilePositionARRAY1..MaxEditFiles OF Position curx,curyARRAY1..MaxEditFiles
OF CARDIows3 THEN ErrorMessage(' 3 windows is max allowed',' ') ELSE GetStr
ing(fn,y,'File') Open(fn,65535) END 2WriteAwayFile 3WriteAwayFile
IF reply0 THEN RemoveFile END 4IF Windows3 THEN ErrorMessage(' 3 window
s is max allowed',' ') ELSE MakeWindow SetWindows(Windows) ChangeWindow(Cu
rrentWindow) Redisplay END 5CallCompilers('M2E ','MDE ') 6CallCompilers('M
2 ','MD ') 7IF FilesOpened0 THEN CheckRemoveFile E RThisx-CurrentLeftMargin
curxCurrentWindowThisx ResetPos END ChangePos PROCEDURE LineMove(byINTEGER
) VARiINTEGER BEGIN ReDrawnFALSE iLinePos SetLinePos(by) LinePosi ChangeP
os IF ABS(by)1 THEN ReDisplayWindow END END LineMove VARpwPosition PROCEDU
RE WritePartLine(cCARDINAL) BEGIN DoScreenChange(DelEol) GetPosition(CurFileP
tr,pw) LOOP ReadNextChar(pw,ch) IF (ch0dx) OR (ch1ax) OR (ch0ax) THEN EXIT EN
D IF c(ScreenWidth+CARDINAL StartofWindow,EndofWindowCARDINAL chCHAR Current
LeftMarginCARDINAL FileLimitBOOLEAN ReDrawnBOOLEAN CurFilePtrPEditFile PROCE
DURE ChangePosFORWARD PROCEDURE DoScreenChange(CodeEdits) BEGIN ScreenControl
(Code) END DoScreenChange VARlinesmovedINTEGER pPosition PROCEDURE Set
LinePos(moveINTEGER) BEGIN Retrline(CurFilePtr,LineLen,LinePos,p,linesmoved,mo
ve) END SetLinePos PROCEDURE MarkAsUpdated BEGIN UpdatedCurrentFileTRUE END
MarkPROCEDURE ElideWindow(iINTEGER) PROCEDURE MakeWindow PROCEDURE ScrollUp
PROCEDURE ScrollDown PROCEDURE ResetScreenPos PROCEDURE FarRight PROCEDURE Fa
rLeft PROCEDURE Search(ReplaceARRAY OF CHARRLenINTEGERLenCARDINAL)BOOLEAN PROC
EDURE OverWrite(chCHAR) PROCEDURE FindWord(BackWardBOOLEANDeleteBOOLEAN) PROCE
DURE ReDisplay PROCEDURE GoToLabel(chCHAR) END EditControl. T DEF Ex iAsUpd
ated PROCEDURE DelToEOL BEGIN MarkAsUpdated IF LinePosLineLen THEN DelChar
s(CurFilePtr,LineLen-LinePos) END LineLenLinePos DoScreenChange(DelEol) END
DelToEOL VAR bBOOLEAN PROCEDURE ResetPos BEGIN Gotoxy(Thisx,Thisy) END Re
setPos PROCEDURE ReDisplayWindow BEGIN DisplayFile(CurFilePtr,CurrentWindow,T
hisx,Thisy) ResetPos curxCurrentWindowThisx curyCurrentWindowThisy ReDrawnTR
UE END ReDisplayWindow PROCEDURE ReDisplay BEGIN ReDisplayWindow SetLinePos
(0) ChangePos END ReDisplay PROCEDURE ChangeMargin(IncINTEGER) BEGIN IF (In
c0) AND (CurrentLeftMarginCARDINAL(-Inc)) THEN Inc-INTEGER(CurrentLeftMargin)
END IF (Inc0) AND (ThisxCARDINAL(Inc)) THEN IncThisx END CurrentLeftMarginI
NTEGER(CurrentLeftMargin)+Inc ThisxINTEGER(Thisx)-Inc curxCurrentWindowThisx
LeftMarginCurrentWindowCurrentLeftMargin ReDisplayWindow ResetPos END ChangeM
argin PROCEDURE ChangePos VIMPLEMENTATION MODULE EditControl (*Editor con
trol - data areas for file and routines which actually perform edit functions b
y calling makeedit to edit the file and editdisp to change the screen*) FROM
MakeEdits IMPORT InsChars,DelChars,Retrline,BackOneChar,ForwardOneChar, GetCur
rentChar,GetPosition,SetPosition,ReadNextChar,FindString, LabelOp FROM EditDis
play IMPORT DisplayFile,ErrorMessage,Windows,LinesPerWindow FROM ScreenIO IMPOR
T Edits,DelChar,DelLine,InsChar,InsLine,DelEol,MoveUpARiCARDINAL BEGIN IF Line
LenLinePos THEN LinePosLineLen END Thisx0 i0 LOOP INC(i) chGetCurrentCha
r(CurFilePtr) IF (iCARDINAL(LinePos)) OR (chEOF) THEN EXIT END IF chTAB THEN T
hisxIAND(Thisx+8,0fff8h) ELSE INC(Thisx) END bForwardOneChar(CurFilePtr) E
ND iThisx WHILE Thisx(ScreenWidth+CurrentLeftMargin) DO ChangeMargin(32) Thi
sxi END WHILE ThisxCurrentLeftMargin DO ChangeMargin(-32) Thisxi END Thisx
, MoveDown,MoveLeft,MoveRight,Gotoxy,ClearScreen, ScreenControl,ScrollWindowUp
,ScrollWindowDown, ScreenWidth,ScreenDepth FROM IntLogic IMPORT IAND FROMSYST
EM IMPORT ADR CONSTCR0dx TAB09x LF0ax EOF1ax (*A remark on the use of LineP
os and curx LinePos always points to the number of the character within the
text line. It need not be the same as the position on the screen because of the
use of tab characters*) TYPEPEditFilePOINTER TO EditFile VARiINTEGER c R st
ring of marks, tabs or spoaces The cursor is repositioned*) VARchCHAR b1BO
OLEAN BEGIN FileLimitFALSE IF Backward THEN Left IF NOT MovedOK THEN RETUR
N END END chGetCurrentChar(CurFilePtr) b1AlphaNum(ch) IF chEOF THEN RETURN E
ND REPEAT IF Delete THEN DelOneChar END IF Backward THEN Left ELSIF NOT De
lete THEN Right END chGetCurrentChar(CurFilePtr) UNTIL (b1AlphaNum(ch)) OR Fi
leLimit OR (chEOF) IF Backward AND NOT FileLimit THEnePos(i) IF linesmovedi TH
EN MovedOKTRUE ScrollWindowDown(StartofWindow,EndofWindow) Gotoxy(0,EndofWind
ow) WriteLine ResetPos ELSE MovedOKFALSE END SetPosition(CurFilePtr,p) Re
setPos LineLenSaveLineLen LinePosSaveLinePos END ScrollTextDown PROCEDURE Sc
rollDown BEGIN ScrollTextDown IF MovedOK THEN IF ThisyStartofWindow THEN D
EC(Thisy) ResetPos ELSE LineMove(1) ResetPos END END END ScrollDown PROC
EDURE LCurrentLeftMargin) THEN EXIT END IF chTAB THEN REPEAT IF cCurrentLeft
Margin THEN Write(' ') END INC(c) UNTIL IAND(c,7)1 ELSE IF cCurrentLeftMarg
in THEN Write(ch) END INC(c) END END(*LOOP*) END WritePartLine PROCEDURE Wr
iteLine BEGIN WritePartLine(1) END WriteLine PROCEDURE RemoveLine (*Remov
e a line from the screen and bring another line up at the bottom Thisy gives
line to remove*) VARpPosition BEGIN Gotoxy(0,Thisy) Scroleft VARchCHAR Sav
eLineLenCARDINAL pPosition BEGIN MovedOKTRUE ReDrawnFALSE SaveLineLenLineLe
n GetPosition(CurFilePtr,p) IF LinePos0 THEN bBackOneChar(CurFilePtr) chGetC
urrentChar(CurFilePtr) IF (CurrentLeftMargin0) AND (Thisx0) THEN ChangeMargin(
-32) END DEC(LinePos) IF NOT ReDrawn THEN IF chTAB THEN DEC(Thisx) ResetPo
s ELSE LineMove(0) END END ELSE Thisx1023 LinePos1023 Up IlWindowDown
(Thisy,EndofWindow) iEndofWindow-Thisy+1 GetPosition(CurFilePtr,p) SetLinePos
(i) IF linesmovedi THEN MovedOKTRUE Gotoxy(0,EndofWindow) WriteLine END Se
tPosition(CurFilePtr,p) END RemoveLine PROCEDURE DelFullLine BEGIN MarkAsUpd
ated RemoveLine SetLinePos(0) DelChars(CurFilePtr,LineLen+2) LinePos0 IF Cu
rrentLeftMargin0 THEN ChangeMargin(-INTEGER(CurrentLeftMargin)) END Thisx0
ResetPos LinePos0 SetLinePos(0) EF NOT MovedOK THEN LinePos0 LineLenSaveLin
eLen SetPosition(CurFilePtr,p) Thisx0 ResetPos END END END Left PROCEDURE
Right VARchCHAR iCARDINAL BEGIN chGetCurrentChar(CurFilePtr) IF ch1ax (*on
EOF char*) THEN RETURN END IF LinePosLineLen THEN Thisx0 LinePos0 Down E
LSE IF chTAB THEN i9 ELSE i1 END IF (Thisx+i)(ScreenWidth-1) THEN ChangeMar
gin(32) END bForwardOneChar(CurFilePtr) INC(LinePND DelFullLine PROCEDUR
E ScrollTextUp (*Scroll up one line in the file (which means the text scroll
s down - backwards to what you might think at first)*) VARpPosition SaveLin
eLen,SaveLinePosCARDINAL BEGIN SaveLineLenLineLen SaveLinePosLinePos iStarto
fWindow-Thisy-1 GetPosition(CurFilePtr,p) SetLinePos(i) IF linesmovedi THEN
MovedOKTRUE ScrollWindowUp(StartofWindow,EndofWindow) Gotoxy(0,StartofWindow)
WriteLine ELSE MovedOKFALSE os) IF chTAB THEN INC(Thisx) ResetPos ELSE
(*if moves over tabs are slow, replace the repeated moves right by a gotoxy
*) ThisxIAND(Thisx+8,0fff8h) ResetPos END END END Right PROCEDURE AlphaN
um(chCHAR)BOOLEAN BEGIN chCAP(ch) RETURN ((ch'A') AND (ch'Z')) OR ((ch'0') AN
D (ch'9')) END AlphaNum PROCEDURE FindWord(BackwardBOOLEANDeleteBOOLEAN)
(*Find a word and optionally delete it A word is a string alphanumerics or aE
ND SetPosition(CurFilePtr,p) ResetPos LineLenSaveLineLen LinePosSaveLinePos
END ScrollTextUp PROCEDURE ScrollUp BEGIN ScrollTextUp IF MovedOK THEN IF
ThisyEndofWindow THEN INC(Thisy) ResetPos ELSE LineMove(-1) ResetPos END
END END ScrollUp PROCEDURE ScrollTextDown VARpPosition SaveLineLen,SaveLin
ePosCARDINAL BEGIN SaveLineLenLineLen SaveLinePosLinePos iEndofWindow-Thisy+
1 GetPosition(CurFilePtr,p) SetLi RELSE EndofWindowScreenDepth-2 END END
ChangeWindow PROCEDURE ResetScreenPos BEGIN IF CurrentWindow0 THEN Thisxcur
xCurrentWindow ThisycuryCurrentWindow ResetPos END END ResetScreenPos PROCE
DURE MoveWindow(from,toCARDINAL) VARbBOOLEAN BEGIN curxtocurxfrom curytocury
from LeftMargintoLeftMarginfrom WindowFiletoWindowFilefrom bLabelOp(FilesWind
owFileto,TRUE,CHR(to)) END MoveWindow PROCEDURE ElideWindow(WindowND (chTAB) T
HEN DelChars(CurFilePtr,1) CH10ch InsChars(CurFilePtr,CH1,1) bBackOneChar(Cu
rFilePtr) Write(ch) ResetPos Right UpdatedCurrentFileTRUE ELSE DelOneChar
InsOneChar(ch) END ELSE InsOneChar(ch) END END OverWrite PROCEDURE Up
BEGIN IF ThisyStartofWindow THEN ScrollTextUp END LineMove(-1) FileLimitlin
esmoved0 IF (linesmoved0) AND (ThisyStartofWindow) AND NOT ReDrawn THEN DEC(T
hisy)N Right END END FindWord PROCEDURE Down BEGIN LineMove(1) FileLimitlin
esmoved0 IF linesmoved0 THEN IF (ThisyEndofWindow) THEN INC(Thisy) ScrollTex
tDown DEC(Thisy) ResetPos ELSIF NOT ReDrawn THEN INC(Thisy) ResetPos END
END END Down PROCEDURE RedoLine BEGIN Gotoxy(0,Thisy) SetLinePos(0) W
riteLine ChangePos END RedoLine PROCEDURE InsOneChar(chCHAR) VARCH1ARRAY0.
.0 OF CHAR BEGIN ReDrawnFALSE MarkAsUpd ResetPos END END Up PROCEDURE UpS
creen BEGIN LineMove(1-INTEGER(LinesPerWindow)) END UpScreen PROCEDURE DownS
creen BEGIN LineMove(LinesPerWindow-1) END DownScreen PROCEDURE Top BEGIN
LinePos0 LineMove(-16736) END Top PROCEDURE Bottom BEGIN LinePos999 LineMo
ve(16736) END Bottom PROCEDURE FarLeft BEGIN IF CurrentLeftMargin0 THEN Ch
angeMargin(-INTEGER(CurrentLeftMargin)) END SetLinePos(0) LinePos0 ChangePos
END FarLeft PROCEated CH10ch InsChars(CurFilePtr,CH1,1) INC(LinePos) INC(
LineLen) IF chCR THEN CH10LF InsChars(CurFilePtr,CH1,1) ResetPos DoScreenCh
ange(DelEol) IF ThisyEndofWindow THEN (*ScrollTextDown*) ScrollWindowDown(Sta
rtofWindow,EndofWindow) DEC(Thisy) END Gotoxy(0,EndofWindow) ScrollWindowUp(
Thisy+1,EndofWindow) ResetPos INC(Thisy) ResetPos LinePos0 RedoLine ELSIF
chTAB THEN RedoLine ELSE IF Thisx(ScreenWidth-DURE FarRight BEGIN SetLinePos
(0) LinePosLineLen ChangePos END FarRight PROCEDURE ChangeWindow(NoINTEGER)
VARbBOOLEAN BEGIN IF CurrentWindow0 THEN curxCurrentWindowThisx curyCurrent
WindowThisy bLabelOp(CurFilePtr,TRUE,CHR(CurrentWindow)) END CurrentWindowNo
IF CurrentWindowWindows THEN CurrentWindowWindows END IF CurrentWindow0 THEN
(*set up a pointer to the current file to save index calculation every time
the file is referenc1) THEN ChangeMargin(32) END IF NOT ReDrawn THEN IF Lin
ePosLineLen THEN bBackOneChar(CurFilePtr) WritePartLine(CurrentLeftMargin+This
x+1) INC(Thisx) bForwardOneChar(CurFilePtr) ELSE Write(ch) INC(Thisx) END
END END ResetPos END InsOneChar PROCEDURE DelOneChar BEGIN MarkAsUpdated
chGetCurrentChar(CurFilePtr) IF LinePosLineLen THEN i2 ELSE i1 END DelChars(
CurFilePtr,i) IF i2 THEN IF ThisyEed*) CurrentFileWindowFileCurrentWindow Cu
rFilePtrPEditFile(ADR(FilesCurrentFile)) bLabelOp(CurFilePtr,FALSE,CHR(CurrentW
indow)) ThisxcurxCurrentWindow ThisycuryCurrentWindow CurrentLeftMarginLeftMa
rginCurrentWindow SetLinePos(0) ChangePos i(ScreenDepth-Windows) DIV Windows
StartofWindowCARDINAL(i+1)*(CurrentWindow-1) ELSE StartofWindow0 i0 END
IF CurrentWindowWindows THEN EndofWindowStartofWindow+CARDINAL(i-1) ndofWindow
THEN INC(Thisy) iLinePos RemoveLine LinePosi DEC(Thisy) RedoLine END E
LSE DEC(LineLen) WritePartLine(CurrentLeftMargin+Thisx+1) END (*ELSIF chTAB
THEN RedoLine ELSE LineLenLineLen-1 DoScreenChange(DelChar) END*) ResetPos
END DelOneChar PROCEDURE OverWrite(chCHAR) VARCH1ARRAY0..0 OF CHAR BEGIN C
H10GetCurrentChar(CurFilePtr) IF (CH10CR) AND (chCR) AND (CH101ax) THEN IF (CH
10TAB) A RndowINTEGERVAR curx,curyCARDINAL) BEGIN Retrline(f,len,charsin,pos,
moved,0) linepos0 FOR ic0 TO charsin DO ReadNextChar(pos,ch) IF ch09x THEN l
ineposIAND(linepos+8,0fff8h) ELSE INC(linepos) END END LeftMarg0 WHILE linep
os(LeftMarg+ScreenWidth) DO LeftMargLeftMarg+32 END LeftMarginwindowLeftMarg
END SetLeftMarg PROCEDURE DisplayFile(fEditFilewindowINTEGERVAR curx,curyCARDI
NAL) (*redisplay as much text as will fit in the window for th (*redisplay
as much text as will fit in the window for the given file starting at the curr
ent position in the file curx and cury return the screen co-ordinates for the
current position in the file*) PROCEDURE SetLeftMarg(fEditFilewindowINTEGER
VAR curx,curyCARDINAL) (*Set up left margin of a newly opened file *) PROCED
URE DisplayError VARWindowsCARDINAL LinesPerWindowCARDINAL END EditDisplay.
NoINTEGER) BEGIN FOR iWindowNo+1 TO INTEGER(Windows) DO MoveWindow(i,i-1) EN
D DEC(Windows) CurrentWindow0 END ElideWindow PROCEDURE MakeWindow BEGIN I
NC(Windows) MoveWindow(CurrentWindow,Windows) END MakeWindow PROCEDURE Search
(ReplaceARRAY OF CHARRLenINTEGERLenCARDINAL)BOOLEAN (*search for string and r
eplace if found*) VARbBOOLEAN FoundBOOLEAN BEGIN bLen128 IF b THEN LenLen-1
28 END FoundFindString(CurFilePtr,b) IF Found AND (RLenIMPLEMENTATION MODULE E
ditDisplay (*Display part of a file being edited*) FROMSCREENIO IMPORT Gotoxy,
ScreenControl, MadeChange,ScreenWidth,ScreenDepth FROM Terminal IMPORT WriteSt
ring,Write,WriteLn,Read FROM MakeEdits IMPORT Position,Retrline,ReadNextChar,Er
rorList,ErrorCount,LabelOp FROMEditCont IMPORT LeftMargin,Files,CurrentWindow,C
urrentFile,Thisx,Thisy, curx,cury,ReDisplay FROM IntLogic IMPORT IAND FROMFil
es IMPORT Lookup,Close,FILE,ReadBlock FROMSYSTEM IMPORT ADR CONST0) THEN Mark
AsUpdated DelChars(CurFilePtr,Len) InsChars(CurFilePtr,Replace,RLen) bBackOn
eChar(CurFilePtr) END ReDisplay RETURN Found END Search PROCEDURE GoToLabel
(chCHAR) BEGIN IF LabelOp(CurFilePtr,FALSE,ch) THEN ReDisplay ELSE ErrorMes
sage(' Label not defined',' ') ResetPos END END GoToLabel BEGIN CurrentWind
ow0 CurrentFile0 CurFilePtrPEditFile(ADR(Files1)) END EditControl. EOF1ax
PROCEDURE ErrorMessage(s1,s2ARRAY OF CHAR) (*Display error message at bott
om of screen*) VAR iINTEGER BEGIN Gotoxy(0,ScreenDepth-1) ScreenControl(Ring
Bell) ScreenControl(DelEol) WriteString(s1)WriteString(s2) END ErrorMessage
PROCEDURE SetWindows(iINTEGER) (*set number of edit windows in use - you must
refresh the entire screen with calls to DisplayFile after a call to this rout
ine*) VARj,kCARDINAL BEGIN Windowsi ScreenControl(ClearScreen) !"#$%&'()
*+023456789 PROCEDURE DoMenuOp PROCEDURE Open(fnFileNamePosCARDINAL) PROCEDUR
E GetString(VAR sARRAY OF CHARVAR lenCARDINALpromptARRAY OF CHAR) END DoMenu.
ons are supplied. SCREENIO.OSB is for the Osborne 1, SCREENIO.MBE is for the M
icroBee, and SCREENIO.EAR is for the Earth IF Windows1 THEN LinesPerWindow(Scr
eenDepth-Windows) DIV Windows ELSELinesPerWindowScreenDepth-1 END FOR j2 TO Wi
ndows DO Gotoxy(0,(LinesPerWindow+1)*(j-1)-1) ScreenControl(StartGraph) FOR k
1 TO ScreenWidth DO ScreenControl(Horizontal) END ScreenControl(EndGraph) E
ND END SetWindows (*put a line between the windows*) VARchCHAR posPosition
charsin,icINTEGER len,movedINTEGER linepos,LeftMargCARDINAL PROCEDURE SetLe
ftMarg(fEditFilewiDEFINITION MODULE EditDisplay (*Display part of a file being
edited*) FROM ScreenIO IMPORT Edits FROM MakeEdits IMPORT EditFile VARErro
rOrdinalCARDINAL PROCEDURE ErrorMessage(s1,s2ARRAY OF CHAR) (*Display error
message at bottom of screen*) PROCEDURE SetWindows(iINTEGER) (*set number
of edit windows in use - you must refresh the entire screen with calls to Displ
ayFile after a call to this routine*) PROCEDURE DisplayFile(fEditFilewindowI
NTEGERVAR curx,curyCARDINAL) R x,Thisy)*) Gotoxy(Thisx,Thisy) curxC
urrentWindowThisx curyCurrentWindowThisy END DisplayError BEGIN Windows0 EN
D EditDisplay. ftMargin0 THEN ChangeMargin(-INTEGER(CurrentLeftMargin)) END
Thisx0 ResetPos LinePos0 SetLinePos(0) EN RETURN 0 END FOR kk-1 TO 0 BY -1
DO ii+ORD(bk) END RETURN i END Count PROCEDURE WriteCard(iCARDINAL) VARtA
RRAY0..3 OF CHAR j,kCARDINAL BEGIN kHIGH(t) WHILE i0 DO ji DIV 10 tkCHR(OR
D('0')+i-10*j) ij DEC(k) END FOR kk+1 TO HIGH(t) DO Write(tk) END END Write
Card BEGIN IF ErrorOrdinalErrorCount THEN RETURN END Gotoxy(0,ScreenDepth-1)
ErrorNumberErrorListErrorOrdinal.ErrorNum ScreenControl(DelEol) WriteStrine g
iven file starting at the current position in the file*) VARi,j,k,lineposCARDIN
AL movedoneINTEGER startlineINTEGER (*first line of window*) BEGIN LeftMargL
eftMarginwindow startline(INTEGER(LinesPerWindow)+1)*(window-1) Gotoxy(0,start
line) (*first line of this window*) i0(*line within window*) kLinesPerWindo
w DIV 2 Retrline(f,len,charsin,pos,moved,-k) LOOP (*check if this is the
line we were positioned to upon entry*) linepos0 j0 LOg('Error ') WriteCar
d(ErrorNumber) WriteString('(')WriteCard(ErrorOrdinal+1) WriteString(' of ')Wr
iteCard(ErrorCount) WriteString(') ') Lookup(f,'ERRMSG.DAT ',reply) (*Looku
p opens the file for input/output reply returns zero if no file is found a
device name can be used in front of the file name In fact, you can use a non-
disc file name (eg PUN or CON) but if you do this, you must do your IO through
the module Streams (or InOut, which calls streams), as the IO to tOP IF (mov
ed0) AND (jCARDINAL(charsin)) THEN curxlinepos-LeftMarg curyi+CARDINAL(startli
ne) END INC(j) IF jCARDINAL(len) THEN EXIT END (*check for cursor line*)
ReadNextChar(pos,ch) IF ch09x THEN REPEAT INC(linepos) IF (lineposLeftMar
g) AND (linepos(ScreenWidth+LeftMarg)) THEN Write(' ') END UNTIL IAND(lin
epos,7)0 ELSIF chEOF THEN EXIT ELSE INC(linepos) IF (lineposLeftMarg) he
serial devices is performed by that module (it calls Files to do IO to disc d
evices) *) IF reply0 THEN(*OK - file found*) (*read the first 1 or two bl
ocks of the error message file, countin the characters preceding the erro
r emssage we want *) ReadBlock(f,ADR(b),0,128,reply) jErrorNumber IF ErrorNum
ber128 THEN iCount(128) ReadBlock(f,ADR(b),1,128,reply) jj-128 ELSE i0 END
ii+Count(j-1) LengthORD(bj-1) ji DIVAND (linepos(ScreenWidth+LeftMarg)) THEN
Write(ch) END END(*IF chvarious things*) END (*inner loop*) INC(i) IF l
inepos(ScreenWidth+LeftMarg) THEN ScreenControl(DelEol) END IF iLinesPerWin
dow THEN EXIT ELSE WriteLn linepos0 END INC(moved) Retrline(f,len,ic,pos,
movedone,1) IF movedone0 THEN FOR ii+1 TO LinesPerWindow DO ScreenControl(Del
Eol) WriteLn END EXIT END END(*LOOP*) END DisplayF 128 (*block to read*)
ii - 128*j (*offset of first character in block*) ReadBlock(f,ADR(b),j+2,128,re
ply) FOR k0 TO Length-1 DO IF i128 THEN INC(j) ReadBlock(f,ADR(b),j+2,128,r
eply) i0 END tkbi INC(i) END tLength0c WriteString(t) ELSE WriteString
(' Could not open error messages file') END blLabelOp(FilesCurrentFile,FALSE,C
HR(ErrorOrdinal+0b0h)) ReDisplay (*DisplayFile(FilesCurrentFile,CurrentWindow,
Thisile PROCEDURE DisplayError (*The error message file contains the message
s, The first two blocks give the lengths of the error messages The remainin
g blocks give the text of the error messages *) TYPETextARRAY0..63 OF CHAR V
ARfFILE(*FILE is a type exported from the module Files*) bARRAY 0..127 OF CHA
R i,j,k,LengthCARDINAL tText ErrorNumberCARDINAL replyINTEGER blBOOLEAN PR
OCEDURE Count(kCARDINAL)CARDINAL VARiCARDINAL BEGIN i0 IF k0 THE Ran be ope
ned*) Lookup(datfile,'EDITSTAT.DAT ',reply) IF reply0 THEN Create(datfile,'ED
ITSTAT.DAT',reply) IF reply0 THEN Gotoxy(0,ScreenDepth-1) WriteString(' Coul
d not open status file') openedFALSE END END BlockNo60000(*set impossibly bi
g*) END EditStatus. dowFiletoWindowFilefrom bLabelOp(FilesWindowFileto,TRUE
,CHR(to)) END MoveWindow PROCEDURE ElideWindow(Windowck(BytesPerBlock-TSIZE(CA
RDINAL)) DIV TSIZE(FileRec) FillSizeBytesPerBlock-TSIZE(CARDINAL)-EntriesPerBlo
ck*TSIZE(FileRec) TYPEBlockRECORD EntriesCARDINAL(*in this block*) FileEntryA
RRAY0..EntriesPerBlock-1 OF FileRec FillerARRAY1..FillSize OF CHAR END VARd
atfileFILE BlockNoCARDINAL EntryNoCARDINAL BufferBlock fFILE replyINTEGER
openedBOOLEAN chCHAR PROCEDURE WriteFile BEGIN SetBlock(datfile,BlockNo) Se
qWriteBlock(datfile,ADR(Buffer),BytesPerBlock,reply) Close(datfile) Lookup(dat
file,'EDITSTAT.DAT ',reply) END WriteFile PROCEDURE MakeEntry BEGIN WITH B
uffer.FileEntryEntryNo DO Filefnf.f.fcbfn Fileftf.f.fcbft FilePos0 END Writ
eFile END MakeEntry PROCEDURE ExamineBlock BEGIN EntryNo0 WHILE (EntryNoB
uffer.Entries) AND ( (Buffer.FileEntryEntryNo.Filefnf.f.fcbfn) OR (Bu
ffer.FileEntryEntryNo.Fileftf.f.fcbft)) DO INC(EntryNo) END IF EntryNoBuffer.
EntrDEFINITION MODULE EditStatus (*Save/return edit status for a file The
file EDITSTAT.DAT on the default drive is always used for edit statii*) FROM F
iles IMPORT FILE FROMCPM IMPORT alfa,exten PROCEDURE GetPosition(FnFILE)CARDI
NAL (*get file position (character number)*) PROCEDURE SetPosition(FnFILEp
osCARDINAL) (*set file position*) END EditStatus. ies THEN IF Buffer.Entri
esHIGH(Buffer.FileEntry) THEN INC(Buffer.Entries) MakeEntry ELSEEntryNo60000
END END END ExamineBlock PROCEDURE Search (*Find entry - create entry if n
eccessary*) BEGIN IF BlockNo60000 THEN ExamineBlock ELSE EntryNo60000 END IF
EntryNo60000 THEN SetBlock(datfile,0) BlockNo0 END WHILE EntryNo60000 DO S
eqReadBlock(datfile,ADR(Buffer),BytesPerBlock,reply) IF replyBytesPerBlock THEN
Buffer.Entries1 EntryNo0 MakeEntry ELSE ExamineBlock END IF EntryNo60000
THEN INC(BlockNo) END END END Search PROCEDURE GetPosition(FnFILE)CARDIN
AL BEGIN fFn IF opened THEN Search RETURN Buffer.FileEntryEntryNo.FilePos
ELSERETURN 0 END END GetPosition PROCEDURE SetPosition(FnFILEPosCARDINAL) B
EGIN fFn IF opened THEN Search Buffer.FileEntryEntryNo.FilePosPos WriteFile
END END SetPosition BEGIN openedTRUE(*assume file cIMPLEMENTATION MODULE
EditStatus (*Save/return edit status for a file The file EDITSTAT.DAT on t
he default drive is always used for edit statii*) FROM Files IMPORT Lookup,Cre
ate,Close,SeqReadBlock,SeqWriteBlock,SetBlock, ConvertFileName FROM ScreenIO I
MPORT Gotoxy,ScreenDepth FROM SYSTEM IMPORT ADR,TSIZE FROM Terminal IMPORT Wri
teString TYPEFileRecRECORD Filefnalfa Fileftexten FilePosCARDINAL END CO
NSTBytesPerBlock128(*Bytes per disc block*) EntriesPerBlo RGIN IF InsertMode
THEN InsOneChar(ch) ELSE OverWrite(ch) END END InsChar PROCEDURE BreakLin
e BEGIN InsOneChar(0dx) Left END BreakLine VARLenCARDINAL0 ReplaceStringAR
RAY0..60 OF CHAR RLenINTEGER PROCEDURE DoFind BEGIN (* the passing of the
backwards status is a real kludge which was introduced as a quick fix while
I was a long way from home, to avoid having to update my work discs at h
ome with too much stuff *) IF Len0 THEN IF Backcro,ReadAChar,Macro,LearnMac
ro,PrintMacros, CheckInterrupt,Found (*Act on commands entered from the keyboa
rd This module handles keyboard despatch during file editting*) TYPETabAr
rayARRAY 0x..7fx OF PROC TablePOINTER TO TabARRAY VAR chCHAR MainTableTabArr
ay interpretingBOOLEAN ParValueINTEGER0 GroupOfCodesARRAY1..30 OF CHAR Group
Len,GroupPosCARDINAL iCARDINAL InsertModeBOOLEANTRUE NoBellBOOLEANFALSE Back
wardsBOOLEANFALSE PROCEDURE BellDEFINITION MODULE Keyboard (*Act on comman
ds entered from the keyboard This module handles keyboard despatch during fi
le editting*) PROCEDURE Interpret (*Start keyboard interpretation (effecti
vely edit mode)*) END Keyboard. e,ReadNextChar,ErrorList,ErrorCount,LabelOp F
ROMEditCont IMPORT LeftMargin,Files,CurrentWindow,CurrentFile,Thisx,Thisy, curx
,cury,ReDisplay FROM IntLogic IMPORT IAND FROMFiles IMPORT Lookup,Close,FILE,R
eadBlock FROMSYSTEM IMPORT ADR CONST (*ring the bell - primarilly used for
un-assigned keys*) BEGIN IF NOT NoBell THEN RingBell END ParValue0 END Bel
l PROCEDURE QuickFORWARD PROCEDURE EscapeCount (*escape character processin
g if followed by number, repeats next key given number of times *) VARiINTE
GER BEGIN ParValue0 LOOP IF (ch'0') AND (ch'9') THEN ParValue10*ParValue+(O
RD(ch)-ORD('0')) ELSE EXIT END ReadAChar(ch) END(*LOOP*) IF (ch1bx) OR
(ch0ax) THEN (*escape something*) ReadAChar(ch) Macro(ch,ParValue) ParValue0
ELSIF ch11x THEN Quick ELSE FoundTRUE (*Set false as sign of failure *) WHIL
E (ParValue0) AND Found DO IF CheckInterrupt() THEN ParValue0 ELSE DEC(ParV
alue) IF chCHR(127) THEN chCHR(ORD(ch)-128) END MainTablech END END ParValu
e0 END END EscapeCount PROCEDURE Escape VAR SaveBackBOOLEAN BEGIN ReadACha
r(ch) IF ch'-' THEN BackwardsTRUE ReadA(*Keyboard despatcher and some editing
functions Copyright (C) Dave Moore FTL Modula-2 1986 Modifications 20 Ju
ly 86 Handling of backwards changed so that direction of find remains same u
nless explicit count entered. This allows use of just L for backwards search
es *) IMPLEMENTATION MODULE Keyboard FROMScreenDummy IMPORT RingBell,Go
toxy,ClearScreen,OutputToScreen FROMEditDisplay IMPORT ErrorMessage,Windows,Dis
playError,ErrorOrdinal FROMEditControl IMPORT InsOneChChar(ch) EscapeCount
ELSIF (ch'0') AND (ch'9') THEN BackwardsFALSE EscapeCount ELSIF ch04x THEN D
efMacroRedisplay ELSIF ch0cx THEN LearnMacroRedisplay ELSIF ch10x THEN ClearSc
reenPrintMacrosRedisplay ELSE Macro(ch,1) END END Escape PROCEDURE Endinterpr
et (*End keyboard interpretation Note that this module can be assigned to
a key so that you can exit from edit mode gracefully *) BEGIN interpretingFA
LSE END Endinterpret PROCEDURE InsChar BEar,DelOneChar,DelToEOL,DelFullLine,
Left,Right,Down,Up,UpScreen,DownScreen,Top,Bottom, CurrentWindow,FilesOp
ened,curx,cury,ChangeWindow, ScrollUp,ScrollDown,ResetScreenPos, Top,Bot
tom,FarLeft,FarRight,Files,Search,OverWrite, FindWord,ReDisplay,GoToLabel,U
pdated,CurrentFile, Thisx,Thisy,WindowFile,MovedOK FROMMakeEdit IMPORT Prep
areString,FindString,LabelOp,BlockCopy,BlockDel, ErrorCount FROMDoMenu IMPORT
GetString,Redisplay FROMMacrosIMPORTDefMa R Left(*Ctrl H (Backsp
ace)*) MainTable1axScrollDown(*Ctrl Z*) MainTable03xDownScreen(*Ctrl C*) Main
Table12xUpScreen(*Ctrl R*) MainTable14xDelWord(*Ctrl T*) MainTable06xForwardWo
rd(*Ctrl F*) MainTable0axEscape(*treat line feed as if escape*) MainTable01xBa
ckwardWord(*Ctrl A*) MainTable11xQuick(*Ctrl Q*) MainTable02xWindow(*Ctrl B*)
MainTable17xScrollUp(*Ctrl W*) MainTable0bxDefLabel(*Ctrl K*) MainTable7fxDel
BacoError(ErrorOrdinal) '0'..'9'GotoError(ORD(ch)-ORD('0')) END END MoveToErr
or PROCEDURE Quick VARFirstBOOLEAN BEGIN FirstTRUE ReadAChar(ch) chCAP(ch)
IF ParValue0 THEN ParValue1 END WHILE ParValue0 DO CASE ch OF 'E',05x
MoveToError 'Y',19xDelToEOL 'D',04xFarRight 'S',13xFarLeft '
R',12xTop 'C',03xBottom 'F',06xIF First THEN Find ELSE DoFind END
'A',01xIF First THEN Replace ELSE DoFind END 'G',07xwards THEN FoundSearc
h(ReplaceString,RLen,Len+128) ELSE FoundSearch(ReplaceString,RLen,Len) END END
END DoFind PROCEDURE Find VARSearchStringARRAY0..60 OF CHAR BEGIN GetStrin
g(SearchString,Len,'Find') IF Len0 THEN PrepareString(SearchString,Len) RLen-
1 DoFind ELSE ReDisplay END END Find PROCEDURE Replace VARSearchStringARRA
Y0..60 OF CHAR LCARDINAL BEGIN GetString(SearchString,Len,'Alter') IF Len0
THEN PrepareString(SearchStriNoBellNOT NoBell 'K','B','0'..'9'GoToLabel(c
h) END FirstFALSE DEC(ParValue) END END Quick PROCEDURE Window VAR
iCARDINAL BEGIN iCurrentWindow+1 IF iWindows THEN i1 END ChangeWindow(i) Re
Display END Window PROCEDURE DelBack BEGIN Left IF MovedOK THEN DelOneChar
END END DelBack PROCEDURE Interpret (*Start keyboard interpretation*) BEGI
N ResetScreenPos interpretingTRUE ParValue0 WHILE interpreting DO ReadAChar
(cng,Len) GetString(ReplaceString,L,'To ') RLenL DoFind ELSE ReDisplay E
ND END Replace PROCEDURE SetUpdated BEGIN UpdatedCurrentFileTRUE END SetUpd
ated PROCEDURE DelABlock(iCARDINAL)BOOLEAN VAR bBOOLEAN jCARDINAL BEGIN bBl
ockDel(Filesi) jCurrentFile ChangeWindow(i) Redisplay ChangeWindow(j) RETUR
N b END DelABlock PROCEDURE DefLabel VARiCARDINAL b,rBOOLEAN BEGIN ReadACh
ar(ch) iCurrentWindow (*If control B'h) IF chCHR(127) THEN chCHR(ORD(ch)-12
8) END MainTablech END END Interpret PROCEDURE FlipInsert BEGIN InsertMo
deNOT InsertMode END FlipInsert PROCEDURE DelWord BEGIN FindWord(FALSE,TRU
E) END DelWord PROCEDURE ForwardWord BEGIN FindWord(FALSE,FALSE) END Forw
ardWord PROCEDURE BackwardWord BEGIN FindWord(TRUE,FALSE) END BackwardWord
(*Initialise a keyboard dispatch tables*) BEGIN FOR ch0x TO 7fx DO MainTab
lechBell END MainTabs intervene, change source window*) WHILE ch02x (*CTRL B
*) DO IF iWindows THEN i1 ELSE INC(i) END Gotoxy(curxi,curyi) ReadAChar(ch)
END chCAP(ch) rFALSE iWindowFilei CASE ch OF 'C',03xbBlockCopy(Filesi,Files
CurrentFile) 'Y',19xbDelABlock(i) 'V',16xbBlockCopy(Filesi,FilesCurrentFil
e) IF b THEN bDelABlock(i) END ELSE b LabelOp(FilesCurrentFile,TRUE,ch)
rTRUE END IF b THEN IF NOT r le1bxEscape (*printable characters are insert
ed as is *) FOR ch' ' TO '' DO MainTablechInsChar END MainTable0dxInsChar M
ainTable09xInsChar (*cursor control keys*) MainTable13xLeft MainTable18xD
own MainTable04xRight MainTable05xUp (*Other control keys*) MainTable07x
DelOneChar(*Ctrl G*) MainTable19xDelFullLine(*Ctrl Y*) MainTable16xFlipInsert(
*Ctrl V*) MainTable0exBreakLine(*Ctrl N*) MainTable08xTHEN ReDisplaySetUpdated
END ELSE IF r THEN ErrorMessage('Bad label',' ') ELSE ErrorMessage('Block Un
defined',' ') END Gotoxy(Thisx,Thisy) END END DefLabel PROCEDURE MoveToError
PROCEDURE GotoError(iCARDINAL) BEGIN IF iErrorCount THEN ErrorOrdinaliDispla
yError ELSE ErrorMessage(' No such error ',' ') END END GotoError BEGIN
ReadAChar(ch) chCAP(ch) CASE ch OF 'N',0exGotoError(ErrorOrdinal+1) 'P',10xG
otoError(ErrorOrdinal-1) 'C',03xGot Rpart *) WHILE (KeyPosNIL) AND (KeySeq
i' ') DO SearchToNext(KeySeqi) IF KeyPosNIL THEN INC(i) LastKeyPosKeyPos
LearnKeyKeyPos KeyPosKeyPos.NextChar END END IF KeySeqi' ' THEN (*must alre
ady be in table*) RETURN END (* Assuming this is not the first entry, LastK
eyPos points to the entry to which we should attach this new character *)
WHILE (KeySeqi' ') DO NEW(KeyPos) WITH KeyPos DO chKeySeqi NextIMPLEMENTATI
ON MODULE Macros FROMDoMenu IMPORT GetString,Redisplay FROMStorage IMPORT ALL
OCATE,DEALLOCATE FROMTerminal IMPORT BusyRead,WriteString,WriteLn,Write FROMFi
les IMPORT FILE,SeqReadBlock,SeqWriteBlock,Lookup,Create,Close FROMSYSTEM IMPOR
T ADR,TSIZE FROMEditDisplay IMPORT ErrorMessage FROMFastMove IMPORT Moveup FR
OMScreenDu IMPORT OutputToScreen CONSTBlockLen128 ESC1bx TYPE KeyDefRECORD
Length1..61 CommCharsARRAY1..20 OF CHAR END PKeyDefPOINk(*Del *) MainTable0c
xDoFind(*Ctrl L*) MainTable1fxDelBack(*- on Osborne 1*) (*The next key, assi
gned to Endinterpret is called, 'Menu' in the documentation. That is, to proces
s a menu, we drop out of edit mode. The calling routine (Me) the calls the men
u routine - not this module*) MainTable0fxEndinterpret(*Ctrl O*) END Keyboar
d. DOC J XScTER TO KeyDef MacroPointRECORD PosCARDINAL DefPKeyDef CountINTE
GER END PKeyChainPOINTER TO KeyChain KeyChainRECORD chCHAR NextAltPKeyChain
(*next alternative*) CASE TerminatorBOOLEAN OF TRUE (*terminates a key sequen
ce *) DefPKeyDef FALSE (*in the moddle of a key sequence *) NextCharPKeyChain
END (*CASE*) END(*RECORD*) VAR chCHAR CommandsARRAY''..'Z' OF PKeyDef M
acroDepthCARDINAL0 MacroStackARRAY1..5 OF MacroPoint LearnchCHAR LearnLenCARD
INAL LearningBOOLEANFALSE TextARRAY1..60 OF CHAR iCARDINAL KeySeqARRAY1..10
OF CHAR KeyChainBasePKeyChainNIL(*base of table of key defs*) LastKeyPos,KeyPo
sPKeyChain(*pointers used for searching*) LearnKeyPKeyChain(*pointer to key bei
ng defined*) (*keep a circular buffer of characters while matching is happen
ing*) inCARDINAL1 outCARDINAL1 lookCARDINAL BufferARRAY1..11 OF CHAR Show
ChangeBOOLEAN DEFINITION MODULE Macros (*A simple macro processor for the ed
itor Can probably be easily hacked for other purposes*) VARFoundBOOLEANTRU
E (*Found is a variable which, if set to false, will abort all macros *) PR
OCEDURE LearnMacro PROCEDURE DefMacro (*define a macro *) PROCEDURE ReadA
Char(VAR chCHAR) (*read next character - from macro if one active - from
terminal if not*) PROCEDURE Macro(chCHARrepeatINTEGER) (*start macro with
given character value PROCEDURE SearchToNext(chCHAR) (*Search for the charac
ter ch KeyPos points to the first table to examine for a match *) BEGIN
WHILE (KeyPosNIL) AND (KeyPos.chch) DO KeyPosKeyPos.NextAlt END END SearchToN
ext PROCEDURE BuildKeySeq (*Enter a key sequence into the key sequence tree
On entry, KeySeq contains sequence to build On exit, KeyPos points to entr
y for macro pointer*) BEGIN i1 KeyPosKeyChainBase LastKeyPosNIL (* First sc
an down common (must be alpha)*) PROCEDURE StoreMacros PROCEDURE PrintMacros
PROCEDURE CheckInterrupt()BOOLEAN END Macros. 00 MOD L ' ELSERETURN 0 END
END GetPosition PROCEDURE SetPosition(FnFILEPosCARDINAL) BEGIN fFn IF open
ed THEN Search Buffer.FileEntryEntryNo.FilePosPos WriteFile END END SetPosi
tion BEGIN openedTRUE(*assume file c R(*Learn a macro definition called at
either end of definition*) BEGIN IF NOT Learning THEN GetDefChar Learning
TRUE LearnLen0 ELSE LearnLenLearnLen-2 DefMacroText LearningFALSE END END
LearnMacro PROCEDURE DefMacro BEGIN GetDefChar IF (Learnch'A') AND (Learnch
'Z') OR (LearnchESC) THEN GetString(Text,LearnLen,'Macro') DefMacroText END
END DefMacro PROCEDURE Macro(chCHARrepeatINTEGER) VARiCARDINAL BEGIN chCAP(c
h) IF the characters which have been read ahead By ReadAChar in an attempt to
resolve a macro When ReadAChar is entered, if this buffer is not empty, the
first character is to be looked up to see if it is a start of a key definition
*) PROCEDURE IncPointer(VAR iCARDINAL) BEGIN IF iHIGH(Buffer) THEN i0 END IN
C(i) END IncPointer BEGIN lookout IF SpecialSequence THEN (* is used fo
r function/arrow keys as a macro so that repeat counts can still be used*)
Result'CharNIL TerminatorFALSE IF LastKeyPosNIL THEN NextAltLastKeyPos.Next
Char LastKeyPos.NextCharKeyPos ELSE NextAltKeyChainBase KeyChainBaseKeyPos
END END LastKeyPosKeyPos INC(i) END LearnKeyKeyPos END BuildKeySeq PRO
CEDURE WaitForCh BEGIN IF NOT ShowChange THEN ShowChangeTRUE OutputToScreen(
TRUE) Redisplay END REPEAT BusyRead(ch) UNTIL ch0x END WaitForCh PROCEDUR
E CheckInterrupt()BO' SpecialSequenceFALSE RETURN END KeyPosKeyChainBase LO
OP IF inlook THEN ResultBufferlook IncPointer(look) ELSE GetAChar(Result)
BufferinResult IncPointer(in) lookin END SearchToNext(Result) IF KeyPosNIL
THEN ResultBufferout IncPointer(out) RETURN END WITH KeyPos DO IF Terminat
or THEN outlook inlook (* we could add the macro directly at this point (
the first verOLEAN (*Check the keyboard for an interupt (Control U) Also,
if Escape has been typed, stop terminal output until another character is type
d*) VARch1CHAR BEGIN BusyRead(ch1) CASE ch1 OF 15xRETURN TRUE 1bx
ShowChangeFALSE OutputToScreen(FALSE) END RETURN FALSE END CheckInterrup
t PROCEDURE GetAChar(VAR ch1CHAR) BEGIN IF MacroDepth0 THEN WaitForCh ch1ch
IF Learning AND (LearnLenHIGH(Text)) THEN INC(LearnLen) TextLearnLension did
so), but that would prevent the use of repeat counts with function/arrow keys
. So instead ESC is returned, where ESC is always the macro we just found*)
Commands''Def SpecialSequenceTRUE ResultESC RETURN ELSE KeyPosNextChar
END END END END ReadAChar PROCEDURE GetDefChar VARTextARRAY1..1 OF CHAR
BEGIN GetString(Text,LearnLen,'Char to define') LearnchCAP(Text1) IF Learnch
ESC THEN ch END ELSE WITH MacroStackMacroDepth DO IF PosDef.Length THEN
DEC(Count) IF CheckInterrupt() OR NOT Found THEN MacroDepth1 Count0 EN
D IF Count1 THEN DEC(MacroDepth) ELSE Pos1 END GetAChar(ch1)
ELSE ch1Def.CommCharsPos INC(Pos) END END END END GetAChar PROCEDURE AddM
acro(pPKeyDefrepeatINTEGER) BEGIN IF (pNIL) AND (MacroDepthHIGH(MacroStack)) T
HEN GetString(KeySeq,LearnLen,'Key to define') BuildKeySeq END END GetDefC
har PROCEDURE DefMacroText VARpPKeyDef BEGIN IF LearnLen0 THEN ALLOCATE(p,T
SIZE(CARDINAL)+LearnLen) IF LearnchESC THEN LearnKey.Defp LearnKey.Terminato
rTRUE ELSE CommandsLearnchp END WITH p DO LengthLearnLen FOR LearnLenLea
rnLen TO 1 BY -1 DO CommCharsLearnLenTextLearnLen END END END END DefMacr
oText PROCEDURE LearnMacro (*make sure that macro is not recursive*) FO
R i1 TO MacroDepth DO IF MacroStacki.Defp THEN ErrorMessage('Recursive macros!
',' ') MacroDepth0 RETURN END END INC(MacroDepth) WITH MacroStackMacroDept
h DO Pos1 Defp Countrepeat END(*WITH*) END(*pNIL etc*) END AddMacro VARSp
ecialSequenceBOOLEANFALSE PROCEDURE ReadAChar(VAR ResultCHAR) (*read next ch
aracter, checking for arrows/function keys in and out point to Rs a label Thi
s label must not be altered unless it is deleted with DelPosition first*) PR
OCEDURE LabelOp(VAR fEditFileDefineBOOLEANchCHAR)BOOLEAN (*Define or set a la
bel ch is a character from the set 0..9,B,K *) PROCEDURE DelChars(VAR fEdit
FilenumberINTEGER) (*delete a number of characters if number is 0, it has th
e following meanings -1 delete to end of line -2 delete entire line -3 delete
remainder of file*) PROCEDURE InsChars(VAR fEditFileVAR SARRAY OF CHAR) Lea
rnchESC KeySeq' ' OutKeySeq(1,KeyChainBase) IF reply0 THEN Blockr
eply0x SeqWriteBlock(F,ADR(Block),BlockLen,reply) END Close(F) END StoreMacr
os PROCEDURE OutCh(chCHAR) BEGIN IF ch' ' THEN Write('')Write(CHR(ORD(ch)+64
)) ELSE Write(ch) END END OutCh PROCEDURE PrintMacros BEGIN FOR ch'A' TO
'Z' DO IF CommandschNIL THEN WITH Commandsch DO OutCh(ch) FOR i1 TO Len
gth DO OutCh(CommCharsi ch' ' THEN chCHR(ORD(ch)+64) END IF (ch'') AND (ch'Z'
) THEN AddMacro(Commandsch,repeat) END END Macro VARFFILE replyINTEGER PRO
CEDURE LoadMacros VARBlockARRAY0..BlockLen-1 OF CHAR BEGIN LOOP SeqReadBlock
(F,ADR(Block),BlockLen,reply) IF replyBlockLen THEN EXIT END reply0 WHILE Blo
ckreply0x DO LearnLenORD(Blockreply) LearnchBlockreply+1 IF LearnchESC THEN
Moveup(ADR(Blockreply+2),ADR(KeySeq),10) BuildKeySeq) END END WriteLn
END END WriteString(' Enter any character to continue ') WaitForCh END P
rintMacros BEGIN FOR ch'' TO 'Z' DO CommandschNIL END ShowChangeTRUE Lookup(
F,'MACROS.DAT ',reply) IF reply0 THEN LoadMacros END END Macros. ) Wurx,
cury,ReDisplay FROM IntLogic IMPORT IAND FROMFiles IMPORT Lookup,Close,FILE,Re
adBlock FROMSYSTEM IMPORT ADR CONST replyreply+10 END replyreply+2 FOR i
1 TO LearnLen DO TextiBlockreply INC(reply) END DefMacroText END END END
LoadMacros PROCEDURE StoreMacros VARBlockARRAY0..BlockLen-1 OF CHAR PROCEDU
RE StoreOneMacro(pPKeyDef) BEGIN IF pNIL THEN WITH p DO IF (reply+Length+14)
BlockLen THEN Blockreply0x SeqWriteBlock(F,ADR(Block),BlockLen,reply) reply0
END BlockreplyCHR(Length) BlocDEFINITION MODULE MakeEdits (*Routines to
edit a file (i.e., actually make changes to the file) D Moore 11 Jan 85*)
FROM Files IMPORT FileName TYPEEditFile Position ErrorRecordRECORD Er
rorNumCARDINAL CharPCARDINAL END ErrorArrayARRAY0..9 OF ErrorRecord VARError
ListErrorArray ErrorCountCARDINAL PROCEDURE OpenFile(VAR fEditFilefnFileName
VAR replyINTEGERPosCARDINAL) (*Load the file into memory If insufficient m
emory, returns replykreply+1Learnch IF LearnchESC THEN Moveup(ADR(KeySeq),ADR(
Blockreply+2),10) replyreply+10 END replyreply+2 FOR i1 TO Length DO Blockr
eplyCommCharsi INC(reply) END END(*WITH p*) END (*IF NIL*) END StoreOneMacr
o PROCEDURE OutKeySeq(CharNoCARDINALpPKeyChain) BEGIN IF pNIL THEN WITH p DO
KeySeqCharNoch IF Terminator THEN StoreOneMacro(Def) ELSE OutKeySeq(CharNo
+1,NextChar) KeySeqCh-3 if file not found, returns reply-2 reply0 if ok, retu
rns blocks read*) PROCEDURE CloseFile(VAR fEditFileVAR replyINTEGER) (*Wri
te out changes to an edit file and close it Done returns false if out of disc s
pace*) PROCEDURE AbandonFile(fEditFile) (*Abandon changes to an edit file*
) PROCEDURE GetPosition(VAR fEditFileVAR pPosition) PROCEDURE SetPosition(VAR
fEditFilepPosition) (*get/set position in a file GetPosition returns the curen
t position DefineLabel definearNo+1' ' END OutKeySeq(CharNo,NextAlt) END EN
D END OutKeySeq BEGIN Learnch'A' WHILE (CommandsLearnchNIL) AND (Learnch'Z')
DO LearnchCHR(ORD(Learnch)+1) END IF Learnch'Z' THEN RETURN END Create(F,'
MACROS.DAT ',reply) IF reply0 THEN WriteString(' could not save macros file')
WriteLn RETURN END IF reply0 THEN RETURN END reply0 FOR Learnch'A' TO 'Z'
DO StoreOneMacro(CommandsLearnch) END (*Now output key sequences* Rlock P
ROCEDURE setcurpos(VAR fEditFile) BEGIN WITH f.CurPos DO WorkingBlock CharPo
sOffset END END setcurpos PROCEDURE savecurpos(VAR fEditFile) BEGIN WITH
f.CurPos DO IF CharPosORD(Working.BlockLen) THEN CharPosWorking.BlockLen EN
D BlockWorking OffsetCharPos END END savecurpos VARiINTEGER PROCEDURE Back
up()BOOLEAN (*back up a character position in the current file returns TRUE
if successful*) BEGIN IF CharPos0 THEN lenINTEGER) (*insert characters*)
PROCEDURE Retrline(VAR fEditFileVAR len,posINTEGER VAR pPositionVAR LinesmovedI
NTEGERLinesINTEGER) (*return information about a line for the given file l
en returns the length of the line pos returns current position in the line (cha
racter number) p returns position of start of line Linesmoved returns number
of lines actually moved - but only if move was negative. Returns negative valu
e lines (input) is number of lines to move from cuIMPLEMENTATION MODULE MakeEdi
ts (*Routines to edit a file (i.e., actually make changes to the file)
D Moore 11 Jan 85*) FROM Files IMPORT FILE,Lookup,Create,SeqReadBlock,SeqWrit
eBlock, MakeBAK,Close FROMStorage IMPORT ALLOCATE,DEALLOCATE,FreeSpace FROMSY
STEM IMPORT ADR,BYTE FROM FastMove IMPORT Moveup,Movedown,Searchup,Searchdown
FROMSetUpCall IMPORT MakeCall IMPORTEditStatus CONSTTextLen140(* must exceed
a block on the disc remaining space is for padding*) rrent line *) PROC
EDURE ReadNextChar(VAR pPositionVAR chCHAR) (*Read next character from a line
p must be a position returned by Retrline or ReadCh - not GetPosition*) PROCE
DURE PrepareString(sARRAY OF CHARlenINTEGER) (*prepare a string for use in a
find command*) PROCEDURE BackOneChar(VAR fEditFile)BOOLEAN PROCEDURE Forward
OneChar(VAR fEditFile)BOOLEAN PROCEDURE FindString(VAR fEditFileBackwardsBOOL
EAN)BOOLEAN (*Actually find the next occurrence of the string BlockSize128(*
characters in a disc block*) HeadRoom512(*minimum head room to leave between st
ack and heap*) CR0dx LF0ax FF0cx EOF1ax TYPEPTextPOINTER TO Text PPosition
POINTER TO Position TextRECORD BlockLenBYTE CharsARRAY0..TextLen-1 OF CHAR N
extPText(*next block*) PredPText(*preceding block*) END PositionRECORD B
lockPText OffsetBYTE END EditFileRECORD fFILE ChainPText CurPosPosition L
abelsARRAY0. Done returns true if one is found*) PROCEDURE GetCurrentChar(VAR
fEditFile)CHAR (*Return character currently positioned to*) PROCEDURE Cal
lWithFile(nameARRAY OF CHARVAR fEditFile) PROCEDURE FileType(VAR fEditFile)CARD
INAL (*Call program with file as parameter*) PROCEDURE BlockCopy(VAR FromFil
e,ToFileEditFile)BOOLEAN PROCEDURE BlockDel(VAR FromFileEditFile)BOOLEAN PROCE
DURE DefineErrors(VAR fEditFile) END MakeEdits. .24 OF Position
(*labels 0 to 9 are k0 to k9 10 is kB 11 is kk 12 through 14 are t
he positions in the windows 15 through 24 are error markers*) END VARDon
eBOOLEAN replyINTEGER (*variables used for text position during move operati
ons etc*) WorkingPText CharPosINTEGER chCHAR posPosition pos1,pos2PPositi
on Charno,CharsreadCARDINAL PROCEDURE NewBlock BEGIN NEW(Working) Working
.PredNIL Working.NextNIL END NewB( /+ ,-!s678D PrintMacros BEGIN FOR ch'' TO
'Z' DO CommandschNIL END ShowChangeTRUE Lookup(F,'MACROS.DAT ',reply) IF rep
ly0 THEN LoadMacros END END Macros. ) W02xWindow(*Ctrl B*) MainTable17xS
crollUp(*Ctrl W*) MainTable0bxDefLabel(*Ctrl K*) MainTable7fxDelBac Rcharacte
r position in the current file*) BEGIN INC(CharPos) IF CharPosINTEGER(Working
.BlockLen) THEN IF Working.NextNIL THEN WorkingWorking.Next CharPos0 ELSE
RETURN FALSE END END (*CharPosBlockLen*) RETURN Working.CharsCharPosEOF END
Advance PROCEDURE InsideBlock(VAR FEditFile)BOOLEAN (*Check if current posi
tion is inside block *) VARbPText CouldBeBOOLEAN BEGIN setcurpos(F) IF (F.L
abels10.BlockNIL) OR (F.Labels11.BlocSeqWriteBlock(f.f,ADR(b),BlockSize, reply)
pos0 IF replyBlockSize THEN EXIT END END (*IF*) bposCharsi INC(pos) END(*
FOR*) IF Workingf.CurPos.Block THEN EditStatus.SetPosition(f.f,Charno+OR
D(f.CurPos.Offset)) END CharnoCharno+ORD(BlockLen) WorkingNext END(*WITH
Working*) END (*WHILE WorkingNIL and not disc full*) FOR pospos TO BlockS
ize-1 DO bposEOF END IF replyBlockSize THEN Se IF Working.PredNIL THEN Worki
ngWorking.Pred CharPosWorking.BlockLen ELSE RETURN FALSE END END (*CharPos0
*) DEC(CharPos) RETURN TRUE END Backup PROCEDURE OpenFile(VAR fEditFilefnFil
eNameVAR replyINTEGERPosCARDINAL) VARpPText BEGIN Lookup(f.f,fn,reply) IF Po
s65535 THEN CharnoEditStatus.GetPosition(f.f) ELSE CharnoPos END Charsread0 I
F reply0 THEN reply-2 RETURN END pNIL reply0 FOR i0 TO HIGH(f.LabelqWrite
Block(f.f,ADR(b),BlockSize,reply) END Close(f.f) IF replyBlockSize THEN repl
y-1 ELSE reply0 END ELSEreply-2 END END CloseFile PROCEDURE AbandonFil
e(fEditFile) VARpPText (*Abandon changes to an edit file*) BEGIN Workingf.Ch
ain WHILE WorkingNIL DO pWorking.Next DISPOSE(Working) Workingp END END A
bandonFile PROCEDURE GetPosition(VAR fEditFileVAR pPosition) BEGIN pf.CurPos
END GetPosition PROCEDURE Ss) DO f.Labelsi.BlockNIL END LOOP(*read in the f
ile*) IF FreeSpace()HeadRoom THEN AbandonFile(f) reply-3 RETURN END NewBlo
ck Working.Predp IF pNIL THEN f.ChainWorking ELSE p.NextWorking END SeqReadB
lock(f.f,ADR(Working.Chars),BlockSize,i) IF iBlockSize THEN (*end of file found
*) IF pNIL THEN p.NextNIL DISPOSE(Working) ELSE(*always keep at least one b
lock*) Working.BlockLen1 Working.Chars0EOF etPosition(VAR fEditFilepPositio
n) (*get/set position in a file*) BEGIN f.CurPosp (*pointer may be pointin
g just after end of block (after deletes), regularize that situation*) WITH
f.CurPos DO IF (OffsetBlock.BlockLen) AND (Block.NextNIL) THEN Offset0
BlockBlock.Next END END END SetPosition PROCEDURE LabelOp(VAR fEditFileDefi
neBOOLEANchCHAR)BOOLEAN (* perform a label operation , return true if successf
ul Define is true if t CharPos0 savecurpos(f) END EXIT ELSE WHILE (i0) A
ND (Working.Charsi-1EOF) DO DEC(i) END IF (Working.Charsi-10ax) AND (iBlockSi
ze) THEN INC(i) Working.Charsi-1EOF END Working.BlockLeni IF CharsreadCharn
o THEN CharPosCharno-Charsread savecurpos(f) pWorking IF (Working.CharsCha
rPosLF) AND Backup() THEN savecurpos(f) END Workingp END Charsrhe oper
ation is a define label it is false if it is a goto label *) VARiCARDINAL
BEGIN (*$A*) chCAP(ch) CASE ch OF 'B' i10 'K','K' i11 1x..3xiORD(ch)+11 '
0'..'9'iORD(ch)-ORD('0') 0b0x..0b9xiORD(ch)-0b0h+15 ELSE RETURN FALSE END IF
Define THEN GetPosition(f,f.Labelsi) ELSE IF f.Labelsi.BlockNIL THEN RETURN
FALSE END SetPosition(f,f.Labelsi) END RETURN TRUE END LabelOp PROCEDURE A
dvance()BOOLEAN (*advance a eadCharsread+ORD(Working.BlockLen) END pWorking
replyreply+1 END (*read file loop*) Close(f.f) END OpenFile PROCEDURE Cl
oseFile(VAR fEditFileVAR replyINTEGER) VAR bARRAY0..BlockSize-1 OF CHAR posIN
TEGER BEGIN MakeBAK(f.f,reply) Charno1 IF reply0 THEN Workingf.Chain pos0
replyBlockSize LOOP IF (WorkingNIL) THEN EXIT END WITH Working DO
FOR i0 TO INTEGER(BlockLen)-1 DO IF posBlockSize THEN RF (numberORD(BlockLe
n)) (*CharPos0*) THEN (*Delete block*) IF NextNIL THEN Next.PredPred END IF
PredNIL THEN Pred.NextNext DISPOSE(Working) ELSIF NextNIL THEN f.ChainNex
t DISPOSE(Working) ELSE(*only block in file so keep*) BlockLen1 Working.Char
s0EOF END(*PredNIL*) ELSE IF ORD(BlockLen)(CharPos+number) THEN Movedown
(ADR(CharsCharPos+number), ADR(CharsCharPos), ORD(BlockLen)-ORD(CharP CharPosO
ffset WorkingBlock END Charsread0 ireply rFromFile.CurPos qToFile.CurPos
FromFile.CurPosFromFile.Labels10 LOOP IF i0 THEN EXIT END INC(Charsread)
cCharsreadWorking.CharsCharPos IF (CharsreadHIGH(c)) OR (i1) THEN savecurpos(
FromFile) pFromFile.CurPos ToFile.CurPosq WHILE Charsread0 DO IF CharsreadTh
ird THEN InsChars(ToFile,c,Third) CharsreadCharsread-Third Movedown(ADR(ckNIL
) THEN RETURN FALSE END bF.Labels10.Block WHILE (bNIL) AND (bF.Labels11.Bl
ock) AND (bWorking) DO bb.Next END (*if end precedes beginning of block*)
CouldBebWorking IF NOT CouldBe THEN RETURN FALSE END IF bF.Labels10.Block TH
EN (*in start block - check after label start*) CouldBeCharPosORD(F.Labels10.O
ffset) END IF bF.Labels11.Block THEN (*in start block - check after label sta
rt*) CouldBeCouldBe AND (CharPosORD(Third+1), ADR(c),Charsread) ELSE InsChar
s(ToFile,c,Charsread) Charsread0 END END qToFile.CurPos FromFile.CurPosp s
etcurpos(FromFile) END IF NOT Advance() THEN EXIT (* never taken*) END DEC(i)
END(*LOOP*) FromFile.CurPosr ToFile.CurPosq RETURN TRUE END BlockCopy PRO
CEDURE BlockDel(VAR FromFileEditFile)BOOLEAN VARpPosition BEGIN IF NOT CheckB
lock(FromFile) THEN RETURN FALSE END WITH FromFile DO LaF.Labels11.Offset)) E
ND IF CouldBe THEN WHILE (bNIL) AND (bF.Labels11.Block) DO bb.Next END CouldB
ebNIL END RETURN CouldBe END InsideBlock PROCEDURE CheckBlock(VAR FEditFil
e)BOOLEAN (*Check if begin and end of block have been correctly set up*) B
EGIN IF (F.Labels10.BlockNIL) OR (F.Labels11.BlockNIL) THEN RETURN FALSE END
WorkingF.Labels10.Block reply0 WHILE (WorkingNIL) AND (WorkingF.Labels11.Bl
ock) DO replyreply+Obels25CurPos CurPosLabels10 DelChars(FromFile,rep
ly) CurPosLabels25 Labels25.BlockNIL END RETURN TRUE END BlockDel PROCEDUR
E RelocateLabels(VAR fEditFilenumberINTEGER) (*Relocate labels for the current
block number is number of characters being deleted (-ve for insertions) *)
BEGIN FOR reply0 TO HIGH(f.Labels) DO WITH f.Labelsreply DO IF (Block
Working) AND (ORD(Offset)CharPos) THEN IF (numberORD(Working.BlockLen)) RD(Work
ing.BlockLen) WorkingWorking.Next END IF WorkingNIL THEN RETURN FALSE END
(*if end precedes beginning of block*) replyreply+ORD(F.Labels11.Offset)-OR
D(F.Labels10.Offset) RETURN reply0 END CheckBlock PROCEDURE BlockCopy(VAR Fro
mFile,ToFileEditFile)BOOLEAN (*Careful - Easy - Ouch! FromFile and ToFile
may be the same variable*) VARiINTEGER cARRAY1..TextLen OF CHAR p,q,rPosit
ion (*This code is a little odd for the following reasonTHEN BlockWorking.Ne
xt Offset0 ELSIF (number+CharPos)ORD(Offset) THEN OffsetCharPos ELSE Offset
ORD(Offset)-number END(*IF*) END(*IF BlockWorking etc*) END (*WITH*) END(*FO
R*) END RelocateLabels PROCEDURE DelChars(VAR fEditFilenumberINTEGER) (
*delete a number of characters*) PROCEDURE DelInBlock(numberINTEGER) (*Per
form a delete which does not span a block*) BEGIN RelocateLabels(f,number) WI
TH Working DO I 1/InsChars cannot insert more than half a block of character
s 2/If you don't read at least a block at a time and the to and from files are
the same, you may have to change the position in the from file to reflect inse
rtions, which is awkward (though you could always add a temporary label) The
refore, text is read and then inserted in up to three goes!*) ThirdCARDINAL
BEGIN ThirdTextLen DIV 3 IF NOT CheckBlock(FromFile) THEN RETURN FALSE END WI
TH FromFile.Labels10 DO R QC and QR*) Workingf.Chain CharPos0 pos0 ELSIF
linestomove16736 THEN WHILE Working.NextNIL DO WorkingWorking.Next END CharP
osORD(Working.BlockLen) IF Working.CharsCharPos-1EOF THEN DEC(CharPos) END s
avecurpos(f) pf.CurPos posBackupLine() f.CurPosp ELSE (*chase backwards
until a CR, LF or FF is found and calculate position in line*) posB
ackupLine() len0 (*now positioned to begi OffsetORD(Offset)-left E
ND END END WITH MainBlock DO Working.NextNext IF NextNIL THEN Next.PredWo
rking END NextWorking Working.BlockLenORD(BlockLen)-left BlockLenleft Moveup
(ADR(CharsBlockLen), ADR(Working.Chars), left+1) IF CharPosORD(BlockL
en) THEN WorkingMainBlock ELSE CharPosCharPos-ORD(BlockLen) END InsInBlock EN
D(*WITH*) END(*leftlen*) savecurpos(f) END InsChars os)-number) END BlockL
enORD(BlockLen)-number IF (NextNIL) AND (CharsBlockLen-1EOF) THEN CharsBlockLe
nEOF INC(BlockLen) END END(* Block not now empty*) END(*WITH*) END DelInBl
ock VARNextBlockPText BEGIN setcurpos(f) WHILE (number0) AND (WorkingNIL)
DO NextBlockWorking.Next IF number(ORD(Working.BlockLen)-CharPos) THEN DelInB
lock(number) number0 ELSE numbernumber-ORD(Working.BlockLen)+CharPos DelIn
VARbBOOLEAN PROCEDURE BackupLine()INTEGER (*Backup to beginning of curre
nt line returns number of characters backed up after the call, the position
is the first character after of the line*) VARposINTEGER BEGIN pos0 LOOP I
F NOT Backup() THEN EXIT END chWorking.CharsCharPos IF ((chCR) OR (chLF) OR (c
hFF)) THEN bAdvance() EXIT END pospos+1 END (*LOOP*) RETURN pos END Ba
ckupLine VARAdvanceOKBOOLEAN PROCEDURE AdvanceLBlock(ORD(Working.BlockLen)-Cha
rPos) END IF (number0) OR (WorkingNIL) THEN WorkingNextBlock CharPos0 END
END (*WHILE*) IF WorkingNIL THEN Workingf.Chain WHILE Working.NextNIL DO W
orkingWorking.Next END CharPosWorking.BlockLen END(*deleted everything*) save
curpos(f) END DelChars PROCEDURE InsChars(VAR fEditFileVAR SARRAY OF CHARlen
INTEGER) (*insert characters*) VARleft,followsINTEGER MainBlockPText PROCEDU
RE InsInBloine()INTEGER (*move to start of next line returns characters adv
anced positions to first character of next line*) VARposINTEGER bBOOLEAN BEG
IN AdvanceOKTRUE pos0 LOOP chWorking.CharsCharPos IF chEOF THEN AdvanceOK
FALSE EXIT END IF (chCR) OR (chLF) OR (chFF) THEN IF NOT Advance() THEN EX
IT END chWorking.CharsCharPos IF chLF THEN bAdvance() END EXIT END INC(pos)
IF NOT Advance() THEN AdvanceOKFAck VARstartINTEGER iINTEGER BEGIN (*a
djust labels*) RelocateLabels(f,-len) start0 WITH Working DO IF ORD(BlockLen
)CharPos THEN Moveup(ADR(CharsCharPos),ADR(CharsCharPos+len), ORD(BlockLen
)-CharPos) END BlockLenORD(BlockLen)+len WHILE len0 DO CharsCharPosSstar
t INC(start) DEC(len) INC(CharPos) END END END InsInBlock (*If text wil
l fit in current block, enter in current block else split block and entLSE EXI
T END END (*LOOP*) RETURN pos END AdvanceLine PROCEDURE Retrline(VAR f
EditFileVAR len,posINTEGERVAR pPosition VAR linesmovedINTEGERlinestomoveINTEGER
) (*return the position in the current line*) VARchCHAR iINTEGER bBOOLEAN B
EGIN setcurpos(f) linesmoved0 IF CharPosINTEGER(Working.BlockLen) THEN Cha
rPosWorking.BlockLen END IF linestomove-16736 THEN (*go to top of file
This is a recent mod to speed up er in appropriate block*) BEGIN setcu
rpos(f) leftTextLen-ORD(Working.BlockLen) (*left is characters left in block
*) IF leftlen THEN InsInBlock ELSE (*split the block so that after insert
the two blocks will be approx equal in size*) leftORD(Working.BlockLen) DIV
2 MainBlockWorking NewBlock Working.PredMainBlock FOR reply0 TO HIGH(f.Labe
ls) DO WITH f.Labelsreply DO IF (BlockMainBlock) AND (ORD(Offset)left) THEN B
lockWorking REND MoveToChar PROCEDURE DefineErrors(VAR fEditFile) VARiCARDINA
L bBOOLEAN BEGIN IF ErrorCount0 THEN RETURN END FOR i0 TO ErrorCount-1 DO M
oveToChar(f,ErrorListi.CharP) bLabelOp(f,TRUE,CHR(0b0h+i)) END END DefineErro
rs END MakeEdits. 0EDITSTATDEF 2EDITSTATMOD 3FILEOPS DEF 5R(s),ADR(String),l
en) END PrepareString (*prepare a string for use in a find command*) PROCEDU
RE FindString(VAR fEditFileBackwardsBOOLEAN)BOOLEAN (*backwards not yet imp
lemented*) BEGIN IF StringLen0 THEN RETURN TRUE END setcurpos(f) IF Backward
s THEN MatchCharStringStringLen-1 LOOP IF NOT Backup() THEN EXIT END IF (Wor
king.CharsCharPosMatchChar) OR (Working.CharsCharPosCAP(MatchChar)) THEN Ma
tchCharNoStringLen-2 savecurpos(f) nning of current line move required number
of lines*) IF linestomove0 THEN WHILE (linestomove0) AND ((CharPo
s0) OR (Working.PredNIL)) DO INC(linestomove) (*move back over cr/lf*) IF
Backup() AND (Working.CharsCharPosLF) THEN bBackup() END DEC(linesmoved) le
nBackupLine() END ELSE WHILE (linestomove0) AND ( (CharPosINTEGER(Worki
ng.BlockLen)) OR (Working.NextNIL)) DO DEC(linestomove) lenAdWHILE (Ma
tchCharNo0) AND (Backup()) AND Matches() DO DEC(MatchCharNo) END IF
Backup() AND Matches() AND (MatchCharNo0) THEN RETURN TRUE END setcurpo
s(f) END END ELSE MatchCharString0 LOOP IF NOT Advance() THEN EXIT END IF
(Working.CharsCharPosMatchChar) OR (Working.CharsCharPosCAP(MatchChar)) THEN
MatchCharNo1 savecurpos(f) WHILE (MatchCharNoStringLen) AND (Advancvanc
eLine() IF AdvanceOK THEN INC(linesmoved) END END END END savecurpos(f)
pf.CurPos IF Working.CharsCharPosEOF THEN (*IF we are at end of file, reposi
tion to start of current line as Retrline always returns position as at st
art of line*) lenBackupLine() savecurpos(f) pf.CurPos poslen ELSE lenAdv
anceLine() END f.CurPosp END Retrline PROCEDURE ReadNextChar(VAR pPositionVA
R chCHAR) BEGIN WITH p DO IF Offsete()) AND Matches() DO INC(MatchChar
No) END IF MatchCharNoStringLen THEN RETURN TRUE END setcurpos(f) END END
END savecurpos(f) RETURN FALSE END FindString (*Actually find the next occ
urrence of the string Done returns true if one is found*) PROCEDURE CallWith
File(NameARRAY OF CHARVAR fEditFile) BEGIN MakeCall(Name,f.f.f) END CallWithF
ile PROCEDURE FileType(VAR fEditFile)CARDINAL BEGIN IF f.f.f.fcbft'MOD' THBlo
ck.BlockLen THEN IF Block.NextNIL THEN chEOF RETURN ELSE BlockBlock.Next O
ffset0 END END chBlock.CharsOffset IF chEOF THEN OffsetOffset+1 END END EN
D ReadNextChar PROCEDURE GetCurrentChar(VAR fEditFile)CHAR BEGIN posf.CurPo
s ReadNextChar(pos,ch) RETURN ch END GetCurrentChar PROCEDURE BackOneChar(V
AR fEditFile)BOOLEAN BEGIN setcurpos(f) bBackup() savecurpos(f) RETURN b E
ND BackOneCharEN RETURN 1 ELSIF f.f.f.fcbft'DEF' THEN RETURN 2 ELSE RETURN 0
END END FileType PROCEDURE MoveToChar(VAR FileEditFilePosCARDINAL) VARiCARDIN
ALwPText BEGIN WorkingFile.Chain wNIL i0 LOOP IF WorkingNIL THEN EXIT END
ii+ORD(Working.BlockLen) wWorking IF iPos THEN WorkingWorking.Next ELSE EXIT
END END IF WorkingNIL THEN Workingw CharPosw.BlockLen ELSE CharPosPos-(i-
ORD(Working.BlockLen)) END savecurpos(File) PROCEDURE ForwardOneChar(VAR
fEditFile)BOOLEAN BEGIN setcurpos(f) bAdvance() savecurpos(f) RETURN b EN
D ForwardOneChar VARStringARRAY0..59 OF CHAR StringLenCARDINAL0 MatchCharNoCA
RDINAL MatchCharCHAR PROCEDURE Matches()BOOLEAN BEGIN RETURN (Working.Char
sCharPosStringMatchCharNo) OR (Working.CharsCharPosCAP(StringMatchCharNo))
END Matches PROCEDURE PrepareString(sARRAY OF CHARlenINTEGER) BEGIN String
Lenlen Moveup(AD Roes round for ever since there is an explicit HALT in dom
enu to stop the program*) IF FilesOpened0 THEN Interpret END iCurrentWind
ow kCurrentFile (*remember current window since DomenuOp may change it*)
jFilesOpened DoMenuOp(*explicit exit in this module*) IF (iCurrentWindow) AND
(Windows0) THEN (*after menu, redisplay window in which the window popped
up*) DisplayFile(Filesk,i,curxi,curyi) END END (*LOOP*) END m (*Error d
isplay routine If the editor is entered as the result of a compilation error,
the command line consists of the name of the file which was being compiled fo
llowed by an option. The option contains two integer values in binary (so you c
annot enter same from the CP/M prompt - or at least not easily). Giving the pos
ition of the error in the file and the error number*) (*Work through the p
arameters opening the files to be edited Pars and ParCount have already been se
t up by a caMODULE me (*Modula editor Dave Moore 1 Feb 85 This is the
main module for the editor I have added some comments at version 1.2 which sh
ould be worth reading if you are trying to learn to write in Modula-2 *) F
ROM EditControl IMPORT Files,FilesOpened,curx,cury,CurrentWindow,ChangeWindow,
ResetScreenPos,CurrentFile FROM EditDisplay IMPORT ErrorMessage,SetWindows,Disp
layFile,Windows, DisplayError,ErrorOrdinal FROM DoMenu IMPORT DoMenuOp,Open
FROM KeyBoard IMPORT Interpll to the Command module*) PROCEDURE OpenFiles
VARkINTEGER FilePositionCARDINAL BEGIN (*check for option giving error nu
mber and position*) ErrorCount0 ErrorOrdinal0 WITH ParsParCount-1 DO IF Clas
soption THEN ErrorCountFilePos Moveup(ADR(Chars2),ADR(ErrorList),4*ErrorCount)
DEC(ParCount) ELSE FilePosition65535 END(*IF*) END FOR k0 TO ParCount-1 D
O WITH Parsk DO (* Note the extension below As of V1.2, The compret FR
OMMakeEdit IMPORT DefineErrors,ErrorList,ErrorCount FROMFastMove IMPORT Moveup
(* The modules above are part of the editor The following modules are all gen
eral purpose modules *) FROM Command IMPORT Parclass,name,string,option,
Text,Parameter,GetParams (*Command cracks the command line parameters which
are set up by CP/M at address 80 *) FROM Files IMPORT FileName,FILE,Lookup,
ReadBlock,SetBlock (*Files is the file oriented block level IO system*) FR
OM SYSTEM Iiler allows you to type break with types and variables more than t
wo bytes in length, which simplifys this code greately. What is happening is
that Chars is really of type ARRAYsomething OF CHAR, and is not the same as F
ileName By putting the variable in FileName(), its type is changed to be
FileName. This isn't really a coercion since the data is not altered in any
way. It simply defeats the compiler's type checking. *) Open(FileName(Ch
ars),FilePosition) MPORT ADR FROM Storage IMPORT FullUp (*Terminal is the
standard terminal input-output module It is also possible to do Input-Output
to the terminal through the modules Streams and InOut, but these increase the
size of the program and are only required if you want to do more powerful thi
ngs, such as file redirection and number conversion. If all you want is number
conversion, SmallIO can be used *) VARParsARRAY0..3 OF Parameter ParCount
INTEGER (*Pars is an array intEND END IF ErrorCount0 THEN DefineErrors(File
sCurrentFile) END END OpenFiles PROCEDURE MemFull BEGIN ErrorMessage(' Memor
y is full - please save files now',' ') DoMenuOp END MemFull VARcccCHAR BEGI
N (*GetParams reads the parameters from the command line*) FullUpMemFull
GetParams(Pars,ParCount) FilesOpened0 IF ParCount0 THEN OpenFiles END IF Erro
rCount0 THEN DisplayError END IF FilesOpened0 THEN ChangeWindow(1) END LOOP
(*this loop go which Command will place the parameters entered on the command
line It need only be as large as the number of parameters you expect to be e
ntered on the command line The editor expects up to four parameters three fi
le names and some options, although the options are currently only used by the
compiler when it links to the editor after an error and in that case, there i
s only one other parameter *) kINTEGER i,jCARDINAL replyINTEGER fnFileNam
e chCHAR REND END (*FOR*) (*finish off current column*) IF y1(y+1) TH
EN WHILE jdepth DO Gotoxy(x1,y1) WriteString(' ') INC(j) INC(y1)
END END (*accept an option*) LOOP (*inverse currently selected option
*) x1x+1 y1y+1+OptionNo WHILE y1(y+depth+1) DO y1y1-depth x1x1+width+1 E
ND Gotoxy(x1,y1) ScreenControl(Inverse) WriteString(TextOptionNo) ScreenCont
rol(Normal) Gotoxy(x1,y1) REPEAT as is escape*) FROMScreenIOIMPORTGotoxy,
DrawBox,Dim,StartGraph, EndGraph,Vertical,Inverse,Normal, ScreenControl,RingBe
ll FROMTerminalIMPORT WriteString,Read,Write,BusyRead CONSTwidth11(*width of o
ne option*) ESC1bx CR0dx CtrlX18x CtrlE05x CtrlD04x CtrlS13x LF0ax BS08x
PROCEDURE GetFromMenu(VAR TextARRAY OF MenuTextx,yCARDINAL depth,columnsCARDI
NAL)CARDINAL (* Text is the text to display x and y are the position for
the top lefte. END (*CharPosBlockLen*) RETURN Working.CharsCharPosEOF END Ad
vance PROCEDURE CheckBlock(e15FEB87 DOC PQ eFIXES DOC sPG%tFIXES BAK pP!
DEC(i) END(*LOOP*) FromFile.CurPosr ToFile.CurPosq RETURN TRUE END BlockCo
py PROCEDURE BlockDel(VAR FromFileEditFile)BOOLEAN VARpPosition BEGIN IF NOT
CheckBlock(FromFile) THEN RETURN FALSE END WITH FromFile DO La corner of the
box depth is the number of options in a column columns is the number of column
s that will be required*) VARx1,y1CARDINAL i,jCARDINAL OptionNoCARDINAL ch
CHAR PROCEDURE ChangeOption(byINTEGER) (*change the current option number y
given increment ensure it remains in range*) BEGIN byby+INTEGER(OptionNo)
IF by0 THEN byHIGH(Text) ELSIF byHIGH(Text) THEN by0 END OptionNoby END Chan
geOption PROCEDURE ChangePos (*Change position using fDEFINITION MODULE Menu
(*Menu driver Bring up a menu at selected point on screen and accept an o
ption options can be selected either by striking first character of option
or by entering option no (limited to 0-9) option 0 is always exit without se
lection as is escape*) TYPEMenuTextARRAY1..11 OF CHAR PROCEDURE GetFromMen
u(VAR TextARRAY OF MenuTextx,yCARDINAL depth,columnsCARDINAL)CARDINAL (* Tex
t is the text to display x and y are the position for the top lefirst charact
er of menu as option Always move - so that if more than one command starts with
the same character you can get to other than the first *) VARiINTEGER BEGIN
iHIGH(Text) REPEAT ChangeOption(1) DEC(i) UNTIL (i0) OR (CAP(TextOptionNo1)
CAP(ch)) END ChangePos BEGIN (*draw the box*) x1x+(width+1)*columns y1y+d
epth+1 DrawBox(x,y1,x1,y) ScreenControl(Dim) ScreenControl(StartGraph) FOR i
1 TO columns-1 DO x1x+i*(width+1) FOR jy+1 t corner of the box depth is the n
umber of options in a column columns is the number of columns that will be requ
ired*) END Menu. END savecurpos(f) pf.CurPos posBackupLine() f.CurPosp
ELSE (*chase backwards until a CR, LF or FF is found and calculate
position in line*) posBackupLine() len0 (*now positioned to be
giTO y1-1 DO Gotoxy(x1,j) ScreenControl(Vertical) END END ScreenControl(End
Graph) ScreenControl(Normal) (*we now have a box around the menu with dim ba
rs between columns*) OptionNo0(*actually one less than value returned*) j0(*
row number*) x1x+1(*position for text*) y1y+1 FOR i0 TO HIGH(Text) DO Gotoxy
(x1,y1) WriteString(Texti) INC(j) IF jdepth THEN (*next column*) x1x1+width+
1 y1y+1 j0 ELSE INC(y1) (*menu handler Copyright Dave Moore FTL Modula-2
1986 ModificationsChanged to allow position to option using first letter of
option. If more than one option starts with a given letter, always moves to ne
xt *) IMPLEMENTATION MODULE Menu (*Menu driver Bring up a menu at sel
ected point on screen and accept an option options can be selected either by
striking first character of option or by entering option no (limited to 0-9)
option 0 is always exit without selection RIMPLEMENTATION MODULE ScreenDummy
IMPORTScreenIO PROCEDURE ClearScreen BEGIN ScreenIO.ScreenControl(ScreenI
O.ClearScreen) END ClearScreen PROCEDURE Gotoxy(x,yCARDINAL) BEGIN ScreenIO.
Gotoxy(x,y) END Gotoxy PROCEDURE RingBell BEGIN ScreenIO.ScreenControl(Scree
nIO.RingBell) END RingBell PROCEDURE OutputToScreen(bBOOLEAN) BEGIN ScreenIO
.OutputToScreen(b) END OutputToScreen PROCEDURE DrawBox(x1,y1,x2,y2CARDINAL)
BEGIN ScreenIO.DrawBox(x1,y1,x2,y2) END DrawBoIMPLEMENTATION MODULE ResetDisc
FROMCPM IMPORT BDOS,rsdfc PROCEDURE ResetAllDiscs VARcCARDINAL BEGIN cBDOS
(rsdfc,03fh) END ResetAllDiscs END ResetDisc. rCountFilePos Moveup(ADR(Chars
2),ADR(ErrorList),4*ErrorCount) DEC(ParCount) ELSE FilePosition65535 END(*IF
*) END FOR k0 TO ParCount-1 DO WITH Parsk DO (* Note the extension below
As of V1.2, The compBusyRead(ch) UNTIL ch0x Gotoxy(x1,y1) ScreenControl(N
ormal) WriteString(TextOptionNo) CASE CAP(ch) OF ESC,' ' RETURN 0 CR RETURN
OptionNo+1 CtrlS,BSChangeOption(-depth) CtrlEChangeOption(-1) CtrlDChangeOpt
ion(depth) CtrlX,LFChangeOption(1) 'A'..'Z'ChangePos ELSE ScreenControl(RingB
ell) END(*case*) END(*LOOP*) END GetFromMenu END Menu. END LocLoc+128 EN
D END CompBin. ForwardOneChar VARStringARRAY0..59 OF CHAR StringLenCARDINAL
0 MatchCharNoCARDINAL MatchCharCHAR PROCEDURE Matches()BOOLEAN BEGIN RETU
RN (Working.CharsCharPosStringMatchCharNo) OR (Working.CharsCharPosCAP(Stri
ngMatchCharNo)) END Matches PROCEDURE PrepareString(sARRAY OF CHARlenINTEGER)
BEGIN StringLenlen Moveup(ADDEFINITION MODULE ScreenDummy (*this module
was written to enable several modules to be compiled on machines with tight TP
A's. The same thing can be done with other modules if your TPA is tighter than
that of my test machine. What has been done is to replace a large symbol t
able (that of ScreenIO) with a small symbol table (this module). This reduces
the symbol table space used by the calling modules. This is further discussed
in the manual. *) PROCEDURE ClearScreen PROCEDUDEFINITION MODULE ResetDisc
PROCEDURE ResetAllDiscs END ResetDisc. do Input-Output to the terminal throu
gh the modules Streams and InOut, but these increase the size of the program an
d are only required if you want to do more powerful things, such as file redi
rection and number conversion. If all you want is number conversion, SmallIO c
an be used *) VARParsARRAY0..3 OF Parameter ParCountINTEGER (*Pars is an
array intRE Gotoxy(x,yCARDINAL) PROCEDURE RingBell PROCEDURE OutputToScreen(b
BOOLEAN) PROCEDURE DrawBox(x1,y1,x2,y2CARDINAL) END ScreenDummy. Opened DoM
enuOp(*explicit exit in this module*) IF (iCurrentWindow) AND (Windows0) THEN
(*after menu, redisplay window in which the window popped up*) DisplayFi
le(Filesk,i,curxi,curyi) END END (*LOOP*) END m RDINAL) PROCEDURE OutputT
oScreen(TurnOnBOOLEAN) (*Call this routine with FALSE to prevent output going
to the screen. This allows you to suppress output while large amounts of scre
en alterations are being made to speed up a program. Of course, you must re-ena
ble screen output and then re-draw the screen later. This is used by the editor
to suppress screen alterations during execution of repeats *) END ScreenIO.
dinates and after the cursor address command. MoveLeft,MoveRight,MoveDown,Mo
veUp Cursor move commands *) (*You should not need to use the next few type
declarations They are included here for use by the configuration program*)
PROCEDURE Gotoxy(x,yCARDINAL) (*Position to given coordinates top left is
always 0,0, which means that the bigger y is, the further down the screen x
is column, y is row A 'Standard' Screen is 80 by 24. The limit is set by the
tx END ScreenDummy. e selected either by striking first character of opt
ion or by entering option no (limited to 0-9) option 0 is always exit without
selection as is escape*) TYPEMenuTextARRAY1..11 OF CHAR PROCEDURE GetFrom
Menu(VAR TextARRAY OF MenuTextx,yCARDINAL depth,columnsCARDINAL)CARDINAL (*
Text is the text to display x and y are the position for the top leferminal d
efinition file*) PROCEDURE LoadTermCode(filenameFileName) (*Load the termi
nal definition for the current terminal filename is the name of the file to r
ead Normally, when the program is loaded, the file 'TERMINAL.COD' is loaded
from the logged in disc This routine only needs to be used if that file is not
the one to use (eg, to swap screens*) PROCEDURE ScreenControl(sEdits)
(*Perform a screen control operation*) PROCEDURE DrawBox(x1,y1,x2,y2CARDIN
AL)DEFINITION MODULE ScreenIO (*Screen handling routines for cursor position,
attribute etc Specific to this compiler*) FROMSYSTEM IMPORT BYTE FROMFil
es IMPORT FileName TYPEEdits(Dim,Bright,Normal,Inverse,Blink,StartGraph,EndGrap
h, DelChar,DelLine,InsChar,InsLine,DelEol,DelEos,ClearScreen, Horizontal,Verti
cal,CornerLL,CornerUL,CornerUR,CornerLR, Startxy,MiddleXY,EndXY,RingBell,MoveLe
ft,MoveRight, MoveDown,MoveUp) (*The editting mnemonics have the following m
eaning Di (*draw a box for a window on the screen x1,y1 is the lower
left corner x2,y2 is upper right corner*) PROCEDURE Clip(x1,y1,x2,y2CARDINAL)
(*Set clip boundaries used by Windows when drawing boxes so that only the pa
rts of the boxes masked are re-drawn has no effect except in DrawBox*) VARScre
enDepth,ScreenWidthCARDINAL MadeChangeBOOLEAN (*Control is the current contr
ol code set for the terminal MadeChange is TRUE on return from ScreenControl
if the requirem,Bright,Normal,Inverse,Blink Enter the given mode. Modes sho
uld not be combined as too much variation exists between terminals in this are
a StartGraph,EndGraph Enter and exit graphic character set mode Used for
drawing bars around windows If your terminal can do this with ordinary characte
rs, set these sequences empty and put the required characters in the sequence
s below DelChar,DelLine,InsChar,InsLine,DelEol,DelEos,ClearScreen Perform
the various edittd code is implemented, else false EditDisp contains code to
simulate some codes when they are not implemented*) (*New routines added at
version 1.02 These routines move the resposibilty for scrolling within a wind
ow from EditStat to ScreenIO This is done so that, when working with the mem
ory mapped version of ScreenIO, The Bars need not jump up and down when a windo
w is scrolled*) PROCEDURE ScrollWindowUp(StartLine,EndLineCARDINAL) PROCEDURE
ScrollWindowDown(StartLine,EndLineCARing sequences DelEol deletes from under cu
rsor to end of line DelEos deletes from under cursor to end of screen Clearscr
een homes the cursor as well (to top left) Horizontal,Vertical,CornerLL,Corne
rUL,CornerUR,CornerLR Character sequences to draw horizontal and vertical ba
rs around windows and to do the corners (lower left, upper left, upper right,lo
wer right) Startxy,MiddleXY,EndXY The character sequences to start a curso
r address command, for between the co-or RIF Active AND OutputEnabled THEN WI
TH Control DO Gotoxy(x1,y1) ScreenControl(StartGraph) InBound(x1,y1,CornerLL)
FOR ix1+1 TO x2-1 DO InBound(i,y1,Horizontal) END InBound(x2,y1,CornerLR) Go
toxy(x1,y2) InBound(x1,y2,CornerUL) FOR ix1+1 TO x2-1 DO InBound(i,y2,Horizont
al) END InBound(x2,y2,CornerUR) FOR iy2+1 TO y1-1 DO Gotoxy(x2,i) InBound(x
2,i,Vertical) END FOR iy2+1 TO y1-1 DO Gotoxy(x1,i) InBound(x1,i,Vertical)
END END(ffset jy+XYOffset ELSE iy+XYOffset jx+XYOffset END IF Ascii THEN
WriteAscii(i) ELSE Write(CHR(i)) END ScreenControl(MiddleXY) IF Ascii THEN Wr
iteAscii(j) ELSE Write(CHR(j)) END ScreenControl(EndXY) END (*WITH*) IF ing
THEN ScreenControl(StartGraph) END END(*IF*) END Gotoxy PROCEDURE LoadT
ermCode(filenameFileName) VARfnFILE replyINTEGER (*define a temporary area
for reading of file it must be equal in size to the size of IMPLEMENTATION MODU
LE ScreenIO FROM Terminal IMPORT CharRoutine,CharEnabled FROM Files IMPORT Loo
kup,FILE,ReadBlock FROM FastMove IMPORT Moveup FROM SYSTEM IMPORT ADR,SIZE,WOR
D FROMCPM IMPORT wccfc,BDOS (*Screen handling routines for cursor position, at
tribute etc This module is specific to this compiler*) TYPE ControlSequence
RECORD CharsARRAY1..7 OF CHAR SeqLenBYTE END ControlCodesRECORD EditSeq
uencesARRAY Edits OF ControlSequence AsciiBOOLEAN (*true icontrol, padded out
to a multiple of 128 bytes*) blockARRAY0..128*(SIZE(Control) DIV 128)+127 OF
CHAR (*Load the terminal definition for the current terminal filename is t
he name of the file to read Normally, when the program is loaded, the file '
TERMINAL.COD' is loaded from the logged in disc This routine only needs to be u
sed if that file is not the one to use (eg, to swap screens*) BEGIN Lookup
(fn,filename,reply) IF reply0 THEN ActiveFALSE ELSE ReadBlocf co-ordinates ou
t output as ascii numbers rather than binary*) ColumnFirstBOOLEAN AddressIn
GraphBOOLEAN (*true if can change coordinates in graph mode*) CarriageReturn
BOOLEAN (*true if carriage return returns to start of current row*) ScreenD
epthCARDINAL ScreenWidthCARDINAL XYOffsetCARDINAL END VARControlControl
Codes ActiveBOOLEAN InGraphBOOLEAN Lowx,Highx,Lowy,HighyCARDINAL OutputEnabl
edBOOLEAN (*PROCEDURE Write(iCHAR)k(fn,ADR(block),0,SIZE(block),reply) Activer
eplySIZE(Control) Moveup(ADR(block),ADR(Control),SIZE(Control)) END ScreenWid
thControl.ScreenWidth ScreenDepthControl.ScreenDepth END LoadTermCode PROCE
DURE ScreenControl(sEdits) (*Perform a screen control operation*) VARiCARDIN
AL BEGIN IF Active AND OutputEnabled THEN WITH Control.EditSequencess DO Mad
eChangeSeqLen0 FOR i1 TO ORD(SeqLen) DO Write(Charsi) END END IF NOT Control.
AddressInG BEGIN IF (i' ') AND (i'z') THEN Terminal.Write(i) ELSE Terminal.
Write('') WriteHex(ORD(i),3) Terminal.Write('') END END Write*) PROCEDURE W
rite(bCHAR) VARiINTEGER(*needed to avoid conflict with global*) BEGIN IF Outp
utEnabled THEN iBDOS(wccfc,WORD(b)) END END Write PROCEDURE WriteAscii(iINTE
GER) VARTextARRAY1..3 OF CHAR j,kINTEGER BEGIN j3 WHILE (j0) AND (i0) DO k
i DIV 10 TextjCHR(i-10*k+ORD('0')) ik jj-1raph THEN IF sStartGraph THEN InGr
aphTRUE ELSIF sEndGraph THEN InGraphFALSE END END ELSE MadeChangeFALSE END
END ScreenControl PROCEDURE InBound(x,yCARDINALchEdits) BEGIN IF (xLowx) AND
(xHighx) AND(yLowy) AND (yHighy) THEN ScreenControl(ch) END END InBound
PROCEDURE DrawBox(x1,y1,x2,y2CARDINAL) (*draw a box for a window on the scr
een x1,y1 is the lower left corner x2,y2 is upper right corner*) VARiCARD
INAL BEGIN END FOR kj+1 TO 3 DO Write(Textk) END END WriteAscii PROC
EDURE Gotoxy(x,yCARDINAL) (*Position to given coordinates top left is always
0,0 x is column, y is row A 'Standard' Screen is 80 by 24. The limit is
set by the terminal definition file*) VARi,jINTEGER ingBOOLEAN BEGIN IF
Active AND OutputEnabled THEN WITH Control DO ingInGraph IF InGraph THEN Scr
eenControl(EndGraph) END ScreenControl(Startxy) IF ColumnFirst THEN ix+XYO R
END SetUpCall. FROMSYSTEM IMPORT BYTE FROMFiles IMPORT FileName TYPEEdits
(Dim,Bright,Normal,Inverse,Blink,StartGraph,EndGraph, DelChar,DelLine,InsChar,I
nsLine,DelEol,DelEos,ClearScreen, Horizontal,Vertical,CornerLL,CornerUL,CornerU
R,CornerLR, Startxy,MiddleXY,EndXY,RingBell,MoveLeft,MoveRight, MoveDown,MoveU
p) (*The editting mnemonics have the following meaning Di*WITH Control*)
ScreenControl(EndGraph) END (*IF Active*) END DrawBox PROCEDURE Clip(x1,
y1,x2,y2CARDINAL) BEGIN Lowxx1 Highxx2 Lowyy2 Highyy1 END Clip PROCEDURE
ScrollWindowUp(StartofWindow,EndofWindowCARDINAL) BEGIN Gotoxy(0,EndofWindow)
ScreenControl(DelLine) Gotoxy(0,StartofWindow) ScreenControl(InsLine) END Sc
rollWindowUp PROCEDURE ScrollWindowDown(StartofWindow,EndofWindowCARDINAL) BEG
IN Gotoxy(0,StartofWindow) ScreenControl(DelLine) IMPLEMENTATION MODULE SetUpC
all (*SET Up call parameters for a program and chain to it *) FROMChain IMP
ORT LoadAndExecute FROMSYSTEM IMPORT BYTE (*Low core variables*) VARfcb15chfc
b fcb26chfcb commandlen80hBYTE command81hARRAY0..80 OF CHAR i,jINTEGER PROC
EDURE MakeCall(prognameARRAY OF CHARVAR ffcb) BEGIN fcb1f fcb2.fcbdn0 fcb2.
fcbfn1' ' (*set up command line*) i0 j1 IF fcb1.fcbdn0 THEN commandiCHR(O
RD(fcb1.fcbdn)+ Gotoxy(0,EndofWindow) ScreenControl(InsLine) ScreenControl(
DelEol) END ScrollWindowDown (*Cursor blink routine - only supported in m
emory mapped version of screenio*) PROCEDURE OutputToScreen(OnBOOLEAN) BEGIN
OutputEnabledOn END OutputToScreen BEGIN(*Initialisation part*) CharRoutin
eWrite CharEnabledTRUE InGraphFALSE OutputEnabledTRUE LoadTermCode('CONTRO
L.DAT') Lowx0Lowy0 Highx999Highy999 ScreenWidthControl.ScreenWidth ORD('A')-
1) INC(i) commandi'' INC(i) END WHILE (j8) AND (fcb1.fcbfnj' ') DO command
ifcb1.fcbfnj INC(i) INC(j) END j1 commandi'.' INC(i) WHILE (j3) AND (f.fc
bftj' ') DO commandifcb1.fcbftj INC(i) INC(j) END j0 WHILE (jHIGH(progname
)) AND (prognamej'') DO INC(j) END IF (jHIGH(progname)) THEN commandi'' INC(
i) commandiprognamej+1 INC(i) END commandleni f.fcbfScreenDepthControl.Scre
enDepth ScreenControl(ClearScreen) END ScreenIO. END setcurpos(f) END END
END savecurpos(f) RETURN FALSE END FindString (*Actually find the next occu
rrence of the string Done returns true if one is found*) PROCEDURE CallWithF
ile(NameARRAY OF CHARVAR fEditFile) BEGIN MakeCall(Name,f.f.f) END CallWithFi
le PROCEDURE FileType(VAR fEditFile)CARDINAL BEGIN IF f.f.f.fcbft'MOD' THn'
' FOR i0 TO j-1 DO f.fcbfni+1prognamei END f.fcbft'COM' f.fcbdn0 f.f
cbex0 f.fcbcr0 LoadAndExecute(f) END MakeCall END SetUpCall. ded from the
logged in disc This routine only needs to be used if that file is not the one
to use (eg, to swap screens*) PROCEDURE ScreenControl(sEdits) (*Perf
orm a screen control operation*) PROCEDURE DrawBox(x1,y1,x2,y2CARDINAL)DEFIN
ITION MODULE SetUpCall (*SET Up call parameters for a program and chain to it
This module is used by the editor for calling the compilers. The second
parameter is the fcb for the file which is to be compiled It will be set up o
n the command line as a parameter. It will be followed by /E as an option. I
f this is too clever for your requirements, you could use the module 'Chain' di
rectly. *) FROM CPM IMPORT fcb,alfa PROCEDURE MakeCall(prognameARRAY OF CHA
RVAR ffcb) Rmd screenio.def md screendu.def md resetdis.def m2 screenio.mod
md makeedit.def md editstat.def m2 makeedit.mod md editcont.def md macros.
def md menu.def md domenu.def md editdisp.def md setupcal.def md editcont.d
ef md keyboard.def m2 menu.mod m2 editstat.mod m2 macros.mod m2 domenu.mod
m2 editdisp.mod m2 editcont.mod m2 me.mod m2 screendu.mod m2 resetdis.mod
m2 keyboard.mod m2 setupcal.mod m2 macros.mod m2 makeedit.mod m2 me.mod ml
me/d e.mod m2 screendu.mod m2 resetdis.mod R R R R !R!!!!!!!!!
"R""""""""" #R######### $R$$$$$$$$$ %R%%%%%%%%% &R&&&&&&&&& 'R'''''''''