FTL Modula-2 Complete Development System (UK) (128K) (Face 2A) (1987) [Original] [UTILITAIRE].dsk
   
Choose sector :
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 00 57 50 20 20 20 20 20 20 43 4F 4D 00 00 00 08 .WP COM....
000010: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000020: 00 53 44 20 20 20 20 20 20 43 4F 4D 00 00 00 07 .SD COM....
000030: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000040: 00 57 44 20 20 20 20 20 20 43 4F 4D 00 00 00 04 .WD COM....
000050: 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000060: 00 21 52 45 41 44 4D 45 21 45 44 21 00 00 00 60 .!README!ED!...`
000070: 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 00 00 00 ................
000080: 00 2D 32 4A 55 4C 59 31 39 38 37 20 00 00 00 00 .-2JULY1987 ....
000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: 00 2D 42 41 43 4B 55 50 4E 4F 57 21 00 00 00 00 .-BACKUPNOW!....
0000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: 00 2D 56 45 52 53 49 4F 4E 31 32 34 00 00 00 00 .-VERSION124....
0000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0: 00 44 4F 4D 45 4E 55 20 20 44 45 46 00 00 00 03 .DOMENU DEF....
0000F0: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: 00 44 4F 4D 45 4E 55 20 20 4D 4F 44 00 00 00 39 .DOMENU MOD...9
000110: 12 13 14 15 16 17 18 19 00 00 00 00 00 00 00 00 ................
000120: 00 45 44 49 54 43 4F 4E 54 44 45 46 00 00 00 0C .EDITCONTDEF....
000130: 1A 1B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000140: 00 52 45 43 4D 50 45 44 20 53 55 42 00 00 00 04 .RECMPED SUB....
000150: 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000160: 00 45 44 49 54 43 4F 4E 54 4D 4F 44 00 00 00 6D .EDITCONTMOD...m
000170: 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 00 00 #$%&'()*+,-./0..
000180: 00 45 44 49 54 44 49 53 50 44 45 46 00 00 00 08 .EDITDISPDEF....
000190: 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8...............
0001A0: 00 53 43 52 45 45 4E 49 4F 4D 4F 44 00 00 00 2D .SCREENIOMOD...-
0001B0: 1D 1E 1F 20 21 22 00 00 00 00 00 00 00 00 00 00 ... !"..........
0001C0: 00 45 44 49 54 44 49 53 50 4D 4F 44 00 00 00 33 .EDITDISPMOD...3
0001D0: 40 41 42 43 44 45 46 00 00 00 00 00 00 00 00 00 @ABCDEF.........
0001E0: 00 45 44 49 54 53 54 41 54 44 45 46 00 00 00 04 .EDITSTATDEF....
0001F0: 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G...............
Size : 512 (Real : 512)
000000: 01 0B 00 ED B0 D1 E1 72 2B 73 2B F1 77 0E 17 11 .......r+s+.w...
000010: 22 05 CD 05 00 11 22 05 D5 0E 13 CD 05 00 D1 0E ".....".........
000020: 16 CD 05 00 3C 28 18 CD 77 03 C0 11 22 05 D5 0E ....<(..w..."...
000030: 10 CD 05 00 D1 0E 13 CD 05 00 11 A8 04 18 03 11 ................
000040: 9B 04 0E 09 C3 05 00 5F 0E 02 18 F8 7E C6 40 23 ......._....~.@#
000050: E5 CD 47 03 1E 3A CD 48 03 E1 06 0B E5 C5 3E 03 ..G..:.H......>.
000060: B8 20 07 E5 1E 2E CD 48 03 E1 5E CB BB 73 CD 48 . .....H..^..s.H
000070: 03 C1 E1 23 10 E6 C9 AF 32 F8 04 67 6F 22 FB 04 ...#....2..go"..
000080: 11 51 11 D5 0E 1A CD 05 00 11 FE 04 0E 14 CD 05 .Q..............
000090: 00 D1 A7 20 19 2A FB 04 23 22 FB 04 21 80 00 19 ... .*..#"..!...
0000A0: ED 5B F9 04 EB ED 52 30 DA 3E 01 32 F8 04 ED 4B .[....R0.>.2...K
0000B0: FB 04 78 B1 28 23 11 51 11 C5 D5 0E 1A CD 05 00 ..x.(#.Q........
0000C0: 11 22 05 0E 15 CD 05 00 D1 C1 A7 28 02 AF C9 21 .".........(...!
0000D0: 80 00 19 EB 0B 78 B1 20 E0 3A F8 04 A7 20 98 11 .....x. .:... ..
0000E0: 22 05 0E 10 CD 05 00 3C C9 4F AF 21 81 00 1E 02 "......<.O.!....
0000F0: D5 E5 11 0A 00 21 00 00 06 10 CB 11 17 ED 6A ED .....!........j.
000100: 52 30 01 19 3F 10 F3 CB 11 17 55 E1 72 2B D1 1D R0..?.....U.r+..
000110: 20 DE 06 02 CB 81 78 FE 01 20 02 CB C1 23 7E B7 .....x.. ...#~.
000120: 20 08 CB 41 20 04 3E 20 18 04 CB C1 C6 30 E5 C5 ..A .> .....0..
000130: CD 47 03 C1 E1 10 DF C9 AF 32 F7 04 32 F4 04 47 .G.......2..2..G
000140: 3A 80 00 4F 21 81 00 3E 2D ED B1 C0 2B 2B 7E FE :..O!..>-...++~.
000150: 20 23 23 20 F2 7E 23 FE 51 28 08 FE 42 C0 32 F5 ## .~#.Q(..B.2.
000160: 04 18 F2 32 F7 04 18 ED 57 50 20 56 33 2E 30 20 ...2....WP V3.0
000170: 28 43 29 20 31 39 38 37 20 48 69 53 6F 66 74 0D (C) 1987 HiSoft.
000180: 0A 42 75 66 66 65 72 20 73 69 7A 65 3A 20 24 0D .Buffer size: $.
000190: 0A 24 4E 6F 20 66 69 6C 65 73 24 20 4F 70 65 6E .$No files$ Open
0001A0: 20 66 61 69 6C 65 64 24 20 44 69 73 63 20 49 2F failed$ Disc I/
0001B0: 4F 20 65 72 72 6F 72 20 28 46 75 6C 6C 20 3F 29 O error (Full ?)
0001C0: 24 20 74 6F 20 24 20 20 53 61 6D 65 24 20 20 43 $ to $ Same$ C
0001D0: 6F 70 79 20 28 59 2F 4E 2F 41 2F 51 2F 50 2F 42 opy (Y/N/A/Q/P/B
0001E0: 2F 57 29 3F 20 24 00 3F 3F 3F 3F 3F 3F 3F 3F 3F /W)? $.?????????
0001F0: 3F 3F 00 00 00 00 00 00 00 00 00 00 00 00 20 4C ??............ L
Size : 512 (Real : 512)
000000: 00 45 44 49 54 53 54 41 54 4D 4F 44 00 00 00 17 .EDITSTATMOD....
000010: 48 49 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 HIJ.............
000020: 00 4D 41 4B 45 45 44 49 54 4D 4F 44 00 00 00 80 .MAKEEDITMOD....
000030: 31 32 33 34 35 36 37 39 3A 3B 3C 3D 3E 3F 4B 65 12345679:;<=>?Ke
000040: 00 4B 45 59 42 4F 41 52 44 44 45 46 00 00 00 02 .KEYBOARDDEF....
000050: 4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 L...............
000060: 00 4B 45 59 42 4F 41 52 44 4D 4F 44 00 00 00 44 .KEYBOARDMOD...D
000070: 4D 4E 4F 50 51 52 53 54 55 00 00 00 00 00 00 00 MNOPQRSTU.......
000080: 00 4D 41 43 52 4F 53 20 20 44 45 46 00 00 00 06 .MACROS DEF....
000090: 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 V...............
0000A0: 00 4D 41 43 52 4F 53 20 20 4D 4F 44 00 00 00 4F .MACROS MOD...O
0000B0: 57 58 59 5A 5B 5C 5D 5E 5F 60 00 00 00 00 00 00 WXYZ[\]^_`......
0000C0: 00 4D 41 4B 45 45 44 49 54 44 45 46 00 00 00 19 .MAKEEDITDEF....
0000D0: 61 62 63 64 00 00 00 00 00 00 00 00 00 00 00 00 abcd............
0000E0: 00 4D 41 4B 45 45 44 49 54 4D 4F 44 01 00 00 1F .MAKEEDITMOD....
0000F0: 66 67 68 69 00 00 00 00 00 00 00 00 00 00 00 00 fghi............
000100: E5 4D 41 4B 45 45 44 49 54 4D 4F 44 01 00 00 20 .MAKEEDITMOD...
000110: 75 76 77 78 00 00 00 00 00 00 00 00 00 00 00 00 uvwx............
000120: 00 4D 45 20 20 20 20 20 20 4D 4F 44 00 00 00 26 .ME MOD...&
000130: 79 7A 7B 7C 7D 00 00 00 00 00 00 00 00 00 00 00 yz{|}...........
000140: 00 4D 45 4E 55 20 20 20 20 44 45 46 00 00 00 06 .MENU DEF....
000150: 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ~...............
000160: 00 4D 45 4E 55 20 20 20 20 4D 4F 44 00 00 00 1D .MENU MOD....
000170: 7F 80 81 82 00 00 00 00 00 00 00 00 00 00 00 00 ................
000180: 00 52 45 53 45 54 44 49 53 44 45 46 00 00 00 01 .RESETDISDEF....
000190: 83 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001A0: 00 52 45 53 45 54 44 49 53 4D 4F 44 00 00 00 02 .RESETDISMOD....
0001B0: 84 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001C0: 00 53 43 52 45 45 4E 44 55 44 45 46 00 00 00 06 .SCREENDUDEF....
0001D0: 85 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001E0: 00 53 43 52 45 45 4E 44 55 4D 4F 44 00 00 00 05 .SCREENDUMOD....
0001F0: 86 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Size : 512 (Real : 512)
000000: ED 7B 06 00 11 F3 03 CD 87 01 0E 19 CD 05 00 32 .{.............2
000010: 5C 04 21 80 00 7E A7 20 0B 21 1F 04 11 5C 00 01 \.!..~. .!...\..
000020: 0C 00 ED B0 AF 32 55 04 32 5F 04 11 5C 00 D5 DD .....2U.2_..\...
000030: E1 DD 7E 01 FE 20 20 0B D5 13 21 20 04 01 0B 00 ..~.. ...! ....
000040: ED B0 D1 1A B7 20 04 3A 5C 04 3C 3D 32 5D 04 5F ..... .:\.<=2]._
000050: 0E 0E CD 05 00 0E 1F CD 05 00 22 56 04 23 23 23 .........."V.###
000060: 23 7E 32 58 04 11 5C 00 DD 36 0C 3F 0E 11 CD 05 #~2X..\..6.?....
000070: 00 3C 20 18 11 41 04 CD 87 01 CD 1B 03 3A 5C 04 .< ..A.......:\.
000080: 5F 0E 0E CD 05 00 C7 0E 09 C3 05 00 3D 87 87 87 _...........=...
000090: 87 87 5F 16 00 21 80 00 19 3A 5F 04 F5 E5 21 65 .._..!...:_...!e
0000A0: 04 B7 28 07 47 11 10 00 19 10 FD D1 01 10 00 EB ..(.G...........
0000B0: ED B0 F1 3C 32 5F 04 0E 12 CD 05 00 3C 20 CD CD ...<2_......< ..
0000C0: 65 02 3A 5F 04 47 DD 21 65 04 C5 DD CB 00 7E CC e.:_.G.!e.....~.
0000D0: DC 01 11 10 00 DD 19 C1 10 F0 18 98 CD 41 02 11 .............A..
0000E0: 2E 04 DD CB 0A 7E 28 03 11 2B 04 CD 87 01 11 34 .....~(..+.....4
0000F0: 04 DD CB 09 7E 28 03 11 31 04 CD 87 01 DD 6E 0F ....~(..1.....n.
000100: DD 66 0E 7D B4 28 13 7D E6 07 20 01 2B CB 3C CB .f.}.(.}.. .+.<.
000110: 1D CB 3C CB 1D CB 3C CB 1D 23 4D 7C CD A2 03 11 ..<...<..#M|....
000120: 37 04 CD 87 01 DD 4E 0F DD 7E 0E CD A2 03 11 1A 7.....N..~......
000130: 04 3A 55 04 EE 01 32 55 04 28 03 11 1D 04 C3 87 .:U...2U.(......
000140: 01 DD E5 E1 06 0B 23 E5 C5 3E 03 B8 20 09 E5 1E ......#..>.. ...
000150: 2E 0E 02 CD 05 00 E1 5E CB BB 0E 02 CD 05 00 C1 .......^........
000160: E1 23 10 E3 C9 DD 21 65 04 3A 5F 04 47 C5 3A 58 .#....!e.:_.G.:X
000170: 04 DD BE 0C 38 25 DD 7E 0F FE 80 20 1E CD CC 02 ....8%.~... ....
000180: 28 19 FD CB 00 FE FD 6E 0F FD 66 0E DD 5E 0F DD (......n..f..^..
000190: 56 0E 19 DD 75 0F DD 74 0E 18 E2 3A 58 04 B7 C4 V...u..t...:X...
0001A0: AB 02 11 10 00 DD 19 C1 10 C3 C9 3C 5F DD 4E 0C ...........<_.N.
0001B0: AF 57 CD DD 03 7D B7 C8 45 DD 6E 0F DD 66 0E 11 .W...}..E.n..f..
0001C0: 80 00 19 10 FD DD 75 0F DD 74 0E C9 FD 21 65 04 ......u..t...!e.
0001D0: C5 3A 5F 04 47 DD E5 FD E5 E1 D1 A7 ED 52 28 09 .:_.G........R(.
0001E0: FD CB 00 7E CC 08 03 28 0A 11 10 00 FD 19 10 E5 ...~...(........
0001F0: AF C1 C9 3A 58 04 B7 28 0B DD E5 FD E5 DD E1 CD ...:X..(........
Size : 512 (Real : 512)
000000: 00 53 43 52 45 45 4E 49 4F 44 45 46 00 00 00 20 .SCREENIODEF...
000010: 87 88 89 8A 00 00 00 00 00 00 00 00 00 00 00 00 ................
000020: E5 53 43 52 45 45 4E 49 4F 42 41 4B 00 00 00 2D .SCREENIOBAK...-
000030: 8B 8C 8D 8E 8F 90 00 00 00 00 00 00 00 00 00 00 ................
000040: 00 53 45 54 55 50 43 41 4C 44 45 46 00 00 00 05 .SETUPCALDEF....
000050: 91 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000060: 00 53 45 54 55 50 43 41 4C 4D 4F 44 00 00 00 0A .SETUPCALMOD....
000070: 92 93 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000080: E5 52 45 43 4D 50 45 44 20 42 41 4B 00 00 00 04 .RECMPED BAK....
000090: 94 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: E5 45 44 49 54 53 54 41 54 52 45 4C 00 00 00 01 .EDITSTATREL....
0000B0: 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: E5 4D 41 4B 45 45 44 49 54 52 45 4C 01 00 00 3A .MAKEEDITREL...:
0000D0: 3E 3F 4B 95 96 97 98 99 00 00 00 00 00 00 00 00 >?K.............
0000E0: E5 45 44 49 54 43 4F 4E 54 52 45 4C 00 00 00 01 .EDITCONTREL....
0000F0: 9A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: E5 4D 41 43 52 4F 53 20 20 52 45 4C 00 00 00 01 .MACROS REL....
000110: 9B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000120: E5 4D 45 4E 55 20 20 20 20 52 45 4C 00 00 00 1B .MENU REL....
000130: 9C A1 A2 A3 00 00 00 00 00 00 00 00 00 00 00 00 ................
000140: E5 44 4F 4D 45 4E 55 20 20 52 45 4C 00 00 00 01 .DOMENU REL....
000150: 9D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000160: E5 45 44 49 54 44 49 53 50 52 45 4C 00 00 00 01 .EDITDISPREL....
000170: 9E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000180: E5 53 45 54 55 50 43 41 4C 52 45 4C 00 00 00 01 .SETUPCALREL....
000190: 9F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001A0: E5 4B 45 59 42 4F 41 52 44 52 45 4C 00 00 00 01 .KEYBOARDREL....
0001B0: A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001C0: E5 52 45 43 4D 50 45 44 20 53 55 42 00 00 00 04 .RECMPED SUB....
0001D0: A6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: AB 02 DD E1 F6 01 C1 C9 DD E5 FD E5 D1 E1 C5 06 ................
000010: 0B 23 13 1A BE 20 02 10 F8 C1 C9 0E 0C CD 05 00 .#... ..........
000020: FE 30 30 50 DD 2A 56 04 DD 6E 05 DD 66 06 22 59 .00P.*V..n..f."Y
000030: 04 DD 7E 02 D6 02 47 AF 37 17 10 FD 32 5B 04 0E ..~...G.7...2[..
000040: 1B CD 05 00 ED 4B 59 04 03 11 00 00 3E 08 32 5E .....KY.....>.2^
000050: 04 CB 16 38 01 13 0B 79 B0 28 09 3A 5E 04 3D 20 ...8...y.(.:^.=
000060: ED 23 18 E8 6B 62 3A 5B 04 47 05 28 03 19 10 FD .#..kb:[.G.(....
000070: 7C 4D 18 23 3A 5D 04 0E 2E 5F CD 05 00 06 03 DD |M.#:]..._......
000080: 21 80 00 DD CB 02 3E DD CB 01 1E DD CB 00 1E 10 !.....>.........
000090: F2 DD 7E 01 DD 4E 00 CD A2 03 3E 4B 5F 0E 02 C3 ..~..N....>K_...
0000A0: 05 00 21 64 04 1E 05 D5 E5 11 0A 00 CD DD 03 55 ..!d...........U
0000B0: E1 72 2B D1 1D 20 F0 06 05 CB 81 78 FE 01 20 02 .r+.. .....x.. .
0000C0: CB C1 23 7E B7 20 08 CB 41 20 04 3E 20 18 04 CB ..#~. ..A .> ...
0000D0: C1 C6 30 E5 C5 CD 9C 03 C1 E1 10 DF C9 21 00 00 ..0..........!..
0000E0: 06 10 CB 11 17 ED 6A ED 52 30 01 19 3F 10 F3 CB ......j.R0..?...
0000F0: 11 17 C9 53 44 20 56 31 2E 30 20 62 79 20 41 64 ...SD V1.0 by Ad
000100: 61 6D 20 44 65 6E 6E 69 6E 67 20 28 43 29 20 48 am Denning (C) H
000110: 69 53 6F 66 74 20 31 39 38 36 0D 0A 24 09 24 00 iSoft 1986..$.$.
000120: 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 20 53 24 20 20 ??????????? S$
000130: 24 52 20 24 20 20 24 4B 20 20 52 65 63 73 3A 20 $R $ $K Recs:
000140: 24 0D 0A 44 69 73 63 20 66 72 65 65 20 73 70 61 $..Disc free spa
000150: 63 65 3A 20 24 66 75 6E 63 74 69 6F 6E F3 20 69 ce: $function. i
000160: EE 20 73 6F 75 72 63 E5 20 61 6E E4 20 4D 61 6E . sourc. an. Man
000170: F8 20 8D 0A 6C 69 62 72 61 72 F9 20 66 6F 72 6D . ..librar. form
000180: 79 31 2D 31 20 20 44 4F 0D 0A 09 09 47 6F 74 6F y1-1 DO....Goto
000190: 78 79 28 78 32 2C 69 29 3B 0D 0A 09 09 53 63 72 xy(x2,i);....Scr
0001A0: 65 65 6E 43 6F 6E 74 72 6F 6C 28 56 65 72 74 69 eenControl(Verti
0001B0: 63 61 6C 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 cal);....END;...
0001C0: 46 4F 52 20 69 3A 3D 79 32 2B 31 20 54 4F 20 79 FOR i:=y2+1 TO y
0001D0: 31 2D 31 20 44 4F 0D 0A 09 09 47 6F 74 6F 78 79 1-1 DO....Gotoxy
0001E0: 28 78 31 2C 69 29 3B 0D 0A 09 09 53 63 72 65 65 (x1,i);....Scree
0001F0: 6E 43 6F 6E 74 72 6F 6C 28 56 65 72 74 69 63 61 nControl(Vertica
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: ED 7B 06 00 11 7C 02 CD 3A 01 21 80 00 7E B7 20 .{...|..:.!..~.
000010: 0B 21 E0 02 11 5C 00 01 0C 00 ED B0 11 5C 00 D5 .!...\.......\..
000020: DD E1 DD 7E 01 FE 20 20 16 D5 13 21 E1 02 01 0B ...~.. ...!....
000030: 00 ED B0 D1 18 09 CD 3A 01 C7 0E 09 C3 05 00 AF .......:........
000040: 32 EC 02 32 ED 02 1A 32 EE 02 0E 11 CD 05 00 3C 2..2...2.......<
000050: 20 05 11 A6 02 18 DF F5 3A EE 02 B7 20 09 0E 19 .......:... ...
000060: CD 05 00 3C 32 EE 02 21 00 00 47 37 CB 15 CB 14 ...<2..!..G7....
000070: A7 10 F9 E5 0E 1D CD 05 00 D1 7D A3 6F 7C A2 B5 ..........}.o|..
000080: 28 05 11 98 02 18 AF F1 3D 87 87 87 87 87 5F 16 (.......=....._.
000090: 00 21 80 00 19 CD FB 01 0E 12 CD 05 00 3C 20 E8 .!...........< .
0000A0: 21 EF 02 E5 CD 24 02 3A ED 02 B7 20 1E 11 C9 02 !....$.:... ....
0000B0: CD 3A 01 0E 01 CD 05 00 F6 20 FE 71 28 3C FE 61 .:....... .q(<.a
0000C0: 20 05 32 ED 02 18 04 FE 79 20 03 CD 57 02 F5 11 .2.....y ..W...
0000D0: 95 02 CD 3A 01 F1 E1 FE 70 3A EC 02 28 0C 11 0C ...:....p:..(...
0000E0: 00 19 3D 28 15 32 EC 02 18 B9 11 F4 FF 19 11 EF ..=(.2..........
0000F0: 02 B7 ED 52 19 38 03 3C 18 EB C7 23 E5 11 0C 00 ...R.8.<...#....
000100: 21 00 00 3A EC 02 B7 28 04 47 19 10 FD 11 EF 02 !..:...(.G......
000110: 19 F5 3A EE 02 77 F1 23 D1 EB 01 0B 00 ED B0 3C ..:..w.#.......<
000120: 32 EC 02 C9 7E 23 E5 C6 40 5F 0E 02 CD 05 00 1E 2...~#..@_......
000130: 3A 0E 02 CD 05 00 E1 06 0B E5 C5 3E 03 B8 20 09 :..........>.. .
000140: E5 1E 2E 0E 02 CD 05 00 E1 5E CB BB 0E 02 CD 05 .........^......
000150: 00 C1 E1 23 10 E3 C9 D1 E1 E5 D5 11 5C 00 01 0C ...#........\...
000160: 00 ED B0 11 5C 00 D5 DD E1 DD CB 09 7E 20 07 0E ....\.......~ ..
000170: 13 CD 05 00 3C C0 11 B8 02 C3 3A 01 57 44 45 4C ....<.....:.WDEL
000180: 20 56 32 2E 30 20 28 43 29 20 31 39 38 37 20 48 V2.0 (C) 1987 H
000190: 69 53 6F 66 74 0D 0A 24 44 72 69 76 65 20 69 73 iSoft..$Drive is
0001A0: 20 52 2F 4F 21 24 4E 6F 20 6D 61 74 63 68 69 6E R/O!$No matchin
0001B0: 67 20 66 69 6C 65 73 24 20 20 43 61 6E 6E 6F 74 g files$ Cannot
0001C0: 20 64 65 6C 65 74 65 21 24 20 20 44 65 6C 65 74 delete!$ Delet
0001D0: 65 20 28 59 2F 4E 2F 41 2F 51 2F 50 29 3F 20 24 e (Y/N/A/Q/P)? $
0001E0: 00 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 00 00 00 00 .???????????....
0001F0: FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 ................
Size : 512 (Real : 512)
000000: 2A 06 00 F9 11 00 FF 19 22 F9 04 11 51 11 A7 ED *......."...Q...
000010: 52 7C 1F 1F E6 3F 3C F5 11 68 04 CD 42 03 CD 38 R|...?<..h..B..8
000020: 04 F1 CD E9 03 3E 4B CD 47 03 11 8F 04 CD 42 03 .....>K.G.....B.
000030: 3A 5C 00 B7 20 03 CD 68 01 32 F3 04 21 6C 00 7E :\.. ..h.2..!l.~
000040: B7 20 1C 23 7E FE 2D 20 13 23 7E FE 51 28 04 FE . .#~.- .#~.Q(..
000050: 42 20 09 23 7E FE 20 20 03 32 6D 00 CD 68 01 32 B .#~. .2m..h.2
000060: F2 04 18 0B CD 42 03 C7 0E 19 CD 05 00 3C C9 11 .....B.......<..
000070: 46 05 01 0B 00 21 6D 00 7E FE 20 20 03 21 E7 04 F....!m.~. .!..
000080: ED B0 11 5C 00 D5 DD E1 DD 7E 01 FE 20 20 0B D5 ...\.....~.. ..
000090: 13 21 E7 04 01 0B 00 ED B0 D1 0E 11 CD 05 00 3C .!.............<
0000A0: 20 05 11 92 04 18 BD 3D 87 87 87 87 87 5F 16 00 ......=....._..
0000B0: 21 80 00 19 3A F4 04 F5 E5 21 51 05 B7 28 07 47 !...:....!Q..(.G
0000C0: 11 0B 00 19 10 FD D1 13 01 0B 00 EB ED B0 F1 3C ...............<
0000D0: 32 F4 04 0E 12 CD 05 00 3C 20 CC 21 51 05 E5 CD 2.......< .!Q...
0000E0: 9B 02 21 FE 04 CD 4C 03 11 C1 04 CD 42 03 21 22 ..!...L.....B.!"
0000F0: 05 E5 CD 4C 03 E1 11 FE 04 06 0C 1A BE 23 13 20 ...L.........#.
000100: 10 10 F8 11 C6 04 CD 42 03 3A FD 04 B7 28 3C 18 .......B.:...(<.
000110: 5B 3A F7 04 B7 20 2D 11 CD 04 CD 42 03 0E 01 CD [:... -....B....
000120: 05 00 F6 20 FE 71 CA 00 00 FE 61 20 05 32 F7 04 ... .q....a .2..
000130: 18 0C FE 62 28 31 FE 77 28 2C FE 79 20 09 3A F5 ...b(1.w(,.y .:.
000140: 04 32 F6 04 CD CC 02 FE 70 28 21 11 8F 04 CD 42 .2......p(!....B
000150: 03 E1 11 0B 00 19 AF 32 FD 04 3A F4 04 3D 28 C6 .......2..:..=(.
000160: 32 F4 04 C3 DE 01 AF 32 F6 04 18 D8 11 8F 04 CD 2......2........
000170: 42 03 E1 11 F5 FF 19 01 51 05 B7 ED 42 09 DA 00 B.......Q...B...
000180: 00 3E 01 32 FD 04 3A F4 04 3C 18 D4 01 23 00 E5 .>.2..:..<...#..
000190: D5 62 6B 13 36 00 ED B0 D1 E1 C9 E5 11 FE 04 CD .bk.6...........
0001A0: 8C 02 3A F3 04 12 13 01 0B 00 ED B0 11 22 05 CD ..:.........."..
0001B0: 8C 02 3A F2 04 12 13 21 46 05 06 0B 7E FE 3F 23 ..:....!F...~.?#
0001C0: E3 20 01 7E 23 E3 12 13 10 F2 E1 C9 11 FE 04 0E . .~#...........
0001D0: 0F CD 05 00 3C 28 68 AF 32 1E 05 3A F6 04 B7 28 ....<(h.2..:...(
0001E0: 34 21 2B 05 7E F5 36 42 23 5E 36 41 23 56 36 4B 4!+.~.6B#^6A#V6K
0001F0: E5 D5 11 22 05 0E 13 CD 05 00 21 23 05 11 33 05 ..."......!#..3.
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 2A 2A 0D 0A 0D 0A 09 54 68 65 20 73 75 62 6D 69 **.....The submi
000010: 74 20 66 69 6C 65 20 52 45 43 4D 50 45 44 2E 53 t file RECMPED.S
000020: 55 42 20 63 61 6E 20 62 65 20 75 73 65 64 20 74 UB can be used t
000030: 6F 20 72 65 63 6F 6D 70 69 6C 65 20 74 68 65 20 o recompile the
000040: 65 64 69 74 6F 72 3A 0D 0A 0D 0A 09 09 53 55 42 editor:......SUB
000050: 4D 49 54 20 52 45 43 4D 50 45 44 0D 0A 0D 0A 74 MIT RECMPED....t
000060: 68 65 20 64 69 73 74 72 69 62 75 74 65 64 20 66 he distributed f
000070: 6F 72 6D 20 6F 66 20 74 68 69 73 20 66 69 6C 65 orm of this file
000080: 20 61 73 73 75 6D 65 73 20 74 68 61 74 20 74 68 assumes that th
000090: 65 20 66 69 6C 65 73 20 61 72 65 20 61 6C 6C 20 e files are all
0000A0: 6F 6E 20 74 68 65 0D 0A 63 75 72 72 65 6E 74 20 on the..current
0000B0: 64 72 69 76 65 2E 20 20 59 6F 75 20 6D 61 79 20 drive. You may
0000C0: 77 61 6E 74 20 74 6F 20 61 64 64 20 22 42 3A 22 want to add "B:"
0000D0: 20 69 6E 20 66 72 6F 6E 74 20 74 68 65 20 66 69 in front the fi
0000E0: 6C 65 6E 61 6D 65 73 20 62 65 69 6E 67 0D 0A 63 lenames being..c
0000F0: 6F 6D 70 69 6C 65 64 20 28 6F 72 20 61 64 64 20 ompiled (or add
000100: 77 68 61 74 65 76 65 72 20 64 72 69 76 65 20 6E whatever drive n
000110: 61 6D 65 20 79 6F 75 20 61 72 65 20 75 73 69 6E ame you are usin
000120: 67 29 2E 20 20 4E 6F 74 65 20 74 68 61 74 20 53 g). Note that S
000130: 55 42 4D 49 54 20 6F 6E 6C 79 0D 0A 77 6F 72 6B UBMIT only..work
000140: 73 20 66 72 6F 6D 20 64 72 69 76 65 20 41 3A 20 s from drive A:
000150: 6F 6E 20 6D 61 6E 79 20 63 6F 6D 70 75 74 65 72 on many computer
000160: 73 2E 0D 0D 0A 09 4D 61 70 70 69 6E 67 20 79 6F s.....Mapping yo
000170: 75 72 20 6B 65 79 62 6F 61 72 64 2E 0D 0D 0A 09 ur keyboard.....
000180: 49 66 20 79 6F 75 20 77 61 6E 74 20 74 6F 20 6D If you want to m
000190: 6F 64 69 66 79 20 74 68 65 20 65 64 69 74 6F 72 odify the editor
0001A0: 20 74 6F 20 75 73 65 20 79 6F 75 72 20 6B 65 79 to use your key
0001B0: 62 6F 61 72 64 20 61 72 72 6F 77 20 6B 65 79 73 board arrow keys
0001C0: 0D 61 6E 64 20 66 75 6E 63 74 69 6F 6E 20 6B 65 .and function ke
0001D0: 79 73 2C 20 79 6F 75 20 77 69 6C 6C 20 77 61 6E ys, you will wan
0001E0: 74 20 74 6F 20 65 64 69 74 20 74 68 65 20 6D 6F t to edit the mo
0001F0: 64 75 6C 65 20 4B 45 59 42 4F 41 52 44 2E 4D 4F dule KEYBOARD.MO
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 4E 6F 74 65 73 Notes
000020: 20 66 6F 72 0D 20 20 20 20 20 20 20 20 20 20 20 for.
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 46 54 4C 20 4D 6F 64 75 6C 61 2D 32 20 45 64 69 FTL Modula-2 Edi
000050: 74 6F 72 2F 54 6F 6F 6C 4B 69 74 20 64 69 73 63 tor/ToolKit disc
000060: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000070: 20 20 20 20 20 20 20 20 20 20 20 20 57 6F 72 6B Work
000080: 6D 61 6E 20 26 20 41 73 73 6F 63 69 61 74 65 73 man & Associates
000090: 0D 0D 0A 0D 0D 0A 54 68 69 73 20 64 69 73 63 20 ......This disc
0000A0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 6E 74 contains the ent
0000B0: 69 72 65 20 73 6F 75 72 63 65 73 20 66 6F 72 20 ire sources for
0000C0: 74 68 65 20 46 54 4C 20 4D 6F 64 75 6C 61 2D 32 the FTL Modula-2
0000D0: 20 65 64 69 74 6F 72 20 61 6E 64 0D 61 20 6E 75 editor and.a nu
0000E0: 6D 62 65 72 20 6F 66 20 75 74 69 6C 69 74 69 65 mber of utilitie
0000F0: 73 20 77 68 69 63 68 20 79 6F 75 20 6D 61 79 20 s which you may
000100: 66 69 6E 64 20 75 73 65 66 75 6C 2E 20 0D 0D 0A find useful. ...
000110: 0D 0D 0A 53 65 65 20 74 68 65 20 65 6E 64 20 6F ...See the end o
000120: 66 20 74 68 69 73 20 66 69 6C 65 20 66 6F 72 20 f this file for
000130: 6D 6F 72 65 20 64 65 74 61 69 6C 73 20 6F 6E 20 more details on
000140: 74 68 65 20 75 74 69 6C 69 74 69 65 73 2E 20 20 the utilities.
000150: 54 68 65 79 20 61 72 65 3A 0D 0D 0D 0A 43 4F 4D They are:....COM
000160: 50 44 49 52 09 09 61 20 64 69 72 65 63 74 6F 72 PDIR..a director
000170: 79 20 63 6F 6D 70 61 72 65 20 70 72 6F 67 72 61 y compare progra
000180: 6D 2E 20 20 54 68 69 73 20 70 72 6F 67 72 61 6D m. This program
000190: 20 69 73 20 69 6E 76 61 6C 75 61 62 6C 65 20 74 is invaluable t
0001A0: 6F 0D 09 09 73 6F 66 74 77 61 72 65 20 64 65 76 o...software dev
0001B0: 65 6C 6F 70 65 72 73 20 77 68 6F 20 6E 65 65 64 elopers who need
0001C0: 20 74 6F 20 65 6E 73 75 72 65 20 74 68 61 74 20 to ensure that
0001D0: 74 68 65 69 72 20 64 69 73 74 72 69 62 75 74 69 their distributi
0001E0: 6F 6E 0D 09 09 64 69 73 63 73 20 61 72 65 20 63 on...discs are c
0001F0: 6F 6D 70 6C 65 74 65 20 61 6E 64 20 63 6F 6E 74 omplete and cont
Size : 512 (Real : 512)
000000: 44 2C 0D 0A 74 68 65 6E 20 72 65 63 6F 6D 70 69 D,..then recompi
000010: 6C 65 20 74 68 65 20 65 64 69 74 6F 72 20 28 73 le the editor (s
000020: 65 65 20 61 62 6F 76 65 29 2E 0D 0D 0A 09 45 64 ee above).....Ed
000030: 69 74 6F 72 20 43 6F 6F 6B 27 73 20 47 75 69 64 itor Cook's Guid
000040: 65 2E 0D 0A 0D 0A 09 54 68 65 20 6D 61 69 6E 20 e......The main
000050: 6D 6F 64 75 6C 65 73 20 69 6E 20 74 68 65 20 65 modules in the e
000060: 64 69 74 6F 72 20 61 72 65 3A 0D 0A 0D 0A 4D 45 ditor are:....ME
000070: 09 09 54 68 65 20 74 6F 70 20 6C 65 76 65 6C 20 ..The top level
000080: 6D 6F 64 75 6C 65 2E 0D 0A 45 44 49 54 43 4F 4E module...EDITCON
000090: 54 09 43 6F 6E 74 72 6F 6C 73 20 74 68 65 20 73 T.Controls the s
0000A0: 63 72 65 65 6E 20 64 69 73 70 6C 61 79 2E 0D 0A creen display...
0000B0: 45 44 49 54 44 49 53 50 09 53 6F 6D 65 20 6F 74 EDITDISP.Some ot
0000C0: 68 65 72 20 73 63 72 65 65 6E 20 64 69 73 70 6C her screen displ
0000D0: 61 79 20 70 72 6F 63 65 64 75 72 65 73 2D 2D 65 ay procedures--e
0000E0: 73 73 65 6E 74 69 61 6C 6C 79 20 70 61 72 74 0D ssentially part.
0000F0: 0A 09 6F 66 20 45 44 49 54 43 4F 4E 54 2C 20 6B ..of EDITCONT, k
000100: 65 70 74 20 73 65 70 61 72 61 74 65 20 66 6F 72 ept separate for
000110: 20 65 61 73 65 20 6F 66 20 6D 61 69 6E 74 65 6E ease of mainten
000120: 61 6E 63 65 2E 0D 0A 4D 41 4B 45 45 44 49 54 09 ance...MAKEEDIT.
000130: 50 65 72 66 6F 72 6D 73 20 74 68 65 20 63 68 61 Performs the cha
000140: 6E 67 65 73 20 74 6F 20 74 68 65 20 66 69 6C 65 nges to the file
000150: 28 73 29 20 62 65 69 6E 67 20 65 64 69 74 65 64 (s) being edited
000160: 2E 0D 0A 4B 45 59 42 4F 41 52 44 09 41 63 63 65 ...KEYBOARD.Acce
000170: 70 74 73 20 69 6E 70 75 74 20 66 72 6F 6D 20 74 pts input from t
000180: 68 65 20 6B 65 79 62 6F 61 72 64 20 61 6E 64 20 he keyboard and
000190: 63 61 6C 6C 73 20 61 70 70 72 6F 70 72 69 61 74 calls appropriat
0001A0: 65 0D 0A 09 09 72 6F 75 74 69 6E 65 73 20 74 6F e....routines to
0001B0: 20 70 65 72 66 6F 72 6D 20 74 68 65 20 72 65 71 perform the req
0001C0: 75 65 73 74 65 64 20 65 64 69 74 20 66 75 6E 63 uested edit func
0001D0: 74 69 6F 6E 73 2E 0D 0A 44 4F 4D 45 4E 55 09 09 tions...DOMENU..
0001E0: 53 75 70 70 6F 72 74 73 20 74 68 65 20 6F 70 74 Supports the opt
0001F0: 69 6F 6E 73 20 6D 65 6E 75 20 28 74 68 61 74 20 ions menu (that
Size : 512 (Real : 512)
000000: 61 69 6E 20 74 68 65 20 6C 61 74 65 73 74 20 76 ain the latest v
000010: 65 72 73 69 6F 6E 73 20 6F 66 20 66 69 6C 65 73 ersions of files
000020: 2E 0A 09 09 53 65 65 20 74 68 65 20 66 69 6C 65 ....See the file
000030: 20 43 4F 4D 50 44 49 52 2E 4D 4F 44 20 61 6E 64 COMPDIR.MOD and
000040: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 62 65 instructions be
000050: 6C 6F 77 2E 0D 0A 43 4F 4D 50 41 52 45 09 09 61 low...COMPARE..a
000060: 6E 20 41 73 63 69 69 20 66 69 6C 65 20 63 6F 6D n Ascii file com
000070: 70 61 72 69 73 6F 6E 20 70 72 6F 67 72 61 6D 2E parison program.
000080: 20 20 54 68 69 73 20 70 72 6F 67 72 61 6D 20 64 This program d
000090: 6F 65 73 20 6C 69 6E 65 2D 62 79 2D 0A 09 09 6C oes line-by-...l
0000A0: 69 6E 65 20 63 6F 6D 70 61 72 69 73 6F 6E 73 20 ine comparisons
0000B0: 6F 66 20 66 69 6C 65 73 2E 20 20 49 74 20 75 73 of files. It us
0000C0: 65 73 20 61 20 70 6F 77 65 72 66 75 6C 20 63 6F es a powerful co
0000D0: 6D 70 61 72 69 73 6F 6E 0D 0A 09 09 6D 65 74 68 mparison....meth
0000E0: 6F 64 20 77 68 69 63 68 20 72 61 72 65 6C 79 20 od which rarely
0000F0: 67 65 74 73 20 6C 6F 73 74 2C 20 61 6E 64 20 77 gets lost, and w
000100: 68 69 63 68 20 63 61 6E 20 64 65 74 65 63 74 20 hich can detect
000110: 62 6C 6F 63 6B 0D 09 09 6D 6F 76 65 73 2E 20 20 block...moves.
000120: 53 65 65 20 74 68 65 20 66 69 6C 65 20 43 4F 4D See the file COM
000130: 50 41 52 45 2E 4D 4F 44 20 61 6E 64 20 74 68 65 PARE.MOD and the
000140: 20 64 6F 63 75 6D 65 6E 74 61 74 69 6F 6E 20 62 documentation b
000150: 65 6C 6F 77 2E 0D 0D 0A 43 41 54 09 09 61 20 67 elow....CAT..a g
000160: 65 6E 65 72 61 6C 69 73 65 64 20 6C 69 73 74 69 eneralised listi
000170: 6E 67 20 6D 6F 64 75 6C 65 20 69 6E 74 65 6E 64 ng module intend
000180: 65 64 20 70 72 69 6D 61 72 69 6C 79 20 66 6F 72 ed primarily for
000190: 20 75 73 65 20 6F 6E 0D 0A 09 09 52 43 50 4D 73 use on....RCPMs
0001A0: 2E 20 20 49 74 20 63 61 6E 20 64 6F 20 74 61 62 . It can do tab
0001B0: 20 65 78 70 61 6E 73 69 6F 6E 2C 20 6C 69 6E 65 expansion, line
0001C0: 20 6E 75 6D 62 65 72 69 6E 67 2C 20 73 74 72 69 numbering, stri
0001D0: 6E 67 20 73 65 61 72 63 68 2C 0D 09 09 70 6F 73 ng search,...pos
0001E0: 69 74 69 6F 6E 20 62 79 20 6C 69 6E 65 20 6E 75 ition by line nu
0001F0: 6D 62 65 72 20 61 6E 64 20 77 69 6C 64 20 63 61 mber and wild ca
Size : 512 (Real : 512)
000000: 69 73 2C 20 6F 70 65 6E 20 66 69 6C 65 2C 0D 0A is, open file,..
000010: 09 63 6F 6D 70 2F 65 78 69 74 2C 20 65 74 63 29 .comp/exit, etc)
000020: 2E 0D 0A 45 44 49 54 53 54 41 54 09 50 69 63 6B ...EDITSTAT.Pick
000030: 73 20 75 70 20 74 68 65 20 66 69 6C 65 20 70 6F s up the file po
000040: 73 69 74 69 6F 6E 20 66 6F 72 20 61 20 66 69 6C sition for a fil
000050: 65 20 77 68 65 6E 20 69 74 27 73 20 6F 70 65 6E e when it's open
000060: 65 64 2E 0D 0A 4D 41 43 52 4F 53 09 09 48 61 6E ed...MACROS..Han
000070: 64 6C 65 73 20 6D 61 63 72 6F 20 65 78 70 61 6E dles macro expan
000080: 73 69 6F 6E 20 61 6E 64 20 64 65 66 69 6E 69 74 sion and definit
000090: 69 6F 6E 2C 20 69 6E 63 6C 75 64 69 6E 67 20 74 ion, including t
0000A0: 68 65 0D 0A 09 6C 65 61 72 6E 20 6D 6F 64 65 2E he...learn mode.
0000B0: 20 20 4D 61 6B 65 73 20 61 6E 64 20 73 61 76 65 Makes and save
0000C0: 73 20 74 68 65 6D 20 22 6F 6E 20 74 68 65 20 66 s them "on the f
0000D0: 6C 79 22 20 64 75 72 69 6E 67 20 65 64 69 74 73 ly" during edits
0000E0: 2C 20 74 6F 6F 2E 0D 0A 53 45 54 55 50 43 41 4C , too...SETUPCAL
0000F0: 20 20 20 20 20 20 20 20 45 64 69 74 6F 72 20 75 Editor u
000100: 73 65 73 20 74 68 69 73 20 6D 6F 64 75 6C 65 20 ses this module
000110: 74 6F 20 63 61 6C 6C 20 74 68 65 20 63 6F 6D 70 to call the comp
000120: 69 6C 65 72 73 2E 20 20 53 65 65 0D 0A 09 61 6C ilers. See...al
000130: 73 6F 20 74 68 65 20 6D 6F 64 75 6C 65 20 43 48 so the module CH
000140: 41 49 4E 20 66 6F 72 20 61 6E 6F 74 68 65 72 20 AIN for another
000150: 65 78 61 6D 70 6C 65 20 6F 66 20 74 68 69 73 2E example of this.
000160: 0D 0D 0A 09 4E 6F 74 65 20 66 6F 72 20 75 73 65 ....Note for use
000170: 72 73 20 6F 72 20 61 62 75 73 65 72 73 20 6F 66 rs or abusers of
000180: 20 64 75 6D 62 20 74 65 72 6D 69 6E 61 6C 73 2E dumb terminals.
000190: 0D 0A 0D 0A 59 6F 75 20 6D 75 73 74 20 72 65 6E ....You must ren
0001A0: 61 6D 65 20 45 44 49 54 43 4F 4E 54 2E 44 4D 42 ame EDITCONT.DMB
0001B0: 20 61 6E 64 20 45 44 49 54 44 49 53 50 2E 44 4D and EDITDISP.DM
0001C0: 42 20 74 6F 20 65 6E 64 20 69 6E 20 2E 4D 4F 44 B to end in .MOD
0001D0: 20 62 65 66 6F 72 65 0D 0A 72 65 63 6F 6D 70 69 before..recompi
0001E0: 6C 69 6E 67 20 74 68 65 20 64 75 6D 62 20 65 64 ling the dumb ed
0001F0: 69 74 6F 72 20 28 77 69 74 68 6F 75 74 20 69 6E itor (without in
Size : 512 (Real : 512)
000000: 72 64 73 2E 0D 0D 0A 09 09 53 65 65 20 74 68 65 rds......See the
000010: 20 66 69 6C 65 20 43 41 54 2E 4D 4F 44 20 61 6E file CAT.MOD an
000020: 64 20 74 68 65 20 64 6F 63 75 6D 65 6E 74 61 74 d the documentat
000030: 69 6F 6E 20 62 65 6C 6F 77 2E 0D 0D 0A 0D 0D 0A ion below.......
000040: 50 41 54 54 45 52 4E 09 09 54 68 69 73 20 69 73 PATTERN..This is
000050: 20 61 20 70 61 74 74 65 72 6E 20 6D 61 74 63 68 a pattern match
000060: 69 6E 67 20 6D 6F 64 75 6C 65 20 77 68 69 63 68 ing module which
000070: 20 6D 61 74 63 68 65 73 20 63 6F 6D 70 6C 65 78 matches complex
000080: 0D 0A 09 09 28 65 76 65 6E 20 72 65 63 75 72 73 ....(even recurs
000090: 69 76 65 21 29 20 70 61 74 74 65 72 6E 73 2E 20 ive!) patterns.
0000A0: 20 53 65 65 20 50 41 54 54 45 52 4E 2E 44 45 46 See PATTERN.DEF
0000B0: 20 66 6F 72 20 64 65 73 63 72 69 70 74 69 6F 6E for description
0000C0: 0D 0A 09 09 6F 66 20 75 73 65 2C 20 61 6E 64 20 ....of use, and
0000D0: 54 65 73 74 50 61 74 2E 4D 4F 44 20 61 73 20 61 TestPat.MOD as a
0000E0: 6E 20 65 78 61 6D 70 6C 65 2E 0D 0D 0A 53 43 52 n example....SCR
0000F0: 45 45 4E 49 4F 09 54 68 65 20 73 63 72 65 65 6E EENIO.The screen
000100: 20 69 6E 70 75 74 2D 6F 75 74 70 75 74 20 72 6F input-output ro
000110: 75 74 69 6E 65 73 20 75 73 65 64 20 62 79 20 74 utines used by t
000120: 68 65 20 65 64 69 74 6F 72 2E 20 20 54 68 65 0D he editor. The.
000130: 0A 09 09 73 74 61 6E 64 61 72 64 20 76 65 72 73 ...standard vers
000140: 69 6F 6E 20 6F 66 20 53 63 72 65 65 6E 49 4F 20 ion of ScreenIO
000150: 28 53 43 52 45 45 4E 49 4F 2E 4D 4F 44 29 2C 20 (SCREENIO.MOD),
000160: 70 6C 75 73 20 73 6F 6D 65 20 6D 65 6D 6F 72 79 plus some memory
000170: 0D 0A 09 09 6D 61 70 70 65 64 20 76 65 72 73 69 ....mapped versi
000180: 6F 6E 73 20 61 72 65 20 73 75 70 70 6C 69 65 64 ons are supplied
000190: 2E 20 20 53 43 52 45 45 4E 49 4F 2E 4F 53 42 20 . SCREENIO.OSB
0001A0: 69 73 20 66 6F 72 20 74 68 65 20 4F 73 62 6F 72 is for the Osbor
0001B0: 6E 65 0D 0A 09 09 31 2C 20 53 43 52 45 45 4E 49 ne....1, SCREENI
0001C0: 4F 2E 4D 42 45 20 69 73 20 66 6F 72 20 74 68 65 O.MBE is for the
0001D0: 20 4D 69 63 72 6F 42 65 65 2C 20 61 6E 64 20 53 MicroBee, and S
0001E0: 43 52 45 45 4E 49 4F 2E 45 41 52 20 69 73 20 66 CREENIO.EAR is f
0001F0: 6F 72 0D 0A 09 09 74 68 65 20 45 61 72 74 68 20 or....the Earth
Size : 512 (Real : 512)
000000: 73 65 72 74 2F 64 65 6C 65 74 65 20 6C 69 6E 65 sert/delete line
000010: 20 6F 72 20 63 6C 65 61 72 20 74 6F 0D 0A 65 6E or clear to..en
000020: 64 20 6F 66 20 6C 69 6E 65 29 2E 20 20 4D 69 6E d of line). Min
000030: 64 20 79 6F 75 20 64 6F 6E 27 74 20 6F 76 65 72 d you don't over
000040: 77 72 69 74 65 20 79 6F 75 72 20 6F 6E 6C 79 20 write your only
000050: 63 6F 70 79 20 6F 66 20 4D 45 2E 43 4F 4D 0D 0A copy of ME.COM..
000060: 77 68 69 6C 65 20 65 78 70 65 72 69 6D 65 6E 74 while experiment
000070: 69 6E 67 2D 2D 61 6E 64 20 63 6F 70 79 20 4D 45 ing--and copy ME
000080: 2E 43 4F 4D 20 66 72 6F 6D 20 79 6F 75 72 20 6F .COM from your o
000090: 72 69 67 69 6E 61 6C 20 64 69 73 6B 73 20 69 66 riginal disks if
0000A0: 0D 0A 79 6F 75 20 68 61 76 65 20 61 6E 79 20 64 ..you have any d
0000B0: 6F 75 62 74 73 2E 0D 0D 0A 49 66 20 73 74 72 61 oubts....If stra
0000C0: 70 70 65 64 20 66 6F 72 20 72 6F 6F 6D 2C 20 6F pped for room, o
0000D0: 72 20 6A 75 73 74 20 65 78 70 65 72 69 6D 65 6E r just experimen
0000E0: 74 69 6E 67 2C 20 4D 41 43 52 4F 53 2E 4D 42 45 ting, MACROS.MBE
0000F0: 20 68 61 73 20 6E 6F 0D 0A 66 75 6E 63 74 69 6F has no..functio
000100: 6E 20 6B 65 79 20 63 6F 64 65 20 61 6E 64 20 74 n key code and t
000110: 68 65 72 65 66 6F 72 65 20 69 73 20 73 6D 61 6C herefore is smal
000120: 6C 65 72 2E 20 20 41 73 20 62 65 66 6F 72 65 2C ler. As before,
000130: 20 72 65 6E 61 6D 65 0D 0A 69 74 20 74 6F 20 4D rename..it to M
000140: 41 43 52 4F 53 2E 4D 4F 44 20 62 65 66 6F 72 65 ACROS.MOD before
000150: 20 72 65 63 6F 6D 70 69 6C 69 6E 67 2E 0D 0D 0A recompiling....
000160: 09 09 53 41 4D 50 4C 45 20 50 52 4F 47 52 41 4D ..SAMPLE PROGRAM
000170: 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 0D 0A 0D INSTRUCTIONS...
000180: 0A 09 09 43 41 54 2E 4D 4F 44 0D 0A 09 09 3D 3D ...CAT.MOD....==
000190: 3D 3D 3D 3D 3D 0D 0A 0D 0A 41 20 66 69 6C 65 20 =====....A file
0001A0: 64 69 73 70 6C 61 79 20 70 72 6F 67 72 61 6D 20 display program
0001B0: 77 69 74 68 6F 75 74 20 74 68 65 20 73 68 6F 72 without the shor
0001C0: 74 63 6F 6D 69 6E 67 73 20 6F 66 20 27 74 79 70 tcomings of 'typ
0001D0: 65 27 2E 20 20 43 41 54 20 63 61 6E 3A 0D 0D 0A e'. CAT can:...
0001E0: 09 4E 75 6D 62 65 72 20 6F 75 74 70 75 74 20 6C .Number output l
0001F0: 69 6E 65 73 0D 0A 09 50 61 67 65 20 6F 75 74 70 ines...Page outp
Size : 512 (Real : 512)
000000: 43 6F 6D 70 75 74 65 72 73 27 20 5A 38 30 20 43 Computers' Z80 C
000010: 61 72 64 2E 20 20 54 6F 20 70 72 6F 64 75 63 65 ard. To produce
000020: 20 61 20 6D 65 6D 6F 72 79 20 6D 61 70 70 65 64 a memory mapped
000030: 0D 0A 09 09 76 65 72 73 69 6F 6E 2C 20 73 74 61 ....version, sta
000040: 72 74 20 77 69 74 68 20 74 68 65 20 4D 69 63 72 rt with the Micr
000050: 6F 42 65 65 2C 20 61 73 20 74 68 61 74 20 69 73 oBee, as that is
000060: 20 74 68 65 20 6D 6F 73 74 20 73 74 61 6E 64 61 the most standa
000070: 72 64 2E 0D 0D 0A 09 09 54 6F 20 72 65 70 6C 61 rd......To repla
000080: 63 65 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 ce the standard
000090: 76 65 72 73 69 6F 6E 20 6F 66 20 53 63 72 65 65 version of Scree
0000A0: 6E 49 4F 20 62 79 20 61 20 6D 65 6D 6F 72 79 20 nIO by a memory
0000B0: 6D 61 70 70 65 64 0D 0A 09 09 76 65 72 73 69 6F mapped....versio
0000C0: 6E 2C 20 73 69 6D 70 6C 79 20 63 6F 6D 70 69 6C n, simply compil
0000D0: 65 20 74 68 65 20 6D 65 6D 6F 72 79 20 6D 61 70 e the memory map
0000E0: 70 65 64 20 69 6D 70 6C 65 6D 65 6E 74 61 74 69 ped implementati
0000F0: 6F 6E 20 6D 6F 64 75 6C 65 0D 0A 09 09 69 6E 20 on module....in
000100: 70 6C 61 63 65 20 6F 66 20 74 68 65 20 73 74 61 place of the sta
000110: 6E 64 61 72 64 20 69 6D 70 6C 65 6D 65 6E 74 61 ndard implementa
000120: 74 69 6F 6E 20 6D 6F 64 75 6C 65 2D 2D 6E 6F 20 tion module--no
000130: 63 68 61 6E 67 65 73 20 61 72 65 0D 0A 09 09 6E changes are....n
000140: 65 65 64 65 64 20 69 6E 20 74 68 65 20 64 65 66 eeded in the def
000150: 69 6E 69 74 69 6F 6E 20 6D 6F 64 75 6C 65 2E 20 inition module.
000160: 20 4E 4F 54 45 3A 20 74 68 65 20 4F 73 62 6F 72 NOTE: the Osbor
000170: 6E 65 20 76 65 72 73 69 6F 6E 20 69 73 0D 0A 09 ne version is...
000180: 09 66 6F 72 20 4F 73 62 6F 72 6E 65 20 49 73 20 .for Osborne Is
000190: 6F 6E 6C 79 2C 20 4E 4F 54 20 74 68 65 20 45 78 only, NOT the Ex
0001A0: 65 63 75 74 69 76 65 2E 20 20 54 68 65 20 56 69 ecutive. The Vi
0001B0: 78 65 6E 20 69 73 20 61 6C 73 6F 0D 0A 09 09 73 xen is also....s
0001C0: 6C 69 67 68 74 6C 79 20 64 69 66 66 65 72 65 6E lightly differen
0001D0: 74 2E 0D 0D 0A 09 43 6F 6D 70 69 6C 69 6E 67 20 t.....Compiling
0001E0: 74 68 65 20 65 64 69 74 6F 72 2E 0D 09 2A 2A 2A the editor...***
0001F0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
Size : 512 (Real : 512)
000000: 75 74 0D 0A 09 45 78 70 61 6E 64 20 74 61 62 73 ut...Expand tabs
000010: 20 74 6F 20 73 70 61 63 65 73 0D 0A 09 57 72 61 to spaces...Wra
000020: 70 20 6C 69 6E 65 73 20 66 6F 72 20 6C 69 73 74 p lines for list
000030: 69 6E 67 20 74 6F 20 74 65 72 6D 69 6E 61 6C 73 ing to terminals
000040: 20 77 69 74 68 6F 75 74 20 61 75 74 6F 2D 6C 69 without auto-li
000050: 6E 65 20 77 72 61 70 0D 0A 09 52 65 70 6F 73 69 ne wrap...Reposi
000060: 74 69 6F 6E 20 62 79 20 6C 69 6E 65 20 6E 75 6D tion by line num
000070: 62 65 72 20 6F 72 20 62 79 20 73 74 72 69 6E 67 ber or by string
000080: 20 73 65 61 72 63 68 0D 0A 09 55 73 65 20 77 69 search...Use wi
000090: 6C 64 20 63 61 72 64 73 20 6F 6E 20 74 68 65 20 ld cards on the
0000A0: 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 0D 0A 09 53 command line...S
0000B0: 65 65 20 6E 6F 6E 2D 70 72 69 6E 74 69 6E 67 20 ee non-printing
0000C0: 63 68 61 72 61 63 74 65 72 73 20 69 6E 20 68 65 characters in he
0000D0: 78 20 28 6F 74 68 65 72 20 74 68 61 6E 20 43 52 x (other than CR
0000E0: 2F 4C 46 2F 54 41 42 29 0D 0A 0D 0A 43 41 54 20 /LF/TAB)....CAT
0000F0: 69 73 20 6E 6F 74 20 61 20 43 50 2F 4D 20 69 6D is not a CP/M im
000100: 70 6C 65 6D 65 6E 74 61 74 69 6F 6E 20 6F 66 20 plementation of
000110: 74 68 65 20 63 61 74 20 70 72 6F 67 72 61 6D 20 the cat program
000120: 6F 6E 20 55 4E 49 58 3B 20 69 74 20 69 73 20 6D on UNIX; it is m
000130: 6F 72 65 20 6C 69 6B 65 0D 0A 55 4E 49 58 27 73 ore like..UNIX's
000140: 20 4D 4F 52 45 2E 0D 0A 0D 0A 54 6F 20 72 75 6E MORE.....To run
000150: 20 74 68 65 20 70 72 6F 67 72 61 6D 3A 0D 0A 0D the program:...
000160: 0A 09 43 41 54 20 20 20 66 69 6C 65 20 6C 69 73 ..CAT file lis
000170: 74 20 2F 6F 70 74 69 6F 6E 73 0D 0A 6F 72 0D 0A t /options..or..
000180: 09 43 41 54 20 20 20 66 69 6C 65 20 6C 69 73 74 .CAT file list
000190: 20 5B 6F 70 74 69 6F 6E 73 0D 0A 0D 0A 54 68 65 [options....The
0001A0: 20 6F 70 74 69 6F 6E 73 20 6D 61 79 20 61 6C 73 options may als
0001B0: 6F 20 62 65 20 6F 6D 69 74 74 65 64 2E 20 20 54 o be omitted. T
0001C0: 68 65 20 22 66 69 6C 65 20 6C 69 73 74 22 20 69 he "file list" i
0001D0: 73 20 61 20 6C 69 73 74 20 6F 66 20 66 69 6C 65 s a list of file
0001E0: 20 6E 61 6D 65 73 20 6F 72 0D 0A 77 69 6C 64 20 names or..wild
0001F0: 63 61 72 64 73 20 77 68 69 63 68 20 6D 61 74 63 cards which matc
Size : 512 (Real : 512)
000000: 73 74 72 69 6E 67 20 69 73 20 73 65 61 72 63 68 string is search
000010: 65 64 20 66 6F 72 20 61 67 61 69 6E 2E 0D 0A 0D ed for again....
000020: 0A 4E 09 09 54 6F 67 67 6C 65 20 6C 69 6E 65 20 .N..Toggle line
000030: 6E 75 6D 62 65 72 69 6E 67 20 6F 70 74 69 6F 6E numbering option
000040: 2E 0D 0A 49 09 09 54 6F 67 67 6C 65 20 74 61 62 ...I..Toggle tab
000050: 20 65 78 70 61 6E 73 69 6F 6E 20 6F 70 74 69 6F expansion optio
000060: 6E 2E 0D 0A 57 09 09 54 6F 67 67 6C 65 20 73 6F n...W..Toggle so
000070: 66 74 77 61 72 65 20 6C 69 6E 65 20 77 72 61 70 ftware line wrap
000080: 20 6F 70 74 69 6F 6E 2E 20 20 49 66 20 74 68 65 option. If the
000090: 20 57 20 69 73 20 66 6F 6C 6C 6F 77 65 64 20 62 W is followed b
0000A0: 79 20 61 0D 0A 09 6E 75 6D 62 65 72 2C 20 74 68 y a...number, th
0000B0: 65 20 6E 75 6D 62 65 72 20 72 65 73 65 74 73 20 e number resets
0000C0: 74 68 65 20 73 63 72 65 65 6E 20 77 69 64 74 68 the screen width
0000D0: 2E 0D 0A 50 09 09 54 6F 67 67 6C 65 20 70 61 67 ...P..Toggle pag
0000E0: 65 20 6D 6F 64 65 2E 20 49 66 20 74 68 65 20 50 e mode. If the P
0000F0: 20 69 73 20 66 6F 6C 6C 6F 77 65 64 20 79 20 61 is followed y a
000100: 20 6E 75 6D 62 65 72 2C 20 69 74 20 72 65 73 65 number, it rese
000110: 74 73 0D 0A 09 74 68 65 20 70 61 67 65 20 6C 65 ts...the page le
000120: 6E 67 74 68 2E 20 20 4E 6F 74 65 20 74 68 61 74 ngth. Note that
000130: 20 74 68 65 20 66 69 72 73 74 20 50 20 6F 6E 20 the first P on
000140: 61 6E 79 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 any command line
000150: 0D 0A 09 61 6C 77 61 79 73 20 63 61 75 73 65 73 ...always causes
000160: 20 70 61 67 65 20 6D 6F 64 65 20 74 6F 20 62 65 page mode to be
000170: 20 63 6C 65 61 72 65 64 2C 20 61 73 20 70 61 67 cleared, as pag
000180: 65 20 6D 6F 64 65 20 69 73 20 61 6C 77 61 79 73 e mode is always
000190: 0D 0A 09 65 6E 61 62 6C 65 64 20 77 68 65 6E 20 ...enabled when
0001A0: 74 68 65 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 the command line
0001B0: 20 69 73 20 70 72 6F 63 65 73 73 65 64 2E 20 20 is processed.
0001C0: 48 65 6E 63 65 2C 20 74 6F 20 6A 75 73 74 0D 0A Hence, to just..
0001D0: 09 63 68 61 6E 67 65 20 74 68 65 20 70 61 67 65 .change the page
0001E0: 20 6C 65 6E 67 74 68 2C 20 79 6F 75 20 6D 75 73 length, you mus
0001F0: 74 20 64 6F 20 50 32 30 50 20 28 73 61 79 29 2E t do P20P (say).
Size : 512 (Real : 512)
000000: 68 20 66 69 6C 65 20 6E 61 6D 65 73 2E 20 20 46 h file names. F
000010: 6F 72 20 65 78 61 6D 70 6C 65 3A 0D 0A 0D 0A 09 or example:.....
000020: 43 41 54 20 62 3A 2A 2E 64 65 66 20 62 3A 2A 2E CAT b:*.def b:*.
000030: 6D 6F 64 0D 0D 0A 77 69 6C 6C 20 6C 69 73 74 20 mod...will list
000040: 74 68 65 20 64 65 66 69 6E 69 74 69 6F 6E 20 66 the definition f
000050: 69 6C 65 73 2C 20 74 68 65 6E 20 74 68 65 20 6D iles, then the m
000060: 6F 64 75 6C 65 20 66 69 6C 65 73 2E 0D 0A 0D 0A odule files.....
000070: 41 6E 20 6F 70 74 69 6F 6E 20 69 73 20 7A 65 72 An option is zer
000080: 6F 20 6F 72 20 6D 6F 72 65 20 61 6C 70 68 61 62 o or more alphab
000090: 65 74 69 63 73 2E 20 20 53 6F 6D 65 20 6F 66 20 etics. Some of
0000A0: 74 68 65 20 61 6C 70 68 61 62 65 74 69 63 73 20 the alphabetics
0000B0: 6D 61 79 20 62 65 0D 0A 66 6F 6C 6C 6F 77 65 64 may be..followed
0000C0: 20 62 79 20 61 20 6E 75 6D 62 65 72 2E 20 20 49 by a number. I
0000D0: 66 20 61 20 6E 75 6D 62 65 72 20 69 73 20 69 6E f a number is in
0000E0: 63 6C 75 64 65 64 2C 20 69 74 20 6D 75 73 74 20 cluded, it must
0000F0: 69 6D 6D 65 64 69 61 74 65 6C 79 20 66 6F 6C 6C immediately foll
000100: 6F 77 0D 0A 74 68 65 20 6F 70 74 69 6F 6E 20 63 ow..the option c
000110: 68 61 72 61 63 74 65 72 2D 2D 69 74 20 6D 75 73 haracter--it mus
000120: 74 20 6E 6F 74 20 62 65 20 73 65 70 61 72 61 74 t not be separat
000130: 65 64 2E 0D 0A 0D 0A 54 68 65 20 6F 70 74 69 6F ed.....The optio
000140: 6E 73 20 61 72 65 3A 0D 0A 0D 0A 09 50 20 2D 20 ns are:.....P -
000150: 75 73 65 20 70 61 67 65 20 6D 6F 64 65 2E 20 20 use page mode.
000160: 41 74 20 74 68 65 20 65 6E 64 20 6F 66 20 65 76 At the end of ev
000170: 65 72 79 20 70 61 67 65 20 6F 66 20 6F 75 74 70 ery page of outp
000180: 75 74 2C 20 43 41 54 20 77 69 6C 6C 0D 0A 70 72 ut, CAT will..pr
000190: 6F 6D 70 74 20 66 6F 72 20 61 20 63 6F 6D 6D 61 ompt for a comma
0001A0: 6E 64 20 28 73 65 65 20 62 65 6C 6F 77 29 2E 20 nd (see below).
0001B0: 20 54 68 65 20 6F 70 74 69 6F 6E 20 6D 61 79 20 The option may
0001C0: 62 65 20 66 6F 6C 6C 6F 77 65 64 20 62 79 20 74 be followed by t
0001D0: 68 65 20 6E 75 6D 62 65 72 0D 0A 6F 66 20 6C 69 he number..of li
0001E0: 6E 65 73 20 74 6F 20 61 20 70 61 67 65 2E 20 20 nes to a page.
0001F0: 44 65 66 61 75 6C 74 20 6C 65 6E 67 74 68 20 69 Default length i
Size : 512 (Real : 512)
000000: 0D 0A 51 09 09 51 75 69 74 20 74 68 69 73 20 66 ..Q..Quit this f
000010: 69 6C 65 2E 0D 0A 43 74 72 6C 20 43 09 09 52 65 ile...Ctrl C..Re
000020: 74 75 72 6E 20 74 6F 20 43 50 2F 4D 2E 0D 0A 0D turn to CP/M....
000030: 0A 0D 0A 09 43 6F 6D 70 61 72 65 20 2D 20 63 6F ....Compare - co
000040: 6D 70 61 72 65 20 74 77 6F 20 41 73 63 69 69 20 mpare two Ascii
000050: 66 69 6C 65 73 20 6C 69 6E 65 20 62 79 20 6C 69 files line by li
000060: 6E 65 0D 0A 09 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ne...===========
000070: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
000080: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
000090: 3D 3D 3D 0D 0A 0D 0A 54 68 69 73 20 70 72 6F 67 ===....This prog
0000A0: 72 61 6D 20 64 69 73 70 6C 61 79 73 20 74 68 65 ram displays the
0000B0: 20 64 69 66 66 65 72 65 6E 63 65 73 20 62 65 74 differences bet
0000C0: 77 65 65 6E 20 74 77 6F 20 66 69 6C 65 73 2E 20 ween two files.
0000D0: 20 49 74 20 70 72 65 73 65 6E 74 73 20 74 68 65 It presents the
0000E0: 0D 0A 6F 75 74 70 75 74 20 69 6E 20 61 20 72 65 ..output in a re
0000F0: 61 73 6F 6E 61 62 6C 79 20 72 65 61 64 61 62 6C asonably readabl
000100: 65 20 66 6F 72 6D 20 28 69 74 20 77 6F 75 6C 64 e form (it would
000110: 20 6C 6F 6F 6B 20 62 65 61 75 74 20 6F 6E 20 61 look beaut on a
000120: 20 63 6F 6C 6F 75 72 20 70 72 69 6E 74 65 72 29 colour printer)
000130: 2E 0D 0A 54 68 65 20 70 72 6F 67 72 61 6D 20 69 ...The program i
000140: 73 20 62 61 73 65 64 20 6F 6E 20 61 20 6D 65 74 s based on a met
000150: 68 6F 64 20 64 65 73 63 72 69 62 65 64 20 62 79 hod described by
000160: 20 50 61 75 6C 20 48 65 63 6B 65 6C 20 69 6E 20 Paul Heckel in
000170: 27 41 20 54 65 63 68 6E 69 71 75 65 0D 0A 66 6F 'A Technique..fo
000180: 72 20 49 73 6F 6C 61 74 69 6E 67 20 44 69 66 66 r Isolating Diff
000190: 65 72 65 6E 63 65 73 20 62 65 74 77 65 65 6E 20 erences between
0001A0: 46 69 6C 65 73 27 2C 20 43 6F 6D 6D 75 6E 69 63 Files', Communic
0001B0: 61 74 69 6F 6E 73 20 6F 66 20 74 68 65 20 41 43 ations of the AC
0001C0: 4D 2C 20 56 6F 6C 20 32 31 0D 0A 4E 6F 20 34 2C M, Vol 21..No 4,
0001D0: 20 41 70 72 69 6C 20 31 39 37 38 2C 20 70 70 20 April 1978, pp
0001E0: 32 36 34 2D 32 36 38 2E 20 20 54 6F 20 72 75 6E 264-268. To run
0001F0: 20 74 68 65 20 70 72 6F 67 72 61 6D 3A 0D 0D 0A the program:...
Size : 512 (Real : 512)
000000: 73 20 32 34 2E 0D 09 57 20 2D 20 53 65 74 20 73 s 24...W - Set s
000010: 6F 66 74 77 61 72 65 20 6C 69 6E 65 20 77 72 61 oftware line wra
000020: 70 2E 20 20 4C 69 6E 65 73 20 6C 6F 6E 67 65 72 p. Lines longer
000030: 20 74 68 61 6E 20 74 68 65 20 6C 69 6E 65 20 77 than the line w
000040: 69 64 74 68 20 77 69 6C 6C 20 62 65 0D 0A 77 72 idth will be..wr
000050: 61 70 70 65 64 20 61 72 6F 75 6E 64 20 62 79 20 apped around by
000060: 74 68 65 20 73 6F 66 74 77 61 72 65 2E 20 20 54 the software. T
000070: 68 69 73 20 69 73 20 75 73 65 66 75 6C 20 69 66 his is useful if
000080: 20 79 6F 75 72 20 74 65 72 6D 69 6E 61 6C 20 77 your terminal w
000090: 69 6C 6C 20 6E 6F 74 0D 0A 70 65 72 66 6F 72 6D ill not..perform
0000A0: 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 20 77 hardware line w
0000B0: 72 61 70 73 2E 20 20 49 74 20 61 6C 73 6F 20 70 raps. It also p
0000C0: 72 65 76 65 6E 74 73 20 61 6E 79 20 74 65 78 74 revents any text
0000D0: 20 66 61 6C 6C 69 6E 67 20 6F 66 66 20 74 68 65 falling off the
0000E0: 20 74 6F 70 0D 0A 6F 66 20 73 63 72 65 65 6E 20 top..of screen
0000F0: 61 73 20 74 68 65 20 72 65 73 75 6C 74 20 6F 66 as the result of
000100: 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 20 77 hardware line w
000110: 72 61 70 73 2E 20 20 22 57 22 20 6D 61 79 20 62 raps. "W" may b
000120: 65 20 66 6F 6C 6C 6F 77 65 64 20 62 79 20 74 68 e followed by th
000130: 65 0D 0A 6E 75 6D 62 65 72 20 6F 66 20 63 6F 6C e..number of col
000140: 75 6D 6E 73 20 6F 6E 20 74 68 65 20 73 63 72 65 umns on the scre
000150: 65 6E 2E 20 20 44 65 66 61 75 6C 74 20 77 69 64 en. Default wid
000160: 74 68 20 69 73 20 38 30 2E 0D 0A 09 49 20 2D 20 th is 80....I -
000170: 45 78 70 61 6E 64 20 74 61 62 73 2E 20 20 54 61 Expand tabs. Ta
000180: 62 73 20 61 72 65 20 65 78 70 61 6E 64 65 64 20 bs are expanded
000190: 74 6F 20 61 6E 20 61 70 70 72 6F 70 72 69 61 74 to an appropriat
0001A0: 65 20 6E 75 6D 62 65 72 20 6F 66 20 73 70 61 63 e number of spac
0001B0: 65 73 2E 0D 0A 09 4E 20 2D 20 4E 75 6D 62 65 72 es....N - Number
0001C0: 20 6C 69 6E 65 73 2E 20 45 61 63 68 20 6C 69 6E lines. Each lin
0001D0: 65 20 69 73 20 70 72 65 63 65 64 65 64 20 62 79 e is preceded by
0001E0: 20 61 20 6C 69 6E 65 20 6E 75 6D 62 65 72 2E 0D a line number..
0001F0: 0A 0D 0A 45 78 61 6D 70 6C 65 73 3A 0D 0A 0D 0A ...Examples:....
Size : 512 (Real : 512)
000000: 09 43 4F 4D 50 41 52 45 20 6F 6C 64 20 66 69 6C .COMPARE old fil
000010: 65 2C 6E 65 77 20 66 69 6C 65 2C 5B 4C 69 73 74 e,new file,[List
000020: 20 66 69 6C 65 5D 0D 0A 0D 0A 54 68 65 20 74 68 file]....The th
000030: 69 72 64 20 66 69 6C 65 20 69 73 20 6F 70 74 69 ird file is opti
000040: 6F 6E 61 6C 2E 20 20 49 66 20 6F 6D 69 74 74 65 onal. If omitte
000050: 64 2C 20 74 68 65 20 6F 75 74 70 75 74 20 69 73 d, the output is
000060: 20 74 6F 20 74 68 65 20 70 72 69 6E 74 65 72 2E to the printer.
000070: 20 20 59 6F 75 0D 0A 63 61 6E 20 75 73 65 20 64 You..can use d
000080: 65 76 69 63 65 20 6E 61 6D 65 73 20 28 65 2E 67 evice names (e.g
000090: 2E 20 54 54 59 29 20 61 73 20 77 65 6C 6C 20 61 . TTY) as well a
0000A0: 73 20 64 69 73 63 20 66 69 6C 65 20 6E 61 6D 65 s disc file name
0000B0: 73 2E 0D 0A 0D 0A 54 68 65 20 74 77 6F 20 66 69 s.....The two fi
0000C0: 6C 65 73 20 61 72 65 20 63 6F 6D 70 61 72 65 64 les are compared
0000D0: 20 6C 69 6E 65 20 62 79 20 6C 69 6E 65 2E 20 20 line by line.
0000E0: 4C 69 6E 65 73 20 77 68 69 63 68 20 68 61 76 65 Lines which have
0000F0: 20 62 65 65 6E 20 64 65 6C 65 74 65 64 20 66 72 been deleted fr
000100: 6F 6D 0D 0A 74 68 65 20 6F 6C 64 20 66 69 6C 65 om..the old file
000110: 20 61 72 65 20 70 72 69 6E 74 65 64 20 69 6E 20 are printed in
000120: 69 74 61 6C 69 63 73 2E 20 20 49 6E 73 65 72 74 italics. Insert
000130: 65 64 20 6C 69 6E 65 73 20 61 72 65 20 70 72 69 ed lines are pri
000140: 6E 74 65 64 20 69 6E 20 62 6F 6C 64 2E 0D 0A 4C nted in bold...L
000150: 69 6E 65 73 20 77 68 69 63 68 20 68 61 76 65 20 ines which have
000160: 62 65 65 6E 20 6D 6F 76 65 64 20 74 6F 20 61 20 been moved to a
000170: 6E 65 77 20 70 6F 73 69 74 69 6F 6E 20 61 72 65 new position are
000180: 20 70 72 69 6E 74 65 64 20 69 6E 20 74 68 65 69 printed in thei
000190: 72 20 6E 65 77 0D 0A 70 6F 73 69 74 69 6F 6E 20 r new..position
0001A0: 73 75 72 72 6F 75 6E 64 65 64 20 62 79 20 6C 69 surrounded by li
0001B0: 6E 65 73 20 6F 66 20 61 73 74 65 72 69 73 6B 73 nes of asterisks
0001C0: 2E 20 20 59 6F 75 20 6D 61 79 20 6E 65 65 64 20 . You may need
0001D0: 74 6F 20 70 61 74 63 68 20 74 68 65 20 70 72 69 to patch the pri
0001E0: 6E 74 65 72 0D 0A 63 6F 6E 74 72 6F 6C 20 63 6F nter..control co
0001F0: 64 65 73 20 66 6F 72 20 79 6F 75 72 20 70 72 69 des for your pri
Size : 512 (Real : 512)
000000: 09 43 41 54 20 20 62 3A 2A 2E 64 65 66 2F 4E 50 .CAT b:*.def/NP
000010: 0D 0A 0D 0A 55 73 65 20 70 61 67 65 20 6D 6F 64 ....Use page mod
000020: 65 20 61 6E 64 20 6E 75 6D 62 65 72 20 74 68 65 e and number the
000030: 20 6C 69 6E 65 73 2E 0D 0A 0D 0A 09 43 41 54 20 lines......CAT
000040: 20 62 3A 2A 2E 64 65 66 2F 50 31 36 57 36 34 4E b:*.def/P16W64N
000050: 0D 0A 0D 0A 55 73 65 20 70 61 67 65 20 6D 6F 64 ....Use page mod
000060: 65 20 61 6E 64 20 73 6F 66 74 77 61 72 65 20 77 e and software w
000070: 72 61 70 20 77 69 74 68 20 70 61 67 65 6C 65 6E rap with pagelen
000080: 67 74 68 20 31 36 20 61 6E 64 20 77 69 64 74 68 gth 16 and width
000090: 20 36 34 2E 0D 0A 0D 0A 09 09 43 41 54 20 43 6F 64.......CAT Co
0000A0: 6D 6D 61 6E 64 73 0D 0A 0D 0A 41 74 20 74 68 65 mmands....At the
0000B0: 20 65 6E 64 20 6F 66 20 61 20 70 61 67 65 20 6F end of a page o
0000C0: 66 20 6F 75 74 70 75 74 20 69 6E 20 70 61 67 65 f output in page
0000D0: 20 6D 6F 64 65 2C 20 43 61 74 20 77 69 6C 6C 20 mode, Cat will
0000E0: 73 74 6F 70 20 61 6E 64 20 61 73 6B 20 66 6F 72 stop and ask for
0000F0: 20 61 0D 0A 63 6F 6D 6D 61 6E 64 2E 20 20 59 6F a..command. Yo
000100: 75 20 6D 61 79 20 74 68 65 6E 20 65 6E 74 65 72 u may then enter
000110: 20 61 6E 79 20 6F 66 20 74 68 65 20 63 6F 6D 6D any of the comm
000120: 61 6E 64 73 20 64 65 73 63 72 69 62 65 64 20 62 ands described b
000130: 65 6C 6F 77 2E 0D 0A 49 6E 20 66 61 63 74 2C 20 elow...In fact,
000140: 79 6F 75 20 63 61 6E 20 65 6E 74 65 72 20 61 20 you can enter a
000150: 63 6F 6D 6D 61 6E 64 20 63 68 61 72 61 63 74 65 command characte
000160: 72 20 61 74 20 61 6E 79 20 74 69 6D 65 2E 20 20 r at any time.
000170: 57 68 65 6E 20 43 61 74 20 64 65 74 65 72 6D 69 When Cat determi
000180: 6E 65 73 0D 0A 74 68 61 74 20 61 20 63 68 61 72 nes..that a char
000190: 61 63 74 65 72 20 68 61 73 20 62 65 65 6E 20 74 acter has been t
0001A0: 79 70 65 64 2C 20 69 74 20 77 69 6C 6C 20 62 72 yped, it will br
0001B0: 69 6E 67 20 75 70 20 74 68 65 20 27 43 6F 6D 6D ing up the 'Comm
0001C0: 61 6E 64 20 20 3A 27 20 70 72 6F 6D 70 74 2C 0D and :' prompt,.
0001D0: 0A 64 69 73 70 6C 61 79 20 74 68 65 20 63 68 61 .display the cha
0001E0: 72 61 63 74 65 72 20 79 6F 75 20 74 79 70 65 64 racter you typed
0001F0: 2C 20 61 6E 64 20 67 6F 20 69 6E 74 6F 20 70 61 , and go into pa
Size : 512 (Real : 512)
000000: 6E 74 65 72 2E 20 20 54 68 65 73 65 20 61 72 65 nter. These are
000010: 20 76 65 72 79 20 6E 65 61 72 20 74 68 65 20 62 very near the b
000020: 65 67 69 6E 6E 69 6E 67 20 6F 66 20 74 68 65 0D eginning of the.
000030: 0A 70 72 6F 67 72 61 6D 20 28 73 65 65 20 74 68 .program (see th
000040: 65 20 2E 4D 4F 44 20 66 69 6C 65 29 2E 20 20 45 e .MOD file). E
000050: 61 63 68 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 ach control code
000060: 20 63 61 6E 20 62 65 20 75 70 20 74 6F 20 38 20 can be up to 8
000070: 63 68 61 72 61 63 74 65 72 73 20 6C 6F 6E 67 0D characters long.
000080: 0A 61 6E 64 20 69 73 20 74 65 72 6D 69 6E 61 74 .and is terminat
000090: 65 64 20 62 79 20 61 20 76 61 6C 75 65 20 6F 66 ed by a value of
0000A0: 20 30 20 69 66 20 6C 65 73 73 20 74 68 61 6E 20 0 if less than
0000B0: 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 72 characters are r
0000C0: 65 71 75 69 72 65 64 2E 0D 0A 4E 61 74 75 72 61 equired...Natura
0000D0: 6C 6C 79 2C 20 79 6F 75 20 6D 61 79 20 61 6C 73 lly, you may als
0000E0: 6F 20 63 68 61 6E 67 65 20 74 68 65 20 2E 43 4F o change the .CO
0000F0: 4D 20 66 69 6C 65 2E 0D 0D 0A 54 68 65 20 63 6F M file....The co
000100: 6E 74 72 6F 6C 20 63 68 61 72 61 63 74 65 72 73 ntrol characters
000110: 20 69 6E 20 74 68 65 20 73 75 70 70 6C 69 65 64 in the supplied
000120: 20 70 72 6F 67 72 61 6D 20 61 72 65 20 73 65 74 program are set
000130: 20 66 6F 72 20 61 20 53 54 41 52 20 44 50 53 35 for a STAR DPS5
000140: 31 30 2C 0D 0A 77 68 69 63 68 20 69 73 20 73 75 10,..which is su
000150: 70 70 6F 73 65 64 20 74 6F 20 62 65 20 45 70 73 pposed to be Eps
000160: 6F 6E 20 63 6F 6D 70 61 74 69 62 6C 65 2C 20 73 on compatible, s
000170: 6F 20 74 68 65 20 70 72 6F 67 72 61 6D 20 6D 61 o the program ma
000180: 79 20 77 65 6C 6C 20 72 75 6E 20 27 61 73 20 69 y well run 'as i
000190: 73 27 0D 0A 6F 6E 20 45 70 73 6F 6E 73 20 61 6E s'..on Epsons an
0001A0: 64 20 45 70 73 6F 6E 20 63 6C 6F 6E 65 73 2E 0D d Epson clones..
0001B0: 0A 0D 0A 48 6F 77 20 74 68 65 20 70 72 6F 67 72 ...How the progr
0001C0: 61 6D 20 77 6F 72 6B 73 0D 0A 3D 3D 3D 3D 3D 3D am works..======
0001D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ===============.
0001E0: 0A 0D 0A 46 6F 72 20 65 61 63 68 20 6C 69 6E 65 ...For each line
0001F0: 2C 20 61 20 68 61 73 68 20 74 6F 74 61 6C 20 69 , a hash total i
Size : 512 (Real : 512)
000000: 67 65 20 6D 6F 64 65 2E 20 20 4D 75 6C 74 69 70 ge mode. Multip
000010: 6C 65 20 63 6F 6D 6D 61 6E 64 73 20 6D 61 79 0D le commands may.
000020: 0A 62 65 20 70 6C 61 63 65 64 20 6F 6E 20 61 20 .be placed on a
000030: 6C 69 6E 65 2E 20 20 54 68 65 20 63 6F 6D 6D 61 line. The comma
000040: 6E 64 73 20 61 72 65 3A 0D 0A 3F 20 20 20 20 20 nds are:..?
000050: 20 20 20 20 20 20 20 20 20 44 69 73 70 6C 61 79 Display
000060: 20 73 6F 6D 65 20 68 65 6C 70 20 69 6E 66 6F 72 some help infor
000070: 6D 61 74 69 6F 6E 2E 0D 0A 6E 75 6D 62 65 72 20 mation...number
000080: 20 20 20 20 20 20 20 20 52 65 73 74 61 72 74 20 Restart
000090: 6C 69 73 74 69 6E 67 20 66 72 6F 6D 20 67 69 76 listing from giv
0000A0: 65 6E 20 6C 69 6E 65 20 6E 75 6D 62 65 72 2E 0D en line number..
0000B0: 0A 2B 20 6F 72 20 2D 20 6E 75 6D 62 65 72 20 20 .+ or - number
0000C0: 41 64 76 61 6E 63 65 20 28 6F 72 20 72 65 74 69 Advance (or reti
0000D0: 72 65 29 20 62 79 20 74 68 65 20 67 69 76 65 6E re) by the given
0000E0: 20 6E 75 6D 62 65 72 20 6F 66 20 6C 69 6E 65 73 number of lines
0000F0: 2E 0D 0A 2F 73 74 72 69 6E 67 2F 20 20 20 20 20 .../string/
000100: 20 20 52 65 73 74 61 72 74 20 6C 69 73 74 69 6E Restart listin
000110: 67 20 66 72 6F 6D 20 6E 65 78 74 20 6F 63 63 75 g from next occu
000120: 72 65 6E 63 65 20 6F 66 20 73 74 72 69 6E 67 2E rence of string.
000130: 20 54 68 65 20 64 65 6C 69 6D 69 74 65 72 73 0D The delimiters.
000140: 0A 09 63 61 6E 20 62 65 20 61 6E 79 20 70 72 69 ..can be any pri
000150: 6E 74 69 6E 67 20 6E 6F 6E 2D 61 6C 70 68 61 6E nting non-alphan
000160: 75 6D 65 72 69 63 20 63 68 61 72 61 63 74 65 72 umeric character
000170: 2E 0D 0A 0D 0A 41 20 6E 75 6D 62 65 72 20 61 6E .....A number an
000180: 64 20 61 20 73 65 61 72 63 68 20 73 74 72 69 6E d a search strin
000190: 67 20 63 61 6E 20 62 65 20 63 6F 6D 62 69 6E 65 g can be combine
0001A0: 64 20 74 6F 20 73 65 61 72 63 68 20 66 72 6F 6D d to search from
0001B0: 20 61 0D 0A 67 69 76 65 6E 20 6C 69 6E 65 20 6E a..given line n
0001C0: 75 6D 62 65 72 2E 20 20 49 66 20 6E 6F 20 73 74 umber. If no st
0001D0: 72 69 6E 67 20 69 73 20 65 6E 74 65 72 65 64 20 ring is entered
0001E0: 28 22 2F 2F 22 29 2C 20 74 68 65 0D 0A 70 72 65 ("//"), the..pre
0001F0: 76 69 6F 75 73 6C 79 20 65 6E 74 65 72 65 64 20 viously entered
Size : 512 (Real : 512)
000000: 73 20 63 61 6C 63 75 6C 61 74 65 64 2E 20 20 54 s calculated. T
000010: 68 65 6E 20 74 68 65 20 75 6E 69 71 75 65 20 6C hen the unique l
000020: 69 6E 65 73 20 69 6E 20 65 61 63 68 20 66 69 6C ines in each fil
000030: 65 0D 0A 61 72 65 20 69 64 65 6E 74 69 66 69 65 e..are identifie
000040: 64 2E 20 20 57 68 65 6E 20 61 20 75 6E 69 71 75 d. When a uniqu
000050: 65 20 6C 69 6E 65 20 6D 61 74 63 68 65 73 20 61 e line matches a
000060: 20 75 6E 69 71 75 65 20 6C 69 6E 65 20 69 6E 20 unique line in
000070: 74 68 65 20 73 65 63 6F 6E 64 20 66 69 6C 65 2C the second file,
000080: 0D 0A 74 68 65 20 74 77 6F 20 6C 69 6E 65 73 20 ..the two lines
000090: 61 72 65 20 63 72 6F 73 73 2D 6C 69 6E 6B 65 64 are cross-linked
0000A0: 2E 0D 0A 0D 0A 4E 65 78 74 2C 20 6C 69 6E 65 73 .....Next, lines
0000B0: 20 61 64 6A 61 63 65 6E 74 20 74 6F 20 63 72 6F adjacent to cro
0000C0: 73 73 2D 6C 69 6E 6B 65 64 20 6C 69 6E 65 73 20 ss-linked lines
0000D0: 61 72 65 20 63 6F 6D 70 61 72 65 64 20 61 6E 64 are compared and
0000E0: 2C 20 69 66 20 69 64 65 6E 74 69 63 61 6C 2C 0D , if identical,.
0000F0: 0A 74 68 65 79 20 61 72 65 20 6C 69 6E 6B 65 64 .they are linked
000100: 2E 20 20 54 68 69 73 20 67 72 6F 77 73 20 74 68 . This grows th
000110: 65 20 61 72 65 61 20 6F 66 20 6C 69 6E 6B 69 6E e area of linkin
000120: 67 20 6F 75 74 77 61 72 64 73 20 66 72 6F 6D 20 g outwards from
000130: 70 61 69 72 73 20 6F 66 20 0D 0A 6D 61 74 63 68 pairs of ..match
000140: 69 6E 67 20 75 6E 69 71 75 65 20 6C 69 6E 65 73 ing unique lines
000150: 20 28 61 6E 64 20 61 6C 73 6F 20 66 72 6F 6D 20 (and also from
000160: 74 68 65 20 62 65 67 69 6E 6E 69 6E 67 20 61 6E the beginning an
000170: 64 20 65 6E 64 20 6F 66 20 74 68 65 20 66 69 6C d end of the fil
000180: 65 73 29 20 75 6E 74 69 6C 0D 0A 61 73 20 6D 61 es) until..as ma
000190: 6E 79 20 6C 69 6E 65 73 20 61 73 20 70 6F 73 73 ny lines as poss
0001A0: 69 62 6C 65 20 68 61 76 65 20 62 65 65 6E 20 63 ible have been c
0001B0: 72 6F 73 73 2D 6C 69 6E 6B 65 64 2E 0D 0A 0D 0A ross-linked.....
0001C0: 46 69 6E 61 6C 6C 79 20 74 68 65 20 74 65 78 74 Finally the text
0001D0: 20 69 73 20 73 63 61 6E 6E 65 64 20 61 6E 64 20 is scanned and
0001E0: 70 72 69 6E 74 65 64 20 6F 75 74 2E 20 20 4C 69 printed out. Li
0001F0: 6E 65 73 20 69 6E 20 74 68 65 20 6E 65 77 20 66 nes in the new f
Size : 512 (Real : 512)
000000: 20 6D 75 74 75 61 6C 6C 79 20 65 78 63 6C 75 73 mutually exclus
000010: 69 76 65 2E 0D 0A 0D 0A 43 09 49 66 20 66 69 6C ive.....C.If fil
000020: 65 20 6E 61 6D 65 73 20 6D 61 74 63 68 2C 20 63 e names match, c
000030: 6F 6D 70 61 72 65 20 74 68 65 20 66 69 6C 65 20 ompare the file
000040: 63 6F 6E 74 65 6E 74 73 20 61 73 20 77 65 6C 6C contents as well
000050: 2E 0D 0A 45 09 4F 75 74 70 75 74 20 66 69 6C 65 ...E.Output file
000060: 20 6E 61 6D 65 73 20 77 68 69 63 68 20 6D 61 74 names which mat
000070: 63 68 20 74 6F 20 6C 69 73 74 20 66 69 6C 65 2E ch to list file.
000080: 0D 0A 41 09 4F 75 74 70 75 74 20 66 69 6C 65 20 ..A.Output file
000090: 6E 61 6D 65 73 20 77 68 69 63 68 20 68 61 76 65 names which have
0000A0: 20 62 65 65 6E 20 61 64 64 65 64 20 74 6F 20 74 been added to t
0000B0: 68 65 20 73 65 63 6F 6E 64 20 6C 69 73 74 2E 0D he second list..
0000C0: 0A 44 09 4F 75 74 70 75 74 20 66 69 6C 65 20 6E .D.Output file n
0000D0: 61 6D 65 73 20 77 68 69 63 68 20 68 61 76 65 20 ames which have
0000E0: 62 65 65 6E 20 64 65 6C 65 74 65 64 20 66 72 6F been deleted fro
0000F0: 6D 20 74 68 65 20 66 69 72 73 74 20 6C 69 73 74 m the first list
000100: 2E 0D 0A 4D 09 4F 75 74 70 75 74 20 66 69 6C 65 ...M.Output file
000110: 20 6E 61 6D 65 73 20 77 68 69 63 68 20 64 69 66 names which dif
000120: 66 65 72 20 69 6E 20 63 6F 6E 74 65 6E 74 73 2E fer in contents.
000130: 0D 0A 0D 0A 54 68 65 73 65 20 6F 70 74 69 6F 6E ....These option
000140: 73 20 6D 61 79 20 62 65 20 63 6F 6D 62 69 6E 65 s may be combine
000150: 64 2E 20 20 45 78 61 6D 70 6C 65 73 3A 0D 0A 0D d. Examples:...
000160: 0A 54 6F 20 63 68 65 63 6B 20 74 68 61 74 20 65 .To check that e
000170: 76 65 72 79 20 27 2E 6D 6F 64 27 20 66 69 6C 65 very '.mod' file
000180: 20 68 61 73 20 61 20 27 2E 72 65 6C 27 20 66 69 has a '.rel' fi
000190: 6C 65 3A 0D 0D 0A 09 43 6F 6D 70 64 69 72 20 62 le:....Compdir b
0001A0: 3A 2A 2E 6D 6F 64 20 62 3A 2A 2E 72 65 6C 2F 6E :*.mod b:*.rel/n
0001B0: 0D 0A 0D 0A 54 6F 20 77 72 69 74 65 20 74 68 65 ....To write the
0001C0: 20 64 65 6C 65 74 65 64 20 6E 61 6D 65 73 20 74 deleted names t
0001D0: 6F 20 61 20 66 69 6C 65 20 73 6F 20 74 68 61 74 o a file so that
0001E0: 20 74 68 65 20 6D 69 73 73 69 6E 67 20 20 27 2E the missing '.
0001F0: 72 65 6C 27 0D 0A 66 69 6C 65 73 20 6D 61 79 20 rel'..files may
Size : 512 (Real : 512)
000000: 69 6C 65 20 77 68 69 63 68 20 61 72 65 0D 0A 6E ile which are..n
000010: 6F 74 20 6C 69 6E 6B 65 64 20 74 6F 20 61 6E 79 ot linked to any
000020: 74 68 69 6E 67 20 69 6E 20 74 68 65 20 6F 6C 64 thing in the old
000030: 20 66 69 6C 65 20 61 72 65 20 69 6E 73 65 72 74 file are insert
000040: 69 6F 6E 73 2E 20 20 55 6E 6C 69 6E 6B 65 64 20 ions. Unlinked
000050: 6C 69 6E 65 73 20 69 6E 20 74 68 65 0D 0A 6F 6C lines in the..ol
000060: 64 20 66 69 6C 65 20 61 72 65 20 64 65 6C 65 74 d file are delet
000070: 69 6F 6E 73 2E 20 20 4C 69 6E 65 73 20 69 6E 20 ions. Lines in
000080: 74 68 65 20 6E 65 77 20 66 69 6C 65 20 77 68 69 the new file whi
000090: 63 68 20 6C 69 6E 6B 20 74 6F 20 6F 75 74 2D 6F ch link to out-o
0000A0: 66 2D 6F 72 64 65 72 20 6F 6C 64 0D 0A 66 69 6C f-order old..fil
0000B0: 65 20 6C 69 6E 65 73 20 61 72 65 20 70 61 72 74 e lines are part
0000C0: 73 20 6F 66 20 61 20 62 6C 6F 63 6B 20 6D 6F 76 s of a block mov
0000D0: 65 2E 0D 0A 0D 0A 46 75 72 74 68 65 72 20 57 6F e.....Further Wo
0000E0: 72 6B 3A 0D 0A 0D 0A 41 20 6E 75 6D 62 65 72 20 rk:....A number
0000F0: 6F 66 20 74 68 69 6E 67 73 20 63 61 6E 20 62 65 of things can be
000100: 20 64 6F 6E 65 20 77 69 74 68 20 74 68 69 73 20 done with this
000110: 70 72 6F 67 72 61 6D 3A 0D 0A 0D 0A 09 31 2F 20 program:.....1/
000120: 20 4D 61 6B 65 20 69 74 20 77 6F 72 6B 20 6F 6E Make it work on
000130: 20 74 68 72 65 65 20 66 69 6C 65 73 2E 0D 0A 4F three files...O
000140: 66 74 65 6E 2C 20 61 20 6E 65 77 20 76 65 72 73 ften, a new vers
000150: 69 6F 6E 20 6F 66 20 61 20 70 72 6F 67 72 61 6D ion of a program
000160: 20 69 73 20 63 72 65 61 74 65 64 20 28 73 61 79 is created (say
000170: 2C 20 66 6F 72 20 61 6E 6F 74 68 65 72 20 6D 61 , for another ma
000180: 63 68 69 6E 65 29 20 61 6E 64 0D 0A 74 68 65 6E chine) and..then
000190: 20 74 68 65 20 6F 72 69 67 69 6E 61 6C 20 76 65 the original ve
0001A0: 72 73 69 6F 6E 20 69 73 20 6D 6F 64 69 66 69 65 rsion is modifie
0001B0: 64 2E 20 20 54 68 65 20 70 72 6F 62 6C 65 6D 20 d. The problem
0001C0: 69 73 20 74 68 65 6E 20 69 6E 73 65 72 74 69 6E is then insertin
0001D0: 67 20 74 68 65 0D 0A 6E 65 77 20 63 68 61 6E 67 g the..new chang
0001E0: 65 73 20 74 6F 20 74 68 65 20 6F 72 69 67 69 6E es to the origin
0001F0: 61 6C 20 66 69 6C 65 20 69 6E 74 6F 20 74 68 65 al file into the
Size : 512 (Real : 512)
000000: 62 65 20 64 69 73 63 6F 76 65 72 65 64 3A 0D 0A be discovered:..
000010: 0D 0A 09 43 6F 6D 70 64 69 72 20 62 3A 2A 2E 6D ...Compdir b:*.m
000020: 6F 64 20 62 3A 2A 2E 72 65 6C 20 62 3A 63 6F 6D od b:*.rel b:com
000030: 70 73 2E 73 75 62 2F 6E 64 0D 0A 0D 0A 49 66 20 ps.sub/nd....If
000040: 79 6F 75 20 69 6E 74 65 6E 64 20 74 6F 20 72 65 you intend to re
000050: 67 65 6E 65 72 61 74 65 20 74 68 6F 73 65 20 66 generate those f
000060: 69 6C 65 73 2C 20 65 64 69 74 20 74 68 65 20 66 iles, edit the f
000070: 69 6C 65 20 74 6F 20 61 64 64 20 22 4D 32 20 22 ile to add "M2 "
000080: 20 74 6F 20 74 68 65 0D 0A 73 74 61 72 74 20 6F to the..start o
000090: 66 20 65 61 63 68 20 6C 69 6E 65 2E 20 20 49 66 f each line. If
0000A0: 20 79 6F 75 20 61 72 65 20 75 73 69 6E 67 20 74 you are using t
0000B0: 68 65 20 4D 6F 64 75 6C 61 2D 32 20 65 64 69 74 he Modula-2 edit
0000C0: 6F 72 2C 20 64 6F 20 6F 6E 65 20 69 6E 20 6C 65 or, do one in le
0000D0: 61 72 6E 0D 0A 6D 6F 64 65 20 61 6E 64 20 74 68 arn..mode and th
0000E0: 65 6E 20 64 6F 20 74 68 65 20 72 65 73 74 20 77 en do the rest w
0000F0: 69 74 68 20 61 20 72 65 70 65 61 74 65 64 20 65 ith a repeated e
000100: 78 65 63 75 74 69 6F 6E 20 6F 66 20 74 68 65 20 xecution of the
000110: 64 65 66 69 6E 65 64 20 6D 61 63 72 6F 2E 0D 0A defined macro...
000120: 0D 0A 54 6F 20 63 72 65 61 74 65 20 61 20 6C 69 ..To create a li
000130: 73 74 20 6F 66 20 61 6C 6C 20 64 65 66 69 6E 69 st of all defini
000140: 74 69 6F 6E 20 61 6E 64 20 69 6D 70 6C 65 6D 65 tion and impleme
000150: 6E 74 61 74 69 6F 6E 20 6D 6F 64 75 6C 65 73 20 ntation modules
000160: 6F 6E 20 64 69 73 63 20 42 3A 0D 0A 0D 0A 09 43 on disc B:.....C
000170: 6F 6D 70 64 69 72 20 62 3A 2A 2E 6D 6F 64 20 62 ompdir b:*.mod b
000180: 3A 2A 2E 64 65 66 20 74 2E 6C 73 74 2F 61 64 65 :*.def t.lst/ade
000190: 0D 0A 0D 0A 09 48 61 70 70 79 20 4D 6F 64 75 6C .....Happy Modul
0001A0: 61 74 69 6E 67 21 21 0D 0A 0A 0D 0D 0A 1A 1A 1A ating!!.........
0001B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001C0: 44 46 20 20 20 20 20 20 43 4F 4D 20 00 00 00 00 DF COM ....
0001D0: 00 00 00 00 00 00 83 43 C2 0C 52 00 06 05 00 00 .......C..R.....
0001E0: 44 49 53 4B 43 4F 4D 50 45 58 45 20 00 00 00 00 DISKCOMPEXE ....
0001F0: 00 00 00 00 00 00 00 60 E7 0C 62 00 E0 0E 00 00 .......`..b.....
Size : 512 (Real : 512)
000000: 20 6F 74 68 65 72 20 76 65 72 73 69 6F 6E 2C 20 other version,
000010: 77 68 69 6C 65 20 72 65 74 61 69 6E 69 6E 67 0D while retaining.
000020: 0A 61 6E 79 20 63 68 61 6E 67 65 73 20 6D 61 64 .any changes mad
000030: 65 20 74 6F 70 72 6F 64 75 63 65 20 74 68 61 74 e toproduce that
000040: 20 76 65 72 73 69 6F 6E 2E 20 20 50 72 6F 62 61 version. Proba
000050: 62 6C 79 20 66 61 69 72 6C 79 20 64 69 66 66 69 bly fairly diffi
000060: 63 75 6C 74 20 74 6F 20 64 6F 2E 20 0D 0A 09 32 cult to do. ...2
000070: 2F 20 20 20 4D 61 6B 65 20 69 74 20 77 6F 72 6B / Make it work
000080: 20 61 63 72 6F 73 73 20 6D 61 63 68 69 6E 65 73 across machines
000090: 2E 0D 0A 53 6F 6D 65 74 69 6D 65 73 2C 20 6F 6E ...Sometimes, on
0000A0: 65 20 6F 66 20 74 68 65 20 66 69 6C 65 73 20 69 e of the files i
0000B0: 73 20 6F 6E 20 61 6E 6F 74 68 65 72 20 6D 61 63 s on another mac
0000C0: 68 69 6E 65 2E 20 20 49 74 20 77 6F 75 6C 64 20 hine. It would
0000D0: 62 65 20 6E 69 63 65 20 74 6F 0D 0A 68 61 76 65 be nice to..have
0000E0: 20 74 68 65 20 6F 6C 64 20 66 69 6C 65 20 6F 6E the old file on
0000F0: 20 74 68 65 20 72 65 6D 6F 74 65 20 6D 61 63 68 the remote mach
000100: 69 6E 65 20 61 6E 64 20 6F 6E 6C 79 20 74 72 61 ine and only tra
000110: 6E 73 66 65 72 20 74 68 65 20 63 68 65 63 6B 73 nsfer the checks
000120: 75 6D 73 20 61 6E 64 0D 0A 74 68 65 20 6C 69 6E ums and..the lin
000130: 65 73 20 77 68 69 63 68 20 68 61 76 65 20 62 65 es which have be
000140: 65 6E 20 64 65 6C 65 74 65 64 20 61 63 72 6F 73 en deleted acros
000150: 73 20 74 68 65 20 6C 69 6E 6B 2E 20 20 46 61 69 s the link. Fai
000160: 72 6C 79 20 65 61 73 79 2C 20 62 75 74 0D 0A 72 rly easy, but..r
000170: 65 6C 69 61 62 69 6C 69 74 79 20 6F 66 20 74 68 eliability of th
000180: 65 20 6C 69 6E 6B 20 77 69 6C 6C 20 63 61 75 73 e link will caus
000190: 65 20 70 72 6F 62 6C 65 6D 73 2E 0D 0A 09 33 2F e problems....3/
0001A0: 20 20 20 57 72 69 74 65 20 61 20 70 61 69 72 20 Write a pair
0001B0: 6F 66 20 65 78 74 72 61 63 74 2F 6D 65 72 67 65 of extract/merge
0001C0: 20 70 72 6F 67 72 61 6D 73 2E 0D 0A 43 6F 6E 74 programs...Cont
0001D0: 69 6E 75 69 6E 67 20 6F 6E 20 66 72 6F 6D 20 70 inuing on from p
0001E0: 6F 69 6E 74 20 32 2C 20 77 72 69 74 65 20 61 20 oint 2, write a
0001F0: 70 72 6F 67 72 61 6D 20 74 6F 20 63 72 65 61 74 program to creat
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 44 6F 4D 65 6E 75 3B 0D 0A 0D 0A 28 2A 09 E DoMenu;....(*.
000020: 4D 65 6E 75 20 70 72 6F 63 65 73 73 6F 72 20 66 Menu processor f
000030: 6F 72 20 65 64 69 74 6F 72 2A 29 0D 0A 46 52 4F or editor*)..FRO
000040: 4D 20 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 M Files IMPORT F
000050: 69 6C 65 4E 61 6D 65 2C 46 49 4C 45 2C 43 6C 6F ileName,FILE,Clo
000060: 73 65 2C 43 72 65 61 74 65 3B 0D 0A 50 52 4F 43 se,Create;..PROC
000070: 45 44 55 52 45 20 52 65 64 69 73 70 6C 61 79 3B EDURE Redisplay;
000080: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F 4D 65 ..PROCEDURE DoMe
000090: 6E 75 4F 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 nuOp;..PROCEDURE
0000A0: 20 4F 70 65 6E 28 66 6E 3A 46 69 6C 65 4E 61 6D Open(fn:FileNam
0000B0: 65 3B 50 6F 73 3A 43 41 52 44 49 4E 41 4C 29 3B e;Pos:CARDINAL);
0000C0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 53 ..PROCEDURE GetS
0000D0: 74 72 69 6E 67 28 56 41 52 20 73 3A 41 52 52 41 tring(VAR s:ARRA
0000E0: 59 20 4F 46 20 43 48 41 52 3B 56 41 52 20 6C 65 Y OF CHAR;VAR le
0000F0: 6E 3A 43 41 52 44 49 4E 41 4C 3B 70 72 6F 6D 70 n:CARDINAL;promp
000100: 74 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 29 t:ARRAY OF CHAR)
000110: 3B 0D 0A 45 4E 44 20 44 6F 4D 65 6E 75 2E 0D 0A ;..END DoMenu...
000120: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000130: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000140: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000180: 65 64 20 70 72 69 6D 61 72 69 6C 79 20 66 6F 72 ed primarily for
000190: 20 75 73 65 20 6F 6E 0D 0A 09 09 52 43 50 4D 73 use on....RCPMs
0001A0: 2E 20 20 49 74 20 63 61 6E 20 64 6F 20 74 61 62 . It can do tab
0001B0: 20 65 78 70 61 6E 73 69 6F 6E 2C 20 6C 69 6E 65 expansion, line
0001C0: 20 6E 75 6D 62 65 72 69 6E 67 2C 20 73 74 72 69 numbering, stri
0001D0: 6E 67 20 73 65 61 72 63 68 2C 0D 09 09 70 6F 73 ng search,...pos
0001E0: 69 74 69 6F 6E 20 62 79 20 6C 69 6E 65 20 6E 75 ition by line nu
0001F0: 6D 62 65 72 20 61 6E 64 20 77 69 6C 64 20 63 61 mber and wild ca
Size : 512 (Real : 512)
000000: 65 20 61 20 64 69 66 66 65 72 65 6E 63 65 73 20 e a differences
000010: 66 69 6C 65 0D 0A 61 6E 64 20 61 6E 6F 74 68 65 file..and anothe
000020: 72 20 74 6F 20 6D 65 72 67 65 20 74 68 65 20 64 r to merge the d
000030: 69 66 66 65 72 65 6E 63 65 73 20 6F 6E 20 61 20 ifferences on a
000040: 72 65 6D 6F 74 65 20 6D 61 63 68 69 6E 65 2E 20 remote machine.
000050: 20 54 68 69 73 20 73 68 6F 75 6C 64 20 62 65 0D This should be.
000060: 0A 71 75 69 74 65 20 65 61 73 79 2C 20 67 69 76 .quite easy, giv
000070: 65 6E 20 32 2E 0D 0A 0D 0A 41 6C 74 6F 67 65 74 en 2.....Altoget
000080: 68 65 72 2C 20 74 68 65 73 65 20 74 68 72 65 65 her, these three
000090: 20 65 78 74 65 6E 73 69 6F 6E 73 20 77 6F 75 6C extensions woul
0000A0: 64 20 62 65 20 61 62 6F 75 74 20 72 69 67 68 74 d be about right
0000B0: 20 66 6F 72 20 61 20 74 65 72 6D 20 70 72 6F 6A for a term proj
0000C0: 65 63 74 20 66 6F 72 0D 0A 6F 6E 65 20 73 74 75 ect for..one stu
0000D0: 64 65 6E 74 2E 20 20 4F 66 20 63 6F 75 72 73 65 dent. Of course
0000E0: 2C 20 69 66 20 61 6E 79 6F 6E 65 20 6F 75 74 20 , if anyone out
0000F0: 74 68 65 72 65 20 77 61 6E 74 73 20 74 6F 20 64 there wants to d
000100: 6F 20 74 68 69 73 2C 20 77 65 27 6C 6C 20 68 61 o this, we'll ha
000110: 70 70 69 6C 79 0D 0A 67 69 76 65 20 61 75 74 68 ppily..give auth
000120: 6F 72 27 73 20 63 72 65 64 69 74 2E 0D 0A 0D 0A or's credit.....
000130: 09 43 6F 6D 70 44 69 72 20 2D 20 43 6F 6D 70 61 .CompDir - Compa
000140: 72 65 20 74 77 6F 20 64 69 72 65 63 74 6F 72 69 re two directori
000150: 65 73 0D 0A 09 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D es...===========
000160: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
000170: 3D 3D 3D 3D 3D 3D 0D 0A 0D 0A 43 6F 6D 70 44 69 ======....CompDi
000180: 72 20 63 6F 6D 70 61 72 65 73 20 64 69 73 63 20 r compares disc
000190: 64 69 72 65 63 74 6F 72 69 65 73 2E 20 20 54 68 directories. Th
0001A0: 65 20 63 6F 6D 70 61 72 69 73 6F 6E 20 6D 61 79 e comparison may
0001B0: 20 75 73 65 20 74 68 65 20 66 75 6C 6C 20 66 69 use the full fi
0001C0: 6C 65 0D 0A 6E 61 6D 65 2C 20 6A 75 73 74 20 74 le..name, just t
0001D0: 68 65 20 62 61 73 65 20 6E 61 6D 65 2C 20 6F 72 he base name, or
0001E0: 20 28 6E 6F 74 20 76 65 72 79 20 75 73 65 66 75 (not very usefu
0001F0: 6C 29 20 6A 75 73 74 20 74 68 65 20 65 78 74 65 l) just the exte
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 6E 73 69 6F 6E 2E 0D 0A 4F 70 74 69 6F 6E 61 6C nsion...Optional
000010: 6C 79 2C 20 79 6F 75 20 6D 61 79 20 63 72 65 61 ly, you may crea
000020: 74 65 20 61 20 66 69 6C 65 20 63 6F 6E 74 61 69 te a file contai
000030: 6E 69 6E 67 20 61 20 6C 69 73 74 20 6F 66 20 74 ning a list of t
000040: 68 65 20 66 69 6C 65 20 6E 61 6D 65 73 20 61 64 he file names ad
000050: 64 65 64 2C 0D 0A 64 65 6C 65 74 65 64 20 6F 72 ded,..deleted or
000060: 20 6D 61 74 63 68 69 6E 67 2E 0D 0A 0D 0A 54 68 matching.....Th
000070: 65 20 63 6F 6D 6D 61 6E 64 20 74 6F 20 63 61 6C e command to cal
000080: 6C 20 74 68 65 20 70 72 6F 67 72 61 6D 20 74 61 l the program ta
000090: 6B 65 73 20 74 68 65 20 66 6F 72 6D 3A 0D 0A 0D kes the form:...
0000A0: 0A 09 43 4F 4D 50 44 49 52 20 77 69 6C 64 20 63 ..COMPDIR wild c
0000B0: 61 72 64 2C 20 77 69 6C 64 20 63 61 72 64 20 5B ard, wild card [
0000C0: 2C 20 6C 69 73 74 20 66 69 6C 65 5D 20 5B 2F 6F , list file] [/o
0000D0: 70 74 69 6F 6E 73 5D 0D 0A 0D 0A 57 68 65 72 65 ptions]....Where
0000E0: 20 65 61 63 68 20 77 69 6C 64 20 63 61 72 64 20 each wild card
0000F0: 70 72 6F 64 75 63 65 73 20 6F 6E 65 20 6F 66 20 produces one of
000100: 74 68 65 20 6C 69 73 74 73 20 74 6F 20 63 6F 6D the lists to com
000110: 70 61 72 65 2E 0D 0A 0D 0A 54 6F 20 63 6F 6D 70 pare.....To comp
000120: 61 72 65 20 74 77 6F 20 64 69 73 63 73 3A 0D 0A are two discs:..
000130: 0D 0A 09 43 4F 4D 50 44 49 52 20 61 3A 2A 2E 2A ...COMPDIR a:*.*
000140: 20 62 3A 2A 2E 2A 0D 0A 0D 0A 4F 70 74 69 6F 6E b:*.*....Option
000150: 73 20 61 72 65 20 61 6E 79 20 6F 66 20 74 68 65 s are any of the
000160: 20 66 6F 6C 6C 6F 77 69 6E 67 3A 0D 0A 0D 0A 54 following:....T
000170: 09 43 6F 6D 70 61 72 65 20 6F 6E 6C 79 20 66 69 .Compare only fi
000180: 6C 65 20 65 78 74 65 6E 73 69 6F 6E 20 28 62 79 le extension (by
000190: 20 64 65 66 61 75 6C 74 2C 20 74 68 65 20 77 68 default, the wh
0001A0: 6F 6C 65 20 6E 61 6D 65 20 69 73 20 63 6F 6D 70 ole name is comp
0001B0: 61 72 65 64 29 2E 0D 0A 4E 09 63 6F 6D 70 61 72 ared)...N.compar
0001C0: 65 20 6F 6E 6C 79 20 66 69 6C 65 20 6E 61 6D 65 e only file name
0001D0: 2D 2D 62 61 73 65 20 6E 61 6D 65 2C 20 6D 69 6E --base name, min
0001E0: 75 73 20 74 68 65 20 65 78 74 65 6E 73 69 6F 6E us the extension
0001F0: 2E 0D 0A 0D 0A 54 20 61 6E 64 20 4E 20 61 72 65 .....T and N are
Size : 512 (Real : 512)
000000: 28 2A 09 50 65 72 66 6F 72 6D 20 6D 65 6E 75 20 (*.Perform menu
000010: 6F 70 65 72 61 74 69 6F 6E 73 0D 0A 0D 0A 09 43 operations.....C
000020: 6F 70 79 72 69 67 68 74 2C 20 20 44 61 76 65 20 opyright, Dave
000030: 4D 6F 6F 72 65 20 46 54 4C 20 4D 6F 64 75 6C 61 Moore FTL Modula
000040: 2D 32 20 31 39 38 36 0D 0A 0D 0A 09 09 32 36 20 -2 1986......26
000050: 4A 75 6E 65 20 38 36 20 20 44 20 4D 6F 6F 72 65 June 86 D Moore
000060: 20 20 50 75 74 20 42 61 63 6B 53 70 61 63 65 20 Put BackSpace
000070: 69 6E 73 69 64 65 20 49 46 20 74 6F 20 69 6D 70 inside IF to imp
000080: 72 6F 76 65 0D 0A 09 09 09 09 09 62 61 63 6B 73 rove.......backs
000090: 70 61 63 69 6E 67 20 70 65 72 66 6F 72 6D 61 6E pacing performan
0000A0: 63 65 20 6F 66 20 47 65 74 53 74 72 69 6E 67 0D ce of GetString.
0000B0: 0A 0D 0A 2A 29 0D 0A 49 4D 50 4C 45 4D 45 4E 54 ...*)..IMPLEMENT
0000C0: 41 54 49 4F 4E 20 4D 4F 44 55 4C 45 20 44 6F 4D ATION MODULE DoM
0000D0: 65 6E 75 3B 0D 0A 0D 0A 28 2A 09 6D 65 6E 75 20 enu;....(*.menu
0000E0: 70 72 6F 63 65 73 73 6F 72 20 66 6F 72 20 65 64 processor for ed
0000F0: 69 74 6F 72 0D 0A 0D 0A 09 63 6F 6E 74 61 69 6E itor.....contain
000100: 73 20 61 6C 6C 20 63 6F 6D 6D 61 6E 64 73 20 77 s all commands w
000110: 68 69 63 68 20 61 72 65 20 70 65 72 66 6F 72 6D hich are perform
000120: 65 64 20 66 72 6F 6D 20 61 20 6D 65 6E 75 2A 29 ed from a menu*)
000130: 0D 0A 46 52 4F 4D 09 54 65 72 6D 69 6E 61 6C 20 ..FROM.Terminal
000140: 49 4D 50 4F 52 54 20 57 72 69 74 65 2C 57 72 69 IMPORT Write,Wri
000150: 74 65 53 74 72 69 6E 67 2C 52 65 61 64 53 74 72 teString,ReadStr
000160: 69 6E 67 2C 52 65 61 64 42 75 66 66 65 72 2C 57 ing,ReadBuffer,W
000170: 72 69 74 65 4C 6E 2C 52 65 61 64 2C 0D 0A 09 42 riteLn,Read,...B
000180: 75 73 79 52 65 61 64 2C 43 6C 65 61 72 43 68 61 usyRead,ClearCha
000190: 72 42 75 66 66 65 72 3B 0D 0A 46 52 4F 4D 20 09 rBuffer;..FROM .
0001A0: 4D 61 6B 65 45 64 69 74 73 20 49 4D 50 4F 52 54 MakeEdits IMPORT
0001B0: 20 4F 70 65 6E 46 69 6C 65 2C 43 6C 6F 73 65 46 OpenFile,CloseF
0001C0: 69 6C 65 2C 41 62 61 6E 64 6F 6E 46 69 6C 65 2C ile,AbandonFile,
0001D0: 43 61 6C 6C 57 69 74 68 46 69 6C 65 2C 46 69 6C CallWithFile,Fil
0001E0: 65 54 79 70 65 2C 4C 61 62 65 6C 4F 70 3B 0D 0A eType,LabelOp;..
0001F0: 46 52 4F 4D 09 4D 65 6E 75 20 49 4D 50 4F 52 54 FROM.Menu IMPORT
Size : 512 (Real : 512)
000000: 65 73 5B 46 69 6C 65 73 4F 70 65 6E 65 64 5D 2C es[FilesOpened],
000010: 54 52 55 45 2C 43 48 52 28 57 69 6E 64 6F 77 73 TRUE,CHR(Windows
000020: 29 29 3B 0D 0A 09 09 53 65 74 4C 65 66 74 4D 61 ));....SetLeftMa
000030: 72 67 28 46 69 6C 65 73 5B 46 69 6C 65 73 4F 70 rg(Files[FilesOp
000040: 65 6E 65 64 5D 2C 57 69 6E 64 6F 77 73 2C 0D 0A ened],Windows,..
000050: 09 09 09 63 75 72 78 5B 57 69 6E 64 6F 77 73 5D ...curx[Windows]
000060: 2C 63 75 72 79 5B 57 69 6E 64 6F 77 73 5D 29 3B ,cury[Windows]);
000070: 0D 0A 09 09 55 70 64 61 74 65 64 5B 46 69 6C 65 ....Updated[File
000080: 73 4F 70 65 6E 65 64 5D 3A 3D 46 41 4C 53 45 3B sOpened]:=FALSE;
000090: 0D 0A 09 09 43 68 61 6E 67 65 57 69 6E 64 6F 77 ....ChangeWindow
0000A0: 28 57 69 6E 64 6F 77 73 29 3B 0D 0A 09 09 45 4E (Windows);....EN
0000B0: 44 3B 28 2A 72 65 70 6C 79 3D 76 61 72 69 6F 75 D;(*reply=variou
0000C0: 73 20 76 61 6C 75 65 73 2A 29 0D 0A 09 45 4E 44 s values*)...END
0000D0: 3B 28 2A 66 6E 5B 31 5D 3C 3E 27 20 27 2A 29 0D ;(*fn[1]<>' '*).
0000E0: 0A 20 20 20 20 52 65 64 69 73 70 6C 61 79 3B 0D . Redisplay;.
0000F0: 0A 20 20 20 20 45 4E 44 20 4F 70 65 6E 3B 0D 0A . END Open;..
000100: 09 09 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 .....PROCEDURE S
000110: 65 74 42 6F 78 50 6F 73 28 56 41 52 20 79 3A 43 etBoxPos(VAR y:C
000120: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
000130: 0D 0A 09 49 46 20 57 69 6E 64 6F 77 73 3D 32 20 ...IF Windows=2
000140: 54 48 45 4E 20 79 3A 3D 31 33 2A 28 43 75 72 72 THEN y:=13*(Curr
000150: 65 6E 74 57 69 6E 64 6F 77 2D 31 29 0D 0A 09 45 entWindow-1)...E
000160: 4C 53 49 46 20 43 75 72 72 65 6E 74 57 69 6E 64 LSIF CurrentWind
000170: 6F 77 3D 30 20 54 48 45 4E 20 79 3A 3D 30 0D 0A ow=0 THEN y:=0..
000180: 09 45 4C 53 45 09 79 3A 3D 38 2A 28 43 75 72 72 .ELSE.y:=8*(Curr
000190: 65 6E 74 57 69 6E 64 6F 77 2D 31 29 20 45 4E 44 entWindow-1) END
0001A0: 3B 0D 0A 09 45 4E 44 20 53 65 74 42 6F 78 50 6F ;...END SetBoxPo
0001B0: 73 3B 0D 0A 56 41 52 09 78 2C 79 2C 63 68 61 72 s;..VAR.x,y,char
0001C0: 73 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 50 52 4F s:CARDINAL;..PRO
0001D0: 43 45 44 55 52 45 20 42 61 63 6B 53 70 61 63 65 CEDURE BackSpace
0001E0: 3B 0D 0A 42 45 47 49 4E 0D 0A 09 57 72 69 74 65 ;..BEGIN...Write
0001F0: 28 30 38 78 29 3B 0D 0A 09 57 72 69 74 65 28 27 (08x);...Write('
Size : 512 (Real : 512)
000000: 20 47 65 74 46 72 6F 6D 4D 65 6E 75 2C 4D 65 6E GetFromMenu,Men
000010: 75 54 65 78 74 3B 0D 0A 46 52 4F 4D 20 09 45 64 uText;..FROM .Ed
000020: 69 74 43 6F 6E 74 72 6F 6C 20 49 4D 50 4F 52 54 itControl IMPORT
000030: 20 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 2C 43 CurrentWindow,C
000040: 75 72 72 65 6E 74 46 69 6C 65 2C 46 69 6C 65 73 urrentFile,Files
000050: 4F 70 65 6E 65 64 2C 63 75 72 78 2C 63 75 72 79 Opened,curx,cury
000060: 2C 46 69 6C 65 73 2C 0D 0A 09 09 09 45 6C 69 64 ,Files,.....Elid
000070: 65 57 69 6E 64 6F 77 2C 43 68 61 6E 67 65 57 69 eWindow,ChangeWi
000080: 6E 64 6F 77 2C 52 65 73 65 74 53 63 72 65 65 6E ndow,ResetScreen
000090: 50 6F 73 2C 55 70 64 61 74 65 64 2C 4C 65 66 74 Pos,Updated,Left
0000A0: 4D 61 72 67 69 6E 2C 0D 0A 09 09 09 4D 61 6B 65 Margin,.....Make
0000B0: 57 69 6E 64 6F 77 2C 57 69 6E 64 6F 77 46 69 6C Window,WindowFil
0000C0: 65 2C 46 69 6C 65 50 6F 73 69 74 69 6F 6E 3B 0D e,FilePosition;.
0000D0: 0A 46 52 4F 4D 09 45 64 69 74 44 69 73 70 6C 61 .FROM.EditDispla
0000E0: 79 20 49 4D 50 4F 52 54 20 45 72 72 6F 72 4D 65 y IMPORT ErrorMe
0000F0: 73 73 61 67 65 2C 53 65 74 57 69 6E 64 6F 77 73 ssage,SetWindows
000100: 2C 44 69 73 70 6C 61 79 46 69 6C 65 2C 53 65 74 ,DisplayFile,Set
000110: 4C 65 66 74 4D 61 72 67 2C 57 69 6E 64 6F 77 73 LeftMarg,Windows
000120: 3B 0D 0A 46 52 4F 4D 09 4D 61 63 72 6F 73 20 49 ;..FROM.Macros I
000130: 4D 50 4F 52 54 20 53 74 6F 72 65 4D 61 63 72 6F MPORT StoreMacro
000140: 73 3B 0D 0A 46 52 4F 4D 09 53 63 72 65 65 6E 44 s;..FROM.ScreenD
000150: 75 6D 6D 79 20 49 4D 50 4F 52 54 20 43 6C 65 61 ummy IMPORT Clea
000160: 72 53 63 72 65 65 6E 2C 44 72 61 77 42 6F 78 2C rScreen,DrawBox,
000170: 47 6F 74 6F 78 79 3B 0D 0A 46 52 4F 4D 09 52 65 Gotoxy;..FROM.Re
000180: 73 65 74 44 69 73 63 20 49 4D 50 4F 52 54 20 52 setDisc IMPORT R
000190: 65 73 65 74 41 6C 6C 44 69 73 63 73 3B 0D 0A 56 esetAllDiscs;..V
0001A0: 41 52 09 54 65 78 74 3A 41 52 52 41 59 20 5B 30 AR.Text:ARRAY [0
0001B0: 2E 2E 39 5D 20 4F 46 20 4D 65 6E 75 54 65 78 74 ..9] OF MenuText
0001C0: 3D 5B 20 0D 0A 09 09 09 27 4F 70 65 6E 20 20 46 =[ .....'Open F
0001D0: 69 6C 65 20 27 2C 0D 0A 09 09 09 27 53 61 76 65 ile ',.....'Save
0001E0: 20 20 46 69 6C 65 20 27 2C 0D 0A 09 09 09 27 43 File ',.....'C
0001F0: 6C 6F 73 65 20 46 69 6C 65 20 27 2C 0D 0A 09 09 lose File ',....
Size : 512 (Real : 512)
000000: 20 27 29 3B 0D 0A 09 57 72 69 74 65 28 30 38 78 ');...Write(08x
000010: 29 3B 0D 0A 09 44 45 43 28 63 68 61 72 73 29 3B );...DEC(chars);
000020: 0D 0A 09 45 4E 44 20 42 61 63 6B 53 70 61 63 65 ...END BackSpace
000030: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 ;..PROCEDURE Get
000040: 53 74 72 69 6E 67 28 56 41 52 20 73 3A 41 52 52 String(VAR s:ARR
000050: 41 59 20 4F 46 20 43 48 41 52 3B 56 41 52 20 6C AY OF CHAR;VAR l
000060: 65 6E 3A 43 41 52 44 49 4E 41 4C 3B 70 72 6F 6D en:CARDINAL;prom
000070: 70 74 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 pt:ARRAY OF CHAR
000080: 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 53 65 74 42 );..BEGIN...SetB
000090: 6F 78 50 6F 73 28 79 29 3B 0D 0A 09 44 72 61 77 oxPos(y);...Draw
0000A0: 42 6F 78 28 31 31 2C 79 2B 33 2C 31 34 2B 48 49 Box(11,y+3,14+HI
0000B0: 47 48 28 73 29 2B 48 49 47 48 28 70 72 6F 6D 70 GH(s)+HIGH(promp
0000C0: 74 29 2C 79 2B 31 29 3B 0D 0A 09 47 6F 74 6F 78 t),y+1);...Gotox
0000D0: 79 28 31 32 2C 79 2B 32 29 3B 0D 0A 09 46 4F 52 y(12,y+2);...FOR
0000E0: 20 78 3A 3D 30 20 54 4F 20 48 49 47 48 28 70 72 x:=0 TO HIGH(pr
0000F0: 6F 6D 70 74 29 20 44 4F 20 57 72 69 74 65 28 70 ompt) DO Write(p
000100: 72 6F 6D 70 74 5B 78 5D 29 20 45 4E 44 3B 0D 0A rompt[x]) END;..
000110: 09 46 4F 52 20 78 3A 3D 30 20 54 4F 20 48 49 47 .FOR x:=0 TO HIG
000120: 48 28 73 29 20 44 4F 20 57 72 69 74 65 28 27 20 H(s) DO Write('
000130: 27 29 20 45 4E 44 3B 0D 0A 09 47 6F 74 6F 78 79 ') END;...Gotoxy
000140: 28 31 32 2B 48 49 47 48 28 70 72 6F 6D 70 74 29 (12+HIGH(prompt)
000150: 2B 31 2C 79 2B 32 29 3B 0D 0A 09 6C 65 6E 3A 3D +1,y+2);...len:=
000160: 30 3B 63 68 3A 3D 30 78 3B 0D 0A 09 63 68 61 72 0;ch:=0x;...char
000170: 73 3A 3D 30 3B 0D 0A 09 4C 4F 4F 50 0D 0A 09 09 s:=0;...LOOP....
000180: 49 46 20 6C 65 6E 3E 48 49 47 48 28 73 29 20 54 IF len>HIGH(s) T
000190: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 HEN EXIT END;...
0001A0: 09 52 45 50 45 41 54 0D 0A 09 09 09 42 75 73 79 .REPEAT.....Busy
0001B0: 52 65 61 64 28 63 68 29 3B 0D 0A 09 09 09 55 4E Read(ch);.....UN
0001C0: 54 49 4C 20 63 68 3C 3E 30 78 3B 0D 0A 09 09 49 TIL ch<>0x;....I
0001D0: 46 20 63 68 3D 30 64 78 20 54 48 45 4E 20 45 58 F ch=0dx THEN EX
0001E0: 49 54 20 45 4E 44 3B 0D 0A 09 09 49 46 20 28 63 IT END;....IF (c
0001F0: 68 3D 30 38 78 29 20 4F 52 20 28 63 68 3D 31 33 h=08x) OR (ch=13
Size : 512 (Real : 512)
000000: 09 27 53 70 6C 69 74 20 46 69 6C 65 20 27 2C 0D .'Split File ',.
000010: 0A 09 09 09 27 43 6F 6D 70 69 6C 65 20 20 20 20 ....'Compile
000020: 27 2C 0D 0A 09 09 09 27 43 6F 6D 70 2F 45 78 69 ',.....'Comp/Exi
000030: 74 20 20 27 2C 0D 0A 09 09 09 27 51 75 69 74 20 t ',.....'Quit
000040: 46 69 6C 65 20 20 27 2C 0D 0A 09 09 09 27 51 75 File ',.....'Qu
000050: 69 74 20 57 69 6E 64 6F 77 27 2C 0D 0A 09 09 09 it Window',.....
000060: 27 45 78 69 74 20 45 64 69 74 20 20 27 2C 0D 0A 'Exit Edit ',..
000070: 09 09 09 27 52 65 73 65 74 20 44 69 73 63 20 27 ...'Reset Disc '
000080: 5D 3B 0D 0A 09 63 3A 43 41 52 44 49 4E 41 4C 3B ];...c:CARDINAL;
000090: 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 ...reply:INTEGER
0000A0: 3B 0D 0A 09 69 3A 43 41 52 44 49 4E 41 4C 3B 0D ;...i:CARDINAL;.
0000B0: 0A 09 63 68 3A 43 48 41 52 3B 0D 0A 50 52 4F 43 ..ch:CHAR;..PROC
0000C0: 45 44 55 52 45 20 52 65 64 69 73 70 6C 61 79 3B EDURE Redisplay;
0000D0: 0D 0A 42 45 47 49 4E 0D 0A 09 53 65 74 57 69 6E ..BEGIN...SetWin
0000E0: 64 6F 77 73 28 57 69 6E 64 6F 77 73 29 3B 0D 0A dows(Windows);..
0000F0: 09 46 4F 52 20 69 3A 3D 31 20 54 4F 20 57 69 6E .FOR i:=1 TO Win
000100: 64 6F 77 73 20 44 4F 0D 0A 09 09 44 69 73 70 6C dows DO....Displ
000110: 61 79 46 69 6C 65 28 46 69 6C 65 73 5B 57 69 6E ayFile(Files[Win
000120: 64 6F 77 46 69 6C 65 5B 69 5D 5D 2C 69 2C 63 75 dowFile[i]],i,cu
000130: 72 78 5B 69 5D 2C 63 75 72 79 5B 69 5D 29 3B 0D rx[i],cury[i]);.
000140: 0A 09 09 45 4E 44 3B 0D 0A 09 52 65 73 65 74 53 ...END;...ResetS
000150: 63 72 65 65 6E 50 6F 73 3B 0D 0A 09 45 4E 44 20 creenPos;...END
000160: 52 65 64 69 73 70 6C 61 79 3B 0D 0A 50 52 4F 43 Redisplay;..PROC
000170: 45 44 55 52 45 20 43 6C 65 61 72 44 69 73 70 6C EDURE ClearDispl
000180: 61 79 3B 0D 0A 42 45 47 49 4E 0D 0A 09 47 6F 74 ay;..BEGIN...Got
000190: 6F 78 79 28 30 2C 30 29 3B 0D 0A 09 43 6C 65 61 oxy(0,0);...Clea
0001A0: 72 53 63 72 65 65 6E 3B 0D 0A 09 45 4E 44 20 43 rScreen;...END C
0001B0: 6C 65 61 72 44 69 73 70 6C 61 79 3B 0D 0A 50 52 learDisplay;..PR
0001C0: 4F 43 45 44 55 52 45 20 52 65 61 6C 6C 79 28 29 OCEDURE Really()
0001D0: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E :BOOLEAN;..BEGIN
0001E0: 0D 0A 09 57 72 69 74 65 53 74 72 69 6E 67 28 27 ...WriteString('
0001F0: 20 28 59 2F 4E 29 3F 20 27 29 3B 0D 0A 09 52 45 (Y/N)? ');...RE
Size : 512 (Real : 512)
000000: 78 29 20 4F 52 20 28 63 68 3D 37 66 78 29 20 54 x) OR (ch=7fx) T
000010: 48 45 4E 0D 0A 09 09 09 49 46 20 6C 65 6E 3E 30 HEN.....IF len>0
000020: 20 54 48 45 4E 20 0D 0A 09 09 09 09 44 45 43 28 THEN ......DEC(
000030: 6C 65 6E 29 3B 0D 0A 09 09 09 09 49 46 20 73 5B len);......IF s[
000040: 6C 65 6E 5D 3C 27 20 27 20 54 48 45 4E 20 42 61 len]<' ' THEN Ba
000050: 63 6B 53 70 61 63 65 20 45 4E 44 3B 0D 0A 09 09 ckSpace END;....
000060: 09 09 42 61 63 6B 53 70 61 63 65 3B 0D 0A 09 09 ..BackSpace;....
000070: 09 09 45 4E 44 3B 0D 0A 09 09 45 4C 53 49 46 20 ..END;....ELSIF
000080: 63 68 3D 31 38 78 20 54 48 45 4E 0D 0A 09 09 09 ch=18x THEN.....
000090: 46 4F 52 20 6C 65 6E 3A 3D 31 20 54 4F 20 63 68 FOR len:=1 TO ch
0000A0: 61 72 73 20 44 4F 20 42 61 63 6B 53 70 61 63 65 ars DO BackSpace
0000B0: 20 45 4E 44 3B 0D 0A 09 09 09 6C 65 6E 3A 3D 30 END;.....len:=0
0000C0: 3B 0D 0A 09 09 09 63 68 61 72 73 3A 3D 30 3B 0D ;.....chars:=0;.
0000D0: 0A 09 09 45 4C 53 45 0D 0A 09 09 09 49 46 20 63 ...ELSE.....IF c
0000E0: 68 3C 27 20 27 20 54 48 45 4E 20 0D 0A 09 09 09 h<' ' THEN .....
0000F0: 09 57 72 69 74 65 28 27 5E 27 29 3B 0D 0A 09 09 .Write('^');....
000100: 09 09 57 72 69 74 65 28 43 48 52 28 4F 52 44 28 ..Write(CHR(ORD(
000110: 63 68 29 2B 36 34 29 29 3B 0D 0A 09 09 09 09 49 ch)+64));......I
000120: 4E 43 28 63 68 61 72 73 29 3B 0D 0A 09 09 09 45 NC(chars);.....E
000130: 4C 53 45 20 57 72 69 74 65 28 63 68 29 20 45 4E LSE Write(ch) EN
000140: 44 3B 0D 0A 09 09 09 49 4E 43 28 63 68 61 72 73 D;.....INC(chars
000150: 29 3B 0D 0A 09 09 09 73 5B 6C 65 6E 5D 3A 3D 63 );.....s[len]:=c
000160: 68 3B 0D 0A 09 09 09 49 4E 43 28 6C 65 6E 29 3B h;.....INC(len);
000170: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 .....END;....END
000180: 3B 28 2A 57 48 49 4C 45 2A 29 0D 0A 09 46 4F 52 ;(*WHILE*)...FOR
000190: 20 78 3A 3D 6C 65 6E 20 54 4F 20 48 49 47 48 28 x:=len TO HIGH(
0001A0: 73 29 20 44 4F 20 73 5B 78 5D 3A 3D 27 20 27 20 s) DO s[x]:=' '
0001B0: 45 4E 44 3B 0D 0A 09 45 4E 44 20 47 65 74 53 74 END;...END GetSt
0001C0: 72 69 6E 67 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 ring;....PROCEDU
0001D0: 52 45 20 44 6F 4D 65 6E 75 4F 70 3B 0D 0A 56 41 RE DoMenuOp;..VA
0001E0: 52 09 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 R.y:CARDINAL;...
0001F0: 66 6E 3A 46 69 6C 65 4E 61 6D 65 3B 0D 0A 50 52 fn:FileName;..PR
Size : 512 (Real : 512)
000000: 50 45 41 54 0D 0A 09 09 42 75 73 79 52 65 61 64 PEAT....BusyRead
000010: 28 63 68 29 3B 0D 0A 09 09 63 68 3A 3D 43 41 50 (ch);....ch:=CAP
000020: 28 63 68 29 3B 0D 0A 09 09 55 4E 54 49 4C 20 28 (ch);....UNTIL (
000030: 63 68 3D 27 59 27 29 20 4F 52 20 28 63 68 3D 27 ch='Y') OR (ch='
000040: 4E 27 29 3B 0D 0A 09 57 72 69 74 65 28 63 68 29 N');...Write(ch)
000050: 3B 0D 0A 09 52 45 54 55 52 4E 20 63 68 3D 27 59 ;...RETURN ch='Y
000060: 27 0D 0A 09 45 4E 44 20 52 65 61 6C 6C 79 3B 0D '...END Really;.
000070: 0A 50 52 4F 43 45 44 55 52 45 20 4F 70 65 6E 28 .PROCEDURE Open(
000080: 66 6E 3A 46 69 6C 65 4E 61 6D 65 3B 50 6F 73 3A fn:FileName;Pos:
000090: 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 28 2A 09 4F CARDINAL);..(*.O
0000A0: 70 65 6E 20 74 68 65 20 66 69 6C 65 20 77 68 6F pen the file who
0000B0: 73 65 20 6E 61 6D 65 20 69 73 20 69 6E 20 66 6E se name is in fn
0000C0: 0D 0A 0D 0A 09 72 65 2D 61 64 6A 75 73 74 20 74 .....re-adjust t
0000D0: 68 65 20 64 69 73 70 6C 61 79 20 61 73 20 72 65 he display as re
0000E0: 71 75 69 72 65 64 2A 29 0D 0A 56 41 52 09 66 3A quired*)..VAR.f:
0000F0: 46 49 4C 45 3B 0D 0A 09 62 3A 42 4F 4F 4C 45 41 FILE;...b:BOOLEA
000100: 4E 3B 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 49 N;..BEGIN.. I
000110: 46 20 66 6E 5B 31 5D 3C 3E 27 20 27 20 54 48 45 F fn[1]<>' ' THE
000120: 4E 20 0D 0A 09 4F 70 65 6E 46 69 6C 65 28 46 69 N ...OpenFile(Fi
000130: 6C 65 73 5B 46 69 6C 65 73 4F 70 65 6E 65 64 2B les[FilesOpened+
000140: 31 5D 2C 66 6E 2C 72 65 70 6C 79 2C 50 6F 73 29 1],fn,reply,Pos)
000150: 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3D 28 2D 32 ;...IF reply=(-2
000160: 29 20 54 48 45 4E 0D 0A 09 09 43 6C 65 61 72 44 ) THEN....ClearD
000170: 69 73 70 6C 61 79 3B 0D 0A 09 09 57 72 69 74 65 isplay;....Write
000180: 53 74 72 69 6E 67 28 27 20 43 72 65 61 74 65 20 String(' Create
000190: 27 29 3B 0D 0A 09 09 57 72 69 74 65 53 74 72 69 ');....WriteStri
0001A0: 6E 67 28 66 6E 29 3B 0D 0A 09 09 0D 0A 09 09 49 ng(fn);........I
0001B0: 46 20 52 65 61 6C 6C 79 28 29 20 54 48 45 4E 0D F Really() THEN.
0001C0: 0A 09 09 09 43 72 65 61 74 65 28 66 2C 66 6E 2C ....Create(f,fn,
0001D0: 72 65 70 6C 79 29 3B 0D 0A 09 09 09 49 46 20 72 reply);.....IF r
0001E0: 65 70 6C 79 3C 3E 30 20 54 48 45 4E 0D 0A 09 09 eply<>0 THEN....
0001F0: 09 09 72 65 70 6C 79 3A 3D 2D 34 0D 0A 09 09 09 ..reply:=-4.....
Size : 512 (Real : 512)
000000: 4F 43 45 44 55 52 45 20 57 72 69 74 65 41 77 61 OCEDURE WriteAwa
000010: 79 46 69 6C 65 3B 0D 0A 42 45 47 49 4E 0D 0A 09 yFile;..BEGIN...
000020: 43 6C 6F 73 65 46 69 6C 65 28 46 69 6C 65 73 5B CloseFile(Files[
000030: 43 75 72 72 65 6E 74 46 69 6C 65 5D 2C 72 65 70 CurrentFile],rep
000040: 6C 79 29 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3D ly);...IF reply=
000050: 2D 31 20 54 48 45 4E 20 0D 0A 09 09 45 72 72 6F -1 THEN ....Erro
000060: 72 4D 65 73 73 61 67 65 28 27 44 69 73 63 20 46 rMessage('Disc F
000070: 75 6C 6C 20 27 2C 27 20 27 29 3B 0D 0A 09 45 4C ull ',' ');...EL
000080: 53 49 46 20 72 65 70 6C 79 3D 2D 32 20 54 48 45 SIF reply=-2 THE
000090: 4E 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 61 67 N....ErrorMessag
0000A0: 65 28 27 44 69 72 65 63 74 6F 72 79 20 46 75 6C e('Directory Ful
0000B0: 6C 20 27 2C 27 20 27 29 3B 0D 0A 09 09 45 4E 44 l ',' ');....END
0000C0: 3B 0D 0A 09 55 70 64 61 74 65 64 5B 43 75 72 72 ;...Updated[Curr
0000D0: 65 6E 74 46 69 6C 65 5D 3A 3D 46 41 4C 53 45 3B entFile]:=FALSE;
0000E0: 0D 0A 09 45 4E 44 20 57 72 69 74 65 41 77 61 79 ...END WriteAway
0000F0: 46 69 6C 65 3B 0D 0A 50 52 4F 43 45 44 55 52 45 File;..PROCEDURE
000100: 20 53 61 76 65 46 69 6C 65 73 3B 0D 0A 56 41 52 SaveFiles;..VAR
000110: 09 69 3A 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 .i:INTEGER;..BEG
000120: 49 4E 0D 0A 09 69 3A 3D 43 75 72 72 65 6E 74 46 IN...i:=CurrentF
000130: 69 6C 65 3B 0D 0A 09 72 65 70 6C 79 3A 3D 30 3B ile;...reply:=0;
000140: 0D 0A 09 46 4F 52 20 43 75 72 72 65 6E 74 46 69 ...FOR CurrentFi
000150: 6C 65 3A 3D 31 20 54 4F 20 46 69 6C 65 73 4F 70 le:=1 TO FilesOp
000160: 65 6E 65 64 20 44 4F 0D 0A 09 09 49 46 20 55 70 ened DO....IF Up
000170: 64 61 74 65 64 5B 43 75 72 72 65 6E 74 46 69 6C dated[CurrentFil
000180: 65 5D 20 54 48 45 4E 20 57 72 69 74 65 41 77 61 e] THEN WriteAwa
000190: 79 46 69 6C 65 20 45 4E 44 3B 0D 0A 09 09 49 46 yFile END;....IF
0001A0: 20 72 65 70 6C 79 3C 3E 30 20 54 48 45 4E 20 52 reply<>0 THEN R
0001B0: 45 54 55 52 4E 20 45 4E 44 3B 0D 0A 09 09 45 4E ETURN END;....EN
0001C0: 44 3B 0D 0A 09 43 75 72 72 65 6E 74 46 69 6C 65 D;...CurrentFile
0001D0: 3A 3D 69 3B 0D 0A 09 45 4E 44 20 53 61 76 65 46 :=i;...END SaveF
0001E0: 69 6C 65 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 iles;..PROCEDURE
0001F0: 20 50 72 65 70 61 72 65 54 6F 4C 65 61 76 65 3B PrepareToLeave;
Size : 512 (Real : 512)
000000: 45 4C 53 45 0D 0A 09 09 09 09 43 6C 6F 73 65 28 ELSE......Close(
000010: 66 29 3B 0D 0A 09 09 09 09 4F 70 65 6E 46 69 6C f);......OpenFil
000020: 65 28 46 69 6C 65 73 5B 46 69 6C 65 73 4F 70 65 e(Files[FilesOpe
000030: 6E 65 64 2B 31 5D 2C 66 6E 2C 72 65 70 6C 79 2C ned+1],fn,reply,
000040: 50 6F 73 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D Pos);......END;.
000050: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B ....END;....END;
000060: 20 28 2A 72 65 70 6C 79 3D 2D 32 2A 29 0D 0A 09 (*reply=-2*)...
000070: 49 46 20 72 65 70 6C 79 3D 28 2D 34 29 20 54 48 IF reply=(-4) TH
000080: 45 4E 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 61 EN....ErrorMessa
000090: 67 65 28 27 43 6F 75 6C 64 20 6E 6F 74 20 63 72 ge('Could not cr
0000A0: 65 61 74 65 20 27 2C 66 6E 29 3B 0D 0A 09 45 4C eate ',fn);...EL
0000B0: 53 49 46 20 72 65 70 6C 79 3D 28 2D 33 29 20 54 SIF reply=(-3) T
0000C0: 48 45 4E 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 HEN....ErrorMess
0000D0: 61 67 65 28 27 4F 75 74 20 6F 66 20 4D 65 6D 6F age('Out of Memo
0000E0: 72 79 20 6C 6F 61 64 69 6E 67 20 27 2C 66 6E 20 ry loading ',fn
0000F0: 29 3B 0D 0A 09 45 4C 53 49 46 20 72 65 70 6C 79 );...ELSIF reply
000100: 3D 28 2D 32 29 20 54 48 45 4E 0D 0A 09 09 45 72 =(-2) THEN....Er
000110: 72 6F 72 4D 65 73 73 61 67 65 28 27 46 69 6C 65 rorMessage('File
000120: 20 6E 6F 74 20 66 6F 75 6E 64 3A 27 2C 66 6E 29 not found:',fn)
000130: 3B 0D 0A 09 45 4C 53 49 46 20 72 65 70 6C 79 3C ;...ELSIF reply<
000140: 30 20 54 48 45 4E 0D 0A 09 09 45 72 72 6F 72 4D 0 THEN....ErrorM
000150: 65 73 73 61 67 65 28 27 20 4F 74 68 65 72 20 65 essage(' Other e
000160: 72 72 6F 72 20 6F 70 65 6E 69 6E 67 20 66 69 6C rror opening fil
000170: 65 3A 27 2C 66 6E 29 0D 0A 09 45 4C 53 45 20 09 e:',fn)...ELSE .
000180: 28 2A 66 69 6C 65 20 6F 6B 2A 29 0D 0A 09 09 49 (*file ok*)....I
000190: 4E 43 28 46 69 6C 65 73 4F 70 65 6E 65 64 29 3B NC(FilesOpened);
0001A0: 0D 0A 09 09 49 4E 43 28 57 69 6E 64 6F 77 73 29 ....INC(Windows)
0001B0: 3B 0D 0A 09 09 57 69 6E 64 6F 77 46 69 6C 65 5B ;....WindowFile[
0001C0: 57 69 6E 64 6F 77 73 5D 3A 3D 46 69 6C 65 73 4F Windows]:=FilesO
0001D0: 70 65 6E 65 64 3B 0D 0A 09 09 53 65 74 57 69 6E pened;....SetWin
0001E0: 64 6F 77 73 28 57 69 6E 64 6F 77 73 29 3B 0D 0A dows(Windows);..
0001F0: 09 09 62 3A 3D 4C 61 62 65 6C 4F 70 28 46 69 6C ..b:=LabelOp(Fil
Size : 512 (Real : 512)
000000: 0D 0A 42 45 47 49 4E 0D 0A 09 53 61 76 65 46 69 ..BEGIN...SaveFi
000010: 6C 65 73 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3D les;...IF reply=
000020: 30 20 54 48 45 4E 0D 0A 09 09 43 6C 65 61 72 44 0 THEN....ClearD
000030: 69 73 70 6C 61 79 3B 0D 0A 09 09 53 74 6F 72 65 isplay;....Store
000040: 4D 61 63 72 6F 73 3B 0D 0A 09 09 45 4E 44 3B 0D Macros;....END;.
000050: 0A 09 45 4E 44 20 50 72 65 70 61 72 65 54 6F 4C ..END PrepareToL
000060: 65 61 76 65 3B 09 09 0D 0A 0D 0A 50 52 4F 43 45 eave;......PROCE
000070: 44 55 52 45 20 43 61 6C 6C 43 6F 6D 70 69 6C 65 DURE CallCompile
000080: 72 73 28 6F 70 74 31 2C 6F 70 74 32 3A 41 52 52 rs(opt1,opt2:ARR
000090: 41 59 20 4F 46 20 43 48 41 52 29 3B 0D 0A 42 45 AY OF CHAR);..BE
0000A0: 47 49 4E 0D 0A 09 50 72 65 70 61 72 65 54 6F 4C GIN...PrepareToL
0000B0: 65 61 76 65 3B 0D 0A 09 49 46 20 72 65 70 6C 79 eave;...IF reply
0000C0: 3D 30 20 54 48 45 4E 0D 0A 09 20 20 20 20 43 41 =0 THEN... CA
0000D0: 53 45 20 46 69 6C 65 54 79 70 65 28 46 69 6C 65 SE FileType(File
0000E0: 73 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 29 20 s[CurrentFile])
0000F0: 4F 46 0D 0A 09 09 31 3A 43 61 6C 6C 57 69 74 68 OF....1:CallWith
000100: 46 69 6C 65 28 6F 70 74 31 2C 46 69 6C 65 73 5B File(opt1,Files[
000110: 43 75 72 72 65 6E 74 46 69 6C 65 5D 29 7C 0D 0A CurrentFile])|..
000120: 09 09 32 3A 43 61 6C 6C 57 69 74 68 46 69 6C 65 ..2:CallWithFile
000130: 28 6F 70 74 32 2C 46 69 6C 65 73 5B 43 75 72 72 (opt2,Files[Curr
000140: 65 6E 74 46 69 6C 65 5D 29 3B 0D 0A 09 09 45 4E entFile]);....EN
000150: 44 3B 0D 0A 09 09 52 65 64 69 73 70 6C 61 79 3B D;....Redisplay;
000160: 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 61 67 65 ....ErrorMessage
000170: 28 27 20 49 6E 76 61 6C 69 64 20 46 69 6C 65 20 (' Invalid File
000180: 54 79 70 65 27 2C 27 20 27 29 3B 0D 0A 09 20 20 Type',' ');...
000190: 20 20 45 4E 44 3B 28 2A 49 46 2A 29 0D 0A 09 45 END;(*IF*)...E
0001A0: 4E 44 20 43 61 6C 6C 43 6F 6D 70 69 6C 65 72 73 ND CallCompilers
0001B0: 3B 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 6F ;...PROCEDURE Co
0001C0: 75 6E 74 52 65 66 73 28 29 3A 43 41 52 44 49 4E untRefs():CARDIN
0001D0: 41 4C 3B 09 0D 0A 56 41 52 09 6A 3A 43 41 52 44 AL;...VAR.j:CARD
0001E0: 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 6A INAL;..BEGIN...j
0001F0: 3A 3D 30 3B 0D 0A 09 46 4F 52 20 69 3A 3D 31 20 :=0;...FOR i:=1
Size : 512 (Real : 512)
000000: 29 3B 0D 0A 09 09 57 1A 1A 1A 1A 1A 1A 1A 1A 1A );....W.........
000010: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000020: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000030: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000040: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000050: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000060: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000070: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000080: 0A 61 6E 64 20 69 73 20 74 65 72 6D 69 6E 61 74 .and is terminat
000090: 65 64 20 62 79 20 61 20 76 61 6C 75 65 20 6F 66 ed by a value of
0000A0: 20 30 20 69 66 20 6C 65 73 73 20 74 68 61 6E 20 0 if less than
0000B0: 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 72 characters are r
0000C0: 65 71 75 69 72 65 64 2E 0D 0A 4E 61 74 75 72 61 equired...Natura
0000D0: 6C 6C 79 2C 20 79 6F 75 20 6D 61 79 20 61 6C 73 lly, you may als
0000E0: 6F 20 63 68 61 6E 67 65 20 74 68 65 20 2E 43 4F o change the .CO
0000F0: 4D 20 66 69 6C 65 2E 0D 0D 0A 54 68 65 20 63 6F M file....The co
000100: 6E 74 72 6F 6C 20 63 68 61 72 61 63 74 65 72 73 ntrol characters
000110: 20 69 6E 20 74 68 65 20 73 75 70 70 6C 69 65 64 in the supplied
000120: 20 70 72 6F 67 72 61 6D 20 61 72 65 20 73 65 74 program are set
000130: 20 66 6F 72 20 61 20 53 54 41 52 20 44 50 53 35 for a STAR DPS5
000140: 31 30 2C 0D 0A 77 68 69 63 68 20 69 73 20 73 75 10,..which is su
000150: 70 70 6F 73 65 64 20 74 6F 20 62 65 20 45 70 73 pposed to be Eps
000160: 6F 6E 20 63 6F 6D 70 61 74 69 62 6C 65 2C 20 73 on compatible, s
000170: 6F 20 74 68 65 20 70 72 6F 67 72 61 6D 20 6D 61 o the program ma
000180: 79 20 77 65 6C 6C 20 72 75 6E 20 27 61 73 20 69 y well run 'as i
000190: 73 27 0D 0A 6F 6E 20 45 70 73 6F 6E 73 20 61 6E s'..on Epsons an
0001A0: 64 20 45 70 73 6F 6E 20 63 6C 6F 6E 65 73 2E 0D d Epson clones..
0001B0: 0A 0D 0A 48 6F 77 20 74 68 65 20 70 72 6F 67 72 ...How the progr
0001C0: 61 6D 20 77 6F 72 6B 73 0D 0A 3D 3D 3D 3D 3D 3D am works..======
0001D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ===============.
0001E0: 0A 0D 0A 46 6F 72 20 65 61 63 68 20 6C 69 6E 65 ...For each line
0001F0: 2C 20 61 20 68 61 73 68 20 74 6F 74 61 6C 20 69 , a hash total i
Size : 512 (Real : 512)
000000: 54 4F 20 57 69 6E 64 6F 77 73 20 44 4F 0D 0A 09 TO Windows DO...
000010: 09 49 46 20 57 69 6E 64 6F 77 46 69 6C 65 5B 69 .IF WindowFile[i
000020: 5D 3D 43 75 72 72 65 6E 74 46 69 6C 65 20 54 48 ]=CurrentFile TH
000030: 45 4E 20 49 4E 43 28 6A 29 20 45 4E 44 3B 0D 0A EN INC(j) END;..
000040: 09 09 45 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 ..END;...RETURN
000050: 6A 0D 0A 09 45 4E 44 20 43 6F 75 6E 74 52 65 66 j...END CountRef
000060: 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 s;..PROCEDURE Re
000070: 6D 6F 76 65 46 69 6C 65 3B 0D 0A 56 41 52 09 6A moveFile;..VAR.j
000080: 2C 6B 3A 43 41 52 44 49 4E 41 4C 3B 63 68 3A 43 ,k:CARDINAL;ch:C
000090: 48 41 52 3B 0D 0A 42 45 47 49 4E 0D 0A 09 6A 3A HAR;..BEGIN...j:
0000A0: 3D 43 75 72 72 65 6E 74 46 69 6C 65 3B 0D 0A 09 =CurrentFile;...
0000B0: 6B 3A 3D 31 3B 0D 0A 09 57 48 49 4C 45 20 6B 3C k:=1;...WHILE k<
0000C0: 3D 57 69 6E 64 6F 77 73 20 44 4F 0D 0A 09 09 49 =Windows DO....I
0000D0: 46 20 57 69 6E 64 6F 77 46 69 6C 65 5B 6B 5D 3D F WindowFile[k]=
0000E0: 6A 20 54 48 45 4E 0D 0A 09 09 20 09 45 6C 69 64 j THEN.... .Elid
0000F0: 65 57 69 6E 64 6F 77 28 6B 29 20 20 28 2A 77 68 eWindow(k) (*wh
000100: 69 63 68 20 64 65 63 72 65 6D 65 6E 74 73 20 77 ich decrements w
000110: 69 6E 64 6F 77 73 2A 29 0D 0A 09 09 45 4C 53 45 indows*)....ELSE
000120: 20 49 46 20 57 69 6E 64 6F 77 46 69 6C 65 5B 6B IF WindowFile[k
000130: 5D 3E 6A 20 54 48 45 4E 0D 0A 09 09 09 44 45 43 ]>j THEN.....DEC
000140: 28 57 69 6E 64 6F 77 46 69 6C 65 5B 6B 5D 29 3B (WindowFile[k]);
000150: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 20 20 20 .....END;....
000160: 20 20 49 4E 43 28 6B 29 3B 0D 0A 09 09 20 20 20 INC(k);....
000170: 20 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A END;....END;..
000180: 09 41 62 61 6E 64 6F 6E 46 69 6C 65 28 46 69 6C .AbandonFile(Fil
000190: 65 73 5B 6A 5D 29 3B 0D 0A 09 46 4F 52 20 69 3A es[j]);...FOR i:
0001A0: 3D 6A 2B 31 20 54 4F 20 46 69 6C 65 73 4F 70 65 =j+1 TO FilesOpe
0001B0: 6E 65 64 20 44 4F 20 0D 0A 09 09 46 69 6C 65 73 ned DO ....Files
0001C0: 5B 69 2D 31 5D 3A 3D 46 69 6C 65 73 5B 69 5D 3B [i-1]:=Files[i];
0001D0: 0D 0A 09 09 55 70 64 61 74 65 64 5B 69 2D 31 5D ....Updated[i-1]
0001E0: 3A 3D 55 70 64 61 74 65 64 5B 69 5D 3B 0D 0A 09 :=Updated[i];...
0001F0: 09 45 4E 44 3B 0D 0A 09 44 45 43 28 46 69 6C 65 .END;...DEC(File
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 73 4F 70 65 6E 65 64 29 3B 0D 0A 09 43 68 61 6E sOpened);...Chan
000010: 67 65 57 69 6E 64 6F 77 28 31 29 3B 0D 0A 20 20 geWindow(1);..
000020: 09 52 65 64 69 73 70 6C 61 79 3B 0D 0A 09 45 4E .Redisplay;...EN
000030: 44 20 52 65 6D 6F 76 65 46 69 6C 65 3B 0D 0A 50 D RemoveFile;..P
000040: 52 4F 43 45 44 55 52 45 20 43 68 65 63 6B 52 65 ROCEDURE CheckRe
000050: 6D 6F 76 65 46 69 6C 65 3B 0D 0A 42 45 47 49 4E moveFile;..BEGIN
000060: 0D 0A 09 49 46 20 55 70 64 61 74 65 64 5B 43 75 ...IF Updated[Cu
000070: 72 72 65 6E 74 46 69 6C 65 5D 20 54 48 45 4E 0D rrentFile] THEN.
000080: 0A 09 09 43 6C 65 61 72 44 69 73 70 6C 61 79 3B ...ClearDisplay;
000090: 0D 0A 09 09 57 72 69 74 65 53 74 72 69 6E 67 28 ....WriteString(
0000A0: 27 20 46 69 6C 65 20 75 70 64 61 74 65 64 20 2D ' File updated -
0000B0: 20 41 72 65 20 79 6F 75 20 73 75 72 65 20 27 29 Are you sure ')
0000C0: 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 52 65 61 6C ;....IF NOT Real
0000D0: 6C 79 28 29 20 54 48 45 4E 20 0D 0A 09 09 09 52 ly() THEN .....R
0000E0: 65 64 69 73 70 6C 61 79 3B 0D 0A 09 09 09 52 45 edisplay;.....RE
0000F0: 54 55 52 4E 20 0D 0A 09 09 09 45 4E 44 3B 0D 0A TURN .....END;..
000100: 09 09 45 4E 44 3B 0D 0A 09 52 65 6D 6F 76 65 46 ..END;...RemoveF
000110: 69 6C 65 3B 0D 0A 09 45 4E 44 20 43 68 65 63 6B ile;...END Check
000120: 52 65 6D 6F 76 65 46 69 6C 65 3B 0D 0A 42 45 47 RemoveFile;..BEG
000130: 49 4E 0D 0A 09 53 65 74 42 6F 78 50 6F 73 28 79 IN...SetBoxPos(y
000140: 29 3B 0D 0A 09 63 3A 3D 47 65 74 46 72 6F 6D 4D );...c:=GetFromM
000150: 65 6E 75 28 54 65 78 74 2C 31 30 2C 79 2C 35 2C enu(Text,10,y,5,
000160: 32 29 3B 0D 0A 09 43 6C 65 61 72 43 68 61 72 42 2);...ClearCharB
000170: 75 66 66 65 72 3B 0D 0A 09 49 46 20 28 46 69 6C uffer;...IF (Fil
000180: 65 73 4F 70 65 6E 65 64 3D 30 29 20 41 4E 44 20 esOpened=0) AND
000190: 28 63 20 49 4E 20 7B 32 2E 2E 38 7D 29 20 54 48 (c IN {2..8}) TH
0001A0: 45 4E 0D 0A 09 09 45 72 72 6F 72 4D 65 73 73 61 EN....ErrorMessa
0001B0: 67 65 28 27 59 6F 75 20 68 61 76 65 20 74 6F 20 ge('You have to
0001C0: 62 65 20 65 64 69 74 69 6E 67 20 61 20 66 69 6C be editing a fil
0001D0: 65 20 74 6F 20 64 6F 20 74 68 69 73 27 2C 27 20 e to do this','
0001E0: 27 29 3B 0D 0A 09 45 4C 53 45 20 43 41 53 45 20 ');...ELSE CASE
0001F0: 63 20 4F 46 0D 0A 09 31 3A 49 46 20 57 69 6E 64 c OF...1:IF Wind
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 45 64 69 74 43 6F 6E 74 72 6F 6C 3B 0D 0A E EditControl;..
000020: 46 52 4F 4D 20 4D 61 6B 65 45 64 69 74 73 20 49 FROM MakeEdits I
000030: 4D 50 4F 52 54 20 45 64 69 74 46 69 6C 65 2C 50 MPORT EditFile,P
000040: 6F 73 69 74 69 6F 6E 3B 0D 0A 46 52 4F 4D 20 54 osition;..FROM T
000050: 65 72 6D 69 6E 61 6C 20 49 4D 50 4F 52 54 20 57 erminal IMPORT W
000060: 72 69 74 65 2C 57 72 69 74 65 4C 6E 3B 0D 0A 0D rite,WriteLn;...
000070: 0A 28 2A 09 45 64 69 74 6F 72 20 63 6F 6E 74 72 .(*.Editor contr
000080: 6F 6C 20 2D 20 64 61 74 61 20 61 72 65 61 73 20 ol - data areas
000090: 66 6F 72 20 66 69 6C 65 20 61 6E 64 20 72 6F 75 for file and rou
0000A0: 74 69 6E 65 73 20 77 68 69 63 68 20 61 63 74 75 tines which actu
0000B0: 61 6C 6C 79 0D 0A 09 70 65 72 66 6F 72 6D 20 65 ally...perform e
0000C0: 64 69 74 20 66 75 6E 63 74 69 6F 6E 73 20 62 79 dit functions by
0000D0: 20 63 61 6C 6C 69 6E 67 20 6D 61 6B 65 65 64 69 calling makeedi
0000E0: 74 20 74 6F 20 65 64 69 74 20 74 68 65 20 66 69 t to edit the fi
0000F0: 6C 65 20 61 6E 64 0D 0A 09 65 64 69 74 64 69 73 le and...editdis
000100: 70 20 74 6F 20 63 68 61 6E 67 65 20 74 68 65 20 p to change the
000110: 73 63 72 65 65 6E 2A 29 0D 0A 43 4F 4E 53 54 20 screen*)..CONST
000120: 20 09 4D 61 78 45 64 69 74 46 69 6C 65 73 3D 33 .MaxEditFiles=3
000130: 3B 0D 0A 0D 0A 56 41 52 09 46 69 6C 65 73 3A 20 ;....VAR.Files:
000140: 41 52 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 74 ARRAY[1..MaxEdit
000150: 46 69 6C 65 73 5D 20 4F 46 20 45 64 69 74 46 69 Files] OF EditFi
000160: 6C 65 3B 0D 0A 09 46 69 6C 65 73 4F 70 65 6E 65 le;...FilesOpene
000170: 64 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 43 75 d:CARDINAL;...Cu
000180: 72 72 65 6E 74 46 69 6C 65 2C 43 75 72 72 65 6E rrentFile,Curren
000190: 74 57 69 6E 64 6F 77 3A 43 41 52 44 49 4E 41 4C tWindow:CARDINAL
0001A0: 3B 0D 0A 09 46 69 6C 65 50 6F 73 69 74 69 6F 6E ;...FilePosition
0001B0: 3A 41 52 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 :ARRAY[1..MaxEdi
0001C0: 74 46 69 6C 65 73 5D 20 4F 46 20 50 6F 73 69 74 tFiles] OF Posit
0001D0: 69 6F 6E 3B 0D 0A 09 63 75 72 78 2C 63 75 72 79 ion;...curx,cury
0001E0: 3A 41 52 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 :ARRAY[1..MaxEdi
0001F0: 74 46 69 6C 65 73 5D 20 4F 46 20 43 41 52 44 49 tFiles] OF CARDI
Size : 512 (Real : 512)
000000: 6F 77 73 3D 33 20 54 48 45 4E 20 45 72 72 6F 72 ows=3 THEN Error
000010: 4D 65 73 73 61 67 65 28 27 20 33 20 77 69 6E 64 Message(' 3 wind
000020: 6F 77 73 20 69 73 20 6D 61 78 20 61 6C 6C 6F 77 ows is max allow
000030: 65 64 27 2C 27 20 27 29 0D 0A 09 20 20 45 4C 53 ed',' ')... ELS
000040: 45 0D 0A 09 09 47 65 74 53 74 72 69 6E 67 28 66 E....GetString(f
000050: 6E 2C 79 2C 27 46 69 6C 65 3A 27 29 3B 0D 0A 09 n,y,'File:');...
000060: 09 4F 70 65 6E 28 66 6E 2C 36 35 35 33 35 29 3B .Open(fn,65535);
000070: 0D 0A 09 09 45 4E 44 0D 0A 09 20 20 7C 0D 0A 09 ....END... |...
000080: 32 3A 57 72 69 74 65 41 77 61 79 46 69 6C 65 3B 2:WriteAwayFile;
000090: 0D 0A 09 20 20 7C 0D 0A 09 33 3A 57 72 69 74 65 ... |...3:Write
0000A0: 41 77 61 79 46 69 6C 65 3B 0D 0A 09 20 20 49 46 AwayFile;... IF
0000B0: 20 72 65 70 6C 79 3D 30 20 54 48 45 4E 20 0D 0A reply=0 THEN ..
0000C0: 09 09 52 65 6D 6F 76 65 46 69 6C 65 3B 0D 0A 09 ..RemoveFile;...
0000D0: 09 45 4E 44 3B 0D 0A 09 20 20 7C 0D 0A 09 34 3A .END;... |...4:
0000E0: 49 46 20 57 69 6E 64 6F 77 73 3D 33 20 54 48 45 IF Windows=3 THE
0000F0: 4E 20 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 N ErrorMessage('
000100: 20 33 20 77 69 6E 64 6F 77 73 20 69 73 20 6D 61 3 windows is ma
000110: 78 20 61 6C 6C 6F 77 65 64 27 2C 27 20 27 29 0D x allowed',' ').
000120: 0A 09 20 20 45 4C 53 45 0D 0A 09 09 4D 61 6B 65 .. ELSE....Make
000130: 57 69 6E 64 6F 77 3B 0D 0A 09 09 53 65 74 57 69 Window;....SetWi
000140: 6E 64 6F 77 73 28 57 69 6E 64 6F 77 73 29 3B 0D ndows(Windows);.
000150: 0A 09 09 43 68 61 6E 67 65 57 69 6E 64 6F 77 28 ...ChangeWindow(
000160: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 3B 0D CurrentWindow);.
000170: 0A 09 09 52 65 64 69 73 70 6C 61 79 3B 0D 0A 09 ...Redisplay;...
000180: 09 45 4E 44 7C 0D 0A 09 09 0D 0A 09 35 3A 43 61 .END|.......5:Ca
000190: 6C 6C 43 6F 6D 70 69 6C 65 72 73 28 27 4D 32 5B llCompilers('M2[
0001A0: 45 20 27 2C 27 4D 44 5B 45 20 27 29 7C 0D 0A 09 E ','MD[E ')|...
0001B0: 36 3A 43 61 6C 6C 43 6F 6D 70 69 6C 65 72 73 28 6:CallCompilers(
0001C0: 27 4D 32 20 27 2C 27 4D 44 20 27 29 7C 0D 0A 09 'M2 ','MD ')|...
0001D0: 37 3A 49 46 20 46 69 6C 65 73 4F 70 65 6E 65 64 7:IF FilesOpened
0001E0: 3E 30 20 54 48 45 4E 0D 0A 09 09 43 68 65 63 6B >0 THEN....Check
0001F0: 52 65 6D 6F 76 65 46 69 6C 65 3B 0D 0A 09 09 45 RemoveFile;....E
Size : 512 (Real : 512)
000000: 4E 41 4C 3B 0D 0A 09 54 68 69 73 78 2C 54 68 69 NAL;...Thisx,Thi
000010: 73 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 4C sy:CARDINAL;...L
000020: 65 66 74 4D 61 72 67 69 6E 3A 41 52 52 41 59 5B eftMargin:ARRAY[
000030: 31 2E 2E 4D 61 78 45 64 69 74 46 69 6C 65 73 5D 1..MaxEditFiles]
000040: 20 4F 46 20 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 OF CARDINAL;...
000050: 4C 69 6E 65 4C 65 6E 3A 49 4E 54 45 47 45 52 3B LineLen:INTEGER;
000060: 0D 0A 09 4C 69 6E 65 50 6F 73 3A 49 4E 54 45 47 ...LinePos:INTEG
000070: 45 52 3B 0D 0A 09 55 70 64 61 74 65 64 3A 41 52 ER;...Updated:AR
000080: 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 74 46 69 RAY[1..MaxEditFi
000090: 6C 65 73 5D 20 4F 46 20 42 4F 4F 4C 45 41 4E 3B les] OF BOOLEAN;
0000A0: 0D 0A 09 57 69 6E 64 6F 77 46 69 6C 65 3A 41 52 ...WindowFile:AR
0000B0: 52 41 59 5B 31 2E 2E 4D 61 78 45 64 69 74 46 69 RAY[1..MaxEditFi
0000C0: 6C 65 73 5D 20 4F 46 20 43 41 52 44 49 4E 41 4C les] OF CARDINAL
0000D0: 3B 0D 0A 09 4D 6F 76 65 64 4F 4B 3A 42 4F 4F 4C ;...MovedOK:BOOL
0000E0: 45 41 4E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 EAN;..PROCEDURE
0000F0: 49 6E 73 4F 6E 65 43 68 61 72 28 63 68 3A 43 48 InsOneChar(ch:CH
000100: 41 52 29 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 AR);..PROCEDURE
000110: 44 65 6C 4F 6E 65 43 68 61 72 3B 0D 0A 50 52 4F DelOneChar;..PRO
000120: 43 45 44 55 52 45 20 44 65 6C 54 6F 45 4F 4C 3B CEDURE DelToEOL;
000130: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 6C 46 ..PROCEDURE DelF
000140: 75 6C 6C 4C 69 6E 65 3B 0D 0A 50 52 4F 43 45 44 ullLine;..PROCED
000150: 55 52 45 20 4C 65 66 74 3B 0D 0A 50 52 4F 43 45 URE Left;..PROCE
000160: 44 55 52 45 20 52 69 67 68 74 3B 0D 0A 50 52 4F DURE Right;..PRO
000170: 43 45 44 55 52 45 20 44 6F 77 6E 3B 0D 0A 50 52 CEDURE Down;..PR
000180: 4F 43 45 44 55 52 45 20 55 70 3B 0D 0A 50 52 4F OCEDURE Up;..PRO
000190: 43 45 44 55 52 45 20 55 70 53 63 72 65 65 6E 3B CEDURE UpScreen;
0001A0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F 77 6E ..PROCEDURE Down
0001B0: 53 63 72 65 65 6E 3B 0D 0A 50 52 4F 43 45 44 55 Screen;..PROCEDU
0001C0: 52 45 20 54 6F 70 3B 0D 0A 50 52 4F 43 45 44 55 RE Top;..PROCEDU
0001D0: 52 45 20 42 6F 74 74 6F 6D 3B 0D 0A 50 52 4F 43 RE Bottom;..PROC
0001E0: 45 44 55 52 45 20 43 68 61 6E 67 65 57 69 6E 64 EDURE ChangeWind
0001F0: 6F 77 28 69 3A 49 4E 54 45 47 45 52 29 3B 0D 0A ow(i:INTEGER);..
Size : 512 (Real : 512)
000000: 4E 44 3B 28 2A 46 69 6C 65 73 4F 70 65 6E 65 64 ND;(*FilesOpened
000010: 2A 29 0D 0A 09 20 20 7C 0D 0A 09 38 3A 49 46 20 *)... |...8:IF
000020: 46 69 6C 65 73 4F 70 65 6E 65 64 3E 30 20 54 48 FilesOpened>0 TH
000030: 45 4E 0D 0A 09 09 49 46 20 43 6F 75 6E 74 52 65 EN....IF CountRe
000040: 66 73 28 29 3E 31 20 54 48 45 4E 20 0D 0A 09 09 fs()>1 THEN ....
000050: 09 20 20 45 6C 69 64 65 57 69 6E 64 6F 77 28 43 . ElideWindow(C
000060: 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 0D 0A 09 urrentWindow)...
000070: 09 09 20 20 43 68 61 6E 67 65 57 69 6E 64 6F 77 .. ChangeWindow
000080: 28 31 29 3B 0D 0A 09 09 09 20 20 52 65 64 69 73 (1);..... Redis
000090: 70 6C 61 79 3B 0D 0A 09 20 20 09 45 4C 53 45 20 play;... .ELSE
0000A0: 43 68 65 63 6B 52 65 6D 6F 76 65 46 69 6C 65 20 CheckRemoveFile
0000B0: 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 20 END;....END;...
0000C0: 20 7C 0D 0A 09 39 3A 50 72 65 70 61 72 65 54 6F |...9:PrepareTo
0000D0: 4C 65 61 76 65 3B 0D 0A 09 20 20 49 46 20 72 65 Leave;... IF re
0000E0: 70 6C 79 3D 30 20 54 48 45 4E 20 48 41 4C 54 20 ply=0 THEN HALT
0000F0: 09 45 4E 44 7C 0D 0A 09 31 30 3A 20 52 65 73 65 .END|...10: Rese
000100: 74 41 6C 6C 44 69 73 63 73 3B 0D 0A 09 20 20 20 tAllDiscs;...
000110: 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 20 41 ErrorMessage(' A
000120: 6C 6C 20 64 69 73 63 73 20 6E 6F 77 20 72 65 61 ll discs now rea
000130: 64 2F 77 72 69 74 65 27 2C 27 20 27 29 3B 0D 0A d/write',' ');..
000140: 09 20 20 20 45 4E 44 3B 0D 0A 09 45 4E 44 3B 20 . END;...END;
000150: 28 2A 49 46 20 46 69 6C 65 73 4F 70 65 6E 65 64 (*IF FilesOpened
000160: 20 65 74 63 20 2A 29 0D 0A 09 45 4E 44 20 44 6F etc *)...END Do
000170: 4D 65 6E 75 4F 70 3B 0D 0A 09 45 4E 44 20 44 6F MenuOp;...END Do
000180: 4D 65 6E 75 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A Menu............
000190: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001A0: 1A 1A 1A 1A 1A 1A 4C 69 73 74 20 54 48 45 4E 0D ......List THEN.
0001B0: 0A 09 09 09 57 72 69 74 65 43 68 61 72 28 4C 69 ....WriteChar(Li
0001C0: 73 74 2C 44 65 76 69 63 65 29 3B 0D 0A 09 09 09 st,Device);.....
0001D0: 57 72 69 74 65 43 68 61 72 28 4C 69 73 74 2C 63 WriteChar(List,c
0001E0: 68 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 h);.....END;....
0001F0: 57 72 69 74 65 53 74 72 69 6E 67 28 4E 61 6D 65 WriteString(Name
Size : 512 (Real : 512)
000000: 50 52 4F 43 45 44 55 52 45 20 45 6C 69 64 65 57 PROCEDURE ElideW
000010: 69 6E 64 6F 77 28 69 3A 49 4E 54 45 47 45 52 29 indow(i:INTEGER)
000020: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D 61 6B ;..PROCEDURE Mak
000030: 65 57 69 6E 64 6F 77 3B 0D 0A 50 52 4F 43 45 44 eWindow;..PROCED
000040: 55 52 45 20 53 63 72 6F 6C 6C 55 70 3B 0D 0A 50 URE ScrollUp;..P
000050: 52 4F 43 45 44 55 52 45 20 53 63 72 6F 6C 6C 44 ROCEDURE ScrollD
000060: 6F 77 6E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 own;..PROCEDURE
000070: 52 65 73 65 74 53 63 72 65 65 6E 50 6F 73 3B 0D ResetScreenPos;.
000080: 0A 50 52 4F 43 45 44 55 52 45 20 46 61 72 52 69 .PROCEDURE FarRi
000090: 67 68 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 ght;..PROCEDURE
0000A0: 46 61 72 4C 65 66 74 3B 0D 0A 50 52 4F 43 45 44 FarLeft;..PROCED
0000B0: 55 52 45 20 53 65 61 72 63 68 28 52 65 70 6C 61 URE Search(Repla
0000C0: 63 65 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 ce:ARRAY OF CHAR
0000D0: 3B 52 4C 65 6E 3A 49 4E 54 45 47 45 52 3B 4C 65 ;RLen:INTEGER;Le
0000E0: 6E 3A 43 41 52 44 49 4E 41 4C 29 3A 42 4F 4F 4C n:CARDINAL):BOOL
0000F0: 45 41 4E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 EAN;..PROCEDURE
000100: 4F 76 65 72 57 72 69 74 65 28 63 68 3A 43 48 41 OverWrite(ch:CHA
000110: 52 29 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 R);..PROCEDURE F
000120: 69 6E 64 57 6F 72 64 28 42 61 63 6B 57 61 72 64 indWord(BackWard
000130: 3A 42 4F 4F 4C 45 41 4E 3B 44 65 6C 65 74 65 3A :BOOLEAN;Delete:
000140: 42 4F 4F 4C 45 41 4E 29 3B 0D 0A 50 52 4F 43 45 BOOLEAN);..PROCE
000150: 44 55 52 45 20 52 65 44 69 73 70 6C 61 79 3B 0D DURE ReDisplay;.
000160: 0A 50 52 4F 43 45 44 55 52 45 20 47 6F 54 6F 4C .PROCEDURE GoToL
000170: 61 62 65 6C 28 63 68 3A 43 48 41 52 29 3B 0D 0A abel(ch:CHAR);..
000180: 45 4E 44 20 45 64 69 74 43 6F 6E 74 72 6F 6C 2E END EditControl.
000190: 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001E0: 1A 1A 1A 1A 1A 54 20 20 44 45 46 20 00 00 00 00 .....T DEF ....
0001F0: 00 00 00 00 00 00 F3 45 78 0D 0D 01 69 0B 00 00 .......Ex...i...
Size : 512 (Real : 512)
000000: 66 20 63 6F 2D 6F 72 64 69 6E 61 74 65 73 20 6F f co-ordinates o
000010: 75 74 20 6F 75 74 70 75 74 20 61 73 20 0D 0A 09 ut output as ...
000020: 09 09 09 20 61 73 63 69 69 20 6E 75 6D 62 65 72 ... ascii number
000030: 73 20 72 61 74 68 65 72 20 74 68 61 6E 20 62 69 s rather than bi
000040: 6E 61 72 79 2A 29 0D 0A 09 09 43 6F 6C 75 6D 6E nary*)....Column
000050: 46 69 72 73 74 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A First:BOOLEAN;..
000060: 09 09 41 64 64 72 65 73 73 49 6E 47 72 61 70 68 ..AddressInGraph
000070: 3A 42 4F 4F 4C 45 41 4E 3B 20 28 2A 74 72 75 65 :BOOLEAN; (*true
000080: 20 69 66 20 63 61 6E 20 63 68 61 6E 67 65 20 63 if can change c
000090: 6F 6F 72 64 69 6E 61 74 65 73 0D 0A 09 09 09 09 oordinates......
0000A0: 09 20 20 69 6E 20 67 72 61 70 68 20 6D 6F 64 65 . in graph mode
0000B0: 2A 29 0D 0A 09 09 43 61 72 72 69 61 67 65 52 65 *)....CarriageRe
0000C0: 74 75 72 6E 3A 42 4F 4F 4C 45 41 4E 3B 20 28 2A turn:BOOLEAN; (*
0000D0: 74 72 75 65 20 69 66 20 63 61 72 72 69 61 67 65 true if carriage
0000E0: 20 72 65 74 75 72 6E 20 72 65 74 75 72 6E 73 20 return returns
0000F0: 0D 0A 09 09 09 09 09 20 20 74 6F 20 73 74 61 72 ....... to star
000100: 74 20 6F 66 20 63 75 72 72 65 6E 74 20 72 6F 77 t of current row
000110: 2A 29 0D 0A 09 09 53 63 72 65 65 6E 44 65 70 74 *)....ScreenDept
000120: 68 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 53 h:CARDINAL;....S
000130: 63 72 65 65 6E 57 69 64 74 68 3A 43 41 52 44 49 creenWidth:CARDI
000140: 4E 41 4C 3B 0D 0A 09 09 58 59 4F 66 66 73 65 74 NAL;....XYOffset
000150: 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 45 4E :CARDINAL;....EN
000160: 44 3B 20 0D 0A 09 09 0D 0A 0D 0A 56 41 52 09 43 D; ........VAR.C
000170: 6F 6E 74 72 6F 6C 3A 43 6F 6E 74 72 6F 6C 43 6F ontrol:ControlCo
000180: 64 65 73 3B 0D 0A 09 41 63 74 69 76 65 3A 42 4F des;...Active:BO
000190: 4F 4C 45 41 4E 3B 0D 0A 09 49 6E 47 72 61 70 68 OLEAN;...InGraph
0001A0: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 4C 6F 77 78 :BOOLEAN;...Lowx
0001B0: 2C 48 69 67 68 78 2C 4C 6F 77 79 2C 48 69 67 68 ,Highx,Lowy,High
0001C0: 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 4F 75 y:CARDINAL;...Ou
0001D0: 74 70 75 74 45 6E 61 62 6C 65 64 3A 42 4F 4F 4C tputEnabled:BOOL
0001E0: 45 41 4E 3B 0D 0A 28 2A 50 52 4F 43 45 44 55 52 EAN;..(*PROCEDUR
0001F0: 45 20 57 72 69 74 65 28 69 3A 43 48 41 52 29 3B E Write(i:CHAR);
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 28 69 3E ..BEGIN...IF (i>
000010: 3D 27 20 27 29 20 41 4E 44 20 28 69 3C 3D 27 7A =' ') AND (i<='z
000020: 27 29 20 54 48 45 4E 20 54 65 72 6D 69 6E 61 6C ') THEN Terminal
000030: 2E 57 72 69 74 65 28 69 29 0D 0A 09 45 4C 53 45 .Write(i)...ELSE
000040: 20 0D 0A 09 09 54 65 72 6D 69 6E 61 6C 2E 57 72 ....Terminal.Wr
000050: 69 74 65 28 27 3C 27 29 3B 0D 0A 09 09 57 72 69 ite('<');....Wri
000060: 74 65 48 65 78 28 4F 52 44 28 69 29 2C 33 29 3B teHex(ORD(i),3);
000070: 0D 0A 09 09 54 65 72 6D 69 6E 61 6C 2E 57 72 69 ....Terminal.Wri
000080: 74 65 28 27 3E 27 29 3B 0D 0A 09 09 45 4E 44 3B te('>');....END;
000090: 0D 0A 09 45 4E 44 20 57 72 69 74 65 3B 2A 29 0D ...END Write;*).
0000A0: 0A 50 52 4F 43 45 44 55 52 45 20 57 72 69 74 65 .PROCEDURE Write
0000B0: 28 62 3A 43 48 41 52 29 3B 0D 0A 56 41 52 09 69 (b:CHAR);..VAR.i
0000C0: 3A 49 4E 54 45 47 45 52 3B 09 28 2A 6E 65 65 64 :INTEGER;.(*need
0000D0: 65 64 20 74 6F 20 61 76 6F 69 64 20 63 6F 6E 66 ed to avoid conf
0000E0: 6C 69 63 74 20 77 69 74 68 20 67 6C 6F 62 61 6C lict with global
0000F0: 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 4F *)..BEGIN...IF O
000100: 75 74 70 75 74 45 6E 61 62 6C 65 64 20 54 48 45 utputEnabled THE
000110: 4E 0D 0A 09 09 69 3A 3D 42 44 4F 53 28 64 69 6F N....i:=BDOS(dio
000120: 66 63 2C 57 4F 52 44 28 62 29 29 0D 0A 09 09 45 fc,WORD(b))....E
000130: 4E 44 3B 0D 0A 09 45 4E 44 20 57 72 69 74 65 3B ND;...END Write;
000140: 0D 0A 50 52 4F 43 45 44 55 52 45 20 57 72 69 74 ..PROCEDURE Writ
000150: 65 41 73 63 69 69 28 69 3A 49 4E 54 45 47 45 52 eAscii(i:INTEGER
000160: 29 3B 0D 0A 56 41 52 09 54 65 78 74 3A 41 52 52 );..VAR.Text:ARR
000170: 41 59 5B 31 2E 2E 33 5D 20 4F 46 20 43 48 41 52 AY[1..3] OF CHAR
000180: 3B 0D 0A 09 6A 2C 6B 3A 49 4E 54 45 47 45 52 3B ;...j,k:INTEGER;
000190: 0D 0A 42 45 47 49 4E 0D 0A 09 6A 3A 3D 33 3B 0D ..BEGIN...j:=3;.
0001A0: 0A 09 57 48 49 4C 45 20 28 6A 3E 30 29 20 41 4E ..WHILE (j>0) AN
0001B0: 44 20 28 69 3C 3E 30 29 20 44 4F 0D 0A 09 09 6B D (i<>0) DO....k
0001C0: 3A 3D 69 20 44 49 56 20 31 30 3B 0D 0A 09 09 54 :=i DIV 10;....T
0001D0: 65 78 74 5B 6A 5D 3A 3D 43 48 52 28 69 2D 31 30 ext[j]:=CHR(i-10
0001E0: 2A 6B 2B 4F 52 44 28 27 30 27 29 29 3B 0D 0A 09 *k+ORD('0'));...
0001F0: 09 69 3A 3D 6B 3B 0D 0A 09 09 6A 3A 3D 6A 2D 31 .i:=k;....j:=j-1
Size : 512 (Real : 512)
000000: 6D 64 20 73 63 72 65 65 6E 69 6F 2E 64 65 66 0D md screenio.def.
000010: 0A 6D 64 20 73 63 72 65 65 6E 64 75 2E 64 65 66 .md screendu.def
000020: 0D 0A 6D 64 20 72 65 73 65 74 64 69 73 2E 64 65 ..md resetdis.de
000030: 66 0D 0A 6D 32 20 73 63 72 65 65 6E 69 6F 2E 6D f..m2 screenio.m
000040: 6F 64 0D 0A 6D 64 20 6D 61 6B 65 65 64 69 74 2E od..md makeedit.
000050: 64 65 66 0D 0A 6D 64 20 65 64 69 74 73 74 61 74 def..md editstat
000060: 2E 64 65 66 0D 0A 6D 32 20 6D 61 6B 65 65 64 69 .def..m2 makeedi
000070: 74 2E 6D 6F 64 0D 0A 6D 64 20 65 64 69 74 63 6F t.mod..md editco
000080: 6E 74 2E 64 65 66 0D 0A 6D 64 20 6D 61 63 72 6F nt.def..md macro
000090: 73 2E 64 65 66 0D 0A 6D 64 20 6D 65 6E 75 2E 64 s.def..md menu.d
0000A0: 65 66 0D 0A 6D 64 20 64 6F 6D 65 6E 75 2E 64 65 ef..md domenu.de
0000B0: 66 0D 0A 6D 64 20 65 64 69 74 64 69 73 70 2E 64 f..md editdisp.d
0000C0: 65 66 0D 0A 6D 64 20 73 65 74 75 70 63 61 6C 2E ef..md setupcal.
0000D0: 64 65 66 0D 0A 6D 64 20 65 64 69 74 63 6F 6E 74 def..md editcont
0000E0: 2E 64 65 66 0D 0A 6D 64 20 6B 65 79 62 6F 61 72 .def..md keyboar
0000F0: 64 2E 64 65 66 0D 0A 6D 32 20 6D 65 6E 75 2E 6D d.def..m2 menu.m
000100: 6F 64 0D 0A 6D 32 20 65 64 69 74 73 74 61 74 2E od..m2 editstat.
000110: 6D 6F 64 0D 0A 6D 32 20 6D 61 63 72 6F 73 2E 6D mod..m2 macros.m
000120: 6F 64 0D 0A 6D 32 20 64 6F 6D 65 6E 75 2E 6D 6F od..m2 domenu.mo
000130: 64 0D 0A 6D 32 20 65 64 69 74 64 69 73 70 2E 6D d..m2 editdisp.m
000140: 6F 64 0D 0A 6D 32 20 65 64 69 74 63 6F 6E 74 2E od..m2 editcont.
000150: 6D 6F 64 0D 0A 6D 32 20 6D 65 2E 6D 6F 64 0D 0A mod..m2 me.mod..
000160: 6D 32 20 73 63 72 65 65 6E 64 75 2E 6D 6F 64 0D m2 screendu.mod.
000170: 0A 6D 32 20 72 65 73 65 74 64 69 73 2E 6D 6F 64 .m2 resetdis.mod
000180: 0D 0A 6D 32 20 6B 65 79 62 6F 61 72 64 2E 6D 6F ..m2 keyboard.mo
000190: 64 0D 0A 6D 32 20 73 65 74 75 70 63 61 6C 2E 6D d..m2 setupcal.m
0001A0: 6F 64 0D 0A 6D 32 20 6D 61 63 72 6F 73 2E 6D 6F od..m2 macros.mo
0001B0: 64 0D 0A 6D 32 20 6D 61 6B 65 65 64 69 74 2E 6D d..m2 makeedit.m
0001C0: 6F 64 0D 0A 6D 32 20 6D 65 2E 6D 6F 64 0D 0A 6D od..m2 me.mod..m
0001D0: 6C 20 6D 65 2F 64 0D 0A 1A 65 2E 6D 6F 64 0D 0A l me/d...e.mod..
0001E0: 6D 32 20 73 63 72 65 65 6E 64 75 2E 6D 6F 64 0D m2 screendu.mod.
0001F0: 0A 6D 32 20 72 65 73 65 74 64 69 73 2E 6D 6F 64 .m2 resetdis.mod
Size : 512 (Real : 512)
000000: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 46 4F 52 20 ;....END;...FOR
000010: 6B 3A 3D 6A 2B 31 20 54 4F 20 33 20 44 4F 20 57 k:=j+1 TO 3 DO W
000020: 72 69 74 65 28 54 65 78 74 5B 6B 5D 29 20 45 4E rite(Text[k]) EN
000030: 44 3B 0D 0A 09 45 4E 44 20 57 72 69 74 65 41 73 D;...END WriteAs
000040: 63 69 69 3B 20 0D 0A 50 52 4F 43 45 44 55 52 45 cii; ..PROCEDURE
000050: 20 47 6F 74 6F 78 79 28 78 2C 79 3A 43 41 52 44 Gotoxy(x,y:CARD
000060: 49 4E 41 4C 29 3B 09 09 0D 0A 0D 0A 28 2A 09 09 INAL);......(*..
000070: 50 6F 73 69 74 69 6F 6E 20 74 6F 20 67 69 76 65 Position to give
000080: 6E 20 63 6F 6F 72 64 69 6E 61 74 65 73 0D 0A 09 n coordinates...
000090: 09 74 6F 70 20 6C 65 66 74 20 69 73 20 61 6C 77 .top left is alw
0000A0: 61 79 73 20 30 2C 30 20 0D 0A 0D 0A 09 09 78 20 ays 0,0 ......x
0000B0: 69 73 20 63 6F 6C 75 6D 6E 2C 20 79 20 69 73 20 is column, y is
0000C0: 72 6F 77 0D 0A 0D 0A 09 09 41 20 27 53 74 61 6E row......A 'Stan
0000D0: 64 61 72 64 27 20 53 63 72 65 65 6E 20 69 73 20 dard' Screen is
0000E0: 38 30 20 62 79 20 32 34 2E 20 54 68 65 20 6C 69 80 by 24. The li
0000F0: 6D 69 74 20 69 73 20 73 65 74 20 62 79 0D 0A 09 mit is set by...
000100: 09 74 68 65 20 74 65 72 6D 69 6E 61 6C 20 64 65 .the terminal de
000110: 66 69 6E 69 74 69 6F 6E 20 66 69 6C 65 09 2A 29 finition file.*)
000120: 0D 0A 56 41 52 09 69 2C 6A 3A 49 4E 54 45 47 45 ..VAR.i,j:INTEGE
000130: 52 3B 0D 0A 09 69 6E 67 3A 42 4F 4F 4C 45 41 4E R;...ing:BOOLEAN
000140: 3B 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 49 46 ;..BEGIN.. IF
000150: 20 41 63 74 69 76 65 20 41 4E 44 20 4F 75 74 70 Active AND Outp
000160: 75 74 45 6E 61 62 6C 65 64 20 54 48 45 4E 0D 0A utEnabled THEN..
000170: 09 57 49 54 48 20 43 6F 6E 74 72 6F 6C 20 44 4F .WITH Control DO
000180: 0D 0A 09 09 69 6E 67 3A 3D 49 6E 47 72 61 70 68 ....ing:=InGraph
000190: 3B 0D 0A 09 09 49 46 20 49 6E 47 72 61 70 68 20 ;....IF InGraph
0001A0: 54 48 45 4E 20 53 63 72 65 65 6E 43 6F 6E 74 72 THEN ScreenContr
0001B0: 6F 6C 28 45 6E 64 47 72 61 70 68 29 20 45 4E 44 ol(EndGraph) END
0001C0: 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 ;....ScreenContr
0001D0: 6F 6C 28 53 74 61 72 74 78 79 29 3B 0D 0A 09 09 ol(Startxy);....
0001E0: 49 46 20 43 6F 6C 75 6D 6E 46 69 72 73 74 20 54 IF ColumnFirst T
0001F0: 48 45 4E 0D 0A 09 09 09 69 3A 3D 78 2B 58 59 4F HEN.....i:=x+XYO
Size : 512 (Real : 512)
000000: 6F 6E 2C 53 65 74 50 6F 73 69 74 69 6F 6E 2C 52 on,SetPosition,R
000010: 65 61 64 4E 65 78 74 43 68 61 72 2C 46 69 6E 64 eadNextChar,Find
000020: 53 74 72 69 6E 67 2C 0D 0A 09 09 4C 61 62 65 6C String,....Label
000030: 4F 70 3B 0D 0A 46 52 4F 4D 20 45 64 69 74 44 69 Op;..FROM EditDi
000040: 73 70 6C 61 79 20 49 4D 50 4F 52 54 20 44 69 73 splay IMPORT Dis
000050: 70 6C 61 79 46 69 6C 65 2C 45 72 72 6F 72 4D 65 playFile,ErrorMe
000060: 73 73 61 67 65 2C 57 69 6E 64 6F 77 73 2C 4C 69 ssage,Windows,Li
000070: 6E 65 73 50 65 72 57 69 6E 64 6F 77 3B 0D 0A 46 nesPerWindow;..F
000080: 52 4F 4D 20 53 63 72 65 65 6E 49 4F 20 49 4D 50 ROM ScreenIO IMP
000090: 4F 52 54 20 45 64 69 74 73 2C 44 65 6C 43 68 61 ORT Edits,DelCha
0000A0: 72 2C 44 65 6C 4C 69 6E 65 2C 49 6E 73 43 68 61 r,DelLine,InsCha
0000B0: 72 2C 49 6E 73 4C 69 6E 65 2C 44 65 6C 45 6F 6C r,InsLine,DelEol
0000C0: 2C 4D 6F 76 65 55 70 2C 0D 0A 09 09 09 4D 6F 76 ,MoveUp,.....Mov
0000D0: 65 44 6F 77 6E 2C 4D 6F 76 65 4C 65 66 74 2C 4D eDown,MoveLeft,M
0000E0: 6F 76 65 52 69 67 68 74 2C 47 6F 74 6F 78 79 2C oveRight,Gotoxy,
0000F0: 43 6C 65 61 72 53 63 72 65 65 6E 2C 0D 0A 09 09 ClearScreen,....
000100: 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 2C 0D .ScreenControl,.
000110: 0A 09 09 09 53 63 72 65 65 6E 57 69 64 74 68 2C ....ScreenWidth,
000120: 53 63 72 65 65 6E 44 65 70 74 68 2C 4D 61 64 65 ScreenDepth,Made
000130: 43 68 61 6E 67 65 3B 0D 0A 46 52 4F 4D 20 49 6E Change;..FROM In
000140: 74 4C 6F 67 69 63 20 49 4D 50 4F 52 54 20 49 41 tLogic IMPORT IA
000150: 4E 44 3B 09 0D 0A 46 52 4F 4D 09 53 59 53 54 45 ND;...FROM.SYSTE
000160: 4D 20 49 4D 50 4F 52 54 20 41 44 52 3B 0D 0A 43 M IMPORT ADR;..C
000170: 4F 4E 53 54 09 43 52 3D 30 64 78 3B 0D 0A 09 54 ONST.CR=0dx;...T
000180: 41 42 3D 30 39 78 3B 0D 0A 09 4C 46 3D 30 61 78 AB=09x;...LF=0ax
000190: 3B 0D 0A 09 45 4F 46 3D 31 61 78 3B 0D 0A 28 2A ;...EOF=1ax;..(*
0001A0: 09 41 20 72 65 6D 61 72 6B 20 6F 6E 20 74 68 65 .A remark on the
0001B0: 20 75 73 65 20 6F 66 20 4C 69 6E 65 50 6F 73 20 use of LinePos
0001C0: 61 6E 64 20 63 75 72 78 0D 0A 0D 0A 09 4C 69 6E and curx.....Lin
0001D0: 65 50 6F 73 20 61 6C 77 61 79 73 20 70 6F 69 6E ePos always poin
0001E0: 74 73 20 74 6F 20 74 68 65 20 6E 75 6D 62 65 72 ts to the number
0001F0: 20 6F 66 20 74 68 65 20 63 68 61 72 61 63 74 65 of the characte
Size : 512 (Real : 512)
000000: 66 66 73 65 74 3B 0D 0A 09 09 09 6A 3A 3D 79 2B ffset;.....j:=y+
000010: 58 59 4F 66 66 73 65 74 3B 0D 0A 09 09 45 4C 53 XYOffset;....ELS
000020: 45 0D 0A 09 09 09 69 3A 3D 79 2B 58 59 4F 66 66 E.....i:=y+XYOff
000030: 73 65 74 3B 0D 0A 09 09 09 6A 3A 3D 78 2B 58 59 set;.....j:=x+XY
000040: 4F 66 66 73 65 74 3B 0D 0A 09 09 09 45 4E 44 3B Offset;.....END;
000050: 0D 0A 09 09 49 46 20 41 73 63 69 69 20 54 48 45 ....IF Ascii THE
000060: 4E 20 57 72 69 74 65 41 73 63 69 69 28 69 29 0D N WriteAscii(i).
000070: 0A 09 09 45 4C 53 45 20 57 72 69 74 65 28 43 48 ...ELSE Write(CH
000080: 52 28 69 29 29 20 45 4E 44 3B 0D 0A 09 09 53 63 R(i)) END;....Sc
000090: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 4D 69 64 64 reenControl(Midd
0000A0: 6C 65 58 59 29 3B 0D 0A 09 09 49 46 20 41 73 63 leXY);....IF Asc
0000B0: 69 69 20 54 48 45 4E 20 57 72 69 74 65 41 73 63 ii THEN WriteAsc
0000C0: 69 69 28 6A 29 0D 0A 09 09 45 4C 53 45 20 57 72 ii(j)....ELSE Wr
0000D0: 69 74 65 28 43 48 52 28 6A 29 29 20 45 4E 44 3B ite(CHR(j)) END;
0000E0: 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F ....ScreenContro
0000F0: 6C 28 45 6E 64 58 59 29 3B 0D 0A 09 09 45 4E 44 l(EndXY);....END
000100: 3B 20 28 2A 57 49 54 48 2A 29 0D 0A 09 49 46 20 ; (*WITH*)...IF
000110: 69 6E 67 20 54 48 45 4E 20 53 63 72 65 65 6E 43 ing THEN ScreenC
000120: 6F 6E 74 72 6F 6C 28 53 74 61 72 74 47 72 61 70 ontrol(StartGrap
000130: 68 29 20 45 4E 44 3B 0D 0A 09 45 4E 44 28 2A 49 h) END;...END(*I
000140: 46 2A 29 0D 0A 20 20 20 20 45 4E 44 20 47 6F 74 F*).. END Got
000150: 6F 78 79 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 oxy;....PROCEDUR
000160: 45 20 4C 6F 61 64 54 65 72 6D 43 6F 64 65 28 66 E LoadTermCode(f
000170: 69 6C 65 6E 61 6D 65 3A 46 69 6C 65 4E 61 6D 65 ilename:FileName
000180: 29 3B 0D 0A 56 41 52 09 66 6E 3A 46 49 4C 45 3B );..VAR.fn:FILE;
000190: 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 ...reply:INTEGER
0001A0: 3B 0D 0A 0D 0A 28 2A 09 09 64 65 66 69 6E 65 20 ;....(*..define
0001B0: 61 20 74 65 6D 70 6F 72 61 72 79 20 61 72 65 61 a temporary area
0001C0: 20 66 6F 72 20 72 65 61 64 69 6E 67 20 6F 66 20 for reading of
0001D0: 66 69 6C 65 0D 0A 09 09 69 74 20 6D 75 73 74 20 file....it must
0001E0: 62 65 20 65 71 75 61 6C 20 69 6E 20 73 69 7A 65 be equal in size
0001F0: 20 74 6F 20 74 68 65 20 73 69 7A 65 20 6F 66 20 to the size of
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 53 63 72 65 65 6E 49 4F 3B 0D ODULE ScreenIO;.
000020: 0A 46 52 4F 4D 20 54 65 72 6D 69 6E 61 6C 20 49 .FROM Terminal I
000030: 4D 50 4F 52 54 20 43 68 61 72 52 6F 75 74 69 6E MPORT CharRoutin
000040: 65 2C 43 68 61 72 45 6E 61 62 6C 65 64 3B 0D 0A e,CharEnabled;..
000050: 46 52 4F 4D 20 46 69 6C 65 73 20 49 4D 50 4F 52 FROM Files IMPOR
000060: 54 20 4C 6F 6F 6B 75 70 2C 46 49 4C 45 2C 52 65 T Lookup,FILE,Re
000070: 61 64 42 6C 6F 63 6B 3B 0D 0A 46 52 4F 4D 20 46 adBlock;..FROM F
000080: 61 73 74 4D 6F 76 65 20 49 4D 50 4F 52 54 20 4D astMove IMPORT M
000090: 6F 76 65 75 70 3B 0D 0A 46 52 4F 4D 20 53 59 53 oveup;..FROM SYS
0000A0: 54 45 4D 20 49 4D 50 4F 52 54 20 41 44 52 2C 53 TEM IMPORT ADR,S
0000B0: 49 5A 45 2C 57 4F 52 44 3B 0D 0A 46 52 4F 4D 09 IZE,WORD;..FROM.
0000C0: 43 50 4D 20 49 4D 50 4F 52 54 20 64 69 6F 66 63 CPM IMPORT diofc
0000D0: 2C 42 44 4F 53 3B 0D 0A 28 2A 09 53 63 72 65 65 ,BDOS;..(*.Scree
0000E0: 6E 20 68 61 6E 64 6C 69 6E 67 20 72 6F 75 74 69 n handling routi
0000F0: 6E 65 73 20 66 6F 72 20 63 75 72 73 6F 72 20 70 nes for cursor p
000100: 6F 73 69 74 69 6F 6E 2C 20 61 74 74 72 69 62 75 osition, attribu
000110: 74 65 20 65 74 63 0D 0A 0D 0A 09 54 68 69 73 20 te etc.....This
000120: 6D 6F 64 75 6C 65 20 69 73 20 73 70 65 63 69 66 module is specif
000130: 69 63 20 74 6F 20 74 68 69 73 20 63 6F 6D 70 69 ic to this compi
000140: 6C 65 72 2A 29 0D 0A 54 59 50 45 0D 0A 09 43 6F ler*)..TYPE...Co
000150: 6E 74 72 6F 6C 53 65 71 75 65 6E 63 65 3D 52 45 ntrolSequence=RE
000160: 43 4F 52 44 0D 0A 09 09 43 68 61 72 73 3A 41 52 CORD....Chars:AR
000170: 52 41 59 5B 31 2E 2E 37 5D 20 4F 46 20 43 48 41 RAY[1..7] OF CHA
000180: 52 3B 0D 0A 09 09 53 65 71 4C 65 6E 3A 42 59 54 R;....SeqLen:BYT
000190: 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 0D 0A E;....END;......
0001A0: 09 43 6F 6E 74 72 6F 6C 43 6F 64 65 73 3D 52 45 .ControlCodes=RE
0001B0: 43 4F 52 44 0D 0A 09 09 45 64 69 74 53 65 71 75 CORD....EditSequ
0001C0: 65 6E 63 65 73 3A 41 52 52 41 59 20 45 64 69 74 ences:ARRAY Edit
0001D0: 73 20 4F 46 20 43 6F 6E 74 72 6F 6C 53 65 71 75 s OF ControlSequ
0001E0: 65 6E 63 65 3B 0D 0A 09 09 41 73 63 69 69 3A 42 ence;....Ascii:B
0001F0: 4F 4F 4C 45 41 4E 3B 20 28 2A 74 72 75 65 20 69 OOLEAN; (*true i
Size : 512 (Real : 512)
000000: 63 6F 6E 74 72 6F 6C 2C 20 70 61 64 64 65 64 0D control, padded.
000010: 0A 09 09 6F 75 74 20 74 6F 20 61 20 6D 75 6C 74 ...out to a mult
000020: 69 70 6C 65 20 6F 66 20 31 32 38 20 62 79 74 65 iple of 128 byte
000030: 73 2A 29 0D 0A 0D 0A 09 62 6C 6F 63 6B 3A 41 52 s*).....block:AR
000040: 52 41 59 5B 30 2E 2E 31 32 38 2A 28 53 49 5A 45 RAY[0..128*(SIZE
000050: 28 43 6F 6E 74 72 6F 6C 29 20 44 49 56 20 31 32 (Control) DIV 12
000060: 38 29 2B 31 32 37 5D 20 4F 46 20 43 48 41 52 3B 8)+127] OF CHAR;
000070: 0D 0A 0D 0A 28 2A 09 09 4C 6F 61 64 20 74 68 65 ....(*..Load the
000080: 20 74 65 72 6D 69 6E 61 6C 20 64 65 66 69 6E 69 terminal defini
000090: 74 69 6F 6E 20 66 6F 72 20 74 68 65 20 63 75 72 tion for the cur
0000A0: 72 65 6E 74 20 74 65 72 6D 69 6E 61 6C 0D 0A 0D rent terminal...
0000B0: 0A 09 09 66 69 6C 65 6E 61 6D 65 20 69 73 20 74 ...filename is t
0000C0: 68 65 20 6E 61 6D 65 20 6F 66 20 74 68 65 20 66 he name of the f
0000D0: 69 6C 65 20 74 6F 20 72 65 61 64 0D 0A 0D 0A 09 ile to read.....
0000E0: 09 4E 6F 72 6D 61 6C 6C 79 2C 20 77 68 65 6E 20 .Normally, when
0000F0: 74 68 65 20 70 72 6F 67 72 61 6D 20 69 73 20 6C the program is l
000100: 6F 61 64 65 64 2C 20 74 68 65 20 66 69 6C 65 0D oaded, the file.
000110: 0A 09 09 27 54 45 52 4D 49 4E 41 4C 2E 43 4F 44 ...'TERMINAL.COD
000120: 27 20 69 73 20 6C 6F 61 64 65 64 20 66 72 6F 6D ' is loaded from
000130: 20 74 68 65 20 6C 6F 67 67 65 64 20 69 6E 20 64 the logged in d
000140: 69 73 63 0D 0A 09 09 54 68 69 73 20 72 6F 75 74 isc....This rout
000150: 69 6E 65 20 6F 6E 6C 79 20 6E 65 65 64 73 20 74 ine only needs t
000160: 6F 20 62 65 20 75 73 65 64 20 69 66 20 74 68 61 o be used if tha
000170: 74 0D 0A 09 09 66 69 6C 65 20 69 73 20 6E 6F 74 t....file is not
000180: 20 74 68 65 20 6F 6E 65 20 74 6F 20 75 73 65 20 the one to use
000190: 28 65 67 2C 20 74 6F 20 73 77 61 70 20 73 63 72 (eg, to swap scr
0001A0: 65 65 6E 73 2A 29 20 0D 0A 0D 0A 42 45 47 49 4E eens*) ....BEGIN
0001B0: 0D 0A 09 4C 6F 6F 6B 75 70 28 66 6E 2C 66 69 6C ...Lookup(fn,fil
0001C0: 65 6E 61 6D 65 2C 72 65 70 6C 79 29 3B 0D 0A 09 ename,reply);...
0001D0: 49 46 20 72 65 70 6C 79 3C 30 20 54 48 45 4E 20 IF reply<0 THEN
0001E0: 41 63 74 69 76 65 3A 3D 46 41 4C 53 45 0D 0A 09 Active:=FALSE...
0001F0: 45 4C 53 45 0D 0A 09 09 52 65 61 64 42 6C 6F 63 ELSE....ReadBloc
Size : 512 (Real : 512)
000000: 0A 09 47 6F 74 6F 78 79 28 30 2C 45 6E 64 6F 66 ..Gotoxy(0,Endof
000010: 57 69 6E 64 6F 77 29 3B 20 20 20 0D 0A 09 53 63 Window); ...Sc
000020: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 49 6E 73 4C reenControl(InsL
000030: 69 6E 65 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F ine);...ScreenCo
000040: 6E 74 72 6F 6C 28 44 65 6C 45 6F 6C 29 3B 20 20 ntrol(DelEol);
000050: 20 0D 0A 09 45 4E 44 20 53 63 72 6F 6C 6C 57 69 ...END ScrollWi
000060: 6E 64 6F 77 44 6F 77 6E 3B 0D 0A 0D 0A 28 2A 09 ndowDown;....(*.
000070: 43 75 72 73 6F 72 20 62 6C 69 6E 6B 20 72 6F 75 Cursor blink rou
000080: 74 69 6E 65 20 2D 20 6F 6E 6C 79 20 73 75 70 70 tine - only supp
000090: 6F 72 74 65 64 20 69 6E 20 6D 65 6D 6F 72 79 20 orted in memory
0000A0: 6D 61 70 70 65 64 0D 0A 09 76 65 72 73 69 6F 6E mapped...version
0000B0: 20 6F 66 20 73 63 72 65 65 6E 69 6F 2A 29 0D 0A of screenio*)..
0000C0: 50 52 4F 43 45 44 55 52 45 20 4F 75 74 70 75 74 PROCEDURE Output
0000D0: 54 6F 53 63 72 65 65 6E 28 4F 6E 3A 42 4F 4F 4C ToScreen(On:BOOL
0000E0: 45 41 4E 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 4F EAN);..BEGIN...O
0000F0: 75 74 70 75 74 45 6E 61 62 6C 65 64 3A 3D 4F 6E utputEnabled:=On
000100: 0D 0A 09 45 4E 44 20 4F 75 74 70 75 74 54 6F 53 ...END OutputToS
000110: 63 72 65 65 6E 3B 09 0D 0A 0D 0A 42 45 47 49 4E creen;.....BEGIN
000120: 09 28 2A 49 6E 69 74 69 61 6C 69 73 61 74 69 6F .(*Initialisatio
000130: 6E 20 70 61 72 74 2A 29 0D 0A 09 43 68 61 72 52 n part*)...CharR
000140: 6F 75 74 69 6E 65 3A 3D 57 72 69 74 65 3B 0D 0A outine:=Write;..
000150: 09 43 68 61 72 45 6E 61 62 6C 65 64 3A 3D 54 52 .CharEnabled:=TR
000160: 55 45 3B 09 0D 0A 0D 0A 09 49 6E 47 72 61 70 68 UE;......InGraph
000170: 3A 3D 46 41 4C 53 45 3B 0D 0A 09 4F 75 74 70 75 :=FALSE;...Outpu
000180: 74 45 6E 61 62 6C 65 64 3A 3D 54 52 55 45 3B 0D tEnabled:=TRUE;.
000190: 0A 09 4C 6F 61 64 54 65 72 6D 43 6F 64 65 28 27 ..LoadTermCode('
0001A0: 43 4F 4E 54 52 4F 4C 2E 44 41 54 27 29 3B 0D 0A CONTROL.DAT');..
0001B0: 09 4C 6F 77 78 3A 3D 30 3B 4C 6F 77 79 3A 3D 30 .Lowx:=0;Lowy:=0
0001C0: 3B 0D 0A 09 48 69 67 68 78 3A 3D 39 39 39 3B 48 ;...Highx:=999;H
0001D0: 69 67 68 79 3A 3D 39 39 39 3B 0D 0A 09 53 63 72 ighy:=999;...Scr
0001E0: 65 65 6E 57 69 64 74 68 3A 3D 43 6F 6E 74 72 6F eenWidth:=Contro
0001F0: 6C 2E 53 63 72 65 65 6E 57 69 64 74 68 3B 0D 0A l.ScreenWidth;..
Size : 512 (Real : 512)
000000: 6B 28 66 6E 2C 41 44 52 28 62 6C 6F 63 6B 29 2C k(fn,ADR(block),
000010: 30 2C 53 49 5A 45 28 62 6C 6F 63 6B 29 2C 72 65 0,SIZE(block),re
000020: 70 6C 79 29 3B 0D 0A 09 09 41 63 74 69 76 65 3A ply);....Active:
000030: 3D 72 65 70 6C 79 3E 3D 53 49 5A 45 28 43 6F 6E =reply>=SIZE(Con
000040: 74 72 6F 6C 29 3B 0D 0A 09 09 4D 6F 76 65 75 70 trol);....Moveup
000050: 28 41 44 52 28 62 6C 6F 63 6B 29 2C 41 44 52 28 (ADR(block),ADR(
000060: 43 6F 6E 74 72 6F 6C 29 2C 53 49 5A 45 28 43 6F Control),SIZE(Co
000070: 6E 74 72 6F 6C 29 29 3B 0D 0A 09 09 45 4E 44 3B ntrol));....END;
000080: 0D 0A 09 53 63 72 65 65 6E 57 69 64 74 68 3A 3D ...ScreenWidth:=
000090: 43 6F 6E 74 72 6F 6C 2E 53 63 72 65 65 6E 57 69 Control.ScreenWi
0000A0: 64 74 68 3B 0D 0A 09 53 63 72 65 65 6E 44 65 70 dth;...ScreenDep
0000B0: 74 68 3A 3D 43 6F 6E 74 72 6F 6C 2E 53 63 72 65 th:=Control.Scre
0000C0: 65 6E 44 65 70 74 68 3B 0D 0A 09 45 4E 44 20 4C enDepth;...END L
0000D0: 6F 61 64 54 65 72 6D 43 6F 64 65 3B 0D 0A 0D 0A oadTermCode;....
0000E0: 50 52 4F 43 45 44 55 52 45 20 53 63 72 65 65 6E PROCEDURE Screen
0000F0: 43 6F 6E 74 72 6F 6C 28 73 3A 45 64 69 74 73 29 Control(s:Edits)
000100: 3B 0D 0A 0D 0A 28 2A 09 09 50 65 72 66 6F 72 6D ;....(*..Perform
000110: 20 61 20 73 63 72 65 65 6E 20 63 6F 6E 74 72 6F a screen contro
000120: 6C 20 6F 70 65 72 61 74 69 6F 6E 2A 29 0D 0A 56 l operation*)..V
000130: 41 52 09 69 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A AR.i:CARDINAL;..
000140: 42 45 47 49 4E 0D 0A 09 49 46 20 41 63 74 69 76 BEGIN...IF Activ
000150: 65 20 41 4E 44 20 4F 75 74 70 75 74 45 6E 61 62 e AND OutputEnab
000160: 6C 65 64 20 54 48 45 4E 0D 0A 09 09 57 49 54 48 led THEN....WITH
000170: 20 43 6F 6E 74 72 6F 6C 2E 45 64 69 74 53 65 71 Control.EditSeq
000180: 75 65 6E 63 65 73 5B 73 5D 20 44 4F 0D 0A 09 09 uences[s] DO....
000190: 09 4D 61 64 65 43 68 61 6E 67 65 3A 3D 53 65 71 .MadeChange:=Seq
0001A0: 4C 65 6E 3E 30 3B 0D 0A 09 09 09 46 4F 52 20 69 Len>0;.....FOR i
0001B0: 3A 3D 31 20 54 4F 20 4F 52 44 28 53 65 71 4C 65 :=1 TO ORD(SeqLe
0001C0: 6E 29 20 44 4F 20 57 72 69 74 65 28 43 68 61 72 n) DO Write(Char
0001D0: 73 5B 69 5D 29 20 45 4E 44 3B 0D 0A 09 09 09 45 s[i]) END;.....E
0001E0: 4E 44 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 43 6F ND;....IF NOT Co
0001F0: 6E 74 72 6F 6C 2E 41 64 64 72 65 73 73 49 6E 47 ntrol.AddressInG
Size : 512 (Real : 512)
000000: 09 53 63 72 65 65 6E 44 65 70 74 68 3A 3D 43 6F .ScreenDepth:=Co
000010: 6E 74 72 6F 6C 2E 53 63 72 65 65 6E 44 65 70 74 ntrol.ScreenDept
000020: 68 3B 0D 0A 09 53 63 72 65 65 6E 43 6F 6E 74 72 h;...ScreenContr
000030: 6F 6C 28 43 6C 65 61 72 53 63 72 65 65 6E 29 3B ol(ClearScreen);
000040: 0D 0A 09 45 4E 44 20 53 63 72 65 65 6E 49 4F 2E ...END ScreenIO.
000050: 0D 0A 1A 79 3A 3D 39 39 39 3B 0D 0A 09 53 63 72 ...y:=999;...Scr
000060: 65 65 6E 57 69 64 74 68 3A 3D 43 6F 6E 74 72 6F eenWidth:=Contro
000070: 6C 2E 53 63 72 65 65 6E 57 69 64 74 68 3B 0D 0A l.ScreenWidth;..
000080: 61 73 74 4D 6F 76 65 20 49 4D 50 4F 52 54 20 4D astMove IMPORT M
000090: 6F 76 65 75 70 3B 0D 0A 46 52 4F 4D 20 53 59 53 oveup;..FROM SYS
0000A0: 54 45 4D 20 49 4D 50 4F 52 54 20 41 44 52 2C 53 TEM IMPORT ADR,S
0000B0: 49 5A 45 2C 57 4F 52 44 3B 0D 0A 46 52 4F 4D 09 IZE,WORD;..FROM.
0000C0: 43 50 4D 20 49 4D 50 4F 52 54 20 77 63 63 66 63 CPM IMPORT wccfc
0000D0: 2C 42 44 4F 53 3B 0D 0A 28 2A 09 53 63 72 65 65 ,BDOS;..(*.Scree
0000E0: 6E 20 68 61 6E 64 6C 69 6E 67 20 72 6F 75 74 69 n handling routi
0000F0: 6E 65 73 20 66 6F 72 20 63 75 72 73 6F 72 20 70 nes for cursor p
000100: 6F 73 69 74 69 6F 6E 2C 20 61 74 74 72 69 62 75 osition, attribu
000110: 74 65 20 65 74 63 0D 0A 0D 0A 09 54 68 69 73 20 te etc.....This
000120: 6D 6F 64 75 6C 65 20 69 73 20 73 70 65 63 69 66 module is specif
000130: 69 63 20 74 6F 20 74 68 69 73 20 63 6F 6D 70 69 ic to this compi
000140: 6C 65 72 2A 29 0D 0A 54 59 50 45 0D 0A 09 43 6F ler*)..TYPE...Co
000150: 6E 74 72 6F 6C 53 65 71 75 65 6E 63 65 3D 52 45 ntrolSequence=RE
000160: 43 4F 52 44 0D 0A 09 09 43 68 61 72 73 3A 41 52 CORD....Chars:AR
000170: 52 41 59 5B 31 2E 2E 37 5D 20 4F 46 20 43 48 41 RAY[1..7] OF CHA
000180: 52 3B 0D 0A 09 09 53 65 71 4C 65 6E 3A 42 59 54 R;....SeqLen:BYT
000190: 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 0D 0A E;....END;......
0001A0: 09 43 6F 6E 74 72 6F 6C 43 6F 64 65 73 3D 52 45 .ControlCodes=RE
0001B0: 43 4F 52 44 0D 0A 09 09 45 64 69 74 53 65 71 75 CORD....EditSequ
0001C0: 65 6E 63 65 73 3A 41 52 52 41 59 20 45 64 69 74 ences:ARRAY Edit
0001D0: 73 20 4F 46 20 43 6F 6E 74 72 6F 6C 53 65 71 75 s OF ControlSequ
0001E0: 65 6E 63 65 3B 0D 0A 09 09 41 73 63 69 69 3A 42 ence;....Ascii:B
0001F0: 4F 4F 4C 45 41 4E 3B 20 28 2A 74 72 75 65 20 69 OOLEAN; (*true i
Size : 512 (Real : 512)
000000: 72 61 70 68 20 54 48 45 4E 0D 0A 09 09 09 49 46 raph THEN.....IF
000010: 20 73 3D 53 74 61 72 74 47 72 61 70 68 20 54 48 s=StartGraph TH
000020: 45 4E 20 49 6E 47 72 61 70 68 3A 3D 54 52 55 45 EN InGraph:=TRUE
000030: 0D 0A 09 09 09 45 4C 53 49 46 20 73 3D 45 6E 64 .....ELSIF s=End
000040: 47 72 61 70 68 20 54 48 45 4E 20 49 6E 47 72 61 Graph THEN InGra
000050: 70 68 3A 3D 46 41 4C 53 45 20 45 4E 44 3B 0D 0A ph:=FALSE END;..
000060: 09 09 09 45 4E 44 3B 0D 0A 09 45 4C 53 45 20 20 ...END;...ELSE
000070: 4D 61 64 65 43 68 61 6E 67 65 3A 3D 46 41 4C 53 MadeChange:=FALS
000080: 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 E;....END;...END
000090: 20 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 3B 0D ScreenControl;.
0000A0: 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 42 6F 75 .PROCEDURE InBou
0000B0: 6E 64 28 78 2C 79 3A 43 41 52 44 49 4E 41 4C 3B nd(x,y:CARDINAL;
0000C0: 63 68 3A 45 64 69 74 73 29 3B 0D 0A 42 45 47 49 ch:Edits);..BEGI
0000D0: 4E 0D 0A 09 49 46 20 09 28 78 3E 3D 4C 6F 77 78 N...IF .(x>=Lowx
0000E0: 29 20 41 4E 44 20 28 78 3C 3D 48 69 67 68 78 29 ) AND (x<=Highx)
0000F0: 0D 0A 09 20 20 41 4E 44 09 28 79 3E 3D 4C 6F 77 ... AND.(y>=Low
000100: 79 29 20 41 4E 44 20 28 79 3C 3D 48 69 67 68 79 y) AND (y<=Highy
000110: 29 20 54 48 45 4E 20 0D 0A 09 09 53 63 72 65 65 ) THEN ....Scree
000120: 6E 43 6F 6E 74 72 6F 6C 28 63 68 29 3B 0D 0A 09 nControl(ch);...
000130: 09 45 4E 44 0D 0A 09 45 4E 44 20 49 6E 42 6F 75 .END...END InBou
000140: 6E 64 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 nd;..PROCEDURE
000150: 44 72 61 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 DrawBox(x1,y1,x2
000160: 2C 79 32 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ,y2:CARDINAL);..
000170: 0D 0A 28 2A 09 09 64 72 61 77 20 61 20 62 6F 78 ..(*..draw a box
000180: 20 66 6F 72 20 61 20 77 69 6E 64 6F 77 20 6F 6E for a window on
000190: 20 74 68 65 20 73 63 72 65 65 6E 0D 0A 0D 0A 09 the screen.....
0001A0: 09 78 31 2C 79 31 20 20 69 73 20 74 68 65 20 6C .x1,y1 is the l
0001B0: 6F 77 65 72 20 6C 65 66 74 20 63 6F 72 6E 65 72 ower left corner
0001C0: 0D 0A 09 09 78 32 2C 79 32 20 20 69 73 20 75 70 ....x2,y2 is up
0001D0: 70 65 72 20 72 69 67 68 74 20 63 6F 72 6E 65 72 per right corner
0001E0: 2A 29 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 4E *)..VAR.i:CARDIN
0001F0: 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 AL;..BEGIN..
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 45 64 69 74 43 6F 6E 74 72 6F ODULE EditContro
000020: 6C 3B 0D 0A 0D 0A 28 2A 09 45 64 69 74 6F 72 20 l;....(*.Editor
000030: 63 6F 6E 74 72 6F 6C 20 2D 20 64 61 74 61 20 61 control - data a
000040: 72 65 61 73 20 66 6F 72 20 66 69 6C 65 20 61 6E reas for file an
000050: 64 20 72 6F 75 74 69 6E 65 73 20 77 68 69 63 68 d routines which
000060: 20 61 63 74 75 61 6C 6C 79 0D 0A 09 70 65 72 66 actually...perf
000070: 6F 72 6D 20 65 64 69 74 20 66 75 6E 63 74 69 6F orm edit functio
000080: 6E 73 20 62 79 20 63 61 6C 6C 69 6E 67 20 6D 61 ns by calling ma
000090: 6B 65 65 64 69 74 20 74 6F 20 65 64 69 74 20 74 keedit to edit t
0000A0: 68 65 20 66 69 6C 65 20 61 6E 64 0D 0A 09 65 64 he file and...ed
0000B0: 69 74 64 69 73 70 20 74 6F 20 63 68 61 6E 67 65 itdisp to change
0000C0: 20 74 68 65 20 73 63 72 65 65 6E 2A 29 0D 0A 0D the screen*)...
0000D0: 0A 46 52 4F 4D 20 4D 61 6B 65 45 64 69 74 73 20 .FROM MakeEdits
0000E0: 49 4D 50 4F 52 54 20 49 6E 73 43 68 61 72 73 2C IMPORT InsChars,
0000F0: 44 65 6C 43 68 61 72 73 2C 52 65 74 72 6C 69 6E DelChars,Retrlin
000100: 65 2C 42 61 63 6B 4F 6E 65 43 68 61 72 2C 46 6F e,BackOneChar,Fo
000110: 72 77 61 72 64 4F 6E 65 43 68 61 72 2C 0D 0A 09 rwardOneChar,...
000120: 09 47 65 74 43 75 72 72 65 6E 74 43 68 61 72 2C .GetCurrentChar,
000130: 47 65 74 50 6F 73 69 74 69 6F 6E 2C 53 65 74 50 GetPosition,SetP
000140: 6F 73 69 74 69 6F 6E 2C 52 65 61 64 4E 65 78 74 osition,ReadNext
000150: 43 68 61 72 2C 46 69 6E 64 53 74 72 69 6E 67 2C Char,FindString,
000160: 0D 0A 09 09 4C 61 62 65 6C 4F 70 3B 0D 0A 46 52 ....LabelOp;..FR
000170: 4F 4D 20 45 64 69 74 44 69 73 70 6C 61 79 20 49 OM EditDisplay I
000180: 4D 50 4F 52 54 20 44 69 73 70 6C 61 79 46 69 6C MPORT DisplayFil
000190: 65 2C 45 72 72 6F 72 4D 65 73 73 61 67 65 2C 57 e,ErrorMessage,W
0001A0: 69 6E 64 6F 77 73 2C 4C 69 6E 65 73 50 65 72 57 indows,LinesPerW
0001B0: 69 6E 64 6F 77 3B 0D 0A 46 52 4F 4D 20 53 63 72 indow;..FROM Scr
0001C0: 65 65 6E 49 4F 20 49 4D 50 4F 52 54 20 45 64 69 eenIO IMPORT Edi
0001D0: 74 73 2C 44 65 6C 43 68 61 72 2C 44 65 6C 4C 69 ts,DelChar,DelLi
0001E0: 6E 65 2C 49 6E 73 43 68 61 72 2C 49 6E 73 4C 69 ne,InsChar,InsLi
0001F0: 6E 65 2C 44 65 6C 45 6F 6C 2C 4D 6F 76 65 55 70 ne,DelEol,MoveUp
Size : 512 (Real : 512)
000000: 49 46 20 41 63 74 69 76 65 20 41 4E 44 20 4F 75 IF Active AND Ou
000010: 74 70 75 74 45 6E 61 62 6C 65 64 20 54 48 45 4E tputEnabled THEN
000020: 0D 0A 09 57 49 54 48 20 43 6F 6E 74 72 6F 6C 20 ...WITH Control
000030: 44 4F 0D 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C DO....Gotoxy(x1,
000040: 79 31 29 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F y1);....ScreenCo
000050: 6E 74 72 6F 6C 28 53 74 61 72 74 47 72 61 70 68 ntrol(StartGraph
000060: 29 3B 0D 0A 09 09 49 6E 42 6F 75 6E 64 28 78 31 );....InBound(x1
000070: 2C 79 31 2C 43 6F 72 6E 65 72 4C 4C 29 3B 0D 0A ,y1,CornerLL);..
000080: 09 09 46 4F 52 20 69 3A 3D 78 31 2B 31 20 54 4F ..FOR i:=x1+1 TO
000090: 20 78 32 2D 31 20 44 4F 20 49 6E 42 6F 75 6E 64 x2-1 DO InBound
0000A0: 28 69 2C 79 31 2C 48 6F 72 69 7A 6F 6E 74 61 6C (i,y1,Horizontal
0000B0: 29 20 45 4E 44 3B 0D 0A 09 09 49 6E 42 6F 75 6E ) END;....InBoun
0000C0: 64 28 78 32 2C 79 31 2C 43 6F 72 6E 65 72 4C 52 d(x2,y1,CornerLR
0000D0: 29 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C );....Gotoxy(x1,
0000E0: 79 32 29 3B 0D 0A 09 09 49 6E 42 6F 75 6E 64 28 y2);....InBound(
0000F0: 78 31 2C 79 32 2C 43 6F 72 6E 65 72 55 4C 29 3B x1,y2,CornerUL);
000100: 0D 0A 09 09 46 4F 52 20 69 3A 3D 78 31 2B 31 20 ....FOR i:=x1+1
000110: 54 4F 20 78 32 2D 31 20 44 4F 20 49 6E 42 6F 75 TO x2-1 DO InBou
000120: 6E 64 28 69 2C 79 32 2C 48 6F 72 69 7A 6F 6E 74 nd(i,y2,Horizont
000130: 61 6C 29 20 45 4E 44 3B 0D 0A 09 09 49 6E 42 6F al) END;....InBo
000140: 75 6E 64 28 78 32 2C 79 32 2C 43 6F 72 6E 65 72 und(x2,y2,Corner
000150: 55 52 29 3B 0D 0A 09 09 46 4F 52 20 69 3A 3D 79 UR);....FOR i:=y
000160: 32 2B 31 20 54 4F 20 79 31 2D 31 20 20 44 4F 0D 2+1 TO y1-1 DO.
000170: 0A 09 09 09 47 6F 74 6F 78 79 28 78 32 2C 69 29 ....Gotoxy(x2,i)
000180: 3B 0D 0A 09 09 09 49 6E 42 6F 75 6E 64 28 78 32 ;.....InBound(x2
000190: 2C 69 2C 56 65 72 74 69 63 61 6C 29 3B 0D 0A 09 ,i,Vertical);...
0001A0: 09 09 45 4E 44 3B 0D 0A 09 09 46 4F 52 20 69 3A ..END;....FOR i:
0001B0: 3D 79 32 2B 31 20 54 4F 20 79 31 2D 31 20 44 4F =y2+1 TO y1-1 DO
0001C0: 0D 0A 09 09 09 47 6F 74 6F 78 79 28 78 31 2C 69 .....Gotoxy(x1,i
0001D0: 29 3B 0D 0A 09 09 09 49 6E 42 6F 75 6E 64 28 78 );.....InBound(x
0001E0: 31 2C 69 2C 56 65 72 74 69 63 61 6C 29 3B 0D 0A 1,i,Vertical);..
0001F0: 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 28 ...END;....END;(
Size : 512 (Real : 512)
000000: 2C 0D 0A 09 09 09 4D 6F 76 65 44 6F 77 6E 2C 4D ,.....MoveDown,M
000010: 6F 76 65 4C 65 66 74 2C 4D 6F 76 65 52 69 67 68 oveLeft,MoveRigh
000020: 74 2C 47 6F 74 6F 78 79 2C 43 6C 65 61 72 53 63 t,Gotoxy,ClearSc
000030: 72 65 65 6E 2C 0D 0A 09 09 09 53 63 72 65 65 6E reen,.....Screen
000040: 43 6F 6E 74 72 6F 6C 2C 53 63 72 6F 6C 6C 57 69 Control,ScrollWi
000050: 6E 64 6F 77 55 70 2C 53 63 72 6F 6C 6C 57 69 6E ndowUp,ScrollWin
000060: 64 6F 77 44 6F 77 6E 2C 0D 0A 09 09 09 53 63 72 dowDown,.....Scr
000070: 65 65 6E 57 69 64 74 68 2C 53 63 72 65 65 6E 44 eenWidth,ScreenD
000080: 65 70 74 68 3B 0D 0A 46 52 4F 4D 20 49 6E 74 4C epth;..FROM IntL
000090: 6F 67 69 63 20 49 4D 50 4F 52 54 20 49 41 4E 44 ogic IMPORT IAND
0000A0: 3B 09 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 ;...FROM.SYSTEM
0000B0: 49 4D 50 4F 52 54 20 41 44 52 3B 0D 0A 43 4F 4E IMPORT ADR;..CON
0000C0: 53 54 09 43 52 3D 30 64 78 3B 0D 0A 09 54 41 42 ST.CR=0dx;...TAB
0000D0: 3D 30 39 78 3B 0D 0A 09 4C 46 3D 30 61 78 3B 0D =09x;...LF=0ax;.
0000E0: 0A 09 45 4F 46 3D 31 61 78 3B 0D 0A 28 2A 09 41 ..EOF=1ax;..(*.A
0000F0: 20 72 65 6D 61 72 6B 20 6F 6E 20 74 68 65 20 75 remark on the u
000100: 73 65 20 6F 66 20 4C 69 6E 65 50 6F 73 20 61 6E se of LinePos an
000110: 64 20 63 75 72 78 0D 0A 0D 0A 09 4C 69 6E 65 50 d curx.....LineP
000120: 6F 73 20 61 6C 77 61 79 73 20 70 6F 69 6E 74 73 os always points
000130: 20 74 6F 20 74 68 65 20 6E 75 6D 62 65 72 20 6F to the number o
000140: 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 f the character
000150: 77 69 74 68 69 6E 20 74 68 65 0D 0A 09 74 65 78 within the...tex
000160: 74 20 6C 69 6E 65 2E 20 49 74 20 6E 65 65 64 20 t line. It need
000170: 6E 6F 74 20 62 65 20 74 68 65 20 73 61 6D 65 20 not be the same
000180: 61 73 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 as the position
000190: 6F 6E 20 74 68 65 0D 0A 09 73 63 72 65 65 6E 20 on the...screen
0001A0: 62 65 63 61 75 73 65 20 6F 66 20 74 68 65 20 75 because of the u
0001B0: 73 65 20 6F 66 20 74 61 62 20 63 68 61 72 61 63 se of tab charac
0001C0: 74 65 72 73 2A 29 0D 0A 54 59 50 45 09 50 45 64 ters*)..TYPE.PEd
0001D0: 69 74 46 69 6C 65 3D 50 4F 49 4E 54 45 52 20 54 itFile=POINTER T
0001E0: 4F 20 45 64 69 74 46 69 6C 65 3B 0D 0A 56 41 52 O EditFile;..VAR
0001F0: 09 69 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 63 3A .i:INTEGER;...c:
Size : 512 (Real : 512)
000000: 2A 57 49 54 48 20 43 6F 6E 74 72 6F 6C 2A 29 0D *WITH Control*).
000010: 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C ...ScreenControl
000020: 28 45 6E 64 47 72 61 70 68 29 3B 0D 0A 09 45 4E (EndGraph);...EN
000030: 44 3B 20 28 2A 49 46 20 41 63 74 69 76 65 2A 29 D; (*IF Active*)
000040: 0D 0A 20 20 20 20 45 4E 44 20 44 72 61 77 42 6F .. END DrawBo
000050: 78 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 6C x;..PROCEDURE Cl
000060: 69 70 28 78 31 2C 79 31 2C 78 32 2C 79 32 3A 43 ip(x1,y1,x2,y2:C
000070: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
000080: 0D 0A 09 4C 6F 77 78 3A 3D 78 31 3B 0D 0A 09 48 ...Lowx:=x1;...H
000090: 69 67 68 78 3A 3D 78 32 3B 0D 0A 09 4C 6F 77 79 ighx:=x2;...Lowy
0000A0: 3A 3D 79 32 3B 0D 0A 09 48 69 67 68 79 3A 3D 79 :=y2;...Highy:=y
0000B0: 31 3B 0D 0A 09 45 4E 44 20 43 6C 69 70 3B 0D 0A 1;...END Clip;..
0000C0: 50 52 4F 43 45 44 55 52 45 20 53 63 72 6F 6C 6C PROCEDURE Scroll
0000D0: 57 69 6E 64 6F 77 55 70 28 53 74 61 72 74 6F 66 WindowUp(Startof
0000E0: 57 69 6E 64 6F 77 2C 45 6E 64 6F 66 57 69 6E 64 Window,EndofWind
0000F0: 6F 77 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 ow:CARDINAL);..B
000100: 45 47 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 30 2C EGIN...Gotoxy(0,
000110: 45 6E 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 EndofWindow);...
000120: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 65 ScreenControl(De
000130: 6C 4C 69 6E 65 29 3B 0D 0A 09 47 6F 74 6F 78 79 lLine);...Gotoxy
000140: 28 30 2C 53 74 61 72 74 6F 66 57 69 6E 64 6F 77 (0,StartofWindow
000150: 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F 6E 74 72 );...ScreenContr
000160: 6F 6C 28 49 6E 73 4C 69 6E 65 29 3B 0D 0A 09 45 ol(InsLine);...E
000170: 4E 44 20 53 63 72 6F 6C 6C 57 69 6E 64 6F 77 55 ND ScrollWindowU
000180: 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 63 p;..PROCEDURE Sc
000190: 72 6F 6C 6C 57 69 6E 64 6F 77 44 6F 77 6E 28 53 rollWindowDown(S
0001A0: 74 61 72 74 6F 66 57 69 6E 64 6F 77 2C 45 6E 64 tartofWindow,End
0001B0: 6F 66 57 69 6E 64 6F 77 3A 43 41 52 44 49 4E 41 ofWindow:CARDINA
0001C0: 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 47 6F 74 L);..BEGIN...Got
0001D0: 6F 78 79 28 30 2C 53 74 61 72 74 6F 66 57 69 6E oxy(0,StartofWin
0001E0: 64 6F 77 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F dow);...ScreenCo
0001F0: 6E 74 72 6F 6C 28 44 65 6C 4C 69 6E 65 29 3B 0D ntrol(DelLine);.
Size : 512 (Real : 512)
000000: 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 53 74 61 72 CARDINAL;...Star
000010: 74 6F 66 57 69 6E 64 6F 77 2C 45 6E 64 6F 66 57 tofWindow,EndofW
000020: 69 6E 64 6F 77 3A 43 41 52 44 49 4E 41 4C 3B 0D indow:CARDINAL;.
000030: 0A 09 63 68 3A 43 48 41 52 3B 0D 0A 09 43 75 72 ..ch:CHAR;...Cur
000040: 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 6E 3A 43 rentLeftMargin:C
000050: 41 52 44 49 4E 41 4C 3B 0D 0A 09 46 69 6C 65 4C ARDINAL;...FileL
000060: 69 6D 69 74 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 imit:BOOLEAN;...
000070: 52 65 44 72 61 77 6E 3A 42 4F 4F 4C 45 41 4E 3B ReDrawn:BOOLEAN;
000080: 0D 0A 09 43 75 72 46 69 6C 65 50 74 72 3A 50 45 ...CurFilePtr:PE
000090: 64 69 74 46 69 6C 65 3B 0D 0A 50 52 4F 43 45 44 ditFile;..PROCED
0000A0: 55 52 45 20 43 68 61 6E 67 65 50 6F 73 3B 46 4F URE ChangePos;FO
0000B0: 52 57 41 52 44 3B 0D 0A 50 52 4F 43 45 44 55 52 RWARD;..PROCEDUR
0000C0: 45 20 44 6F 53 63 72 65 65 6E 43 68 61 6E 67 65 E DoScreenChange
0000D0: 28 43 6F 64 65 3A 45 64 69 74 73 29 3B 0D 0A 42 (Code:Edits);..B
0000E0: 45 47 49 4E 0D 0A 09 53 63 72 65 65 6E 43 6F 6E EGIN...ScreenCon
0000F0: 74 72 6F 6C 28 43 6F 64 65 29 3B 0D 0A 09 45 4E trol(Code);...EN
000100: 44 20 44 6F 53 63 72 65 65 6E 43 68 61 6E 67 65 D DoScreenChange
000110: 3B 0D 0A 0D 0A 0D 0A 56 41 52 09 6C 69 6E 65 73 ;......VAR.lines
000120: 6D 6F 76 65 64 3A 49 4E 54 45 47 45 52 3B 0D 0A moved:INTEGER;..
000130: 09 70 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A 0D 0A .p:Position;....
000140: 50 52 4F 43 45 44 55 52 45 20 53 65 74 4C 69 6E PROCEDURE SetLin
000150: 65 50 6F 73 28 6D 6F 76 65 3A 49 4E 54 45 47 45 ePos(move:INTEGE
000160: 52 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 52 65 74 R);..BEGIN...Ret
000170: 72 6C 69 6E 65 28 43 75 72 46 69 6C 65 50 74 72 rline(CurFilePtr
000180: 5E 2C 4C 69 6E 65 4C 65 6E 2C 4C 69 6E 65 50 6F ^,LineLen,LinePo
000190: 73 2C 70 2C 6C 69 6E 65 73 6D 6F 76 65 64 2C 6D s,p,linesmoved,m
0001A0: 6F 76 65 29 3B 0D 0A 09 45 4E 44 20 53 65 74 4C ove);...END SetL
0001B0: 69 6E 65 50 6F 73 3B 0D 0A 50 52 4F 43 45 44 55 inePos;..PROCEDU
0001C0: 52 45 20 4D 61 72 6B 41 73 55 70 64 61 74 65 64 RE MarkAsUpdated
0001D0: 3B 0D 0A 42 45 47 49 4E 0D 0A 09 55 70 64 61 74 ;..BEGIN...Updat
0001E0: 65 64 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 3A ed[CurrentFile]:
0001F0: 3D 54 52 55 45 0D 0A 09 45 4E 44 20 4D 61 72 6B =TRUE...END Mark
Size : 512 (Real : 512)
000000: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
000010: 6E 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 n) THEN EXIT END
000020: 3B 0D 0A 09 09 49 46 20 63 68 3D 54 41 42 20 54 ;....IF ch=TAB T
000030: 48 45 4E 20 0D 0A 09 09 09 52 45 50 45 41 54 0D HEN .....REPEAT.
000040: 0A 09 09 09 09 49 46 20 63 3E 43 75 72 72 65 6E .....IF c>Curren
000050: 74 4C 65 66 74 4D 61 72 67 69 6E 20 54 48 45 4E tLeftMargin THEN
000060: 20 57 72 69 74 65 28 27 20 27 29 20 45 4E 44 3B Write(' ') END;
000070: 20 0D 0A 09 09 09 09 49 4E 43 28 63 29 3B 0D 0A ......INC(c);..
000080: 09 09 09 09 55 4E 54 49 4C 20 49 41 4E 44 28 63 ....UNTIL IAND(c
000090: 2C 37 29 3D 31 3B 0D 0A 09 09 45 4C 53 45 0D 0A ,7)=1;....ELSE..
0000A0: 09 09 09 49 46 20 63 3E 43 75 72 72 65 6E 74 4C ...IF c>CurrentL
0000B0: 65 66 74 4D 61 72 67 69 6E 20 54 48 45 4E 20 57 eftMargin THEN W
0000C0: 72 69 74 65 28 63 68 29 20 45 4E 44 3B 0D 0A 09 rite(ch) END;...
0000D0: 09 09 49 4E 43 28 63 29 3B 0D 0A 09 09 09 45 4E ..INC(c);.....EN
0000E0: 44 3B 0D 0A 09 09 45 4E 44 28 2A 4C 4F 4F 50 2A D;....END(*LOOP*
0000F0: 29 3B 0D 0A 09 45 4E 44 20 57 72 69 74 65 50 61 );...END WritePa
000100: 72 74 4C 69 6E 65 3B 0D 0A 50 52 4F 43 45 44 55 rtLine;..PROCEDU
000110: 52 45 20 57 72 69 74 65 4C 69 6E 65 3B 0D 0A 42 RE WriteLine;..B
000120: 45 47 49 4E 0D 0A 09 57 72 69 74 65 50 61 72 74 EGIN...WritePart
000130: 4C 69 6E 65 28 31 29 3B 0D 0A 09 45 4E 44 20 57 Line(1);...END W
000140: 72 69 74 65 4C 69 6E 65 3B 0D 0A 50 52 4F 43 45 riteLine;..PROCE
000150: 44 55 52 45 20 52 65 6D 6F 76 65 4C 69 6E 65 3B DURE RemoveLine;
000160: 0D 0A 0D 0A 28 2A 09 52 65 6D 6F 76 65 20 61 20 ....(*.Remove a
000170: 6C 69 6E 65 20 66 72 6F 6D 20 74 68 65 20 73 63 line from the sc
000180: 72 65 65 6E 20 61 6E 64 20 62 72 69 6E 67 20 61 reen and bring a
000190: 6E 6F 74 68 65 72 20 6C 69 6E 65 20 75 70 20 61 nother line up a
0001A0: 74 20 74 68 65 20 62 6F 74 74 6F 6D 0D 0A 0D 0A t the bottom....
0001B0: 09 54 68 69 73 79 20 67 69 76 65 73 20 6C 69 6E .Thisy gives lin
0001C0: 65 20 74 6F 20 72 65 6D 6F 76 65 2A 29 0D 0A 56 e to remove*)..V
0001D0: 41 52 09 70 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A AR.p:Position;..
0001E0: 42 45 47 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 30 BEGIN...Gotoxy(0
0001F0: 2C 54 68 69 73 79 29 3B 0D 0A 09 53 63 72 6F 6C ,Thisy);...Scrol
Size : 512 (Real : 512)
000000: 41 73 55 70 64 61 74 65 64 3B 0D 0A 50 52 4F 43 AsUpdated;..PROC
000010: 45 44 55 52 45 20 44 65 6C 54 6F 45 4F 4C 3B 0D EDURE DelToEOL;.
000020: 0A 42 45 47 49 4E 0D 0A 09 4D 61 72 6B 41 73 55 .BEGIN...MarkAsU
000030: 70 64 61 74 65 64 3B 0D 0A 09 49 46 20 4C 69 6E pdated;...IF Lin
000040: 65 50 6F 73 3C 3D 4C 69 6E 65 4C 65 6E 20 54 48 ePos<=LineLen TH
000050: 45 4E 20 0D 0A 09 09 44 65 6C 43 68 61 72 73 28 EN ....DelChars(
000060: 43 75 72 46 69 6C 65 50 74 72 5E 2C 4C 69 6E 65 CurFilePtr^,Line
000070: 4C 65 6E 2D 4C 69 6E 65 50 6F 73 29 20 0D 0A 09 Len-LinePos) ...
000080: 09 45 4E 44 3B 0D 0A 09 4C 69 6E 65 4C 65 6E 3A .END;...LineLen:
000090: 3D 4C 69 6E 65 50 6F 73 3B 0D 0A 09 44 6F 53 63 =LinePos;...DoSc
0000A0: 72 65 65 6E 43 68 61 6E 67 65 28 44 65 6C 45 6F reenChange(DelEo
0000B0: 6C 29 3B 0D 0A 09 45 4E 44 20 44 65 6C 54 6F 45 l);...END DelToE
0000C0: 4F 4C 3B 0D 0A 56 41 52 09 0D 0A 09 62 3A 42 4F OL;..VAR....b:BO
0000D0: 4F 4C 45 41 4E 3B 0D 0A 50 52 4F 43 45 44 55 52 OLEAN;..PROCEDUR
0000E0: 45 20 52 65 73 65 74 50 6F 73 3B 0D 0A 42 45 47 E ResetPos;..BEG
0000F0: 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 54 68 69 73 IN...Gotoxy(This
000100: 78 2C 54 68 69 73 79 29 3B 0D 0A 09 45 4E 44 20 x,Thisy);...END
000110: 52 65 73 65 74 50 6F 73 3B 0D 0A 50 52 4F 43 45 ResetPos;..PROCE
000120: 44 55 52 45 20 52 65 44 69 73 70 6C 61 79 57 69 DURE ReDisplayWi
000130: 6E 64 6F 77 3B 0D 0A 42 45 47 49 4E 0D 0A 09 44 ndow;..BEGIN...D
000140: 69 73 70 6C 61 79 46 69 6C 65 28 43 75 72 46 69 isplayFile(CurFi
000150: 6C 65 50 74 72 5E 2C 43 75 72 72 65 6E 74 57 69 lePtr^,CurrentWi
000160: 6E 64 6F 77 2C 54 68 69 73 78 2C 54 68 69 73 79 ndow,Thisx,Thisy
000170: 29 3B 0D 0A 09 52 65 73 65 74 50 6F 73 3B 0D 0A );...ResetPos;..
000180: 09 63 75 72 78 5B 43 75 72 72 65 6E 74 57 69 6E .curx[CurrentWin
000190: 64 6F 77 5D 3A 3D 54 68 69 73 78 3B 0D 0A 09 63 dow]:=Thisx;...c
0001A0: 75 72 79 5B 43 75 72 72 65 6E 74 57 69 6E 64 6F ury[CurrentWindo
0001B0: 77 5D 3A 3D 54 68 69 73 79 3B 0D 0A 09 52 65 44 w]:=Thisy;...ReD
0001C0: 72 61 77 6E 3A 3D 54 52 55 45 3B 0D 0A 09 45 4E rawn:=TRUE;...EN
0001D0: 44 20 52 65 44 69 73 70 6C 61 79 57 69 6E 64 6F D ReDisplayWindo
0001E0: 77 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 w;..PROCEDURE Re
0001F0: 44 69 73 70 6C 61 79 3B 0D 0A 42 45 47 49 4E 0D Display;..BEGIN.
Size : 512 (Real : 512)
000000: 6C 57 69 6E 64 6F 77 44 6F 77 6E 28 54 68 69 73 lWindowDown(This
000010: 79 2C 45 6E 64 6F 66 57 69 6E 64 6F 77 29 3B 0D y,EndofWindow);.
000020: 0A 09 69 3A 3D 45 6E 64 6F 66 57 69 6E 64 6F 77 ..i:=EndofWindow
000030: 2D 54 68 69 73 79 2B 31 3B 0D 0A 09 47 65 74 50 -Thisy+1;...GetP
000040: 6F 73 69 74 69 6F 6E 28 43 75 72 46 69 6C 65 50 osition(CurFileP
000050: 74 72 5E 2C 70 29 3B 0D 0A 09 53 65 74 4C 69 6E tr^,p);...SetLin
000060: 65 50 6F 73 28 69 29 3B 0D 0A 09 49 46 20 6C 69 ePos(i);...IF li
000070: 6E 65 73 6D 6F 76 65 64 3D 69 20 54 48 45 4E 0D nesmoved=i THEN.
000080: 0A 09 09 4D 6F 76 65 64 4F 4B 3A 3D 54 52 55 45 ...MovedOK:=TRUE
000090: 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 30 2C 45 6E ;....Gotoxy(0,En
0000A0: 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 09 57 dofWindow);....W
0000B0: 72 69 74 65 4C 69 6E 65 3B 0D 0A 09 09 45 4E 44 riteLine;....END
0000C0: 3B 0D 0A 09 53 65 74 50 6F 73 69 74 69 6F 6E 28 ;...SetPosition(
0000D0: 43 75 72 46 69 6C 65 50 74 72 5E 2C 70 29 3B 0D CurFilePtr^,p);.
0000E0: 0A 09 45 4E 44 20 52 65 6D 6F 76 65 4C 69 6E 65 ..END RemoveLine
0000F0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 6C ;..PROCEDURE Del
000100: 46 75 6C 6C 4C 69 6E 65 3B 0D 0A 42 45 47 49 4E FullLine;..BEGIN
000110: 0D 0A 09 4D 61 72 6B 41 73 55 70 64 61 74 65 64 ...MarkAsUpdated
000120: 3B 0D 0A 09 52 65 6D 6F 76 65 4C 69 6E 65 3B 0D ;...RemoveLine;.
000130: 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 30 29 3B ..SetLinePos(0);
000140: 0D 0A 09 44 65 6C 43 68 61 72 73 28 43 75 72 46 ...DelChars(CurF
000150: 69 6C 65 50 74 72 5E 2C 4C 69 6E 65 4C 65 6E 2B ilePtr^,LineLen+
000160: 32 29 3B 0D 0A 09 4C 69 6E 65 50 6F 73 3A 3D 30 2);...LinePos:=0
000170: 3B 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 4C 65 ;...IF CurrentLe
000180: 66 74 4D 61 72 67 69 6E 3E 30 20 54 48 45 4E 20 ftMargin>0 THEN
000190: 0D 0A 09 09 43 68 61 6E 67 65 4D 61 72 67 69 6E ....ChangeMargin
0001A0: 28 2D 49 4E 54 45 47 45 52 28 43 75 72 72 65 6E (-INTEGER(Curren
0001B0: 74 4C 65 66 74 4D 61 72 67 69 6E 29 29 0D 0A 09 tLeftMargin))...
0001C0: 09 45 4E 44 3B 0D 0A 09 54 68 69 73 78 3A 3D 30 .END;...Thisx:=0
0001D0: 3B 0D 0A 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ;...ResetPos;...
0001E0: 4C 69 6E 65 50 6F 73 3A 3D 30 3B 0D 0A 09 53 65 LinePos:=0;...Se
0001F0: 74 4C 69 6E 65 50 6F 73 28 30 29 3B 0D 0A 09 45 tLinePos(0);...E
Size : 512 (Real : 512)
000000: 0A 09 52 65 44 69 73 70 6C 61 79 57 69 6E 64 6F ..ReDisplayWindo
000010: 77 3B 0D 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 w;...SetLinePos(
000020: 30 29 3B 0D 0A 09 43 68 61 6E 67 65 50 6F 73 3B 0);...ChangePos;
000030: 0D 0A 09 45 4E 44 20 52 65 44 69 73 70 6C 61 79 ...END ReDisplay
000040: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 61 ;..PROCEDURE Cha
000050: 6E 67 65 4D 61 72 67 69 6E 28 49 6E 63 3A 49 4E ngeMargin(Inc:IN
000060: 54 45 47 45 52 29 3B 0D 0A 42 45 47 49 4E 0D 0A TEGER);..BEGIN..
000070: 09 49 46 20 28 49 6E 63 3C 30 29 20 41 4E 44 20 .IF (Inc<0) AND
000080: 20 28 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 (CurrentLeftMar
000090: 67 69 6E 3C 43 41 52 44 49 4E 41 4C 28 2D 49 6E gin<CARDINAL(-In
0000A0: 63 29 29 20 54 48 45 4E 20 0D 0A 09 09 49 6E 63 c)) THEN ....Inc
0000B0: 3A 3D 2D 49 4E 54 45 47 45 52 28 43 75 72 72 65 :=-INTEGER(Curre
0000C0: 6E 74 4C 65 66 74 4D 61 72 67 69 6E 29 20 0D 0A ntLeftMargin) ..
0000D0: 09 09 45 4E 44 3B 0D 0A 09 49 46 20 28 49 6E 63 ..END;...IF (Inc
0000E0: 3E 30 29 20 41 4E 44 20 28 54 68 69 73 78 3C 43 >0) AND (Thisx<C
0000F0: 41 52 44 49 4E 41 4C 28 49 6E 63 29 29 20 54 48 ARDINAL(Inc)) TH
000100: 45 4E 20 49 6E 63 3A 3D 54 68 69 73 78 20 45 4E EN Inc:=Thisx EN
000110: 44 3B 0D 0A 09 43 75 72 72 65 6E 74 4C 65 66 74 D;...CurrentLeft
000120: 4D 61 72 67 69 6E 3A 3D 49 4E 54 45 47 45 52 28 Margin:=INTEGER(
000130: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
000140: 6E 29 2B 49 6E 63 3B 0D 0A 09 54 68 69 73 78 3A n)+Inc;...Thisx:
000150: 3D 49 4E 54 45 47 45 52 28 54 68 69 73 78 29 2D =INTEGER(Thisx)-
000160: 49 6E 63 3B 0D 0A 09 63 75 72 78 5B 43 75 72 72 Inc;...curx[Curr
000170: 65 6E 74 57 69 6E 64 6F 77 5D 3A 3D 54 68 69 73 entWindow]:=This
000180: 78 3B 0D 0A 09 4C 65 66 74 4D 61 72 67 69 6E 5B x;...LeftMargin[
000190: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 5D 3A 3D CurrentWindow]:=
0001A0: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
0001B0: 6E 3B 0D 0A 09 52 65 44 69 73 70 6C 61 79 57 69 n;...ReDisplayWi
0001C0: 6E 64 6F 77 3B 0D 0A 09 52 65 73 65 74 50 6F 73 ndow;...ResetPos
0001D0: 3B 0D 0A 09 45 4E 44 20 43 68 61 6E 67 65 4D 61 ;...END ChangeMa
0001E0: 72 67 69 6E 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 rgin;....PROCEDU
0001F0: 52 45 20 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 56 RE ChangePos;..V
Size : 512 (Real : 512)
000000: 4E 44 20 44 65 6C 46 75 6C 6C 4C 69 6E 65 3B 0D ND DelFullLine;.
000010: 0A 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 .....PROCEDURE S
000020: 63 72 6F 6C 6C 54 65 78 74 55 70 3B 0D 0A 0D 0A crollTextUp;....
000030: 28 2A 09 53 63 72 6F 6C 6C 20 75 70 20 6F 6E 65 (*.Scroll up one
000040: 20 6C 69 6E 65 20 69 6E 20 74 68 65 20 66 69 6C line in the fil
000050: 65 0D 0A 09 28 77 68 69 63 68 20 6D 65 61 6E 73 e...(which means
000060: 20 74 68 65 20 74 65 78 74 20 73 63 72 6F 6C 6C the text scroll
000070: 73 20 64 6F 77 6E 20 2D 20 62 61 63 6B 77 61 72 s down - backwar
000080: 64 73 20 74 6F 0D 0A 09 77 68 61 74 20 79 6F 75 ds to...what you
000090: 20 6D 69 67 68 74 20 74 68 69 6E 6B 20 61 74 20 might think at
0000A0: 66 69 72 73 74 29 2A 29 0D 0A 0D 0A 56 41 52 09 first)*)....VAR.
0000B0: 70 3A 50 6F 73 69 74 69 6F 6E 3B 09 0D 0A 09 53 p:Position;....S
0000C0: 61 76 65 4C 69 6E 65 4C 65 6E 2C 53 61 76 65 4C aveLineLen,SaveL
0000D0: 69 6E 65 50 6F 73 3A 43 41 52 44 49 4E 41 4C 3B inePos:CARDINAL;
0000E0: 0D 0A 42 45 47 49 4E 0D 0A 09 53 61 76 65 4C 69 ..BEGIN...SaveLi
0000F0: 6E 65 4C 65 6E 3A 3D 4C 69 6E 65 4C 65 6E 3B 0D neLen:=LineLen;.
000100: 0A 09 53 61 76 65 4C 69 6E 65 50 6F 73 3A 3D 4C ..SaveLinePos:=L
000110: 69 6E 65 50 6F 73 3B 0D 0A 09 69 3A 3D 53 74 61 inePos;...i:=Sta
000120: 72 74 6F 66 57 69 6E 64 6F 77 2D 54 68 69 73 79 rtofWindow-Thisy
000130: 2D 31 3B 0D 0A 09 47 65 74 50 6F 73 69 74 69 6F -1;...GetPositio
000140: 6E 28 43 75 72 46 69 6C 65 50 74 72 5E 2C 70 29 n(CurFilePtr^,p)
000150: 3B 0D 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 69 ;...SetLinePos(i
000160: 29 3B 0D 0A 09 49 46 20 6C 69 6E 65 73 6D 6F 76 );...IF linesmov
000170: 65 64 3D 69 20 54 48 45 4E 0D 0A 09 09 4D 6F 76 ed=i THEN....Mov
000180: 65 64 4F 4B 3A 3D 54 52 55 45 3B 0D 0A 09 09 53 edOK:=TRUE;....S
000190: 63 72 6F 6C 6C 57 69 6E 64 6F 77 55 70 28 53 74 crollWindowUp(St
0001A0: 61 72 74 6F 66 57 69 6E 64 6F 77 2C 45 6E 64 6F artofWindow,Endo
0001B0: 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 09 47 6F 74 fWindow);....Got
0001C0: 6F 78 79 28 30 2C 53 74 61 72 74 6F 66 57 69 6E oxy(0,StartofWin
0001D0: 64 6F 77 29 3B 0D 0A 09 09 57 72 69 74 65 4C 69 dow);....WriteLi
0001E0: 6E 65 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 4D 6F ne;...ELSE....Mo
0001F0: 76 65 64 4F 4B 3A 3D 46 41 4C 53 45 3B 0D 0A 09 vedOK:=FALSE;...
Size : 512 (Real : 512)
000000: 41 52 09 69 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A AR.i:CARDINAL;..
000010: 42 45 47 49 4E 0D 0A 09 49 46 20 4C 69 6E 65 4C BEGIN...IF LineL
000020: 65 6E 3C 4C 69 6E 65 50 6F 73 20 54 48 45 4E 20 en<LinePos THEN
000030: 0D 0A 09 09 4C 69 6E 65 50 6F 73 3A 3D 4C 69 6E ....LinePos:=Lin
000040: 65 4C 65 6E 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 eLen;....END;...
000050: 54 68 69 73 78 3A 3D 30 3B 0D 0A 09 69 3A 3D 30 Thisx:=0;...i:=0
000060: 3B 09 0D 0A 09 4C 4F 4F 50 0D 0A 09 09 49 4E 43 ;....LOOP....INC
000070: 28 69 29 3B 0D 0A 09 09 63 68 3A 3D 47 65 74 43 (i);....ch:=GetC
000080: 75 72 72 65 6E 74 43 68 61 72 28 43 75 72 46 69 urrentChar(CurFi
000090: 6C 65 50 74 72 5E 29 3B 0D 0A 09 09 49 46 20 28 lePtr^);....IF (
0000A0: 69 3E 43 41 52 44 49 4E 41 4C 28 4C 69 6E 65 50 i>CARDINAL(LineP
0000B0: 6F 73 29 29 20 4F 52 20 28 63 68 3D 45 4F 46 29 os)) OR (ch=EOF)
0000C0: 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D THEN EXIT END;.
0000D0: 0A 09 09 49 46 20 63 68 3D 54 41 42 20 54 48 45 ...IF ch=TAB THE
0000E0: 4E 20 54 68 69 73 78 3A 3D 49 41 4E 44 28 54 68 N Thisx:=IAND(Th
0000F0: 69 73 78 2B 38 2C 30 66 66 66 38 68 29 20 0D 0A isx+8,0fff8h) ..
000100: 09 09 45 4C 53 45 20 20 49 4E 43 28 54 68 69 73 ..ELSE INC(This
000110: 78 29 20 45 4E 44 3B 0D 0A 09 09 62 3A 3D 46 6F x) END;....b:=Fo
000120: 72 77 61 72 64 4F 6E 65 43 68 61 72 28 43 75 72 rwardOneChar(Cur
000130: 46 69 6C 65 50 74 72 5E 29 20 0D 0A 09 09 45 4E FilePtr^) ....EN
000140: 44 3B 0D 0A 09 69 3A 3D 54 68 69 73 78 3B 0D 0A D;...i:=Thisx;..
000150: 09 57 48 49 4C 45 20 54 68 69 73 78 3E 3D 28 53 .WHILE Thisx>=(S
000160: 63 72 65 65 6E 57 69 64 74 68 2B 43 75 72 72 65 creenWidth+Curre
000170: 6E 74 4C 65 66 74 4D 61 72 67 69 6E 29 20 44 4F ntLeftMargin) DO
000180: 0D 0A 09 09 43 68 61 6E 67 65 4D 61 72 67 69 6E ....ChangeMargin
000190: 28 33 32 29 3B 0D 0A 09 09 54 68 69 73 78 3A 3D (32);....Thisx:=
0001A0: 69 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 57 48 49 i;....END;...WHI
0001B0: 4C 45 20 54 68 69 73 78 3C 43 75 72 72 65 6E 74 LE Thisx<Current
0001C0: 4C 65 66 74 4D 61 72 67 69 6E 20 44 4F 0D 0A 09 LeftMargin DO...
0001D0: 09 43 68 61 6E 67 65 4D 61 72 67 69 6E 28 2D 33 .ChangeMargin(-3
0001E0: 32 29 3B 0D 0A 09 09 54 68 69 73 78 3A 3D 69 3B 2);....Thisx:=i;
0001F0: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 54 68 69 73 78 ....END;...Thisx
Size : 512 (Real : 512)
000000: 09 45 4E 44 3B 0D 0A 09 53 65 74 50 6F 73 69 74 .END;...SetPosit
000010: 69 6F 6E 28 43 75 72 46 69 6C 65 50 74 72 5E 2C ion(CurFilePtr^,
000020: 70 29 3B 0D 0A 09 52 65 73 65 74 50 6F 73 3B 0D p);...ResetPos;.
000030: 0A 09 4C 69 6E 65 4C 65 6E 3A 3D 53 61 76 65 4C ..LineLen:=SaveL
000040: 69 6E 65 4C 65 6E 3B 0D 0A 09 4C 69 6E 65 50 6F ineLen;...LinePo
000050: 73 3A 3D 53 61 76 65 4C 69 6E 65 50 6F 73 3B 0D s:=SaveLinePos;.
000060: 0A 09 45 4E 44 20 53 63 72 6F 6C 6C 54 65 78 74 ..END ScrollText
000070: 55 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 Up;..PROCEDURE S
000080: 63 72 6F 6C 6C 55 70 3B 0D 0A 42 45 47 49 4E 0D crollUp;..BEGIN.
000090: 0A 09 53 63 72 6F 6C 6C 54 65 78 74 55 70 3B 0D ..ScrollTextUp;.
0000A0: 0A 09 49 46 20 4D 6F 76 65 64 4F 4B 20 54 48 45 ..IF MovedOK THE
0000B0: 4E 0D 0A 09 09 49 46 20 54 68 69 73 79 3C 45 6E N....IF Thisy<En
0000C0: 64 6F 66 57 69 6E 64 6F 77 20 54 48 45 4E 20 0D dofWindow THEN .
0000D0: 0A 09 09 09 49 4E 43 28 54 68 69 73 79 29 3B 0D ....INC(Thisy);.
0000E0: 0A 09 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ....ResetPos;...
0000F0: 09 45 4C 53 45 20 09 0D 0A 09 09 09 4C 69 6E 65 .ELSE ......Line
000100: 4D 6F 76 65 28 2D 31 29 3B 0D 0A 09 09 09 52 65 Move(-1);.....Re
000110: 73 65 74 50 6F 73 3B 0D 0A 09 09 09 45 4E 44 3B setPos;.....END;
000120: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 53 ....END;...END S
000130: 63 72 6F 6C 6C 55 70 3B 0D 0A 50 52 4F 43 45 44 crollUp;..PROCED
000140: 55 52 45 20 53 63 72 6F 6C 6C 54 65 78 74 44 6F URE ScrollTextDo
000150: 77 6E 3B 0D 0A 56 41 52 09 70 3A 50 6F 73 69 74 wn;..VAR.p:Posit
000160: 69 6F 6E 3B 09 0D 0A 09 53 61 76 65 4C 69 6E 65 ion;....SaveLine
000170: 4C 65 6E 2C 53 61 76 65 4C 69 6E 65 50 6F 73 3A Len,SaveLinePos:
000180: 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E CARDINAL;..BEGIN
000190: 0D 0A 09 53 61 76 65 4C 69 6E 65 4C 65 6E 3A 3D ...SaveLineLen:=
0001A0: 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 53 61 76 65 4C LineLen;...SaveL
0001B0: 69 6E 65 50 6F 73 3A 3D 4C 69 6E 65 50 6F 73 3B inePos:=LinePos;
0001C0: 0D 0A 09 69 3A 3D 45 6E 64 6F 66 57 69 6E 64 6F ...i:=EndofWindo
0001D0: 77 2D 54 68 69 73 79 2B 31 3B 0D 0A 09 47 65 74 w-Thisy+1;...Get
0001E0: 50 6F 73 69 74 69 6F 6E 28 43 75 72 46 69 6C 65 Position(CurFile
0001F0: 50 74 72 5E 2C 70 29 3B 0D 0A 09 53 65 74 4C 69 Ptr^,p);...SetLi
Size : 512 (Real : 512)
000000: 3A 3D 54 68 69 73 78 2D 43 75 72 72 65 6E 74 4C :=Thisx-CurrentL
000010: 65 66 74 4D 61 72 67 69 6E 3B 0D 0A 09 63 75 72 eftMargin;...cur
000020: 78 5B 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 5D x[CurrentWindow]
000030: 3A 3D 54 68 69 73 78 3B 0D 0A 09 52 65 73 65 74 :=Thisx;...Reset
000040: 50 6F 73 3B 0D 0A 09 45 4E 44 20 43 68 61 6E 67 Pos;...END Chang
000050: 65 50 6F 73 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 ePos;....PROCEDU
000060: 52 45 20 4C 69 6E 65 4D 6F 76 65 28 62 79 3A 49 RE LineMove(by:I
000070: 4E 54 45 47 45 52 29 3B 0D 0A 56 41 52 09 69 3A NTEGER);..VAR.i:
000080: 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 49 4E 0D INTEGER;..BEGIN.
000090: 0A 09 52 65 44 72 61 77 6E 3A 3D 46 41 4C 53 45 ..ReDrawn:=FALSE
0000A0: 3B 0D 0A 09 69 3A 3D 4C 69 6E 65 50 6F 73 3B 0D ;...i:=LinePos;.
0000B0: 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 62 79 29 ..SetLinePos(by)
0000C0: 3B 0D 0A 09 4C 69 6E 65 50 6F 73 3A 3D 69 3B 0D ;...LinePos:=i;.
0000D0: 0A 09 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 09 49 ..ChangePos;...I
0000E0: 46 20 41 42 53 28 62 79 29 3E 31 20 54 48 45 4E F ABS(by)>1 THEN
0000F0: 0D 0A 09 09 52 65 44 69 73 70 6C 61 79 57 69 6E ....ReDisplayWin
000100: 64 6F 77 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 dow;....END;...E
000110: 4E 44 20 4C 69 6E 65 4D 6F 76 65 3B 0D 0A 56 41 ND LineMove;..VA
000120: 52 09 70 77 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A R.pw:Position;..
000130: 50 52 4F 43 45 44 55 52 45 20 57 72 69 74 65 50 PROCEDURE WriteP
000140: 61 72 74 4C 69 6E 65 28 63 3A 43 41 52 44 49 4E artLine(c:CARDIN
000150: 41 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 44 6F AL);..BEGIN...Do
000160: 53 63 72 65 65 6E 43 68 61 6E 67 65 28 44 65 6C ScreenChange(Del
000170: 45 6F 6C 29 3B 0D 0A 09 47 65 74 50 6F 73 69 74 Eol);...GetPosit
000180: 69 6F 6E 28 43 75 72 46 69 6C 65 50 74 72 5E 2C ion(CurFilePtr^,
000190: 70 77 29 3B 0D 0A 09 4C 4F 4F 50 0D 0A 09 09 52 pw);...LOOP....R
0001A0: 65 61 64 4E 65 78 74 43 68 61 72 28 70 77 2C 63 eadNextChar(pw,c
0001B0: 68 29 3B 0D 0A 09 09 49 46 20 28 63 68 3D 30 64 h);....IF (ch=0d
0001C0: 78 29 20 4F 52 20 28 63 68 3D 31 61 78 29 20 4F x) OR (ch=1ax) O
0001D0: 52 20 28 63 68 3D 30 61 78 29 20 54 48 45 4E 20 R (ch=0ax) THEN
0001E0: 45 58 49 54 20 45 4E 44 3B 0D 0A 09 09 49 46 20 EXIT END;....IF
0001F0: 63 3E 3D 28 53 63 72 65 65 6E 57 69 64 74 68 2B c>=(ScreenWidth+
Size : 512 (Real : 512)
000000: 6E 65 50 6F 73 28 69 29 3B 0D 0A 09 49 46 20 6C nePos(i);...IF l
000010: 69 6E 65 73 6D 6F 76 65 64 3D 69 20 54 48 45 4E inesmoved=i THEN
000020: 0D 0A 09 09 4D 6F 76 65 64 4F 4B 3A 3D 54 52 55 ....MovedOK:=TRU
000030: 45 3B 0D 0A 09 09 53 63 72 6F 6C 6C 57 69 6E 64 E;....ScrollWind
000040: 6F 77 44 6F 77 6E 28 53 74 61 72 74 6F 66 57 69 owDown(StartofWi
000050: 6E 64 6F 77 2C 45 6E 64 6F 66 57 69 6E 64 6F 77 ndow,EndofWindow
000060: 29 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 30 2C 45 );....Gotoxy(0,E
000070: 6E 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 09 ndofWindow);....
000080: 57 72 69 74 65 4C 69 6E 65 3B 0D 0A 09 09 52 65 WriteLine;....Re
000090: 73 65 74 50 6F 73 3B 0D 0A 09 45 4C 53 45 0D 0A setPos;...ELSE..
0000A0: 09 09 4D 6F 76 65 64 4F 4B 3A 3D 46 41 4C 53 45 ..MovedOK:=FALSE
0000B0: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 53 65 74 50 ;....END;...SetP
0000C0: 6F 73 69 74 69 6F 6E 28 43 75 72 46 69 6C 65 50 osition(CurFileP
0000D0: 74 72 5E 2C 70 29 3B 0D 0A 09 52 65 73 65 74 50 tr^,p);...ResetP
0000E0: 6F 73 3B 0D 0A 09 4C 69 6E 65 4C 65 6E 3A 3D 53 os;...LineLen:=S
0000F0: 61 76 65 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 4C 69 aveLineLen;...Li
000100: 6E 65 50 6F 73 3A 3D 53 61 76 65 4C 69 6E 65 50 nePos:=SaveLineP
000110: 6F 73 3B 0D 0A 09 45 4E 44 20 53 63 72 6F 6C 6C os;...END Scroll
000120: 54 65 78 74 44 6F 77 6E 3B 0D 0A 50 52 4F 43 45 TextDown;..PROCE
000130: 44 55 52 45 20 53 63 72 6F 6C 6C 44 6F 77 6E 3B DURE ScrollDown;
000140: 0D 0A 42 45 47 49 4E 0D 0A 09 53 63 72 6F 6C 6C ..BEGIN...Scroll
000150: 54 65 78 74 44 6F 77 6E 3B 0D 0A 09 49 46 20 4D TextDown;...IF M
000160: 6F 76 65 64 4F 4B 20 54 48 45 4E 0D 0A 09 09 49 ovedOK THEN....I
000170: 46 20 54 68 69 73 79 3E 53 74 61 72 74 6F 66 57 F Thisy>StartofW
000180: 69 6E 64 6F 77 20 54 48 45 4E 20 0D 0A 09 09 09 indow THEN .....
000190: 44 45 43 28 54 68 69 73 79 29 3B 0D 0A 09 09 09 DEC(Thisy);.....
0001A0: 52 65 73 65 74 50 6F 73 3B 0D 0A 09 09 45 4C 53 ResetPos;....ELS
0001B0: 45 0D 0A 09 09 09 4C 69 6E 65 4D 6F 76 65 28 31 E.....LineMove(1
0001C0: 29 3B 0D 0A 09 09 09 52 65 73 65 74 50 6F 73 3B );.....ResetPos;
0001D0: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 .....END;....END
0001E0: 3B 0D 0A 09 45 4E 44 20 53 63 72 6F 6C 6C 44 6F ;...END ScrollDo
0001F0: 77 6E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 4C wn;..PROCEDURE L
Size : 512 (Real : 512)
000000: 4E 20 52 69 67 68 74 20 45 4E 44 3B 0D 0A 09 45 N Right END;...E
000010: 4E 44 20 46 69 6E 64 57 6F 72 64 3B 0D 0A 50 52 ND FindWord;..PR
000020: 4F 43 45 44 55 52 45 20 44 6F 77 6E 3B 0D 0A 42 OCEDURE Down;..B
000030: 45 47 49 4E 0D 0A 09 4C 69 6E 65 4D 6F 76 65 28 EGIN...LineMove(
000040: 31 29 3B 0D 0A 09 46 69 6C 65 4C 69 6D 69 74 3A 1);...FileLimit:
000050: 3D 6C 69 6E 65 73 6D 6F 76 65 64 3D 30 3B 0D 0A =linesmoved=0;..
000060: 09 49 46 20 6C 69 6E 65 73 6D 6F 76 65 64 3E 30 .IF linesmoved>0
000070: 20 54 48 45 4E 0D 0A 09 09 49 46 20 28 54 68 69 THEN....IF (Thi
000080: 73 79 3E 3D 45 6E 64 6F 66 57 69 6E 64 6F 77 29 sy>=EndofWindow)
000090: 20 54 48 45 4E 0D 0A 09 09 09 49 4E 43 28 54 68 THEN.....INC(Th
0000A0: 69 73 79 29 3B 0D 0A 09 09 09 53 63 72 6F 6C 6C isy);.....Scroll
0000B0: 54 65 78 74 44 6F 77 6E 3B 0D 0A 09 09 09 44 45 TextDown;.....DE
0000C0: 43 28 54 68 69 73 79 29 3B 0D 0A 09 09 09 52 65 C(Thisy);.....Re
0000D0: 73 65 74 50 6F 73 3B 0D 0A 09 09 45 4C 53 49 46 setPos;....ELSIF
0000E0: 20 20 4E 4F 54 20 52 65 44 72 61 77 6E 20 54 48 NOT ReDrawn TH
0000F0: 45 4E 20 0D 0A 09 09 09 49 4E 43 28 54 68 69 73 EN .....INC(This
000100: 79 29 3B 0D 0A 09 09 09 52 65 73 65 74 50 6F 73 y);.....ResetPos
000110: 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E ;.....END;....EN
000120: 44 3B 20 0D 0A 09 45 4E 44 20 44 6F 77 6E 3B 0D D; ...END Down;.
000130: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 64 ...PROCEDURE Red
000140: 6F 4C 69 6E 65 3B 0D 0A 42 45 47 49 4E 0D 0A 09 oLine;..BEGIN...
000150: 47 6F 74 6F 78 79 28 30 2C 54 68 69 73 79 29 3B Gotoxy(0,Thisy);
000160: 0D 0A 09 53 65 74 4C 69 6E 65 50 6F 73 28 30 29 ...SetLinePos(0)
000170: 3B 0D 0A 09 57 72 69 74 65 4C 69 6E 65 3B 0D 0A ;...WriteLine;..
000180: 09 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 09 45 4E .ChangePos;...EN
000190: 44 20 52 65 64 6F 4C 69 6E 65 3B 0D 0A 0D 0A 50 D RedoLine;....P
0001A0: 52 4F 43 45 44 55 52 45 20 49 6E 73 4F 6E 65 43 ROCEDURE InsOneC
0001B0: 68 61 72 28 63 68 3A 43 48 41 52 29 3B 0D 0A 56 har(ch:CHAR);..V
0001C0: 41 52 09 43 48 31 3A 41 52 52 41 59 5B 30 2E 2E AR.CH1:ARRAY[0..
0001D0: 30 5D 20 4F 46 20 43 48 41 52 3B 0D 0A 42 45 47 0] OF CHAR;..BEG
0001E0: 49 4E 0D 0A 09 52 65 44 72 61 77 6E 3A 3D 46 41 IN...ReDrawn:=FA
0001F0: 4C 53 45 3B 0D 0A 09 4D 61 72 6B 41 73 55 70 64 LSE;...MarkAsUpd
Size : 512 (Real : 512)
000000: 65 66 74 3B 0D 0A 56 41 52 09 63 68 3A 43 48 41 eft;..VAR.ch:CHA
000010: 52 3B 0D 0A 09 53 61 76 65 4C 69 6E 65 4C 65 6E R;...SaveLineLen
000020: 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 70 3A 50 :CARDINAL;...p:P
000030: 6F 73 69 74 69 6F 6E 3B 0D 0A 42 45 47 49 4E 0D osition;..BEGIN.
000040: 0A 09 4D 6F 76 65 64 4F 4B 3A 3D 54 52 55 45 3B ..MovedOK:=TRUE;
000050: 0D 0A 09 52 65 44 72 61 77 6E 3A 3D 46 41 4C 53 ...ReDrawn:=FALS
000060: 45 3B 0D 0A 09 53 61 76 65 4C 69 6E 65 4C 65 6E E;...SaveLineLen
000070: 3A 3D 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 47 65 74 :=LineLen;...Get
000080: 50 6F 73 69 74 69 6F 6E 28 43 75 72 46 69 6C 65 Position(CurFile
000090: 50 74 72 5E 2C 70 29 3B 0D 0A 09 49 46 20 4C 69 Ptr^,p);...IF Li
0000A0: 6E 65 50 6F 73 3E 30 20 54 48 45 4E 0D 0A 09 09 nePos>0 THEN....
0000B0: 62 3A 3D 42 61 63 6B 4F 6E 65 43 68 61 72 28 43 b:=BackOneChar(C
0000C0: 75 72 46 69 6C 65 50 74 72 5E 29 3B 0D 0A 09 09 urFilePtr^);....
0000D0: 63 68 3A 3D 47 65 74 43 75 72 72 65 6E 74 43 68 ch:=GetCurrentCh
0000E0: 61 72 28 43 75 72 46 69 6C 65 50 74 72 5E 29 3B ar(CurFilePtr^);
0000F0: 0D 0A 09 09 49 46 20 28 43 75 72 72 65 6E 74 4C ....IF (CurrentL
000100: 65 66 74 4D 61 72 67 69 6E 3E 30 29 20 41 4E 44 eftMargin>0) AND
000110: 20 28 54 68 69 73 78 3D 30 29 20 54 48 45 4E 0D (Thisx=0) THEN.
000120: 0A 09 09 09 43 68 61 6E 67 65 4D 61 72 67 69 6E ....ChangeMargin
000130: 28 2D 33 32 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D (-32);.....END;.
000140: 0A 09 09 44 45 43 28 4C 69 6E 65 50 6F 73 29 3B ...DEC(LinePos);
000150: 0D 0A 09 09 49 46 20 4E 4F 54 20 52 65 44 72 61 ....IF NOT ReDra
000160: 77 6E 20 54 48 45 4E 0D 0A 09 09 09 49 46 20 63 wn THEN.....IF c
000170: 68 3C 3E 54 41 42 20 54 48 45 4E 0D 0A 09 09 09 h<>TAB THEN.....
000180: 09 44 45 43 28 54 68 69 73 78 29 3B 0D 0A 09 09 .DEC(Thisx);....
000190: 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 09 09 ..ResetPos;.....
0001A0: 45 4C 53 45 0D 0A 09 09 09 09 4C 69 6E 65 4D 6F ELSE......LineMo
0001B0: 76 65 28 30 29 3B 0D 0A 09 09 09 09 45 4E 44 3B ve(0);......END;
0001C0: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 0D 0A 09 45 4C .....END;.....EL
0001D0: 53 45 0D 0A 09 09 54 68 69 73 78 3A 3D 31 30 32 SE....Thisx:=102
0001E0: 33 3B 0D 0A 09 09 4C 69 6E 65 50 6F 73 3A 3D 31 3;....LinePos:=1
0001F0: 30 32 33 3B 0D 0A 09 09 55 70 3B 0D 0A 09 09 49 023;....Up;....I
Size : 512 (Real : 512)
000000: 61 74 65 64 3B 0D 0A 09 43 48 31 5B 30 5D 3A 3D ated;...CH1[0]:=
000010: 63 68 3B 0D 0A 09 49 6E 73 43 68 61 72 73 28 43 ch;...InsChars(C
000020: 75 72 46 69 6C 65 50 74 72 5E 2C 43 48 31 2C 31 urFilePtr^,CH1,1
000030: 29 3B 0D 0A 09 49 4E 43 28 4C 69 6E 65 50 6F 73 );...INC(LinePos
000040: 29 3B 0D 0A 09 49 4E 43 28 4C 69 6E 65 4C 65 6E );...INC(LineLen
000050: 29 3B 0D 0A 09 49 46 20 63 68 3D 43 52 20 54 48 );...IF ch=CR TH
000060: 45 4E 0D 0A 09 09 43 48 31 5B 30 5D 3A 3D 4C 46 EN....CH1[0]:=LF
000070: 3B 0D 0A 09 09 49 6E 73 43 68 61 72 73 28 43 75 ;....InsChars(Cu
000080: 72 46 69 6C 65 50 74 72 5E 2C 43 48 31 2C 31 29 rFilePtr^,CH1,1)
000090: 3B 0D 0A 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A ;....ResetPos;..
0000A0: 09 09 44 6F 53 63 72 65 65 6E 43 68 61 6E 67 65 ..DoScreenChange
0000B0: 28 44 65 6C 45 6F 6C 29 3B 0D 0A 09 09 49 46 20 (DelEol);....IF
0000C0: 54 68 69 73 79 3E 3D 45 6E 64 6F 66 57 69 6E 64 Thisy>=EndofWind
0000D0: 6F 77 20 54 48 45 4E 0D 0A 09 28 2A 09 09 53 63 ow THEN...(*..Sc
0000E0: 72 6F 6C 6C 54 65 78 74 44 6F 77 6E 3B 2A 29 0D rollTextDown;*).
0000F0: 0A 09 09 09 53 63 72 6F 6C 6C 57 69 6E 64 6F 77 ....ScrollWindow
000100: 44 6F 77 6E 28 53 74 61 72 74 6F 66 57 69 6E 64 Down(StartofWind
000110: 6F 77 2C 45 6E 64 6F 66 57 69 6E 64 6F 77 29 3B ow,EndofWindow);
000120: 0D 0A 09 09 09 44 45 43 28 54 68 69 73 79 29 3B .....DEC(Thisy);
000130: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 47 6F 74 .....END;....Got
000140: 6F 78 79 28 30 2C 45 6E 64 6F 66 57 69 6E 64 6F oxy(0,EndofWindo
000150: 77 29 3B 0D 0A 09 09 53 63 72 6F 6C 6C 57 69 6E w);....ScrollWin
000160: 64 6F 77 55 70 28 54 68 69 73 79 2B 31 2C 45 6E dowUp(Thisy+1,En
000170: 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 09 52 dofWindow);....R
000180: 65 73 65 74 50 6F 73 3B 0D 0A 09 09 49 4E 43 28 esetPos;....INC(
000190: 54 68 69 73 79 29 3B 0D 0A 09 09 52 65 73 65 74 Thisy);....Reset
0001A0: 50 6F 73 3B 0D 0A 09 09 4C 69 6E 65 50 6F 73 3A Pos;....LinePos:
0001B0: 3D 30 3B 0D 0A 09 09 52 65 64 6F 4C 69 6E 65 3B =0;....RedoLine;
0001C0: 0D 0A 09 45 4C 53 49 46 20 63 68 3D 54 41 42 20 ...ELSIF ch=TAB
0001D0: 54 48 45 4E 20 52 65 64 6F 4C 69 6E 65 09 0D 0A THEN RedoLine...
0001E0: 09 45 4C 53 45 0D 0A 09 09 49 46 20 54 68 69 73 .ELSE....IF This
0001F0: 78 3E 3D 28 53 63 72 65 65 6E 57 69 64 74 68 2D x>=(ScreenWidth-
Size : 512 (Real : 512)
000000: 46 20 4E 4F 54 20 4D 6F 76 65 64 4F 4B 20 54 48 F NOT MovedOK TH
000010: 45 4E 0D 0A 09 09 09 4C 69 6E 65 50 6F 73 3A 3D EN.....LinePos:=
000020: 30 3B 0D 0A 09 09 09 4C 69 6E 65 4C 65 6E 3A 3D 0;.....LineLen:=
000030: 53 61 76 65 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 09 SaveLineLen;....
000040: 09 53 65 74 50 6F 73 69 74 69 6F 6E 28 43 75 72 .SetPosition(Cur
000050: 46 69 6C 65 50 74 72 5E 2C 70 29 3B 0D 0A 09 09 FilePtr^,p);....
000060: 09 54 68 69 73 78 3A 3D 30 3B 0D 0A 09 09 09 52 .Thisx:=0;.....R
000070: 65 73 65 74 50 6F 73 3B 0D 0A 09 09 09 45 4E 44 esetPos;.....END
000080: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 ;....END;...END
000090: 4C 65 66 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 Left;..PROCEDURE
0000A0: 20 52 69 67 68 74 3B 0D 0A 56 41 52 09 63 68 3A Right;..VAR.ch:
0000B0: 43 48 41 52 3B 0D 0A 09 69 3A 43 41 52 44 49 4E CHAR;...i:CARDIN
0000C0: 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 63 68 3A AL;..BEGIN...ch:
0000D0: 3D 47 65 74 43 75 72 72 65 6E 74 43 68 61 72 28 =GetCurrentChar(
0000E0: 43 75 72 46 69 6C 65 50 74 72 5E 29 3B 0D 0A 09 CurFilePtr^);...
0000F0: 49 46 20 63 68 3D 31 61 78 20 28 2A 6F 6E 20 45 IF ch=1ax (*on E
000100: 4F 46 20 63 68 61 72 2A 29 20 54 48 45 4E 20 52 OF char*) THEN R
000110: 45 54 55 52 4E 20 45 4E 44 3B 0D 0A 09 49 46 20 ETURN END;...IF
000120: 4C 69 6E 65 50 6F 73 3E 3D 4C 69 6E 65 4C 65 6E LinePos>=LineLen
000130: 20 54 48 45 4E 0D 0A 09 09 54 68 69 73 78 3A 3D THEN....Thisx:=
000140: 30 3B 0D 0A 09 09 4C 69 6E 65 50 6F 73 3A 3D 30 0;....LinePos:=0
000150: 3B 0D 0A 09 09 44 6F 77 6E 3B 0D 0A 0D 0A 09 45 ;....Down;.....E
000160: 4C 53 45 0D 0A 0D 0A 09 09 49 46 20 63 68 3D 54 LSE......IF ch=T
000170: 41 42 20 54 48 45 4E 20 69 3A 3D 39 20 45 4C 53 AB THEN i:=9 ELS
000180: 45 20 69 3A 3D 31 20 45 4E 44 3B 0D 0A 09 09 49 E i:=1 END;....I
000190: 46 20 28 54 68 69 73 78 2B 69 29 3E 3D 28 53 63 F (Thisx+i)>=(Sc
0001A0: 72 65 65 6E 57 69 64 74 68 2D 31 29 20 54 48 45 reenWidth-1) THE
0001B0: 4E 0D 0A 09 09 09 43 68 61 6E 67 65 4D 61 72 67 N.....ChangeMarg
0001C0: 69 6E 28 33 32 29 3B 0D 0A 09 09 09 45 4E 44 3B in(32);.....END;
0001D0: 0D 0A 09 09 62 3A 3D 46 6F 72 77 61 72 64 4F 6E ....b:=ForwardOn
0001E0: 65 43 68 61 72 28 43 75 72 46 69 6C 65 50 74 72 eChar(CurFilePtr
0001F0: 5E 29 3B 0D 0A 09 09 49 4E 43 28 4C 69 6E 65 50 ^);....INC(LineP
Size : 512 (Real : 512)
000000: 31 29 20 54 48 45 4E 0D 0A 09 09 09 43 68 61 6E 1) THEN.....Chan
000010: 67 65 4D 61 72 67 69 6E 28 33 32 29 3B 0D 0A 09 geMargin(32);...
000020: 09 09 45 4E 44 3B 0D 0A 09 09 49 46 20 4E 4F 54 ..END;....IF NOT
000030: 20 52 65 44 72 61 77 6E 20 54 48 45 4E 0D 0A 09 ReDrawn THEN...
000040: 09 09 49 46 20 4C 69 6E 65 50 6F 73 3C 4C 69 6E ..IF LinePos<Lin
000050: 65 4C 65 6E 20 54 48 45 4E 0D 0A 09 09 09 09 62 eLen THEN......b
000060: 3A 3D 42 61 63 6B 4F 6E 65 43 68 61 72 28 43 75 :=BackOneChar(Cu
000070: 72 46 69 6C 65 50 74 72 5E 29 3B 0D 0A 09 09 09 rFilePtr^);.....
000080: 09 57 72 69 74 65 50 61 72 74 4C 69 6E 65 28 43 .WritePartLine(C
000090: 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 6E urrentLeftMargin
0000A0: 2B 54 68 69 73 78 2B 31 29 3B 0D 0A 09 09 09 09 +Thisx+1);......
0000B0: 49 4E 43 28 54 68 69 73 78 29 3B 0D 0A 09 09 09 INC(Thisx);.....
0000C0: 09 62 3A 3D 46 6F 72 77 61 72 64 4F 6E 65 43 68 .b:=ForwardOneCh
0000D0: 61 72 28 43 75 72 46 69 6C 65 50 74 72 5E 29 3B ar(CurFilePtr^);
0000E0: 09 09 09 09 0D 0A 09 09 09 45 4C 53 45 0D 0A 09 .........ELSE...
0000F0: 09 09 09 57 72 69 74 65 28 63 68 29 3B 0D 0A 09 ...Write(ch);...
000100: 09 09 09 49 4E 43 28 54 68 69 73 78 29 3B 0D 0A ...INC(Thisx);..
000110: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
000120: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 52 65 73 65 ;....END;...Rese
000130: 74 50 6F 73 3B 0D 0A 09 45 4E 44 20 49 6E 73 4F tPos;...END InsO
000140: 6E 65 43 68 61 72 3B 0D 0A 50 52 4F 43 45 44 55 neChar;..PROCEDU
000150: 52 45 20 44 65 6C 4F 6E 65 43 68 61 72 3B 0D 0A RE DelOneChar;..
000160: 42 45 47 49 4E 0D 0A 09 4D 61 72 6B 41 73 55 70 BEGIN...MarkAsUp
000170: 64 61 74 65 64 3B 0D 0A 09 63 68 3A 3D 47 65 74 dated;...ch:=Get
000180: 43 75 72 72 65 6E 74 43 68 61 72 28 43 75 72 46 CurrentChar(CurF
000190: 69 6C 65 50 74 72 5E 29 3B 0D 0A 09 49 46 20 4C ilePtr^);...IF L
0001A0: 69 6E 65 50 6F 73 3D 4C 69 6E 65 4C 65 6E 20 54 inePos=LineLen T
0001B0: 48 45 4E 20 69 3A 3D 32 0D 0A 09 45 4C 53 45 20 HEN i:=2...ELSE
0001C0: 69 3A 3D 31 20 45 4E 44 3B 0D 0A 09 44 65 6C 43 i:=1 END;...DelC
0001D0: 68 61 72 73 28 43 75 72 46 69 6C 65 50 74 72 5E hars(CurFilePtr^
0001E0: 2C 69 29 3B 0D 0A 09 49 46 20 69 3D 32 20 54 48 ,i);...IF i=2 TH
0001F0: 45 4E 0D 0A 09 09 49 46 20 54 68 69 73 79 3C 45 EN....IF Thisy<E
Size : 512 (Real : 512)
000000: 6F 73 29 3B 0D 0A 09 09 49 46 20 63 68 3C 3E 54 os);....IF ch<>T
000010: 41 42 20 54 48 45 4E 0D 0A 09 09 09 49 4E 43 28 AB THEN.....INC(
000020: 54 68 69 73 78 29 3B 0D 0A 09 09 09 52 65 73 65 Thisx);.....Rese
000030: 74 50 6F 73 3B 0D 0A 09 09 45 4C 53 45 0D 0A 0D tPos;....ELSE...
000040: 0A 09 09 09 28 2A 69 66 20 6D 6F 76 65 73 20 6F ....(*if moves o
000050: 76 65 72 20 74 61 62 73 20 61 72 65 20 73 6C 6F ver tabs are slo
000060: 77 2C 20 72 65 70 6C 61 63 65 20 74 68 65 0D 0A w, replace the..
000070: 09 09 09 20 20 72 65 70 65 61 74 65 64 20 6D 6F ... repeated mo
000080: 76 65 73 20 72 69 67 68 74 20 62 79 20 61 20 67 ves right by a g
000090: 6F 74 6F 78 79 2A 29 0D 0A 09 09 09 54 68 69 73 otoxy*).....This
0000A0: 78 3A 3D 49 41 4E 44 28 54 68 69 73 78 2B 38 2C x:=IAND(Thisx+8,
0000B0: 30 66 66 66 38 68 29 3B 0D 0A 09 09 09 52 65 73 0fff8h);.....Res
0000C0: 65 74 50 6F 73 3B 0D 0A 09 09 09 45 4E 44 3B 0D etPos;.....END;.
0000D0: 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 52 69 ...END;...END Ri
0000E0: 67 68 74 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 ght;....PROCEDUR
0000F0: 45 20 41 6C 70 68 61 4E 75 6D 28 63 68 3A 43 48 E AlphaNum(ch:CH
000100: 41 52 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 AR):BOOLEAN;..BE
000110: 47 49 4E 0D 0A 09 63 68 3A 3D 43 41 50 28 63 68 GIN...ch:=CAP(ch
000120: 29 3B 0D 0A 09 52 45 54 55 52 4E 20 28 28 63 68 );...RETURN ((ch
000130: 3E 3D 27 41 27 29 20 41 4E 44 20 28 63 68 3C 3D >='A') AND (ch<=
000140: 27 5A 27 29 29 20 4F 52 20 28 28 63 68 3E 3D 27 'Z')) OR ((ch>='
000150: 30 27 29 20 41 4E 44 20 28 63 68 3C 3D 27 39 27 0') AND (ch<='9'
000160: 29 29 3B 0D 0A 09 45 4E 44 20 41 6C 70 68 61 4E ));...END AlphaN
000170: 75 6D 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 um;....PROCEDURE
000180: 20 46 69 6E 64 57 6F 72 64 28 42 61 63 6B 77 61 FindWord(Backwa
000190: 72 64 3A 42 4F 4F 4C 45 41 4E 3B 44 65 6C 65 74 rd:BOOLEAN;Delet
0001A0: 65 3A 42 4F 4F 4C 45 41 4E 29 3B 0D 0A 0D 0A 28 e:BOOLEAN);....(
0001B0: 2A 09 46 69 6E 64 20 61 20 77 6F 72 64 20 61 6E *.Find a word an
0001C0: 64 20 6F 70 74 69 6F 6E 61 6C 6C 79 20 64 65 6C d optionally del
0001D0: 65 74 65 20 69 74 0D 0A 0D 0A 09 41 20 77 6F 72 ete it.....A wor
0001E0: 64 20 69 73 20 61 20 73 74 72 69 6E 67 20 61 6C d is a string al
0001F0: 70 68 61 6E 75 6D 65 72 69 63 73 20 6F 72 20 61 phanumerics or a
Size : 512 (Real : 512)
000000: 6E 64 6F 66 57 69 6E 64 6F 77 20 54 48 45 4E 20 ndofWindow THEN
000010: 0D 0A 09 09 09 49 4E 43 28 54 68 69 73 79 29 3B .....INC(Thisy);
000020: 0D 0A 09 09 09 69 3A 3D 4C 69 6E 65 50 6F 73 3B .....i:=LinePos;
000030: 0D 0A 09 09 09 52 65 6D 6F 76 65 4C 69 6E 65 3B .....RemoveLine;
000040: 0D 0A 09 09 09 4C 69 6E 65 50 6F 73 3A 3D 69 3B .....LinePos:=i;
000050: 0D 0A 09 09 09 44 45 43 28 54 68 69 73 79 29 3B .....DEC(Thisy);
000060: 0D 0A 09 09 09 52 65 64 6F 4C 69 6E 65 3B 0D 0A .....RedoLine;..
000070: 09 09 09 45 4E 44 3B 0D 0A 09 45 4C 53 45 09 0D ...END;...ELSE..
000080: 0A 09 09 44 45 43 28 4C 69 6E 65 4C 65 6E 29 3B ...DEC(LineLen);
000090: 0D 0A 09 09 57 72 69 74 65 50 61 72 74 4C 69 6E ....WritePartLin
0000A0: 65 28 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 e(CurrentLeftMar
0000B0: 67 69 6E 2B 54 68 69 73 78 2B 31 29 3B 0D 0A 09 gin+Thisx+1);...
0000C0: 09 45 4E 44 3B 0D 0A 28 2A 09 45 4C 53 49 46 20 .END;..(*.ELSIF
0000D0: 63 68 3D 54 41 42 20 54 48 45 4E 0D 0A 09 09 52 ch=TAB THEN....R
0000E0: 65 64 6F 4C 69 6E 65 0D 0A 09 45 4C 53 45 0D 0A edoLine...ELSE..
0000F0: 09 09 4C 69 6E 65 4C 65 6E 3A 3D 4C 69 6E 65 4C ..LineLen:=LineL
000100: 65 6E 2D 31 3B 0D 0A 09 09 44 6F 53 63 72 65 65 en-1;....DoScree
000110: 6E 43 68 61 6E 67 65 28 44 65 6C 43 68 61 72 29 nChange(DelChar)
000120: 3B 0D 0A 09 09 45 4E 44 3B 2A 29 0D 0A 09 52 65 ;....END;*)...Re
000130: 73 65 74 50 6F 73 3B 0D 0A 09 45 4E 44 20 44 65 setPos;...END De
000140: 6C 4F 6E 65 43 68 61 72 3B 0D 0A 50 52 4F 43 45 lOneChar;..PROCE
000150: 44 55 52 45 20 4F 76 65 72 57 72 69 74 65 28 63 DURE OverWrite(c
000160: 68 3A 43 48 41 52 29 3B 0D 0A 56 41 52 09 43 48 h:CHAR);..VAR.CH
000170: 31 3A 41 52 52 41 59 5B 30 2E 2E 30 5D 20 4F 46 1:ARRAY[0..0] OF
000180: 20 43 48 41 52 3B 0D 0A 42 45 47 49 4E 0D 0A 09 CHAR;..BEGIN...
000190: 43 48 31 5B 30 5D 3A 3D 47 65 74 43 75 72 72 65 CH1[0]:=GetCurre
0001A0: 6E 74 43 68 61 72 28 43 75 72 46 69 6C 65 50 74 ntChar(CurFilePt
0001B0: 72 5E 29 3B 0D 0A 09 49 46 20 28 43 48 31 5B 30 r^);...IF (CH1[0
0001C0: 5D 3C 3E 43 52 29 20 41 4E 44 20 28 63 68 3C 3E ]<>CR) AND (ch<>
0001D0: 43 52 29 20 41 4E 44 20 28 43 48 31 5B 30 5D 3C CR) AND (CH1[0]<
0001E0: 3E 31 61 78 29 20 54 48 45 4E 0D 0A 09 09 49 46 >1ax) THEN....IF
0001F0: 20 28 43 48 31 5B 30 5D 3C 3E 54 41 42 29 20 41 (CH1[0]<>TAB) A
Size : 512 (Real : 512)
000000: 20 73 74 72 69 6E 67 20 6F 66 20 6D 61 72 6B 73 string of marks
000010: 2C 20 74 61 62 73 20 20 6F 72 20 73 70 6F 61 63 , tabs or spoac
000020: 65 73 0D 0A 0D 0A 09 54 68 65 20 63 75 72 73 6F es.....The curso
000030: 72 20 69 73 20 72 65 70 6F 73 69 74 69 6F 6E 65 r is repositione
000040: 64 2A 29 0D 0A 56 41 52 09 63 68 3A 43 48 41 52 d*)..VAR.ch:CHAR
000050: 3B 0D 0A 09 62 31 3A 42 4F 4F 4C 45 41 4E 3B 0D ;...b1:BOOLEAN;.
000060: 0A 42 45 47 49 4E 0D 0A 09 46 69 6C 65 4C 69 6D .BEGIN...FileLim
000070: 69 74 3A 3D 46 41 4C 53 45 3B 0D 0A 09 49 46 20 it:=FALSE;...IF
000080: 42 61 63 6B 77 61 72 64 20 54 48 45 4E 20 0D 0A Backward THEN ..
000090: 09 09 4C 65 66 74 3B 0D 0A 09 09 49 46 20 4E 4F ..Left;....IF NO
0000A0: 54 20 4D 6F 76 65 64 4F 4B 20 54 48 45 4E 20 52 T MovedOK THEN R
0000B0: 45 54 55 52 4E 20 45 4E 44 3B 0D 0A 09 09 45 4E ETURN END;....EN
0000C0: 44 3B 0D 0A 09 63 68 3A 3D 47 65 74 43 75 72 72 D;...ch:=GetCurr
0000D0: 65 6E 74 43 68 61 72 28 43 75 72 46 69 6C 65 50 entChar(CurFileP
0000E0: 74 72 5E 29 3B 0D 0A 09 62 31 3A 3D 41 6C 70 68 tr^);...b1:=Alph
0000F0: 61 4E 75 6D 28 63 68 29 3B 0D 0A 09 49 46 20 63 aNum(ch);...IF c
000100: 68 3D 45 4F 46 20 54 48 45 4E 20 52 45 54 55 52 h=EOF THEN RETUR
000110: 4E 20 45 4E 44 3B 0D 0A 09 52 45 50 45 41 54 0D N END;...REPEAT.
000120: 0A 09 09 49 46 20 44 65 6C 65 74 65 20 54 48 45 ...IF Delete THE
000130: 4E 20 44 65 6C 4F 6E 65 43 68 61 72 20 45 4E 44 N DelOneChar END
000140: 3B 0D 0A 09 09 49 46 20 42 61 63 6B 77 61 72 64 ;....IF Backward
000150: 20 20 20 54 48 45 4E 20 4C 65 66 74 3B 0D 0A 09 THEN Left;...
000160: 09 45 4C 53 49 46 20 4E 4F 54 20 44 65 6C 65 74 .ELSIF NOT Delet
000170: 65 20 54 48 45 4E 20 52 69 67 68 74 20 45 4E 44 e THEN Right END
000180: 3B 0D 0A 09 09 63 68 3A 3D 47 65 74 43 75 72 72 ;....ch:=GetCurr
000190: 65 6E 74 43 68 61 72 28 43 75 72 46 69 6C 65 50 entChar(CurFileP
0001A0: 74 72 5E 29 3B 0D 0A 09 09 55 4E 54 49 4C 20 20 tr^);....UNTIL
0001B0: 28 62 31 3C 3E 41 6C 70 68 61 4E 75 6D 28 63 68 (b1<>AlphaNum(ch
0001C0: 29 29 20 4F 52 20 46 69 6C 65 4C 69 6D 69 74 20 )) OR FileLimit
0001D0: 4F 52 20 28 63 68 3D 45 4F 46 29 3B 0D 0A 09 49 OR (ch=EOF);...I
0001E0: 46 20 42 61 63 6B 77 61 72 64 20 41 4E 44 20 4E F Backward AND N
0001F0: 4F 54 20 46 69 6C 65 4C 69 6D 69 74 20 54 48 45 OT FileLimit THE
Size : 512 (Real : 512)
000000: 4E 44 20 28 63 68 3C 3E 54 41 42 29 20 54 48 45 ND (ch<>TAB) THE
000010: 4E 0D 0A 09 09 09 44 65 6C 43 68 61 72 73 28 43 N.....DelChars(C
000020: 75 72 46 69 6C 65 50 74 72 5E 2C 31 29 3B 0D 0A urFilePtr^,1);..
000030: 09 09 09 43 48 31 5B 30 5D 3A 3D 63 68 3B 0D 0A ...CH1[0]:=ch;..
000040: 09 09 09 49 6E 73 43 68 61 72 73 28 43 75 72 46 ...InsChars(CurF
000050: 69 6C 65 50 74 72 5E 2C 43 48 31 2C 31 29 3B 0D ilePtr^,CH1,1);.
000060: 0A 09 09 09 62 3A 3D 42 61 63 6B 4F 6E 65 43 68 ....b:=BackOneCh
000070: 61 72 28 43 75 72 46 69 6C 65 50 74 72 5E 29 3B ar(CurFilePtr^);
000080: 0D 0A 09 09 09 57 72 69 74 65 28 63 68 29 3B 0D .....Write(ch);.
000090: 0A 09 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ....ResetPos;...
0000A0: 09 09 52 69 67 68 74 3B 0D 0A 09 09 09 55 70 64 ..Right;.....Upd
0000B0: 61 74 65 64 5B 43 75 72 72 65 6E 74 46 69 6C 65 ated[CurrentFile
0000C0: 5D 3A 3D 54 52 55 45 3B 0D 0A 09 09 45 4C 53 45 ]:=TRUE;....ELSE
0000D0: 0D 0A 09 09 09 44 65 6C 4F 6E 65 43 68 61 72 3B .....DelOneChar;
0000E0: 0D 0A 09 09 09 49 6E 73 4F 6E 65 43 68 61 72 28 .....InsOneChar(
0000F0: 63 68 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 ch);.....END;...
000100: 45 4C 53 45 0D 0A 09 09 49 6E 73 4F 6E 65 43 68 ELSE....InsOneCh
000110: 61 72 28 63 68 29 3B 0D 0A 09 09 45 4E 44 3B 0D ar(ch);....END;.
000120: 0A 09 45 4E 44 20 4F 76 65 72 57 72 69 74 65 3B ..END OverWrite;
000130: 0D 0A 50 52 4F 43 45 44 55 52 45 20 55 70 3B 0D ..PROCEDURE Up;.
000140: 0A 09 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 54 ....BEGIN...IF T
000150: 68 69 73 79 3C 3D 53 74 61 72 74 6F 66 57 69 6E hisy<=StartofWin
000160: 64 6F 77 20 54 48 45 4E 0D 0A 09 09 53 63 72 6F dow THEN....Scro
000170: 6C 6C 54 65 78 74 55 70 3B 0D 0A 09 09 45 4E 44 llTextUp;....END
000180: 3B 0D 0A 09 4C 69 6E 65 4D 6F 76 65 28 2D 31 29 ;...LineMove(-1)
000190: 3B 0D 0A 09 46 69 6C 65 4C 69 6D 69 74 3A 3D 6C ;...FileLimit:=l
0001A0: 69 6E 65 73 6D 6F 76 65 64 3D 30 3B 0D 0A 09 49 inesmoved=0;...I
0001B0: 46 20 28 6C 69 6E 65 73 6D 6F 76 65 64 3C 3E 30 F (linesmoved<>0
0001C0: 29 20 41 4E 44 20 28 54 68 69 73 79 3E 53 74 61 ) AND (Thisy>Sta
0001D0: 72 74 6F 66 57 69 6E 64 6F 77 29 20 41 4E 44 20 rtofWindow) AND
0001E0: 4E 4F 54 20 52 65 44 72 61 77 6E 20 54 48 45 4E NOT ReDrawn THEN
0001F0: 20 0D 0A 09 09 44 45 43 28 54 68 69 73 79 29 3B ....DEC(Thisy);
Size : 512 (Real : 512)
000000: 4E 6F 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 42 45 No:INTEGER);..BE
000010: 47 49 4E 0D 0A 09 46 4F 52 20 69 3A 3D 57 69 6E GIN...FOR i:=Win
000020: 64 6F 77 4E 6F 2B 31 20 54 4F 20 49 4E 54 45 47 dowNo+1 TO INTEG
000030: 45 52 28 57 69 6E 64 6F 77 73 29 20 44 4F 0D 0A ER(Windows) DO..
000040: 09 09 4D 6F 76 65 57 69 6E 64 6F 77 28 69 2C 69 ..MoveWindow(i,i
000050: 2D 31 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 44 -1);....END;...D
000060: 45 43 28 57 69 6E 64 6F 77 73 29 3B 0D 0A 09 43 EC(Windows);...C
000070: 75 72 72 65 6E 74 57 69 6E 64 6F 77 3A 3D 30 3B urrentWindow:=0;
000080: 0D 0A 09 45 4E 44 20 45 6C 69 64 65 57 69 6E 64 ...END ElideWind
000090: 6F 77 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D ow;..PROCEDURE M
0000A0: 61 6B 65 57 69 6E 64 6F 77 3B 0D 0A 42 45 47 49 akeWindow;..BEGI
0000B0: 4E 0D 0A 09 49 4E 43 28 57 69 6E 64 6F 77 73 29 N...INC(Windows)
0000C0: 3B 0D 0A 09 4D 6F 76 65 57 69 6E 64 6F 77 28 43 ;...MoveWindow(C
0000D0: 75 72 72 65 6E 74 57 69 6E 64 6F 77 2C 57 69 6E urrentWindow,Win
0000E0: 64 6F 77 73 29 3B 0D 0A 09 45 4E 44 20 4D 61 6B dows);...END Mak
0000F0: 65 57 69 6E 64 6F 77 3B 0D 0A 50 52 4F 43 45 44 eWindow;..PROCED
000100: 55 52 45 20 53 65 61 72 63 68 28 52 65 70 6C 61 URE Search(Repla
000110: 63 65 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 ce:ARRAY OF CHAR
000120: 3B 52 4C 65 6E 3A 49 4E 54 45 47 45 52 3B 4C 65 ;RLen:INTEGER;Le
000130: 6E 3A 43 41 52 44 49 4E 41 4C 29 3A 42 4F 4F 4C n:CARDINAL):BOOL
000140: 45 41 4E 3B 0D 0A 0D 0A 28 2A 09 73 65 61 72 63 EAN;....(*.searc
000150: 68 20 66 6F 72 20 73 74 72 69 6E 67 20 61 6E 64 h for string and
000160: 20 72 65 70 6C 61 63 65 20 69 66 20 66 6F 75 6E replace if foun
000170: 64 2A 29 0D 0A 56 41 52 09 62 3A 42 4F 4F 4C 45 d*)..VAR.b:BOOLE
000180: 41 4E 3B 0D 0A 09 46 6F 75 6E 64 3A 42 4F 4F 4C AN;...Found:BOOL
000190: 45 41 4E 3B 0D 0A 09 69 3A 43 41 52 44 49 4E 41 EAN;...i:CARDINA
0001A0: 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 62 3A 3D 4C L;..BEGIN...b:=L
0001B0: 65 6E 3E 31 32 38 3B 0D 0A 09 49 46 20 62 20 54 en>128;...IF b T
0001C0: 48 45 4E 20 4C 65 6E 3A 3D 4C 65 6E 2D 31 32 38 HEN Len:=Len-128
0001D0: 20 45 4E 44 3B 0D 0A 09 46 6F 75 6E 64 3A 3D 46 END;...Found:=F
0001E0: 69 6E 64 53 74 72 69 6E 67 28 43 75 72 46 69 6C indString(CurFil
0001F0: 65 50 74 72 5E 2C 62 29 3B 0D 0A 09 49 46 20 46 ePtr^,b);...IF F
Size : 512 (Real : 512)
000000: 0D 0A 09 09 52 65 73 65 74 50 6F 73 3B 0D 0A 09 ....ResetPos;...
000010: 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 55 70 3B 0D .END;...END Up;.
000020: 0A 50 52 4F 43 45 44 55 52 45 20 55 70 53 63 72 .PROCEDURE UpScr
000030: 65 65 6E 3B 0D 0A 42 45 47 49 4E 0D 0A 09 4C 69 een;..BEGIN...Li
000040: 6E 65 4D 6F 76 65 28 31 2D 49 4E 54 45 47 45 52 neMove(1-INTEGER
000050: 28 4C 69 6E 65 73 50 65 72 57 69 6E 64 6F 77 29 (LinesPerWindow)
000060: 29 3B 0D 0A 09 45 4E 44 20 55 70 53 63 72 65 65 );...END UpScree
000070: 6E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F n;..PROCEDURE Do
000080: 77 6E 53 63 72 65 65 6E 3B 0D 0A 42 45 47 49 4E wnScreen;..BEGIN
000090: 0D 0A 09 4C 69 6E 65 4D 6F 76 65 28 4C 69 6E 65 ...LineMove(Line
0000A0: 73 50 65 72 57 69 6E 64 6F 77 2D 31 29 3B 0D 0A sPerWindow-1);..
0000B0: 09 45 4E 44 20 44 6F 77 6E 53 63 72 65 65 6E 3B .END DownScreen;
0000C0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 54 6F 70 3B ..PROCEDURE Top;
0000D0: 0D 0A 42 45 47 49 4E 0D 0A 09 4C 69 6E 65 50 6F ..BEGIN...LinePo
0000E0: 73 3A 3D 30 3B 0D 0A 09 4C 69 6E 65 4D 6F 76 65 s:=0;...LineMove
0000F0: 28 2D 31 36 37 33 36 29 3B 0D 0A 09 45 4E 44 20 (-16736);...END
000100: 54 6F 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 Top;..PROCEDURE
000110: 42 6F 74 74 6F 6D 3B 0D 0A 42 45 47 49 4E 0D 0A Bottom;..BEGIN..
000120: 09 4C 69 6E 65 50 6F 73 3A 3D 39 39 39 3B 0D 0A .LinePos:=999;..
000130: 09 4C 69 6E 65 4D 6F 76 65 28 31 36 37 33 36 29 .LineMove(16736)
000140: 3B 0D 0A 09 45 4E 44 20 42 6F 74 74 6F 6D 3B 0D ;...END Bottom;.
000150: 0A 50 52 4F 43 45 44 55 52 45 20 46 61 72 4C 65 .PROCEDURE FarLe
000160: 66 74 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 ft;..BEGIN...IF
000170: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
000180: 6E 3E 30 20 54 48 45 4E 20 0D 0A 09 09 43 68 61 n>0 THEN ....Cha
000190: 6E 67 65 4D 61 72 67 69 6E 28 2D 49 4E 54 45 47 ngeMargin(-INTEG
0001A0: 45 52 28 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 ER(CurrentLeftMa
0001B0: 72 67 69 6E 29 29 0D 0A 09 09 45 4E 44 3B 0D 0A rgin))....END;..
0001C0: 09 53 65 74 4C 69 6E 65 50 6F 73 28 30 29 3B 0D .SetLinePos(0);.
0001D0: 0A 09 4C 69 6E 65 50 6F 73 3A 3D 30 3B 0D 0A 09 ..LinePos:=0;...
0001E0: 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 09 45 4E 44 ChangePos;...END
0001F0: 20 46 61 72 4C 65 66 74 3B 0D 0A 50 52 4F 43 45 FarLeft;..PROCE
Size : 512 (Real : 512)
000000: 6F 75 6E 64 20 41 4E 44 20 28 52 4C 65 6E 3E 3D ound AND (RLen>=
000010: 30 29 20 54 48 45 4E 0D 0A 09 09 4D 61 72 6B 41 0) THEN....MarkA
000020: 73 55 70 64 61 74 65 64 3B 0D 0A 09 09 49 46 20 sUpdated;....IF
000030: 62 20 54 48 45 4E 0D 0A 09 09 09 46 4F 52 20 69 b THEN.....FOR i
000040: 3A 3D 32 20 54 4F 20 4C 65 6E 20 44 4F 0D 0A 09 :=2 TO Len DO...
000050: 09 09 09 62 3A 3D 42 61 63 6B 4F 6E 65 43 68 61 ...b:=BackOneCha
000060: 72 28 43 75 72 46 69 6C 65 50 74 72 5E 29 3B 0D r(CurFilePtr^);.
000070: 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E .....END;.....EN
000080: 44 3B 0D 0A 09 09 44 65 6C 43 68 61 72 73 28 43 D;....DelChars(C
000090: 75 72 46 69 6C 65 50 74 72 5E 2C 4C 65 6E 29 20 urFilePtr^,Len)
0000A0: 0D 0A 09 09 49 6E 73 43 68 61 72 73 28 43 75 72 ....InsChars(Cur
0000B0: 46 69 6C 65 50 74 72 5E 2C 52 65 70 6C 61 63 65 FilePtr^,Replace
0000C0: 2C 52 4C 65 6E 29 3B 0D 0A 09 09 62 3A 3D 42 61 ,RLen);....b:=Ba
0000D0: 63 6B 4F 6E 65 43 68 61 72 28 43 75 72 46 69 6C ckOneChar(CurFil
0000E0: 65 50 74 72 5E 29 3B 0D 0A 09 09 45 4E 44 3B 0D ePtr^);....END;.
0000F0: 0A 09 52 65 44 69 73 70 6C 61 79 3B 0D 0A 09 52 ..ReDisplay;...R
000100: 45 54 55 52 4E 20 46 6F 75 6E 64 3B 0D 0A 09 45 ETURN Found;...E
000110: 4E 44 20 53 65 61 72 63 68 3B 0D 0A 50 52 4F 43 ND Search;..PROC
000120: 45 44 55 52 45 20 47 6F 54 6F 4C 61 62 65 6C 28 EDURE GoToLabel(
000130: 63 68 3A 43 48 41 52 29 3B 0D 0A 42 45 47 49 4E ch:CHAR);..BEGIN
000140: 0D 0A 09 49 46 20 4C 61 62 65 6C 4F 70 28 43 75 ...IF LabelOp(Cu
000150: 72 46 69 6C 65 50 74 72 5E 2C 46 41 4C 53 45 2C rFilePtr^,FALSE,
000160: 63 68 29 20 54 48 45 4E 0D 0A 09 09 52 65 44 69 ch) THEN....ReDi
000170: 73 70 6C 61 79 3B 0D 0A 09 45 4C 53 45 0D 0A 09 splay;...ELSE...
000180: 09 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 20 .ErrorMessage('
000190: 4C 61 62 65 6C 20 6E 6F 74 20 64 65 66 69 6E 65 Label not define
0001A0: 64 27 2C 27 20 27 29 3B 0D 0A 09 09 52 65 73 65 d',' ');....Rese
0001B0: 74 50 6F 73 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 tPos;....END;...
0001C0: 45 4E 44 20 47 6F 54 6F 4C 61 62 65 6C 3B 09 09 END GoToLabel;..
0001D0: 0D 0A 42 45 47 49 4E 0D 0A 09 43 75 72 72 65 6E ..BEGIN...Curren
0001E0: 74 57 69 6E 64 6F 77 3A 3D 30 3B 0D 0A 09 43 75 tWindow:=0;...Cu
0001F0: 72 72 65 6E 74 46 69 6C 65 3A 3D 30 3B 0D 0A 09 rrentFile:=0;...
Size : 512 (Real : 512)
000000: 44 55 52 45 20 46 61 72 52 69 67 68 74 3B 0D 0A DURE FarRight;..
000010: 42 45 47 49 4E 0D 0A 09 53 65 74 4C 69 6E 65 50 BEGIN...SetLineP
000020: 6F 73 28 30 29 3B 0D 0A 09 4C 69 6E 65 50 6F 73 os(0);...LinePos
000030: 3A 3D 4C 69 6E 65 4C 65 6E 3B 0D 0A 09 43 68 61 :=LineLen;...Cha
000040: 6E 67 65 50 6F 73 3B 0D 0A 09 45 4E 44 20 46 61 ngePos;...END Fa
000050: 72 52 69 67 68 74 3B 0D 0A 50 52 4F 43 45 44 55 rRight;..PROCEDU
000060: 52 45 20 43 68 61 6E 67 65 57 69 6E 64 6F 77 28 RE ChangeWindow(
000070: 4E 6F 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 56 41 No:INTEGER);..VA
000080: 52 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 R.b:BOOLEAN;..BE
000090: 47 49 4E 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 GIN...IF Current
0000A0: 57 69 6E 64 6F 77 3C 3E 30 20 54 48 45 4E 0D 0A Window<>0 THEN..
0000B0: 09 09 63 75 72 78 5B 43 75 72 72 65 6E 74 57 69 ..curx[CurrentWi
0000C0: 6E 64 6F 77 5D 3A 3D 54 68 69 73 78 3B 0D 0A 09 ndow]:=Thisx;...
0000D0: 09 63 75 72 79 5B 43 75 72 72 65 6E 74 57 69 6E .cury[CurrentWin
0000E0: 64 6F 77 5D 3A 3D 54 68 69 73 79 3B 0D 0A 09 09 dow]:=Thisy;....
0000F0: 62 3A 3D 4C 61 62 65 6C 4F 70 28 43 75 72 46 69 b:=LabelOp(CurFi
000100: 6C 65 50 74 72 5E 2C 54 52 55 45 2C 43 48 52 28 lePtr^,TRUE,CHR(
000110: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 29 3B CurrentWindow));
000120: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 43 75 72 72 65 ....END;...Curre
000130: 6E 74 57 69 6E 64 6F 77 3A 3D 4E 6F 3B 0D 0A 09 ntWindow:=No;...
000140: 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 57 69 6E ...IF CurrentWin
000150: 64 6F 77 3E 57 69 6E 64 6F 77 73 20 54 48 45 4E dow>Windows THEN
000160: 20 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 3A 3D CurrentWindow:=
000170: 57 69 6E 64 6F 77 73 20 45 4E 44 3B 0D 0A 09 49 Windows END;...I
000180: 46 20 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 3C F CurrentWindow<
000190: 3E 30 20 54 48 45 4E 0D 0A 09 09 28 2A 73 65 74 >0 THEN....(*set
0001A0: 20 75 70 20 61 20 70 6F 69 6E 74 65 72 20 74 6F up a pointer to
0001B0: 20 74 68 65 20 63 75 72 72 65 6E 74 20 66 69 6C the current fil
0001C0: 65 20 74 6F 20 73 61 76 65 20 69 6E 64 65 78 20 e to save index
0001D0: 63 61 6C 63 75 6C 61 74 69 6F 6E 0D 0A 09 09 20 calculation....
0001E0: 20 65 76 65 72 79 20 74 69 6D 65 20 74 68 65 20 every time the
0001F0: 66 69 6C 65 20 69 73 20 72 65 66 65 72 65 6E 63 file is referenc
Size : 512 (Real : 512)
000000: 43 75 72 46 69 6C 65 50 74 72 3A 3D 50 45 64 69 CurFilePtr:=PEdi
000010: 74 46 69 6C 65 28 41 44 52 28 46 69 6C 65 73 5B tFile(ADR(Files[
000020: 31 5D 29 29 3B 0D 0A 09 45 4E 44 20 45 64 69 74 1]));...END Edit
000030: 43 6F 6E 74 72 6F 6C 2E 0D 0A 0D 0A 1A 0D 0A 09 Control.........
000040: 45 4E 44 20 47 6F 54 6F 4C 61 62 65 6C 3B 09 09 END GoToLabel;..
000050: 0D 0A 42 45 47 49 4E 0D 0A 09 43 75 72 72 65 6E ..BEGIN...Curren
000060: 74 57 69 6E 64 6F 77 3A 3D 30 3B 0D 0A 09 43 75 tWindow:=0;...Cu
000070: 72 72 65 6E 74 46 69 6C 65 3A 3D 30 3B 0D 0A 09 rrentFile:=0;...
000080: 20 28 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 (CurrentLeftMar
000090: 67 69 6E 3C 43 41 52 44 49 4E 41 4C 28 2D 49 6E gin<CARDINAL(-In
0000A0: 63 29 29 20 54 48 45 4E 20 0D 0A 09 09 49 6E 63 c)) THEN ....Inc
0000B0: 3A 3D 2D 49 4E 54 45 47 45 52 28 43 75 72 72 65 :=-INTEGER(Curre
0000C0: 6E 74 4C 65 66 74 4D 61 72 67 69 6E 29 20 0D 0A ntLeftMargin) ..
0000D0: 09 09 45 4E 44 3B 0D 0A 09 49 46 20 28 49 6E 63 ..END;...IF (Inc
0000E0: 3E 30 29 20 41 4E 44 20 28 54 68 69 73 78 3C 43 >0) AND (Thisx<C
0000F0: 41 52 44 49 4E 41 4C 28 49 6E 63 29 29 20 54 48 ARDINAL(Inc)) TH
000100: 45 4E 20 49 6E 63 3A 3D 54 68 69 73 78 20 45 4E EN Inc:=Thisx EN
000110: 44 3B 0D 0A 09 43 75 72 72 65 6E 74 4C 65 66 74 D;...CurrentLeft
000120: 4D 61 72 67 69 6E 3A 3D 49 4E 54 45 47 45 52 28 Margin:=INTEGER(
000130: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
000140: 6E 29 2B 49 6E 63 3B 0D 0A 09 54 68 69 73 78 3A n)+Inc;...Thisx:
000150: 3D 49 4E 54 45 47 45 52 28 54 68 69 73 78 29 2D =INTEGER(Thisx)-
000160: 49 6E 63 3B 0D 0A 09 63 75 72 78 5B 43 75 72 72 Inc;...curx[Curr
000170: 65 6E 74 57 69 6E 64 6F 77 5D 3A 3D 54 68 69 73 entWindow]:=This
000180: 78 3B 0D 0A 09 4C 65 66 74 4D 61 72 67 69 6E 5B x;...LeftMargin[
000190: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 5D 3A 3D CurrentWindow]:=
0001A0: 43 75 72 72 65 6E 74 4C 65 66 74 4D 61 72 67 69 CurrentLeftMargi
0001B0: 6E 3B 0D 0A 09 52 65 44 69 73 70 6C 61 79 57 69 n;...ReDisplayWi
0001C0: 6E 64 6F 77 3B 0D 0A 09 52 65 73 65 74 50 6F 73 ndow;...ResetPos
0001D0: 3B 0D 0A 09 45 4E 44 20 43 68 61 6E 67 65 4D 61 ;...END ChangeMa
0001E0: 72 67 69 6E 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 rgin;....PROCEDU
0001F0: 52 45 20 43 68 61 6E 67 65 50 6F 73 3B 0D 0A 56 RE ChangePos;..V
Size : 512 (Real : 512)
000000: 65 64 2A 29 0D 0A 09 09 43 75 72 72 65 6E 74 46 ed*)....CurrentF
000010: 69 6C 65 3A 3D 57 69 6E 64 6F 77 46 69 6C 65 5B ile:=WindowFile[
000020: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 5D 3B 0D CurrentWindow];.
000030: 0A 09 09 43 75 72 46 69 6C 65 50 74 72 3A 3D 50 ...CurFilePtr:=P
000040: 45 64 69 74 46 69 6C 65 28 41 44 52 28 46 69 6C EditFile(ADR(Fil
000050: 65 73 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 29 es[CurrentFile])
000060: 29 3B 0D 0A 09 09 62 3A 3D 4C 61 62 65 6C 4F 70 );....b:=LabelOp
000070: 28 43 75 72 46 69 6C 65 50 74 72 5E 2C 46 41 4C (CurFilePtr^,FAL
000080: 53 45 2C 43 48 52 28 43 75 72 72 65 6E 74 57 69 SE,CHR(CurrentWi
000090: 6E 64 6F 77 29 29 3B 0D 0A 09 09 54 68 69 73 78 ndow));....Thisx
0000A0: 3A 3D 63 75 72 78 5B 43 75 72 72 65 6E 74 57 69 :=curx[CurrentWi
0000B0: 6E 64 6F 77 5D 3B 0D 0A 09 09 54 68 69 73 79 3A ndow];....Thisy:
0000C0: 3D 63 75 72 79 5B 43 75 72 72 65 6E 74 57 69 6E =cury[CurrentWin
0000D0: 64 6F 77 5D 3B 0D 0A 09 09 43 75 72 72 65 6E 74 dow];....Current
0000E0: 4C 65 66 74 4D 61 72 67 69 6E 3A 3D 4C 65 66 74 LeftMargin:=Left
0000F0: 4D 61 72 67 69 6E 5B 43 75 72 72 65 6E 74 57 69 Margin[CurrentWi
000100: 6E 64 6F 77 5D 3B 0D 0A 09 09 53 65 74 4C 69 6E ndow];....SetLin
000110: 65 50 6F 73 28 30 29 3B 0D 0A 09 09 43 68 61 6E ePos(0);....Chan
000120: 67 65 50 6F 73 3B 0D 0A 09 09 69 3A 3D 28 53 63 gePos;....i:=(Sc
000130: 72 65 65 6E 44 65 70 74 68 2D 57 69 6E 64 6F 77 reenDepth-Window
000140: 73 29 20 44 49 56 20 57 69 6E 64 6F 77 73 3B 0D s) DIV Windows;.
000150: 0A 09 09 53 74 61 72 74 6F 66 57 69 6E 64 6F 77 ...StartofWindow
000160: 3A 3D 43 41 52 44 49 4E 41 4C 28 69 2B 31 29 2A :=CARDINAL(i+1)*
000170: 28 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 2D 31 (CurrentWindow-1
000180: 29 3B 0D 0A 09 45 4C 53 45 20 0D 0A 09 09 53 74 );...ELSE ....St
000190: 61 72 74 6F 66 57 69 6E 64 6F 77 3A 3D 30 3B 0D artofWindow:=0;.
0001A0: 0A 09 09 69 3A 3D 30 20 0D 0A 09 09 45 4E 44 3B ...i:=0 ....END;
0001B0: 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 57 69 6E ...IF CurrentWin
0001C0: 64 6F 77 3C 57 69 6E 64 6F 77 73 20 54 48 45 4E dow<Windows THEN
0001D0: 0D 0A 09 09 45 6E 64 6F 66 57 69 6E 64 6F 77 3A ....EndofWindow:
0001E0: 3D 53 74 61 72 74 6F 66 57 69 6E 64 6F 77 2B 43 =StartofWindow+C
0001F0: 41 52 44 49 4E 41 4C 28 69 2D 31 29 3B 0D 0A 09 ARDINAL(i-1);...
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 4D 61 6B 65 45 64 69 74 73 3B ODULE MakeEdits;
000020: 0D 0A 0D 0A 0D 0A 28 2A 09 52 6F 75 74 69 6E 65 ......(*.Routine
000030: 73 20 74 6F 20 65 64 69 74 20 61 20 66 69 6C 65 s to edit a file
000040: 0D 0A 0D 0A 09 28 69 2E 65 2E 2C 20 61 63 74 75 .....(i.e., actu
000050: 61 6C 6C 79 20 6D 61 6B 65 20 63 68 61 6E 67 65 ally make change
000060: 73 20 74 6F 20 74 68 65 20 66 69 6C 65 29 0D 0A s to the file)..
000070: 0D 0A 09 44 20 4D 6F 6F 72 65 20 31 31 20 4A 61 ...D Moore 11 Ja
000080: 6E 20 38 35 2A 29 0D 0A 46 52 4F 4D 20 09 46 69 n 85*)..FROM .Fi
000090: 6C 65 73 20 49 4D 50 4F 52 54 20 46 49 4C 45 2C les IMPORT FILE,
0000A0: 4C 6F 6F 6B 75 70 2C 43 72 65 61 74 65 2C 53 65 Lookup,Create,Se
0000B0: 71 52 65 61 64 42 6C 6F 63 6B 2C 53 65 71 57 72 qReadBlock,SeqWr
0000C0: 69 74 65 42 6C 6F 63 6B 2C 0D 0A 09 4D 61 6B 65 iteBlock,...Make
0000D0: 42 41 4B 2C 43 6C 6F 73 65 3B 0D 0A 46 52 4F 4D BAK,Close;..FROM
0000E0: 09 53 74 6F 72 61 67 65 20 49 4D 50 4F 52 54 20 .Storage IMPORT
0000F0: 41 4C 4C 4F 43 41 54 45 2C 44 45 41 4C 4C 4F 43 ALLOCATE,DEALLOC
000100: 41 54 45 2C 46 72 65 65 53 70 61 63 65 3B 0D 0A ATE,FreeSpace;..
000110: 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D 50 4F FROM.SYSTEM IMPO
000120: 52 54 20 41 44 52 2C 42 59 54 45 3B 0D 0A 46 52 RT ADR,BYTE;..FR
000130: 4F 4D 20 20 09 46 61 73 74 4D 6F 76 65 20 49 4D OM .FastMove IM
000140: 50 4F 52 54 20 4D 6F 76 65 75 70 2C 4D 6F 76 65 PORT Moveup,Move
000150: 64 6F 77 6E 2C 53 65 61 72 63 68 75 70 2C 53 65 down,Searchup,Se
000160: 61 72 63 68 64 6F 77 6E 3B 0D 0A 46 52 4F 4D 09 archdown;..FROM.
000170: 53 65 74 55 70 43 61 6C 6C 20 49 4D 50 4F 52 54 SetUpCall IMPORT
000180: 20 4D 61 6B 65 43 61 6C 6C 3B 0D 0A 49 4D 50 4F MakeCall;..IMPO
000190: 52 54 09 45 64 69 74 53 74 61 74 75 73 3B 0D 0A RT.EditStatus;..
0001A0: 43 4F 4E 53 54 09 54 65 78 74 4C 65 6E 3D 31 34 CONST.TextLen=14
0001B0: 30 3B 09 28 2A 20 6D 75 73 74 20 65 78 63 65 65 0;.(* must excee
0001C0: 64 20 61 20 62 6C 6F 63 6B 20 6F 6E 20 74 68 65 d a block on the
0001D0: 20 64 69 73 63 0D 0A 09 09 09 20 20 20 72 65 6D disc..... rem
0001E0: 61 69 6E 69 6E 67 20 73 70 61 63 65 20 69 73 20 aining space is
0001F0: 66 6F 72 20 70 61 64 64 69 6E 67 2A 29 0D 0A 09 for padding*)...
Size : 512 (Real : 512)
000000: 45 4C 53 45 0D 0A 09 09 45 6E 64 6F 66 57 69 6E ELSE....EndofWin
000010: 64 6F 77 3A 3D 53 63 72 65 65 6E 44 65 70 74 68 dow:=ScreenDepth
000020: 2D 32 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 45 -2....END;.....E
000030: 4E 44 20 43 68 61 6E 67 65 57 69 6E 64 6F 77 3B ND ChangeWindow;
000040: 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 73 65 ..PROCEDURE Rese
000050: 74 53 63 72 65 65 6E 50 6F 73 3B 0D 0A 42 45 47 tScreenPos;..BEG
000060: 49 4E 0D 0A 09 49 46 20 43 75 72 72 65 6E 74 57 IN...IF CurrentW
000070: 69 6E 64 6F 77 3C 3E 30 20 54 48 45 4E 0D 0A 09 indow<>0 THEN...
000080: 09 54 68 69 73 78 3A 3D 63 75 72 78 5B 43 75 72 .Thisx:=curx[Cur
000090: 72 65 6E 74 57 69 6E 64 6F 77 5D 3B 0D 0A 09 09 rentWindow];....
0000A0: 54 68 69 73 79 3A 3D 63 75 72 79 5B 43 75 72 72 Thisy:=cury[Curr
0000B0: 65 6E 74 57 69 6E 64 6F 77 5D 3B 0D 0A 09 09 52 entWindow];....R
0000C0: 65 73 65 74 50 6F 73 3B 0D 0A 09 09 45 4E 44 3B esetPos;....END;
0000D0: 0D 0A 09 45 4E 44 20 52 65 73 65 74 53 63 72 65 ...END ResetScre
0000E0: 65 6E 50 6F 73 3B 0D 0A 50 52 4F 43 45 44 55 52 enPos;..PROCEDUR
0000F0: 45 20 4D 6F 76 65 57 69 6E 64 6F 77 28 66 72 6F E MoveWindow(fro
000100: 6D 2C 74 6F 3A 43 41 52 44 49 4E 41 4C 29 3B 0D m,to:CARDINAL);.
000110: 0A 56 41 52 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D .VAR.b:BOOLEAN;.
000120: 0A 42 45 47 49 4E 0D 0A 09 63 75 72 78 5B 74 6F .BEGIN...curx[to
000130: 5D 3A 3D 63 75 72 78 5B 66 72 6F 6D 5D 3B 0D 0A ]:=curx[from];..
000140: 09 63 75 72 79 5B 74 6F 5D 3A 3D 63 75 72 79 5B .cury[to]:=cury[
000150: 66 72 6F 6D 5D 3B 0D 0A 09 4C 65 66 74 4D 61 72 from];...LeftMar
000160: 67 69 6E 5B 74 6F 5D 3A 3D 4C 65 66 74 4D 61 72 gin[to]:=LeftMar
000170: 67 69 6E 5B 66 72 6F 6D 5D 3B 0D 0A 09 57 69 6E gin[from];...Win
000180: 64 6F 77 46 69 6C 65 5B 74 6F 5D 3A 3D 57 69 6E dowFile[to]:=Win
000190: 64 6F 77 46 69 6C 65 5B 66 72 6F 6D 5D 3B 0D 0A dowFile[from];..
0001A0: 09 62 3A 3D 4C 61 62 65 6C 4F 70 28 46 69 6C 65 .b:=LabelOp(File
0001B0: 73 5B 57 69 6E 64 6F 77 46 69 6C 65 5B 74 6F 5D s[WindowFile[to]
0001C0: 5D 2C 54 52 55 45 2C 43 48 52 28 74 6F 29 29 3B ],TRUE,CHR(to));
0001D0: 0D 0A 09 45 4E 44 20 4D 6F 76 65 57 69 6E 64 6F ...END MoveWindo
0001E0: 77 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 45 6C w;..PROCEDURE El
0001F0: 69 64 65 57 69 6E 64 6F 77 28 57 69 6E 64 6F 77 ideWindow(Window
Size : 512 (Real : 512)
000000: 42 6C 6F 63 6B 53 69 7A 65 3D 31 32 38 3B 09 28 BlockSize=128;.(
000010: 2A 20 63 68 61 72 61 63 74 65 72 73 20 69 6E 20 * characters in
000020: 61 20 64 69 73 63 20 62 6C 6F 63 6B 2A 29 0D 0A a disc block*)..
000030: 09 48 65 61 64 52 6F 6F 6D 3D 35 31 32 3B 09 28 .HeadRoom=512;.(
000040: 2A 6D 69 6E 69 6D 75 6D 20 68 65 61 64 20 72 6F *minimum head ro
000050: 6F 6D 20 74 6F 20 6C 65 61 76 65 20 62 65 74 77 om to leave betw
000060: 65 65 6E 20 73 74 61 63 6B 20 61 6E 64 20 68 65 een stack and he
000070: 61 70 2A 29 0D 0A 09 43 52 3D 30 64 78 3B 0D 0A ap*)...CR=0dx;..
000080: 09 4C 46 3D 30 61 78 3B 0D 0A 09 46 46 3D 30 63 .LF=0ax;...FF=0c
000090: 78 3B 0D 0A 09 45 4F 46 3D 31 61 78 3B 0D 0A 54 x;...EOF=1ax;..T
0000A0: 59 50 45 09 50 54 65 78 74 3D 50 4F 49 4E 54 45 YPE.PText=POINTE
0000B0: 52 20 54 4F 20 54 65 78 74 3B 0D 0A 09 50 50 6F R TO Text;...PPo
0000C0: 73 69 74 69 6F 6E 3D 50 4F 49 4E 54 45 52 20 54 sition=POINTER T
0000D0: 4F 20 50 6F 73 69 74 69 6F 6E 3B 0D 0A 09 54 65 O Position;...Te
0000E0: 78 74 3D 52 45 43 4F 52 44 0D 0A 09 09 42 6C 6F xt=RECORD....Blo
0000F0: 63 6B 4C 65 6E 3A 42 59 54 45 3B 0D 0A 09 09 43 ckLen:BYTE;....C
000100: 68 61 72 73 3A 41 52 52 41 59 5B 30 2E 2E 54 65 hars:ARRAY[0..Te
000110: 78 74 4C 65 6E 2D 31 5D 20 4F 46 20 43 48 41 52 xtLen-1] OF CHAR
000120: 3B 0D 0A 09 09 4E 65 78 74 3A 50 54 65 78 74 3B ;....Next:PText;
000130: 09 09 28 2A 6E 65 78 74 20 62 6C 6F 63 6B 2A 29 ..(*next block*)
000140: 0D 0A 09 09 50 72 65 64 3A 50 54 65 78 74 3B 09 ....Pred:PText;.
000150: 09 28 2A 70 72 65 63 65 64 69 6E 67 20 62 6C 6F .(*preceding blo
000160: 63 6B 2A 29 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A ck*)....END;....
000170: 09 09 0D 0A 09 50 6F 73 69 74 69 6F 6E 3D 52 45 .....Position=RE
000180: 43 4F 52 44 0D 0A 09 09 42 6C 6F 63 6B 3A 50 54 CORD....Block:PT
000190: 65 78 74 3B 0D 0A 09 09 4F 66 66 73 65 74 3A 42 ext;....Offset:B
0001A0: 59 54 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 YTE;....END;...E
0001B0: 64 69 74 46 69 6C 65 3D 52 45 43 4F 52 44 0D 0A ditFile=RECORD..
0001C0: 09 09 66 3A 46 49 4C 45 3B 0D 0A 09 09 43 68 61 ..f:FILE;....Cha
0001D0: 69 6E 3A 50 54 65 78 74 3B 0D 0A 09 09 43 75 72 in:PText;....Cur
0001E0: 50 6F 73 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A 09 Pos:Position;...
0001F0: 09 4C 61 62 65 6C 73 3A 41 52 52 41 59 5B 30 2E .Labels:ARRAY[0.
Size : 512 (Real : 512)
000000: 0A 09 09 09 09 43 68 61 72 50 6F 73 3A 3D 30 3B .....CharPos:=0;
000010: 0D 0A 09 09 09 09 73 61 76 65 63 75 72 70 6F 73 ......savecurpos
000020: 28 66 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A (f);......END;..
000030: 09 09 09 45 58 49 54 0D 0A 09 09 45 4C 53 45 09 ...EXIT....ELSE.
000040: 0D 0A 09 09 0D 0A 09 09 09 57 48 49 4C 45 20 28 .........WHILE (
000050: 69 3E 30 29 20 41 4E 44 20 28 57 6F 72 6B 69 6E i>0) AND (Workin
000060: 67 5E 2E 43 68 61 72 73 5B 69 2D 31 5D 3D 45 4F g^.Chars[i-1]=EO
000070: 46 29 20 44 4F 0D 0A 09 09 09 09 44 45 43 28 69 F) DO......DEC(i
000080: 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 );......END;....
000090: 09 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 .IF (Working^.Ch
0000A0: 61 72 73 5B 69 2D 31 5D 3C 3E 30 61 78 29 20 41 ars[i-1]<>0ax) A
0000B0: 4E 44 20 28 69 3C 42 6C 6F 63 6B 53 69 7A 65 29 ND (i<BlockSize)
0000C0: 20 54 48 45 4E 0D 0A 09 09 09 09 49 4E 43 28 69 THEN......INC(i
0000D0: 29 3B 0D 0A 09 09 09 09 57 6F 72 6B 69 6E 67 5E );......Working^
0000E0: 2E 43 68 61 72 73 5B 69 2D 31 5D 3A 3D 45 4F 46 .Chars[i-1]:=EOF
0000F0: 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 ;......END;.....
000100: 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 Working^.BlockLe
000110: 6E 3A 3D 69 3B 0D 0A 09 09 09 49 46 20 43 68 61 n:=i;.....IF Cha
000120: 72 73 72 65 61 64 3C 3D 43 68 61 72 6E 6F 20 20 rsread<=Charno
000130: 54 48 45 4E 20 0D 0A 09 09 09 09 43 68 61 72 50 THEN ......CharP
000140: 6F 73 3A 3D 43 68 61 72 6E 6F 2D 43 68 61 72 73 os:=Charno-Chars
000150: 72 65 61 64 3B 0D 0A 09 09 09 09 73 61 76 65 63 read;......savec
000160: 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 70 urpos(f);......p
000170: 3A 3D 57 6F 72 6B 69 6E 67 3B 0D 0A 09 09 09 09 :=Working;......
000180: 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 IF (Working^.Cha
000190: 72 73 5B 43 68 61 72 50 6F 73 5D 3D 4C 46 29 20 rs[CharPos]=LF)
0001A0: 0D 0A 09 09 09 09 20 20 20 41 4E 44 20 42 61 63 ...... AND Bac
0001B0: 6B 75 70 28 29 20 54 48 45 4E 0D 0A 09 09 09 09 kup() THEN......
0001C0: 09 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D .savecurpos(f);.
0001D0: 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 09 ......END;......
0001E0: 57 6F 72 6B 69 6E 67 3A 3D 70 3B 0D 0A 09 09 09 Working:=p;.....
0001F0: 09 45 4E 44 3B 0D 0A 09 09 09 43 68 61 72 73 72 .END;.....Charsr
Size : 512 (Real : 512)
000000: 2E 32 34 5D 20 4F 46 20 50 6F 73 69 74 69 6F 6E .24] OF Position
000010: 3B 0D 0A 0D 0A 09 09 28 2A 6C 61 62 65 6C 73 20 ;......(*labels
000020: 30 20 74 6F 20 39 20 61 72 65 20 20 5E 6B 30 20 0 to 9 are ^k0
000030: 74 6F 20 5E 6B 39 0D 0A 09 09 20 20 20 31 30 20 to ^k9.... 10
000040: 69 73 20 5E 6B 42 0D 0A 09 09 20 20 20 31 31 20 is ^kB.... 11
000050: 69 73 20 5E 6B 6B 0D 0A 09 09 20 20 20 31 32 20 is ^kk.... 12
000060: 74 68 72 6F 75 67 68 20 31 34 20 61 72 65 20 74 through 14 are t
000070: 68 65 20 70 6F 73 69 74 69 6F 6E 73 20 69 6E 20 he positions in
000080: 74 68 65 20 77 69 6E 64 6F 77 73 0D 0A 09 09 20 the windows....
000090: 20 20 31 35 20 74 68 72 6F 75 67 68 20 32 34 20 15 through 24
0000A0: 61 72 65 20 65 72 72 6F 72 20 6D 61 72 6B 65 72 are error marker
0000B0: 73 2A 29 0D 0A 0D 0A 09 09 45 4E 44 3B 0D 0A 56 s*)......END;..V
0000C0: 41 52 09 44 6F 6E 65 3A 42 4F 4F 4C 45 41 4E 3B AR.Done:BOOLEAN;
0000D0: 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 ...reply:INTEGER
0000E0: 3B 09 0D 0A 0D 0A 09 28 2A 76 61 72 69 61 62 6C ;......(*variabl
0000F0: 65 73 20 75 73 65 64 20 66 6F 72 20 74 65 78 74 es used for text
000100: 20 70 6F 73 69 74 69 6F 6E 20 64 75 72 69 6E 67 position during
000110: 20 6D 6F 76 65 20 6F 70 65 72 61 74 69 6F 6E 73 move operations
000120: 20 65 74 63 2A 29 0D 0A 0D 0A 09 57 6F 72 6B 69 etc*).....Worki
000130: 6E 67 3A 50 54 65 78 74 3B 0D 0A 09 43 68 61 72 ng:PText;...Char
000140: 50 6F 73 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 63 Pos:INTEGER;...c
000150: 68 3A 43 48 41 52 3B 0D 0A 09 70 6F 73 3A 50 6F h:CHAR;...pos:Po
000160: 73 69 74 69 6F 6E 3B 0D 0A 09 70 6F 73 31 2C 70 sition;...pos1,p
000170: 6F 73 32 3A 50 50 6F 73 69 74 69 6F 6E 3B 0D 0A os2:PPosition;..
000180: 09 43 68 61 72 6E 6F 2C 43 68 61 72 73 72 65 61 .Charno,Charsrea
000190: 64 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 0D 0A 50 d:CARDINAL;....P
0001A0: 52 4F 43 45 44 55 52 45 20 4E 65 77 42 6C 6F 63 ROCEDURE NewBloc
0001B0: 6B 3B 0D 0A 42 45 47 49 4E 0D 0A 09 4E 45 57 28 k;..BEGIN...NEW(
0001C0: 57 6F 72 6B 69 6E 67 29 3B 0D 0A 09 57 6F 72 6B Working);...Work
0001D0: 69 6E 67 5E 2E 50 72 65 64 3A 3D 4E 49 4C 3B 0D ing^.Pred:=NIL;.
0001E0: 0A 09 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3A ..Working^.Next:
0001F0: 3D 4E 49 4C 3B 0D 0A 09 45 4E 44 20 4E 65 77 42 =NIL;...END NewB
Size : 512 (Real : 512)
000000: 65 61 64 3A 3D 43 68 61 72 73 72 65 61 64 2B 4F ead:=Charsread+O
000010: 52 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 RD(Working^.Bloc
000020: 6B 4C 65 6E 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D kLen);.....END;.
000030: 0A 09 09 70 3A 3D 57 6F 72 6B 69 6E 67 3B 0D 0A ...p:=Working;..
000040: 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B 31 ..reply:=reply+1
000050: 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A 72 65 61 64 ;....END; (*read
000060: 20 66 69 6C 65 20 6C 6F 6F 70 2A 29 0D 0A 09 43 file loop*)...C
000070: 6C 6F 73 65 28 66 2E 66 29 3B 0D 0A 09 45 4E 44 lose(f.f);...END
000080: 20 4F 70 65 6E 46 69 6C 65 3B 0D 0A 09 09 0D 0A OpenFile;......
000090: 50 52 4F 43 45 44 55 52 45 20 43 6C 6F 73 65 46 PROCEDURE CloseF
0000A0: 69 6C 65 28 56 41 52 20 66 3A 45 64 69 74 46 69 ile(VAR f:EditFi
0000B0: 6C 65 3B 56 41 52 20 72 65 70 6C 79 3A 49 4E 54 le;VAR reply:INT
0000C0: 45 47 45 52 29 3B 0D 0A 56 41 52 09 0D 0A 09 62 EGER);..VAR....b
0000D0: 3A 41 52 52 41 59 5B 30 2E 2E 42 6C 6F 63 6B 53 :ARRAY[0..BlockS
0000E0: 69 7A 65 2D 31 5D 20 4F 46 20 43 48 41 52 3B 0D ize-1] OF CHAR;.
0000F0: 0A 09 70 6F 73 3A 49 4E 54 45 47 45 52 3B 0D 0A ..pos:INTEGER;..
000100: 42 45 47 49 4E 0D 0A 09 4D 61 6B 65 42 41 4B 28 BEGIN...MakeBAK(
000110: 66 2E 66 2C 72 65 70 6C 79 29 3B 0D 0A 09 43 68 f.f,reply);...Ch
000120: 61 72 6E 6F 3A 3D 31 3B 0D 0A 09 49 46 20 72 65 arno:=1;...IF re
000130: 70 6C 79 3D 30 20 54 48 45 4E 20 0D 0A 09 09 57 ply=0 THEN ....W
000140: 6F 72 6B 69 6E 67 3A 3D 66 2E 43 68 61 69 6E 3B orking:=f.Chain;
000150: 0D 0A 09 09 70 6F 73 3A 3D 30 3B 0D 0A 09 09 72 ....pos:=0;....r
000160: 65 70 6C 79 3A 3D 42 6C 6F 63 6B 53 69 7A 65 3B eply:=BlockSize;
000170: 0D 0A 09 09 4C 4F 4F 50 0D 0A 09 09 20 20 20 20 ....LOOP....
000180: 49 46 20 20 28 57 6F 72 6B 69 6E 67 3D 4E 49 4C IF (Working=NIL
000190: 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 3B ) THEN EXIT END;
0001A0: 0D 0A 09 09 20 20 20 20 57 49 54 48 20 57 6F 72 .... WITH Wor
0001B0: 6B 69 6E 67 5E 20 44 4F 0D 0A 09 09 09 46 4F 52 king^ DO.....FOR
0001C0: 20 69 3A 3D 30 20 54 4F 20 49 4E 54 45 47 45 52 i:=0 TO INTEGER
0001D0: 28 42 6C 6F 63 6B 4C 65 6E 29 2D 31 20 44 4F 0D (BlockLen)-1 DO.
0001E0: 0A 09 09 09 09 49 46 20 70 6F 73 3E 3D 42 6C 6F .....IF pos>=Blo
0001F0: 63 6B 53 69 7A 65 20 54 48 45 4E 0D 0A 09 09 09 ckSize THEN.....
Size : 512 (Real : 512)
000000: 6C 6F 63 6B 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 lock;....PROCEDU
000010: 52 45 20 73 65 74 63 75 72 70 6F 73 28 56 41 52 RE setcurpos(VAR
000020: 20 66 3A 45 64 69 74 46 69 6C 65 29 3B 0D 0A 42 f:EditFile);..B
000030: 45 47 49 4E 0D 0A 09 57 49 54 48 20 66 2E 43 75 EGIN...WITH f.Cu
000040: 72 50 6F 73 20 44 4F 0D 0A 09 09 57 6F 72 6B 69 rPos DO....Worki
000050: 6E 67 3A 3D 42 6C 6F 63 6B 3B 0D 0A 09 09 43 68 ng:=Block;....Ch
000060: 61 72 50 6F 73 3A 3D 4F 66 66 73 65 74 3B 0D 0A arPos:=Offset;..
000070: 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 73 65 74 ..END;...END set
000080: 63 75 72 70 6F 73 3B 0D 0A 0D 0A 50 52 4F 43 45 curpos;....PROCE
000090: 44 55 52 45 20 73 61 76 65 63 75 72 70 6F 73 28 DURE savecurpos(
0000A0: 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3B VAR f:EditFile);
0000B0: 0D 0A 42 45 47 49 4E 0D 0A 09 57 49 54 48 20 66 ..BEGIN...WITH f
0000C0: 2E 43 75 72 50 6F 73 20 44 4F 0D 0A 09 09 49 46 .CurPos DO....IF
0000D0: 20 43 68 61 72 50 6F 73 3E 4F 52 44 28 57 6F 72 CharPos>ORD(Wor
0000E0: 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 king^.BlockLen)
0000F0: 54 48 45 4E 20 0D 0A 09 09 09 43 68 61 72 50 6F THEN .....CharPo
000100: 73 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 s:=Working^.Bloc
000110: 6B 4C 65 6E 20 0D 0A 09 09 09 45 4E 44 3B 0D 0A kLen .....END;..
000120: 09 09 42 6C 6F 63 6B 3A 3D 57 6F 72 6B 69 6E 67 ..Block:=Working
000130: 3B 0D 0A 09 09 4F 66 66 73 65 74 3A 3D 43 68 61 ;....Offset:=Cha
000140: 72 50 6F 73 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 rPos;....END;...
000150: 45 4E 44 20 73 61 76 65 63 75 72 70 6F 73 3B 0D END savecurpos;.
000160: 0A 56 41 52 09 69 3A 49 4E 54 45 47 45 52 3B 0D .VAR.i:INTEGER;.
000170: 0A 50 52 4F 43 45 44 55 52 45 20 42 61 63 6B 75 .PROCEDURE Backu
000180: 70 28 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 0D 0A p():BOOLEAN;....
000190: 28 2A 09 62 61 63 6B 20 75 70 20 61 20 63 68 61 (*.back up a cha
0001A0: 72 61 63 74 65 72 20 70 6F 73 69 74 69 6F 6E 20 racter position
0001B0: 69 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 66 in the current f
0001C0: 69 6C 65 0D 0A 09 72 65 74 75 72 6E 73 20 54 52 ile...returns TR
0001D0: 55 45 20 69 66 20 73 75 63 63 65 73 73 66 75 6C UE if successful
0001E0: 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 43 *)..BEGIN...IF C
0001F0: 68 61 72 50 6F 73 3C 3D 30 20 54 48 45 4E 0D 0A harPos<=0 THEN..
Size : 512 (Real : 512)
000000: 09 09 53 65 71 57 72 69 74 65 42 6C 6F 63 6B 28 ..SeqWriteBlock(
000010: 66 2E 66 2C 41 44 52 28 62 29 2C 42 6C 6F 63 6B f.f,ADR(b),Block
000020: 53 69 7A 65 2C 0D 0A 09 09 09 09 09 09 72 65 70 Size,........rep
000030: 6C 79 29 3B 0D 0A 09 09 09 09 09 70 6F 73 3A 3D ly);.......pos:=
000040: 30 3B 0D 0A 09 09 09 09 09 49 46 20 72 65 70 6C 0;.......IF repl
000050: 79 3C 3E 42 6C 6F 63 6B 53 69 7A 65 20 54 48 45 y<>BlockSize THE
000060: 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 09 09 N EXIT END;.....
000070: 09 09 45 4E 44 3B 20 28 2A 49 46 2A 29 0D 0A 09 ..END; (*IF*)...
000080: 09 09 09 62 5B 70 6F 73 5D 3A 3D 43 68 61 72 73 ...b[pos]:=Chars
000090: 5B 69 5D 3B 0D 0A 09 09 09 09 49 4E 43 28 70 6F [i];......INC(po
0000A0: 73 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 28 2A 46 s);......END;(*F
0000B0: 4F 52 2A 29 0D 0A 09 09 0D 0A 09 09 09 49 46 20 OR*).........IF
0000C0: 57 6F 72 6B 69 6E 67 3D 66 2E 43 75 72 50 6F 73 Working=f.CurPos
0000D0: 2E 42 6C 6F 63 6B 20 54 48 45 4E 0D 0A 09 09 09 .Block THEN.....
0000E0: 20 20 20 20 45 64 69 74 53 74 61 74 75 73 2E 53 EditStatus.S
0000F0: 65 74 50 6F 73 69 74 69 6F 6E 28 66 2E 66 2C 43 etPosition(f.f,C
000100: 68 61 72 6E 6F 2B 4F 52 44 28 66 2E 43 75 72 50 harno+ORD(f.CurP
000110: 6F 73 2E 4F 66 66 73 65 74 29 29 0D 0A 09 09 09 os.Offset)).....
000120: 20 20 20 20 45 4E 44 3B 0D 0A 09 09 09 43 68 61 END;.....Cha
000130: 72 6E 6F 3A 3D 43 68 61 72 6E 6F 2B 4F 52 44 28 rno:=Charno+ORD(
000140: 42 6C 6F 63 6B 4C 65 6E 29 3B 0D 0A 09 09 09 57 BlockLen);.....W
000150: 6F 72 6B 69 6E 67 3A 3D 4E 65 78 74 0D 0A 09 09 orking:=Next....
000160: 09 45 4E 44 3B 28 2A 57 49 54 48 20 57 6F 72 6B .END;(*WITH Work
000170: 69 6E 67 2A 29 0D 0A 09 09 20 20 20 20 45 4E 44 ing*).... END
000180: 3B 20 28 2A 57 48 49 4C 45 20 57 6F 72 6B 69 6E ; (*WHILE Workin
000190: 67 3C 3E 4E 49 4C 20 61 6E 64 20 6E 6F 74 20 64 g<>NIL and not d
0001A0: 69 73 63 20 66 75 6C 6C 2A 29 0D 0A 09 09 46 4F isc full*)....FO
0001B0: 52 20 70 6F 73 3A 3D 70 6F 73 20 54 4F 20 42 6C R pos:=pos TO Bl
0001C0: 6F 63 6B 53 69 7A 65 2D 31 20 44 4F 20 62 5B 70 ockSize-1 DO b[p
0001D0: 6F 73 5D 3A 3D 45 4F 46 20 45 4E 44 3B 0D 0A 09 os]:=EOF END;...
0001E0: 09 49 46 20 72 65 70 6C 79 3D 42 6C 6F 63 6B 53 .IF reply=BlockS
0001F0: 69 7A 65 20 54 48 45 4E 20 0D 0A 09 09 09 53 65 ize THEN .....Se
Size : 512 (Real : 512)
000000: 20 09 09 49 46 20 57 6F 72 6B 69 6E 67 5E 2E 50 ..IF Working^.P
000010: 72 65 64 3C 3E 4E 49 4C 20 54 48 45 4E 0D 0A 09 red<>NIL THEN...
000020: 09 09 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B 69 ..Working:=Worki
000030: 6E 67 5E 2E 50 72 65 64 3B 0D 0A 09 09 09 43 68 ng^.Pred;.....Ch
000040: 61 72 50 6F 73 3A 3D 57 6F 72 6B 69 6E 67 5E 2E arPos:=Working^.
000050: 42 6C 6F 63 6B 4C 65 6E 3B 0D 0A 09 09 45 4C 53 BlockLen;....ELS
000060: 45 0D 0A 09 09 09 52 45 54 55 52 4E 20 46 41 4C E.....RETURN FAL
000070: 53 45 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 SE.....END;....E
000080: 4E 44 3B 20 28 2A 43 68 61 72 50 6F 73 3C 3D 30 ND; (*CharPos<=0
000090: 2A 29 0D 0A 09 44 45 43 28 43 68 61 72 50 6F 73 *)...DEC(CharPos
0000A0: 29 3B 0D 0A 09 52 45 54 55 52 4E 20 54 52 55 45 );...RETURN TRUE
0000B0: 0D 0A 09 45 4E 44 20 42 61 63 6B 75 70 3B 0D 0A ...END Backup;..
0000C0: 50 52 4F 43 45 44 55 52 45 20 4F 70 65 6E 46 69 PROCEDURE OpenFi
0000D0: 6C 65 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C le(VAR f:EditFil
0000E0: 65 3B 66 6E 3A 46 69 6C 65 4E 61 6D 65 3B 56 41 e;fn:FileName;VA
0000F0: 52 20 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 3B R reply:INTEGER;
000100: 50 6F 73 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A Pos:CARDINAL);..
000110: 56 41 52 09 70 3A 50 54 65 78 74 3B 0D 0A 42 45 VAR.p:PText;..BE
000120: 47 49 4E 0D 0A 09 4C 6F 6F 6B 75 70 28 66 2E 66 GIN...Lookup(f.f
000130: 2C 66 6E 2C 72 65 70 6C 79 29 3B 0D 0A 09 49 46 ,fn,reply);...IF
000140: 20 50 6F 73 3D 36 35 35 33 35 20 54 48 45 4E 20 Pos=65535 THEN
000150: 43 68 61 72 6E 6F 3A 3D 45 64 69 74 53 74 61 74 Charno:=EditStat
000160: 75 73 2E 47 65 74 50 6F 73 69 74 69 6F 6E 28 66 us.GetPosition(f
000170: 2E 66 29 3B 0D 0A 09 45 4C 53 45 20 43 68 61 72 .f);...ELSE Char
000180: 6E 6F 3A 3D 50 6F 73 20 45 4E 44 3B 0D 0A 09 43 no:=Pos END;...C
000190: 68 61 72 73 72 65 61 64 3A 3D 30 3B 0D 0A 09 49 harsread:=0;...I
0001A0: 46 20 72 65 70 6C 79 3C 30 20 54 48 45 4E 20 0D F reply<0 THEN .
0001B0: 0A 09 09 72 65 70 6C 79 3A 3D 2D 32 3B 0D 0A 09 ...reply:=-2;...
0001C0: 09 52 45 54 55 52 4E 0D 0A 09 09 45 4E 44 3B 0D .RETURN....END;.
0001D0: 0A 09 70 3A 3D 4E 49 4C 3B 0D 0A 09 72 65 70 6C ..p:=NIL;...repl
0001E0: 79 3A 3D 30 3B 0D 0A 09 46 4F 52 20 69 3A 3D 30 y:=0;...FOR i:=0
0001F0: 20 54 4F 20 48 49 47 48 28 66 2E 4C 61 62 65 6C TO HIGH(f.Label
Size : 512 (Real : 512)
000000: 71 57 72 69 74 65 42 6C 6F 63 6B 28 66 2E 66 2C qWriteBlock(f.f,
000010: 41 44 52 28 62 29 2C 42 6C 6F 63 6B 53 69 7A 65 ADR(b),BlockSize
000020: 2C 72 65 70 6C 79 29 20 0D 0A 09 09 09 45 4E 44 ,reply) .....END
000030: 3B 0D 0A 09 09 43 6C 6F 73 65 28 66 2E 66 29 3B ;....Close(f.f);
000040: 0D 0A 09 09 49 46 20 72 65 70 6C 79 3C 3E 42 6C ....IF reply<>Bl
000050: 6F 63 6B 53 69 7A 65 20 54 48 45 4E 20 72 65 70 ockSize THEN rep
000060: 6C 79 3A 3D 2D 31 0D 0A 09 09 45 4C 53 45 20 72 ly:=-1....ELSE r
000070: 65 70 6C 79 3A 3D 30 20 45 4E 44 3B 0D 0A 09 45 eply:=0 END;...E
000080: 4C 53 45 09 72 65 70 6C 79 3A 3D 2D 32 20 0D 0A LSE.reply:=-2 ..
000090: 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 43 6C 6F ..END;...END Clo
0000A0: 73 65 46 69 6C 65 3B 0D 0A 09 09 09 0D 0A 09 0D seFile;.........
0000B0: 0A 50 52 4F 43 45 44 55 52 45 20 41 62 61 6E 64 .PROCEDURE Aband
0000C0: 6F 6E 46 69 6C 65 28 66 3A 45 64 69 74 46 69 6C onFile(f:EditFil
0000D0: 65 29 3B 0D 0A 56 41 52 09 70 3A 50 54 65 78 74 e);..VAR.p:PText
0000E0: 3B 0D 0A 28 2A 09 41 62 61 6E 64 6F 6E 20 63 68 ;..(*.Abandon ch
0000F0: 61 6E 67 65 73 20 74 6F 20 61 6E 20 65 64 69 74 anges to an edit
000100: 20 66 69 6C 65 2A 29 0D 0A 42 45 47 49 4E 0D 0A file*)..BEGIN..
000110: 09 57 6F 72 6B 69 6E 67 3A 3D 66 2E 43 68 61 69 .Working:=f.Chai
000120: 6E 3B 0D 0A 09 57 48 49 4C 45 20 57 6F 72 6B 69 n;...WHILE Worki
000130: 6E 67 3C 3E 4E 49 4C 20 44 4F 20 0D 0A 09 09 70 ng<>NIL DO ....p
000140: 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B :=Working^.Next;
000150: 0D 0A 09 09 44 49 53 50 4F 53 45 28 57 6F 72 6B ....DISPOSE(Work
000160: 69 6E 67 29 3B 0D 0A 09 09 57 6F 72 6B 69 6E 67 ing);....Working
000170: 3A 3D 70 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 :=p;....END;...E
000180: 4E 44 20 41 62 61 6E 64 6F 6E 46 69 6C 65 3B 0D ND AbandonFile;.
000190: 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 50 6F .PROCEDURE GetPo
0001A0: 73 69 74 69 6F 6E 28 56 41 52 20 66 3A 45 64 69 sition(VAR f:Edi
0001B0: 74 46 69 6C 65 3B 56 41 52 20 70 3A 50 6F 73 69 tFile;VAR p:Posi
0001C0: 74 69 6F 6E 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 tion);..BEGIN...
0001D0: 70 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 45 p:=f.CurPos;...E
0001E0: 4E 44 20 47 65 74 50 6F 73 69 74 69 6F 6E 3B 0D ND GetPosition;.
0001F0: 0A 09 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 .....PROCEDURE S
Size : 512 (Real : 512)
000000: 73 29 20 44 4F 20 66 2E 4C 61 62 65 6C 73 5B 69 s) DO f.Labels[i
000010: 5D 2E 42 6C 6F 63 6B 3A 3D 4E 49 4C 20 45 4E 44 ].Block:=NIL END
000020: 3B 0D 0A 09 4C 4F 4F 50 09 28 2A 72 65 61 64 20 ;...LOOP.(*read
000030: 69 6E 20 74 68 65 20 66 69 6C 65 2A 29 0D 0A 09 in the file*)...
000040: 09 49 46 20 46 72 65 65 53 70 61 63 65 28 29 3C .IF FreeSpace()<
000050: 48 65 61 64 52 6F 6F 6D 20 54 48 45 4E 0D 0A 09 HeadRoom THEN...
000060: 09 09 41 62 61 6E 64 6F 6E 46 69 6C 65 28 66 29 ..AbandonFile(f)
000070: 3B 0D 0A 09 09 09 72 65 70 6C 79 3A 3D 2D 33 3B ;.....reply:=-3;
000080: 0D 0A 09 09 09 52 45 54 55 52 4E 0D 0A 09 09 09 .....RETURN.....
000090: 45 4E 44 3B 0D 0A 09 09 4E 65 77 42 6C 6F 63 6B END;....NewBlock
0000A0: 3B 0D 0A 09 09 57 6F 72 6B 69 6E 67 5E 2E 50 72 ;....Working^.Pr
0000B0: 65 64 3A 3D 70 3B 0D 0A 09 09 49 46 20 70 3D 4E ed:=p;....IF p=N
0000C0: 49 4C 20 54 48 45 4E 20 66 2E 43 68 61 69 6E 3A IL THEN f.Chain:
0000D0: 3D 57 6F 72 6B 69 6E 67 0D 0A 09 09 45 4C 53 45 =Working....ELSE
0000E0: 20 70 5E 2E 4E 65 78 74 3A 3D 57 6F 72 6B 69 6E p^.Next:=Workin
0000F0: 67 20 45 4E 44 3B 0D 0A 09 09 53 65 71 52 65 61 g END;....SeqRea
000100: 64 42 6C 6F 63 6B 28 66 2E 66 2C 41 44 52 28 57 dBlock(f.f,ADR(W
000110: 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 29 2C 42 orking^.Chars),B
000120: 6C 6F 63 6B 53 69 7A 65 2C 69 29 3B 0D 0A 09 09 lockSize,i);....
000130: 49 46 20 69 3C 3E 42 6C 6F 63 6B 53 69 7A 65 20 IF i<>BlockSize
000140: 54 48 45 4E 20 28 2A 65 6E 64 20 6F 66 20 66 69 THEN (*end of fi
000150: 6C 65 20 66 6F 75 6E 64 2A 29 0D 0A 09 09 09 49 le found*).....I
000160: 46 20 70 3C 3E 4E 49 4C 20 54 48 45 4E 20 0D 0A F p<>NIL THEN ..
000170: 09 09 09 09 70 5E 2E 4E 65 78 74 3A 3D 4E 49 4C ....p^.Next:=NIL
000180: 3B 0D 0A 09 09 09 09 44 49 53 50 4F 53 45 28 57 ;......DISPOSE(W
000190: 6F 72 6B 69 6E 67 29 3B 0D 0A 09 09 09 45 4C 53 orking);.....ELS
0001A0: 45 09 28 2A 61 6C 77 61 79 73 20 6B 65 65 70 20 E.(*always keep
0001B0: 61 74 20 6C 65 61 73 74 20 6F 6E 65 20 62 6C 6F at least one blo
0001C0: 63 6B 2A 29 0D 0A 09 09 09 09 57 6F 72 6B 69 6E ck*)......Workin
0001D0: 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 3A 3D 31 3B 0D g^.BlockLen:=1;.
0001E0: 0A 20 20 20 09 09 09 09 57 6F 72 6B 69 6E 67 5E . ....Working^
0001F0: 2E 43 68 61 72 73 5B 30 5D 3A 3D 45 4F 46 3B 0D .Chars[0]:=EOF;.
Size : 512 (Real : 512)
000000: 65 74 50 6F 73 69 74 69 6F 6E 28 56 41 52 20 66 etPosition(VAR f
000010: 3A 45 64 69 74 46 69 6C 65 3B 70 3A 50 6F 73 69 :EditFile;p:Posi
000020: 74 69 6F 6E 29 3B 0D 0A 28 2A 09 67 65 74 2F 73 tion);..(*.get/s
000030: 65 74 20 70 6F 73 69 74 69 6F 6E 20 69 6E 20 61 et position in a
000040: 20 66 69 6C 65 2A 29 0D 0A 42 45 47 49 4E 0D 0A file*)..BEGIN..
000050: 09 66 2E 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 .f.CurPos:=p;...
000060: 0D 0A 09 28 2A 09 70 6F 69 6E 74 65 72 20 6D 61 ...(*.pointer ma
000070: 79 20 62 65 20 70 6F 69 6E 74 69 6E 67 20 6A 75 y be pointing ju
000080: 73 74 20 61 66 74 65 72 20 65 6E 64 20 6F 66 20 st after end of
000090: 62 6C 6F 63 6B 0D 0A 09 09 28 61 66 74 65 72 20 block....(after
0000A0: 64 65 6C 65 74 65 73 29 2C 20 72 65 67 75 6C 61 deletes), regula
0000B0: 72 69 7A 65 20 74 68 61 74 20 73 69 74 75 61 74 rize that situat
0000C0: 69 6F 6E 2A 29 0D 0A 0D 0A 09 57 49 54 48 20 66 ion*).....WITH f
0000D0: 2E 43 75 72 50 6F 73 20 44 4F 0D 0A 09 09 49 46 .CurPos DO....IF
0000E0: 20 09 20 20 20 20 28 4F 66 66 73 65 74 3E 3D 42 . (Offset>=B
0000F0: 6C 6F 63 6B 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 lock^.BlockLen)
000100: 0D 0A 09 09 09 41 4E 44 20 28 42 6C 6F 63 6B 5E .....AND (Block^
000110: 2E 4E 65 78 74 3C 3E 4E 49 4C 29 20 54 48 45 4E .Next<>NIL) THEN
000120: 0D 0A 09 09 09 4F 66 66 73 65 74 3A 3D 30 3B 0D .....Offset:=0;.
000130: 0A 09 09 09 42 6C 6F 63 6B 3A 3D 42 6C 6F 63 6B ....Block:=Block
000140: 5E 2E 4E 65 78 74 0D 0A 09 09 09 45 4E 44 3B 0D ^.Next.....END;.
000150: 0A 09 09 45 4E 44 3B 20 0D 0A 09 45 4E 44 20 53 ...END; ...END S
000160: 65 74 50 6F 73 69 74 69 6F 6E 3B 0D 0A 50 52 4F etPosition;..PRO
000170: 43 45 44 55 52 45 20 4C 61 62 65 6C 4F 70 28 56 CEDURE LabelOp(V
000180: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 44 65 AR f:EditFile;De
000190: 66 69 6E 65 3A 42 4F 4F 4C 45 41 4E 3B 63 68 3A fine:BOOLEAN;ch:
0001A0: 43 48 41 52 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A CHAR):BOOLEAN;..
0001B0: 28 2A 0D 0A 09 70 65 72 66 6F 72 6D 20 61 20 6C (*...perform a l
0001C0: 61 62 65 6C 20 6F 70 65 72 61 74 69 6F 6E 20 2C abel operation ,
0001D0: 20 72 65 74 75 72 6E 20 74 72 75 65 20 69 66 20 return true if
0001E0: 73 75 63 63 65 73 73 66 75 6C 0D 0A 09 44 65 66 successful...Def
0001F0: 69 6E 65 20 69 73 20 74 72 75 65 20 69 66 20 74 ine is true if t
Size : 512 (Real : 512)
000000: 0A 0D 0A 28 2A 09 72 65 64 69 73 70 6C 61 79 20 ...(*.redisplay
000010: 61 73 20 6D 75 63 68 20 74 65 78 74 20 61 73 20 as much text as
000020: 77 69 6C 6C 20 66 69 74 20 69 6E 20 74 68 65 20 will fit in the
000030: 77 69 6E 64 6F 77 0D 0A 09 66 6F 72 20 74 68 65 window...for the
000040: 20 67 69 76 65 6E 20 66 69 6C 65 20 73 74 61 72 given file star
000050: 74 69 6E 67 20 61 74 20 74 68 65 20 63 75 72 72 ting at the curr
000060: 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 6E 20 ent position in
000070: 74 68 65 20 66 69 6C 65 0D 0A 0D 0A 09 63 75 72 the file.....cur
000080: 78 20 61 6E 64 20 63 75 72 79 20 72 65 74 75 72 x and cury retur
000090: 6E 20 74 68 65 20 73 63 72 65 65 6E 20 63 6F 2D n the screen co-
0000A0: 6F 72 64 69 6E 61 74 65 73 20 66 6F 72 20 74 68 ordinates for th
0000B0: 65 0D 0A 09 63 75 72 72 65 6E 74 20 70 6F 73 69 e...current posi
0000C0: 74 69 6F 6E 20 69 6E 20 74 68 65 20 66 69 6C 65 tion in the file
0000D0: 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 *)....PROCEDURE
0000E0: 53 65 74 4C 65 66 74 4D 61 72 67 28 66 3A 45 64 SetLeftMarg(f:Ed
0000F0: 69 74 46 69 6C 65 3B 77 69 6E 64 6F 77 3A 49 4E itFile;window:IN
000100: 54 45 47 45 52 3B 56 41 52 20 63 75 72 78 2C 63 TEGER;VAR curx,c
000110: 75 72 79 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ury:CARDINAL);..
000120: 0D 0A 28 2A 09 53 65 74 20 75 70 20 6C 65 66 74 ..(*.Set up left
000130: 20 6D 61 72 67 69 6E 20 6F 66 20 61 20 6E 65 77 margin of a new
000140: 6C 79 20 6F 70 65 6E 65 64 20 66 69 6C 65 20 2A ly opened file *
000150: 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 69 73 )..PROCEDURE Dis
000160: 70 6C 61 79 45 72 72 6F 72 3B 0D 0A 56 41 52 09 playError;..VAR.
000170: 57 69 6E 64 6F 77 73 3A 43 41 52 44 49 4E 41 4C Windows:CARDINAL
000180: 3B 0D 0A 09 4C 69 6E 65 73 50 65 72 57 69 6E 64 ;...LinesPerWind
000190: 6F 77 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 45 4E ow:CARDINAL;..EN
0001A0: 44 20 45 64 69 74 44 69 73 70 6C 61 79 2E 0D 0A D EditDisplay...
0001B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 18 ................
0001D0: E9 18 EA 18 FF FF EC 18 FF FF FF FF EF 18 F0 18 ................
0001E0: 02 19 F2 18 F3 18 F4 18 F5 18 F6 18 F7 18 F8 18 ................
0001F0: F9 18 FA 18 FB 18 FF FF FD 18 FE 18 FF 18 00 19 ................
Size : 512 (Real : 512)
000000: 68 65 20 6F 70 65 72 61 74 69 6F 6E 20 69 73 20 he operation is
000010: 61 20 64 65 66 69 6E 65 20 6C 61 62 65 6C 0D 0A a define label..
000020: 09 69 74 20 69 73 20 66 61 6C 73 65 20 69 66 20 .it is false if
000030: 69 74 20 69 73 20 61 20 67 6F 74 6F 20 6C 61 62 it is a goto lab
000040: 65 6C 0D 0A 2A 29 0D 0A 0D 0A 56 41 52 09 69 3A el..*)....VAR.i:
000050: 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E CARDINAL;..BEGIN
000060: 0D 0A 09 28 2A 24 41 5E 2A 29 0D 0A 09 63 68 3A ...(*$A^*)...ch:
000070: 3D 43 41 50 28 63 68 29 3B 0D 0A 09 43 41 53 45 =CAP(ch);...CASE
000080: 20 63 68 20 4F 46 0D 0A 09 09 27 42 27 3A 20 69 ch OF....'B': i
000090: 3A 3D 31 30 7C 0D 0A 09 09 27 5E 4B 27 2C 27 4B :=10|....'^K','K
0000A0: 27 3A 20 69 3A 3D 31 31 7C 0D 0A 09 09 31 78 2E ': i:=11|....1x.
0000B0: 2E 33 78 3A 69 3A 3D 4F 52 44 28 63 68 29 2B 31 .3x:i:=ORD(ch)+1
0000C0: 31 7C 0D 0A 09 09 27 30 27 2E 2E 27 39 27 3A 69 1|....'0'..'9':i
0000D0: 3A 3D 4F 52 44 28 63 68 29 2D 4F 52 44 28 27 30 :=ORD(ch)-ORD('0
0000E0: 27 29 7C 0D 0A 09 09 30 62 30 78 2E 2E 30 62 39 ')|....0b0x..0b9
0000F0: 78 3A 69 3A 3D 4F 52 44 28 63 68 29 2D 30 62 30 x:i:=ORD(ch)-0b0
000100: 68 2B 31 35 0D 0A 09 09 45 4C 53 45 20 52 45 54 h+15....ELSE RET
000110: 55 52 4E 20 46 41 4C 53 45 0D 0A 09 09 45 4E 44 URN FALSE....END
000120: 3B 0D 0A 09 49 46 20 44 65 66 69 6E 65 20 54 48 ;...IF Define TH
000130: 45 4E 0D 0A 09 09 47 65 74 50 6F 73 69 74 69 6F EN....GetPositio
000140: 6E 28 66 2C 66 2E 4C 61 62 65 6C 73 5B 69 5D 29 n(f,f.Labels[i])
000150: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 49 46 20 66 ;...ELSE....IF f
000160: 2E 4C 61 62 65 6C 73 5B 69 5D 2E 42 6C 6F 63 6B .Labels[i].Block
000170: 3D 4E 49 4C 20 54 48 45 4E 20 52 45 54 55 52 4E =NIL THEN RETURN
000180: 20 46 41 4C 53 45 20 45 4E 44 3B 0D 0A 09 09 53 FALSE END;....S
000190: 65 74 50 6F 73 69 74 69 6F 6E 28 66 2C 66 2E 4C etPosition(f,f.L
0001A0: 61 62 65 6C 73 5B 69 5D 29 3B 0D 0A 09 20 09 45 abels[i]);... .E
0001B0: 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 54 52 55 ND;...RETURN TRU
0001C0: 45 3B 0D 0A 09 45 4E 44 20 4C 61 62 65 6C 4F 70 E;...END LabelOp
0001D0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 41 64 76 ;..PROCEDURE Adv
0001E0: 61 6E 63 65 28 29 3A 42 4F 4F 4C 45 41 4E 3B 0D ance():BOOLEAN;.
0001F0: 0A 0D 0A 28 2A 09 61 64 76 61 6E 63 65 20 61 20 ...(*.advance a
Size : 512 (Real : 512)
000000: 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 4F 66 66 F.Labels[11].Off
000010: 73 65 74 29 29 0D 0A 09 09 45 4E 44 3B 0D 0A 09 set))....END;...
000020: 49 46 20 43 6F 75 6C 64 42 65 20 54 48 45 4E 0D IF CouldBe THEN.
000030: 0A 09 09 57 48 49 4C 45 20 28 62 3C 3E 4E 49 4C ...WHILE (b<>NIL
000040: 29 20 41 4E 44 20 28 62 3C 3E 46 2E 4C 61 62 65 ) AND (b<>F.Labe
000050: 6C 73 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 44 4F ls[11].Block) DO
000060: 20 62 3A 3D 62 5E 2E 4E 65 78 74 20 45 4E 44 3B b:=b^.Next END;
000070: 0D 0A 09 09 43 6F 75 6C 64 42 65 3A 3D 62 3C 3E ....CouldBe:=b<>
000080: 4E 49 4C 0D 0A 09 09 45 4E 44 3B 0D 0A 09 52 45 NIL....END;...RE
000090: 54 55 52 4E 20 43 6F 75 6C 64 42 65 3B 0D 0A 09 TURN CouldBe;...
0000A0: 45 4E 44 20 49 6E 73 69 64 65 42 6C 6F 63 6B 3B END InsideBlock;
0000B0: 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 ....PROCEDURE Ch
0000C0: 65 63 6B 42 6C 6F 63 6B 28 56 41 52 20 46 3A 45 eckBlock(VAR F:E
0000D0: 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 4E ditFile):BOOLEAN
0000E0: 3B 0D 0A 0D 0A 28 2A 09 43 68 65 63 6B 20 69 66 ;....(*.Check if
0000F0: 20 62 65 67 69 6E 20 61 6E 64 20 65 6E 64 20 6F begin and end o
000100: 66 20 62 6C 6F 63 6B 20 68 61 76 65 20 62 65 65 f block have bee
000110: 6E 20 63 6F 72 72 65 63 74 6C 79 20 73 65 74 20 n correctly set
000120: 75 70 2A 29 0D 0A 0D 0A 42 45 47 49 4E 0D 0A 09 up*)....BEGIN...
000130: 49 46 20 28 46 2E 4C 61 62 65 6C 73 5B 31 30 5D IF (F.Labels[10]
000140: 2E 42 6C 6F 63 6B 3D 4E 49 4C 29 20 4F 52 20 28 .Block=NIL) OR (
000150: 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C 6F F.Labels[11].Blo
000160: 63 6B 3D 4E 49 4C 29 20 54 48 45 4E 0D 0A 09 09 ck=NIL) THEN....
000170: 52 45 54 55 52 4E 20 46 41 4C 53 45 3B 0D 0A 09 RETURN FALSE;...
000180: 09 45 4E 44 3B 0D 0A 09 57 6F 72 6B 69 6E 67 3A .END;...Working:
000190: 3D 46 2E 4C 61 62 65 6C 73 5B 31 30 5D 2E 42 6C =F.Labels[10].Bl
0001A0: 6F 63 6B 3B 0D 0A 09 72 65 70 6C 79 3A 3D 30 3B ock;...reply:=0;
0001B0: 0D 0A 0D 0A 09 57 48 49 4C 45 20 28 57 6F 72 6B .....WHILE (Work
0001C0: 69 6E 67 3C 3E 4E 49 4C 29 20 41 4E 44 20 28 57 ing<>NIL) AND (W
0001D0: 6F 72 6B 69 6E 67 3C 3E 46 2E 4C 61 62 65 6C 73 orking<>F.Labels
0001E0: 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 44 4F 0D 0A [11].Block) DO..
0001F0: 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B 4F ..reply:=reply+O
Size : 512 (Real : 512)
000000: 63 68 61 72 61 63 74 65 72 20 70 6F 73 69 74 69 character positi
000010: 6F 6E 20 69 6E 20 74 68 65 20 63 75 72 72 65 6E on in the curren
000020: 74 20 66 69 6C 65 2A 29 0D 0A 42 45 47 49 4E 09 t file*)..BEGIN.
000030: 09 0D 0A 09 49 4E 43 28 43 68 61 72 50 6F 73 29 ....INC(CharPos)
000040: 3B 0D 0A 09 49 46 20 43 68 61 72 50 6F 73 3E 3D ;...IF CharPos>=
000050: 49 4E 54 45 47 45 52 28 57 6F 72 6B 69 6E 67 5E INTEGER(Working^
000060: 2E 42 6C 6F 63 6B 4C 65 6E 29 20 54 48 45 4E 0D .BlockLen) THEN.
000070: 0A 09 09 0D 0A 09 09 49 46 20 57 6F 72 6B 69 6E .......IF Workin
000080: 67 5E 2E 4E 65 78 74 3C 3E 4E 49 4C 20 54 48 45 g^.Next<>NIL THE
000090: 4E 0D 0A 09 09 09 57 6F 72 6B 69 6E 67 3A 3D 57 N.....Working:=W
0000A0: 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B 0D 0A 09 orking^.Next;...
0000B0: 09 09 43 68 61 72 50 6F 73 3A 3D 30 3B 0D 0A 09 ..CharPos:=0;...
0000C0: 09 45 4C 53 45 0D 0A 09 09 09 52 45 54 55 52 4E .ELSE.....RETURN
0000D0: 20 46 41 4C 53 45 0D 0A 09 09 09 45 4E 44 3B 0D FALSE.....END;.
0000E0: 0A 09 09 45 4E 44 3B 20 28 2A 43 68 61 72 50 6F ...END; (*CharPo
0000F0: 73 3E 42 6C 6F 63 6B 4C 65 6E 2A 29 0D 0A 09 52 s>BlockLen*)...R
000100: 45 54 55 52 4E 20 57 6F 72 6B 69 6E 67 5E 2E 43 ETURN Working^.C
000110: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3C 3E 45 hars[CharPos]<>E
000120: 4F 46 0D 0A 09 45 4E 44 20 41 64 76 61 6E 63 65 OF...END Advance
000130: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 73 ;..PROCEDURE Ins
000140: 69 64 65 42 6C 6F 63 6B 28 56 41 52 20 46 3A 45 ideBlock(VAR F:E
000150: 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 4E ditFile):BOOLEAN
000160: 3B 0D 0A 0D 0A 28 2A 09 43 68 65 63 6B 20 69 66 ;....(*.Check if
000170: 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 6F current positio
000180: 6E 20 69 73 20 69 6E 73 69 64 65 20 62 6C 6F 63 n is inside bloc
000190: 6B 20 2A 29 0D 0A 56 41 52 09 62 3A 50 54 65 78 k *)..VAR.b:PTex
0001A0: 74 3B 0D 0A 09 43 6F 75 6C 64 42 65 3A 42 4F 4F t;...CouldBe:BOO
0001B0: 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A 09 73 LEAN;..BEGIN...s
0001C0: 65 74 63 75 72 70 6F 73 28 46 29 3B 0D 0A 09 49 etcurpos(F);...I
0001D0: 46 20 28 46 2E 4C 61 62 65 6C 73 5B 31 30 5D 2E F (F.Labels[10].
0001E0: 42 6C 6F 63 6B 3D 4E 49 4C 29 20 4F 52 20 28 46 Block=NIL) OR (F
0001F0: 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C 6F 63 .Labels[11].Bloc
Size : 512 (Real : 512)
000000: 52 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 RD(Working^.Bloc
000010: 6B 4C 65 6E 29 3B 0D 0A 09 09 57 6F 72 6B 69 6E kLen);....Workin
000020: 67 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 g:=Working^.Next
000030: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 49 46 ;....END;.....IF
000040: 20 57 6F 72 6B 69 6E 67 3D 4E 49 4C 20 54 48 45 Working=NIL THE
000050: 4E 20 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 N RETURN FALSE E
000060: 4E 44 3B 0D 0A 09 0D 0A 09 28 2A 69 66 20 65 6E ND;......(*if en
000070: 64 20 70 72 65 63 65 64 65 73 20 62 65 67 69 6E d precedes begin
000080: 6E 69 6E 67 20 6F 66 20 62 6C 6F 63 6B 2A 29 0D ning of block*).
000090: 0A 0D 0A 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 ....reply:=reply
0000A0: 2B 4F 52 44 28 46 2E 4C 61 62 65 6C 73 5B 31 31 +ORD(F.Labels[11
0000B0: 5D 2E 4F 66 66 73 65 74 29 2D 4F 52 44 28 46 2E ].Offset)-ORD(F.
0000C0: 4C 61 62 65 6C 73 5B 31 30 5D 2E 4F 66 66 73 65 Labels[10].Offse
0000D0: 74 29 3B 0D 0A 09 52 45 54 55 52 4E 20 72 65 70 t);...RETURN rep
0000E0: 6C 79 3E 3D 30 0D 0A 09 45 4E 44 20 43 68 65 63 ly>=0...END Chec
0000F0: 6B 42 6C 6F 63 6B 3B 0D 0A 50 52 4F 43 45 44 55 kBlock;..PROCEDU
000100: 52 45 20 42 6C 6F 63 6B 43 6F 70 79 28 56 41 52 RE BlockCopy(VAR
000110: 20 46 72 6F 6D 46 69 6C 65 2C 54 6F 46 69 6C 65 FromFile,ToFile
000120: 3A 45 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 :EditFile):BOOLE
000130: 41 4E 3B 0D 0A 0D 0A 28 2A 09 43 61 72 65 66 75 AN;....(*.Carefu
000140: 6C 20 2D 20 45 61 73 79 20 2D 20 4F 75 63 68 21 l - Easy - Ouch!
000150: 0D 0A 0D 0A 09 46 72 6F 6D 46 69 6C 65 20 61 6E .....FromFile an
000160: 64 20 54 6F 46 69 6C 65 20 6D 61 79 20 62 65 20 d ToFile may be
000170: 74 68 65 20 73 61 6D 65 20 20 76 61 72 69 61 62 the same variab
000180: 6C 65 2A 29 0D 0A 0D 0A 56 41 52 09 69 3A 49 4E le*)....VAR.i:IN
000190: 54 45 47 45 52 3B 0D 0A 09 63 3A 41 52 52 41 59 TEGER;...c:ARRAY
0001A0: 5B 31 2E 2E 54 65 78 74 4C 65 6E 5D 20 4F 46 20 [1..TextLen] OF
0001B0: 43 48 41 52 3B 0D 0A 09 70 2C 71 2C 72 3A 50 6F CHAR;...p,q,r:Po
0001C0: 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 28 2A 09 54 68 sition;....(*.Th
0001D0: 69 73 20 63 6F 64 65 20 69 73 20 61 20 6C 69 74 is code is a lit
0001E0: 74 6C 65 20 6F 64 64 20 66 6F 72 20 74 68 65 20 tle odd for the
0001F0: 66 6F 6C 6C 6F 77 69 6E 67 20 72 65 61 73 6F 6E following reason
Size : 512 (Real : 512)
000000: 6B 3D 4E 49 4C 29 20 54 48 45 4E 0D 0A 09 09 52 k=NIL) THEN....R
000010: 45 54 55 52 4E 20 46 41 4C 53 45 3B 0D 0A 09 09 ETURN FALSE;....
000020: 45 4E 44 3B 0D 0A 09 62 3A 3D 46 2E 4C 61 62 65 END;...b:=F.Labe
000030: 6C 73 5B 31 30 5D 2E 42 6C 6F 63 6B 3B 0D 0A 0D ls[10].Block;...
000040: 0A 09 57 48 49 4C 45 20 28 62 3C 3E 4E 49 4C 29 ..WHILE (b<>NIL)
000050: 20 41 4E 44 20 28 62 3C 3E 46 2E 4C 61 62 65 6C AND (b<>F.Label
000060: 73 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 41 4E 44 s[11].Block) AND
000070: 20 28 62 3C 3E 57 6F 72 6B 69 6E 67 29 20 44 4F (b<>Working) DO
000080: 0D 0A 09 09 62 3A 3D 62 5E 2E 4E 65 78 74 3B 0D ....b:=b^.Next;.
000090: 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 0D 0A 09 28 ...END;........(
0000A0: 2A 69 66 20 65 6E 64 20 70 72 65 63 65 64 65 73 *if end precedes
0000B0: 20 62 65 67 69 6E 6E 69 6E 67 20 6F 66 20 62 6C beginning of bl
0000C0: 6F 63 6B 2A 29 0D 0A 09 43 6F 75 6C 64 42 65 3A ock*)...CouldBe:
0000D0: 3D 62 3D 57 6F 72 6B 69 6E 67 3B 0D 0A 09 49 46 =b=Working;...IF
0000E0: 20 4E 4F 54 20 43 6F 75 6C 64 42 65 20 54 48 45 NOT CouldBe THE
0000F0: 4E 20 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 N RETURN FALSE E
000100: 4E 44 3B 0D 0A 09 49 46 20 62 3D 46 2E 4C 61 62 ND;...IF b=F.Lab
000110: 65 6C 73 5B 31 30 5D 2E 42 6C 6F 63 6B 20 54 48 els[10].Block TH
000120: 45 4E 0D 0A 09 09 28 2A 09 69 6E 20 73 74 61 72 EN....(*.in star
000130: 74 20 62 6C 6F 63 6B 20 2D 20 63 68 65 63 6B 20 t block - check
000140: 61 66 74 65 72 20 6C 61 62 65 6C 20 73 74 61 72 after label star
000150: 74 2A 29 0D 0A 09 09 43 6F 75 6C 64 42 65 3A 3D t*)....CouldBe:=
000160: 43 68 61 72 50 6F 73 3E 3D 4F 52 44 28 46 2E 4C CharPos>=ORD(F.L
000170: 61 62 65 6C 73 5B 31 30 5D 2E 4F 66 66 73 65 74 abels[10].Offset
000180: 29 0D 0A 09 09 45 4E 44 3B 0D 0A 09 49 46 20 62 )....END;...IF b
000190: 3D 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C =F.Labels[11].Bl
0001A0: 6F 63 6B 20 54 48 45 4E 0D 0A 09 09 28 2A 09 69 ock THEN....(*.i
0001B0: 6E 20 73 74 61 72 74 20 62 6C 6F 63 6B 20 2D 20 n start block -
0001C0: 63 68 65 63 6B 20 61 66 74 65 72 20 6C 61 62 65 check after labe
0001D0: 6C 20 73 74 61 72 74 2A 29 0D 0A 09 09 43 6F 75 l start*)....Cou
0001E0: 6C 64 42 65 3A 3D 43 6F 75 6C 64 42 65 20 41 4E ldBe:=CouldBe AN
0001F0: 44 20 28 43 68 61 72 50 6F 73 3C 3D 4F 52 44 28 D (CharPos<=ORD(
Size : 512 (Real : 512)
000000: 3A 0D 0A 0D 0A 09 31 2F 09 49 6E 73 43 68 61 72 :.....1/.InsChar
000010: 73 20 63 61 6E 6E 6F 74 20 69 6E 73 65 72 74 20 s cannot insert
000020: 6D 6F 72 65 20 74 68 61 6E 20 68 61 6C 66 20 61 more than half a
000030: 20 62 6C 6F 63 6B 20 6F 66 20 63 68 61 72 61 63 block of charac
000040: 74 65 72 73 0D 0A 09 32 2F 09 49 66 20 79 6F 75 ters...2/.If you
000050: 20 64 6F 6E 27 74 20 72 65 61 64 20 61 74 20 6C don't read at l
000060: 65 61 73 74 20 61 20 62 6C 6F 63 6B 20 61 74 20 east a block at
000070: 61 20 74 69 6D 65 20 61 6E 64 20 74 68 65 0D 0A a time and the..
000080: 09 09 74 6F 20 61 6E 64 20 66 72 6F 6D 20 66 69 ..to and from fi
000090: 6C 65 73 20 61 72 65 20 74 68 65 20 73 61 6D 65 les are the same
0000A0: 2C 20 79 6F 75 20 6D 61 79 20 68 61 76 65 20 74 , you may have t
0000B0: 6F 20 63 68 61 6E 67 65 20 74 68 65 0D 0A 09 09 o change the....
0000C0: 70 6F 73 69 74 69 6F 6E 20 69 6E 20 74 68 65 20 position in the
0000D0: 66 72 6F 6D 20 66 69 6C 65 20 74 6F 20 72 65 66 from file to ref
0000E0: 6C 65 63 74 20 69 6E 73 65 72 74 69 6F 6E 73 2C lect insertions,
0000F0: 20 77 68 69 63 68 20 69 73 0D 0A 09 09 61 77 6B which is....awk
000100: 77 61 72 64 20 28 74 68 6F 75 67 68 20 79 6F 75 ward (though you
000110: 20 63 6F 75 6C 64 20 61 6C 77 61 79 73 20 61 64 could always ad
000120: 64 20 61 20 74 65 6D 70 6F 72 61 72 79 20 6C 61 d a temporary la
000130: 62 65 6C 29 0D 0A 0D 0A 09 54 68 65 72 65 66 6F bel).....Therefo
000140: 72 65 2C 20 74 65 78 74 20 69 73 20 72 65 61 64 re, text is read
000150: 20 61 6E 64 20 74 68 65 6E 20 69 6E 73 65 72 74 and then insert
000160: 65 64 20 69 6E 20 75 70 20 74 6F 20 74 68 72 65 ed in up to thre
000170: 65 20 67 6F 65 73 21 2A 29 0D 0A 0D 0A 09 54 68 e goes!*).....Th
000180: 69 72 64 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 ird:CARDINAL;..B
000190: 45 47 49 4E 0D 0A 09 54 68 69 72 64 3A 3D 54 65 EGIN...Third:=Te
0001A0: 78 74 4C 65 6E 20 44 49 56 20 33 3B 0D 0A 09 49 xtLen DIV 3;...I
0001B0: 46 20 4E 4F 54 20 43 68 65 63 6B 42 6C 6F 63 6B F NOT CheckBlock
0001C0: 28 46 72 6F 6D 46 69 6C 65 29 20 54 48 45 4E 20 (FromFile) THEN
0001D0: 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 4E 44 RETURN FALSE END
0001E0: 3B 0D 0A 09 57 49 54 48 20 46 72 6F 6D 46 69 6C ;...WITH FromFil
0001F0: 65 2E 4C 61 62 65 6C 73 5B 31 30 5D 20 44 4F 0D e.Labels[10] DO.
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 45 64 69 74 44 69 73 70 6C 61 79 3B 0D 0A E EditDisplay;..
000020: 28 2A 09 44 69 73 70 6C 61 79 20 70 61 72 74 20 (*.Display part
000030: 6F 66 20 61 20 66 69 6C 65 20 62 65 69 6E 67 20 of a file being
000040: 65 64 69 74 65 64 2A 29 0D 0A 0D 0A 46 52 4F 4D edited*)....FROM
000050: 20 53 63 72 65 65 6E 49 4F 20 20 49 4D 50 4F 52 ScreenIO IMPOR
000060: 54 20 45 64 69 74 73 3B 0D 0A 46 52 4F 4D 20 4D T Edits;..FROM M
000070: 61 6B 65 45 64 69 74 73 20 49 4D 50 4F 52 54 20 akeEdits IMPORT
000080: 45 64 69 74 46 69 6C 65 3B 0D 0A 56 41 52 09 45 EditFile;..VAR.E
000090: 72 72 6F 72 4F 72 64 69 6E 61 6C 3A 43 41 52 44 rrorOrdinal:CARD
0000A0: 49 4E 41 4C 3B 0D 0A 50 52 4F 43 45 44 55 52 45 INAL;..PROCEDURE
0000B0: 20 45 72 72 6F 72 4D 65 73 73 61 67 65 28 73 31 ErrorMessage(s1
0000C0: 2C 73 32 3A 41 52 52 41 59 20 4F 46 20 43 48 41 ,s2:ARRAY OF CHA
0000D0: 52 29 3B 0D 0A 0D 0A 28 2A 09 44 69 73 70 6C 61 R);....(*.Displa
0000E0: 79 20 65 72 72 6F 72 20 6D 65 73 73 61 67 65 20 y error message
0000F0: 61 74 20 62 6F 74 74 6F 6D 20 6F 66 20 73 63 72 at bottom of scr
000100: 65 65 6E 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 een*)....PROCEDU
000110: 52 45 20 53 65 74 57 69 6E 64 6F 77 73 28 69 3A RE SetWindows(i:
000120: 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A 09 INTEGER);....(*.
000130: 73 65 74 20 6E 75 6D 62 65 72 20 6F 66 20 65 64 set number of ed
000140: 69 74 20 77 69 6E 64 6F 77 73 20 69 6E 20 75 73 it windows in us
000150: 65 20 2D 20 79 6F 75 20 6D 75 73 74 20 72 65 66 e - you must ref
000160: 72 65 73 68 20 74 68 65 20 65 6E 74 69 72 65 0D resh the entire.
000170: 0A 09 73 63 72 65 65 6E 20 77 69 74 68 20 63 61 ..screen with ca
000180: 6C 6C 73 20 74 6F 20 44 69 73 70 6C 61 79 46 69 lls to DisplayFi
000190: 6C 65 20 61 66 74 65 72 20 61 20 63 61 6C 6C 20 le after a call
0001A0: 74 6F 20 74 68 69 73 0D 0A 09 72 6F 75 74 69 6E to this...routin
0001B0: 65 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 e*)....PROCEDURE
0001C0: 20 44 69 73 70 6C 61 79 46 69 6C 65 28 66 3A 45 DisplayFile(f:E
0001D0: 64 69 74 46 69 6C 65 3B 77 69 6E 64 6F 77 3A 49 ditFile;window:I
0001E0: 4E 54 45 47 45 52 3B 56 41 52 20 63 75 72 78 2C NTEGER;VAR curx,
0001F0: 63 75 72 79 3A 43 41 52 44 49 4E 41 4C 29 3B 0D cury:CARDINAL);.
Size : 512 (Real : 512)
000000: 0A 09 09 43 68 61 72 50 6F 73 3A 3D 4F 66 66 73 ...CharPos:=Offs
000010: 65 74 3B 0D 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D et;....Working:=
000020: 42 6C 6F 63 6B 3B 0D 0A 09 09 45 4E 44 3B 0D 0A Block;....END;..
000030: 09 43 68 61 72 73 72 65 61 64 3A 3D 30 3B 0D 0A .Charsread:=0;..
000040: 09 69 3A 3D 72 65 70 6C 79 3B 0D 0A 09 72 3A 3D .i:=reply;...r:=
000050: 46 72 6F 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3B FromFile.CurPos;
000060: 0D 0A 09 71 3A 3D 54 6F 46 69 6C 65 2E 43 75 72 ...q:=ToFile.Cur
000070: 50 6F 73 3B 0D 0A 09 46 72 6F 6D 46 69 6C 65 2E Pos;...FromFile.
000080: 43 75 72 50 6F 73 3A 3D 46 72 6F 6D 46 69 6C 65 CurPos:=FromFile
000090: 2E 4C 61 62 65 6C 73 5B 31 30 5D 3B 0D 0A 09 4C .Labels[10];...L
0000A0: 4F 4F 50 0D 0A 09 09 49 46 20 69 3D 30 20 54 48 OOP....IF i=0 TH
0000B0: 45 4E 20 0D 0A 09 09 09 45 58 49 54 20 0D 0A 09 EN .....EXIT ...
0000C0: 09 09 45 4E 44 3B 0D 0A 09 09 49 4E 43 28 43 68 ..END;....INC(Ch
0000D0: 61 72 73 72 65 61 64 29 3B 0D 0A 09 09 63 5B 43 arsread);....c[C
0000E0: 68 61 72 73 72 65 61 64 5D 3A 3D 57 6F 72 6B 69 harsread]:=Worki
0000F0: 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F ng^.Chars[CharPo
000100: 73 5D 3B 0D 0A 09 09 49 46 20 28 43 68 61 72 73 s];....IF (Chars
000110: 72 65 61 64 3D 48 49 47 48 28 63 29 29 20 4F 52 read=HIGH(c)) OR
000120: 20 28 69 3D 31 29 20 54 48 45 4E 0D 0A 09 09 09 (i=1) THEN.....
000130: 73 61 76 65 63 75 72 70 6F 73 28 46 72 6F 6D 46 savecurpos(FromF
000140: 69 6C 65 29 3B 0D 0A 09 09 09 70 3A 3D 46 72 6F ile);.....p:=Fro
000150: 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3B 0D 0A 09 mFile.CurPos;...
000160: 09 09 54 6F 46 69 6C 65 2E 43 75 72 50 6F 73 3A ..ToFile.CurPos:
000170: 3D 71 3B 0D 0A 09 09 09 57 48 49 4C 45 20 43 68 =q;.....WHILE Ch
000180: 61 72 73 72 65 61 64 3E 30 20 44 4F 0D 0A 09 09 arsread>0 DO....
000190: 09 09 49 46 20 43 68 61 72 73 72 65 61 64 3E 54 ..IF Charsread>T
0001A0: 68 69 72 64 20 54 48 45 4E 0D 0A 09 09 09 09 09 hird THEN.......
0001B0: 49 6E 73 43 68 61 72 73 28 54 6F 46 69 6C 65 2C InsChars(ToFile,
0001C0: 63 2C 54 68 69 72 64 29 3B 0D 0A 09 09 09 09 09 c,Third);.......
0001D0: 43 68 61 72 73 72 65 61 64 3A 3D 43 68 61 72 73 Charsread:=Chars
0001E0: 72 65 61 64 2D 54 68 69 72 64 3B 0D 0A 09 09 09 read-Third;.....
0001F0: 09 09 4D 6F 76 65 64 6F 77 6E 28 41 44 52 28 63 ..Movedown(ADR(c
Size : 512 (Real : 512)
000000: 6F 73 29 2D 6E 75 6D 62 65 72 29 3B 0D 0A 09 09 os)-number);....
000010: 09 09 45 4E 44 3B 0D 0A 09 09 09 42 6C 6F 63 6B ..END;.....Block
000020: 4C 65 6E 3A 3D 4F 52 44 28 42 6C 6F 63 6B 4C 65 Len:=ORD(BlockLe
000030: 6E 29 2D 6E 75 6D 62 65 72 3B 0D 0A 09 09 09 49 n)-number;.....I
000040: 46 20 28 4E 65 78 74 3D 4E 49 4C 29 20 41 4E 44 F (Next=NIL) AND
000050: 20 28 43 68 61 72 73 5B 42 6C 6F 63 6B 4C 65 6E (Chars[BlockLen
000060: 2D 31 5D 3C 3E 45 4F 46 29 20 54 48 45 4E 0D 0A -1]<>EOF) THEN..
000070: 09 09 09 09 43 68 61 72 73 5B 42 6C 6F 63 6B 4C ....Chars[BlockL
000080: 65 6E 5D 3A 3D 45 4F 46 3B 0D 0A 09 09 09 09 49 en]:=EOF;......I
000090: 4E 43 28 42 6C 6F 63 6B 4C 65 6E 29 3B 20 0D 0A NC(BlockLen); ..
0000A0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
0000B0: 28 2A 20 42 6C 6F 63 6B 20 6E 6F 74 20 6E 6F 77 (* Block not now
0000C0: 20 65 6D 70 74 79 2A 29 3B 0D 0A 09 09 45 4E 44 empty*);....END
0000D0: 3B 28 2A 57 49 54 48 2A 29 0D 0A 09 45 4E 44 20 ;(*WITH*)...END
0000E0: 44 65 6C 49 6E 42 6C 6F 63 6B 3B 0D 0A 0D 0A 56 DelInBlock;....V
0000F0: 41 52 09 4E 65 78 74 42 6C 6F 63 6B 3A 50 54 65 AR.NextBlock:PTe
000100: 78 74 3B 0D 0A 42 45 47 49 4E 0D 0A 09 73 65 74 xt;..BEGIN...set
000110: 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 57 48 49 curpos(f);...WHI
000120: 4C 45 20 28 6E 75 6D 62 65 72 3E 30 29 20 41 4E LE (number>0) AN
000130: 44 20 28 57 6F 72 6B 69 6E 67 3C 3E 4E 49 4C 29 D (Working<>NIL)
000140: 20 44 4F 0D 0A 09 09 4E 65 78 74 42 6C 6F 63 6B DO....NextBlock
000150: 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B :=Working^.Next;
000160: 0D 0A 09 09 49 46 20 6E 75 6D 62 65 72 3C 3D 28 ....IF number<=(
000170: 4F 52 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F ORD(Working^.Blo
000180: 63 6B 4C 65 6E 29 2D 43 68 61 72 50 6F 73 29 20 ckLen)-CharPos)
000190: 54 48 45 4E 0D 0A 09 09 09 44 65 6C 49 6E 42 6C THEN.....DelInBl
0001A0: 6F 63 6B 28 6E 75 6D 62 65 72 29 3B 0D 0A 09 09 ock(number);....
0001B0: 09 6E 75 6D 62 65 72 3A 3D 30 3B 0D 0A 09 09 45 .number:=0;....E
0001C0: 4C 53 45 0D 0A 09 09 09 6E 75 6D 62 65 72 3A 3D LSE.....number:=
0001D0: 6E 75 6D 62 65 72 2D 4F 52 44 28 57 6F 72 6B 69 number-ORD(Worki
0001E0: 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 2B 43 68 ng^.BlockLen)+Ch
0001F0: 61 72 50 6F 73 3B 0D 0A 09 09 09 44 65 6C 49 6E arPos;.....DelIn
Size : 512 (Real : 512)
000000: 5B 54 68 69 72 64 2B 31 5D 29 2C 0D 0A 09 09 09 [Third+1]),.....
000010: 09 09 09 41 44 52 28 63 29 2C 43 68 61 72 73 72 ...ADR(c),Charsr
000020: 65 61 64 29 3B 0D 0A 09 09 09 09 45 4C 53 45 0D ead);......ELSE.
000030: 0A 09 09 09 09 09 49 6E 73 43 68 61 72 73 28 54 ......InsChars(T
000040: 6F 46 69 6C 65 2C 63 2C 43 68 61 72 73 72 65 61 oFile,c,Charsrea
000050: 64 29 3B 0D 0A 09 09 09 09 09 43 68 61 72 73 72 d);.......Charsr
000060: 65 61 64 3A 3D 30 3B 0D 0A 09 09 09 09 09 45 4E ead:=0;.......EN
000070: 44 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 D;......END;....
000080: 09 71 3A 3D 54 6F 46 69 6C 65 2E 43 75 72 50 6F .q:=ToFile.CurPo
000090: 73 3B 0D 0A 09 09 09 46 72 6F 6D 46 69 6C 65 2E s;.....FromFile.
0000A0: 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 09 09 73 CurPos:=p;.....s
0000B0: 65 74 63 75 72 70 6F 73 28 46 72 6F 6D 46 69 6C etcurpos(FromFil
0000C0: 65 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 e);.....END;....
0000D0: 49 46 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 29 IF NOT Advance()
0000E0: 20 54 48 45 4E 20 45 58 49 54 20 28 2A 20 6E 65 THEN EXIT (* ne
0000F0: 76 65 72 20 74 61 6B 65 6E 2A 29 20 45 4E 44 3B ver taken*) END;
000100: 0D 0A 09 09 44 45 43 28 69 29 3B 0D 0A 09 09 45 ....DEC(i);....E
000110: 4E 44 3B 09 28 2A 4C 4F 4F 50 2A 29 0D 0A 09 46 ND;.(*LOOP*)...F
000120: 72 6F 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3A 3D romFile.CurPos:=
000130: 72 3B 0D 0A 09 54 6F 46 69 6C 65 2E 43 75 72 50 r;...ToFile.CurP
000140: 6F 73 3A 3D 71 3B 0D 0A 09 52 45 54 55 52 4E 20 os:=q;...RETURN
000150: 54 52 55 45 3B 0D 0A 09 45 4E 44 20 42 6C 6F 63 TRUE;...END Bloc
000160: 6B 43 6F 70 79 3B 0D 0A 50 52 4F 43 45 44 55 52 kCopy;..PROCEDUR
000170: 45 20 42 6C 6F 63 6B 44 65 6C 28 56 41 52 20 46 E BlockDel(VAR F
000180: 72 6F 6D 46 69 6C 65 3A 45 64 69 74 46 69 6C 65 romFile:EditFile
000190: 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 56 41 52 09 ):BOOLEAN;..VAR.
0001A0: 70 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A 42 45 47 p:Position;..BEG
0001B0: 49 4E 0D 0A 09 49 46 20 4E 4F 54 20 43 68 65 63 IN...IF NOT Chec
0001C0: 6B 42 6C 6F 63 6B 28 46 72 6F 6D 46 69 6C 65 29 kBlock(FromFile)
0001D0: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 46 41 4C THEN RETURN FAL
0001E0: 53 45 20 45 4E 44 3B 0D 0A 09 57 49 54 48 20 46 SE END;...WITH F
0001F0: 72 6F 6D 46 69 6C 65 20 44 4F 0D 0A 09 09 4C 61 romFile DO....La
Size : 512 (Real : 512)
000000: 42 6C 6F 63 6B 28 4F 52 44 28 57 6F 72 6B 69 6E Block(ORD(Workin
000010: 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 2D 43 68 61 g^.BlockLen)-Cha
000020: 72 50 6F 73 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D rPos);.....END;.
000030: 0A 09 09 49 46 20 28 6E 75 6D 62 65 72 3E 30 29 ...IF (number>0)
000040: 20 4F 52 20 28 57 6F 72 6B 69 6E 67 3D 4E 49 4C OR (Working=NIL
000050: 29 20 54 48 45 4E 20 0D 0A 09 09 09 57 6F 72 6B ) THEN .....Work
000060: 69 6E 67 3A 3D 4E 65 78 74 42 6C 6F 63 6B 3B 0D ing:=NextBlock;.
000070: 0A 09 09 09 43 68 61 72 50 6F 73 3A 3D 30 3B 20 ....CharPos:=0;
000080: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 .....END;....END
000090: 3B 20 28 2A 57 48 49 4C 45 2A 29 0D 0A 09 49 46 ; (*WHILE*)...IF
0000A0: 20 57 6F 72 6B 69 6E 67 3D 4E 49 4C 20 54 48 45 Working=NIL THE
0000B0: 4E 20 0D 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D 66 N ....Working:=f
0000C0: 2E 43 68 61 69 6E 3B 0D 0A 09 09 57 48 49 4C 45 .Chain;....WHILE
0000D0: 20 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3C 3E Working^.Next<>
0000E0: 4E 49 4C 20 44 4F 20 57 6F 72 6B 69 6E 67 3A 3D NIL DO Working:=
0000F0: 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 20 45 4E Working^.Next EN
000100: 44 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 57 D;....CharPos:=W
000110: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
000120: 0D 0A 09 09 45 4E 44 3B 28 2A 64 65 6C 65 74 65 ....END;(*delete
000130: 64 20 65 76 65 72 79 74 68 69 6E 67 2A 29 0D 0A d everything*)..
000140: 09 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D .savecurpos(f);.
000150: 0A 09 45 4E 44 20 44 65 6C 43 68 61 72 73 3B 0D ..END DelChars;.
000160: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 73 ...PROCEDURE Ins
000170: 43 68 61 72 73 28 56 41 52 20 66 3A 45 64 69 74 Chars(VAR f:Edit
000180: 46 69 6C 65 3B 56 41 52 20 53 3A 41 52 52 41 59 File;VAR S:ARRAY
000190: 20 4F 46 20 43 48 41 52 3B 6C 65 6E 3A 49 4E 54 OF CHAR;len:INT
0001A0: 45 47 45 52 29 3B 0D 0A 28 2A 09 69 6E 73 65 72 EGER);..(*.inser
0001B0: 74 20 63 68 61 72 61 63 74 65 72 73 2A 29 0D 0A t characters*)..
0001C0: 56 41 52 09 6C 65 66 74 2C 66 6F 6C 6C 6F 77 73 VAR.left,follows
0001D0: 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 4D 61 69 6E :INTEGER;...Main
0001E0: 42 6C 6F 63 6B 3A 50 54 65 78 74 3B 0D 0A 50 52 Block:PText;..PR
0001F0: 4F 43 45 44 55 52 45 20 49 6E 73 49 6E 42 6C 6F OCEDURE InsInBlo
Size : 512 (Real : 512)
000000: 62 65 6C 73 5B 32 35 5D 3A 3D 43 75 72 50 6F 73 bels[25]:=CurPos
000010: 3B 0D 0A 09 09 43 75 72 50 6F 73 3A 3D 4C 61 62 ;....CurPos:=Lab
000020: 65 6C 73 5B 31 30 5D 3B 0D 0A 09 20 20 20 20 20 els[10];...
000030: 20 20 20 44 65 6C 43 68 61 72 73 28 46 72 6F 6D DelChars(From
000040: 46 69 6C 65 2C 72 65 70 6C 79 29 3B 0D 0A 09 09 File,reply);....
000050: 43 75 72 50 6F 73 3A 3D 4C 61 62 65 6C 73 5B 32 CurPos:=Labels[2
000060: 35 5D 3B 0D 0A 09 09 4C 61 62 65 6C 73 5B 32 35 5];....Labels[25
000070: 5D 2E 42 6C 6F 63 6B 3A 3D 4E 49 4C 3B 0D 0A 09 ].Block:=NIL;...
000080: 09 45 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 54 .END;...RETURN T
000090: 52 55 45 3B 0D 0A 09 45 4E 44 20 42 6C 6F 63 6B RUE;...END Block
0000A0: 44 65 6C 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 Del;..PROCEDURE
0000B0: 52 65 6C 6F 63 61 74 65 4C 61 62 65 6C 73 28 56 RelocateLabels(V
0000C0: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 6E 75 AR f:EditFile;nu
0000D0: 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 3B 0D 0A mber:INTEGER);..
0000E0: 28 2A 09 52 65 6C 6F 63 61 74 65 20 6C 61 62 65 (*.Relocate labe
0000F0: 6C 73 20 66 6F 72 20 74 68 65 20 63 75 72 72 65 ls for the curre
000100: 6E 74 20 62 6C 6F 63 6B 0D 0A 09 6E 75 6D 62 65 nt block...numbe
000110: 72 20 69 73 20 6E 75 6D 62 65 72 20 6F 66 20 63 r is number of c
000120: 68 61 72 61 63 74 65 72 73 20 62 65 69 6E 67 20 haracters being
000130: 64 65 6C 65 74 65 64 20 0D 0A 09 28 2D 76 65 20 deleted ...(-ve
000140: 66 6F 72 20 69 6E 73 65 72 74 69 6F 6E 73 29 0D for insertions).
000150: 0A 2A 29 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 .*)..BEGIN..
000160: 20 20 20 20 46 4F 52 20 72 65 70 6C 79 3A 3D 30 FOR reply:=0
000170: 20 54 4F 20 48 49 47 48 28 66 2E 4C 61 62 65 6C TO HIGH(f.Label
000180: 73 29 20 44 4F 0D 0A 09 09 57 49 54 48 20 66 2E s) DO....WITH f.
000190: 4C 61 62 65 6C 73 5B 72 65 70 6C 79 5D 20 44 4F Labels[reply] DO
0001A0: 0D 0A 09 09 09 49 46 20 28 42 6C 6F 63 6B 3D 57 .....IF (Block=W
0001B0: 6F 72 6B 69 6E 67 29 20 41 4E 44 20 28 4F 52 44 orking) AND (ORD
0001C0: 28 4F 66 66 73 65 74 29 3E 3D 43 68 61 72 50 6F (Offset)>=CharPo
0001D0: 73 29 20 54 48 45 4E 0D 0A 09 09 09 09 49 46 20 s) THEN......IF
0001E0: 28 6E 75 6D 62 65 72 3D 4F 52 44 28 57 6F 72 6B (number=ORD(Work
0001F0: 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 29 20 ing^.BlockLen))
Size : 512 (Real : 512)
000000: 63 6B 3B 0D 0A 56 41 52 09 73 74 61 72 74 3A 49 ck;..VAR.start:I
000010: 4E 54 45 47 45 52 3B 0D 0A 09 69 3A 49 4E 54 45 NTEGER;...i:INTE
000020: 47 45 52 3B 0D 0A 42 45 47 49 4E 0D 0A 0D 0A 09 GER;..BEGIN.....
000030: 09 28 2A 61 64 6A 75 73 74 20 6C 61 62 65 6C 73 .(*adjust labels
000040: 2A 29 0D 0A 09 52 65 6C 6F 63 61 74 65 4C 61 62 *)...RelocateLab
000050: 65 6C 73 28 66 2C 2D 6C 65 6E 29 3B 0D 0A 09 73 els(f,-len);...s
000060: 74 61 72 74 3A 3D 30 3B 0D 0A 09 57 49 54 48 20 tart:=0;...WITH
000070: 57 6F 72 6B 69 6E 67 5E 20 44 4F 0D 0A 09 09 49 Working^ DO....I
000080: 46 20 4F 52 44 28 42 6C 6F 63 6B 4C 65 6E 29 3E F ORD(BlockLen)>
000090: 43 68 61 72 50 6F 73 20 54 48 45 4E 0D 0A 09 09 CharPos THEN....
0000A0: 20 20 20 20 4D 6F 76 65 75 70 28 41 44 52 28 43 Moveup(ADR(C
0000B0: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 29 2C 41 hars[CharPos]),A
0000C0: 44 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 DR(Chars[CharPos
0000D0: 2B 6C 65 6E 5D 29 2C 0D 0A 09 09 09 4F 52 44 28 +len]),.....ORD(
0000E0: 42 6C 6F 63 6B 4C 65 6E 29 2D 43 68 61 72 50 6F BlockLen)-CharPo
0000F0: 73 29 3B 0D 0A 09 09 20 20 20 20 45 4E 44 3B 0D s);.... END;.
000100: 0A 09 09 42 6C 6F 63 6B 4C 65 6E 3A 3D 4F 52 44 ...BlockLen:=ORD
000110: 28 42 6C 6F 63 6B 4C 65 6E 29 2B 6C 65 6E 3B 0D (BlockLen)+len;.
000120: 0A 09 09 57 48 49 4C 45 20 6C 65 6E 3E 30 20 44 ...WHILE len>0 D
000130: 4F 0D 0A 09 09 09 43 68 61 72 73 5B 43 68 61 72 O.....Chars[Char
000140: 50 6F 73 5D 3A 3D 53 5B 73 74 61 72 74 5D 3B 0D Pos]:=S[start];.
000150: 0A 09 09 09 49 4E 43 28 73 74 61 72 74 29 3B 0D ....INC(start);.
000160: 0A 09 09 09 44 45 43 28 6C 65 6E 29 3B 0D 0A 09 ....DEC(len);...
000170: 09 09 49 4E 43 28 43 68 61 72 50 6F 73 29 3B 0D ..INC(CharPos);.
000180: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B ....END;....END;
000190: 0D 0A 09 45 4E 44 20 49 6E 73 49 6E 42 6C 6F 63 ...END InsInBloc
0001A0: 6B 3B 0D 0A 09 09 09 0D 0A 28 2A 09 49 66 20 74 k;.......(*.If t
0001B0: 65 78 74 20 77 69 6C 6C 20 66 69 74 20 69 6E 20 ext will fit in
0001C0: 63 75 72 72 65 6E 74 20 62 6C 6F 63 6B 2C 20 65 current block, e
0001D0: 6E 74 65 72 20 69 6E 20 63 75 72 72 65 6E 74 20 nter in current
0001E0: 62 6C 6F 63 6B 0D 0A 09 65 6C 73 65 20 73 70 6C block...else spl
0001F0: 69 74 20 62 6C 6F 63 6B 20 61 6E 64 20 65 6E 74 it block and ent
Size : 512 (Real : 512)
000000: 54 48 45 4E 0D 0A 09 09 09 09 09 42 6C 6F 63 6B THEN.......Block
000010: 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B :=Working^.Next;
000020: 0D 0A 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 30 .......Offset:=0
000030: 3B 0D 0A 09 09 09 09 45 4C 53 49 46 20 28 6E 75 ;......ELSIF (nu
000040: 6D 62 65 72 2B 43 68 61 72 50 6F 73 29 3E 4F 52 mber+CharPos)>OR
000050: 44 28 4F 66 66 73 65 74 29 20 54 48 45 4E 0D 0A D(Offset) THEN..
000060: 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 43 68 61 .....Offset:=Cha
000070: 72 50 6F 73 0D 0A 09 09 09 09 45 4C 53 45 0D 0A rPos......ELSE..
000080: 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 4F 52 44 .....Offset:=ORD
000090: 28 4F 66 66 73 65 74 29 2D 6E 75 6D 62 65 72 0D (Offset)-number.
0000A0: 0A 09 09 09 09 09 45 4E 44 3B 28 2A 49 46 2A 29 ......END;(*IF*)
0000B0: 0D 0A 09 09 09 09 45 4E 44 3B 28 2A 49 46 20 42 ......END;(*IF B
0000C0: 6C 6F 63 6B 3D 57 6F 72 6B 69 6E 67 20 65 74 63 lock=Working etc
0000D0: 2A 29 0D 0A 09 09 09 45 4E 44 3B 20 28 2A 57 49 *).....END; (*WI
0000E0: 54 48 2A 29 0D 0A 09 09 45 4E 44 3B 28 2A 46 4F TH*)....END;(*FO
0000F0: 52 2A 29 0D 0A 09 45 4E 44 20 52 65 6C 6F 63 61 R*)...END Reloca
000100: 74 65 4C 61 62 65 6C 73 3B 0D 0A 0D 0A 0D 0A 50 teLabels;......P
000110: 52 4F 43 45 44 55 52 45 20 44 65 6C 43 68 61 72 ROCEDURE DelChar
000120: 73 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 s(VAR f:EditFile
000130: 3B 6E 75 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 ;number:INTEGER)
000140: 3B 0D 0A 0D 0A 28 2A 09 64 65 6C 65 74 65 20 61 ;....(*.delete a
000150: 20 6E 75 6D 62 65 72 20 6F 66 20 63 68 61 72 61 number of chara
000160: 63 74 65 72 73 2A 29 0D 0A 0D 0A 50 52 4F 43 45 cters*)....PROCE
000170: 44 55 52 45 20 44 65 6C 49 6E 42 6C 6F 63 6B 28 DURE DelInBlock(
000180: 6E 75 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 3B number:INTEGER);
000190: 0D 0A 0D 0A 28 2A 09 50 65 72 66 6F 72 6D 20 61 ....(*.Perform a
0001A0: 20 64 65 6C 65 74 65 20 77 68 69 63 68 20 64 6F delete which do
0001B0: 65 73 20 6E 6F 74 20 73 70 61 6E 20 61 20 62 6C es not span a bl
0001C0: 6F 63 6B 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 52 ock*)..BEGIN...R
0001D0: 65 6C 6F 63 61 74 65 4C 61 62 65 6C 73 28 66 2C elocateLabels(f,
0001E0: 6E 75 6D 62 65 72 29 3B 0D 0A 09 57 49 54 48 20 number);...WITH
0001F0: 57 6F 72 6B 69 6E 67 5E 20 44 4F 0D 0A 09 09 49 Working^ DO....I
Size : 512 (Real : 512)
000000: 65 72 20 69 6E 20 61 70 70 72 6F 70 72 69 61 74 er in appropriat
000010: 65 20 62 6C 6F 63 6B 2A 29 0D 0A 0D 0A 42 45 47 e block*)....BEG
000020: 49 4E 0D 0A 09 73 65 74 63 75 72 70 6F 73 28 66 IN...setcurpos(f
000030: 29 3B 0D 0A 09 6C 65 66 74 3A 3D 54 65 78 74 4C );...left:=TextL
000040: 65 6E 2D 4F 52 44 28 57 6F 72 6B 69 6E 67 5E 2E en-ORD(Working^.
000050: 42 6C 6F 63 6B 4C 65 6E 29 3B 0D 0A 0D 0A 09 28 BlockLen);.....(
000060: 2A 09 6C 65 66 74 20 69 73 20 63 68 61 72 61 63 *.left is charac
000070: 74 65 72 73 20 6C 65 66 74 20 69 6E 20 62 6C 6F ters left in blo
000080: 63 6B 2A 29 0D 0A 0D 0A 09 49 46 20 6C 65 66 74 ck*).....IF left
000090: 3E 3D 6C 65 6E 20 54 48 45 4E 20 49 6E 73 49 6E >=len THEN InsIn
0000A0: 42 6C 6F 63 6B 0D 0A 09 45 4C 53 45 0D 0A 0D 0A Block...ELSE....
0000B0: 09 09 28 2A 73 70 6C 69 74 20 74 68 65 20 62 6C ..(*split the bl
0000C0: 6F 63 6B 20 73 6F 20 74 68 61 74 20 61 66 74 65 ock so that afte
0000D0: 72 20 69 6E 73 65 72 74 20 74 68 65 20 74 77 6F r insert the two
0000E0: 20 62 6C 6F 63 6B 73 0D 0A 09 09 20 20 77 69 6C blocks.... wil
0000F0: 6C 20 62 65 20 61 70 70 72 6F 78 20 65 71 75 61 l be approx equa
000100: 6C 20 69 6E 20 73 69 7A 65 2A 29 0D 0A 09 09 6C l in size*)....l
000110: 65 66 74 3A 3D 4F 52 44 28 57 6F 72 6B 69 6E 67 eft:=ORD(Working
000120: 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 44 49 56 20 ^.BlockLen) DIV
000130: 32 3B 0D 0A 09 09 4D 61 69 6E 42 6C 6F 63 6B 3A 2;....MainBlock:
000140: 3D 57 6F 72 6B 69 6E 67 3B 0D 0A 09 09 4E 65 77 =Working;....New
000150: 42 6C 6F 63 6B 3B 0D 0A 09 09 57 6F 72 6B 69 6E Block;....Workin
000160: 67 5E 2E 50 72 65 64 3A 3D 4D 61 69 6E 42 6C 6F g^.Pred:=MainBlo
000170: 63 6B 3B 0D 0A 09 09 46 4F 52 20 72 65 70 6C 79 ck;....FOR reply
000180: 3A 3D 30 20 54 4F 20 48 49 47 48 28 66 2E 4C 61 :=0 TO HIGH(f.La
000190: 62 65 6C 73 29 20 44 4F 0D 0A 09 09 09 57 49 54 bels) DO.....WIT
0001A0: 48 20 66 2E 4C 61 62 65 6C 73 5B 72 65 70 6C 79 H f.Labels[reply
0001B0: 5D 20 44 4F 0D 0A 09 09 09 09 49 46 20 28 42 6C ] DO......IF (Bl
0001C0: 6F 63 6B 3D 4D 61 69 6E 42 6C 6F 63 6B 29 20 41 ock=MainBlock) A
0001D0: 4E 44 20 28 4F 52 44 28 4F 66 66 73 65 74 29 3E ND (ORD(Offset)>
0001E0: 3D 6C 65 66 74 29 20 54 48 45 4E 0D 0A 09 09 09 =left) THEN.....
0001F0: 09 09 42 6C 6F 63 6B 3A 3D 57 6F 72 6B 69 6E 67 ..Block:=Working
Size : 512 (Real : 512)
000000: 46 20 28 6E 75 6D 62 65 72 3D 4F 52 44 28 42 6C F (number=ORD(Bl
000010: 6F 63 6B 4C 65 6E 29 29 20 28 2A 3D 3E 43 68 61 ockLen)) (*=>Cha
000020: 72 50 6F 73 3D 30 2A 29 20 54 48 45 4E 0D 0A 09 rPos=0*) THEN...
000030: 09 09 28 2A 44 65 6C 65 74 65 20 62 6C 6F 63 6B ..(*Delete block
000040: 2A 29 0D 0A 0D 0A 09 09 09 49 46 20 4E 65 78 74 *).......IF Next
000050: 3C 3E 4E 49 4C 20 54 48 45 4E 20 4E 65 78 74 5E <>NIL THEN Next^
000060: 2E 50 72 65 64 3A 3D 50 72 65 64 20 45 4E 44 3B .Pred:=Pred END;
000070: 0D 0A 09 09 09 49 46 20 50 72 65 64 3C 3E 4E 49 .....IF Pred<>NI
000080: 4C 20 54 48 45 4E 20 0D 0A 09 09 09 09 50 72 65 L THEN ......Pre
000090: 64 5E 2E 4E 65 78 74 3A 3D 4E 65 78 74 3B 0D 0A d^.Next:=Next;..
0000A0: 09 09 09 09 44 49 53 50 4F 53 45 28 57 6F 72 6B ....DISPOSE(Work
0000B0: 69 6E 67 29 3B 0D 0A 09 09 09 45 4C 53 49 46 20 ing);.....ELSIF
0000C0: 4E 65 78 74 3C 3E 4E 49 4C 20 54 48 45 4E 20 0D Next<>NIL THEN .
0000D0: 0A 09 09 09 09 66 2E 43 68 61 69 6E 3A 3D 4E 65 .....f.Chain:=Ne
0000E0: 78 74 3B 0D 0A 09 09 09 09 44 49 53 50 4F 53 45 xt;......DISPOSE
0000F0: 28 57 6F 72 6B 69 6E 67 29 3B 0D 0A 09 09 09 45 (Working);.....E
000100: 4C 53 45 09 28 2A 6F 6E 6C 79 20 62 6C 6F 63 6B LSE.(*only block
000110: 20 69 6E 20 66 69 6C 65 20 73 6F 20 6B 65 65 70 in file so keep
000120: 2A 29 0D 0A 09 09 09 09 42 6C 6F 63 6B 4C 65 6E *)......BlockLen
000130: 3A 3D 31 3B 0D 0A 09 09 09 09 57 6F 72 6B 69 6E :=1;......Workin
000140: 67 5E 2E 43 68 61 72 73 5B 30 5D 3A 3D 45 4F 46 g^.Chars[0]:=EOF
000150: 3B 0D 0A 09 09 09 09 45 4E 44 3B 28 2A 50 72 65 ;......END;(*Pre
000160: 64 3C 3E 4E 49 4C 2A 29 0D 0A 09 09 45 4C 53 45 d<>NIL*)....ELSE
000170: 09 0D 0A 09 09 09 49 46 20 4F 52 44 28 42 6C 6F ......IF ORD(Blo
000180: 63 6B 4C 65 6E 29 3E 28 43 68 61 72 50 6F 73 2B ckLen)>(CharPos+
000190: 6E 75 6D 62 65 72 29 20 54 48 45 4E 0D 0A 09 09 number) THEN....
0001A0: 09 20 20 20 20 4D 6F 76 65 64 6F 77 6E 28 41 44 . Movedown(AD
0001B0: 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 2B R(Chars[CharPos+
0001C0: 6E 75 6D 62 65 72 5D 29 2C 0D 0A 09 09 09 09 41 number]),......A
0001D0: 44 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 DR(Chars[CharPos
0001E0: 5D 29 2C 0D 0A 09 09 09 09 4F 52 44 28 42 6C 6F ]),......ORD(Blo
0001F0: 63 6B 4C 65 6E 29 2D 4F 52 44 28 43 68 61 72 50 ckLen)-ORD(CharP
Size : 512 (Real : 512)
000000: 3B 0D 0A 09 09 09 09 09 4F 66 66 73 65 74 3A 3D ;.......Offset:=
000010: 4F 52 44 28 4F 66 66 73 65 74 29 2D 6C 65 66 74 ORD(Offset)-left
000020: 3B 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ;.......END;....
000030: 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B 0D ..END;.....END;.
000040: 0A 09 09 09 09 09 0D 0A 09 09 57 49 54 48 20 4D ..........WITH M
000050: 61 69 6E 42 6C 6F 63 6B 5E 20 44 4F 0D 0A 09 09 ainBlock^ DO....
000060: 09 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3A 3D .Working^.Next:=
000070: 4E 65 78 74 3B 0D 0A 09 09 09 49 46 20 4E 65 78 Next;.....IF Nex
000080: 74 3C 3E 4E 49 4C 20 54 48 45 4E 20 4E 65 78 74 t<>NIL THEN Next
000090: 5E 2E 50 72 65 64 3A 3D 57 6F 72 6B 69 6E 67 20 ^.Pred:=Working
0000A0: 45 4E 44 3B 0D 0A 09 09 09 4E 65 78 74 3A 3D 57 END;.....Next:=W
0000B0: 6F 72 6B 69 6E 67 3B 0D 0A 09 09 09 57 6F 72 6B orking;.....Work
0000C0: 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 3A 3D 4F ing^.BlockLen:=O
0000D0: 52 44 28 42 6C 6F 63 6B 4C 65 6E 29 2D 6C 65 66 RD(BlockLen)-lef
0000E0: 74 3B 0D 0A 09 09 09 42 6C 6F 63 6B 4C 65 6E 3A t;.....BlockLen:
0000F0: 3D 6C 65 66 74 3B 0D 0A 09 09 09 4D 6F 76 65 75 =left;.....Moveu
000100: 70 28 41 44 52 28 43 68 61 72 73 5B 42 6C 6F 63 p(ADR(Chars[Bloc
000110: 6B 4C 65 6E 5D 29 2C 0D 0A 09 09 09 20 20 20 20 kLen]),.....
000120: 41 44 52 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 ADR(Working^.Cha
000130: 72 73 29 2C 0D 0A 09 09 09 20 20 20 20 6C 65 66 rs),..... lef
000140: 74 2B 31 29 3B 0D 0A 09 09 09 49 46 20 43 68 61 t+1);.....IF Cha
000150: 72 50 6F 73 3C 4F 52 44 28 42 6C 6F 63 6B 4C 65 rPos<ORD(BlockLe
000160: 6E 29 20 54 48 45 4E 20 57 6F 72 6B 69 6E 67 3A n) THEN Working:
000170: 3D 4D 61 69 6E 42 6C 6F 63 6B 0D 0A 09 09 09 45 =MainBlock.....E
000180: 4C 53 45 20 43 68 61 72 50 6F 73 3A 3D 43 68 61 LSE CharPos:=Cha
000190: 72 50 6F 73 2D 4F 52 44 28 42 6C 6F 63 6B 4C 65 rPos-ORD(BlockLe
0001A0: 6E 29 20 45 4E 44 3B 0D 0A 09 09 09 49 6E 73 49 n) END;.....InsI
0001B0: 6E 42 6C 6F 63 6B 3B 0D 0A 09 09 09 45 4E 44 3B nBlock;.....END;
0001C0: 28 2A 57 49 54 48 2A 29 0D 0A 09 09 45 4E 44 3B (*WITH*)....END;
0001D0: 28 2A 6C 65 66 74 3E 3D 6C 65 6E 2A 29 0D 0A 09 (*left>=len*)...
0001E0: 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A savecurpos(f);..
0001F0: 09 45 4E 44 20 49 6E 73 43 68 61 72 73 3B 0D 0A .END InsChars;..
Size : 512 (Real : 512)
000000: 6E 64 6F 77 3A 49 4E 54 45 47 45 52 3B 56 41 52 ndow:INTEGER;VAR
000010: 20 63 75 72 78 2C 63 75 72 79 3A 43 41 52 44 49 curx,cury:CARDI
000020: 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 52 NAL);..BEGIN...R
000030: 65 74 72 6C 69 6E 65 28 66 2C 6C 65 6E 2C 63 68 etrline(f,len,ch
000040: 61 72 73 69 6E 2C 70 6F 73 2C 6D 6F 76 65 64 2C arsin,pos,moved,
000050: 30 29 3B 0D 0A 09 6C 69 6E 65 70 6F 73 3A 3D 30 0);...linepos:=0
000060: 3B 0D 0A 09 46 4F 52 20 69 63 3A 3D 30 20 54 4F ;...FOR ic:=0 TO
000070: 20 63 68 61 72 73 69 6E 20 44 4F 0D 0A 09 09 52 charsin DO....R
000080: 65 61 64 4E 65 78 74 43 68 61 72 28 70 6F 73 2C eadNextChar(pos,
000090: 63 68 29 3B 0D 0A 09 09 49 46 20 63 68 3D 30 39 ch);....IF ch=09
0000A0: 78 20 54 48 45 4E 20 6C 69 6E 65 70 6F 73 3A 3D x THEN linepos:=
0000B0: 49 41 4E 44 28 6C 69 6E 65 70 6F 73 2B 38 2C 30 IAND(linepos+8,0
0000C0: 66 66 66 38 68 29 0D 0A 09 09 45 4C 53 45 20 49 fff8h)....ELSE I
0000D0: 4E 43 28 6C 69 6E 65 70 6F 73 29 20 45 4E 44 3B NC(linepos) END;
0000E0: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 4C 65 66 74 4D ....END;...LeftM
0000F0: 61 72 67 3A 3D 30 3B 0D 0A 09 57 48 49 4C 45 20 arg:=0;...WHILE
000100: 6C 69 6E 65 70 6F 73 3E 28 4C 65 66 74 4D 61 72 linepos>(LeftMar
000110: 67 2B 53 63 72 65 65 6E 57 69 64 74 68 29 20 44 g+ScreenWidth) D
000120: 4F 0D 0A 09 09 4C 65 66 74 4D 61 72 67 3A 3D 4C O....LeftMarg:=L
000130: 65 66 74 4D 61 72 67 2B 33 32 3B 0D 0A 09 09 45 eftMarg+32;....E
000140: 4E 44 3B 0D 0A 09 4C 65 66 74 4D 61 72 67 69 6E ND;...LeftMargin
000150: 5B 77 69 6E 64 6F 77 5D 3A 3D 4C 65 66 74 4D 61 [window]:=LeftMa
000160: 72 67 3B 0D 0A 09 45 4E 44 20 53 65 74 4C 65 66 rg;...END SetLef
000170: 74 4D 61 72 67 3B 0D 0A 50 52 4F 43 45 44 55 52 tMarg;..PROCEDUR
000180: 45 20 44 69 73 70 6C 61 79 46 69 6C 65 28 66 3A E DisplayFile(f:
000190: 45 64 69 74 46 69 6C 65 3B 77 69 6E 64 6F 77 3A EditFile;window:
0001A0: 49 4E 54 45 47 45 52 3B 56 41 52 20 63 75 72 78 INTEGER;VAR curx
0001B0: 2C 63 75 72 79 3A 43 41 52 44 49 4E 41 4C 29 3B ,cury:CARDINAL);
0001C0: 0D 0A 0D 0A 28 2A 09 72 65 64 69 73 70 6C 61 79 ....(*.redisplay
0001D0: 20 61 73 20 6D 75 63 68 20 74 65 78 74 20 61 73 as much text as
0001E0: 20 77 69 6C 6C 20 66 69 74 20 69 6E 20 74 68 65 will fit in the
0001F0: 20 77 69 6E 64 6F 77 0D 0A 09 66 6F 72 20 74 68 window...for th
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 56 41 52 09 62 3A 42 4F 4F 4C 45 41 ....VAR.b:BOOLEA
000010: 4E 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 N;....PROCEDURE
000020: 42 61 63 6B 75 70 4C 69 6E 65 28 29 3A 49 4E 54 BackupLine():INT
000030: 45 47 45 52 3B 0D 0A 0D 0A 28 2A 09 42 61 63 6B EGER;....(*.Back
000040: 75 70 20 74 6F 20 62 65 67 69 6E 6E 69 6E 67 20 up to beginning
000050: 6F 66 20 63 75 72 72 65 6E 74 20 6C 69 6E 65 0D of current line.
000060: 0A 09 72 65 74 75 72 6E 73 20 6E 75 6D 62 65 72 ..returns number
000070: 20 6F 66 20 63 68 61 72 61 63 74 65 72 73 20 62 of characters b
000080: 61 63 6B 65 64 20 75 70 0D 0A 0D 0A 09 61 66 74 acked up.....aft
000090: 65 72 20 74 68 65 20 63 61 6C 6C 2C 20 74 68 65 er the call, the
0000A0: 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 74 68 65 position is the
0000B0: 20 66 69 72 73 74 20 63 68 61 72 61 63 74 65 72 first character
0000C0: 0D 0A 09 61 66 74 65 72 20 6F 66 20 74 68 65 20 ...after of the
0000D0: 6C 69 6E 65 2A 29 0D 0A 56 41 52 09 70 6F 73 3A line*)..VAR.pos:
0000E0: 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 49 4E 0D INTEGER;..BEGIN.
0000F0: 0A 09 70 6F 73 3A 3D 30 3B 0D 0A 09 4C 4F 4F 50 ..pos:=0;...LOOP
000100: 0D 0A 09 09 49 46 20 4E 4F 54 20 42 61 63 6B 75 ....IF NOT Backu
000110: 70 28 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E p() THEN EXIT EN
000120: 44 3B 0D 0A 09 09 63 68 3A 3D 57 6F 72 6B 69 6E D;....ch:=Workin
000130: 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F 73 g^.Chars[CharPos
000140: 5D 3B 0D 0A 09 09 49 46 20 28 28 63 68 3D 43 52 ];....IF ((ch=CR
000150: 29 20 4F 52 20 28 63 68 3D 4C 46 29 20 4F 52 20 ) OR (ch=LF) OR
000160: 28 63 68 3D 46 46 29 29 20 20 54 48 45 4E 20 0D (ch=FF)) THEN .
000170: 0A 09 09 09 62 3A 3D 41 64 76 61 6E 63 65 28 29 ....b:=Advance()
000180: 3B 0D 0A 09 09 09 45 58 49 54 20 0D 0A 09 09 09 ;.....EXIT .....
000190: 45 4E 44 3B 0D 0A 09 09 70 6F 73 3A 3D 70 6F 73 END;....pos:=pos
0001A0: 2B 31 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A 4C 4F +1;....END; (*LO
0001B0: 4F 50 2A 29 0D 0A 09 52 45 54 55 52 4E 20 70 6F OP*)...RETURN po
0001C0: 73 3B 0D 0A 09 45 4E 44 20 42 61 63 6B 75 70 4C s;...END BackupL
0001D0: 69 6E 65 3B 0D 0A 56 41 52 09 41 64 76 61 6E 63 ine;..VAR.Advanc
0001E0: 65 4F 4B 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 50 52 eOK:BOOLEAN;..PR
0001F0: 4F 43 45 44 55 52 45 20 41 64 76 61 6E 63 65 4C OCEDURE AdvanceL
Size : 512 (Real : 512)
000000: 65 20 67 69 76 65 6E 20 66 69 6C 65 20 73 74 61 e given file sta
000010: 72 74 69 6E 67 20 61 74 20 74 68 65 20 63 75 72 rting at the cur
000020: 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 6E rent position in
000030: 20 74 68 65 20 66 69 6C 65 2A 29 0D 0A 56 41 52 the file*)..VAR
000040: 09 69 2C 6A 2C 6B 2C 6C 69 6E 65 70 6F 73 3A 43 .i,j,k,linepos:C
000050: 41 52 44 49 4E 41 4C 3B 0D 0A 09 6D 6F 76 65 64 ARDINAL;...moved
000060: 6F 6E 65 3A 49 4E 54 45 47 45 52 3B 09 0D 0A 09 one:INTEGER;....
000070: 73 74 61 72 74 6C 69 6E 65 3A 49 4E 54 45 47 45 startline:INTEGE
000080: 52 3B 20 28 2A 66 69 72 73 74 20 6C 69 6E 65 20 R; (*first line
000090: 6F 66 20 77 69 6E 64 6F 77 2A 29 0D 0A 42 45 47 of window*)..BEG
0000A0: 49 4E 0D 0A 09 4C 65 66 74 4D 61 72 67 3A 3D 4C IN...LeftMarg:=L
0000B0: 65 66 74 4D 61 72 67 69 6E 5B 77 69 6E 64 6F 77 eftMargin[window
0000C0: 5D 3B 0D 0A 09 73 74 61 72 74 6C 69 6E 65 3A 3D ];...startline:=
0000D0: 28 49 4E 54 45 47 45 52 28 4C 69 6E 65 73 50 65 (INTEGER(LinesPe
0000E0: 72 57 69 6E 64 6F 77 29 2B 31 29 2A 28 77 69 6E rWindow)+1)*(win
0000F0: 64 6F 77 2D 31 29 3B 0D 0A 09 47 6F 74 6F 78 79 dow-1);...Gotoxy
000100: 28 30 2C 73 74 61 72 74 6C 69 6E 65 29 3B 0D 0A (0,startline);..
000110: 0D 0A 09 28 2A 66 69 72 73 74 20 6C 69 6E 65 20 ...(*first line
000120: 6F 66 20 74 68 69 73 20 77 69 6E 64 6F 77 2A 29 of this window*)
000130: 0D 0A 09 69 3A 3D 30 3B 09 28 2A 6C 69 6E 65 20 ...i:=0;.(*line
000140: 77 69 74 68 69 6E 20 77 69 6E 64 6F 77 2A 29 0D within window*).
000150: 0A 09 6B 3A 3D 4C 69 6E 65 73 50 65 72 57 69 6E ..k:=LinesPerWin
000160: 64 6F 77 20 44 49 56 20 32 3B 0D 0A 09 52 65 74 dow DIV 2;...Ret
000170: 72 6C 69 6E 65 28 66 2C 6C 65 6E 2C 63 68 61 72 rline(f,len,char
000180: 73 69 6E 2C 70 6F 73 2C 6D 6F 76 65 64 2C 2D 6B sin,pos,moved,-k
000190: 29 3B 0D 0A 09 0D 0A 09 4C 4F 4F 50 0D 0A 0D 0A );......LOOP....
0001A0: 09 09 28 2A 63 68 65 63 6B 20 69 66 20 74 68 69 ..(*check if thi
0001B0: 73 20 69 73 20 74 68 65 20 6C 69 6E 65 20 77 65 s is the line we
0001C0: 20 77 65 72 65 20 70 6F 73 69 74 69 6F 6E 65 64 were positioned
0001D0: 20 74 6F 20 75 70 6F 6E 20 65 6E 74 72 79 2A 29 to upon entry*)
0001E0: 0D 0A 0D 0A 09 09 6C 69 6E 65 70 6F 73 3A 3D 30 ......linepos:=0
0001F0: 3B 0D 0A 09 09 6A 3A 3D 30 3B 0D 0A 09 09 4C 4F ;....j:=0;....LO
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 45 64 69 74 44 69 73 70 6C 61 ODULE EditDispla
000020: 79 3B 0D 0A 28 2A 09 44 69 73 70 6C 61 79 20 70 y;..(*.Display p
000030: 61 72 74 20 6F 66 20 61 20 66 69 6C 65 20 62 65 art of a file be
000040: 69 6E 67 20 65 64 69 74 65 64 2A 29 0D 0A 46 52 ing edited*)..FR
000050: 4F 4D 09 53 43 52 45 45 4E 49 4F 20 49 4D 50 4F OM.SCREENIO IMPO
000060: 52 54 20 47 6F 74 6F 78 79 2C 53 63 72 65 65 6E RT Gotoxy,Screen
000070: 43 6F 6E 74 72 6F 6C 2C 0D 0A 09 09 09 4D 61 64 Control,.....Mad
000080: 65 43 68 61 6E 67 65 2C 53 63 72 65 65 6E 57 69 eChange,ScreenWi
000090: 64 74 68 2C 53 63 72 65 65 6E 44 65 70 74 68 3B dth,ScreenDepth;
0000A0: 0D 0A 46 52 4F 4D 20 09 54 65 72 6D 69 6E 61 6C ..FROM .Terminal
0000B0: 20 49 4D 50 4F 52 54 20 57 72 69 74 65 53 74 72 IMPORT WriteStr
0000C0: 69 6E 67 2C 57 72 69 74 65 2C 57 72 69 74 65 4C ing,Write,WriteL
0000D0: 6E 2C 52 65 61 64 3B 0D 0A 46 52 4F 4D 20 09 4D n,Read;..FROM .M
0000E0: 61 6B 65 45 64 69 74 73 20 49 4D 50 4F 52 54 20 akeEdits IMPORT
0000F0: 50 6F 73 69 74 69 6F 6E 2C 52 65 74 72 6C 69 6E Position,Retrlin
000100: 65 2C 52 65 61 64 4E 65 78 74 43 68 61 72 2C 45 e,ReadNextChar,E
000110: 72 72 6F 72 4C 69 73 74 2C 45 72 72 6F 72 43 6F rrorList,ErrorCo
000120: 75 6E 74 2C 4C 61 62 65 6C 4F 70 3B 0D 0A 46 52 unt,LabelOp;..FR
000130: 4F 4D 09 45 64 69 74 43 6F 6E 74 20 49 4D 50 4F OM.EditCont IMPO
000140: 52 54 20 4C 65 66 74 4D 61 72 67 69 6E 2C 46 69 RT LeftMargin,Fi
000150: 6C 65 73 2C 43 75 72 72 65 6E 74 57 69 6E 64 6F les,CurrentWindo
000160: 77 2C 43 75 72 72 65 6E 74 46 69 6C 65 2C 54 68 w,CurrentFile,Th
000170: 69 73 78 2C 54 68 69 73 79 2C 0D 0A 09 09 09 63 isx,Thisy,.....c
000180: 75 72 78 2C 63 75 72 79 2C 52 65 44 69 73 70 6C urx,cury,ReDispl
000190: 61 79 3B 0D 0A 46 52 4F 4D 20 09 49 6E 74 4C 6F ay;..FROM .IntLo
0001A0: 67 69 63 20 49 4D 50 4F 52 54 20 49 41 4E 44 3B gic IMPORT IAND;
0001B0: 0D 0A 46 52 4F 4D 09 46 69 6C 65 73 20 49 4D 50 ..FROM.Files IMP
0001C0: 4F 52 54 20 4C 6F 6F 6B 75 70 2C 43 6C 6F 73 65 ORT Lookup,Close
0001D0: 2C 46 49 4C 45 2C 52 65 61 64 42 6C 6F 63 6B 3B ,FILE,ReadBlock;
0001E0: 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D ..FROM.SYSTEM IM
0001F0: 50 4F 52 54 20 41 44 52 3B 0D 0A 43 4F 4E 53 54 PORT ADR;..CONST
Size : 512 (Real : 512)
000000: 4F 50 0D 0A 09 09 09 49 46 20 28 6D 6F 76 65 64 OP.....IF (moved
000010: 3D 30 29 20 41 4E 44 20 28 6A 3C 3D 43 41 52 44 =0) AND (j<=CARD
000020: 49 4E 41 4C 28 63 68 61 72 73 69 6E 29 29 20 54 INAL(charsin)) T
000030: 48 45 4E 0D 0A 09 09 09 09 63 75 72 78 3A 3D 6C HEN......curx:=l
000040: 69 6E 65 70 6F 73 2D 4C 65 66 74 4D 61 72 67 3B inepos-LeftMarg;
000050: 0D 0A 09 09 09 09 63 75 72 79 3A 3D 69 2B 43 41 ......cury:=i+CA
000060: 52 44 49 4E 41 4C 28 73 74 61 72 74 6C 69 6E 65 RDINAL(startline
000070: 29 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 )......END;.....
000080: 49 4E 43 28 6A 29 3B 0D 0A 09 09 09 49 46 20 6A INC(j);.....IF j
000090: 3E 43 41 52 44 49 4E 41 4C 28 6C 65 6E 29 20 54 >CARDINAL(len) T
0000A0: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 0D HEN EXIT END;...
0000B0: 0A 09 09 09 28 2A 63 68 65 63 6B 20 66 6F 72 20 ....(*check for
0000C0: 63 75 72 73 6F 72 20 6C 69 6E 65 2A 29 0D 0A 0D cursor line*)...
0000D0: 0A 09 09 09 52 65 61 64 4E 65 78 74 43 68 61 72 ....ReadNextChar
0000E0: 28 70 6F 73 2C 63 68 29 3B 0D 0A 09 09 09 49 46 (pos,ch);.....IF
0000F0: 20 63 68 3D 30 39 78 20 54 48 45 4E 20 0D 0A 09 ch=09x THEN ...
000100: 09 09 09 52 45 50 45 41 54 0D 0A 09 09 09 09 09 ...REPEAT.......
000110: 49 4E 43 28 6C 69 6E 65 70 6F 73 29 3B 0D 0A 09 INC(linepos);...
000120: 09 09 09 09 49 46 20 28 6C 69 6E 65 70 6F 73 3E ....IF (linepos>
000130: 4C 65 66 74 4D 61 72 67 29 20 0D 0A 09 09 09 09 LeftMarg) ......
000140: 09 41 4E 44 20 28 6C 69 6E 65 70 6F 73 3C 28 53 .AND (linepos<(S
000150: 63 72 65 65 6E 57 69 64 74 68 2B 4C 65 66 74 4D creenWidth+LeftM
000160: 61 72 67 29 29 20 54 48 45 4E 20 0D 0A 09 09 09 arg)) THEN .....
000170: 09 09 09 57 72 69 74 65 28 27 20 27 29 20 0D 0A ...Write(' ') ..
000180: 09 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 09 ......END;......
000190: 09 55 4E 54 49 4C 20 49 41 4E 44 28 6C 69 6E 65 .UNTIL IAND(line
0001A0: 70 6F 73 2C 37 29 3D 30 3B 0D 0A 09 09 09 45 4C pos,7)=0;.....EL
0001B0: 53 49 46 20 63 68 3D 45 4F 46 20 54 48 45 4E 20 SIF ch=EOF THEN
0001C0: 45 58 49 54 0D 0A 09 09 09 45 4C 53 45 20 0D 0A EXIT.....ELSE ..
0001D0: 09 09 09 09 49 4E 43 28 6C 69 6E 65 70 6F 73 29 ....INC(linepos)
0001E0: 3B 0D 0A 09 09 09 09 49 46 20 28 6C 69 6E 65 70 ;......IF (linep
0001F0: 6F 73 3E 4C 65 66 74 4D 61 72 67 29 0D 0A 09 09 os>LeftMarg)....
Size : 512 (Real : 512)
000000: 09 45 4F 46 3D 31 61 78 3B 0D 0A 0D 0A 50 52 4F .EOF=1ax;....PRO
000010: 43 45 44 55 52 45 20 45 72 72 6F 72 4D 65 73 73 CEDURE ErrorMess
000020: 61 67 65 28 73 31 2C 73 32 3A 41 52 52 41 59 20 age(s1,s2:ARRAY
000030: 4F 46 20 43 48 41 52 29 3B 0D 0A 0D 0A 28 2A 09 OF CHAR);....(*.
000040: 44 69 73 70 6C 61 79 20 65 72 72 6F 72 20 6D 65 Display error me
000050: 73 73 61 67 65 20 61 74 20 62 6F 74 74 6F 6D 20 ssage at bottom
000060: 6F 66 20 73 63 72 65 65 6E 2A 29 0D 0A 56 41 52 of screen*)..VAR
000070: 20 69 3A 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 i:INTEGER;..BEG
000080: 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 30 2C 53 63 IN...Gotoxy(0,Sc
000090: 72 65 65 6E 44 65 70 74 68 2D 31 29 3B 0D 0A 09 reenDepth-1);...
0000A0: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 52 69 ScreenControl(Ri
0000B0: 6E 67 42 65 6C 6C 29 3B 0D 0A 09 53 63 72 65 65 ngBell);...Scree
0000C0: 6E 43 6F 6E 74 72 6F 6C 28 44 65 6C 45 6F 6C 29 nControl(DelEol)
0000D0: 3B 0D 0A 09 57 72 69 74 65 53 74 72 69 6E 67 28 ;...WriteString(
0000E0: 73 31 29 3B 57 72 69 74 65 53 74 72 69 6E 67 28 s1);WriteString(
0000F0: 73 32 29 3B 0D 0A 09 45 4E 44 20 45 72 72 6F 72 s2);...END Error
000100: 4D 65 73 73 61 67 65 3B 0D 0A 50 52 4F 43 45 44 Message;..PROCED
000110: 55 52 45 20 53 65 74 57 69 6E 64 6F 77 73 28 69 URE SetWindows(i
000120: 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A :INTEGER);....(*
000130: 09 73 65 74 20 6E 75 6D 62 65 72 20 6F 66 20 65 .set number of e
000140: 64 69 74 20 77 69 6E 64 6F 77 73 20 69 6E 20 75 dit windows in u
000150: 73 65 20 2D 20 79 6F 75 20 6D 75 73 74 20 72 65 se - you must re
000160: 66 72 65 73 68 20 74 68 65 20 65 6E 74 69 72 65 fresh the entire
000170: 0D 0A 09 73 63 72 65 65 6E 20 77 69 74 68 20 63 ...screen with c
000180: 61 6C 6C 73 20 74 6F 20 44 69 73 70 6C 61 79 46 alls to DisplayF
000190: 69 6C 65 20 61 66 74 65 72 20 61 20 63 61 6C 6C ile after a call
0001A0: 20 74 6F 20 74 68 69 73 0D 0A 09 72 6F 75 74 69 to this...routi
0001B0: 6E 65 2A 29 0D 0A 56 41 52 09 6A 2C 6B 3A 43 41 ne*)..VAR.j,k:CA
0001C0: 52 44 49 4E 41 4C 3B 0D 0A 09 0D 0A 42 45 47 49 RDINAL;.....BEGI
0001D0: 4E 0D 0A 09 57 69 6E 64 6F 77 73 3A 3D 69 3B 0D N...Windows:=i;.
0001E0: 0A 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 ..ScreenControl(
0001F0: 43 6C 65 61 72 53 63 72 65 65 6E 29 3B 0D 0A 09 ClearScreen);...
Size : 512 (Real : 512)
000000: 09 09 41 4E 44 20 28 6C 69 6E 65 70 6F 73 3C 28 ..AND (linepos<(
000010: 53 63 72 65 65 6E 57 69 64 74 68 2B 4C 65 66 74 ScreenWidth+Left
000020: 4D 61 72 67 29 29 20 54 48 45 4E 20 0D 0A 09 09 Marg)) THEN ....
000030: 09 09 09 57 72 69 74 65 28 63 68 29 20 0D 0A 09 ...Write(ch) ...
000040: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 09 45 4E ....END;......EN
000050: 44 3B 28 2A 49 46 20 63 68 3D 76 61 72 69 6F 75 D;(*IF ch=variou
000060: 73 20 74 68 69 6E 67 73 2A 29 0D 0A 09 09 09 45 s things*).....E
000070: 4E 44 20 28 2A 69 6E 6E 65 72 20 6C 6F 6F 70 2A ND (*inner loop*
000080: 29 3B 0D 0A 09 09 49 4E 43 28 69 29 3B 0D 0A 09 );....INC(i);...
000090: 09 49 46 20 6C 69 6E 65 70 6F 73 3C 28 53 63 72 .IF linepos<(Scr
0000A0: 65 65 6E 57 69 64 74 68 2B 4C 65 66 74 4D 61 72 eenWidth+LeftMar
0000B0: 67 29 20 54 48 45 4E 20 0D 0A 09 09 09 53 63 72 g) THEN .....Scr
0000C0: 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 65 6C 45 6F eenControl(DelEo
0000D0: 6C 29 20 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 l) .....END;....
0000E0: 49 46 20 69 3D 4C 69 6E 65 73 50 65 72 57 69 6E IF i=LinesPerWin
0000F0: 64 6F 77 20 54 48 45 4E 20 45 58 49 54 0D 0A 09 dow THEN EXIT...
000100: 09 45 4C 53 45 20 0D 0A 09 09 09 57 72 69 74 65 .ELSE .....Write
000110: 4C 6E 3B 0D 0A 09 09 09 6C 69 6E 65 70 6F 73 3A Ln;.....linepos:
000120: 3D 30 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 =0;.....END;....
000130: 49 4E 43 28 6D 6F 76 65 64 29 3B 09 0D 0A 09 09 INC(moved);.....
000140: 52 65 74 72 6C 69 6E 65 28 66 2C 6C 65 6E 2C 69 Retrline(f,len,i
000150: 63 2C 70 6F 73 2C 6D 6F 76 65 64 6F 6E 65 2C 31 c,pos,movedone,1
000160: 29 3B 0D 0A 09 09 49 46 20 6D 6F 76 65 64 6F 6E );....IF movedon
000170: 65 3D 30 20 54 48 45 4E 0D 0A 09 09 09 46 4F 52 e=0 THEN.....FOR
000180: 20 69 3A 3D 69 2B 31 20 54 4F 20 4C 69 6E 65 73 i:=i+1 TO Lines
000190: 50 65 72 57 69 6E 64 6F 77 20 44 4F 0D 0A 09 09 PerWindow DO....
0001A0: 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 ..ScreenControl(
0001B0: 44 65 6C 45 6F 6C 29 3B 0D 0A 09 09 09 09 57 72 DelEol);......Wr
0001C0: 69 74 65 4C 6E 3B 0D 0A 09 09 09 09 45 4E 44 3B iteLn;......END;
0001D0: 0D 0A 09 09 09 45 58 49 54 0D 0A 09 09 09 45 4E .....EXIT.....EN
0001E0: 44 0D 0A 09 09 45 4E 44 3B 28 2A 4C 4F 4F 50 2A D....END;(*LOOP*
0001F0: 29 0D 0A 09 45 4E 44 20 44 69 73 70 6C 61 79 46 )...END DisplayF
Size : 512 (Real : 512)
000000: 49 46 20 57 69 6E 64 6F 77 73 3E 31 20 54 48 45 IF Windows>1 THE
000010: 4E 0D 0A 09 09 4C 69 6E 65 73 50 65 72 57 69 6E N....LinesPerWin
000020: 64 6F 77 3A 3D 28 53 63 72 65 65 6E 44 65 70 74 dow:=(ScreenDept
000030: 68 2D 57 69 6E 64 6F 77 73 29 20 44 49 56 20 57 h-Windows) DIV W
000040: 69 6E 64 6F 77 73 3B 0D 0A 09 45 4C 53 45 09 4C indows;...ELSE.L
000050: 69 6E 65 73 50 65 72 57 69 6E 64 6F 77 3A 3D 53 inesPerWindow:=S
000060: 63 72 65 65 6E 44 65 70 74 68 2D 31 20 45 4E 44 creenDepth-1 END
000070: 3B 0D 0A 09 46 4F 52 20 6A 3A 3D 32 20 54 4F 20 ;...FOR j:=2 TO
000080: 57 69 6E 64 6F 77 73 20 44 4F 0D 0A 09 09 47 6F Windows DO....Go
000090: 74 6F 78 79 28 30 2C 28 4C 69 6E 65 73 50 65 72 toxy(0,(LinesPer
0000A0: 57 69 6E 64 6F 77 2B 31 29 2A 28 6A 2D 31 29 2D Window+1)*(j-1)-
0000B0: 31 29 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 1);....ScreenCon
0000C0: 74 72 6F 6C 28 53 74 61 72 74 47 72 61 70 68 29 trol(StartGraph)
0000D0: 3B 0D 0A 09 09 46 4F 52 20 6B 3A 3D 31 20 54 4F ;....FOR k:=1 TO
0000E0: 20 53 63 72 65 65 6E 57 69 64 74 68 20 44 4F 20 ScreenWidth DO
0000F0: 0D 0A 09 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 .....ScreenContr
000100: 6F 6C 28 48 6F 72 69 7A 6F 6E 74 61 6C 29 3B 0D ol(Horizontal);.
000110: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 53 63 72 65 ....END;....Scre
000120: 65 6E 43 6F 6E 74 72 6F 6C 28 45 6E 64 47 72 61 enControl(EndGra
000130: 70 68 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 ph);....END;...E
000140: 4E 44 20 53 65 74 57 69 6E 64 6F 77 73 3B 0D 0A ND SetWindows;..
000150: 09 28 2A 70 75 74 20 61 20 6C 69 6E 65 20 62 65 .(*put a line be
000160: 74 77 65 65 6E 20 74 68 65 20 77 69 6E 64 6F 77 tween the window
000170: 73 2A 29 0D 0A 0D 0A 56 41 52 09 63 68 3A 43 48 s*)....VAR.ch:CH
000180: 41 52 3B 0D 0A 09 70 6F 73 3A 50 6F 73 69 74 69 AR;...pos:Positi
000190: 6F 6E 3B 0D 0A 09 63 68 61 72 73 69 6E 2C 69 63 on;...charsin,ic
0001A0: 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 6C 65 6E 2C :INTEGER;...len,
0001B0: 6D 6F 76 65 64 3A 49 4E 54 45 47 45 52 3B 0D 0A moved:INTEGER;..
0001C0: 09 6C 69 6E 65 70 6F 73 2C 4C 65 66 74 4D 61 72 .linepos,LeftMar
0001D0: 67 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 50 52 4F g:CARDINAL;..PRO
0001E0: 43 45 44 55 52 45 20 53 65 74 4C 65 66 74 4D 61 CEDURE SetLeftMa
0001F0: 72 67 28 66 3A 45 64 69 74 46 69 6C 65 3B 77 69 rg(f:EditFile;wi
Size : 512 (Real : 512)
000000: 69 6C 65 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 ile;..PROCEDURE
000010: 44 69 73 70 6C 61 79 45 72 72 6F 72 3B 0D 0A 0D DisplayError;...
000020: 0A 28 2A 09 54 68 65 20 65 72 72 6F 72 20 6D 65 .(*.The error me
000030: 73 73 61 67 65 20 66 69 6C 65 20 63 6F 6E 74 61 ssage file conta
000040: 69 6E 73 20 74 68 65 20 6D 65 73 73 61 67 65 73 ins the messages
000050: 2C 20 0D 0A 0D 0A 09 54 68 65 20 66 69 72 73 74 , .....The first
000060: 20 74 77 6F 20 62 6C 6F 63 6B 73 20 67 69 76 65 two blocks give
000070: 20 74 68 65 20 6C 65 6E 67 74 68 73 20 6F 66 20 the lengths of
000080: 74 68 65 20 65 72 72 6F 72 20 6D 65 73 73 61 67 the error messag
000090: 65 73 0D 0A 09 54 68 65 20 72 65 6D 61 69 6E 69 es...The remaini
0000A0: 6E 67 20 62 6C 6F 63 6B 73 20 67 69 76 65 20 74 ng blocks give t
0000B0: 68 65 20 74 65 78 74 20 6F 66 20 74 68 65 20 65 he text of the e
0000C0: 72 72 6F 72 20 6D 65 73 73 61 67 65 73 20 2A 29 rror messages *)
0000D0: 0D 0A 54 59 50 45 09 54 65 78 74 3D 41 52 52 41 ..TYPE.Text=ARRA
0000E0: 59 5B 30 2E 2E 36 33 5D 20 4F 46 20 43 48 41 52 Y[0..63] OF CHAR
0000F0: 3B 0D 0A 0D 0A 56 41 52 09 66 3A 46 49 4C 45 3B ;....VAR.f:FILE;
000100: 09 09 09 28 2A 46 49 4C 45 20 69 73 20 61 20 74 ...(*FILE is a t
000110: 79 70 65 20 65 78 70 6F 72 74 65 64 20 66 72 6F ype exported fro
000120: 6D 20 74 68 65 20 6D 6F 64 75 6C 65 20 46 69 6C m the module Fil
000130: 65 73 2A 29 0D 0A 0D 0A 09 62 3A 41 52 52 41 59 es*).....b:ARRAY
000140: 20 5B 30 2E 2E 31 32 37 5D 20 4F 46 20 43 48 41 [0..127] OF CHA
000150: 52 3B 0D 0A 09 69 2C 6A 2C 6B 2C 4C 65 6E 67 74 R;...i,j,k,Lengt
000160: 68 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 74 3A h:CARDINAL;...t:
000170: 54 65 78 74 3B 0D 0A 09 45 72 72 6F 72 4E 75 6D Text;...ErrorNum
000180: 62 65 72 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 ber:CARDINAL;...
000190: 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 3B 0D 0A reply:INTEGER;..
0001A0: 09 62 6C 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 50 52 .bl:BOOLEAN;..PR
0001B0: 4F 43 45 44 55 52 45 20 43 6F 75 6E 74 28 6B 3A OCEDURE Count(k:
0001C0: 43 41 52 44 49 4E 41 4C 29 3A 43 41 52 44 49 4E CARDINAL):CARDIN
0001D0: 41 4C 3B 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 AL;..VAR.i:CARDI
0001E0: 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 69 3A NAL;..BEGIN...i:
0001F0: 3D 30 3B 0D 0A 09 49 46 20 6B 3D 30 20 54 48 45 =0;...IF k=0 THE
Size : 512 (Real : 512)
000000: 78 2C 54 68 69 73 79 29 3B 2A 29 0D 0A 09 47 6F x,Thisy);*)...Go
000010: 74 6F 78 79 28 54 68 69 73 78 2C 54 68 69 73 79 toxy(Thisx,Thisy
000020: 29 3B 0D 0A 09 63 75 72 78 5B 43 75 72 72 65 6E );...curx[Curren
000030: 74 57 69 6E 64 6F 77 5D 3A 3D 54 68 69 73 78 3B tWindow]:=Thisx;
000040: 0D 0A 09 63 75 72 79 5B 43 75 72 72 65 6E 74 57 ...cury[CurrentW
000050: 69 6E 64 6F 77 5D 3A 3D 54 68 69 73 79 3B 0D 0A indow]:=Thisy;..
000060: 09 45 4E 44 20 44 69 73 70 6C 61 79 45 72 72 6F .END DisplayErro
000070: 72 3B 09 0D 0A 42 45 47 49 4E 0D 0A 09 57 69 6E r;...BEGIN...Win
000080: 64 6F 77 73 3A 3D 30 3B 0D 0A 09 45 4E 44 20 45 dows:=0;...END E
000090: 64 69 74 44 69 73 70 6C 61 79 2E 0D 0A 1A 1A 1A ditDisplay......
0000A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 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: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 1A 1A 1A ................
000120: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000130: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000140: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000180: 28 66 2C 6C 65 6E 2C 63 68 61 72 73 69 6E 2C 70 (f,len,charsin,p
000190: 6F 73 2C 6D 6F 76 65 64 2C 30 29 3B 0D 0A 09 6C os,moved,0);...l
0001A0: 69 6E 65 70 6F 73 3A 3D 30 3B 0D 0A 09 46 4F 52 inepos:=0;...FOR
0001B0: 20 69 63 3A 3D 30 20 54 4F 20 63 68 61 72 73 69 ic:=0 TO charsi
0001C0: 6E 20 44 4F 0D 0A 09 09 52 65 61 64 4E 65 78 74 n DO....ReadNext
0001D0: 43 68 61 72 28 70 6F 73 2C 63 68 29 3B 0D 0A 09 Char(pos,ch);...
0001E0: 09 49 46 20 63 68 3D 30 39 78 20 54 48 45 4E 20 .IF ch=09x THEN
0001F0: 6C 69 6E 65 70 6F 73 3A 3D 49 41 4E 44 28 6C 69 linepos:=IAND(li
Size : 512 (Real : 512)
000000: 4E 20 52 45 54 55 52 4E 20 30 20 45 4E 44 3B 0D N RETURN 0 END;.
000010: 0A 09 46 4F 52 20 6B 3A 3D 6B 2D 31 20 54 4F 20 ..FOR k:=k-1 TO
000020: 30 20 42 59 20 2D 31 20 44 4F 0D 0A 09 09 69 3A 0 BY -1 DO....i:
000030: 3D 69 2B 4F 52 44 28 62 5B 6B 5D 29 3B 0D 0A 09 =i+ORD(b[k]);...
000040: 09 45 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 69 .END;...RETURN i
000050: 0D 0A 09 45 4E 44 20 43 6F 75 6E 74 3B 0D 0A 50 ...END Count;..P
000060: 52 4F 43 45 44 55 52 45 20 57 72 69 74 65 43 61 ROCEDURE WriteCa
000070: 72 64 28 69 3A 43 41 52 44 49 4E 41 4C 29 3B 0D rd(i:CARDINAL);.
000080: 0A 56 41 52 09 74 3A 41 52 52 41 59 5B 30 2E 2E .VAR.t:ARRAY[0..
000090: 33 5D 20 4F 46 20 43 48 41 52 3B 0D 0A 09 6A 2C 3] OF CHAR;...j,
0000A0: 6B 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 k:CARDINAL;..BEG
0000B0: 49 4E 0D 0A 09 6B 3A 3D 48 49 47 48 28 74 29 3B IN...k:=HIGH(t);
0000C0: 0D 0A 09 57 48 49 4C 45 20 69 3C 3E 30 20 44 4F ...WHILE i<>0 DO
0000D0: 0D 0A 09 09 6A 3A 3D 69 20 44 49 56 20 31 30 3B ....j:=i DIV 10;
0000E0: 0D 0A 09 09 74 5B 6B 5D 3A 3D 43 48 52 28 4F 52 ....t[k]:=CHR(OR
0000F0: 44 28 27 30 27 29 2B 69 2D 31 30 2A 6A 29 3B 0D D('0')+i-10*j);.
000100: 0A 09 09 69 3A 3D 6A 3B 0D 0A 09 09 44 45 43 28 ...i:=j;....DEC(
000110: 6B 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 46 4F k);....END;...FO
000120: 52 20 6B 3A 3D 6B 2B 31 20 54 4F 20 48 49 47 48 R k:=k+1 TO HIGH
000130: 28 74 29 20 44 4F 20 57 72 69 74 65 28 74 5B 6B (t) DO Write(t[k
000140: 5D 29 20 45 4E 44 3B 0D 0A 09 45 4E 44 20 57 72 ]) END;...END Wr
000150: 69 74 65 43 61 72 64 3B 0D 0A 42 45 47 49 4E 0D iteCard;..BEGIN.
000160: 0A 09 49 46 20 45 72 72 6F 72 4F 72 64 69 6E 61 ..IF ErrorOrdina
000170: 6C 3E 3D 45 72 72 6F 72 43 6F 75 6E 74 20 54 48 l>=ErrorCount TH
000180: 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 3B 0D 0A EN RETURN END;..
000190: 09 47 6F 74 6F 78 79 28 30 2C 53 63 72 65 65 6E .Gotoxy(0,Screen
0001A0: 44 65 70 74 68 2D 31 29 3B 0D 0A 09 45 72 72 6F Depth-1);...Erro
0001B0: 72 4E 75 6D 62 65 72 3A 3D 45 72 72 6F 72 4C 69 rNumber:=ErrorLi
0001C0: 73 74 5B 45 72 72 6F 72 4F 72 64 69 6E 61 6C 5D st[ErrorOrdinal]
0001D0: 2E 45 72 72 6F 72 4E 75 6D 3B 0D 0A 09 53 63 72 .ErrorNum;...Scr
0001E0: 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 65 6C 45 6F eenControl(DelEo
0001F0: 6C 29 3B 0D 0A 09 57 72 69 74 65 53 74 72 69 6E l);...WriteStrin
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 67 28 27 45 72 72 6F 72 20 27 29 3B 0D 0A 09 57 g('Error ');...W
000010: 72 69 74 65 43 61 72 64 28 45 72 72 6F 72 4E 75 riteCard(ErrorNu
000020: 6D 62 65 72 29 3B 0D 0A 09 57 72 69 74 65 53 74 mber);...WriteSt
000030: 72 69 6E 67 28 27 28 27 29 3B 57 72 69 74 65 43 ring('(');WriteC
000040: 61 72 64 28 45 72 72 6F 72 4F 72 64 69 6E 61 6C ard(ErrorOrdinal
000050: 2B 31 29 3B 0D 0A 09 57 72 69 74 65 53 74 72 69 +1);...WriteStri
000060: 6E 67 28 27 20 6F 66 20 27 29 3B 57 72 69 74 65 ng(' of ');Write
000070: 43 61 72 64 28 45 72 72 6F 72 43 6F 75 6E 74 29 Card(ErrorCount)
000080: 3B 0D 0A 09 57 72 69 74 65 53 74 72 69 6E 67 28 ;...WriteString(
000090: 27 29 20 3A 27 29 3B 0D 0A 09 4C 6F 6F 6B 75 70 ') :');...Lookup
0000A0: 28 66 2C 27 45 52 52 4D 53 47 2E 44 41 54 20 27 (f,'ERRMSG.DAT '
0000B0: 2C 72 65 70 6C 79 29 3B 0D 0A 0D 0A 09 28 2A 4C ,reply);.....(*L
0000C0: 6F 6F 6B 75 70 20 6F 70 65 6E 73 20 74 68 65 20 ookup opens the
0000D0: 66 69 6C 65 20 66 6F 72 20 69 6E 70 75 74 2F 6F file for input/o
0000E0: 75 74 70 75 74 0D 0A 09 20 20 72 65 70 6C 79 20 utput... reply
0000F0: 72 65 74 75 72 6E 73 20 7A 65 72 6F 20 69 66 20 returns zero if
000100: 6E 6F 20 66 69 6C 65 20 69 73 20 66 6F 75 6E 64 no file is found
000110: 0D 0A 09 20 20 61 20 64 65 76 69 63 65 20 6E 61 ... a device na
000120: 6D 65 20 63 61 6E 20 62 65 20 75 73 65 64 20 69 me can be used i
000130: 6E 20 66 72 6F 6E 74 20 6F 66 20 74 68 65 20 66 n front of the f
000140: 69 6C 65 20 6E 61 6D 65 0D 0A 09 20 49 6E 20 66 ile name... In f
000150: 61 63 74 2C 20 79 6F 75 20 63 61 6E 20 75 73 65 act, you can use
000160: 20 61 20 6E 6F 6E 2D 64 69 73 63 20 66 69 6C 65 a non-disc file
000170: 20 6E 61 6D 65 20 28 65 67 20 50 55 4E 3A 20 6F name (eg PUN: o
000180: 72 20 43 4F 4E 3A 29 0D 0A 09 20 62 75 74 20 69 r CON:)... but i
000190: 66 20 79 6F 75 20 64 6F 20 74 68 69 73 2C 20 79 f you do this, y
0001A0: 6F 75 20 6D 75 73 74 20 64 6F 20 79 6F 75 72 20 ou must do your
0001B0: 49 4F 20 74 68 72 6F 75 67 68 20 74 68 65 20 6D IO through the m
0001C0: 6F 64 75 6C 65 0D 0A 09 20 53 74 72 65 61 6D 73 odule... Streams
0001D0: 20 28 6F 72 20 49 6E 4F 75 74 2C 20 77 68 69 63 (or InOut, whic
0001E0: 68 20 63 61 6C 6C 73 20 73 74 72 65 61 6D 73 29 h calls streams)
0001F0: 2C 20 61 73 20 74 68 65 20 49 4F 20 74 6F 20 74 , as the IO to t
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 45 64 69 74 53 74 61 74 75 73 3B 0D 0A 0D E EditStatus;...
000020: 0A 28 2A 09 53 61 76 65 2F 72 65 74 75 72 6E 20 .(*.Save/return
000030: 65 64 69 74 20 73 74 61 74 75 73 20 66 6F 72 20 edit status for
000040: 61 20 66 69 6C 65 0D 0A 0D 0A 09 54 68 65 20 66 a file.....The f
000050: 69 6C 65 20 45 44 49 54 53 54 41 54 2E 44 41 54 ile EDITSTAT.DAT
000060: 20 6F 6E 20 74 68 65 20 64 65 66 61 75 6C 74 20 on the default
000070: 64 72 69 76 65 20 69 73 20 61 6C 77 61 79 73 20 drive is always
000080: 75 73 65 64 0D 0A 09 66 6F 72 20 65 64 69 74 20 used...for edit
000090: 73 74 61 74 69 69 2A 29 0D 0A 46 52 4F 4D 20 46 statii*)..FROM F
0000A0: 69 6C 65 73 20 20 49 4D 50 4F 52 54 20 46 49 4C iles IMPORT FIL
0000B0: 45 3B 0D 0A 46 52 4F 4D 09 43 50 4D 20 49 4D 50 E;..FROM.CPM IMP
0000C0: 4F 52 54 20 61 6C 66 61 2C 65 78 74 65 6E 3B 0D ORT alfa,exten;.
0000D0: 0A 50 52 4F 43 45 44 55 52 45 20 47 65 74 50 6F .PROCEDURE GetPo
0000E0: 73 69 74 69 6F 6E 28 46 6E 3A 46 49 4C 45 29 3A sition(Fn:FILE):
0000F0: 43 41 52 44 49 4E 41 4C 3B 0D 0A 0D 0A 28 2A 09 CARDINAL;....(*.
000100: 67 65 74 20 66 69 6C 65 20 70 6F 73 69 74 69 6F get file positio
000110: 6E 20 28 63 68 61 72 61 63 74 65 72 20 6E 75 6D n (character num
000120: 62 65 72 29 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 ber)*)....PROCED
000130: 55 52 45 20 53 65 74 50 6F 73 69 74 69 6F 6E 28 URE SetPosition(
000140: 46 6E 3A 46 49 4C 45 3B 70 6F 73 3A 43 41 52 44 Fn:FILE;pos:CARD
000150: 49 4E 41 4C 29 3B 0D 0A 0D 0A 28 2A 09 73 65 74 INAL);....(*.set
000160: 20 66 69 6C 65 20 70 6F 73 69 74 69 6F 6E 2A 29 file position*)
000170: 0D 0A 45 4E 44 20 45 64 69 74 53 74 61 74 75 73 ..END EditStatus
000180: 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000190: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
Size : 512 (Real : 512)
000000: 68 65 0D 0A 09 20 73 65 72 69 61 6C 20 64 65 76 he... serial dev
000010: 69 63 65 73 20 69 73 20 70 65 72 66 6F 72 6D 65 ices is performe
000020: 64 20 62 79 20 74 68 61 74 20 6D 6F 64 75 6C 65 d by that module
000030: 20 28 69 74 20 63 61 6C 6C 73 20 46 69 6C 65 73 (it calls Files
000040: 0D 0A 09 20 74 6F 20 64 6F 20 49 4F 20 74 6F 20 ... to do IO to
000050: 64 69 73 63 20 64 65 76 69 63 65 73 29 0D 0A 2A disc devices)..*
000060: 29 0D 0A 09 49 46 20 72 65 70 6C 79 3D 30 20 54 )...IF reply=0 T
000070: 48 45 4E 09 09 28 2A 4F 4B 20 2D 20 66 69 6C 65 HEN..(*OK - file
000080: 20 66 6F 75 6E 64 2A 29 0D 0A 09 09 0D 0A 0D 0A found*)........
000090: 09 09 28 2A 72 65 61 64 20 74 68 65 20 66 69 72 ..(*read the fir
0000A0: 73 74 20 31 20 6F 72 20 74 77 6F 20 62 6C 6F 63 st 1 or two bloc
0000B0: 6B 73 20 6F 66 20 74 68 65 20 65 72 72 6F 72 20 ks of the error
0000C0: 0D 0A 09 09 20 20 6D 65 73 73 61 67 65 20 66 69 .... message fi
0000D0: 6C 65 2C 20 63 6F 75 6E 74 69 6E 20 74 68 65 20 le, countin the
0000E0: 63 68 61 72 61 63 74 65 72 73 20 70 72 65 63 65 characters prece
0000F0: 64 69 6E 67 20 74 68 65 0D 0A 09 09 20 20 65 72 ding the.... er
000100: 72 6F 72 20 65 6D 73 73 61 67 65 20 77 65 20 77 ror emssage we w
000110: 61 6E 74 20 2A 29 0D 0A 09 09 52 65 61 64 42 6C ant *)....ReadBl
000120: 6F 63 6B 28 66 2C 41 44 52 28 62 29 2C 30 2C 31 ock(f,ADR(b),0,1
000130: 32 38 2C 72 65 70 6C 79 29 3B 0D 0A 09 09 6A 3A 28,reply);....j:
000140: 3D 45 72 72 6F 72 4E 75 6D 62 65 72 3B 0D 0A 09 =ErrorNumber;...
000150: 09 49 46 20 45 72 72 6F 72 4E 75 6D 62 65 72 3E .IF ErrorNumber>
000160: 31 32 38 20 54 48 45 4E 0D 0A 09 09 09 69 3A 3D 128 THEN.....i:=
000170: 43 6F 75 6E 74 28 31 32 38 29 3B 0D 0A 09 09 09 Count(128);.....
000180: 52 65 61 64 42 6C 6F 63 6B 28 66 2C 41 44 52 28 ReadBlock(f,ADR(
000190: 62 29 2C 31 2C 31 32 38 2C 72 65 70 6C 79 29 3B b),1,128,reply);
0001A0: 0D 0A 09 09 09 6A 3A 3D 6A 2D 31 32 38 0D 0A 09 .....j:=j-128...
0001B0: 09 45 4C 53 45 0D 0A 09 09 09 69 3A 3D 30 3B 0D .ELSE.....i:=0;.
0001C0: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 69 3A 3D 69 ....END;....i:=i
0001D0: 2B 43 6F 75 6E 74 28 6A 2D 31 29 3B 0D 0A 09 09 +Count(j-1);....
0001E0: 4C 65 6E 67 74 68 3A 3D 4F 52 44 28 62 5B 6A 2D Length:=ORD(b[j-
0001F0: 31 5D 29 3B 0D 0A 09 09 6A 3A 3D 69 20 44 49 56 1]);....j:=i DIV
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 20 31 32 38 3B 20 28 2A 62 6C 6F 63 6B 20 74 6F 128; (*block to
000010: 20 72 65 61 64 2A 29 0D 0A 09 09 69 3A 3D 69 20 read*)....i:=i
000020: 2D 20 31 32 38 2A 6A 3B 20 28 2A 6F 66 66 73 65 - 128*j; (*offse
000030: 74 20 6F 66 20 66 69 72 73 74 20 63 68 61 72 61 t of first chara
000040: 63 74 65 72 20 69 6E 20 62 6C 6F 63 6B 2A 29 0D cter in block*).
000050: 0A 09 09 52 65 61 64 42 6C 6F 63 6B 28 66 2C 41 ...ReadBlock(f,A
000060: 44 52 28 62 29 2C 6A 2B 32 2C 31 32 38 2C 72 65 DR(b),j+2,128,re
000070: 70 6C 79 29 3B 0D 0A 09 09 46 4F 52 20 6B 3A 3D ply);....FOR k:=
000080: 30 20 54 4F 20 4C 65 6E 67 74 68 2D 31 20 44 4F 0 TO Length-1 DO
000090: 0D 0A 09 09 09 49 46 20 69 3D 31 32 38 20 54 48 .....IF i=128 TH
0000A0: 45 4E 20 0D 0A 09 09 09 09 49 4E 43 28 6A 29 3B EN ......INC(j);
0000B0: 0D 0A 09 09 09 09 52 65 61 64 42 6C 6F 63 6B 28 ......ReadBlock(
0000C0: 66 2C 41 44 52 28 62 29 2C 6A 2B 32 2C 31 32 38 f,ADR(b),j+2,128
0000D0: 2C 72 65 70 6C 79 29 20 0D 0A 09 09 09 09 69 3A ,reply) ......i:
0000E0: 3D 30 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 =0;......END;...
0000F0: 09 09 74 5B 6B 5D 3A 3D 62 5B 69 5D 3B 0D 0A 09 ..t[k]:=b[i];...
000100: 09 09 49 4E 43 28 69 29 3B 0D 0A 09 09 09 45 4E ..INC(i);.....EN
000110: 44 3B 0D 0A 09 09 74 5B 4C 65 6E 67 74 68 5D 3A D;....t[Length]:
000120: 3D 30 63 3B 0D 0A 09 09 57 72 69 74 65 53 74 72 =0c;....WriteStr
000130: 69 6E 67 28 74 29 3B 0D 0A 09 45 4C 53 45 0D 0A ing(t);...ELSE..
000140: 09 09 57 72 69 74 65 53 74 72 69 6E 67 28 27 20 ..WriteString('
000150: 43 6F 75 6C 64 20 6E 6F 74 20 6F 70 65 6E 20 65 Could not open e
000160: 72 72 6F 72 20 6D 65 73 73 61 67 65 73 20 66 69 rror messages fi
000170: 6C 65 27 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 le');....END;...
000180: 62 6C 3A 3D 4C 61 62 65 6C 4F 70 28 46 69 6C 65 bl:=LabelOp(File
000190: 73 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 2C 46 s[CurrentFile],F
0001A0: 41 4C 53 45 2C 43 48 52 28 45 72 72 6F 72 4F 72 ALSE,CHR(ErrorOr
0001B0: 64 69 6E 61 6C 2B 30 62 30 68 29 29 3B 0D 0A 09 dinal+0b0h));...
0001C0: 52 65 44 69 73 70 6C 61 79 3B 0D 0A 28 2A 09 44 ReDisplay;..(*.D
0001D0: 69 73 70 6C 61 79 46 69 6C 65 28 46 69 6C 65 73 isplayFile(Files
0001E0: 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D 2C 43 75 [CurrentFile],Cu
0001F0: 72 72 65 6E 74 57 69 6E 64 6F 77 2C 54 68 69 73 rrentWindow,This
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 45 64 69 74 53 74 61 74 75 73 ODULE EditStatus
000020: 3B 0D 0A 0D 0A 28 2A 09 53 61 76 65 2F 72 65 74 ;....(*.Save/ret
000030: 75 72 6E 20 65 64 69 74 20 73 74 61 74 75 73 20 urn edit status
000040: 66 6F 72 20 61 20 66 69 6C 65 0D 0A 0D 0A 09 54 for a file.....T
000050: 68 65 20 66 69 6C 65 20 45 44 49 54 53 54 41 54 he file EDITSTAT
000060: 2E 44 41 54 20 6F 6E 20 74 68 65 20 64 65 66 61 .DAT on the defa
000070: 75 6C 74 20 64 72 69 76 65 20 69 73 20 61 6C 77 ult drive is alw
000080: 61 79 73 20 75 73 65 64 0D 0A 09 66 6F 72 20 65 ays used...for e
000090: 64 69 74 20 73 74 61 74 69 69 2A 29 0D 0A 46 52 dit statii*)..FR
0000A0: 4F 4D 20 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 OM Files IMPORT
0000B0: 4C 6F 6F 6B 75 70 2C 43 72 65 61 74 65 2C 43 6C Lookup,Create,Cl
0000C0: 6F 73 65 2C 53 65 71 52 65 61 64 42 6C 6F 63 6B ose,SeqReadBlock
0000D0: 2C 53 65 71 57 72 69 74 65 42 6C 6F 63 6B 2C 53 ,SeqWriteBlock,S
0000E0: 65 74 42 6C 6F 63 6B 2C 0D 0A 09 09 43 6F 6E 76 etBlock,....Conv
0000F0: 65 72 74 46 69 6C 65 4E 61 6D 65 3B 0D 0A 46 52 ertFileName;..FR
000100: 4F 4D 20 53 63 72 65 65 6E 49 4F 20 49 4D 50 4F OM ScreenIO IMPO
000110: 52 54 20 47 6F 74 6F 78 79 2C 53 63 72 65 65 6E RT Gotoxy,Screen
000120: 44 65 70 74 68 3B 0D 0A 46 52 4F 4D 20 53 59 53 Depth;..FROM SYS
000130: 54 45 4D 20 49 4D 50 4F 52 54 20 41 44 52 2C 54 TEM IMPORT ADR,T
000140: 53 49 5A 45 3B 0D 0A 46 52 4F 4D 20 54 65 72 6D SIZE;..FROM Term
000150: 69 6E 61 6C 20 49 4D 50 4F 52 54 20 57 72 69 74 inal IMPORT Writ
000160: 65 53 74 72 69 6E 67 3B 0D 0A 54 59 50 45 09 46 eString;..TYPE.F
000170: 69 6C 65 52 65 63 3D 52 45 43 4F 52 44 0D 0A 09 ileRec=RECORD...
000180: 09 46 69 6C 65 66 6E 3A 61 6C 66 61 3B 0D 0A 09 .Filefn:alfa;...
000190: 09 46 69 6C 65 66 74 3A 65 78 74 65 6E 3B 0D 0A .Fileft:exten;..
0001A0: 09 09 46 69 6C 65 50 6F 73 3A 43 41 52 44 49 4E ..FilePos:CARDIN
0001B0: 41 4C 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 43 AL;....END;....C
0001C0: 4F 4E 53 54 09 42 79 74 65 73 50 65 72 42 6C 6F ONST.BytesPerBlo
0001D0: 63 6B 3D 31 32 38 3B 09 28 2A 42 79 74 65 73 20 ck=128;.(*Bytes
0001E0: 70 65 72 20 64 69 73 63 20 62 6C 6F 63 6B 2A 29 per disc block*)
0001F0: 0D 0A 09 45 6E 74 72 69 65 73 50 65 72 42 6C 6F ...EntriesPerBlo
Size : 512 (Real : 512)
000000: 61 6E 20 62 65 20 6F 70 65 6E 65 64 2A 29 0D 0A an be opened*)..
000010: 09 4C 6F 6F 6B 75 70 28 64 61 74 66 69 6C 65 2C .Lookup(datfile,
000020: 27 45 44 49 54 53 54 41 54 2E 44 41 54 20 27 2C 'EDITSTAT.DAT ',
000030: 72 65 70 6C 79 29 3B 0D 0A 09 49 46 20 72 65 70 reply);...IF rep
000040: 6C 79 3C 3E 30 20 54 48 45 4E 0D 0A 09 09 43 72 ly<>0 THEN....Cr
000050: 65 61 74 65 28 64 61 74 66 69 6C 65 2C 27 45 44 eate(datfile,'ED
000060: 49 54 53 54 41 54 2E 44 41 54 27 2C 72 65 70 6C ITSTAT.DAT',repl
000070: 79 29 3B 0D 0A 09 09 49 46 20 72 65 70 6C 79 3C y);....IF reply<
000080: 3E 30 20 54 48 45 4E 20 0D 0A 09 09 09 47 6F 74 >0 THEN .....Got
000090: 6F 78 79 28 30 2C 53 63 72 65 65 6E 44 65 70 74 oxy(0,ScreenDept
0000A0: 68 2D 31 29 3B 0D 0A 09 09 09 57 72 69 74 65 53 h-1);.....WriteS
0000B0: 74 72 69 6E 67 28 27 20 43 6F 75 6C 64 20 6E 6F tring(' Could no
0000C0: 74 20 6F 70 65 6E 20 73 74 61 74 75 73 20 66 69 t open status fi
0000D0: 6C 65 27 29 3B 0D 0A 09 09 09 6F 70 65 6E 65 64 le');.....opened
0000E0: 3A 3D 46 41 4C 53 45 3B 0D 0A 09 09 09 45 4E 44 :=FALSE;.....END
0000F0: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 42 6C 6F 63 ;....END;...Bloc
000100: 6B 4E 6F 3A 3D 36 30 30 30 30 3B 09 28 2A 73 65 kNo:=60000;.(*se
000110: 74 20 69 6D 70 6F 73 73 69 62 6C 79 20 62 69 67 t impossibly big
000120: 2A 29 0D 0A 09 0D 0A 09 45 4E 44 20 45 64 69 74 *)......END Edit
000130: 53 74 61 74 75 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A Status..........
000140: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000180: 6D 6F 64 75 6C 65 20 28 69 74 20 63 61 6C 6C 73 module (it calls
000190: 20 46 69 6C 65 73 0D 0A 09 20 74 6F 20 64 6F 20 Files... to do
0001A0: 49 4F 20 74 6F 20 64 69 73 63 20 64 65 76 69 63 IO to disc devic
0001B0: 65 73 29 0D 0A 2A 29 0D 0A 09 49 46 20 72 65 70 es)..*)...IF rep
0001C0: 6C 79 3D 30 20 54 48 45 4E 09 09 28 2A 4F 4B 20 ly=0 THEN..(*OK
0001D0: 2D 20 66 69 6C 65 20 66 6F 75 6E 64 2A 29 0D 0A - file found*)..
0001E0: 09 09 0D 0A 0D 0A 09 09 28 2A 72 65 61 64 20 74 ........(*read t
0001F0: 68 65 20 66 69 72 73 74 20 31 20 6F 72 20 74 77 he first 1 or tw
Size : 512 (Real : 512)
000000: 63 6B 3D 28 42 79 74 65 73 50 65 72 42 6C 6F 63 ck=(BytesPerBloc
000010: 6B 2D 54 53 49 5A 45 28 43 41 52 44 49 4E 41 4C k-TSIZE(CARDINAL
000020: 29 29 20 44 49 56 20 54 53 49 5A 45 28 46 69 6C )) DIV TSIZE(Fil
000030: 65 52 65 63 29 3B 0D 0A 09 46 69 6C 6C 53 69 7A eRec);...FillSiz
000040: 65 3D 42 79 74 65 73 50 65 72 42 6C 6F 63 6B 2D e=BytesPerBlock-
000050: 54 53 49 5A 45 28 43 41 52 44 49 4E 41 4C 29 2D TSIZE(CARDINAL)-
000060: 45 6E 74 72 69 65 73 50 65 72 42 6C 6F 63 6B 2A EntriesPerBlock*
000070: 54 53 49 5A 45 28 46 69 6C 65 52 65 63 29 3B 0D TSIZE(FileRec);.
000080: 0A 54 59 50 45 09 42 6C 6F 63 6B 3D 52 45 43 4F .TYPE.Block=RECO
000090: 52 44 0D 0A 09 09 45 6E 74 72 69 65 73 3A 43 41 RD....Entries:CA
0000A0: 52 44 49 4E 41 4C 3B 09 28 2A 69 6E 20 74 68 69 RDINAL;.(*in thi
0000B0: 73 20 62 6C 6F 63 6B 2A 29 0D 0A 09 09 46 69 6C s block*)....Fil
0000C0: 65 45 6E 74 72 79 3A 41 52 52 41 59 5B 30 2E 2E eEntry:ARRAY[0..
0000D0: 45 6E 74 72 69 65 73 50 65 72 42 6C 6F 63 6B 2D EntriesPerBlock-
0000E0: 31 5D 20 4F 46 20 46 69 6C 65 52 65 63 3B 0D 0A 1] OF FileRec;..
0000F0: 09 09 46 69 6C 6C 65 72 3A 41 52 52 41 59 5B 31 ..Filler:ARRAY[1
000100: 2E 2E 46 69 6C 6C 53 69 7A 65 5D 20 4F 46 20 43 ..FillSize] OF C
000110: 48 41 52 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A HAR;....END;....
000120: 56 41 52 09 64 61 74 66 69 6C 65 3A 46 49 4C 45 VAR.datfile:FILE
000130: 3B 0D 0A 09 42 6C 6F 63 6B 4E 6F 3A 43 41 52 44 ;...BlockNo:CARD
000140: 49 4E 41 4C 3B 0D 0A 09 45 6E 74 72 79 4E 6F 3A INAL;...EntryNo:
000150: 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 42 75 66 66 CARDINAL;...Buff
000160: 65 72 3A 42 6C 6F 63 6B 3B 0D 0A 09 66 3A 46 49 er:Block;...f:FI
000170: 4C 45 3B 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 LE;...reply:INTE
000180: 47 45 52 3B 0D 0A 09 6F 70 65 6E 65 64 3A 42 4F GER;...opened:BO
000190: 4F 4C 45 41 4E 3B 0D 0A 09 63 68 3A 43 48 41 52 OLEAN;...ch:CHAR
0001A0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 57 72 69 ;..PROCEDURE Wri
0001B0: 74 65 46 69 6C 65 3B 0D 0A 42 45 47 49 4E 0D 0A teFile;..BEGIN..
0001C0: 09 53 65 74 42 6C 6F 63 6B 28 64 61 74 66 69 6C .SetBlock(datfil
0001D0: 65 2C 42 6C 6F 63 6B 4E 6F 29 3B 0D 0A 09 53 65 e,BlockNo);...Se
0001E0: 71 57 72 69 74 65 42 6C 6F 63 6B 28 64 61 74 66 qWriteBlock(datf
0001F0: 69 6C 65 2C 41 44 52 28 42 75 66 66 65 72 29 2C ile,ADR(Buffer),
Size : 512 (Real : 512)
000000: 69 6E 65 28 29 3A 49 4E 54 45 47 45 52 3B 0D 0A ine():INTEGER;..
000010: 0D 0A 28 2A 09 6D 6F 76 65 20 20 74 6F 20 73 74 ..(*.move to st
000020: 61 72 74 20 6F 66 20 6E 65 78 74 20 6C 69 6E 65 art of next line
000030: 0D 0A 09 72 65 74 75 72 6E 73 20 63 68 61 72 61 ...returns chara
000040: 63 74 65 72 73 20 61 64 76 61 6E 63 65 64 0D 0A cters advanced..
000050: 09 70 6F 73 69 74 69 6F 6E 73 20 74 6F 20 66 69 .positions to fi
000060: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 rst character of
000070: 20 6E 65 78 74 20 6C 69 6E 65 2A 29 0D 0A 56 41 next line*)..VA
000080: 52 09 70 6F 73 3A 49 4E 54 45 47 45 52 3B 0D 0A R.pos:INTEGER;..
000090: 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 .b:BOOLEAN;..BEG
0000A0: 49 4E 0D 0A 09 41 64 76 61 6E 63 65 4F 4B 3A 3D IN...AdvanceOK:=
0000B0: 54 52 55 45 3B 0D 0A 09 70 6F 73 3A 3D 30 3B 0D TRUE;...pos:=0;.
0000C0: 0A 09 4C 4F 4F 50 0D 0A 09 09 63 68 3A 3D 57 6F ..LOOP....ch:=Wo
0000D0: 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 rking^.Chars[Cha
0000E0: 72 50 6F 73 5D 3B 0D 0A 09 09 49 46 20 63 68 3D rPos];....IF ch=
0000F0: 45 4F 46 20 54 48 45 4E 20 0D 0A 09 09 09 41 64 EOF THEN .....Ad
000100: 76 61 6E 63 65 4F 4B 3A 3D 46 41 4C 53 45 3B 0D vanceOK:=FALSE;.
000110: 0A 09 09 09 45 58 49 54 20 0D 0A 09 09 09 45 4E ....EXIT .....EN
000120: 44 3B 0D 0A 09 09 49 46 20 28 63 68 3D 43 52 29 D;....IF (ch=CR)
000130: 20 4F 52 20 28 63 68 3D 4C 46 29 20 4F 52 20 28 OR (ch=LF) OR (
000140: 63 68 3D 46 46 29 20 54 48 45 4E 20 0D 0A 09 09 ch=FF) THEN ....
000150: 09 49 46 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 .IF NOT Advance(
000160: 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 3B ) THEN EXIT END;
000170: 0D 0A 09 09 09 63 68 3A 3D 57 6F 72 6B 69 6E 67 .....ch:=Working
000180: 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F 73 5D ^.Chars[CharPos]
000190: 3B 0D 0A 09 09 09 49 46 20 63 68 3D 4C 46 20 54 ;.....IF ch=LF T
0001A0: 48 45 4E 20 62 3A 3D 41 64 76 61 6E 63 65 28 29 HEN b:=Advance()
0001B0: 20 45 4E 44 3B 0D 0A 09 09 09 45 58 49 54 0D 0A END;.....EXIT..
0001C0: 09 09 09 45 4E 44 3B 0D 0A 09 09 49 4E 43 28 70 ...END;....INC(p
0001D0: 6F 73 29 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 41 os);....IF NOT A
0001E0: 64 76 61 6E 63 65 28 29 20 54 48 45 4E 20 0D 0A dvance() THEN ..
0001F0: 09 09 09 41 64 76 61 6E 63 65 4F 4B 3A 3D 46 41 ...AdvanceOK:=FA
Size : 512 (Real : 512)
000000: 42 79 74 65 73 50 65 72 42 6C 6F 63 6B 2C 72 65 BytesPerBlock,re
000010: 70 6C 79 29 3B 0D 0A 09 43 6C 6F 73 65 28 64 61 ply);...Close(da
000020: 74 66 69 6C 65 29 3B 0D 0A 09 4C 6F 6F 6B 75 70 tfile);...Lookup
000030: 28 64 61 74 66 69 6C 65 2C 27 45 44 49 54 53 54 (datfile,'EDITST
000040: 41 54 2E 44 41 54 20 27 2C 72 65 70 6C 79 29 3B AT.DAT ',reply);
000050: 0D 0A 09 45 4E 44 20 57 72 69 74 65 46 69 6C 65 ...END WriteFile
000060: 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D ;....PROCEDURE M
000070: 61 6B 65 45 6E 74 72 79 3B 0D 0A 42 45 47 49 4E akeEntry;..BEGIN
000080: 0D 0A 09 57 49 54 48 20 42 75 66 66 65 72 2E 46 ...WITH Buffer.F
000090: 69 6C 65 45 6E 74 72 79 5B 45 6E 74 72 79 4E 6F ileEntry[EntryNo
0000A0: 5D 20 44 4F 0D 0A 09 09 46 69 6C 65 66 6E 3A 3D ] DO....Filefn:=
0000B0: 66 2E 66 2E 66 63 62 66 6E 3B 0D 0A 09 09 46 69 f.f.fcbfn;....Fi
0000C0: 6C 65 66 74 3A 3D 66 2E 66 2E 66 63 62 66 74 3B left:=f.f.fcbft;
0000D0: 0D 0A 09 09 46 69 6C 65 50 6F 73 3A 3D 30 3B 0D ....FilePos:=0;.
0000E0: 0A 09 09 45 4E 44 3B 0D 0A 09 57 72 69 74 65 46 ...END;...WriteF
0000F0: 69 6C 65 3B 0D 0A 09 45 4E 44 20 4D 61 6B 65 45 ile;...END MakeE
000100: 6E 74 72 79 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 ntry;....PROCEDU
000110: 52 45 20 45 78 61 6D 69 6E 65 42 6C 6F 63 6B 3B RE ExamineBlock;
000120: 0D 0A 42 45 47 49 4E 0D 0A 09 45 6E 74 72 79 4E ..BEGIN...EntryN
000130: 6F 3A 3D 30 3B 0D 0A 09 57 48 49 4C 45 20 28 45 o:=0;...WHILE (E
000140: 6E 74 72 79 4E 6F 3C 42 75 66 66 65 72 2E 45 6E ntryNo<Buffer.En
000150: 74 72 69 65 73 29 20 0D 0A 09 20 20 20 20 41 4E tries) ... AN
000160: 44 20 28 20 20 20 28 42 75 66 66 65 72 2E 46 69 D ( (Buffer.Fi
000170: 6C 65 45 6E 74 72 79 5B 45 6E 74 72 79 4E 6F 5D leEntry[EntryNo]
000180: 2E 46 69 6C 65 66 6E 3C 3E 66 2E 66 2E 66 63 62 .Filefn<>f.f.fcb
000190: 66 6E 29 0D 0A 09 09 20 20 4F 52 20 28 42 75 66 fn).... OR (Buf
0001A0: 66 65 72 2E 46 69 6C 65 45 6E 74 72 79 5B 45 6E fer.FileEntry[En
0001B0: 74 72 79 4E 6F 5D 2E 46 69 6C 65 66 74 3C 3E 66 tryNo].Fileft<>f
0001C0: 2E 66 2E 66 63 62 66 74 29 29 20 44 4F 0D 0A 09 .f.fcbft)) DO...
0001D0: 09 49 4E 43 28 45 6E 74 72 79 4E 6F 29 3B 0D 0A .INC(EntryNo);..
0001E0: 09 09 45 4E 44 3B 0D 0A 09 49 46 20 45 6E 74 72 ..END;...IF Entr
0001F0: 79 4E 6F 3E 3D 42 75 66 66 65 72 2E 45 6E 74 72 yNo>=Buffer.Entr
Size : 512 (Real : 512)
000000: 4C 53 45 3B 0D 0A 09 09 09 45 58 49 54 20 0D 0A LSE;.....EXIT ..
000010: 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 20 ...END;....END;
000020: 28 2A 4C 4F 4F 50 2A 29 0D 0A 09 52 45 54 55 52 (*LOOP*)...RETUR
000030: 4E 20 70 6F 73 3B 0D 0A 09 45 4E 44 20 41 64 76 N pos;...END Adv
000040: 61 6E 63 65 4C 69 6E 65 3B 0D 0A 0D 0A 09 0D 0A anceLine;.......
000050: 50 52 4F 43 45 44 55 52 45 20 52 65 74 72 6C 69 PROCEDURE Retrli
000060: 6E 65 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C ne(VAR f:EditFil
000070: 65 3B 56 41 52 20 6C 65 6E 2C 70 6F 73 3A 49 4E e;VAR len,pos:IN
000080: 54 45 47 45 52 3B 56 41 52 20 70 3A 50 6F 73 69 TEGER;VAR p:Posi
000090: 74 69 6F 6E 3B 0D 0A 09 09 56 41 52 20 6C 69 6E tion;....VAR lin
0000A0: 65 73 6D 6F 76 65 64 3A 49 4E 54 45 47 45 52 3B esmoved:INTEGER;
0000B0: 6C 69 6E 65 73 74 6F 6D 6F 76 65 3A 49 4E 54 45 linestomove:INTE
0000C0: 47 45 52 29 3B 0D 0A 28 2A 09 72 65 74 75 72 6E GER);..(*.return
0000D0: 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 69 6E the position in
0000E0: 20 74 68 65 20 63 75 72 72 65 6E 74 20 6C 69 6E the current lin
0000F0: 65 2A 29 0D 0A 56 41 52 09 63 68 3A 43 48 41 52 e*)..VAR.ch:CHAR
000100: 3B 0D 0A 09 69 3A 49 4E 54 45 47 45 52 3B 0D 0A ;...i:INTEGER;..
000110: 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 .b:BOOLEAN;..BEG
000120: 49 4E 0D 0A 09 73 65 74 63 75 72 70 6F 73 28 66 IN...setcurpos(f
000130: 29 3B 0D 0A 09 6C 69 6E 65 73 6D 6F 76 65 64 3A );...linesmoved:
000140: 3D 30 3B 0D 0A 0D 0A 09 49 46 20 43 68 61 72 50 =0;.....IF CharP
000150: 6F 73 3E 49 4E 54 45 47 45 52 28 57 6F 72 6B 69 os>INTEGER(Worki
000160: 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 54 48 ng^.BlockLen) TH
000170: 45 4E 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 57 EN....CharPos:=W
000180: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
000190: 20 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 49 46 ....END;.....IF
0001A0: 20 6C 69 6E 65 73 74 6F 6D 6F 76 65 3D 2D 31 36 linestomove=-16
0001B0: 37 33 36 20 54 48 45 4E 20 28 2A 67 6F 20 74 6F 736 THEN (*go to
0001C0: 20 74 6F 70 20 6F 66 20 66 69 6C 65 0D 0A 09 09 top of file....
0001D0: 09 09 20 20 20 20 54 68 69 73 20 69 73 20 61 20 .. This is a
0001E0: 72 65 63 65 6E 74 20 6D 6F 64 20 74 6F 20 73 70 recent mod to sp
0001F0: 65 65 64 20 75 70 20 0D 0A 09 09 09 09 20 20 20 eed up ......
Size : 512 (Real : 512)
000000: 69 65 73 20 54 48 45 4E 0D 0A 09 09 49 46 20 42 ies THEN....IF B
000010: 75 66 66 65 72 2E 45 6E 74 72 69 65 73 3C 48 49 uffer.Entries<HI
000020: 47 48 28 42 75 66 66 65 72 2E 46 69 6C 65 45 6E GH(Buffer.FileEn
000030: 74 72 79 29 20 54 48 45 4E 0D 0A 09 09 09 49 4E try) THEN.....IN
000040: 43 28 42 75 66 66 65 72 2E 45 6E 74 72 69 65 73 C(Buffer.Entries
000050: 29 3B 0D 0A 09 09 09 4D 61 6B 65 45 6E 74 72 79 );.....MakeEntry
000060: 3B 0D 0A 09 09 45 4C 53 45 09 45 6E 74 72 79 4E ;....ELSE.EntryN
000070: 6F 3A 3D 36 30 30 30 30 20 45 4E 44 3B 09 0D 0A o:=60000 END;...
000080: 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 45 78 61 ..END;...END Exa
000090: 6D 69 6E 65 42 6C 6F 63 6B 3B 0D 0A 50 52 4F 43 mineBlock;..PROC
0000A0: 45 44 55 52 45 20 53 65 61 72 63 68 3B 0D 0A 0D EDURE Search;...
0000B0: 0A 28 2A 09 46 69 6E 64 20 65 6E 74 72 79 20 2D .(*.Find entry -
0000C0: 20 63 72 65 61 74 65 20 65 6E 74 72 79 20 69 66 create entry if
0000D0: 20 6E 65 63 63 65 73 73 61 72 79 2A 29 0D 0A 42 neccessary*)..B
0000E0: 45 47 49 4E 0D 0A 09 49 46 20 42 6C 6F 63 6B 4E EGIN...IF BlockN
0000F0: 6F 3C 36 30 30 30 30 20 54 48 45 4E 20 45 78 61 o<60000 THEN Exa
000100: 6D 69 6E 65 42 6C 6F 63 6B 0D 0A 09 45 4C 53 45 mineBlock...ELSE
000110: 20 45 6E 74 72 79 4E 6F 3A 3D 36 30 30 30 30 20 EntryNo:=60000
000120: 45 4E 44 3B 0D 0A 09 49 46 20 45 6E 74 72 79 4E END;...IF EntryN
000130: 6F 3D 36 30 30 30 30 20 54 48 45 4E 0D 0A 09 09 o=60000 THEN....
000140: 53 65 74 42 6C 6F 63 6B 28 64 61 74 66 69 6C 65 SetBlock(datfile
000150: 2C 30 29 3B 0D 0A 09 09 42 6C 6F 63 6B 4E 6F 3A ,0);....BlockNo:
000160: 3D 30 0D 0A 09 09 45 4E 44 3B 0D 0A 09 57 48 49 =0....END;...WHI
000170: 4C 45 20 45 6E 74 72 79 4E 6F 3D 36 30 30 30 30 LE EntryNo=60000
000180: 20 44 4F 0D 0A 09 09 53 65 71 52 65 61 64 42 6C DO....SeqReadBl
000190: 6F 63 6B 28 64 61 74 66 69 6C 65 2C 41 44 52 28 ock(datfile,ADR(
0001A0: 42 75 66 66 65 72 29 2C 42 79 74 65 73 50 65 72 Buffer),BytesPer
0001B0: 42 6C 6F 63 6B 2C 72 65 70 6C 79 29 3B 0D 0A 09 Block,reply);...
0001C0: 09 49 46 20 72 65 70 6C 79 3C 3E 42 79 74 65 73 .IF reply<>Bytes
0001D0: 50 65 72 42 6C 6F 63 6B 20 54 48 45 4E 0D 0A 09 PerBlock THEN...
0001E0: 09 09 42 75 66 66 65 72 2E 45 6E 74 72 69 65 73 ..Buffer.Entries
0001F0: 3A 3D 31 3B 0D 0A 09 09 09 45 6E 74 72 79 4E 6F :=1;.....EntryNo
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 4B 65 79 62 6F 61 72 64 3B 0D 0A 0D 0A 0D E Keyboard;.....
000020: 0A 28 2A 09 41 63 74 20 6F 6E 20 63 6F 6D 6D 61 .(*.Act on comma
000030: 6E 64 73 20 65 6E 74 65 72 65 64 20 66 72 6F 6D nds entered from
000040: 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 0D 0A the keyboard ..
000050: 0D 0A 09 54 68 69 73 20 6D 6F 64 75 6C 65 20 68 ...This module h
000060: 61 6E 64 6C 65 73 20 6B 65 79 62 6F 61 72 64 20 andles keyboard
000070: 64 65 73 70 61 74 63 68 20 64 75 72 69 6E 67 20 despatch during
000080: 66 69 6C 65 20 65 64 69 74 74 69 6E 67 2A 29 0D file editting*).
000090: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 74 ...PROCEDURE Int
0000A0: 65 72 70 72 65 74 3B 0D 0A 0D 0A 28 2A 09 53 74 erpret;....(*.St
0000B0: 61 72 74 20 6B 65 79 62 6F 61 72 64 20 69 6E 74 art keyboard int
0000C0: 65 72 70 72 65 74 61 74 69 6F 6E 20 28 65 66 66 erpretation (eff
0000D0: 65 63 74 69 76 65 6C 79 20 65 64 69 74 20 6D 6F ectively edit mo
0000E0: 64 65 29 2A 29 0D 0A 45 4E 44 20 4B 65 79 62 6F de)*)..END Keybo
0000F0: 61 72 64 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 00 ard.............
000100: 72 72 6F 72 4F 72 64 69 6E 61 6C 2B 30 62 30 68 rrorOrdinal+0b0h
000110: 29 29 3B 0D 0A 09 52 65 44 69 73 70 6C 61 79 3B ));...ReDisplay;
000120: 0D 0A 28 2A 09 44 69 73 70 6C 61 79 46 69 6C 65 ..(*.DisplayFile
000130: 28 46 69 6C 65 73 5B 43 75 72 72 65 6E 74 46 69 (Files[CurrentFi
000140: 6C 65 5D 2C 43 75 72 72 65 6E 74 57 69 6E 64 6F le],CurrentWindo
000150: 77 2C 54 68 69 73 78 2C 54 68 69 73 79 29 3B 2A w,Thisx,Thisy);*
000160: 29 0D 0A 09 47 6F 74 6F 78 79 28 54 68 69 73 78 )...Gotoxy(Thisx
000170: 2C 54 68 69 73 79 29 3B 0D 0A 09 63 75 72 78 5B ,Thisy);...curx[
000180: 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 5D 3A 3D CurrentWindow]:=
000190: 54 68 69 73 78 3B 0D 0A 09 63 75 72 79 5B 43 75 Thisx;...cury[Cu
0001A0: 72 72 65 6E 74 57 69 6E 64 6F 77 5D 3A 3D 54 68 rrentWindow]:=Th
0001B0: 69 73 79 3B 0D 0A 09 45 4E 44 20 44 69 73 70 6C isy;...END Displ
0001C0: 61 79 45 72 72 6F 72 3B 09 0D 0A 42 45 47 49 4E ayError;...BEGIN
0001D0: 0D 0A 09 57 69 6E 64 6F 77 73 3A 3D 30 3B 0D 0A ...Windows:=0;..
0001E0: 09 45 4E 44 20 45 64 69 74 44 69 73 70 6C 61 79 .END EditDisplay
0001F0: 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
Size : 512 (Real : 512)
000000: 3A 3D 30 3B 0D 0A 09 09 09 4D 61 6B 65 45 6E 74 :=0;.....MakeEnt
000010: 72 79 3B 0D 0A 09 09 45 4C 53 45 09 0D 0A 09 09 ry;....ELSE.....
000020: 09 45 78 61 6D 69 6E 65 42 6C 6F 63 6B 3B 0D 0A .ExamineBlock;..
000030: 09 09 09 45 4E 44 3B 0D 0A 09 09 49 46 20 45 6E ...END;....IF En
000040: 74 72 79 4E 6F 3D 36 30 30 30 30 20 54 48 45 4E tryNo=60000 THEN
000050: 20 49 4E 43 28 42 6C 6F 63 6B 4E 6F 29 20 45 4E INC(BlockNo) EN
000060: 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 D;....END;...END
000070: 20 53 65 61 72 63 68 3B 0D 0A 09 09 0D 0A 0D 0A Search;........
000080: 50 52 4F 43 45 44 55 52 45 20 47 65 74 50 6F 73 PROCEDURE GetPos
000090: 69 74 69 6F 6E 28 46 6E 3A 46 49 4C 45 29 3A 43 ition(Fn:FILE):C
0000A0: 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D ARDINAL;..BEGIN.
0000B0: 0A 09 66 3A 3D 46 6E 3B 0D 0A 09 49 46 20 6F 70 ..f:=Fn;...IF op
0000C0: 65 6E 65 64 20 54 48 45 4E 0D 0A 09 09 53 65 61 ened THEN....Sea
0000D0: 72 63 68 3B 0D 0A 09 09 52 45 54 55 52 4E 20 42 rch;....RETURN B
0000E0: 75 66 66 65 72 2E 46 69 6C 65 45 6E 74 72 79 5B uffer.FileEntry[
0000F0: 45 6E 74 72 79 4E 6F 5D 2E 46 69 6C 65 50 6F 73 EntryNo].FilePos
000100: 3B 0D 0A 09 45 4C 53 45 09 52 45 54 55 52 4E 20 ;...ELSE.RETURN
000110: 30 20 45 4E 44 3B 0D 0A 09 45 4E 44 20 47 65 74 0 END;...END Get
000120: 50 6F 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 50 52 4F Position;....PRO
000130: 43 45 44 55 52 45 20 53 65 74 50 6F 73 69 74 69 CEDURE SetPositi
000140: 6F 6E 28 46 6E 3A 46 49 4C 45 3B 50 6F 73 3A 43 on(Fn:FILE;Pos:C
000150: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
000160: 0D 0A 09 66 3A 3D 46 6E 3B 0D 0A 09 49 46 20 6F ...f:=Fn;...IF o
000170: 70 65 6E 65 64 20 54 48 45 4E 0D 0A 09 09 53 65 pened THEN....Se
000180: 61 72 63 68 3B 0D 0A 09 09 42 75 66 66 65 72 2E arch;....Buffer.
000190: 46 69 6C 65 45 6E 74 72 79 5B 45 6E 74 72 79 4E FileEntry[EntryN
0001A0: 6F 5D 2E 46 69 6C 65 50 6F 73 3A 3D 50 6F 73 3B o].FilePos:=Pos;
0001B0: 0D 0A 09 09 57 72 69 74 65 46 69 6C 65 0D 0A 09 ....WriteFile...
0001C0: 09 45 4E 44 0D 0A 09 45 4E 44 20 53 65 74 50 6F .END...END SetPo
0001D0: 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 42 45 47 49 4E sition;....BEGIN
0001E0: 0D 0A 09 6F 70 65 6E 65 64 3A 3D 54 52 55 45 3B ...opened:=TRUE;
0001F0: 09 28 2A 61 73 73 75 6D 65 20 66 69 6C 65 20 63 .(*assume file c
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 28 2A 65 73 63 61 70 65 20 73 6F 6D 65 74 68 69 (*escape somethi
000010: 6E 67 2A 29 0D 0A 09 09 52 65 61 64 41 43 68 61 ng*)....ReadACha
000020: 72 28 63 68 29 3B 0D 0A 09 09 4D 61 63 72 6F 28 r(ch);....Macro(
000030: 63 68 2C 50 61 72 56 61 6C 75 65 29 3B 0D 0A 09 ch,ParValue);...
000040: 09 50 61 72 56 61 6C 75 65 3A 3D 30 3B 0D 0A 09 .ParValue:=0;...
000050: 45 4C 53 49 46 20 63 68 3D 31 31 78 20 54 48 45 ELSIF ch=11x THE
000060: 4E 20 51 75 69 63 6B 0D 0A 09 45 4C 53 45 0D 0A N Quick...ELSE..
000070: 09 09 46 6F 75 6E 64 3A 3D 54 52 55 45 3B 20 28 ..Found:=TRUE; (
000080: 2A 53 65 74 20 66 61 6C 73 65 20 61 73 20 73 69 *Set false as si
000090: 67 6E 20 6F 66 20 66 61 69 6C 75 72 65 20 2A 29 gn of failure *)
0000A0: 0D 0A 09 09 57 48 49 4C 45 20 28 50 61 72 56 61 ....WHILE (ParVa
0000B0: 6C 75 65 3E 30 29 20 41 4E 44 20 46 6F 75 6E 64 lue>0) AND Found
0000C0: 20 44 4F 20 0D 0A 09 09 09 49 46 20 43 68 65 63 DO .....IF Chec
0000D0: 6B 49 6E 74 65 72 72 75 70 74 28 29 20 54 48 45 kInterrupt() THE
0000E0: 4E 20 50 61 72 56 61 6C 75 65 3A 3D 30 20 0D 0A N ParValue:=0 ..
0000F0: 09 09 09 45 4C 53 45 0D 0A 09 09 09 09 44 45 43 ...ELSE......DEC
000100: 28 50 61 72 56 61 6C 75 65 29 3B 0D 0A 09 09 09 (ParValue);.....
000110: 09 49 46 20 63 68 3E 43 48 52 28 31 32 37 29 20 .IF ch>CHR(127)
000120: 54 48 45 4E 20 63 68 3A 3D 43 48 52 28 4F 52 44 THEN ch:=CHR(ORD
000130: 28 63 68 29 2D 31 32 38 29 20 45 4E 44 3B 0D 0A (ch)-128) END;..
000140: 09 09 09 09 4D 61 69 6E 54 61 62 6C 65 5B 63 68 ....MainTable[ch
000150: 5D 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ];......END;....
000160: 09 45 4E 44 3B 0D 0A 09 09 50 61 72 56 61 6C 75 .END;....ParValu
000170: 65 3A 3D 30 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 e:=0;....END;...
000180: 45 4E 44 20 45 73 63 61 70 65 43 6F 75 6E 74 3B END EscapeCount;
000190: 0D 0A 50 52 4F 43 45 44 55 52 45 20 45 73 63 61 ..PROCEDURE Esca
0001A0: 70 65 3B 0D 0A 56 41 52 20 53 61 76 65 42 61 63 pe;..VAR SaveBac
0001B0: 6B 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 k:BOOLEAN;..BEGI
0001C0: 4E 0D 0A 09 52 65 61 64 41 43 68 61 72 28 63 68 N...ReadAChar(ch
0001D0: 29 3B 0D 0A 09 49 46 20 63 68 3D 27 2D 27 20 54 );...IF ch='-' T
0001E0: 48 45 4E 0D 0A 09 09 42 61 63 6B 77 61 72 64 73 HEN....Backwards
0001F0: 3A 3D 54 52 55 45 3B 0D 0A 09 09 52 65 61 64 41 :=TRUE;....ReadA
Size : 512 (Real : 512)
000000: 28 2A 09 4B 65 79 62 6F 61 72 64 20 64 65 73 70 (*.Keyboard desp
000010: 61 74 63 68 65 72 20 61 6E 64 20 73 6F 6D 65 20 atcher and some
000020: 65 64 69 74 69 6E 67 20 66 75 6E 63 74 69 6F 6E editing function
000030: 73 0D 0A 0D 0A 09 43 6F 70 79 72 69 67 68 74 20 s.....Copyright
000040: 28 43 29 20 44 61 76 65 20 4D 6F 6F 72 65 20 46 (C) Dave Moore F
000050: 54 4C 20 4D 6F 64 75 6C 61 2D 32 20 31 39 38 36 TL Modula-2 1986
000060: 0D 0A 0D 0A 09 4D 6F 64 69 66 69 63 61 74 69 6F .....Modificatio
000070: 6E 73 3A 0D 0A 09 09 32 30 20 4A 75 6C 79 20 38 ns:....20 July 8
000080: 36 20 48 61 6E 64 6C 69 6E 67 20 6F 66 20 62 61 6 Handling of ba
000090: 63 6B 77 61 72 64 73 20 63 68 61 6E 67 65 64 20 ckwards changed
0000A0: 73 6F 20 74 68 61 74 20 64 69 72 65 63 74 69 6F so that directio
0000B0: 6E 0D 0A 09 09 09 20 20 20 6F 66 20 66 69 6E 64 n..... of find
0000C0: 20 72 65 6D 61 69 6E 73 20 73 61 6D 65 20 75 6E remains same un
0000D0: 6C 65 73 73 20 65 78 70 6C 69 63 69 74 20 63 6F less explicit co
0000E0: 75 6E 74 20 65 6E 74 65 72 65 64 2E 0D 0A 09 09 unt entered.....
0000F0: 09 20 20 20 54 68 69 73 20 61 6C 6C 6F 77 73 20 . This allows
000100: 75 73 65 20 6F 66 20 6A 75 73 74 20 5E 4C 20 66 use of just ^L f
000110: 6F 72 20 62 61 63 6B 77 61 72 64 73 20 73 65 61 or backwards sea
000120: 72 63 68 65 73 0D 0A 0D 0A 2A 29 0D 0A 0D 0A 49 rches....*)....I
000130: 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D 4F MPLEMENTATION MO
000140: 44 55 4C 45 20 4B 65 79 62 6F 61 72 64 3B 0D 0A DULE Keyboard;..
000150: 0D 0A 46 52 4F 4D 09 53 63 72 65 65 6E 44 75 6D ..FROM.ScreenDum
000160: 6D 79 20 49 4D 50 4F 52 54 20 52 69 6E 67 42 65 my IMPORT RingBe
000170: 6C 6C 2C 47 6F 74 6F 78 79 2C 43 6C 65 61 72 53 ll,Gotoxy,ClearS
000180: 63 72 65 65 6E 2C 4F 75 74 70 75 74 54 6F 53 63 creen,OutputToSc
000190: 72 65 65 6E 3B 0D 0A 46 52 4F 4D 09 45 64 69 74 reen;..FROM.Edit
0001A0: 44 69 73 70 6C 61 79 20 49 4D 50 4F 52 54 20 45 Display IMPORT E
0001B0: 72 72 6F 72 4D 65 73 73 61 67 65 2C 57 69 6E 64 rrorMessage,Wind
0001C0: 6F 77 73 2C 44 69 73 70 6C 61 79 45 72 72 6F 72 ows,DisplayError
0001D0: 2C 45 72 72 6F 72 4F 72 64 69 6E 61 6C 3B 0D 0A ,ErrorOrdinal;..
0001E0: 46 52 4F 4D 09 45 64 69 74 43 6F 6E 74 72 6F 6C FROM.EditControl
0001F0: 20 49 4D 50 4F 52 54 20 49 6E 73 4F 6E 65 43 68 IMPORT InsOneCh
Size : 512 (Real : 512)
000000: 43 68 61 72 28 63 68 29 3B 0D 0A 09 09 45 73 63 Char(ch);....Esc
000010: 61 70 65 43 6F 75 6E 74 3B 0D 0A 09 09 0D 0A 09 apeCount;.......
000020: 45 4C 53 49 46 20 28 63 68 3E 3D 27 30 27 29 20 ELSIF (ch>='0')
000030: 41 4E 44 20 28 63 68 3C 3D 27 39 27 29 20 54 48 AND (ch<='9') TH
000040: 45 4E 20 0D 0A 09 09 42 61 63 6B 77 61 72 64 73 EN ....Backwards
000050: 3A 3D 46 41 4C 53 45 3B 0D 0A 09 09 45 73 63 61 :=FALSE;....Esca
000060: 70 65 43 6F 75 6E 74 0D 0A 09 45 4C 53 49 46 20 peCount...ELSIF
000070: 63 68 3D 30 34 78 20 54 48 45 4E 20 44 65 66 4D ch=04x THEN DefM
000080: 61 63 72 6F 3B 52 65 64 69 73 70 6C 61 79 0D 0A acro;Redisplay..
000090: 09 45 4C 53 49 46 20 63 68 3D 30 63 78 20 54 48 .ELSIF ch=0cx TH
0000A0: 45 4E 20 4C 65 61 72 6E 4D 61 63 72 6F 3B 52 65 EN LearnMacro;Re
0000B0: 64 69 73 70 6C 61 79 0D 0A 09 45 4C 53 49 46 20 display...ELSIF
0000C0: 63 68 3D 31 30 78 20 54 48 45 4E 20 43 6C 65 61 ch=10x THEN Clea
0000D0: 72 53 63 72 65 65 6E 3B 50 72 69 6E 74 4D 61 63 rScreen;PrintMac
0000E0: 72 6F 73 3B 52 65 64 69 73 70 6C 61 79 0D 0A 09 ros;Redisplay...
0000F0: 45 4C 53 45 20 4D 61 63 72 6F 28 63 68 2C 31 29 ELSE Macro(ch,1)
000100: 20 45 4E 44 3B 0D 0A 09 45 4E 44 20 45 73 63 61 END;...END Esca
000110: 70 65 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 45 pe;..PROCEDURE E
000120: 6E 64 69 6E 74 65 72 70 72 65 74 3B 0D 0A 0D 0A ndinterpret;....
000130: 28 2A 09 45 6E 64 20 6B 65 79 62 6F 61 72 64 20 (*.End keyboard
000140: 69 6E 74 65 72 70 72 65 74 61 74 69 6F 6E 0D 0A interpretation..
000150: 0D 0A 09 4E 6F 74 65 20 74 68 61 74 20 74 68 69 ...Note that thi
000160: 73 20 6D 6F 64 75 6C 65 20 63 61 6E 20 62 65 20 s module can be
000170: 61 73 73 69 67 6E 65 64 20 74 6F 20 61 20 6B 65 assigned to a ke
000180: 79 20 73 6F 20 74 68 61 74 20 79 6F 75 20 63 61 y so that you ca
000190: 6E 0D 0A 09 65 78 69 74 20 66 72 6F 6D 20 65 64 n...exit from ed
0001A0: 69 74 20 6D 6F 64 65 20 67 72 61 63 65 66 75 6C it mode graceful
0001B0: 6C 79 0D 0A 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 ly..*)..BEGIN...
0001C0: 69 6E 74 65 72 70 72 65 74 69 6E 67 3A 3D 46 41 interpreting:=FA
0001D0: 4C 53 45 3B 0D 0A 09 45 4E 44 20 45 6E 64 69 6E LSE;...END Endin
0001E0: 74 65 72 70 72 65 74 3B 0D 0A 50 52 4F 43 45 44 terpret;..PROCED
0001F0: 55 52 45 20 49 6E 73 43 68 61 72 3B 0D 0A 42 45 URE InsChar;..BE
Size : 512 (Real : 512)
000000: 61 72 2C 44 65 6C 4F 6E 65 43 68 61 72 2C 44 65 ar,DelOneChar,De
000010: 6C 54 6F 45 4F 4C 2C 44 65 6C 46 75 6C 6C 4C 69 lToEOL,DelFullLi
000020: 6E 65 2C 0D 0A 09 09 09 20 20 20 4C 65 66 74 2C ne,..... Left,
000030: 52 69 67 68 74 2C 44 6F 77 6E 2C 55 70 2C 55 70 Right,Down,Up,Up
000040: 53 63 72 65 65 6E 2C 44 6F 77 6E 53 63 72 65 65 Screen,DownScree
000050: 6E 2C 54 6F 70 2C 42 6F 74 74 6F 6D 2C 0D 0A 09 n,Top,Bottom,...
000060: 09 09 20 20 20 43 75 72 72 65 6E 74 57 69 6E 64 .. CurrentWind
000070: 6F 77 2C 46 69 6C 65 73 4F 70 65 6E 65 64 2C 63 ow,FilesOpened,c
000080: 75 72 78 2C 63 75 72 79 2C 43 68 61 6E 67 65 57 urx,cury,ChangeW
000090: 69 6E 64 6F 77 2C 0D 0A 09 09 09 20 20 20 53 63 indow,..... Sc
0000A0: 72 6F 6C 6C 55 70 2C 53 63 72 6F 6C 6C 44 6F 77 rollUp,ScrollDow
0000B0: 6E 2C 52 65 73 65 74 53 63 72 65 65 6E 50 6F 73 n,ResetScreenPos
0000C0: 2C 0D 0A 09 09 09 20 20 20 54 6F 70 2C 42 6F 74 ,..... Top,Bot
0000D0: 74 6F 6D 2C 46 61 72 4C 65 66 74 2C 46 61 72 52 tom,FarLeft,FarR
0000E0: 69 67 68 74 2C 46 69 6C 65 73 2C 53 65 61 72 63 ight,Files,Searc
0000F0: 68 2C 4F 76 65 72 57 72 69 74 65 2C 20 0D 0A 09 h,OverWrite, ...
000100: 09 09 20 20 20 46 69 6E 64 57 6F 72 64 2C 52 65 .. FindWord,Re
000110: 44 69 73 70 6C 61 79 2C 47 6F 54 6F 4C 61 62 65 Display,GoToLabe
000120: 6C 2C 55 70 64 61 74 65 64 2C 43 75 72 72 65 6E l,Updated,Curren
000130: 74 46 69 6C 65 2C 0D 0A 09 09 09 20 20 20 54 68 tFile,..... Th
000140: 69 73 78 2C 54 68 69 73 79 2C 57 69 6E 64 6F 77 isx,Thisy,Window
000150: 46 69 6C 65 2C 4D 6F 76 65 64 4F 4B 3B 0D 0A 46 File,MovedOK;..F
000160: 52 4F 4D 09 4D 61 6B 65 45 64 69 74 20 49 4D 50 ROM.MakeEdit IMP
000170: 4F 52 54 20 50 72 65 70 61 72 65 53 74 72 69 6E ORT PrepareStrin
000180: 67 2C 46 69 6E 64 53 74 72 69 6E 67 2C 4C 61 62 g,FindString,Lab
000190: 65 6C 4F 70 2C 42 6C 6F 63 6B 43 6F 70 79 2C 42 elOp,BlockCopy,B
0001A0: 6C 6F 63 6B 44 65 6C 2C 0D 0A 09 09 09 45 72 72 lockDel,.....Err
0001B0: 6F 72 43 6F 75 6E 74 3B 0D 0A 46 52 4F 4D 09 44 orCount;..FROM.D
0001C0: 6F 4D 65 6E 75 20 20 49 4D 50 4F 52 54 20 20 20 oMenu IMPORT
0001D0: 20 20 47 65 74 53 74 72 69 6E 67 2C 52 65 64 69 GetString,Redi
0001E0: 73 70 6C 61 79 3B 0D 0A 46 52 4F 4D 09 4D 61 63 splay;..FROM.Mac
0001F0: 72 6F 73 09 49 4D 50 4F 52 54 09 44 65 66 4D 61 ros.IMPORT.DefMa
Size : 512 (Real : 512)
000000: 47 49 4E 0D 0A 09 49 46 20 49 6E 73 65 72 74 4D GIN...IF InsertM
000010: 6F 64 65 20 54 48 45 4E 20 0D 0A 09 09 49 6E 73 ode THEN ....Ins
000020: 4F 6E 65 43 68 61 72 28 63 68 29 3B 0D 0A 09 45 OneChar(ch);...E
000030: 4C 53 45 0D 0A 09 09 4F 76 65 72 57 72 69 74 65 LSE....OverWrite
000040: 28 63 68 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 (ch);....END;...
000050: 45 4E 44 20 49 6E 73 43 68 61 72 3B 0D 0A 50 52 END InsChar;..PR
000060: 4F 43 45 44 55 52 45 20 42 72 65 61 6B 4C 69 6E OCEDURE BreakLin
000070: 65 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 6E 73 4F e;..BEGIN...InsO
000080: 6E 65 43 68 61 72 28 30 64 78 29 3B 0D 0A 09 4C neChar(0dx);...L
000090: 65 66 74 3B 0D 0A 09 45 4E 44 20 42 72 65 61 6B eft;...END Break
0000A0: 4C 69 6E 65 3B 0D 0A 56 41 52 09 4C 65 6E 3A 43 Line;..VAR.Len:C
0000B0: 41 52 44 49 4E 41 4C 3D 30 3B 0D 0A 09 52 65 70 ARDINAL=0;...Rep
0000C0: 6C 61 63 65 53 74 72 69 6E 67 3A 41 52 52 41 59 laceString:ARRAY
0000D0: 5B 30 2E 2E 36 30 5D 20 4F 46 20 43 48 41 52 3B [0..60] OF CHAR;
0000E0: 0D 0A 09 52 4C 65 6E 3A 49 4E 54 45 47 45 52 3B ...RLen:INTEGER;
0000F0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 6F 46 69 ..PROCEDURE DoFi
000100: 6E 64 3B 0D 0A 42 45 47 49 4E 0D 0A 0D 0A 09 28 nd;..BEGIN.....(
000110: 2A 20 74 68 65 20 70 61 73 73 69 6E 67 20 6F 66 * the passing of
000120: 20 74 68 65 20 62 61 63 6B 77 61 72 64 73 20 73 the backwards s
000130: 74 61 74 75 73 20 69 73 20 61 20 72 65 61 6C 20 tatus is a real
000140: 6B 6C 75 64 67 65 0D 0A 09 20 20 20 77 68 69 63 kludge... whic
000150: 68 20 77 61 73 20 69 6E 74 72 6F 64 75 63 65 64 h was introduced
000160: 20 61 73 20 61 20 71 75 69 63 6B 20 66 69 78 20 as a quick fix
000170: 77 68 69 6C 65 20 49 20 77 61 73 20 61 20 6C 6F while I was a lo
000180: 6E 67 0D 0A 09 20 20 20 77 61 79 20 66 72 6F 6D ng... way from
000190: 20 68 6F 6D 65 2C 20 74 6F 20 61 76 6F 69 64 20 home, to avoid
0001A0: 68 61 76 69 6E 67 20 74 6F 20 75 70 64 61 74 65 having to update
0001B0: 20 6D 79 20 77 6F 72 6B 20 64 69 73 63 73 0D 0A my work discs..
0001C0: 09 20 20 20 61 74 20 68 6F 6D 65 20 77 69 74 68 . at home with
0001D0: 20 74 6F 6F 20 6D 75 63 68 20 73 74 75 66 66 20 too much stuff
0001E0: 2A 29 0D 0A 0D 0A 09 49 46 20 4C 65 6E 3E 30 20 *).....IF Len>0
0001F0: 54 48 45 4E 20 0D 0A 09 09 49 46 20 42 61 63 6B THEN ....IF Back
Size : 512 (Real : 512)
000000: 63 72 6F 2C 52 65 61 64 41 43 68 61 72 2C 4D 61 cro,ReadAChar,Ma
000010: 63 72 6F 2C 4C 65 61 72 6E 4D 61 63 72 6F 2C 50 cro,LearnMacro,P
000020: 72 69 6E 74 4D 61 63 72 6F 73 2C 0D 0A 09 09 09 rintMacros,.....
000030: 43 68 65 63 6B 49 6E 74 65 72 72 75 70 74 2C 46 CheckInterrupt,F
000040: 6F 75 6E 64 3B 0D 0A 28 2A 09 41 63 74 20 6F 6E ound;..(*.Act on
000050: 20 63 6F 6D 6D 61 6E 64 73 20 65 6E 74 65 72 65 commands entere
000060: 64 20 66 72 6F 6D 20 74 68 65 20 6B 65 79 62 6F d from the keybo
000070: 61 72 64 20 0D 0A 0D 0A 09 54 68 69 73 20 6D 6F ard .....This mo
000080: 64 75 6C 65 20 68 61 6E 64 6C 65 73 20 6B 65 79 dule handles key
000090: 62 6F 61 72 64 20 64 65 73 70 61 74 63 68 20 64 board despatch d
0000A0: 75 72 69 6E 67 20 66 69 6C 65 20 65 64 69 74 74 uring file editt
0000B0: 69 6E 67 2A 29 0D 0A 0D 0A 54 59 50 45 09 54 61 ing*)....TYPE.Ta
0000C0: 62 41 72 72 61 79 3D 41 52 52 41 59 20 5B 30 78 bArray=ARRAY [0x
0000D0: 2E 2E 37 66 78 5D 20 4F 46 20 50 52 4F 43 3B 0D ..7fx] OF PROC;.
0000E0: 0A 09 54 61 62 6C 65 3D 50 4F 49 4E 54 45 52 20 ..Table=POINTER
0000F0: 54 4F 20 54 61 62 41 52 52 41 59 3B 0D 0A 56 41 TO TabARRAY;..VA
000100: 52 09 0D 0A 09 63 68 3A 43 48 41 52 3B 0D 0A 09 R....ch:CHAR;...
000110: 4D 61 69 6E 54 61 62 6C 65 3A 54 61 62 41 72 72 MainTable:TabArr
000120: 61 79 3B 0D 0A 09 69 6E 74 65 72 70 72 65 74 69 ay;...interpreti
000130: 6E 67 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 50 61 ng:BOOLEAN;...Pa
000140: 72 56 61 6C 75 65 3A 49 4E 54 45 47 45 52 3D 30 rValue:INTEGER=0
000150: 3B 0D 0A 09 47 72 6F 75 70 4F 66 43 6F 64 65 73 ;...GroupOfCodes
000160: 3A 41 52 52 41 59 5B 31 2E 2E 33 30 5D 20 4F 46 :ARRAY[1..30] OF
000170: 20 43 48 41 52 3B 0D 0A 09 47 72 6F 75 70 4C 65 CHAR;...GroupLe
000180: 6E 2C 47 72 6F 75 70 50 6F 73 3A 43 41 52 44 49 n,GroupPos:CARDI
000190: 4E 41 4C 3B 0D 0A 09 69 3A 43 41 52 44 49 4E 41 NAL;...i:CARDINA
0001A0: 4C 3B 0D 0A 09 49 6E 73 65 72 74 4D 6F 64 65 3A L;...InsertMode:
0001B0: 42 4F 4F 4C 45 41 4E 3D 54 52 55 45 3B 0D 0A 09 BOOLEAN=TRUE;...
0001C0: 4E 6F 42 65 6C 6C 3A 42 4F 4F 4C 45 41 4E 3D 46 NoBell:BOOLEAN=F
0001D0: 41 4C 53 45 3B 0D 0A 09 42 61 63 6B 77 61 72 64 ALSE;...Backward
0001E0: 73 3A 42 4F 4F 4C 45 41 4E 3D 46 41 4C 53 45 3B s:BOOLEAN=FALSE;
0001F0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 65 6C 6C ..PROCEDURE Bell
Size : 512 (Real : 512)
000000: 77 61 72 64 73 20 54 48 45 4E 20 46 6F 75 6E 64 wards THEN Found
000010: 3A 3D 53 65 61 72 63 68 28 52 65 70 6C 61 63 65 :=Search(Replace
000020: 53 74 72 69 6E 67 2C 52 4C 65 6E 2C 4C 65 6E 2B String,RLen,Len+
000030: 31 32 38 29 0D 0A 09 09 45 4C 53 45 20 46 6F 75 128)....ELSE Fou
000040: 6E 64 3A 3D 53 65 61 72 63 68 28 52 65 70 6C 61 nd:=Search(Repla
000050: 63 65 53 74 72 69 6E 67 2C 52 4C 65 6E 2C 4C 65 ceString,RLen,Le
000060: 6E 29 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D n) END;....END;.
000070: 0A 09 45 4E 44 20 44 6F 46 69 6E 64 3B 0D 0A 50 ..END DoFind;..P
000080: 52 4F 43 45 44 55 52 45 20 46 69 6E 64 3B 0D 0A ROCEDURE Find;..
000090: 56 41 52 09 53 65 61 72 63 68 53 74 72 69 6E 67 VAR.SearchString
0000A0: 3A 41 52 52 41 59 5B 30 2E 2E 36 30 5D 20 4F 46 :ARRAY[0..60] OF
0000B0: 20 43 48 41 52 3B 0D 0A 42 45 47 49 4E 0D 0A 09 CHAR;..BEGIN...
0000C0: 47 65 74 53 74 72 69 6E 67 28 53 65 61 72 63 68 GetString(Search
0000D0: 53 74 72 69 6E 67 2C 4C 65 6E 2C 27 46 69 6E 64 String,Len,'Find
0000E0: 3A 27 29 3B 0D 0A 09 49 46 20 4C 65 6E 3E 30 20 :');...IF Len>0
0000F0: 54 48 45 4E 0D 0A 09 09 50 72 65 70 61 72 65 53 THEN....PrepareS
000100: 74 72 69 6E 67 28 53 65 61 72 63 68 53 74 72 69 tring(SearchStri
000110: 6E 67 2C 4C 65 6E 29 3B 0D 0A 09 09 52 4C 65 6E ng,Len);....RLen
000120: 3A 3D 2D 31 3B 0D 0A 09 09 44 6F 46 69 6E 64 3B :=-1;....DoFind;
000130: 0D 0A 09 45 4C 53 45 0D 0A 09 09 52 65 44 69 73 ...ELSE....ReDis
000140: 70 6C 61 79 3B 0D 0A 09 09 45 4E 44 3B 0A 09 45 play;....END;..E
000150: 4E 44 20 46 69 6E 64 3B 0D 0A 50 52 4F 43 45 44 ND Find;..PROCED
000160: 55 52 45 20 52 65 70 6C 61 63 65 3B 0D 0A 56 41 URE Replace;..VA
000170: 52 09 53 65 61 72 63 68 53 74 72 69 6E 67 3A 41 R.SearchString:A
000180: 52 52 41 59 5B 30 2E 2E 36 30 5D 20 4F 46 20 43 RRAY[0..60] OF C
000190: 48 41 52 3B 0D 0A 09 4C 3A 43 41 52 44 49 4E 41 HAR;...L:CARDINA
0001A0: 4C 3B 0D 0A 09 0D 0A 42 45 47 49 4E 0D 0A 09 47 L;.....BEGIN...G
0001B0: 65 74 53 74 72 69 6E 67 28 53 65 61 72 63 68 53 etString(SearchS
0001C0: 74 72 69 6E 67 2C 4C 65 6E 2C 27 41 6C 74 65 72 tring,Len,'Alter
0001D0: 3A 27 29 3B 0D 0A 09 49 46 20 4C 65 6E 3E 30 20 :');...IF Len>0
0001E0: 54 48 45 4E 0D 0A 09 09 50 72 65 70 61 72 65 53 THEN....PrepareS
0001F0: 74 72 69 6E 67 28 53 65 61 72 63 68 53 74 72 69 tring(SearchStri
Size : 512 (Real : 512)
000000: 3B 0D 0A 0D 0A 28 2A 09 72 69 6E 67 20 74 68 65 ;....(*.ring the
000010: 20 62 65 6C 6C 20 2D 20 70 72 69 6D 61 72 69 6C bell - primaril
000020: 6C 79 20 75 73 65 64 20 66 6F 72 20 75 6E 2D 61 ly used for un-a
000030: 73 73 69 67 6E 65 64 20 6B 65 79 73 2A 29 0D 0A ssigned keys*)..
000040: 42 45 47 49 4E 0D 0A 09 49 46 20 4E 4F 54 20 4E BEGIN...IF NOT N
000050: 6F 42 65 6C 6C 20 54 48 45 4E 0D 0A 09 09 52 69 oBell THEN....Ri
000060: 6E 67 42 65 6C 6C 3B 0D 0A 09 09 45 4E 44 3B 0D ngBell;....END;.
000070: 0A 09 50 61 72 56 61 6C 75 65 3A 3D 30 3B 0D 0A ..ParValue:=0;..
000080: 09 45 4E 44 20 42 65 6C 6C 3B 0D 0A 50 52 4F 43 .END Bell;..PROC
000090: 45 44 55 52 45 20 51 75 69 63 6B 3B 46 4F 52 57 EDURE Quick;FORW
0000A0: 41 52 44 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 ARD;..PROCEDURE
0000B0: 45 73 63 61 70 65 43 6F 75 6E 74 3B 0D 0A 0D 0A EscapeCount;....
0000C0: 28 2A 09 65 73 63 61 70 65 20 63 68 61 72 61 63 (*.escape charac
0000D0: 74 65 72 20 70 72 6F 63 65 73 73 69 6E 67 0D 0A ter processing..
0000E0: 0D 0A 09 69 66 20 66 6F 6C 6C 6F 77 65 64 20 62 ...if followed b
0000F0: 79 20 6E 75 6D 62 65 72 2C 20 72 65 70 65 61 74 y number, repeat
000100: 73 20 6E 65 78 74 20 6B 65 79 20 67 69 76 65 6E s next key given
000110: 20 6E 75 6D 62 65 72 20 6F 66 20 74 69 6D 65 73 number of times
000120: 0D 0A 2A 29 0D 0A 56 41 52 09 69 3A 49 4E 54 45 ..*)..VAR.i:INTE
000130: 47 45 52 3B 0D 0A 42 45 47 49 4E 0D 0A 09 50 61 GER;..BEGIN...Pa
000140: 72 56 61 6C 75 65 3A 3D 30 3B 0D 0A 09 4C 4F 4F rValue:=0;...LOO
000150: 50 0D 0A 09 09 49 46 20 28 63 68 3E 3D 27 30 27 P....IF (ch>='0'
000160: 29 20 41 4E 44 20 28 63 68 3C 3D 27 39 27 29 20 ) AND (ch<='9')
000170: 54 48 45 4E 0D 0A 09 09 09 50 61 72 56 61 6C 75 THEN.....ParValu
000180: 65 3A 3D 31 30 2A 50 61 72 56 61 6C 75 65 2B 28 e:=10*ParValue+(
000190: 4F 52 44 28 63 68 29 2D 4F 52 44 28 27 30 27 29 ORD(ch)-ORD('0')
0001A0: 29 0D 0A 09 09 45 4C 53 45 20 0D 0A 09 09 09 45 )....ELSE .....E
0001B0: 58 49 54 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 XIT.....END;....
0001C0: 52 65 61 64 41 43 68 61 72 28 63 68 29 3B 0D 0A ReadAChar(ch);..
0001D0: 09 09 45 4E 44 3B 28 2A 4C 4F 4F 50 2A 29 0D 0A ..END;(*LOOP*)..
0001E0: 0D 0A 09 49 46 20 28 63 68 3D 31 62 78 29 20 4F ...IF (ch=1bx) O
0001F0: 52 20 28 63 68 3D 30 61 78 29 20 54 48 45 4E 20 R (ch=0ax) THEN
Size : 512 (Real : 512)
000000: 6E 67 2C 4C 65 6E 29 3B 0D 0A 09 09 47 65 74 53 ng,Len);....GetS
000010: 74 72 69 6E 67 28 52 65 70 6C 61 63 65 53 74 72 tring(ReplaceStr
000020: 69 6E 67 2C 4C 2C 27 54 6F 20 20 20 3A 27 29 3B ing,L,'To :');
000030: 0D 0A 09 09 52 4C 65 6E 3A 3D 4C 3B 0D 0A 09 09 ....RLen:=L;....
000040: 44 6F 46 69 6E 64 3B 0D 0A 09 45 4C 53 45 0D 0A DoFind;...ELSE..
000050: 09 09 52 65 44 69 73 70 6C 61 79 3B 0D 0A 09 09 ..ReDisplay;....
000060: 45 4E 44 3B 0D 0A 09 45 4E 44 20 52 65 70 6C 61 END;...END Repla
000070: 63 65 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 ce;..PROCEDURE S
000080: 65 74 55 70 64 61 74 65 64 3B 0D 0A 42 45 47 49 etUpdated;..BEGI
000090: 4E 0D 0A 09 55 70 64 61 74 65 64 5B 43 75 72 72 N...Updated[Curr
0000A0: 65 6E 74 46 69 6C 65 5D 3A 3D 54 52 55 45 0D 0A entFile]:=TRUE..
0000B0: 09 45 4E 44 20 53 65 74 55 70 64 61 74 65 64 3B .END SetUpdated;
0000C0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 6C 41 ..PROCEDURE DelA
0000D0: 42 6C 6F 63 6B 28 69 3A 43 41 52 44 49 4E 41 4C Block(i:CARDINAL
0000E0: 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 56 41 52 20 ):BOOLEAN;..VAR
0000F0: 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 6A 3A .b:BOOLEAN;...j:
000100: 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E CARDINAL;..BEGIN
000110: 0D 0A 09 62 3A 3D 42 6C 6F 63 6B 44 65 6C 28 46 ...b:=BlockDel(F
000120: 69 6C 65 73 5B 69 5D 29 3B 0D 0A 09 6A 3A 3D 43 iles[i]);...j:=C
000130: 75 72 72 65 6E 74 46 69 6C 65 3B 0D 0A 09 43 68 urrentFile;...Ch
000140: 61 6E 67 65 57 69 6E 64 6F 77 28 69 29 3B 0D 0A angeWindow(i);..
000150: 09 52 65 64 69 73 70 6C 61 79 3B 0D 0A 09 43 68 .Redisplay;...Ch
000160: 61 6E 67 65 57 69 6E 64 6F 77 28 6A 29 3B 0D 0A angeWindow(j);..
000170: 09 52 45 54 55 52 4E 20 62 0D 0A 09 45 4E 44 20 .RETURN b...END
000180: 44 65 6C 41 42 6C 6F 63 6B 3B 0D 0A 50 52 4F 43 DelABlock;..PROC
000190: 45 44 55 52 45 20 44 65 66 4C 61 62 65 6C 3B 0D EDURE DefLabel;.
0001A0: 0A 56 41 52 09 69 3A 43 41 52 44 49 4E 41 4C 3B .VAR.i:CARDINAL;
0001B0: 0D 0A 09 62 2C 72 3A 42 4F 4F 4C 45 41 4E 3B 0D ...b,r:BOOLEAN;.
0001C0: 0A 42 45 47 49 4E 0D 0A 09 52 65 61 64 41 43 68 .BEGIN...ReadACh
0001D0: 61 72 28 63 68 29 3B 0D 0A 09 69 3A 3D 43 75 72 ar(ch);...i:=Cur
0001E0: 72 65 6E 74 57 69 6E 64 6F 77 3B 0D 0A 0D 0A 09 rentWindow;.....
0001F0: 28 2A 09 49 66 20 63 6F 6E 74 72 6F 6C 20 42 27 (*.If control B'
Size : 512 (Real : 512)
000000: 68 29 3B 0D 0A 09 09 49 46 20 63 68 3E 43 48 52 h);....IF ch>CHR
000010: 28 31 32 37 29 20 54 48 45 4E 20 63 68 3A 3D 43 (127) THEN ch:=C
000020: 48 52 28 4F 52 44 28 63 68 29 2D 31 32 38 29 20 HR(ORD(ch)-128)
000030: 45 4E 44 3B 0D 0A 09 09 4D 61 69 6E 54 61 62 6C END;....MainTabl
000040: 65 5B 63 68 5D 3B 0D 0A 09 09 45 4E 44 3B 0D 0A e[ch];....END;..
000050: 09 45 4E 44 20 49 6E 74 65 72 70 72 65 74 3B 0D .END Interpret;.
000060: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 6C 69 ...PROCEDURE Fli
000070: 70 49 6E 73 65 72 74 3B 0D 0A 42 45 47 49 4E 0D pInsert;..BEGIN.
000080: 0A 09 49 6E 73 65 72 74 4D 6F 64 65 3A 3D 4E 4F ..InsertMode:=NO
000090: 54 20 49 6E 73 65 72 74 4D 6F 64 65 3B 0D 0A 09 T InsertMode;...
0000A0: 45 4E 44 20 46 6C 69 70 49 6E 73 65 72 74 3B 0D END FlipInsert;.
0000B0: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 6C ...PROCEDURE Del
0000C0: 57 6F 72 64 3B 0D 0A 42 45 47 49 4E 0D 0A 09 46 Word;..BEGIN...F
0000D0: 69 6E 64 57 6F 72 64 28 46 41 4C 53 45 2C 54 52 indWord(FALSE,TR
0000E0: 55 45 29 3B 0D 0A 09 45 4E 44 20 44 65 6C 57 6F UE);...END DelWo
0000F0: 72 64 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 rd;....PROCEDURE
000100: 20 46 6F 72 77 61 72 64 57 6F 72 64 3B 0D 0A 42 ForwardWord;..B
000110: 45 47 49 4E 0D 0A 09 46 69 6E 64 57 6F 72 64 28 EGIN...FindWord(
000120: 46 41 4C 53 45 2C 46 41 4C 53 45 29 3B 0D 0A 09 FALSE,FALSE);...
000130: 45 4E 44 20 46 6F 72 77 61 72 64 57 6F 72 64 3B END ForwardWord;
000140: 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 61 63 6B ..PROCEDURE Back
000150: 77 61 72 64 57 6F 72 64 3B 0D 0A 42 45 47 49 4E wardWord;..BEGIN
000160: 0D 0A 09 46 69 6E 64 57 6F 72 64 28 54 52 55 45 ...FindWord(TRUE
000170: 2C 46 41 4C 53 45 29 3B 0D 0A 09 45 4E 44 20 42 ,FALSE);...END B
000180: 61 63 6B 77 61 72 64 57 6F 72 64 3B 0D 0A 0D 0A ackwardWord;....
000190: 28 2A 09 49 6E 69 74 69 61 6C 69 73 65 20 61 20 (*.Initialise a
0001A0: 6B 65 79 62 6F 61 72 64 20 64 69 73 70 61 74 63 keyboard dispatc
0001B0: 68 20 74 61 62 6C 65 73 2A 29 0D 0A 0D 0A 42 45 h tables*)....BE
0001C0: 47 49 4E 0D 0A 09 46 4F 52 20 63 68 3A 3D 30 78 GIN...FOR ch:=0x
0001D0: 20 54 4F 20 37 66 78 20 44 4F 20 4D 61 69 6E 54 TO 7fx DO MainT
0001E0: 61 62 6C 65 5B 63 68 5D 3A 3D 42 65 6C 6C 20 45 able[ch]:=Bell E
0001F0: 4E 44 3B 0D 0A 09 0D 0A 09 4D 61 69 6E 54 61 62 ND;......MainTab
Size : 512 (Real : 512)
000000: 73 20 69 6E 74 65 72 76 65 6E 65 2C 20 63 68 61 s intervene, cha
000010: 6E 67 65 20 73 6F 75 72 63 65 20 77 69 6E 64 6F nge source windo
000020: 77 2A 29 0D 0A 09 57 48 49 4C 45 20 63 68 3D 30 w*)...WHILE ch=0
000030: 32 78 20 28 2A 43 54 52 4C 20 42 2A 29 20 44 4F 2x (*CTRL B*) DO
000040: 0D 0A 09 09 49 46 20 69 3E 3D 57 69 6E 64 6F 77 ....IF i>=Window
000050: 73 20 54 48 45 4E 20 69 3A 3D 31 20 45 4C 53 45 s THEN i:=1 ELSE
000060: 20 49 4E 43 28 69 29 20 45 4E 44 3B 0D 0A 09 09 INC(i) END;....
000070: 47 6F 74 6F 78 79 28 63 75 72 78 5B 69 5D 2C 63 Gotoxy(curx[i],c
000080: 75 72 79 5B 69 5D 29 3B 0D 0A 09 09 52 65 61 64 ury[i]);....Read
000090: 41 43 68 61 72 28 63 68 29 3B 0D 0A 09 09 45 4E AChar(ch);....EN
0000A0: 44 3B 0D 0A 09 63 68 3A 3D 43 41 50 28 63 68 29 D;...ch:=CAP(ch)
0000B0: 3B 0D 0A 09 72 3A 3D 46 41 4C 53 45 3B 0D 0A 09 ;...r:=FALSE;...
0000C0: 69 3A 3D 57 69 6E 64 6F 77 46 69 6C 65 5B 69 5D i:=WindowFile[i]
0000D0: 3B 0D 0A 09 43 41 53 45 20 63 68 20 4F 46 0D 0A ;...CASE ch OF..
0000E0: 09 09 27 43 27 2C 30 33 78 3A 62 3A 3D 42 6C 6F ..'C',03x:b:=Blo
0000F0: 63 6B 43 6F 70 79 28 46 69 6C 65 73 5B 69 5D 2C ckCopy(Files[i],
000100: 46 69 6C 65 73 5B 43 75 72 72 65 6E 74 46 69 6C Files[CurrentFil
000110: 65 5D 29 3B 0D 0A 09 09 09 7C 0D 0A 09 09 27 59 e]);.....|....'Y
000120: 27 2C 31 39 78 3A 62 3A 3D 44 65 6C 41 42 6C 6F ',19x:b:=DelABlo
000130: 63 6B 28 69 29 3B 0D 0A 09 09 09 7C 0D 0A 09 09 ck(i);.....|....
000140: 27 56 27 2C 31 36 78 3A 62 3A 3D 42 6C 6F 63 6B 'V',16x:b:=Block
000150: 43 6F 70 79 28 46 69 6C 65 73 5B 69 5D 2C 46 69 Copy(Files[i],Fi
000160: 6C 65 73 5B 43 75 72 72 65 6E 74 46 69 6C 65 5D les[CurrentFile]
000170: 29 3B 0D 0A 09 09 09 49 46 20 62 20 20 54 48 45 );.....IF b THE
000180: 4E 20 62 3A 3D 44 65 6C 41 42 6C 6F 63 6B 28 69 N b:=DelABlock(i
000190: 29 20 45 4E 44 3B 0D 0A 09 09 09 7C 0D 0A 09 09 ) END;.....|....
0001A0: 45 4C 53 45 20 0D 0A 09 09 09 62 3A 3D 20 4C 61 ELSE .....b:= La
0001B0: 62 65 6C 4F 70 28 46 69 6C 65 73 5B 43 75 72 72 belOp(Files[Curr
0001C0: 65 6E 74 46 69 6C 65 5D 2C 54 52 55 45 2C 63 68 entFile],TRUE,ch
0001D0: 29 3B 0D 0A 09 09 09 72 3A 3D 54 52 55 45 3B 0D );.....r:=TRUE;.
0001E0: 0A 09 09 45 4E 44 3B 0D 0A 09 49 46 20 62 20 54 ...END;...IF b T
0001F0: 48 45 4E 0D 0A 09 09 49 46 20 4E 4F 54 20 72 20 HEN....IF NOT r
Size : 512 (Real : 512)
000000: 6C 65 5B 31 62 78 5D 3A 3D 45 73 63 61 70 65 3B le[1bx]:=Escape;
000010: 0D 0A 0D 0A 09 28 2A 09 70 72 69 6E 74 61 62 6C .....(*.printabl
000020: 65 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 e characters are
000030: 20 69 6E 73 65 72 74 65 64 20 61 73 20 69 73 20 inserted as is
000040: 2A 29 0D 0A 0D 0A 09 46 4F 52 20 63 68 3A 3D 27 *).....FOR ch:='
000050: 20 27 20 54 4F 20 27 7E 27 20 44 4F 20 4D 61 69 ' TO '~' DO Mai
000060: 6E 54 61 62 6C 65 5B 63 68 5D 3A 3D 49 6E 73 43 nTable[ch]:=InsC
000070: 68 61 72 20 45 4E 44 3B 0D 0A 09 4D 61 69 6E 54 har END;...MainT
000080: 61 62 6C 65 5B 30 64 78 5D 3A 3D 49 6E 73 43 68 able[0dx]:=InsCh
000090: 61 72 3B 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B ar;...MainTable[
0000A0: 30 39 78 5D 3A 3D 49 6E 73 43 68 61 72 3B 0D 0A 09x]:=InsChar;..
0000B0: 0D 0A 09 28 2A 09 63 75 72 73 6F 72 20 63 6F 6E ...(*.cursor con
0000C0: 74 72 6F 6C 20 6B 65 79 73 2A 29 0D 0A 0D 0A 09 trol keys*).....
0000D0: 4D 61 69 6E 54 61 62 6C 65 5B 31 33 78 5D 3A 3D MainTable[13x]:=
0000E0: 4C 65 66 74 3B 0D 0A 09 4D 61 69 6E 54 61 62 6C Left;...MainTabl
0000F0: 65 5B 31 38 78 5D 3A 3D 44 6F 77 6E 3B 0D 0A 09 e[18x]:=Down;...
000100: 4D 61 69 6E 54 61 62 6C 65 5B 30 34 78 5D 3A 3D MainTable[04x]:=
000110: 52 69 67 68 74 3B 0D 0A 09 4D 61 69 6E 54 61 62 Right;...MainTab
000120: 6C 65 5B 30 35 78 5D 3A 3D 55 70 3B 0D 0A 0D 0A le[05x]:=Up;....
000130: 09 28 2A 09 4F 74 68 65 72 20 63 6F 6E 74 72 6F .(*.Other contro
000140: 6C 20 6B 65 79 73 2A 29 0D 0A 0D 0A 09 4D 61 69 l keys*).....Mai
000150: 6E 54 61 62 6C 65 5B 30 37 78 5D 3A 3D 44 65 6C nTable[07x]:=Del
000160: 4F 6E 65 43 68 61 72 3B 09 28 2A 43 74 72 6C 20 OneChar;.(*Ctrl
000170: 47 2A 29 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B G*)...MainTable[
000180: 31 39 78 5D 3A 3D 44 65 6C 46 75 6C 6C 4C 69 6E 19x]:=DelFullLin
000190: 65 3B 09 28 2A 43 74 72 6C 20 59 2A 29 0D 0A 09 e;.(*Ctrl Y*)...
0001A0: 4D 61 69 6E 54 61 62 6C 65 5B 31 36 78 5D 3A 3D MainTable[16x]:=
0001B0: 46 6C 69 70 49 6E 73 65 72 74 3B 09 28 2A 43 74 FlipInsert;.(*Ct
0001C0: 72 6C 20 56 2A 29 0D 0A 09 4D 61 69 6E 54 61 62 rl V*)...MainTab
0001D0: 6C 65 5B 30 65 78 5D 3A 3D 42 72 65 61 6B 4C 69 le[0ex]:=BreakLi
0001E0: 6E 65 3B 09 28 2A 43 74 72 6C 20 4E 2A 29 0D 0A ne;.(*Ctrl N*)..
0001F0: 09 4D 61 69 6E 54 61 62 6C 65 5B 30 38 78 5D 3A .MainTable[08x]:
Size : 512 (Real : 512)
000000: 54 48 45 4E 20 52 65 44 69 73 70 6C 61 79 3B 53 THEN ReDisplay;S
000010: 65 74 55 70 64 61 74 65 64 20 45 4E 44 3B 0D 0A etUpdated END;..
000020: 09 45 4C 53 45 0D 0A 09 09 49 46 20 72 20 54 48 .ELSE....IF r TH
000030: 45 4E 20 45 72 72 6F 72 4D 65 73 73 61 67 65 28 EN ErrorMessage(
000040: 27 42 61 64 20 6C 61 62 65 6C 27 2C 27 20 27 29 'Bad label',' ')
000050: 3B 0D 0A 09 09 45 4C 53 45 20 45 72 72 6F 72 4D ;....ELSE ErrorM
000060: 65 73 73 61 67 65 28 27 42 6C 6F 63 6B 20 55 6E essage('Block Un
000070: 64 65 66 69 6E 65 64 27 2C 27 20 27 29 20 45 4E defined',' ') EN
000080: 44 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 54 68 69 D;....Gotoxy(Thi
000090: 73 78 2C 54 68 69 73 79 29 3B 0D 0A 09 09 45 4E sx,Thisy);....EN
0000A0: 44 3B 0D 0A 09 45 4E 44 20 44 65 66 4C 61 62 65 D;...END DefLabe
0000B0: 6C 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D 6F l;..PROCEDURE Mo
0000C0: 76 65 54 6F 45 72 72 6F 72 3B 0D 0A 50 52 4F 43 veToError;..PROC
0000D0: 45 44 55 52 45 20 47 6F 74 6F 45 72 72 6F 72 28 EDURE GotoError(
0000E0: 69 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 i:CARDINAL);..BE
0000F0: 47 49 4E 0D 0A 09 49 46 20 69 3C 45 72 72 6F 72 GIN...IF i<Error
000100: 43 6F 75 6E 74 20 54 48 45 4E 20 45 72 72 6F 72 Count THEN Error
000110: 4F 72 64 69 6E 61 6C 3A 3D 69 3B 44 69 73 70 6C Ordinal:=i;Displ
000120: 61 79 45 72 72 6F 72 0D 0A 09 45 4C 53 45 0D 0A ayError...ELSE..
000130: 09 09 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 ..ErrorMessage('
000140: 20 4E 6F 20 73 75 63 68 20 65 72 72 6F 72 20 27 No such error '
000150: 2C 27 20 27 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A ,' ');....END;..
000160: 09 45 4E 44 20 47 6F 74 6F 45 72 72 6F 72 3B 0D .END GotoError;.
000170: 0A 0D 0A 42 45 47 49 4E 0D 0A 09 52 65 61 64 41 ...BEGIN...ReadA
000180: 43 68 61 72 28 63 68 29 3B 0D 0A 09 63 68 3A 3D Char(ch);...ch:=
000190: 43 41 50 28 63 68 29 3B 0D 0A 09 43 41 53 45 20 CAP(ch);...CASE
0001A0: 63 68 20 4F 46 0D 0A 09 09 27 4E 27 2C 30 65 78 ch OF....'N',0ex
0001B0: 3A 47 6F 74 6F 45 72 72 6F 72 28 45 72 72 6F 72 :GotoError(Error
0001C0: 4F 72 64 69 6E 61 6C 2B 31 29 7C 0D 0A 09 09 27 Ordinal+1)|....'
0001D0: 50 27 2C 31 30 78 3A 47 6F 74 6F 45 72 72 6F 72 P',10x:GotoError
0001E0: 28 45 72 72 6F 72 4F 72 64 69 6E 61 6C 2D 31 29 (ErrorOrdinal-1)
0001F0: 7C 0D 0A 09 09 27 43 27 2C 30 33 78 3A 47 6F 74 |....'C',03x:Got
Size : 512 (Real : 512)
000000: 3D 4C 65 66 74 3B 09 09 28 2A 43 74 72 6C 20 48 =Left;..(*Ctrl H
000010: 20 28 42 61 63 6B 73 70 61 63 65 29 2A 29 0D 0A (Backspace)*)..
000020: 09 4D 61 69 6E 54 61 62 6C 65 5B 31 61 78 5D 3A .MainTable[1ax]:
000030: 3D 53 63 72 6F 6C 6C 44 6F 77 6E 3B 09 28 2A 43 =ScrollDown;.(*C
000040: 74 72 6C 20 5A 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl Z*)...MainTa
000050: 62 6C 65 5B 30 33 78 5D 3A 3D 44 6F 77 6E 53 63 ble[03x]:=DownSc
000060: 72 65 65 6E 3B 09 28 2A 43 74 72 6C 20 43 2A 29 reen;.(*Ctrl C*)
000070: 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 31 32 78 ...MainTable[12x
000080: 5D 3A 3D 55 70 53 63 72 65 65 6E 3B 09 28 2A 43 ]:=UpScreen;.(*C
000090: 74 72 6C 20 52 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl R*)...MainTa
0000A0: 62 6C 65 5B 31 34 78 5D 3A 3D 44 65 6C 57 6F 72 ble[14x]:=DelWor
0000B0: 64 3B 09 28 2A 43 74 72 6C 20 54 2A 29 0D 0A 09 d;.(*Ctrl T*)...
0000C0: 4D 61 69 6E 54 61 62 6C 65 5B 30 36 78 5D 3A 3D MainTable[06x]:=
0000D0: 46 6F 72 77 61 72 64 57 6F 72 64 3B 09 28 2A 43 ForwardWord;.(*C
0000E0: 74 72 6C 20 46 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl F*)...MainTa
0000F0: 62 6C 65 5B 30 61 78 5D 3A 3D 45 73 63 61 70 65 ble[0ax]:=Escape
000100: 3B 09 09 28 2A 74 72 65 61 74 20 6C 69 6E 65 20 ;..(*treat line
000110: 66 65 65 64 20 61 73 20 69 66 20 65 73 63 61 70 feed as if escap
000120: 65 2A 29 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B e*)...MainTable[
000130: 30 31 78 5D 3A 3D 42 61 63 6B 77 61 72 64 57 6F 01x]:=BackwardWo
000140: 72 64 3B 09 28 2A 43 74 72 6C 20 41 2A 29 0D 0A rd;.(*Ctrl A*)..
000150: 09 4D 61 69 6E 54 61 62 6C 65 5B 31 31 78 5D 3A .MainTable[11x]:
000160: 3D 51 75 69 63 6B 3B 09 09 28 2A 43 74 72 6C 20 =Quick;..(*Ctrl
000170: 51 2A 29 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B Q*)...MainTable[
000180: 30 32 78 5D 3A 3D 57 69 6E 64 6F 77 3B 09 09 28 02x]:=Window;..(
000190: 2A 43 74 72 6C 20 42 2A 29 0D 0A 09 4D 61 69 6E *Ctrl B*)...Main
0001A0: 54 61 62 6C 65 5B 31 37 78 5D 3A 3D 53 63 72 6F Table[17x]:=Scro
0001B0: 6C 6C 55 70 3B 09 28 2A 43 74 72 6C 20 57 2A 29 llUp;.(*Ctrl W*)
0001C0: 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 30 62 78 ...MainTable[0bx
0001D0: 5D 3A 3D 44 65 66 4C 61 62 65 6C 3B 09 28 2A 43 ]:=DefLabel;.(*C
0001E0: 74 72 6C 20 4B 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl K*)...MainTa
0001F0: 62 6C 65 5B 37 66 78 5D 3A 3D 44 65 6C 42 61 63 ble[7fx]:=DelBac
Size : 512 (Real : 512)
000000: 6F 45 72 72 6F 72 28 45 72 72 6F 72 4F 72 64 69 oError(ErrorOrdi
000010: 6E 61 6C 29 7C 0D 0A 09 09 27 30 27 2E 2E 27 39 nal)|....'0'..'9
000020: 27 3A 47 6F 74 6F 45 72 72 6F 72 28 4F 52 44 28 ':GotoError(ORD(
000030: 63 68 29 2D 4F 52 44 28 27 30 27 29 29 0D 0A 09 ch)-ORD('0'))...
000040: 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 4D 6F 76 65 .END;...END Move
000050: 54 6F 45 72 72 6F 72 3B 0D 0A 50 52 4F 43 45 44 ToError;..PROCED
000060: 55 52 45 20 51 75 69 63 6B 3B 0D 0A 56 41 52 09 URE Quick;..VAR.
000070: 46 69 72 73 74 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A First:BOOLEAN;..
000080: 42 45 47 49 4E 0D 0A 09 46 69 72 73 74 3A 3D 54 BEGIN...First:=T
000090: 52 55 45 3B 0D 0A 09 52 65 61 64 41 43 68 61 72 RUE;...ReadAChar
0000A0: 28 63 68 29 3B 0D 0A 09 63 68 3A 3D 43 41 50 28 (ch);...ch:=CAP(
0000B0: 63 68 29 3B 0D 0A 09 49 46 20 50 61 72 56 61 6C ch);...IF ParVal
0000C0: 75 65 3D 30 20 54 48 45 4E 20 50 61 72 56 61 6C ue=0 THEN ParVal
0000D0: 75 65 3A 3D 31 20 45 4E 44 3B 0D 0A 09 57 48 49 ue:=1 END;...WHI
0000E0: 4C 45 20 50 61 72 56 61 6C 75 65 3E 30 20 44 4F LE ParValue>0 DO
0000F0: 0D 0A 09 20 20 43 41 53 45 20 63 68 20 4F 46 0D ... CASE ch OF.
000100: 0A 09 20 20 20 20 27 45 27 2C 30 35 78 3A 4D 6F .. 'E',05x:Mo
000110: 76 65 54 6F 45 72 72 6F 72 7C 0D 0A 09 20 20 20 veToError|...
000120: 20 27 59 27 2C 31 39 78 3A 44 65 6C 54 6F 45 4F 'Y',19x:DelToEO
000130: 4C 7C 0D 0A 09 20 20 20 20 27 44 27 2C 30 34 78 L|... 'D',04x
000140: 3A 46 61 72 52 69 67 68 74 7C 0D 0A 09 20 20 20 :FarRight|...
000150: 20 27 53 27 2C 31 33 78 3A 46 61 72 4C 65 66 74 'S',13x:FarLeft
000160: 7C 0D 0A 09 20 20 20 20 27 52 27 2C 31 32 78 3A |... 'R',12x:
000170: 54 6F 70 7C 0D 0A 09 20 20 20 20 27 43 27 2C 30 Top|... 'C',0
000180: 33 78 3A 42 6F 74 74 6F 6D 7C 0D 0A 09 20 20 20 3x:Bottom|...
000190: 20 27 46 27 2C 30 36 78 3A 49 46 20 46 69 72 73 'F',06x:IF Firs
0001A0: 74 20 54 48 45 4E 20 46 69 6E 64 20 45 4C 53 45 t THEN Find ELSE
0001B0: 20 44 6F 46 69 6E 64 20 45 4E 44 7C 20 0D 0A 09 DoFind END| ...
0001C0: 20 20 20 20 27 41 27 2C 30 31 78 3A 49 46 20 46 'A',01x:IF F
0001D0: 69 72 73 74 20 54 48 45 4E 20 52 65 70 6C 61 63 irst THEN Replac
0001E0: 65 20 45 4C 53 45 20 44 6F 46 69 6E 64 20 45 4E e ELSE DoFind EN
0001F0: 44 7C 0D 0A 09 20 20 20 20 27 47 27 2C 30 37 78 D|... 'G',07x
Size : 512 (Real : 512)
000000: 6B 3B 09 28 2A 44 65 6C 20 2A 29 0D 0A 09 4D 61 k;.(*Del *)...Ma
000010: 69 6E 54 61 62 6C 65 5B 30 63 78 5D 3A 3D 44 6F inTable[0cx]:=Do
000020: 46 69 6E 64 3B 09 09 28 2A 43 74 72 6C 20 4C 2A Find;..(*Ctrl L*
000030: 29 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 31 66 78 )..MainTable[1fx
000040: 5D 3A 3D 44 65 6C 42 61 63 6B 3B 09 28 2A 5E 2D ]:=DelBack;.(*^-
000050: 20 6F 6E 20 4F 73 62 6F 72 6E 65 20 31 2A 29 0D on Osborne 1*).
000060: 0A 0D 0A 09 28 2A 09 54 68 65 20 6E 65 78 74 20 ....(*.The next
000070: 6B 65 79 2C 20 20 61 73 73 69 67 6E 65 64 20 74 key, assigned t
000080: 6F 20 45 6E 64 69 6E 74 65 72 70 72 65 74 20 69 o Endinterpret i
000090: 73 20 63 61 6C 6C 65 64 2C 0D 0A 09 09 27 4D 65 s called,....'Me
0000A0: 6E 75 27 20 69 6E 20 74 68 65 20 64 6F 63 75 6D nu' in the docum
0000B0: 65 6E 74 61 74 69 6F 6E 2E 20 54 68 61 74 20 69 entation. That i
0000C0: 73 2C 20 74 6F 20 70 72 6F 63 65 73 73 20 61 20 s, to process a
0000D0: 6D 65 6E 75 2C 0D 0A 09 09 77 65 20 64 72 6F 70 menu,....we drop
0000E0: 20 6F 75 74 20 6F 66 20 65 64 69 74 20 6D 6F 64 out of edit mod
0000F0: 65 2E 20 54 68 65 20 63 61 6C 6C 69 6E 67 20 72 e. The calling r
000100: 6F 75 74 69 6E 65 20 28 4D 65 29 20 74 68 65 20 outine (Me) the
000110: 63 61 6C 6C 73 0D 0A 09 09 74 68 65 20 6D 65 6E calls....the men
000120: 75 20 72 6F 75 74 69 6E 65 20 2D 20 6E 6F 74 20 u routine - not
000130: 74 68 69 73 20 6D 6F 64 75 6C 65 2A 29 0D 0A 0D this module*)...
000140: 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 30 66 78 5D ..MainTable[0fx]
000150: 3A 3D 45 6E 64 69 6E 74 65 72 70 72 65 74 3B 09 :=Endinterpret;.
000160: 28 2A 43 74 72 6C 20 4F 2A 29 0D 0A 09 45 4E 44 (*Ctrl O*)...END
000170: 20 4B 65 79 62 6F 61 72 64 2E 0D 0A 1A 1A 1A 1A Keyboard.......
000180: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000190: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001E0: 1A 1A 1A 1A 1A 1A 1A 1A 44 4F 43 20 00 00 00 00 ........DOC ....
0001F0: 00 00 00 00 00 00 5B B6 4A 0D 58 0E 53 63 00 00 ......[.J.X.Sc..
Size : 512 (Real : 512)
000000: 3A 4E 6F 42 65 6C 6C 3A 3D 4E 4F 54 20 4E 6F 42 :NoBell:=NOT NoB
000010: 65 6C 6C 7C 0D 0A 09 20 20 20 20 27 4B 27 2C 27 ell|... 'K','
000020: 42 27 2C 27 30 27 2E 2E 27 39 27 3A 47 6F 54 6F B','0'..'9':GoTo
000030: 4C 61 62 65 6C 28 63 68 29 3B 0D 0A 09 20 09 45 Label(ch);... .E
000040: 4E 44 3B 0D 0A 09 20 20 46 69 72 73 74 3A 3D 46 ND;... First:=F
000050: 41 4C 53 45 3B 0D 0A 09 20 20 44 45 43 28 50 61 ALSE;... DEC(Pa
000060: 72 56 61 6C 75 65 29 3B 0D 0A 09 20 20 45 4E 44 rValue);... END
000070: 3B 0D 0A 09 45 4E 44 20 51 75 69 63 6B 3B 0D 0A ;...END Quick;..
000080: 50 52 4F 43 45 44 55 52 45 20 57 69 6E 64 6F 77 PROCEDURE Window
000090: 3B 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 4E 41 ;..VAR.i:CARDINA
0000A0: 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 69 3A 3D 43 L;..BEGIN...i:=C
0000B0: 75 72 72 65 6E 74 57 69 6E 64 6F 77 2B 31 3B 0D urrentWindow+1;.
0000C0: 0A 09 49 46 20 69 3E 57 69 6E 64 6F 77 73 20 54 ..IF i>Windows T
0000D0: 48 45 4E 20 69 3A 3D 31 20 45 4E 44 3B 0D 0A 09 HEN i:=1 END;...
0000E0: 43 68 61 6E 67 65 57 69 6E 64 6F 77 28 69 29 3B ChangeWindow(i);
0000F0: 0D 0A 09 52 65 44 69 73 70 6C 61 79 3B 0D 0A 09 ...ReDisplay;...
000100: 45 4E 44 20 57 69 6E 64 6F 77 3B 0D 0A 50 52 4F END Window;..PRO
000110: 43 45 44 55 52 45 20 44 65 6C 42 61 63 6B 3B 0D CEDURE DelBack;.
000120: 0A 42 45 47 49 4E 0D 0A 09 4C 65 66 74 3B 0D 0A .BEGIN...Left;..
000130: 09 49 46 20 4D 6F 76 65 64 4F 4B 20 54 48 45 4E .IF MovedOK THEN
000140: 20 44 65 6C 4F 6E 65 43 68 61 72 20 45 4E 44 3B DelOneChar END;
000150: 0D 0A 09 45 4E 44 20 44 65 6C 42 61 63 6B 3B 0D ...END DelBack;.
000160: 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 74 65 72 .PROCEDURE Inter
000170: 70 72 65 74 3B 0D 0A 0D 0A 28 2A 09 53 74 61 72 pret;....(*.Star
000180: 74 20 6B 65 79 62 6F 61 72 64 20 69 6E 74 65 72 t keyboard inter
000190: 70 72 65 74 61 74 69 6F 6E 2A 29 0D 0A 42 45 47 pretation*)..BEG
0001A0: 49 4E 0D 0A 09 52 65 73 65 74 53 63 72 65 65 6E IN...ResetScreen
0001B0: 50 6F 73 3B 0D 0A 09 69 6E 74 65 72 70 72 65 74 Pos;...interpret
0001C0: 69 6E 67 3A 3D 54 52 55 45 3B 0D 0A 09 50 61 72 ing:=TRUE;...Par
0001D0: 56 61 6C 75 65 3A 3D 30 3B 0D 0A 09 57 48 49 4C Value:=0;...WHIL
0001E0: 45 20 69 6E 74 65 72 70 72 65 74 69 6E 67 20 44 E interpreting D
0001F0: 4F 0D 0A 09 09 52 65 61 64 41 43 68 61 72 28 63 O....ReadAChar(c
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 61 63 72 6F 50 6F 69 6E 74 3B 0D 0A 09 4C 65 61 acroPoint;...Lea
000010: 72 6E 63 68 3A 43 48 41 52 3B 0D 0A 09 4C 65 61 rnch:CHAR;...Lea
000020: 72 6E 4C 65 6E 3A 43 41 52 44 49 4E 41 4C 3B 0D rnLen:CARDINAL;.
000030: 0A 09 4C 65 61 72 6E 69 6E 67 3A 42 4F 4F 4C 45 ..Learning:BOOLE
000040: 41 4E 3D 46 41 4C 53 45 3B 0D 0A 09 54 65 78 74 AN=FALSE;...Text
000050: 3A 41 52 52 41 59 5B 31 2E 2E 36 30 5D 20 4F 46 :ARRAY[1..60] OF
000060: 20 43 48 41 52 3B 0D 0A 09 69 3A 43 41 52 44 49 CHAR;...i:CARDI
000070: 4E 41 4C 3B 0D 0A 09 4B 65 79 53 65 71 3A 41 52 NAL;...KeySeq:AR
000080: 52 41 59 5B 31 2E 2E 31 30 5D 20 4F 46 20 43 48 RAY[1..10] OF CH
000090: 41 52 3B 0D 0A 09 4B 65 79 43 68 61 69 6E 42 61 AR;...KeyChainBa
0000A0: 73 65 3A 50 4B 65 79 43 68 61 69 6E 3D 4E 49 4C se:PKeyChain=NIL
0000B0: 3B 09 28 2A 62 61 73 65 20 6F 66 20 74 61 62 6C ;.(*base of tabl
0000C0: 65 20 6F 66 20 6B 65 79 20 64 65 66 73 2A 29 0D e of key defs*).
0000D0: 0A 09 4C 61 73 74 4B 65 79 50 6F 73 2C 4B 65 79 ..LastKeyPos,Key
0000E0: 50 6F 73 3A 50 4B 65 79 43 68 61 69 6E 3B 09 28 Pos:PKeyChain;.(
0000F0: 2A 70 6F 69 6E 74 65 72 73 20 75 73 65 64 20 66 *pointers used f
000100: 6F 72 20 73 65 61 72 63 68 69 6E 67 2A 29 0D 0A or searching*)..
000110: 09 4C 65 61 72 6E 4B 65 79 3A 50 4B 65 79 43 68 .LearnKey:PKeyCh
000120: 61 69 6E 3B 09 09 28 2A 70 6F 69 6E 74 65 72 20 ain;..(*pointer
000130: 74 6F 20 6B 65 79 20 62 65 69 6E 67 20 64 65 66 to key being def
000140: 69 6E 65 64 2A 29 0D 0A 0D 0A 09 28 2A 09 6B 65 ined*).....(*.ke
000150: 65 70 20 61 20 63 69 72 63 75 6C 61 72 20 62 75 ep a circular bu
000160: 66 66 65 72 20 6F 66 20 63 68 61 72 61 63 74 65 ffer of characte
000170: 72 73 20 77 68 69 6C 65 20 6D 61 74 63 68 69 6E rs while matchin
000180: 67 20 69 73 0D 0A 09 09 68 61 70 70 65 6E 69 6E g is....happenin
000190: 67 2A 29 0D 0A 0D 0A 09 69 6E 3A 43 41 52 44 49 g*).....in:CARDI
0001A0: 4E 41 4C 3D 31 3B 0D 0A 09 6F 75 74 3A 43 41 52 NAL=1;...out:CAR
0001B0: 44 49 4E 41 4C 3D 31 3B 0D 0A 09 6C 6F 6F 6B 3A DINAL=1;...look:
0001C0: 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 42 75 66 66 CARDINAL;...Buff
0001D0: 65 72 3A 41 52 52 41 59 5B 31 2E 2E 31 31 5D 20 er:ARRAY[1..11]
0001E0: 4F 46 20 43 48 41 52 3B 09 0D 0A 09 53 68 6F 77 OF CHAR;....Show
0001F0: 43 68 61 6E 67 65 3A 42 4F 4F 4C 45 41 4E 3B 0D Change:BOOLEAN;.
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 4D 61 63 72 6F 73 3B 0D 0A 0D 0A 28 2A 09 E Macros;....(*.
000020: 41 20 73 69 6D 70 6C 65 20 6D 61 63 72 6F 20 70 A simple macro p
000030: 72 6F 63 65 73 73 6F 72 20 66 6F 72 20 20 74 68 rocessor for th
000040: 65 20 65 64 69 74 6F 72 0D 0A 0D 0A 09 43 61 6E e editor.....Can
000050: 20 70 72 6F 62 61 62 6C 79 20 62 65 20 65 61 73 probably be eas
000060: 69 6C 79 20 68 61 63 6B 65 64 20 66 6F 72 20 6F ily hacked for o
000070: 74 68 65 72 20 70 75 72 70 6F 73 65 73 2A 29 0D ther purposes*).
000080: 0A 0D 0A 56 41 52 09 46 6F 75 6E 64 3A 42 4F 4F ...VAR.Found:BOO
000090: 4C 45 41 4E 3D 54 52 55 45 3B 0D 0A 0D 0A 28 2A LEAN=TRUE;....(*
0000A0: 09 46 6F 75 6E 64 20 69 73 20 61 20 76 61 72 69 .Found is a vari
0000B0: 61 62 6C 65 20 77 68 69 63 68 2C 20 69 66 20 73 able which, if s
0000C0: 65 74 20 74 6F 20 66 61 6C 73 65 2C 20 77 69 6C et to false, wil
0000D0: 6C 20 61 62 6F 72 74 20 61 6C 6C 0D 0A 09 6D 61 l abort all...ma
0000E0: 63 72 6F 73 20 2A 29 0D 0A 50 52 4F 43 45 44 55 cros *)..PROCEDU
0000F0: 52 45 20 4C 65 61 72 6E 4D 61 63 72 6F 3B 0D 0A RE LearnMacro;..
000100: 50 52 4F 43 45 44 55 52 45 20 44 65 66 4D 61 63 PROCEDURE DefMac
000110: 72 6F 3B 0D 0A 0D 0A 28 2A 09 64 65 66 69 6E 65 ro;....(*.define
000120: 20 61 20 6D 61 63 72 6F 20 2A 29 0D 0A 0D 0A 50 a macro *)....P
000130: 52 4F 43 45 44 55 52 45 20 52 65 61 64 41 43 68 ROCEDURE ReadACh
000140: 61 72 28 56 41 52 20 63 68 3A 43 48 41 52 29 3B ar(VAR ch:CHAR);
000150: 0D 0A 0D 0A 28 2A 09 72 65 61 64 20 6E 65 78 74 ....(*.read next
000160: 20 63 68 61 72 61 63 74 65 72 20 2D 20 66 72 6F character - fro
000170: 6D 20 6D 61 63 72 6F 20 69 66 20 6F 6E 65 20 61 m macro if one a
000180: 63 74 69 76 65 0D 0A 09 09 09 20 20 20 20 2D 20 ctive..... -
000190: 66 72 6F 6D 20 74 65 72 6D 69 6E 61 6C 20 69 66 from terminal if
0001A0: 20 6E 6F 74 09 2A 29 0D 0A 0D 0A 50 52 4F 43 45 not.*)....PROCE
0001B0: 44 55 52 45 20 4D 61 63 72 6F 28 63 68 3A 43 48 DURE Macro(ch:CH
0001C0: 41 52 3B 72 65 70 65 61 74 3A 49 4E 54 45 47 45 AR;repeat:INTEGE
0001D0: 52 29 3B 0D 0A 0D 0A 28 2A 09 73 74 61 72 74 20 R);....(*.start
0001E0: 6D 61 63 72 6F 20 77 69 74 68 20 67 69 76 65 6E macro with given
0001F0: 20 63 68 61 72 61 63 74 65 72 20 76 61 6C 75 65 character value
Size : 512 (Real : 512)
000000: 0A 50 52 4F 43 45 44 55 52 45 20 53 65 61 72 63 .PROCEDURE Searc
000010: 68 54 6F 4E 65 78 74 28 63 68 3A 43 48 41 52 29 hToNext(ch:CHAR)
000020: 3B 0D 0A 0D 0A 28 2A 09 53 65 61 72 63 68 20 66 ;....(*.Search f
000030: 6F 72 20 74 68 65 20 63 68 61 72 61 63 74 65 72 or the character
000040: 20 63 68 0D 0A 0D 0A 09 4B 65 79 50 6F 73 20 70 ch.....KeyPos p
000050: 6F 69 6E 74 73 20 74 6F 20 74 68 65 20 66 69 72 oints to the fir
000060: 73 74 20 74 61 62 6C 65 20 20 74 6F 20 65 78 61 st table to exa
000070: 6D 69 6E 65 0D 0A 09 66 6F 72 20 61 20 6D 61 74 mine...for a mat
000080: 63 68 0D 0A 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 ch..*)..BEGIN...
000090: 57 48 49 4C 45 20 28 4B 65 79 50 6F 73 3C 3E 4E WHILE (KeyPos<>N
0000A0: 49 4C 29 20 41 4E 44 20 28 4B 65 79 50 6F 73 5E IL) AND (KeyPos^
0000B0: 2E 63 68 3C 3E 63 68 29 20 44 4F 0D 0A 09 09 4B .ch<>ch) DO....K
0000C0: 65 79 50 6F 73 3A 3D 4B 65 79 50 6F 73 5E 2E 4E eyPos:=KeyPos^.N
0000D0: 65 78 74 41 6C 74 3B 0D 0A 09 09 45 4E 44 3B 0D extAlt;....END;.
0000E0: 0A 09 45 4E 44 20 53 65 61 72 63 68 54 6F 4E 65 ..END SearchToNe
0000F0: 78 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 xt;..PROCEDURE B
000100: 75 69 6C 64 4B 65 79 53 65 71 3B 0D 0A 0D 0A 28 uildKeySeq;....(
000110: 2A 09 45 6E 74 65 72 20 61 20 6B 65 79 20 73 65 *.Enter a key se
000120: 71 75 65 6E 63 65 20 69 6E 74 6F 20 74 68 65 20 quence into the
000130: 6B 65 79 20 73 65 71 75 65 6E 63 65 20 74 72 65 key sequence tre
000140: 65 0D 0A 0D 0A 09 4F 6E 20 65 6E 74 72 79 2C 20 e.....On entry,
000150: 4B 65 79 53 65 71 20 63 6F 6E 74 61 69 6E 73 20 KeySeq contains
000160: 73 65 71 75 65 6E 63 65 20 74 6F 20 62 75 69 6C sequence to buil
000170: 64 0D 0A 0D 0A 09 4F 6E 20 65 78 69 74 2C 20 4B d.....On exit, K
000180: 65 79 50 6F 73 20 70 6F 69 6E 74 73 20 74 6F 20 eyPos points to
000190: 65 6E 74 72 79 20 66 6F 72 20 6D 61 63 72 6F 20 entry for macro
0001A0: 70 6F 69 6E 74 65 72 2A 29 0D 0A 42 45 47 49 4E pointer*)..BEGIN
0001B0: 0D 0A 09 69 3A 3D 31 3B 0D 0A 09 4B 65 79 50 6F ...i:=1;...KeyPo
0001C0: 73 3A 3D 4B 65 79 43 68 61 69 6E 42 61 73 65 3B s:=KeyChainBase;
0001D0: 0D 0A 09 4C 61 73 74 4B 65 79 50 6F 73 3A 3D 4E ...LastKeyPos:=N
0001E0: 49 4C 3B 0D 0A 09 28 2A 20 46 69 72 73 74 20 73 IL;...(* First s
0001F0: 63 61 6E 20 64 6F 77 6E 20 63 6F 6D 6D 6F 6E 20 can down common
Size : 512 (Real : 512)
000000: 0D 0A 09 28 6D 75 73 74 20 62 65 20 61 6C 70 68 ...(must be alph
000010: 61 29 2A 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 a)*)..PROCEDURE
000020: 53 74 6F 72 65 4D 61 63 72 6F 73 3B 0D 0A 50 52 StoreMacros;..PR
000030: 4F 43 45 44 55 52 45 20 50 72 69 6E 74 4D 61 63 OCEDURE PrintMac
000040: 72 6F 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 ros;..PROCEDURE
000050: 43 68 65 63 6B 49 6E 74 65 72 72 75 70 74 28 29 CheckInterrupt()
000060: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 45 4E 44 20 4D :BOOLEAN;..END M
000070: 61 63 72 6F 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A acros...........
000080: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000090: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000E0: 1A 1A 1A 1A 1A 30 30 20 4D 4F 44 20 00 00 00 00 .....00 MOD ....
0000F0: 00 00 00 00 00 00 9B 4C 01 0D D7 27 01 04 00 00 .......L...'....
000100: 6D 69 6E 65 42 6C 6F 63 6B 0D 0A 09 45 4C 53 45 mineBlock...ELSE
000110: 20 45 6E 74 72 79 4E 6F 3A 3D 36 30 30 30 30 20 EntryNo:=60000
000120: 45 4E 44 3B 0D 0A 09 49 46 20 45 6E 74 72 79 4E END;...IF EntryN
000130: 6F 3D 36 30 30 30 30 20 54 48 45 4E 0D 0A 09 09 o=60000 THEN....
000140: 53 65 74 42 6C 6F 63 6B 28 64 61 74 66 69 6C 65 SetBlock(datfile
000150: 2C 30 29 3B 0D 0A 09 09 42 6C 6F 63 6B 4E 6F 3A ,0);....BlockNo:
000160: 3D 30 0D 0A 09 09 45 4E 44 3B 0D 0A 09 57 48 49 =0....END;...WHI
000170: 4C 45 20 45 6E 74 72 79 4E 6F 3D 36 30 30 30 30 LE EntryNo=60000
000180: 20 44 4F 0D 0A 09 09 53 65 71 52 65 61 64 42 6C DO....SeqReadBl
000190: 6F 63 6B 28 64 61 74 66 69 6C 65 2C 41 44 52 28 ock(datfile,ADR(
0001A0: 42 75 66 66 65 72 29 2C 42 79 74 65 73 50 65 72 Buffer),BytesPer
0001B0: 42 6C 6F 63 6B 2C 72 65 70 6C 79 29 3B 0D 0A 09 Block,reply);...
0001C0: 09 49 46 20 72 65 70 6C 79 3C 3E 42 79 74 65 73 .IF reply<>Bytes
0001D0: 50 65 72 42 6C 6F 63 6B 20 54 48 45 4E 0D 0A 09 PerBlock THEN...
0001E0: 09 09 42 75 66 66 65 72 2E 45 6E 74 72 69 65 73 ..Buffer.Entries
0001F0: 3A 3D 31 3B 0D 0A 09 09 09 45 6E 74 72 79 4E 6F :=1;.....EntryNo
Size : 512 (Real : 512)
000000: 70 61 72 74 20 2A 29 0D 0A 0D 0A 09 57 48 49 4C part *).....WHIL
000010: 45 20 28 4B 65 79 50 6F 73 3C 3E 4E 49 4C 29 20 E (KeyPos<>NIL)
000020: 41 4E 44 20 20 28 4B 65 79 53 65 71 5B 69 5D 3C AND (KeySeq[i]<
000030: 3E 27 20 27 29 20 44 4F 0D 0A 09 09 0D 0A 09 09 >' ') DO........
000040: 53 65 61 72 63 68 54 6F 4E 65 78 74 28 4B 65 79 SearchToNext(Key
000050: 53 65 71 5B 69 5D 29 3B 0D 0A 09 09 49 46 20 4B Seq[i]);....IF K
000060: 65 79 50 6F 73 3C 3E 4E 49 4C 20 54 48 45 4E 20 eyPos<>NIL THEN
000070: 0D 0A 09 09 09 49 4E 43 28 69 29 3B 0D 0A 09 09 .....INC(i);....
000080: 09 4C 61 73 74 4B 65 79 50 6F 73 3A 3D 4B 65 79 .LastKeyPos:=Key
000090: 50 6F 73 3B 0D 0A 09 09 09 4C 65 61 72 6E 4B 65 Pos;.....LearnKe
0000A0: 79 3A 3D 4B 65 79 50 6F 73 3B 0D 0A 09 09 09 4B y:=KeyPos;.....K
0000B0: 65 79 50 6F 73 3A 3D 4B 65 79 50 6F 73 5E 2E 4E eyPos:=KeyPos^.N
0000C0: 65 78 74 43 68 61 72 3B 0D 0A 09 09 09 45 4E 44 extChar;.....END
0000D0: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 49 46 20 4B ;....END;...IF K
0000E0: 65 79 53 65 71 5B 69 5D 3D 27 20 27 20 54 48 45 eySeq[i]=' ' THE
0000F0: 4E 20 28 2A 6D 75 73 74 20 61 6C 72 65 61 64 79 N (*must already
000100: 20 62 65 20 69 6E 20 74 61 62 6C 65 2A 29 0D 0A be in table*)..
000110: 09 09 52 45 54 55 52 4E 0D 0A 09 09 45 4E 44 3B ..RETURN....END;
000120: 0D 0A 09 0D 0A 09 28 2A 20 41 73 73 75 6D 69 6E ......(* Assumin
000130: 67 20 74 68 69 73 20 69 73 20 6E 6F 74 20 74 68 g this is not th
000140: 65 20 66 69 72 73 74 20 65 6E 74 72 79 2C 20 4C e first entry, L
000150: 61 73 74 4B 65 79 50 6F 73 20 70 6F 69 6E 74 73 astKeyPos points
000160: 0D 0A 09 20 20 20 74 6F 20 74 68 65 20 65 6E 74 ... to the ent
000170: 72 79 20 74 6F 20 77 68 69 63 68 20 77 65 20 73 ry to which we s
000180: 68 6F 75 6C 64 20 61 74 74 61 63 68 20 74 68 69 hould attach thi
000190: 73 20 6E 65 77 20 63 68 61 72 61 63 74 65 72 0D s new character.
0001A0: 0A 09 2A 29 0D 0A 09 57 48 49 4C 45 20 20 28 4B ..*)...WHILE (K
0001B0: 65 79 53 65 71 5B 69 5D 3C 3E 27 20 27 29 20 44 eySeq[i]<>' ') D
0001C0: 4F 0D 0A 09 09 4E 45 57 28 4B 65 79 50 6F 73 29 O....NEW(KeyPos)
0001D0: 3B 0D 0A 09 09 57 49 54 48 20 4B 65 79 50 6F 73 ;....WITH KeyPos
0001E0: 5E 20 44 4F 0D 0A 09 09 09 63 68 3A 3D 4B 65 79 ^ DO.....ch:=Key
0001F0: 53 65 71 5B 69 5D 3B 0D 0A 09 09 09 4E 65 78 74 Seq[i];.....Next
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 4D 61 63 72 6F 73 3B 0D 0A 46 ODULE Macros;..F
000020: 52 4F 4D 09 44 6F 4D 65 6E 75 20 49 4D 50 4F 52 ROM.DoMenu IMPOR
000030: 54 20 47 65 74 53 74 72 69 6E 67 2C 52 65 64 69 T GetString,Redi
000040: 73 70 6C 61 79 3B 0D 0A 46 52 4F 4D 09 53 74 6F splay;..FROM.Sto
000050: 72 61 67 65 20 49 4D 50 4F 52 54 20 20 41 4C 4C rage IMPORT ALL
000060: 4F 43 41 54 45 2C 44 45 41 4C 4C 4F 43 41 54 45 OCATE,DEALLOCATE
000070: 3B 0D 0A 46 52 4F 4D 09 54 65 72 6D 69 6E 61 6C ;..FROM.Terminal
000080: 20 49 4D 50 4F 52 54 20 42 75 73 79 52 65 61 64 IMPORT BusyRead
000090: 2C 57 72 69 74 65 53 74 72 69 6E 67 2C 57 72 69 ,WriteString,Wri
0000A0: 74 65 4C 6E 2C 57 72 69 74 65 3B 0D 0A 46 52 4F teLn,Write;..FRO
0000B0: 4D 09 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 M.Files IMPORT F
0000C0: 49 4C 45 2C 53 65 71 52 65 61 64 42 6C 6F 63 6B ILE,SeqReadBlock
0000D0: 2C 53 65 71 57 72 69 74 65 42 6C 6F 63 6B 2C 4C ,SeqWriteBlock,L
0000E0: 6F 6F 6B 75 70 2C 43 72 65 61 74 65 2C 43 6C 6F ookup,Create,Clo
0000F0: 73 65 3B 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D se;..FROM.SYSTEM
000100: 20 49 4D 50 4F 52 54 20 41 44 52 2C 54 53 49 5A IMPORT ADR,TSIZ
000110: 45 3B 0D 0A 46 52 4F 4D 09 45 64 69 74 44 69 73 E;..FROM.EditDis
000120: 70 6C 61 79 20 49 4D 50 4F 52 54 20 45 72 72 6F play IMPORT Erro
000130: 72 4D 65 73 73 61 67 65 3B 0D 0A 46 52 4F 4D 09 rMessage;..FROM.
000140: 46 61 73 74 4D 6F 76 65 20 49 4D 50 4F 52 54 20 FastMove IMPORT
000150: 4D 6F 76 65 75 70 3B 0D 0A 46 52 4F 4D 09 53 63 Moveup;..FROM.Sc
000160: 72 65 65 6E 44 75 20 49 4D 50 4F 52 54 20 4F 75 reenDu IMPORT Ou
000170: 74 70 75 74 54 6F 53 63 72 65 65 6E 3B 0D 0A 43 tputToScreen;..C
000180: 4F 4E 53 54 09 42 6C 6F 63 6B 4C 65 6E 3D 31 32 ONST.BlockLen=12
000190: 38 3B 0D 0A 09 45 53 43 3D 31 62 78 3B 0D 0A 54 8;...ESC=1bx;..T
0001A0: 59 50 45 0D 0A 09 4B 65 79 44 65 66 3D 52 45 43 YPE...KeyDef=REC
0001B0: 4F 52 44 0D 0A 09 09 4C 65 6E 67 74 68 3A 5B 31 ORD....Length:[1
0001C0: 2E 2E 36 31 5D 3B 0D 0A 09 09 43 6F 6D 6D 43 68 ..61];....CommCh
0001D0: 61 72 73 3A 41 52 52 41 59 5B 31 2E 2E 32 30 5D ars:ARRAY[1..20]
0001E0: 20 4F 46 20 43 48 41 52 3B 0D 0A 09 09 45 4E 44 OF CHAR;....END
0001F0: 3B 0D 0A 09 50 4B 65 79 44 65 66 3D 50 4F 49 4E ;...PKeyDef=POIN
Size : 512 (Real : 512)
000000: 43 68 61 72 3A 3D 4E 49 4C 3B 0D 0A 09 09 09 54 Char:=NIL;.....T
000010: 65 72 6D 69 6E 61 74 6F 72 3A 3D 46 41 4C 53 45 erminator:=FALSE
000020: 3B 0D 0A 09 09 09 49 46 20 4C 61 73 74 4B 65 79 ;.....IF LastKey
000030: 50 6F 73 3C 3E 4E 49 4C 20 54 48 45 4E 0D 0A 09 Pos<>NIL THEN...
000040: 09 09 09 4E 65 78 74 41 6C 74 3A 3D 4C 61 73 74 ...NextAlt:=Last
000050: 4B 65 79 50 6F 73 5E 2E 4E 65 78 74 43 68 61 72 KeyPos^.NextChar
000060: 3B 0D 0A 09 09 09 09 4C 61 73 74 4B 65 79 50 6F ;......LastKeyPo
000070: 73 5E 2E 4E 65 78 74 43 68 61 72 3A 3D 4B 65 79 s^.NextChar:=Key
000080: 50 6F 73 3B 0D 0A 09 09 09 45 4C 53 45 0D 0A 09 Pos;.....ELSE...
000090: 09 09 09 4E 65 78 74 41 6C 74 3A 3D 4B 65 79 43 ...NextAlt:=KeyC
0000A0: 68 61 69 6E 42 61 73 65 3B 0D 0A 09 09 09 09 4B hainBase;......K
0000B0: 65 79 43 68 61 69 6E 42 61 73 65 3A 3D 4B 65 79 eyChainBase:=Key
0000C0: 50 6F 73 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A Pos;......END;..
0000D0: 09 09 09 45 4E 44 3B 0D 0A 09 09 4C 61 73 74 4B ...END;....LastK
0000E0: 65 79 50 6F 73 3A 3D 4B 65 79 50 6F 73 3B 0D 0A eyPos:=KeyPos;..
0000F0: 09 09 49 4E 43 28 69 29 3B 0D 0A 09 09 45 4E 44 ..INC(i);....END
000100: 3B 0D 0A 09 4C 65 61 72 6E 4B 65 79 3A 3D 4B 65 ;...LearnKey:=Ke
000110: 79 50 6F 73 3B 0D 0A 09 45 4E 44 20 42 75 69 6C yPos;...END Buil
000120: 64 4B 65 79 53 65 71 3B 20 0D 0A 0D 0A 50 52 4F dKeySeq; ....PRO
000130: 43 45 44 55 52 45 20 57 61 69 74 46 6F 72 43 68 CEDURE WaitForCh
000140: 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 4E 4F ;..BEGIN...IF NO
000150: 54 20 53 68 6F 77 43 68 61 6E 67 65 20 54 48 45 T ShowChange THE
000160: 4E 0D 0A 09 09 53 68 6F 77 43 68 61 6E 67 65 3A N....ShowChange:
000170: 3D 54 52 55 45 3B 0D 0A 09 09 4F 75 74 70 75 74 =TRUE;....Output
000180: 54 6F 53 63 72 65 65 6E 28 54 52 55 45 29 3B 0D ToScreen(TRUE);.
000190: 0A 09 09 52 65 64 69 73 70 6C 61 79 3B 0D 0A 09 ...Redisplay;...
0001A0: 09 45 4E 44 3B 0D 0A 09 52 45 50 45 41 54 0D 0A .END;...REPEAT..
0001B0: 09 09 42 75 73 79 52 65 61 64 28 63 68 29 3B 0D ..BusyRead(ch);.
0001C0: 0A 09 09 55 4E 54 49 4C 20 63 68 3C 3E 30 78 3B ...UNTIL ch<>0x;
0001D0: 0D 0A 09 45 4E 44 20 57 61 69 74 46 6F 72 43 68 ...END WaitForCh
0001E0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 65 ;..PROCEDURE Che
0001F0: 63 6B 49 6E 74 65 72 72 75 70 74 28 29 3A 42 4F ckInterrupt():BO
Size : 512 (Real : 512)
000000: 54 45 52 20 54 4F 20 4B 65 79 44 65 66 3B 0D 0A TER TO KeyDef;..
000010: 09 4D 61 63 72 6F 50 6F 69 6E 74 3D 52 45 43 4F .MacroPoint=RECO
000020: 52 44 0D 0A 09 09 50 6F 73 3A 43 41 52 44 49 4E RD....Pos:CARDIN
000030: 41 4C 3B 0D 0A 09 09 44 65 66 3A 50 4B 65 79 44 AL;....Def:PKeyD
000040: 65 66 3B 0D 0A 09 09 43 6F 75 6E 74 3A 49 4E 54 ef;....Count:INT
000050: 45 47 45 52 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 EGER;....END;...
000060: 50 4B 65 79 43 68 61 69 6E 3D 50 4F 49 4E 54 45 PKeyChain=POINTE
000070: 52 20 54 4F 20 4B 65 79 43 68 61 69 6E 3B 0D 0A R TO KeyChain;..
000080: 09 4B 65 79 43 68 61 69 6E 3D 52 45 43 4F 52 44 .KeyChain=RECORD
000090: 0D 0A 09 09 63 68 3A 43 48 41 52 3B 0D 0A 09 09 ....ch:CHAR;....
0000A0: 4E 65 78 74 41 6C 74 3A 50 4B 65 79 43 68 61 69 NextAlt:PKeyChai
0000B0: 6E 3B 20 28 2A 6E 65 78 74 20 61 6C 74 65 72 6E n; (*next altern
0000C0: 61 74 69 76 65 2A 29 0D 0A 09 09 43 41 53 45 20 ative*)....CASE
0000D0: 54 65 72 6D 69 6E 61 74 6F 72 3A 42 4F 4F 4C 45 Terminator:BOOLE
0000E0: 41 4E 20 4F 46 0D 0A 09 09 09 54 52 55 45 3A 20 AN OF.....TRUE:
0000F0: 28 2A 74 65 72 6D 69 6E 61 74 65 73 20 61 20 6B (*terminates a k
000100: 65 79 20 73 65 71 75 65 6E 63 65 20 2A 29 0D 0A ey sequence *)..
000110: 09 09 09 09 44 65 66 3A 50 4B 65 79 44 65 66 7C ....Def:PKeyDef|
000120: 0D 0A 09 09 09 46 41 4C 53 45 3A 20 28 2A 69 6E .....FALSE: (*in
000130: 20 74 68 65 20 6D 6F 64 64 6C 65 20 6F 66 20 61 the moddle of a
000140: 20 6B 65 79 20 73 65 71 75 65 6E 63 65 20 2A 29 key sequence *)
000150: 0D 0A 09 09 09 09 4E 65 78 74 43 68 61 72 3A 50 ......NextChar:P
000160: 4B 65 79 43 68 61 69 6E 0D 0A 09 09 09 45 4E 44 KeyChain.....END
000170: 3B 20 28 2A 43 41 53 45 2A 29 0D 0A 09 09 45 4E ; (*CASE*)....EN
000180: 44 3B 28 2A 52 45 43 4F 52 44 2A 29 0D 0A 09 09 D;(*RECORD*)....
000190: 09 09 0D 0A 56 41 52 0D 0A 09 63 68 3A 43 48 41 ....VAR...ch:CHA
0001A0: 52 3B 0D 0A 09 43 6F 6D 6D 61 6E 64 73 3A 41 52 R;...Commands:AR
0001B0: 52 41 59 5B 27 40 27 2E 2E 27 5A 27 5D 20 4F 46 RAY['@'..'Z'] OF
0001C0: 20 50 4B 65 79 44 65 66 3B 0D 0A 09 4D 61 63 72 PKeyDef;...Macr
0001D0: 6F 44 65 70 74 68 3A 43 41 52 44 49 4E 41 4C 3D oDepth:CARDINAL=
0001E0: 30 3B 0D 0A 09 4D 61 63 72 6F 53 74 61 63 6B 3A 0;...MacroStack:
0001F0: 41 52 52 41 59 5B 31 2E 2E 35 5D 20 4F 46 20 4D ARRAY[1..5] OF M
Size : 512 (Real : 512)
000000: 4F 4C 45 41 4E 3B 0D 0A 0D 0A 28 2A 09 43 68 65 OLEAN;....(*.Che
000010: 63 6B 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 ck the keyboard
000020: 66 6F 72 20 61 6E 20 69 6E 74 65 72 75 70 74 20 for an interupt
000030: 28 43 6F 6E 74 72 6F 6C 20 55 29 0D 0A 0D 0A 09 (Control U).....
000040: 41 6C 73 6F 2C 20 69 66 20 45 73 63 61 70 65 20 Also, if Escape
000050: 68 61 73 20 62 65 65 6E 20 74 79 70 65 64 2C 20 has been typed,
000060: 73 74 6F 70 20 74 65 72 6D 69 6E 61 6C 20 6F 75 stop terminal ou
000070: 74 70 75 74 0D 0A 09 75 6E 74 69 6C 20 61 6E 6F tput...until ano
000080: 74 68 65 72 20 63 68 61 72 61 63 74 65 72 20 69 ther character i
000090: 73 20 74 79 70 65 64 2A 29 0D 0A 0D 0A 56 41 52 s typed*)....VAR
0000A0: 09 63 68 31 3A 43 48 41 52 3B 0D 0A 42 45 47 49 .ch1:CHAR;..BEGI
0000B0: 4E 0D 0A 09 42 75 73 79 52 65 61 64 28 63 68 31 N...BusyRead(ch1
0000C0: 29 3B 0D 0A 09 43 41 53 45 20 63 68 31 20 4F 46 );...CASE ch1 OF
0000D0: 20 0D 0A 09 09 31 35 78 3A 52 45 54 55 52 4E 20 ....15x:RETURN
0000E0: 54 52 55 45 0D 0A 09 09 20 20 20 20 7C 0D 0A 09 TRUE.... |...
0000F0: 09 31 62 78 3A 53 68 6F 77 43 68 61 6E 67 65 3A .1bx:ShowChange:
000100: 3D 46 41 4C 53 45 3B 0D 0A 09 09 20 20 20 20 4F =FALSE;.... O
000110: 75 74 70 75 74 54 6F 53 63 72 65 65 6E 28 46 41 utputToScreen(FA
000120: 4C 53 45 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 LSE);....END;...
000130: 52 45 54 55 52 4E 20 46 41 4C 53 45 0D 0A 09 45 RETURN FALSE...E
000140: 4E 44 20 43 68 65 63 6B 49 6E 74 65 72 72 75 70 ND CheckInterrup
000150: 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 t;..PROCEDURE Ge
000160: 74 41 43 68 61 72 28 56 41 52 20 63 68 31 3A 43 tAChar(VAR ch1:C
000170: 48 41 52 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 HAR);..BEGIN...I
000180: 46 20 4D 61 63 72 6F 44 65 70 74 68 3D 30 20 54 F MacroDepth=0 T
000190: 48 45 4E 0D 0A 09 09 57 61 69 74 46 6F 72 43 68 HEN....WaitForCh
0001A0: 3B 0D 0A 09 09 63 68 31 3A 3D 63 68 3B 0D 0A 09 ;....ch1:=ch;...
0001B0: 09 49 46 20 4C 65 61 72 6E 69 6E 67 20 41 4E 44 .IF Learning AND
0001C0: 20 28 4C 65 61 72 6E 4C 65 6E 3C 48 49 47 48 28 (LearnLen<HIGH(
0001D0: 54 65 78 74 29 29 20 54 48 45 4E 0D 0A 09 09 09 Text)) THEN.....
0001E0: 49 4E 43 28 4C 65 61 72 6E 4C 65 6E 29 3B 0D 0A INC(LearnLen);..
0001F0: 09 09 09 54 65 78 74 5B 4C 65 61 72 6E 4C 65 6E ...Text[LearnLen
Size : 512 (Real : 512)
000000: 73 69 6F 6E 20 64 69 64 20 73 6F 29 2C 20 62 75 sion did so), bu
000010: 74 20 74 68 61 74 20 77 6F 75 6C 64 20 70 72 65 t that would pre
000020: 76 65 6E 74 20 74 68 65 0D 0A 09 09 09 09 75 73 vent the......us
000030: 65 20 6F 66 20 72 65 70 65 61 74 20 63 6F 75 6E e of repeat coun
000040: 74 73 20 77 69 74 68 20 66 75 6E 63 74 69 6F 6E ts with function
000050: 2F 61 72 72 6F 77 0D 0A 09 09 09 09 6B 65 79 73 /arrow......keys
000060: 2E 20 53 6F 20 69 6E 73 74 65 61 64 20 45 53 43 . So instead ESC
000070: 20 40 20 69 73 20 72 65 74 75 72 6E 65 64 2C 20 @ is returned,
000080: 77 68 65 72 65 0D 0A 09 09 09 09 45 53 43 20 40 where......ESC @
000090: 20 69 73 20 61 6C 77 61 79 73 20 74 68 65 20 6D is always the m
0000A0: 61 63 72 6F 20 77 65 20 6A 75 73 74 20 66 6F 75 acro we just fou
0000B0: 6E 64 2A 29 0D 0A 0D 0A 09 09 09 09 43 6F 6D 6D nd*)........Comm
0000C0: 61 6E 64 73 5B 27 40 27 5D 3A 3D 44 65 66 3B 0D ands['@']:=Def;.
0000D0: 0A 09 09 09 09 53 70 65 63 69 61 6C 53 65 71 75 .....SpecialSequ
0000E0: 65 6E 63 65 3A 3D 54 52 55 45 3B 0D 0A 09 09 09 ence:=TRUE;.....
0000F0: 09 52 65 73 75 6C 74 3A 3D 45 53 43 3B 0D 0A 09 .Result:=ESC;...
000100: 09 09 0D 0A 09 09 09 09 52 45 54 55 52 4E 3B 0D ........RETURN;.
000110: 0A 09 09 09 45 4C 53 45 0D 0A 09 09 09 09 4B 65 ....ELSE......Ke
000120: 79 50 6F 73 3A 3D 4E 65 78 74 43 68 61 72 3B 0D yPos:=NextChar;.
000130: 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E .....END;.....EN
000140: 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 D;....END;...END
000150: 20 52 65 61 64 41 43 68 61 72 3B 0D 0A 09 09 09 ReadAChar;.....
000160: 09 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 ....PROCEDURE Ge
000170: 74 44 65 66 43 68 61 72 3B 0D 0A 56 41 52 09 54 tDefChar;..VAR.T
000180: 65 78 74 3A 41 52 52 41 59 5B 31 2E 2E 31 5D 20 ext:ARRAY[1..1]
000190: 4F 46 20 43 48 41 52 3B 0D 0A 42 45 47 49 4E 0D OF CHAR;..BEGIN.
0001A0: 0A 09 47 65 74 53 74 72 69 6E 67 28 54 65 78 74 ..GetString(Text
0001B0: 2C 4C 65 61 72 6E 4C 65 6E 2C 27 43 68 61 72 20 ,LearnLen,'Char
0001C0: 74 6F 20 64 65 66 69 6E 65 3A 27 29 3B 0D 0A 09 to define:');...
0001D0: 4C 65 61 72 6E 63 68 3A 3D 43 41 50 28 54 65 78 Learnch:=CAP(Tex
0001E0: 74 5B 31 5D 29 3B 0D 0A 09 49 46 20 4C 65 61 72 t[1]);...IF Lear
0001F0: 6E 63 68 3D 45 53 43 20 54 48 45 4E 0D 0A 09 09 nch=ESC THEN....
Size : 512 (Real : 512)
000000: 5D 3A 3D 63 68 3B 0D 0A 09 09 09 45 4E 44 3B 0D ]:=ch;.....END;.
000010: 0A 09 45 4C 53 45 0D 0A 09 09 57 49 54 48 20 4D ..ELSE....WITH M
000020: 61 63 72 6F 53 74 61 63 6B 5B 4D 61 63 72 6F 44 acroStack[MacroD
000030: 65 70 74 68 5D 20 44 4F 0D 0A 09 09 09 49 46 20 epth] DO.....IF
000040: 50 6F 73 3E 44 65 66 5E 2E 4C 65 6E 67 74 68 20 Pos>Def^.Length
000050: 54 48 45 4E 0D 0A 09 09 09 20 20 20 20 44 45 43 THEN..... DEC
000060: 28 43 6F 75 6E 74 29 3B 0D 0A 09 09 09 20 20 20 (Count);.....
000070: 20 49 46 20 43 68 65 63 6B 49 6E 74 65 72 72 75 IF CheckInterru
000080: 70 74 28 29 20 4F 52 20 4E 4F 54 20 46 6F 75 6E pt() OR NOT Foun
000090: 64 20 54 48 45 4E 0D 0A 09 09 09 09 4D 61 63 72 d THEN......Macr
0000A0: 6F 44 65 70 74 68 3A 3D 31 3B 0D 0A 09 09 09 09 oDepth:=1;......
0000B0: 43 6F 75 6E 74 3A 3D 30 3B 0D 0A 09 09 09 09 45 Count:=0;......E
0000C0: 4E 44 3B 0D 0A 09 09 09 20 20 20 20 49 46 20 43 ND;..... IF C
0000D0: 6F 75 6E 74 3C 31 20 54 48 45 4E 0D 0A 09 09 09 ount<1 THEN.....
0000E0: 09 44 45 43 28 4D 61 63 72 6F 44 65 70 74 68 29 .DEC(MacroDepth)
0000F0: 3B 0D 0A 09 09 09 20 20 20 20 45 4C 53 45 0D 0A ;..... ELSE..
000100: 09 09 09 09 50 6F 73 3A 3D 31 3B 0D 0A 09 09 09 ....Pos:=1;.....
000110: 09 45 4E 44 3B 0D 0A 09 09 09 20 20 20 20 47 65 .END;..... Ge
000120: 74 41 43 68 61 72 28 63 68 31 29 3B 0D 0A 09 09 tAChar(ch1);....
000130: 09 45 4C 53 45 0D 0A 09 09 09 09 63 68 31 3A 3D .ELSE......ch1:=
000140: 44 65 66 5E 2E 43 6F 6D 6D 43 68 61 72 73 5B 50 Def^.CommChars[P
000150: 6F 73 5D 3B 0D 0A 09 09 09 09 49 4E 43 28 50 6F os];......INC(Po
000160: 73 29 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 s);......END;...
000170: 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A ..END;....END;..
000180: 09 45 4E 44 20 47 65 74 41 43 68 61 72 3B 0D 0A .END GetAChar;..
000190: 50 52 4F 43 45 44 55 52 45 20 41 64 64 4D 61 63 PROCEDURE AddMac
0001A0: 72 6F 28 70 3A 50 4B 65 79 44 65 66 3B 72 65 70 ro(p:PKeyDef;rep
0001B0: 65 61 74 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 42 eat:INTEGER);..B
0001C0: 45 47 49 4E 0D 0A 09 49 46 20 28 70 3C 3E 4E 49 EGIN...IF (p<>NI
0001D0: 4C 29 20 41 4E 44 20 28 4D 61 63 72 6F 44 65 70 L) AND (MacroDep
0001E0: 74 68 3C 3D 48 49 47 48 28 4D 61 63 72 6F 53 74 th<=HIGH(MacroSt
0001F0: 61 63 6B 29 29 20 54 48 45 4E 0D 0A 0D 0A 09 09 ack)) THEN......
Size : 512 (Real : 512)
000000: 47 65 74 53 74 72 69 6E 67 28 4B 65 79 53 65 71 GetString(KeySeq
000010: 2C 4C 65 61 72 6E 4C 65 6E 2C 27 4B 65 79 20 74 ,LearnLen,'Key t
000020: 6F 20 64 65 66 69 6E 65 3A 27 29 3B 0D 0A 09 09 o define:');....
000030: 42 75 69 6C 64 4B 65 79 53 65 71 3B 0D 0A 09 09 BuildKeySeq;....
000040: 45 4E 44 3B 0D 0A 09 45 4E 44 20 47 65 74 44 65 END;...END GetDe
000050: 66 43 68 61 72 3B 0D 0A 50 52 4F 43 45 44 55 52 fChar;..PROCEDUR
000060: 45 20 44 65 66 4D 61 63 72 6F 54 65 78 74 3B 0D E DefMacroText;.
000070: 0A 56 41 52 09 70 3A 50 4B 65 79 44 65 66 3B 0D .VAR.p:PKeyDef;.
000080: 0A 42 45 47 49 4E 0D 0A 09 49 46 20 4C 65 61 72 .BEGIN...IF Lear
000090: 6E 4C 65 6E 3E 30 20 54 48 45 4E 0D 0A 09 09 41 nLen>0 THEN....A
0000A0: 4C 4C 4F 43 41 54 45 28 70 2C 54 53 49 5A 45 28 LLOCATE(p,TSIZE(
0000B0: 43 41 52 44 49 4E 41 4C 29 2B 4C 65 61 72 6E 4C CARDINAL)+LearnL
0000C0: 65 6E 29 3B 0D 0A 09 09 49 46 20 4C 65 61 72 6E en);....IF Learn
0000D0: 63 68 3D 45 53 43 20 54 48 45 4E 20 0D 0A 09 09 ch=ESC THEN ....
0000E0: 09 4C 65 61 72 6E 4B 65 79 5E 2E 44 65 66 3A 3D .LearnKey^.Def:=
0000F0: 70 3B 0D 0A 09 09 09 4C 65 61 72 6E 4B 65 79 5E p;.....LearnKey^
000100: 2E 54 65 72 6D 69 6E 61 74 6F 72 3A 3D 54 52 55 .Terminator:=TRU
000110: 45 0D 0A 09 09 45 4C 53 45 20 0D 0A 09 09 09 43 E....ELSE .....C
000120: 6F 6D 6D 61 6E 64 73 5B 4C 65 61 72 6E 63 68 5D ommands[Learnch]
000130: 3A 3D 70 20 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 :=p .....END;...
000140: 09 57 49 54 48 20 70 5E 20 44 4F 0D 0A 09 09 09 .WITH p^ DO.....
000150: 4C 65 6E 67 74 68 3A 3D 4C 65 61 72 6E 4C 65 6E Length:=LearnLen
000160: 3B 0D 0A 09 09 09 46 4F 52 20 4C 65 61 72 6E 4C ;.....FOR LearnL
000170: 65 6E 3A 3D 4C 65 61 72 6E 4C 65 6E 20 54 4F 20 en:=LearnLen TO
000180: 31 20 42 59 20 2D 31 20 44 4F 0D 0A 09 09 09 09 1 BY -1 DO......
000190: 43 6F 6D 6D 43 68 61 72 73 5B 4C 65 61 72 6E 4C CommChars[LearnL
0001A0: 65 6E 5D 3A 3D 54 65 78 74 5B 4C 65 61 72 6E 4C en]:=Text[LearnL
0001B0: 65 6E 5D 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A en];......END;..
0001C0: 09 09 09 45 4E 44 3B 0D 0A 0D 0A 09 09 45 4E 44 ...END;......END
0001D0: 3B 0D 0A 09 45 4E 44 20 44 65 66 4D 61 63 72 6F ;...END DefMacro
0001E0: 54 65 78 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 Text;..PROCEDURE
0001F0: 20 4C 65 61 72 6E 4D 61 63 72 6F 3B 0D 0A 0D 0A LearnMacro;....
Size : 512 (Real : 512)
000000: 28 2A 6D 61 6B 65 20 73 75 72 65 20 74 68 61 74 (*make sure that
000010: 20 6D 61 63 72 6F 20 69 73 20 6E 6F 74 20 72 65 macro is not re
000020: 63 75 72 73 69 76 65 2A 29 0D 0A 0D 0A 0D 0A 09 cursive*).......
000030: 09 46 4F 52 20 69 3A 3D 31 20 54 4F 20 4D 61 63 .FOR i:=1 TO Mac
000040: 72 6F 44 65 70 74 68 20 44 4F 0D 0A 09 09 09 49 roDepth DO.....I
000050: 46 20 4D 61 63 72 6F 53 74 61 63 6B 5B 69 5D 2E F MacroStack[i].
000060: 44 65 66 3D 70 20 54 48 45 4E 0D 0A 09 09 09 09 Def=p THEN......
000070: 45 72 72 6F 72 4D 65 73 73 61 67 65 28 27 52 65 ErrorMessage('Re
000080: 63 75 72 73 69 76 65 20 6D 61 63 72 6F 73 21 27 cursive macros!'
000090: 2C 27 20 27 29 3B 0D 0A 09 09 09 09 4D 61 63 72 ,' ');......Macr
0000A0: 6F 44 65 70 74 68 3A 3D 30 3B 0D 0A 09 09 09 09 oDepth:=0;......
0000B0: 52 45 54 55 52 4E 3B 0D 0A 09 09 09 09 45 4E 44 RETURN;......END
0000C0: 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 49 4E ;.....END;....IN
0000D0: 43 28 4D 61 63 72 6F 44 65 70 74 68 29 3B 0D 0A C(MacroDepth);..
0000E0: 09 09 57 49 54 48 20 4D 61 63 72 6F 53 74 61 63 ..WITH MacroStac
0000F0: 6B 5B 4D 61 63 72 6F 44 65 70 74 68 5D 20 44 4F k[MacroDepth] DO
000100: 0D 0A 09 09 09 50 6F 73 3A 3D 31 3B 0D 0A 09 09 .....Pos:=1;....
000110: 09 44 65 66 3A 3D 70 3B 0D 0A 09 09 09 43 6F 75 .Def:=p;.....Cou
000120: 6E 74 3A 3D 72 65 70 65 61 74 3B 0D 0A 09 09 09 nt:=repeat;.....
000130: 45 4E 44 3B 28 2A 57 49 54 48 2A 29 0D 0A 09 09 END;(*WITH*)....
000140: 45 4E 44 3B 28 2A 70 3C 3E 4E 49 4C 20 65 74 63 END;(*p<>NIL etc
000150: 2A 29 0D 0A 09 45 4E 44 20 41 64 64 4D 61 63 72 *)...END AddMacr
000160: 6F 3B 0D 0A 56 41 52 09 53 70 65 63 69 61 6C 53 o;..VAR.SpecialS
000170: 65 71 75 65 6E 63 65 3A 42 4F 4F 4C 45 41 4E 3D equence:BOOLEAN=
000180: 46 41 4C 53 45 3B 0D 0A 50 52 4F 43 45 44 55 52 FALSE;..PROCEDUR
000190: 45 20 52 65 61 64 41 43 68 61 72 28 56 41 52 20 E ReadAChar(VAR
0001A0: 52 65 73 75 6C 74 3A 43 48 41 52 29 3B 0D 0A 0D Result:CHAR);...
0001B0: 0A 28 2A 09 72 65 61 64 20 6E 65 78 74 20 63 68 .(*.read next ch
0001C0: 61 72 61 63 74 65 72 2C 20 63 68 65 63 6B 69 6E aracter, checkin
0001D0: 67 20 66 6F 72 20 61 72 72 6F 77 73 2F 66 75 6E g for arrows/fun
0001E0: 63 74 69 6F 6E 20 6B 65 79 73 0D 0A 09 69 6E 20 ction keys...in
0001F0: 61 6E 64 20 6F 75 74 20 70 6F 69 6E 74 20 74 6F and out point to
Size : 512 (Real : 512)
000000: 28 2A 09 4C 65 61 72 6E 20 61 20 6D 61 63 72 6F (*.Learn a macro
000010: 20 64 65 66 69 6E 69 74 69 6F 6E 09 0D 0A 09 63 definition....c
000020: 61 6C 6C 65 64 20 61 74 20 65 69 74 68 65 72 20 alled at either
000030: 65 6E 64 20 6F 66 20 64 65 66 69 6E 69 74 69 6F end of definitio
000040: 6E 2A 29 0D 0A 0D 0A 42 45 47 49 4E 0D 0A 09 49 n*)....BEGIN...I
000050: 46 20 4E 4F 54 20 4C 65 61 72 6E 69 6E 67 20 54 F NOT Learning T
000060: 48 45 4E 0D 0A 09 09 47 65 74 44 65 66 43 68 61 HEN....GetDefCha
000070: 72 3B 0D 0A 09 09 4C 65 61 72 6E 69 6E 67 3A 3D r;....Learning:=
000080: 54 52 55 45 3B 0D 0A 09 09 4C 65 61 72 6E 4C 65 TRUE;....LearnLe
000090: 6E 3A 3D 30 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 n:=0;...ELSE....
0000A0: 4C 65 61 72 6E 4C 65 6E 3A 3D 4C 65 61 72 6E 4C LearnLen:=LearnL
0000B0: 65 6E 2D 32 3B 0D 0A 09 09 44 65 66 4D 61 63 72 en-2;....DefMacr
0000C0: 6F 54 65 78 74 3B 0D 0A 09 09 4C 65 61 72 6E 69 oText;....Learni
0000D0: 6E 67 3A 3D 46 41 4C 53 45 3B 0D 0A 09 09 45 4E ng:=FALSE;....EN
0000E0: 44 3B 0D 0A 09 45 4E 44 20 4C 65 61 72 6E 4D 61 D;...END LearnMa
0000F0: 63 72 6F 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 cro;..PROCEDURE
000100: 44 65 66 4D 61 63 72 6F 3B 0D 0A 42 45 47 49 4E DefMacro;..BEGIN
000110: 0D 0A 09 47 65 74 44 65 66 43 68 61 72 3B 0D 0A ...GetDefChar;..
000120: 09 49 46 20 28 4C 65 61 72 6E 63 68 3E 3D 27 41 .IF (Learnch>='A
000130: 27 29 20 41 4E 44 20 28 4C 65 61 72 6E 63 68 3C ') AND (Learnch<
000140: 3D 27 5A 27 29 20 4F 52 20 28 4C 65 61 72 6E 63 ='Z') OR (Learnc
000150: 68 3D 45 53 43 29 20 54 48 45 4E 0D 0A 09 09 47 h=ESC) THEN....G
000160: 65 74 53 74 72 69 6E 67 28 54 65 78 74 2C 4C 65 etString(Text,Le
000170: 61 72 6E 4C 65 6E 2C 27 4D 61 63 72 6F 3A 27 29 arnLen,'Macro:')
000180: 3B 0D 0A 09 09 44 65 66 4D 61 63 72 6F 54 65 78 ;....DefMacroTex
000190: 74 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 t;....END;...END
0001A0: 20 44 65 66 4D 61 63 72 6F 3B 0D 0A 50 52 4F 43 DefMacro;..PROC
0001B0: 45 44 55 52 45 20 4D 61 63 72 6F 28 63 68 3A 43 EDURE Macro(ch:C
0001C0: 48 41 52 3B 72 65 70 65 61 74 3A 49 4E 54 45 47 HAR;repeat:INTEG
0001D0: 45 52 29 3B 0D 0A 56 41 52 09 69 3A 43 41 52 44 ER);..VAR.i:CARD
0001E0: 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 63 INAL;..BEGIN...c
0001F0: 68 3A 3D 43 41 50 28 63 68 29 3B 0D 0A 09 49 46 h:=CAP(ch);...IF
Size : 512 (Real : 512)
000000: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 20 the characters
000010: 77 68 69 63 68 20 68 61 76 65 20 62 65 65 6E 20 which have been
000020: 72 65 61 64 20 61 68 65 61 64 0D 0A 09 42 79 20 read ahead...By
000030: 52 65 61 64 41 43 68 61 72 20 69 6E 20 61 6E 20 ReadAChar in an
000040: 61 74 74 65 6D 70 74 20 74 6F 20 72 65 73 6F 6C attempt to resol
000050: 76 65 20 61 20 6D 61 63 72 6F 0D 0A 0D 0A 09 57 ve a macro.....W
000060: 68 65 6E 20 52 65 61 64 41 43 68 61 72 20 69 73 hen ReadAChar is
000070: 20 65 6E 74 65 72 65 64 2C 20 69 66 20 74 68 69 entered, if thi
000080: 73 20 62 75 66 66 65 72 20 69 73 20 6E 6F 74 20 s buffer is not
000090: 65 6D 70 74 79 2C 0D 0A 09 74 68 65 20 66 69 72 empty,...the fir
0000A0: 73 74 20 63 68 61 72 61 63 74 65 72 20 69 73 20 st character is
0000B0: 74 6F 20 62 65 20 6C 6F 6F 6B 65 64 20 75 70 20 to be looked up
0000C0: 74 6F 20 73 65 65 20 69 66 20 69 74 20 69 73 20 to see if it is
0000D0: 61 20 0D 0A 09 73 74 61 72 74 20 6F 66 20 61 20 a ...start of a
0000E0: 6B 65 79 20 64 65 66 69 6E 69 74 69 6F 6E 2A 29 key definition*)
0000F0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 63 50 ..PROCEDURE IncP
000100: 6F 69 6E 74 65 72 28 56 41 52 20 69 3A 43 41 52 ointer(VAR i:CAR
000110: 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A DINAL);..BEGIN..
000120: 09 49 46 20 69 3D 48 49 47 48 28 42 75 66 66 65 .IF i=HIGH(Buffe
000130: 72 29 20 54 48 45 4E 20 69 3A 3D 30 20 45 4E 44 r) THEN i:=0 END
000140: 3B 0D 0A 09 49 4E 43 28 69 29 3B 0D 0A 09 45 4E ;...INC(i);...EN
000150: 44 20 49 6E 63 50 6F 69 6E 74 65 72 3B 0D 0A 42 D IncPointer;..B
000160: 45 47 49 4E 0D 0A 09 6C 6F 6F 6B 3A 3D 6F 75 74 EGIN...look:=out
000170: 3B 0D 0A 09 49 46 20 53 70 65 63 69 61 6C 53 65 ;...IF SpecialSe
000180: 71 75 65 6E 63 65 20 54 48 45 4E 20 0D 0A 0D 0A quence THEN ....
000190: 09 09 28 2A 20 40 20 69 73 20 75 73 65 64 20 66 ..(* @ is used f
0001A0: 6F 72 20 66 75 6E 63 74 69 6F 6E 2F 61 72 72 6F or function/arro
0001B0: 77 20 6B 65 79 73 20 61 73 20 61 20 6D 61 63 72 w keys as a macr
0001C0: 6F 0D 0A 09 09 20 20 20 73 6F 20 74 68 61 74 20 o.... so that
0001D0: 72 65 70 65 61 74 20 63 6F 75 6E 74 73 20 63 61 repeat counts ca
0001E0: 6E 20 73 74 69 6C 6C 20 62 65 20 75 73 65 64 2A n still be used*
0001F0: 29 0D 0A 0D 0A 09 09 52 65 73 75 6C 74 3A 3D 27 )......Result:='
Size : 512 (Real : 512)
000000: 20 63 68 3C 27 20 27 20 54 48 45 4E 20 63 68 3A ch<' ' THEN ch:
000010: 3D 43 48 52 28 4F 52 44 28 63 68 29 2B 36 34 29 =CHR(ORD(ch)+64)
000020: 20 45 4E 44 3B 0D 0A 09 49 46 20 28 63 68 3E 3D END;...IF (ch>=
000030: 27 40 27 29 20 41 4E 44 20 28 63 68 3C 3D 27 5A '@') AND (ch<='Z
000040: 27 29 20 54 48 45 4E 0D 0A 09 09 41 64 64 4D 61 ') THEN....AddMa
000050: 63 72 6F 28 43 6F 6D 6D 61 6E 64 73 5B 63 68 5D cro(Commands[ch]
000060: 2C 72 65 70 65 61 74 29 3B 0D 0A 09 09 45 4E 44 ,repeat);....END
000070: 3B 0D 0A 09 45 4E 44 20 4D 61 63 72 6F 3B 0D 0A ;...END Macro;..
000080: 56 41 52 09 46 3A 46 49 4C 45 3B 0D 0A 09 72 65 VAR.F:FILE;...re
000090: 70 6C 79 3A 49 4E 54 45 47 45 52 3B 0D 0A 50 52 ply:INTEGER;..PR
0000A0: 4F 43 45 44 55 52 45 20 4C 6F 61 64 4D 61 63 72 OCEDURE LoadMacr
0000B0: 6F 73 3B 0D 0A 56 41 52 09 42 6C 6F 63 6B 3A 41 os;..VAR.Block:A
0000C0: 52 52 41 59 5B 30 2E 2E 42 6C 6F 63 6B 4C 65 6E RRAY[0..BlockLen
0000D0: 2D 31 5D 20 4F 46 20 43 48 41 52 3B 0D 0A 42 45 -1] OF CHAR;..BE
0000E0: 47 49 4E 0D 0A 09 4C 4F 4F 50 0D 0A 09 09 53 65 GIN...LOOP....Se
0000F0: 71 52 65 61 64 42 6C 6F 63 6B 28 46 2C 41 44 52 qReadBlock(F,ADR
000100: 28 42 6C 6F 63 6B 29 2C 42 6C 6F 63 6B 4C 65 6E (Block),BlockLen
000110: 2C 72 65 70 6C 79 29 3B 0D 0A 09 09 49 46 20 72 ,reply);....IF r
000120: 65 70 6C 79 3C 3E 42 6C 6F 63 6B 4C 65 6E 20 54 eply<>BlockLen T
000130: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 HEN EXIT END;...
000140: 09 72 65 70 6C 79 3A 3D 30 3B 0D 0A 09 09 57 48 .reply:=0;....WH
000150: 49 4C 45 20 42 6C 6F 63 6B 5B 72 65 70 6C 79 5D ILE Block[reply]
000160: 3C 3E 30 78 20 44 4F 0D 0A 09 09 09 4C 65 61 72 <>0x DO.....Lear
000170: 6E 4C 65 6E 3A 3D 4F 52 44 28 42 6C 6F 63 6B 5B nLen:=ORD(Block[
000180: 72 65 70 6C 79 5D 29 3B 0D 0A 09 09 09 4C 65 61 reply]);.....Lea
000190: 72 6E 63 68 3A 3D 42 6C 6F 63 6B 5B 72 65 70 6C rnch:=Block[repl
0001A0: 79 2B 31 5D 3B 0D 0A 09 09 09 49 46 20 4C 65 61 y+1];.....IF Lea
0001B0: 72 6E 63 68 3D 45 53 43 20 54 48 45 4E 0D 0A 09 rnch=ESC THEN...
0001C0: 09 09 09 4D 6F 76 65 75 70 28 41 44 52 28 42 6C ...Moveup(ADR(Bl
0001D0: 6F 63 6B 5B 72 65 70 6C 79 2B 32 5D 29 2C 41 44 ock[reply+2]),AD
0001E0: 52 28 4B 65 79 53 65 71 29 2C 31 30 29 3B 0D 0A R(KeySeq),10);..
0001F0: 09 09 09 09 42 75 69 6C 64 4B 65 79 53 65 71 3B ....BuildKeySeq;
Size : 512 (Real : 512)
000000: 40 27 3B 0D 0A 09 09 53 70 65 63 69 61 6C 53 65 @';....SpecialSe
000010: 71 75 65 6E 63 65 3A 3D 46 41 4C 53 45 3B 0D 0A quence:=FALSE;..
000020: 09 09 52 45 54 55 52 4E 0D 0A 09 09 45 4E 44 3B ..RETURN....END;
000030: 0D 0A 09 4B 65 79 50 6F 73 3A 3D 4B 65 79 43 68 ...KeyPos:=KeyCh
000040: 61 69 6E 42 61 73 65 3B 0D 0A 09 4C 4F 4F 50 0D ainBase;...LOOP.
000050: 0A 09 09 49 46 20 69 6E 3C 3E 6C 6F 6F 6B 20 54 ...IF in<>look T
000060: 48 45 4E 0D 0A 09 09 09 52 65 73 75 6C 74 3A 3D HEN.....Result:=
000070: 42 75 66 66 65 72 5B 6C 6F 6F 6B 5D 3B 0D 0A 09 Buffer[look];...
000080: 09 09 49 6E 63 50 6F 69 6E 74 65 72 28 6C 6F 6F ..IncPointer(loo
000090: 6B 29 3B 0D 0A 09 09 45 4C 53 45 0D 0A 09 09 09 k);....ELSE.....
0000A0: 47 65 74 41 43 68 61 72 28 52 65 73 75 6C 74 29 GetAChar(Result)
0000B0: 3B 0D 0A 09 09 09 42 75 66 66 65 72 5B 69 6E 5D ;.....Buffer[in]
0000C0: 3A 3D 52 65 73 75 6C 74 3B 0D 0A 09 09 09 49 6E :=Result;.....In
0000D0: 63 50 6F 69 6E 74 65 72 28 69 6E 29 3B 0D 0A 09 cPointer(in);...
0000E0: 09 09 6C 6F 6F 6B 3A 3D 69 6E 3B 0D 0A 09 09 09 ..look:=in;.....
0000F0: 45 4E 44 3B 0D 0A 09 09 53 65 61 72 63 68 54 6F END;....SearchTo
000100: 4E 65 78 74 28 52 65 73 75 6C 74 29 3B 0D 0A 09 Next(Result);...
000110: 09 49 46 20 4B 65 79 50 6F 73 3D 4E 49 4C 20 54 .IF KeyPos=NIL T
000120: 48 45 4E 0D 0A 09 09 09 52 65 73 75 6C 74 3A 3D HEN.....Result:=
000130: 42 75 66 66 65 72 5B 6F 75 74 5D 3B 0D 0A 09 09 Buffer[out];....
000140: 09 49 6E 63 50 6F 69 6E 74 65 72 28 6F 75 74 29 .IncPointer(out)
000150: 3B 0D 0A 09 09 09 52 45 54 55 52 4E 0D 0A 09 09 ;.....RETURN....
000160: 09 45 4E 44 3B 0D 0A 09 09 57 49 54 48 20 4B 65 .END;....WITH Ke
000170: 79 50 6F 73 5E 20 44 4F 0D 0A 09 09 09 49 46 20 yPos^ DO.....IF
000180: 54 65 72 6D 69 6E 61 74 6F 72 20 54 48 45 4E 0D Terminator THEN.
000190: 0A 09 09 09 09 6F 75 74 3A 3D 6C 6F 6F 6B 3B 0D .....out:=look;.
0001A0: 0A 09 09 09 09 69 6E 3A 3D 6C 6F 6F 6B 3B 0D 0A .....in:=look;..
0001B0: 0D 0A 09 09 09 09 28 2A 20 77 65 20 63 6F 75 6C ......(* we coul
0001C0: 64 20 61 64 64 20 74 68 65 20 6D 61 63 72 6F 20 d add the macro
0001D0: 0D 0A 09 09 09 09 64 69 72 65 63 74 6C 79 20 61 ......directly a
0001E0: 74 20 74 68 69 73 20 70 6F 69 6E 74 20 28 74 68 t this point (th
0001F0: 65 20 66 69 72 73 74 0D 0A 09 09 09 09 76 65 72 e first......ver
Size : 512 (Real : 512)
000000: 0D 0A 09 09 09 09 72 65 70 6C 79 3A 3D 72 65 70 ......reply:=rep
000010: 6C 79 2B 31 30 3B 0D 0A 09 09 09 09 45 4E 44 3B ly+10;......END;
000020: 0D 0A 0D 0A 09 09 09 72 65 70 6C 79 3A 3D 72 65 .......reply:=re
000030: 70 6C 79 2B 32 3B 0D 0A 09 09 09 46 4F 52 20 69 ply+2;.....FOR i
000040: 3A 3D 31 20 54 4F 20 4C 65 61 72 6E 4C 65 6E 20 :=1 TO LearnLen
000050: 44 4F 0D 0A 09 09 09 09 54 65 78 74 5B 69 5D 3A DO......Text[i]:
000060: 3D 42 6C 6F 63 6B 5B 72 65 70 6C 79 5D 3B 0D 0A =Block[reply];..
000070: 09 09 09 09 49 4E 43 28 72 65 70 6C 79 29 3B 0D ....INC(reply);.
000080: 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 44 65 .....END;.....De
000090: 66 4D 61 63 72 6F 54 65 78 74 3B 0D 0A 09 09 09 fMacroText;.....
0000A0: 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 END;....END;...E
0000B0: 4E 44 20 4C 6F 61 64 4D 61 63 72 6F 73 3B 09 09 ND LoadMacros;..
0000C0: 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 74 6F ...PROCEDURE Sto
0000D0: 72 65 4D 61 63 72 6F 73 3B 0D 0A 56 41 52 09 42 reMacros;..VAR.B
0000E0: 6C 6F 63 6B 3A 41 52 52 41 59 5B 30 2E 2E 42 6C lock:ARRAY[0..Bl
0000F0: 6F 63 6B 4C 65 6E 2D 31 5D 20 4F 46 20 43 48 41 ockLen-1] OF CHA
000100: 52 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 R;....PROCEDURE
000110: 53 74 6F 72 65 4F 6E 65 4D 61 63 72 6F 28 70 3A StoreOneMacro(p:
000120: 50 4B 65 79 44 65 66 29 3B 0D 0A 42 45 47 49 4E PKeyDef);..BEGIN
000130: 0D 0A 09 49 46 20 70 3C 3E 4E 49 4C 20 54 48 45 ...IF p<>NIL THE
000140: 4E 0D 0A 09 09 57 49 54 48 20 70 5E 20 44 4F 0D N....WITH p^ DO.
000150: 0A 09 09 09 49 46 20 28 72 65 70 6C 79 2B 4C 65 ....IF (reply+Le
000160: 6E 67 74 68 2B 31 34 29 3E 3D 42 6C 6F 63 6B 4C ngth+14)>=BlockL
000170: 65 6E 20 54 48 45 4E 0D 0A 09 09 09 09 42 6C 6F en THEN......Blo
000180: 63 6B 5B 72 65 70 6C 79 5D 3A 3D 30 78 3B 0D 0A ck[reply]:=0x;..
000190: 09 09 09 09 53 65 71 57 72 69 74 65 42 6C 6F 63 ....SeqWriteBloc
0001A0: 6B 28 46 2C 41 44 52 28 42 6C 6F 63 6B 29 2C 42 k(F,ADR(Block),B
0001B0: 6C 6F 63 6B 4C 65 6E 2C 72 65 70 6C 79 29 3B 0D lockLen,reply);.
0001C0: 0A 09 09 09 09 72 65 70 6C 79 3A 3D 30 3B 0D 0A .....reply:=0;..
0001D0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 42 6C 6F ....END;.....Blo
0001E0: 63 6B 5B 72 65 70 6C 79 5D 3A 3D 43 48 52 28 4C ck[reply]:=CHR(L
0001F0: 65 6E 67 74 68 29 3B 0D 0A 09 09 09 42 6C 6F 63 ength);.....Bloc
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 4D 61 6B 65 45 64 69 74 73 3B 0D 0A 0D 0A E MakeEdits;....
000020: 0D 0A 28 2A 09 52 6F 75 74 69 6E 65 73 20 74 6F ..(*.Routines to
000030: 20 65 64 69 74 20 61 20 66 69 6C 65 0D 0A 0D 0A edit a file....
000040: 09 28 69 2E 65 2E 2C 20 61 63 74 75 61 6C 6C 79 .(i.e., actually
000050: 20 6D 61 6B 65 20 63 68 61 6E 67 65 73 20 74 6F make changes to
000060: 20 74 68 65 20 66 69 6C 65 29 0D 0A 0D 0A 09 44 the file).....D
000070: 20 4D 6F 6F 72 65 20 31 31 20 4A 61 6E 20 38 35 Moore 11 Jan 85
000080: 2A 29 0D 0A 0D 0A 46 52 4F 4D 20 46 69 6C 65 73 *)....FROM Files
000090: 20 49 4D 50 4F 52 54 20 46 69 6C 65 4E 61 6D 65 IMPORT FileName
0000A0: 3B 0D 0A 0D 0A 54 59 50 45 09 45 64 69 74 46 69 ;....TYPE.EditFi
0000B0: 6C 65 3B 0D 0A 09 50 6F 73 69 74 69 6F 6E 3B 0D le;...Position;.
0000C0: 0A 09 0D 0A 09 45 72 72 6F 72 52 65 63 6F 72 64 .....ErrorRecord
0000D0: 3D 52 45 43 4F 52 44 0D 0A 09 09 45 72 72 6F 72 =RECORD....Error
0000E0: 4E 75 6D 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 Num:CARDINAL;...
0000F0: 09 43 68 61 72 50 3A 43 41 52 44 49 4E 41 4C 3B .CharP:CARDINAL;
000100: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 72 72 6F 72 ....END;...Error
000110: 41 72 72 61 79 3D 41 52 52 41 59 5B 30 2E 2E 39 Array=ARRAY[0..9
000120: 5D 20 4F 46 20 45 72 72 6F 72 52 65 63 6F 72 64 ] OF ErrorRecord
000130: 3B 0D 0A 56 41 52 09 45 72 72 6F 72 4C 69 73 74 ;..VAR.ErrorList
000140: 3A 45 72 72 6F 72 41 72 72 61 79 3B 0D 0A 09 45 :ErrorArray;...E
000150: 72 72 6F 72 43 6F 75 6E 74 3A 43 41 52 44 49 4E rrorCount:CARDIN
000160: 41 4C 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 AL;....PROCEDURE
000170: 20 4F 70 65 6E 46 69 6C 65 28 56 41 52 20 66 3A OpenFile(VAR f:
000180: 45 64 69 74 46 69 6C 65 3B 66 6E 3A 46 69 6C 65 EditFile;fn:File
000190: 4E 61 6D 65 3B 56 41 52 20 72 65 70 6C 79 3A 49 Name;VAR reply:I
0001A0: 4E 54 45 47 45 52 3B 50 6F 73 3A 43 41 52 44 49 NTEGER;Pos:CARDI
0001B0: 4E 41 4C 29 3B 0D 0A 0D 0A 28 2A 09 4C 6F 61 64 NAL);....(*.Load
0001C0: 20 74 68 65 20 66 69 6C 65 20 69 6E 74 6F 20 6D the file into m
0001D0: 65 6D 6F 72 79 0D 0A 0D 0A 09 49 66 20 69 6E 73 emory.....If ins
0001E0: 75 66 66 69 63 69 65 6E 74 20 6D 65 6D 6F 72 79 ufficient memory
0001F0: 2C 20 72 65 74 75 72 6E 73 20 72 65 70 6C 79 3D , returns reply=
Size : 512 (Real : 512)
000000: 6B 5B 72 65 70 6C 79 2B 31 5D 3A 3D 4C 65 61 72 k[reply+1]:=Lear
000010: 6E 63 68 3B 0D 0A 09 09 09 49 46 20 4C 65 61 72 nch;.....IF Lear
000020: 6E 63 68 3D 45 53 43 20 54 48 45 4E 0D 0A 09 09 nch=ESC THEN....
000030: 09 09 4D 6F 76 65 75 70 28 41 44 52 28 4B 65 79 ..Moveup(ADR(Key
000040: 53 65 71 29 2C 41 44 52 28 42 6C 6F 63 6B 5B 72 Seq),ADR(Block[r
000050: 65 70 6C 79 2B 32 5D 29 2C 31 30 29 3B 0D 0A 09 eply+2]),10);...
000060: 09 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B ...reply:=reply+
000070: 31 30 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 10;......END;...
000080: 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B 32 ..reply:=reply+2
000090: 3B 0D 0A 09 09 09 46 4F 52 20 69 3A 3D 31 20 54 ;.....FOR i:=1 T
0000A0: 4F 20 4C 65 6E 67 74 68 20 44 4F 0D 0A 09 09 09 O Length DO.....
0000B0: 09 42 6C 6F 63 6B 5B 72 65 70 6C 79 5D 3A 3D 43 .Block[reply]:=C
0000C0: 6F 6D 6D 43 68 61 72 73 5B 69 5D 3B 0D 0A 09 09 ommChars[i];....
0000D0: 09 09 49 4E 43 28 72 65 70 6C 79 29 3B 0D 0A 09 ..INC(reply);...
0000E0: 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B ...END;.....END;
0000F0: 28 2A 57 49 54 48 20 70 5E 2A 29 0D 0A 09 09 45 (*WITH p^*)....E
000100: 4E 44 20 28 2A 49 46 20 3C 3E 4E 49 4C 2A 29 0D ND (*IF <>NIL*).
000110: 0A 09 45 4E 44 20 53 74 6F 72 65 4F 6E 65 4D 61 ..END StoreOneMa
000120: 63 72 6F 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 cro;..PROCEDURE
000130: 4F 75 74 4B 65 79 53 65 71 28 43 68 61 72 4E 6F OutKeySeq(CharNo
000140: 3A 43 41 52 44 49 4E 41 4C 3B 70 3A 50 4B 65 79 :CARDINAL;p:PKey
000150: 43 68 61 69 6E 29 3B 0D 0A 42 45 47 49 4E 0D 0A Chain);..BEGIN..
000160: 09 49 46 20 70 3C 3E 4E 49 4C 20 54 48 45 4E 0D .IF p<>NIL THEN.
000170: 0A 09 09 57 49 54 48 20 70 5E 20 44 4F 0D 0A 09 ...WITH p^ DO...
000180: 09 09 4B 65 79 53 65 71 5B 43 68 61 72 4E 6F 5D ..KeySeq[CharNo]
000190: 3A 3D 63 68 3B 0D 0A 09 09 09 49 46 20 54 65 72 :=ch;.....IF Ter
0001A0: 6D 69 6E 61 74 6F 72 20 54 48 45 4E 0D 0A 09 09 minator THEN....
0001B0: 09 09 53 74 6F 72 65 4F 6E 65 4D 61 63 72 6F 28 ..StoreOneMacro(
0001C0: 44 65 66 29 3B 0D 0A 09 09 09 45 4C 53 45 0D 0A Def);.....ELSE..
0001D0: 09 09 09 09 4F 75 74 4B 65 79 53 65 71 28 43 68 ....OutKeySeq(Ch
0001E0: 61 72 4E 6F 2B 31 2C 4E 65 78 74 43 68 61 72 29 arNo+1,NextChar)
0001F0: 3B 0D 0A 09 09 09 09 4B 65 79 53 65 71 5B 43 68 ;......KeySeq[Ch
Size : 512 (Real : 512)
000000: 2D 33 0D 0A 09 69 66 20 66 69 6C 65 20 6E 6F 74 -3...if file not
000010: 20 66 6F 75 6E 64 2C 20 72 65 74 75 72 6E 73 20 found, returns
000020: 72 65 70 6C 79 3D 2D 32 0D 0A 09 72 65 70 6C 79 reply=-2...reply
000030: 3E 30 20 69 66 20 6F 6B 2C 20 72 65 74 75 72 6E >0 if ok, return
000040: 73 20 62 6C 6F 63 6B 73 20 72 65 61 64 2A 29 0D s blocks read*).
000050: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 6C 6F ...PROCEDURE Clo
000060: 73 65 46 69 6C 65 28 56 41 52 20 66 3A 45 64 69 seFile(VAR f:Edi
000070: 74 46 69 6C 65 3B 56 41 52 20 72 65 70 6C 79 3A tFile;VAR reply:
000080: 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A 09 INTEGER);....(*.
000090: 57 72 69 74 65 20 6F 75 74 20 63 68 61 6E 67 65 Write out change
0000A0: 73 20 74 6F 20 61 6E 20 65 64 69 74 20 66 69 6C s to an edit fil
0000B0: 65 20 61 6E 64 20 63 6C 6F 73 65 20 69 74 0D 0A e and close it..
0000C0: 09 44 6F 6E 65 20 72 65 74 75 72 6E 73 20 66 61 .Done returns fa
0000D0: 6C 73 65 20 69 66 20 6F 75 74 20 6F 66 20 64 69 lse if out of di
0000E0: 73 63 20 73 70 61 63 65 2A 29 0D 0A 0D 0A 50 52 sc space*)....PR
0000F0: 4F 43 45 44 55 52 45 20 41 62 61 6E 64 6F 6E 46 OCEDURE AbandonF
000100: 69 6C 65 28 66 3A 45 64 69 74 46 69 6C 65 29 3B ile(f:EditFile);
000110: 0D 0A 0D 0A 28 2A 09 41 62 61 6E 64 6F 6E 20 63 ....(*.Abandon c
000120: 68 61 6E 67 65 73 20 74 6F 20 61 6E 20 65 64 69 hanges to an edi
000130: 74 20 66 69 6C 65 2A 29 0D 0A 50 52 4F 43 45 44 t file*)..PROCED
000140: 55 52 45 20 47 65 74 50 6F 73 69 74 69 6F 6E 28 URE GetPosition(
000150: 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 56 VAR f:EditFile;V
000160: 41 52 20 70 3A 50 6F 73 69 74 69 6F 6E 29 3B 0D AR p:Position);.
000170: 0A 50 52 4F 43 45 44 55 52 45 20 53 65 74 50 6F .PROCEDURE SetPo
000180: 73 69 74 69 6F 6E 28 56 41 52 20 66 3A 45 64 69 sition(VAR f:Edi
000190: 74 46 69 6C 65 3B 70 3A 50 6F 73 69 74 69 6F 6E tFile;p:Position
0001A0: 29 3B 0D 0A 28 2A 09 67 65 74 2F 73 65 74 20 70 );..(*.get/set p
0001B0: 6F 73 69 74 69 6F 6E 20 69 6E 20 61 20 66 69 6C osition in a fil
0001C0: 65 0D 0A 09 47 65 74 50 6F 73 69 74 69 6F 6E 20 e...GetPosition
0001D0: 72 65 74 75 72 6E 73 20 74 68 65 20 63 75 72 65 returns the cure
0001E0: 6E 74 20 70 6F 73 69 74 69 6F 6E 0D 0A 09 44 65 nt position...De
0001F0: 66 69 6E 65 4C 61 62 65 6C 20 64 65 66 69 6E 65 fineLabel define
Size : 512 (Real : 512)
000000: 61 72 4E 6F 2B 31 5D 3A 3D 27 20 27 3B 0D 0A 09 arNo+1]:=' ';...
000010: 09 09 09 45 4E 44 3B 0D 0A 09 09 09 4F 75 74 4B ...END;.....OutK
000020: 65 79 53 65 71 28 43 68 61 72 4E 6F 2C 4E 65 78 eySeq(CharNo,Nex
000030: 74 41 6C 74 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D tAlt);.....END;.
000040: 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 4F 75 ...END;...END Ou
000050: 74 4B 65 79 53 65 71 3B 0D 0A 42 45 47 49 4E 0D tKeySeq;..BEGIN.
000060: 0A 09 4C 65 61 72 6E 63 68 3A 3D 27 41 27 3B 0D ..Learnch:='A';.
000070: 0A 09 57 48 49 4C 45 20 28 43 6F 6D 6D 61 6E 64 ..WHILE (Command
000080: 73 5B 4C 65 61 72 6E 63 68 5D 3D 4E 49 4C 29 20 s[Learnch]=NIL)
000090: 41 4E 44 20 28 4C 65 61 72 6E 63 68 3C 3D 27 5A AND (Learnch<='Z
0000A0: 27 29 20 44 4F 20 0D 0A 09 09 4C 65 61 72 6E 63 ') DO ....Learnc
0000B0: 68 3A 3D 43 48 52 28 4F 52 44 28 4C 65 61 72 6E h:=CHR(ORD(Learn
0000C0: 63 68 29 2B 31 29 3B 0D 0A 09 09 45 4E 44 3B 0D ch)+1);....END;.
0000D0: 0A 09 49 46 20 4C 65 61 72 6E 63 68 3E 27 5A 27 ..IF Learnch>'Z'
0000E0: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 THEN RETURN END
0000F0: 3B 0D 0A 09 43 72 65 61 74 65 28 46 2C 27 4D 41 ;...Create(F,'MA
000100: 43 52 4F 53 2E 44 41 54 20 27 2C 72 65 70 6C 79 CROS.DAT ',reply
000110: 29 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3C 3E 30 );...IF reply<>0
000120: 20 54 48 45 4E 0D 0A 09 09 57 72 69 74 65 53 74 THEN....WriteSt
000130: 72 69 6E 67 28 27 20 63 6F 75 6C 64 20 6E 6F 74 ring(' could not
000140: 20 73 61 76 65 20 6D 61 63 72 6F 73 20 66 69 6C save macros fil
000150: 65 27 29 3B 0D 0A 09 09 57 72 69 74 65 4C 6E 3B e');....WriteLn;
000160: 0D 0A 09 09 52 45 54 55 52 4E 0D 0A 09 09 45 4E ....RETURN....EN
000170: 44 3B 0D 0A 09 49 46 20 72 65 70 6C 79 3C 3E 30 D;...IF reply<>0
000180: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 THEN RETURN END
000190: 3B 0D 0A 09 72 65 70 6C 79 3A 3D 30 3B 0D 0A 09 ;...reply:=0;...
0001A0: 46 4F 52 20 4C 65 61 72 6E 63 68 3A 3D 27 41 27 FOR Learnch:='A'
0001B0: 20 54 4F 20 27 5A 27 20 44 4F 20 53 74 6F 72 65 TO 'Z' DO Store
0001C0: 4F 6E 65 4D 61 63 72 6F 28 43 6F 6D 6D 61 6E 64 OneMacro(Command
0001D0: 73 5B 4C 65 61 72 6E 63 68 5D 29 20 45 4E 44 3B s[Learnch]) END;
0001E0: 0D 0A 0D 0A 09 28 2A 4E 6F 77 20 6F 75 74 70 75 .....(*Now outpu
0001F0: 74 20 6B 65 79 20 73 65 71 75 65 6E 63 65 73 2A t key sequences*
Size : 512 (Real : 512)
000000: 73 20 61 20 6C 61 62 65 6C 0D 0A 09 54 68 69 73 s a label...This
000010: 20 6C 61 62 65 6C 20 6D 75 73 74 20 6E 6F 74 20 label must not
000020: 62 65 20 61 6C 74 65 72 65 64 20 75 6E 6C 65 73 be altered unles
000030: 73 20 69 74 20 69 73 20 64 65 6C 65 74 65 64 0D s it is deleted.
000040: 0A 09 77 69 74 68 20 44 65 6C 50 6F 73 69 74 69 ..with DelPositi
000050: 6F 6E 20 66 69 72 73 74 2A 29 0D 0A 0D 0A 50 52 on first*)....PR
000060: 4F 43 45 44 55 52 45 20 4C 61 62 65 6C 4F 70 28 OCEDURE LabelOp(
000070: 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 44 VAR f:EditFile;D
000080: 65 66 69 6E 65 3A 42 4F 4F 4C 45 41 4E 3B 63 68 efine:BOOLEAN;ch
000090: 3A 43 48 41 52 29 3A 42 4F 4F 4C 45 41 4E 3B 0D :CHAR):BOOLEAN;.
0000A0: 0A 0D 0A 28 2A 09 44 65 66 69 6E 65 20 6F 72 20 ...(*.Define or
0000B0: 73 65 74 20 61 20 6C 61 62 65 6C 0D 0A 09 63 68 set a label...ch
0000C0: 20 69 73 20 61 20 63 68 61 72 61 63 74 65 72 20 is a character
0000D0: 66 72 6F 6D 20 74 68 65 20 73 65 74 20 30 2E 2E from the set 0..
0000E0: 39 2C 42 2C 4B 0D 0A 2A 29 0D 0A 0D 0A 50 52 4F 9,B,K..*)....PRO
0000F0: 43 45 44 55 52 45 20 44 65 6C 43 68 61 72 73 28 CEDURE DelChars(
000100: 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 6E VAR f:EditFile;n
000110: 75 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 3B 0D umber:INTEGER);.
000120: 0A 0D 0A 28 2A 09 64 65 6C 65 74 65 20 61 20 6E ...(*.delete a n
000130: 75 6D 62 65 72 20 6F 66 20 63 68 61 72 61 63 74 umber of charact
000140: 65 72 73 0D 0A 09 69 66 20 6E 75 6D 62 65 72 20 ers...if number
000150: 69 73 20 3C 30 2C 20 69 74 20 68 61 73 20 74 68 is <0, it has th
000160: 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 6D 65 61 6E e following mean
000170: 69 6E 67 73 3A 0D 0A 09 2D 31 20 64 65 6C 65 74 ings:...-1 delet
000180: 65 20 74 6F 20 65 6E 64 20 6F 66 20 6C 69 6E 65 e to end of line
000190: 0D 0A 09 2D 32 20 64 65 6C 65 74 65 20 65 6E 74 ...-2 delete ent
0001A0: 69 72 65 20 6C 69 6E 65 0D 0A 09 2D 33 20 64 65 ire line...-3 de
0001B0: 6C 65 74 65 20 72 65 6D 61 69 6E 64 65 72 20 6F lete remainder o
0001C0: 66 20 66 69 6C 65 2A 29 0D 0A 50 52 4F 43 45 44 f file*)..PROCED
0001D0: 55 52 45 20 49 6E 73 43 68 61 72 73 28 56 41 52 URE InsChars(VAR
0001E0: 20 66 3A 45 64 69 74 46 69 6C 65 3B 56 41 52 20 f:EditFile;VAR
0001F0: 53 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 3B S:ARRAY OF CHAR;
Size : 512 (Real : 512)
000000: 29 0D 0A 0D 0A 09 4C 65 61 72 6E 63 68 3A 3D 45 ).....Learnch:=E
000010: 53 43 3B 0D 0A 09 4B 65 79 53 65 71 3A 3D 27 20 SC;...KeySeq:='
000020: 20 20 20 20 20 20 20 20 20 27 3B 0D 0A 09 4F 75 ';...Ou
000030: 74 4B 65 79 53 65 71 28 31 2C 4B 65 79 43 68 61 tKeySeq(1,KeyCha
000040: 69 6E 42 61 73 65 29 3B 0D 0A 09 0D 0A 09 49 46 inBase);......IF
000050: 20 72 65 70 6C 79 3C 3E 30 20 54 48 45 4E 0D 0A reply<>0 THEN..
000060: 09 09 42 6C 6F 63 6B 5B 72 65 70 6C 79 5D 3A 3D ..Block[reply]:=
000070: 30 78 3B 0D 0A 09 09 53 65 71 57 72 69 74 65 42 0x;....SeqWriteB
000080: 6C 6F 63 6B 28 46 2C 41 44 52 28 42 6C 6F 63 6B lock(F,ADR(Block
000090: 29 2C 42 6C 6F 63 6B 4C 65 6E 2C 72 65 70 6C 79 ),BlockLen,reply
0000A0: 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 43 6C 6F );....END;...Clo
0000B0: 73 65 28 46 29 3B 0D 0A 09 45 4E 44 20 53 74 6F se(F);...END Sto
0000C0: 72 65 4D 61 63 72 6F 73 3B 0D 0A 50 52 4F 43 45 reMacros;..PROCE
0000D0: 44 55 52 45 20 4F 75 74 43 68 28 63 68 3A 43 48 DURE OutCh(ch:CH
0000E0: 41 52 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 AR);..BEGIN...IF
0000F0: 20 63 68 3C 27 20 27 20 54 48 45 4E 0D 0A 09 09 ch<' ' THEN....
000100: 57 72 69 74 65 28 27 5E 27 29 3B 57 72 69 74 65 Write('^');Write
000110: 28 43 48 52 28 4F 52 44 28 63 68 29 2B 36 34 29 (CHR(ORD(ch)+64)
000120: 29 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 57 72 69 );...ELSE....Wri
000130: 74 65 28 63 68 29 3B 0D 0A 09 09 45 4E 44 3B 0D te(ch);....END;.
000140: 0A 09 45 4E 44 20 4F 75 74 43 68 3B 0D 0A 50 52 ..END OutCh;..PR
000150: 4F 43 45 44 55 52 45 20 50 72 69 6E 74 4D 61 63 OCEDURE PrintMac
000160: 72 6F 73 3B 0D 0A 42 45 47 49 4E 0D 0A 09 46 4F ros;..BEGIN...FO
000170: 52 20 63 68 3A 3D 27 41 27 20 54 4F 20 27 5A 27 R ch:='A' TO 'Z'
000180: 20 44 4F 0D 0A 09 09 49 46 20 43 6F 6D 6D 61 6E DO....IF Comman
000190: 64 73 5B 63 68 5D 3C 3E 4E 49 4C 20 54 48 45 4E ds[ch]<>NIL THEN
0001A0: 20 0D 0A 09 09 20 20 20 20 57 49 54 48 20 43 6F .... WITH Co
0001B0: 6D 6D 61 6E 64 73 5B 63 68 5D 5E 20 44 4F 0D 0A mmands[ch]^ DO..
0001C0: 09 09 09 4F 75 74 43 68 28 63 68 29 3B 0D 0A 09 ...OutCh(ch);...
0001D0: 09 09 46 4F 52 20 69 3A 3D 31 20 54 4F 20 4C 65 ..FOR i:=1 TO Le
0001E0: 6E 67 74 68 20 44 4F 20 0D 0A 09 09 09 09 4F 75 ngth DO ......Ou
0001F0: 74 43 68 28 43 6F 6D 6D 43 68 61 72 73 5B 69 5D tCh(CommChars[i]
Size : 512 (Real : 512)
000000: 6C 65 6E 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 28 len:INTEGER);..(
000010: 2A 09 69 6E 73 65 72 74 20 63 68 61 72 61 63 74 *.insert charact
000020: 65 72 73 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 ers*)....PROCEDU
000030: 52 45 20 52 65 74 72 6C 69 6E 65 28 56 41 52 20 RE Retrline(VAR
000040: 66 3A 45 64 69 74 46 69 6C 65 3B 56 41 52 20 6C f:EditFile;VAR l
000050: 65 6E 2C 70 6F 73 3A 49 4E 54 45 47 45 52 3B 0D en,pos:INTEGER;.
000060: 0A 09 09 56 41 52 20 70 3A 50 6F 73 69 74 69 6F ...VAR p:Positio
000070: 6E 3B 56 41 52 20 4C 69 6E 65 73 6D 6F 76 65 64 n;VAR Linesmoved
000080: 3A 49 4E 54 45 47 45 52 3B 4C 69 6E 65 73 3A 49 :INTEGER;Lines:I
000090: 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A 09 72 NTEGER);....(*.r
0000A0: 65 74 75 72 6E 20 69 6E 66 6F 72 6D 61 74 69 6F eturn informatio
0000B0: 6E 20 61 62 6F 75 74 20 61 20 6C 69 6E 65 20 66 n about a line f
0000C0: 6F 72 20 74 68 65 20 67 69 76 65 6E 20 66 69 6C or the given fil
0000D0: 65 0D 0A 0D 0A 09 6C 65 6E 20 72 65 74 75 72 6E e.....len return
0000E0: 73 20 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 s the length of
0000F0: 74 68 65 20 6C 69 6E 65 0D 0A 09 70 6F 73 20 72 the line...pos r
000100: 65 74 75 72 6E 73 20 63 75 72 72 65 6E 74 20 70 eturns current p
000110: 6F 73 69 74 69 6F 6E 20 69 6E 20 74 68 65 20 6C osition in the l
000120: 69 6E 65 20 28 63 68 61 72 61 63 74 65 72 20 6E ine (character n
000130: 75 6D 62 65 72 29 0D 0A 09 70 20 20 20 72 65 74 umber)...p ret
000140: 75 72 6E 73 20 70 6F 73 69 74 69 6F 6E 20 6F 66 urns position of
000150: 20 73 74 61 72 74 20 6F 66 20 6C 69 6E 65 0D 0A start of line..
000160: 09 4C 69 6E 65 73 6D 6F 76 65 64 20 72 65 74 75 .Linesmoved retu
000170: 72 6E 73 20 6E 75 6D 62 65 72 20 6F 66 20 6C 69 rns number of li
000180: 6E 65 73 20 61 63 74 75 61 6C 6C 79 20 6D 6F 76 nes actually mov
000190: 65 64 20 2D 20 62 75 74 20 6F 6E 6C 79 0D 0A 09 ed - but only...
0001A0: 09 69 66 20 6D 6F 76 65 20 77 61 73 20 6E 65 67 .if move was neg
0001B0: 61 74 69 76 65 2E 20 52 65 74 75 72 6E 73 20 6E ative. Returns n
0001C0: 65 67 61 74 69 76 65 20 76 61 6C 75 65 0D 0A 09 egative value...
0001D0: 6C 69 6E 65 73 20 28 69 6E 70 75 74 29 20 69 73 lines (input) is
0001E0: 20 6E 75 6D 62 65 72 20 6F 66 20 6C 69 6E 65 73 number of lines
0001F0: 20 74 6F 20 6D 6F 76 65 20 66 72 6F 6D 20 63 75 to move from cu
Size : 512 (Real : 512)
000000: 29 20 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ) ......END;....
000010: 09 45 4E 44 3B 0D 0A 09 09 20 20 20 20 57 72 69 .END;.... Wri
000020: 74 65 4C 6E 3B 0D 0A 09 09 20 20 20 20 45 4E 44 teLn;.... END
000030: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 57 72 69 74 ;....END;...Writ
000040: 65 53 74 72 69 6E 67 28 27 20 45 6E 74 65 72 20 eString(' Enter
000050: 61 6E 79 20 63 68 61 72 61 63 74 65 72 20 74 6F any character to
000060: 20 63 6F 6E 74 69 6E 75 65 20 3A 27 29 3B 0D 0A continue :');..
000070: 09 57 61 69 74 46 6F 72 43 68 3B 0D 0A 09 45 4E .WaitForCh;...EN
000080: 44 20 50 72 69 6E 74 4D 61 63 72 6F 73 3B 0D 0A D PrintMacros;..
000090: 42 45 47 49 4E 0D 0A 09 46 4F 52 20 63 68 3A 3D BEGIN...FOR ch:=
0000A0: 27 40 27 20 54 4F 20 27 5A 27 20 44 4F 20 43 6F '@' TO 'Z' DO Co
0000B0: 6D 6D 61 6E 64 73 5B 63 68 5D 3A 3D 4E 49 4C 20 mmands[ch]:=NIL
0000C0: 45 4E 44 3B 0D 0A 09 53 68 6F 77 43 68 61 6E 67 END;...ShowChang
0000D0: 65 3A 3D 54 52 55 45 3B 0D 0A 09 4C 6F 6F 6B 75 e:=TRUE;...Looku
0000E0: 70 28 46 2C 27 4D 41 43 52 4F 53 2E 44 41 54 20 p(F,'MACROS.DAT
0000F0: 27 2C 72 65 70 6C 79 29 3B 0D 0A 09 49 46 20 72 ',reply);...IF r
000100: 65 70 6C 79 3D 30 20 54 48 45 4E 0D 0A 09 09 4C eply=0 THEN....L
000110: 6F 61 64 4D 61 63 72 6F 73 3B 0D 0A 09 09 45 4E oadMacros;....EN
000120: 44 3B 0D 0A 09 09 0D 0A 09 45 4E 44 20 4D 61 63 D;.......END Mac
000130: 72 6F 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ros.............
000140: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000170: 1A 1A 1A 1A 1A 1A 1A 1A 29 3B 0D 0A 09 09 09 57 ........);.....W
000180: 30 32 78 5D 3A 3D 57 69 6E 64 6F 77 3B 09 09 28 02x]:=Window;..(
000190: 2A 43 74 72 6C 20 42 2A 29 0D 0A 09 4D 61 69 6E *Ctrl B*)...Main
0001A0: 54 61 62 6C 65 5B 31 37 78 5D 3A 3D 53 63 72 6F Table[17x]:=Scro
0001B0: 6C 6C 55 70 3B 09 28 2A 43 74 72 6C 20 57 2A 29 llUp;.(*Ctrl W*)
0001C0: 0D 0A 09 4D 61 69 6E 54 61 62 6C 65 5B 30 62 78 ...MainTable[0bx
0001D0: 5D 3A 3D 44 65 66 4C 61 62 65 6C 3B 09 28 2A 43 ]:=DefLabel;.(*C
0001E0: 74 72 6C 20 4B 2A 29 0D 0A 09 4D 61 69 6E 54 61 trl K*)...MainTa
0001F0: 62 6C 65 5B 37 66 78 5D 3A 3D 44 65 6C 42 61 63 ble[7fx]:=DelBac
Size : 512 (Real : 512)
000000: 72 72 65 6E 74 20 6C 69 6E 65 0D 0A 2A 29 0D 0A rrent line..*)..
000010: 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 52 65 61 ...PROCEDURE Rea
000020: 64 4E 65 78 74 43 68 61 72 28 56 41 52 20 70 3A dNextChar(VAR p:
000030: 50 6F 73 69 74 69 6F 6E 3B 56 41 52 20 63 68 3A Position;VAR ch:
000040: 43 48 41 52 29 3B 0D 0A 28 2A 09 52 65 61 64 20 CHAR);..(*.Read
000050: 6E 65 78 74 20 63 68 61 72 61 63 74 65 72 20 66 next character f
000060: 72 6F 6D 20 61 20 6C 69 6E 65 0D 0A 09 70 20 6D rom a line...p m
000070: 75 73 74 20 62 65 20 61 20 70 6F 73 69 74 69 6F ust be a positio
000080: 6E 20 72 65 74 75 72 6E 65 64 20 62 79 20 52 65 n returned by Re
000090: 74 72 6C 69 6E 65 20 6F 72 20 52 65 61 64 43 68 trline or ReadCh
0000A0: 20 2D 20 6E 6F 74 20 47 65 74 50 6F 73 69 74 69 - not GetPositi
0000B0: 6F 6E 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 on*)....PROCEDUR
0000C0: 45 20 50 72 65 70 61 72 65 53 74 72 69 6E 67 28 E PrepareString(
0000D0: 73 3A 41 52 52 41 59 20 4F 46 20 43 48 41 52 3B s:ARRAY OF CHAR;
0000E0: 6C 65 6E 3A 49 4E 54 45 47 45 52 29 3B 0D 0A 0D len:INTEGER);...
0000F0: 0A 28 2A 09 70 72 65 70 61 72 65 20 61 20 73 74 .(*.prepare a st
000100: 72 69 6E 67 20 66 6F 72 20 75 73 65 20 69 6E 20 ring for use in
000110: 61 20 66 69 6E 64 20 63 6F 6D 6D 61 6E 64 2A 29 a find command*)
000120: 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 61 ....PROCEDURE Ba
000130: 63 6B 4F 6E 65 43 68 61 72 28 56 41 52 20 66 3A ckOneChar(VAR f:
000140: 45 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 EditFile):BOOLEA
000150: 4E 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 6F N;..PROCEDURE Fo
000160: 72 77 61 72 64 4F 6E 65 43 68 61 72 28 56 41 52 rwardOneChar(VAR
000170: 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 42 4F 4F f:EditFile):BOO
000180: 4C 45 41 4E 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 LEAN;....PROCEDU
000190: 52 45 20 46 69 6E 64 53 74 72 69 6E 67 28 56 41 RE FindString(VA
0001A0: 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 42 61 63 R f:EditFile;Bac
0001B0: 6B 77 61 72 64 73 3A 42 4F 4F 4C 45 41 4E 29 3A kwards:BOOLEAN):
0001C0: 42 4F 4F 4C 45 41 4E 3B 0D 0A 0D 0A 28 2A 09 41 BOOLEAN;....(*.A
0001D0: 63 74 75 61 6C 6C 79 20 66 69 6E 64 20 74 68 65 ctually find the
0001E0: 20 6E 65 78 74 20 6F 63 63 75 72 72 65 6E 63 65 next occurrence
0001F0: 20 6F 66 20 74 68 65 20 73 74 72 69 6E 67 09 0D of the string..
Size : 512 (Real : 512)
000000: 6E 6E 69 6E 67 20 6F 66 20 63 75 72 72 65 6E 74 nning of current
000010: 20 6C 69 6E 65 0D 0A 09 09 6D 6F 76 65 20 72 65 line....move re
000020: 71 75 69 72 65 64 20 6E 75 6D 62 65 72 20 6F 66 quired number of
000030: 20 6C 69 6E 65 73 2A 29 0D 0A 0D 0A 09 20 20 20 lines*).....
000040: 20 49 46 20 6C 69 6E 65 73 74 6F 6D 6F 76 65 3C IF linestomove<
000050: 30 20 54 48 45 4E 0D 0A 09 09 57 48 49 4C 45 20 0 THEN....WHILE
000060: 09 28 6C 69 6E 65 73 74 6F 6D 6F 76 65 3C 30 29 .(linestomove<0)
000070: 0D 0A 09 09 20 20 20 20 20 41 4E 44 20 28 28 43 .... AND ((C
000080: 68 61 72 50 6F 73 3E 30 29 20 4F 52 20 28 57 6F harPos>0) OR (Wo
000090: 72 6B 69 6E 67 5E 2E 50 72 65 64 3C 3E 4E 49 4C rking^.Pred<>NIL
0000A0: 29 29 20 44 4F 0D 0A 09 09 09 49 4E 43 28 6C 69 )) DO.....INC(li
0000B0: 6E 65 73 74 6F 6D 6F 76 65 29 3B 0D 0A 0D 0A 09 nestomove);.....
0000C0: 09 09 28 2A 6D 6F 76 65 20 62 61 63 6B 20 6F 76 ..(*move back ov
0000D0: 65 72 20 63 72 2F 6C 66 2A 29 0D 0A 0D 0A 09 09 er cr/lf*)......
0000E0: 09 49 46 20 42 61 63 6B 75 70 28 29 20 41 4E 44 .IF Backup() AND
0000F0: 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 (Working^.Chars
000100: 5B 43 68 61 72 50 6F 73 5D 3D 4C 46 29 20 54 48 [CharPos]=LF) TH
000110: 45 4E 0D 0A 09 09 09 09 62 3A 3D 42 61 63 6B 75 EN......b:=Backu
000120: 70 28 29 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 p()......END;...
000130: 09 09 44 45 43 28 6C 69 6E 65 73 6D 6F 76 65 64 ..DEC(linesmoved
000140: 29 3B 0D 0A 09 09 09 6C 65 6E 3A 3D 42 61 63 6B );.....len:=Back
000150: 75 70 4C 69 6E 65 28 29 3B 0D 0A 09 09 09 45 4E upLine();.....EN
000160: 44 3B 0D 0A 09 20 20 20 20 45 4C 53 45 0D 0A 09 D;... ELSE...
000170: 09 57 48 49 4C 45 20 09 28 6C 69 6E 65 73 74 6F .WHILE .(linesto
000180: 6D 6F 76 65 3E 30 29 0D 0A 09 09 09 41 4E 44 20 move>0).....AND
000190: 28 20 20 28 43 68 61 72 50 6F 73 3C 49 4E 54 45 ( (CharPos<INTE
0001A0: 47 45 52 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F GER(Working^.Blo
0001B0: 63 6B 4C 65 6E 29 29 0D 0A 09 09 09 20 20 20 20 ckLen)).....
0001C0: 4F 52 20 28 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 OR (Working^.Nex
0001D0: 74 3C 3E 4E 49 4C 29 29 20 44 4F 20 0D 0A 0D 0A t<>NIL)) DO ....
0001E0: 09 09 09 44 45 43 28 6C 69 6E 65 73 74 6F 6D 6F ...DEC(linestomo
0001F0: 76 65 29 3B 0D 0A 09 09 09 6C 65 6E 3A 3D 41 64 ve);.....len:=Ad
Size : 512 (Real : 512)
000000: 0A 0D 0A 09 44 6F 6E 65 20 72 65 74 75 72 6E 73 ....Done returns
000010: 20 74 72 75 65 20 69 66 20 6F 6E 65 20 69 73 20 true if one is
000020: 66 6F 75 6E 64 2A 29 0D 0A 50 52 4F 43 45 44 55 found*)..PROCEDU
000030: 52 45 20 47 65 74 43 75 72 72 65 6E 74 43 68 61 RE GetCurrentCha
000040: 72 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 r(VAR f:EditFile
000050: 29 3A 43 48 41 52 3B 0D 0A 0D 0A 28 2A 09 52 65 ):CHAR;....(*.Re
000060: 74 75 72 6E 20 63 68 61 72 61 63 74 65 72 20 63 turn character c
000070: 75 72 72 65 6E 74 6C 79 20 70 6F 73 69 74 69 6F urrently positio
000080: 6E 65 64 20 74 6F 2A 29 0D 0A 0D 0A 50 52 4F 43 ned to*)....PROC
000090: 45 44 55 52 45 20 43 61 6C 6C 57 69 74 68 46 69 EDURE CallWithFi
0000A0: 6C 65 28 6E 61 6D 65 3A 41 52 52 41 59 20 4F 46 le(name:ARRAY OF
0000B0: 20 43 48 41 52 3B 56 41 52 20 66 3A 45 64 69 74 CHAR;VAR f:Edit
0000C0: 46 69 6C 65 29 3B 0D 0A 50 52 4F 43 45 44 55 52 File);..PROCEDUR
0000D0: 45 20 46 69 6C 65 54 79 70 65 28 56 41 52 20 66 E FileType(VAR f
0000E0: 3A 45 64 69 74 46 69 6C 65 29 3A 43 41 52 44 49 :EditFile):CARDI
0000F0: 4E 41 4C 3B 0D 0A 0D 0A 28 2A 09 43 61 6C 6C 20 NAL;....(*.Call
000100: 70 72 6F 67 72 61 6D 20 77 69 74 68 20 66 69 6C program with fil
000110: 65 20 61 73 20 70 61 72 61 6D 65 74 65 72 2A 29 e as parameter*)
000120: 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 6C 6F 63 ..PROCEDURE Bloc
000130: 6B 43 6F 70 79 28 56 41 52 20 46 72 6F 6D 46 69 kCopy(VAR FromFi
000140: 6C 65 2C 54 6F 46 69 6C 65 3A 45 64 69 74 46 69 le,ToFile:EditFi
000150: 6C 65 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 50 52 le):BOOLEAN;..PR
000160: 4F 43 45 44 55 52 45 20 42 6C 6F 63 6B 44 65 6C OCEDURE BlockDel
000170: 28 56 41 52 20 46 72 6F 6D 46 69 6C 65 3A 45 64 (VAR FromFile:Ed
000180: 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 4E 3B itFile):BOOLEAN;
000190: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 66 69 ..PROCEDURE Defi
0001A0: 6E 65 45 72 72 6F 72 73 28 56 41 52 20 66 3A 45 neErrors(VAR f:E
0001B0: 64 69 74 46 69 6C 65 29 3B 0D 0A 45 4E 44 20 4D ditFile);..END M
0001C0: 61 6B 65 45 64 69 74 73 2E 0D 0A 0D 0A 0D 0A 09 akeEdits........
0001D0: 0D 0A 0D 0A 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
Size : 512 (Real : 512)
000000: 76 61 6E 63 65 4C 69 6E 65 28 29 3B 0D 0A 09 09 vanceLine();....
000010: 09 49 46 20 41 64 76 61 6E 63 65 4F 4B 20 54 48 .IF AdvanceOK TH
000020: 45 4E 20 49 4E 43 28 6C 69 6E 65 73 6D 6F 76 65 EN INC(linesmove
000030: 64 29 20 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B d) END;.....END;
000040: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 20 20 20 20 45 ....END;... E
000050: 4E 44 3B 0D 0A 09 73 61 76 65 63 75 72 70 6F 73 ND;...savecurpos
000060: 28 66 29 3B 70 3A 3D 66 2E 43 75 72 50 6F 73 3B (f);p:=f.CurPos;
000070: 0D 0A 09 49 46 20 57 6F 72 6B 69 6E 67 5E 2E 43 ...IF Working^.C
000080: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3D 45 4F hars[CharPos]=EO
000090: 46 20 54 48 45 4E 0D 0A 0D 0A 09 09 28 2A 49 46 F THEN......(*IF
0000A0: 20 77 65 20 61 72 65 20 61 74 20 65 6E 64 20 6F we are at end o
0000B0: 66 20 66 69 6C 65 2C 20 72 65 70 6F 73 69 74 69 f file, repositi
0000C0: 6F 6E 20 74 6F 20 73 74 61 72 74 0D 0A 09 09 20 on to start....
0000D0: 20 6F 66 20 63 75 72 72 65 6E 74 20 6C 69 6E 65 of current line
0000E0: 20 61 73 20 52 65 74 72 6C 69 6E 65 20 61 6C 77 as Retrline alw
0000F0: 61 79 73 20 72 65 74 75 72 6E 73 0D 0A 09 09 20 ays returns....
000100: 20 70 6F 73 69 74 69 6F 6E 20 61 73 20 61 74 20 position as at
000110: 73 74 61 72 74 20 6F 66 20 6C 69 6E 65 2A 29 0D start of line*).
000120: 0A 0D 0A 09 09 6C 65 6E 3A 3D 42 61 63 6B 75 70 .....len:=Backup
000130: 4C 69 6E 65 28 29 3B 0D 0A 09 09 73 61 76 65 63 Line();....savec
000140: 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 70 3A 3D urpos(f);....p:=
000150: 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 09 70 6F 73 f.CurPos;....pos
000160: 3A 3D 6C 65 6E 0D 0A 09 45 4C 53 45 0D 0A 09 09 :=len...ELSE....
000170: 6C 65 6E 3A 3D 41 64 76 61 6E 63 65 4C 69 6E 65 len:=AdvanceLine
000180: 28 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 66 2E ();....END;...f.
000190: 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 45 4E 44 CurPos:=p;...END
0001A0: 20 52 65 74 72 6C 69 6E 65 3B 0D 0A 50 52 4F 43 Retrline;..PROC
0001B0: 45 44 55 52 45 20 52 65 61 64 4E 65 78 74 43 68 EDURE ReadNextCh
0001C0: 61 72 28 56 41 52 20 70 3A 50 6F 73 69 74 69 6F ar(VAR p:Positio
0001D0: 6E 3B 56 41 52 20 63 68 3A 43 48 41 52 29 3B 0D n;VAR ch:CHAR);.
0001E0: 0A 42 45 47 49 4E 0D 0A 09 57 49 54 48 20 70 20 .BEGIN...WITH p
0001F0: 44 4F 0D 0A 09 09 49 46 20 4F 66 66 73 65 74 3E DO....IF Offset>
Size : 512 (Real : 512)
000000: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000010: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000020: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000030: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000040: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 28 1A DE 20 ............(..
000050: 2F 1A 2B 1A E1 20 2C 1A 2D 1A FF FF 04 21 73 1A /.+.. ,.-....!s.
000060: FF FF FF FF FF FF 07 1F FF FF 36 1A 37 1A 38 1A ..........6.7.8.
000070: FF FF FF FF 3B 1A FF FF 3D 1A FF FF FF FF FF FF ....;...=.......
000080: 63 68 0D 0A 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 ch..*)..BEGIN...
000090: 57 48 49 4C 45 20 28 4B 65 79 50 6F 73 3C 3E 4E WHILE (KeyPos<>N
0000A0: 49 4C 29 20 41 4E 44 20 28 4B 65 79 50 6F 73 5E IL) AND (KeyPos^
0000B0: 2E 63 68 3C 3E 63 68 29 20 44 4F 0D 0A 09 09 4B .ch<>ch) DO....K
0000C0: 65 79 50 6F 73 3A 3D 4B 65 79 50 6F 73 5E 2E 4E eyPos:=KeyPos^.N
0000D0: 65 78 74 41 6C 74 3B 0D 0A 09 09 45 4E 44 3B 0D extAlt;....END;.
0000E0: 0A 09 45 4E 44 20 53 65 61 72 63 68 54 6F 4E 65 ..END SearchToNe
0000F0: 78 74 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 42 xt;..PROCEDURE B
000100: 75 69 6C 64 4B 65 79 53 65 71 3B 0D 0A 0D 0A 28 uildKeySeq;....(
000110: 2A 09 45 6E 74 65 72 20 61 20 6B 65 79 20 73 65 *.Enter a key se
000120: 71 75 65 6E 63 65 20 69 6E 74 6F 20 74 68 65 20 quence into the
000130: 6B 65 79 20 73 65 71 75 65 6E 63 65 20 74 72 65 key sequence tre
000140: 65 0D 0A 0D 0A 09 4F 6E 20 65 6E 74 72 79 2C 20 e.....On entry,
000150: 4B 65 79 53 65 71 20 63 6F 6E 74 61 69 6E 73 20 KeySeq contains
000160: 73 65 71 75 65 6E 63 65 20 74 6F 20 62 75 69 6C sequence to buil
000170: 64 0D 0A 0D 0A 09 4F 6E 20 65 78 69 74 2C 20 4B d.....On exit, K
000180: 65 79 50 6F 73 20 70 6F 69 6E 74 73 20 74 6F 20 eyPos points to
000190: 65 6E 74 72 79 20 66 6F 72 20 6D 61 63 72 6F 20 entry for macro
0001A0: 70 6F 69 6E 74 65 72 2A 29 0D 0A 42 45 47 49 4E pointer*)..BEGIN
0001B0: 0D 0A 09 69 3A 3D 31 3B 0D 0A 09 4B 65 79 50 6F ...i:=1;...KeyPo
0001C0: 73 3A 3D 4B 65 79 43 68 61 69 6E 42 61 73 65 3B s:=KeyChainBase;
0001D0: 0D 0A 09 4C 61 73 74 4B 65 79 50 6F 73 3A 3D 4E ...LastKeyPos:=N
0001E0: 49 4C 3B 0D 0A 09 28 2A 20 46 69 72 73 74 20 73 IL;...(* First s
0001F0: 63 61 6E 20 64 6F 77 6E 20 63 6F 6D 6D 6F 6E 20 can down common
Size : 512 (Real : 512)
000000: 3D 42 6C 6F 63 6B 5E 2E 42 6C 6F 63 6B 4C 65 6E =Block^.BlockLen
000010: 20 54 48 45 4E 0D 0A 09 09 09 49 46 20 42 6C 6F THEN.....IF Blo
000020: 63 6B 5E 2E 4E 65 78 74 3D 4E 49 4C 20 54 48 45 ck^.Next=NIL THE
000030: 4E 0D 0A 09 09 09 09 63 68 3A 3D 45 4F 46 3B 0D N......ch:=EOF;.
000040: 0A 09 09 09 09 52 45 54 55 52 4E 0D 0A 09 09 09 .....RETURN.....
000050: 45 4C 53 45 0D 0A 09 09 09 09 42 6C 6F 63 6B 3A ELSE......Block:
000060: 3D 42 6C 6F 63 6B 5E 2E 4E 65 78 74 3B 0D 0A 09 =Block^.Next;...
000070: 09 09 09 4F 66 66 73 65 74 3A 3D 30 3B 0D 0A 09 ...Offset:=0;...
000080: 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B ...END;.....END;
000090: 0D 0A 09 09 63 68 3A 3D 42 6C 6F 63 6B 5E 2E 43 ....ch:=Block^.C
0000A0: 68 61 72 73 5B 4F 66 66 73 65 74 5D 3B 0D 0A 09 hars[Offset];...
0000B0: 09 49 46 20 63 68 3C 3E 45 4F 46 20 54 48 45 4E .IF ch<>EOF THEN
0000C0: 20 4F 66 66 73 65 74 3A 3D 4F 66 66 73 65 74 2B Offset:=Offset+
0000D0: 31 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 1 END;....END;..
0000E0: 09 45 4E 44 20 52 65 61 64 4E 65 78 74 43 68 61 .END ReadNextCha
0000F0: 72 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 r;..PROCEDURE Ge
000100: 74 43 75 72 72 65 6E 74 43 68 61 72 28 56 41 52 tCurrentChar(VAR
000110: 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 43 48 41 f:EditFile):CHA
000120: 52 3B 0D 0A 0D 0A 42 45 47 49 4E 0D 0A 09 70 6F R;....BEGIN...po
000130: 73 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 52 s:=f.CurPos;...R
000140: 65 61 64 4E 65 78 74 43 68 61 72 28 70 6F 73 2C eadNextChar(pos,
000150: 63 68 29 3B 0D 0A 09 52 45 54 55 52 4E 20 63 68 ch);...RETURN ch
000160: 0D 0A 09 45 4E 44 20 47 65 74 43 75 72 72 65 6E ...END GetCurren
000170: 74 43 68 61 72 3B 0D 0A 50 52 4F 43 45 44 55 52 tChar;..PROCEDUR
000180: 45 20 20 42 61 63 6B 4F 6E 65 43 68 61 72 28 56 E BackOneChar(V
000190: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 42 AR f:EditFile):B
0001A0: 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A OOLEAN;..BEGIN..
0001B0: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
0001C0: 09 62 3A 3D 42 61 63 6B 75 70 28 29 3B 0D 0A 09 .b:=Backup();...
0001D0: 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A savecurpos(f);..
0001E0: 09 52 45 54 55 52 4E 20 62 0D 0A 09 45 4E 44 20 .RETURN b...END
0001F0: 42 61 63 6B 4F 6E 65 43 68 61 72 3B 09 09 09 09 BackOneChar;....
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 0D 0A 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 .....PROCEDURE
000010: 46 6F 72 77 61 72 64 4F 6E 65 43 68 61 72 28 56 ForwardOneChar(V
000020: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 42 AR f:EditFile):B
000030: 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A OOLEAN;..BEGIN..
000040: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
000050: 09 62 3A 3D 41 64 76 61 6E 63 65 28 29 3B 0D 0A .b:=Advance();..
000060: 09 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D .savecurpos(f);.
000070: 0A 09 52 45 54 55 52 4E 20 62 0D 0A 09 45 4E 44 ..RETURN b...END
000080: 20 46 6F 72 77 61 72 64 4F 6E 65 43 68 61 72 3B ForwardOneChar;
000090: 09 09 09 09 0D 0A 56 41 52 09 53 74 72 69 6E 67 ......VAR.String
0000A0: 3A 41 52 52 41 59 5B 30 2E 2E 35 39 5D 20 4F 46 :ARRAY[0..59] OF
0000B0: 20 43 48 41 52 3B 0D 0A 09 53 74 72 69 6E 67 4C CHAR;...StringL
0000C0: 65 6E 3A 43 41 52 44 49 4E 41 4C 3D 30 3B 09 0D en:CARDINAL=0;..
0000D0: 0A 09 4D 61 74 63 68 43 68 61 72 4E 6F 3A 43 41 ..MatchCharNo:CA
0000E0: 52 44 49 4E 41 4C 3B 0D 0A 09 4D 61 74 63 68 43 RDINAL;...MatchC
0000F0: 68 61 72 3A 43 48 41 52 3B 0D 0A 0D 0A 50 52 4F har:CHAR;....PRO
000100: 43 45 44 55 52 45 20 4D 61 74 63 68 65 73 28 29 CEDURE Matches()
000110: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E :BOOLEAN;..BEGIN
000120: 0D 0A 09 52 45 54 55 52 4E 20 28 57 6F 72 6B 69 ...RETURN (Worki
000130: 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F ng^.Chars[CharPo
000140: 73 5D 3D 53 74 72 69 6E 67 5B 4D 61 74 63 68 43 s]=String[MatchC
000150: 68 61 72 4E 6F 5D 29 0D 0A 09 20 20 20 20 4F 52 harNo])... OR
000160: 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 (Working^.Chars
000170: 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 53 74 [CharPos]=CAP(St
000180: 72 69 6E 67 5B 4D 61 74 63 68 43 68 61 72 4E 6F ring[MatchCharNo
000190: 5D 29 29 0D 0A 09 45 4E 44 20 4D 61 74 63 68 65 ]))...END Matche
0001A0: 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 50 72 s;..PROCEDURE Pr
0001B0: 65 70 61 72 65 53 74 72 69 6E 67 28 73 3A 41 52 epareString(s:AR
0001C0: 52 41 59 20 4F 46 20 43 48 41 52 3B 6C 65 6E 3A RAY OF CHAR;len:
0001D0: 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 42 45 47 INTEGER);....BEG
0001E0: 49 4E 0D 0A 09 53 74 72 69 6E 67 4C 65 6E 3A 3D IN...StringLen:=
0001F0: 6C 65 6E 3B 0D 0A 09 4D 6F 76 65 75 70 28 41 44 len;...Moveup(AD
Size : 512 (Real : 512)
000000: 20 20 5E 51 43 20 61 6E 64 20 5E 51 52 2A 29 0D ^QC and ^QR*).
000010: 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D 66 2E 43 68 ...Working:=f.Ch
000020: 61 69 6E 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A ain;....CharPos:
000030: 3D 30 3B 0D 0A 09 09 70 6F 73 3A 3D 30 3B 0D 0A =0;....pos:=0;..
000040: 09 45 4C 53 49 46 20 6C 69 6E 65 73 74 6F 6D 6F .ELSIF linestomo
000050: 76 65 3D 31 36 37 33 36 20 54 48 45 4E 0D 0A 09 ve=16736 THEN...
000060: 09 57 48 49 4C 45 20 57 6F 72 6B 69 6E 67 5E 2E .WHILE Working^.
000070: 4E 65 78 74 3C 3E 4E 49 4C 20 44 4F 0D 0A 09 09 Next<>NIL DO....
000080: 09 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B 69 6E .Working:=Workin
000090: 67 5E 2E 4E 65 78 74 3B 0D 0A 09 09 09 45 4E 44 g^.Next;.....END
0000A0: 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 4F 52 ;....CharPos:=OR
0000B0: 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B D(Working^.Block
0000C0: 4C 65 6E 29 3B 0D 0A 09 09 49 46 20 57 6F 72 6B Len);....IF Work
0000D0: 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 ing^.Chars[CharP
0000E0: 6F 73 2D 31 5D 3D 45 4F 46 20 54 48 45 4E 0D 0A os-1]=EOF THEN..
0000F0: 09 09 09 44 45 43 28 43 68 61 72 50 6F 73 29 3B ...DEC(CharPos);
000100: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 73 61 76 .....END;....sav
000110: 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 70 ecurpos(f);....p
000120: 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 09 70 :=f.CurPos;....p
000130: 6F 73 3A 3D 42 61 63 6B 75 70 4C 69 6E 65 28 29 os:=BackupLine()
000140: 3B 0D 0A 09 09 66 2E 43 75 72 50 6F 73 3A 3D 70 ;....f.CurPos:=p
000150: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 20 20 20 20 28 ;...ELSE... (
000160: 2A 63 68 61 73 65 20 62 61 63 6B 77 61 72 64 73 *chase backwards
000170: 20 75 6E 74 69 6C 20 61 20 43 52 2C 20 4C 46 20 until a CR, LF
000180: 6F 72 20 46 46 20 69 73 20 66 6F 75 6E 64 20 61 or FF is found a
000190: 6E 64 0D 0A 09 20 20 20 20 20 20 63 61 6C 63 75 nd... calcu
0001A0: 6C 61 74 65 20 70 6F 73 69 74 69 6F 6E 20 69 6E late position in
0001B0: 20 6C 69 6E 65 2A 29 0D 0A 09 20 20 20 20 70 6F line*)... po
0001C0: 73 3A 3D 42 61 63 6B 75 70 4C 69 6E 65 28 29 3B s:=BackupLine();
0001D0: 0D 0A 09 20 20 20 20 6C 65 6E 3A 3D 30 3B 0D 0A ... len:=0;..
0001E0: 0D 0A 09 20 20 20 20 28 2A 09 6E 6F 77 20 70 6F ... (*.now po
0001F0: 73 69 74 69 6F 6E 65 64 20 74 6F 20 62 65 67 69 sitioned to begi
Size : 512 (Real : 512)
000000: 52 28 73 29 2C 41 44 52 28 53 74 72 69 6E 67 29 R(s),ADR(String)
000010: 2C 6C 65 6E 29 3B 0D 0A 09 45 4E 44 20 50 72 65 ,len);...END Pre
000020: 70 61 72 65 53 74 72 69 6E 67 3B 0D 0A 28 2A 09 pareString;..(*.
000030: 70 72 65 70 61 72 65 20 61 20 73 74 72 69 6E 67 prepare a string
000040: 20 66 6F 72 20 75 73 65 20 69 6E 20 61 20 66 69 for use in a fi
000050: 6E 64 20 63 6F 6D 6D 61 6E 64 2A 29 0D 0A 0D 0A nd command*)....
000060: 50 52 4F 43 45 44 55 52 45 20 46 69 6E 64 53 74 PROCEDURE FindSt
000070: 72 69 6E 67 28 56 41 52 20 66 3A 45 64 69 74 46 ring(VAR f:EditF
000080: 69 6C 65 3B 42 61 63 6B 77 61 72 64 73 3A 42 4F ile;Backwards:BO
000090: 4F 4C 45 41 4E 29 3A 42 4F 4F 4C 45 41 4E 3B 0D OLEAN):BOOLEAN;.
0000A0: 0A 0D 0A 0D 0A 28 2A 09 62 61 63 6B 77 61 72 64 .....(*.backward
0000B0: 73 20 6E 6F 74 20 79 65 74 20 69 6D 70 6C 65 6D s not yet implem
0000C0: 65 6E 74 65 64 2A 29 0D 0A 42 45 47 49 4E 0D 0A ented*)..BEGIN..
0000D0: 09 49 46 20 53 74 72 69 6E 67 4C 65 6E 3D 30 20 .IF StringLen=0
0000E0: 54 48 45 4E 20 52 45 54 55 52 4E 20 54 52 55 45 THEN RETURN TRUE
0000F0: 20 45 4E 44 3B 0D 0A 09 73 65 74 63 75 72 70 6F END;...setcurpo
000100: 73 28 66 29 3B 0D 0A 09 49 46 20 42 61 63 6B 77 s(f);...IF Backw
000110: 61 72 64 73 20 54 48 45 4E 0D 0A 09 09 4D 61 74 ards THEN....Mat
000120: 63 68 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 53 chChar:=String[S
000130: 74 72 69 6E 67 4C 65 6E 2D 31 5D 3B 0D 0A 09 09 tringLen-1];....
000140: 4C 4F 4F 50 0D 0A 09 09 09 49 46 20 4E 4F 54 20 LOOP.....IF NOT
000150: 42 61 63 6B 75 70 28 29 20 54 48 45 4E 20 45 58 Backup() THEN EX
000160: 49 54 20 45 4E 44 3B 0D 0A 09 09 09 49 46 20 28 IT END;.....IF (
000170: 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 Working^.Chars[C
000180: 68 61 72 50 6F 73 5D 3D 4D 61 74 63 68 43 68 61 harPos]=MatchCha
000190: 72 29 20 0D 0A 09 09 09 20 20 4F 52 20 28 57 6F r) ..... OR (Wo
0001A0: 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 rking^.Chars[Cha
0001B0: 72 50 6F 73 5D 3D 43 41 50 28 4D 61 74 63 68 43 rPos]=CAP(MatchC
0001C0: 68 61 72 29 29 20 54 48 45 4E 0D 0A 09 09 09 09 har)) THEN......
0001D0: 4D 61 74 63 68 43 68 61 72 4E 6F 3A 3D 53 74 72 MatchCharNo:=Str
0001E0: 69 6E 67 4C 65 6E 2D 32 3B 0D 0A 09 09 09 09 73 ingLen-2;......s
0001F0: 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 avecurpos(f);...
Size : 512 (Real : 512)
000000: 65 74 50 6F 73 69 74 69 6F 6E 28 56 41 52 20 66 etPosition(VAR f
000010: 3A 45 64 69 74 46 69 6C 65 3B 70 3A 50 6F 73 69 :EditFile;p:Posi
000020: 74 69 6F 6E 29 3B 0D 0A 28 2A 09 67 65 74 2F 73 tion);..(*.get/s
000030: 65 74 20 70 6F 73 69 74 69 6F 6E 20 69 6E 20 61 et position in a
000040: 20 66 69 6C 65 2A 29 0D 0A 42 45 47 49 4E 0D 0A file*)..BEGIN..
000050: 09 66 2E 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 .f.CurPos:=p;...
000060: 0D 0A 09 28 2A 09 70 6F 69 6E 74 65 72 20 6D 61 ...(*.pointer ma
000070: 79 20 62 65 20 70 6F 69 6E 74 69 6E 67 20 6A 75 y be pointing ju
000080: 73 74 20 61 66 74 65 72 20 65 6E 64 20 6F 66 20 st after end of
000090: 62 6C 6F 63 6B 0D 0A 09 09 28 61 66 74 65 72 20 block....(after
0000A0: 64 65 6C 65 74 65 73 29 2C 20 72 65 67 75 6C 61 deletes), regula
0000B0: 72 69 7A 65 20 74 68 61 74 20 73 69 74 75 61 74 rize that situat
0000C0: 69 6F 6E 2A 29 0D 0A 0D 0A 09 57 49 54 48 20 66 ion*).....WITH f
0000D0: 2E 43 75 72 50 6F 73 20 44 4F 0D 0A 09 09 49 46 .CurPos DO....IF
0000E0: 20 09 20 20 20 20 28 4F 66 66 73 65 74 3E 3D 42 . (Offset>=B
0000F0: 6C 6F 63 6B 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 lock^.BlockLen)
000100: 0D 0A 09 09 09 41 4E 44 20 28 42 6C 6F 63 6B 5E .....AND (Block^
000110: 2E 4E 65 78 74 3C 3E 4E 49 4C 29 20 54 48 45 4E .Next<>NIL) THEN
000120: 0D 0A 09 09 09 4F 66 66 73 65 74 3A 3D 30 3B 0D .....Offset:=0;.
000130: 0A 09 09 09 42 6C 6F 63 6B 3A 3D 42 6C 6F 63 6B ....Block:=Block
000140: 5E 2E 4E 65 78 74 0D 0A 09 09 09 45 4E 44 3B 0D ^.Next.....END;.
000150: 0A 09 09 45 4E 44 3B 20 0D 0A 09 45 4E 44 20 53 ...END; ...END S
000160: 65 74 50 6F 73 69 74 69 6F 6E 3B 0D 0A 50 52 4F etPosition;..PRO
000170: 43 45 44 55 52 45 20 4C 61 62 65 6C 4F 70 28 56 CEDURE LabelOp(V
000180: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 44 65 AR f:EditFile;De
000190: 66 69 6E 65 3A 42 4F 4F 4C 45 41 4E 3B 63 68 3A fine:BOOLEAN;ch:
0001A0: 43 48 41 52 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A CHAR):BOOLEAN;..
0001B0: 28 2A 0D 0A 09 70 65 72 66 6F 72 6D 20 61 20 6C (*...perform a l
0001C0: 61 62 65 6C 20 6F 70 65 72 61 74 69 6F 6E 20 2C abel operation ,
0001D0: 20 72 65 74 75 72 6E 20 74 72 75 65 20 69 66 20 return true if
0001E0: 73 75 63 63 65 73 73 66 75 6C 0D 0A 09 44 65 66 successful...Def
0001F0: 69 6E 65 20 69 73 20 74 72 75 65 20 69 66 20 74 ine is true if t
Size : 512 (Real : 512)
000000: 09 09 09 57 48 49 4C 45 20 28 4D 61 74 63 68 43 ...WHILE (MatchC
000010: 68 61 72 4E 6F 3E 30 29 0D 0A 09 09 09 09 20 20 harNo>0)......
000020: 20 20 41 4E 44 20 28 42 61 63 6B 75 70 28 29 29 AND (Backup())
000030: 0D 0A 09 09 09 09 20 20 20 20 41 4E 44 20 4D 61 ...... AND Ma
000040: 74 63 68 65 73 28 29 20 44 4F 0D 0A 09 09 09 09 tches() DO......
000050: 09 44 45 43 28 4D 61 74 63 68 43 68 61 72 4E 6F .DEC(MatchCharNo
000060: 29 3B 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 );.......END;...
000070: 09 09 09 49 46 20 4D 61 74 63 68 43 68 61 72 4E ...IF MatchCharN
000080: 6F 3C 30 20 54 48 45 4E 20 52 45 54 55 52 4E 20 o<0 THEN RETURN
000090: 54 52 55 45 3B 20 45 4E 44 3B 0D 0A 09 09 09 09 TRUE; END;......
0000A0: 49 46 20 42 61 63 6B 75 70 28 29 20 41 4E 44 20 IF Backup() AND
0000B0: 4D 61 74 63 68 65 73 28 29 20 0D 0A 09 09 09 09 Matches() ......
0000C0: 20 20 20 41 4E 44 20 28 4D 61 74 63 68 43 68 61 AND (MatchCha
0000D0: 72 4E 6F 3C 3D 30 29 20 54 48 45 4E 0D 0A 09 09 rNo<=0) THEN....
0000E0: 09 09 09 52 45 54 55 52 4E 20 54 52 55 45 3B 0D ...RETURN TRUE;.
0000F0: 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 09 ......END;......
000100: 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 setcurpos(f);...
000110: 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B ...END;.....END;
000120: 0D 0A 09 45 4C 53 45 0D 0A 09 09 4D 61 74 63 68 ...ELSE....Match
000130: 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 30 5D 3B Char:=String[0];
000140: 0D 0A 09 09 4C 4F 4F 50 0D 0A 09 09 09 49 46 20 ....LOOP.....IF
000150: 4E 4F 54 20 41 64 76 61 6E 63 65 28 29 20 54 48 NOT Advance() TH
000160: 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 09 EN EXIT END;....
000170: 09 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 .IF (Working^.Ch
000180: 61 72 73 5B 43 68 61 72 50 6F 73 5D 3D 4D 61 74 ars[CharPos]=Mat
000190: 63 68 43 68 61 72 29 0D 0A 09 09 09 20 20 4F 52 chChar)..... OR
0001A0: 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 (Working^.Chars
0001B0: 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 4D 61 [CharPos]=CAP(Ma
0001C0: 74 63 68 43 68 61 72 29 29 20 54 48 45 4E 0D 0A tchChar)) THEN..
0001D0: 09 09 09 09 4D 61 74 63 68 43 68 61 72 4E 6F 3A ....MatchCharNo:
0001E0: 3D 31 3B 0D 0A 09 09 09 09 73 61 76 65 63 75 72 =1;......savecur
0001F0: 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 57 48 49 pos(f);......WHI
Size : 512 (Real : 512)
000000: 68 65 20 6F 70 65 72 61 74 69 6F 6E 20 69 73 20 he operation is
000010: 61 20 64 65 66 69 6E 65 20 6C 61 62 65 6C 0D 0A a define label..
000020: 09 69 74 20 69 73 20 66 61 6C 73 65 20 69 66 20 .it is false if
000030: 69 74 20 69 73 20 61 20 67 6F 74 6F 20 6C 61 62 it is a goto lab
000040: 65 6C 0D 0A 2A 29 0D 0A 0D 0A 56 41 52 09 69 3A el..*)....VAR.i:
000050: 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E CARDINAL;..BEGIN
000060: 0D 0A 09 28 2A 24 41 5E 2A 29 0D 0A 09 63 68 3A ...(*$A^*)...ch:
000070: 3D 43 41 50 28 63 68 29 3B 0D 0A 09 43 41 53 45 =CAP(ch);...CASE
000080: 20 63 68 20 4F 46 0D 0A 09 09 27 42 27 3A 20 69 ch OF....'B': i
000090: 3A 3D 31 30 7C 0D 0A 09 09 27 5E 4B 27 2C 27 4B :=10|....'^K','K
0000A0: 27 3A 20 69 3A 3D 31 31 7C 0D 0A 09 09 31 78 2E ': i:=11|....1x.
0000B0: 2E 33 78 3A 69 3A 3D 4F 52 44 28 63 68 29 2B 31 .3x:i:=ORD(ch)+1
0000C0: 31 7C 0D 0A 09 09 27 30 27 2E 2E 27 39 27 3A 69 1|....'0'..'9':i
0000D0: 3A 3D 4F 52 44 28 63 68 29 2D 4F 52 44 28 27 30 :=ORD(ch)-ORD('0
0000E0: 27 29 7C 0D 0A 09 09 30 62 30 78 2E 2E 30 62 39 ')|....0b0x..0b9
0000F0: 78 3A 69 3A 3D 4F 52 44 28 63 68 29 2D 30 62 30 x:i:=ORD(ch)-0b0
000100: 68 2B 31 35 0D 0A 09 09 45 4C 53 45 20 52 45 54 h+15....ELSE RET
000110: 55 52 4E 20 46 41 4C 53 45 0D 0A 09 09 45 4E 44 URN FALSE....END
000120: 3B 0D 0A 09 49 46 20 44 65 66 69 6E 65 20 54 48 ;...IF Define TH
000130: 45 4E 0D 0A 09 09 47 65 74 50 6F 73 69 74 69 6F EN....GetPositio
000140: 6E 28 66 2C 66 2E 4C 61 62 65 6C 73 5B 69 5D 29 n(f,f.Labels[i])
000150: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 49 46 20 66 ;...ELSE....IF f
000160: 2E 4C 61 62 65 6C 73 5B 69 5D 2E 42 6C 6F 63 6B .Labels[i].Block
000170: 3D 4E 49 4C 20 54 48 45 4E 20 52 45 54 55 52 4E =NIL THEN RETURN
000180: 20 46 41 4C 53 45 20 45 4E 44 3B 0D 0A 09 09 53 FALSE END;....S
000190: 65 74 50 6F 73 69 74 69 6F 6E 28 66 2C 66 2E 4C etPosition(f,f.L
0001A0: 61 62 65 6C 73 5B 69 5D 29 3B 0D 0A 09 20 09 45 abels[i]);... .E
0001B0: 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 54 52 55 ND;...RETURN TRU
0001C0: 45 3B 0D 0A 09 45 4E 44 20 4C 61 62 65 6C 4F 70 E;...END LabelOp
0001D0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 41 64 76 ;..PROCEDURE Adv
0001E0: 61 6E 63 65 28 29 3A 42 4F 4F 4C 45 41 4E 3B 0D ance():BOOLEAN;.
0001F0: 0A 0D 0A 28 2A 09 61 64 76 61 6E 63 65 20 61 20 ...(*.advance a
Size : 512 (Real : 512)
000000: 4C 45 20 28 4D 61 74 63 68 43 68 61 72 4E 6F 3C LE (MatchCharNo<
000010: 53 74 72 69 6E 67 4C 65 6E 29 0D 0A 09 09 09 09 StringLen)......
000020: 20 20 20 20 41 4E 44 20 28 41 64 76 61 6E 63 65 AND (Advance
000030: 28 29 29 0D 0A 09 09 09 09 20 20 20 20 41 4E 44 ())...... AND
000040: 20 20 4D 61 74 63 68 65 73 28 29 20 44 4F 0D 0A Matches() DO..
000050: 09 09 09 09 09 49 4E 43 28 4D 61 74 63 68 43 68 .....INC(MatchCh
000060: 61 72 4E 6F 29 3B 0D 0A 09 09 09 09 09 45 4E 44 arNo);.......END
000070: 3B 0D 0A 09 09 09 09 49 46 20 4D 61 74 63 68 43 ;......IF MatchC
000080: 68 61 72 4E 6F 3E 3D 53 74 72 69 6E 67 4C 65 6E harNo>=StringLen
000090: 20 54 48 45 4E 0D 0A 09 09 09 09 09 52 45 54 55 THEN.......RETU
0000A0: 52 4E 20 54 52 55 45 3B 0D 0A 09 09 09 09 09 45 RN TRUE;.......E
0000B0: 4E 44 3B 0D 0A 09 09 09 09 73 65 74 63 75 72 70 ND;......setcurp
0000C0: 6F 73 28 66 29 3B 0D 0A 09 09 09 09 45 4E 44 3B os(f);......END;
0000D0: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 .....END;....END
0000E0: 3B 0D 0A 09 73 61 76 65 63 75 72 70 6F 73 28 66 ;...savecurpos(f
0000F0: 29 3B 0D 0A 09 52 45 54 55 52 4E 20 46 41 4C 53 );...RETURN FALS
000100: 45 3B 0D 0A 09 45 4E 44 20 46 69 6E 64 53 74 72 E;...END FindStr
000110: 69 6E 67 3B 0D 0A 28 2A 09 41 63 74 75 61 6C 6C ing;..(*.Actuall
000120: 79 20 66 69 6E 64 20 74 68 65 20 6E 65 78 74 20 y find the next
000130: 6F 63 63 75 72 72 65 6E 63 65 20 6F 66 20 74 68 occurrence of th
000140: 65 20 73 74 72 69 6E 67 09 0D 0A 0D 0A 09 44 6F e string......Do
000150: 6E 65 20 72 65 74 75 72 6E 73 20 74 72 75 65 20 ne returns true
000160: 69 66 20 6F 6E 65 20 69 73 20 66 6F 75 6E 64 2A if one is found*
000170: 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 61 6C )..PROCEDURE Cal
000180: 6C 57 69 74 68 46 69 6C 65 28 4E 61 6D 65 3A 41 lWithFile(Name:A
000190: 52 52 41 59 20 4F 46 20 43 48 41 52 3B 56 41 52 RRAY OF CHAR;VAR
0001A0: 20 66 3A 45 64 69 74 46 69 6C 65 29 3B 0D 0A 42 f:EditFile);..B
0001B0: 45 47 49 4E 0D 0A 09 4D 61 6B 65 43 61 6C 6C 28 EGIN...MakeCall(
0001C0: 4E 61 6D 65 2C 66 2E 66 2E 66 29 3B 0D 0A 09 45 Name,f.f.f);...E
0001D0: 4E 44 20 43 61 6C 6C 57 69 74 68 46 69 6C 65 3B ND CallWithFile;
0001E0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 69 6C 65 ..PROCEDURE File
0001F0: 54 79 70 65 28 56 41 52 20 66 3A 45 64 69 74 46 Type(VAR f:EditF
Size : 512 (Real : 512)
000000: 63 68 61 72 61 63 74 65 72 20 70 6F 73 69 74 69 character positi
000010: 6F 6E 20 69 6E 20 74 68 65 20 63 75 72 72 65 6E on in the curren
000020: 74 20 66 69 6C 65 2A 29 0D 0A 42 45 47 49 4E 09 t file*)..BEGIN.
000030: 09 0D 0A 09 49 4E 43 28 43 68 61 72 50 6F 73 29 ....INC(CharPos)
000040: 3B 0D 0A 09 49 46 20 43 68 61 72 50 6F 73 3E 3D ;...IF CharPos>=
000050: 49 4E 54 45 47 45 52 28 57 6F 72 6B 69 6E 67 5E INTEGER(Working^
000060: 2E 42 6C 6F 63 6B 4C 65 6E 29 20 54 48 45 4E 0D .BlockLen) THEN.
000070: 0A 09 09 0D 0A 09 09 49 46 20 57 6F 72 6B 69 6E .......IF Workin
000080: 67 5E 2E 4E 65 78 74 3C 3E 4E 49 4C 20 54 48 45 g^.Next<>NIL THE
000090: 4E 0D 0A 09 09 09 57 6F 72 6B 69 6E 67 3A 3D 57 N.....Working:=W
0000A0: 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B 0D 0A 09 orking^.Next;...
0000B0: 09 09 43 68 61 72 50 6F 73 3A 3D 30 3B 0D 0A 09 ..CharPos:=0;...
0000C0: 09 45 4C 53 45 0D 0A 09 09 09 52 45 54 55 52 4E .ELSE.....RETURN
0000D0: 20 46 41 4C 53 45 0D 0A 09 09 09 45 4E 44 3B 0D FALSE.....END;.
0000E0: 0A 09 09 45 4E 44 3B 20 28 2A 43 68 61 72 50 6F ...END; (*CharPo
0000F0: 73 3E 42 6C 6F 63 6B 4C 65 6E 2A 29 0D 0A 09 52 s>BlockLen*)...R
000100: 45 54 55 52 4E 20 57 6F 72 6B 69 6E 67 5E 2E 43 ETURN Working^.C
000110: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3C 3E 45 hars[CharPos]<>E
000120: 4F 46 0D 0A 09 45 4E 44 20 41 64 76 61 6E 63 65 OF...END Advance
000130: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 73 ;..PROCEDURE Ins
000140: 69 64 65 42 6C 6F 63 6B 28 56 41 52 20 46 3A 45 ideBlock(VAR F:E
000150: 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 4E ditFile):BOOLEAN
000160: 3B 0D 0A 0D 0A 28 2A 09 43 68 65 63 6B 20 69 66 ;....(*.Check if
000170: 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 6F current positio
000180: 6E 20 69 73 20 69 6E 73 69 64 65 20 62 6C 6F 63 n is inside bloc
000190: 6B 20 2A 29 0D 0A 56 41 52 09 62 3A 50 54 65 78 k *)..VAR.b:PTex
0001A0: 74 3B 0D 0A 09 43 6F 75 6C 64 42 65 3A 42 4F 4F t;...CouldBe:BOO
0001B0: 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A 09 73 LEAN;..BEGIN...s
0001C0: 65 74 63 75 72 70 6F 73 28 46 29 3B 0D 0A 09 49 etcurpos(F);...I
0001D0: 46 20 28 46 2E 4C 61 62 65 6C 73 5B 31 30 5D 2E F (F.Labels[10].
0001E0: 42 6C 6F 63 6B 3D 4E 49 4C 29 20 4F 52 20 28 46 Block=NIL) OR (F
0001F0: 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C 6F 63 .Labels[11].Bloc
Size : 512 (Real : 512)
000000: 69 6C 65 29 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A ile):CARDINAL;..
000010: 42 45 47 49 4E 0D 0A 09 49 46 20 66 2E 66 2E 66 BEGIN...IF f.f.f
000020: 2E 66 63 62 66 74 3D 27 4D 4F 44 27 20 54 48 45 .fcbft='MOD' THE
000030: 4E 20 52 45 54 55 52 4E 20 31 0D 0A 09 45 4C 53 N RETURN 1...ELS
000040: 49 46 20 66 2E 66 2E 66 2E 66 63 62 66 74 3D 27 IF f.f.f.fcbft='
000050: 44 45 46 27 20 54 48 45 4E 20 52 45 54 55 52 4E DEF' THEN RETURN
000060: 20 32 0D 0A 09 45 4C 53 45 20 52 45 54 55 52 4E 2...ELSE RETURN
000070: 20 30 0D 0A 09 09 45 4E 44 0D 0A 09 45 4E 44 20 0....END...END
000080: 46 69 6C 65 54 79 70 65 3B 0D 0A 50 52 4F 43 45 FileType;..PROCE
000090: 44 55 52 45 20 4D 6F 76 65 54 6F 43 68 61 72 28 DURE MoveToChar(
0000A0: 56 41 52 20 46 69 6C 65 3A 45 64 69 74 46 69 6C VAR File:EditFil
0000B0: 65 3B 50 6F 73 3A 43 41 52 44 49 4E 41 4C 29 3B e;Pos:CARDINAL);
0000C0: 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 4E 41 4C ..VAR.i:CARDINAL
0000D0: 3B 77 3A 50 54 65 78 74 3B 0D 0A 42 45 47 49 4E ;w:PText;..BEGIN
0000E0: 0D 0A 09 57 6F 72 6B 69 6E 67 3A 3D 46 69 6C 65 ...Working:=File
0000F0: 2E 43 68 61 69 6E 3B 0D 0A 09 77 3A 3D 4E 49 4C .Chain;...w:=NIL
000100: 3B 0D 0A 09 69 3A 3D 30 3B 0D 0A 09 4C 4F 4F 50 ;...i:=0;...LOOP
000110: 0D 0A 09 09 49 46 20 57 6F 72 6B 69 6E 67 3D 4E ....IF Working=N
000120: 49 4C 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 IL THEN EXIT END
000130: 3B 0D 0A 09 09 69 3A 3D 69 2B 4F 52 44 28 57 6F ;....i:=i+ORD(Wo
000140: 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 rking^.BlockLen)
000150: 3B 0D 0A 09 09 77 3A 3D 57 6F 72 6B 69 6E 67 3B ;....w:=Working;
000160: 0D 0A 09 09 49 46 20 69 3C 50 6F 73 20 54 48 45 ....IF i<Pos THE
000170: 4E 20 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B 69 N Working:=Worki
000180: 6E 67 5E 2E 4E 65 78 74 20 45 4C 53 45 20 45 58 ng^.Next ELSE EX
000190: 49 54 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D IT END;....END;.
0001A0: 0A 09 49 46 20 57 6F 72 6B 69 6E 67 3D 4E 49 4C ..IF Working=NIL
0001B0: 20 54 48 45 4E 20 0D 0A 09 09 57 6F 72 6B 69 6E THEN ....Workin
0001C0: 67 3A 3D 77 3B 0D 0A 09 09 43 68 61 72 50 6F 73 g:=w;....CharPos
0001D0: 3A 3D 77 5E 2E 42 6C 6F 63 6B 4C 65 6E 3B 0D 0A :=w^.BlockLen;..
0001E0: 09 45 4C 53 45 0D 0A 09 09 43 68 61 72 50 6F 73 .ELSE....CharPos
0001F0: 3A 3D 50 6F 73 2D 28 69 2D 4F 52 44 28 57 6F 72 :=Pos-(i-ORD(Wor
Size : 512 (Real : 512)
000000: 6B 3D 4E 49 4C 29 20 54 48 45 4E 0D 0A 09 09 52 k=NIL) THEN....R
000010: 45 54 55 52 4E 20 46 41 4C 53 45 3B 0D 0A 09 09 ETURN FALSE;....
000020: 45 4E 44 3B 0D 0A 09 62 3A 3D 46 2E 4C 61 62 65 END;...b:=F.Labe
000030: 6C 73 5B 31 30 5D 2E 42 6C 6F 63 6B 3B 0D 0A 0D ls[10].Block;...
000040: 0A 09 57 48 49 4C 45 20 28 62 3C 3E 4E 49 4C 29 ..WHILE (b<>NIL)
000050: 20 41 4E 44 20 28 62 3C 3E 46 2E 4C 61 62 65 6C AND (b<>F.Label
000060: 73 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 41 4E 44 s[11].Block) AND
000070: 20 28 62 3C 3E 57 6F 72 6B 69 6E 67 29 20 44 4F (b<>Working) DO
000080: 0D 0A 09 09 62 3A 3D 62 5E 2E 4E 65 78 74 3B 0D ....b:=b^.Next;.
000090: 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 0D 0A 09 28 ...END;........(
0000A0: 2A 69 66 20 65 6E 64 20 70 72 65 63 65 64 65 73 *if end precedes
0000B0: 20 62 65 67 69 6E 6E 69 6E 67 20 6F 66 20 62 6C beginning of bl
0000C0: 6F 63 6B 2A 29 0D 0A 09 43 6F 75 6C 64 42 65 3A ock*)...CouldBe:
0000D0: 3D 62 3D 57 6F 72 6B 69 6E 67 3B 0D 0A 09 49 46 =b=Working;...IF
0000E0: 20 4E 4F 54 20 43 6F 75 6C 64 42 65 20 54 48 45 NOT CouldBe THE
0000F0: 4E 20 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 N RETURN FALSE E
000100: 4E 44 3B 0D 0A 09 49 46 20 62 3D 46 2E 4C 61 62 ND;...IF b=F.Lab
000110: 65 6C 73 5B 31 30 5D 2E 42 6C 6F 63 6B 20 54 48 els[10].Block TH
000120: 45 4E 0D 0A 09 09 28 2A 09 69 6E 20 73 74 61 72 EN....(*.in star
000130: 74 20 62 6C 6F 63 6B 20 2D 20 63 68 65 63 6B 20 t block - check
000140: 61 66 74 65 72 20 6C 61 62 65 6C 20 73 74 61 72 after label star
000150: 74 2A 29 0D 0A 09 09 43 6F 75 6C 64 42 65 3A 3D t*)....CouldBe:=
000160: 43 68 61 72 50 6F 73 3E 3D 4F 52 44 28 46 2E 4C CharPos>=ORD(F.L
000170: 61 62 65 6C 73 5B 31 30 5D 2E 4F 66 66 73 65 74 abels[10].Offset
000180: 29 0D 0A 09 09 45 4E 44 3B 0D 0A 09 49 46 20 62 )....END;...IF b
000190: 3D 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C =F.Labels[11].Bl
0001A0: 6F 63 6B 20 54 48 45 4E 0D 0A 09 09 28 2A 09 69 ock THEN....(*.i
0001B0: 6E 20 73 74 61 72 74 20 62 6C 6F 63 6B 20 2D 20 n start block -
0001C0: 63 68 65 63 6B 20 61 66 74 65 72 20 6C 61 62 65 check after labe
0001D0: 6C 20 73 74 61 72 74 2A 29 0D 0A 09 09 43 6F 75 l start*)....Cou
0001E0: 6C 64 42 65 3A 3D 43 6F 75 6C 64 42 65 20 41 4E ldBe:=CouldBe AN
0001F0: 44 20 28 43 68 61 72 50 6F 73 3C 3D 4F 52 44 28 D (CharPos<=ORD(
Size : 512 (Real : 512)
000000: 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 29 king^.BlockLen))
000010: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 73 61 76 65 ;....END;...save
000020: 63 75 72 70 6F 73 28 46 69 6C 65 29 3B 0D 0A 09 curpos(File);...
000030: 45 4E 44 20 4D 6F 76 65 54 6F 43 68 61 72 3B 0D END MoveToChar;.
000040: 0A 50 52 4F 43 45 44 55 52 45 20 44 65 66 69 6E .PROCEDURE Defin
000050: 65 45 72 72 6F 72 73 28 56 41 52 20 66 3A 45 64 eErrors(VAR f:Ed
000060: 69 74 46 69 6C 65 29 3B 0D 0A 56 41 52 09 69 3A itFile);..VAR.i:
000070: 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 62 3A 42 4F CARDINAL;...b:BO
000080: 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A 09 OLEAN;..BEGIN...
000090: 49 46 20 45 72 72 6F 72 43 6F 75 6E 74 3D 30 20 IF ErrorCount=0
0000A0: 54 48 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 3B THEN RETURN END;
0000B0: 0D 0A 09 46 4F 52 20 69 3A 3D 30 20 54 4F 20 45 ...FOR i:=0 TO E
0000C0: 72 72 6F 72 43 6F 75 6E 74 2D 31 20 44 4F 0D 0A rrorCount-1 DO..
0000D0: 09 09 4D 6F 76 65 54 6F 43 68 61 72 28 66 2C 45 ..MoveToChar(f,E
0000E0: 72 72 6F 72 4C 69 73 74 5B 69 5D 2E 43 68 61 72 rrorList[i].Char
0000F0: 50 29 3B 0D 0A 09 09 62 3A 3D 4C 61 62 65 6C 4F P);....b:=LabelO
000100: 70 28 66 2C 54 52 55 45 2C 43 48 52 28 30 62 30 p(f,TRUE,CHR(0b0
000110: 68 2B 69 29 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A h+i));....END;..
000120: 09 45 4E 44 20 44 65 66 69 6E 65 45 72 72 6F 72 .END DefineError
000130: 73 3B 0D 0A 0D 0A 45 4E 44 20 4D 61 6B 65 45 64 s;....END MakeEd
000140: 69 74 73 2E 0D 0A 1A 6E 74 2D 31 20 44 4F 0D 0A its....nt-1 DO..
000150: 09 09 4D 6F 76 65 54 6F 43 68 61 72 28 66 2C 45 ..MoveToChar(f,E
000160: 72 72 6F 72 4C 69 73 74 5B 69 5D 2E 43 68 61 72 rrorList[i].Char
000170: 50 29 3B 0D 0A 09 09 62 3A 3D 4C 61 62 65 6C 4F P);....b:=LabelO
000180: 69 72 64 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 ird:CARDINAL;..B
000190: 45 47 49 4E 0D 0A 09 54 68 69 72 64 3A 3D 54 65 EGIN...Third:=Te
0001A0: 78 74 4C 65 6E 20 44 49 56 20 33 3B 0D 0A 09 49 xtLen DIV 3;...I
0001B0: 46 20 4E 4F 54 20 43 68 65 63 6B 42 6C 6F 63 6B F NOT CheckBlock
0001C0: 28 46 72 6F 6D 46 69 6C 65 29 20 54 48 45 4E 20 (FromFile) THEN
0001D0: 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 4E 44 RETURN FALSE END
0001E0: 3B 0D 0A 09 57 49 54 48 20 46 72 6F 6D 46 69 6C ;...WITH FromFil
0001F0: 65 2E 4C 61 62 65 6C 73 5B 31 30 5D 20 44 4F 0D e.Labels[10] DO.
Size : 512 (Real : 512)
000000: 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 4F 66 66 F.Labels[11].Off
000010: 73 65 74 29 29 0D 0A 09 09 45 4E 44 3B 0D 0A 09 set))....END;...
000020: 49 46 20 43 6F 75 6C 64 42 65 20 54 48 45 4E 0D IF CouldBe THEN.
000030: 0A 09 09 57 48 49 4C 45 20 28 62 3C 3E 4E 49 4C ...WHILE (b<>NIL
000040: 29 20 41 4E 44 20 28 62 3C 3E 46 2E 4C 61 62 65 ) AND (b<>F.Labe
000050: 6C 73 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 44 4F ls[11].Block) DO
000060: 20 62 3A 3D 62 5E 2E 4E 65 78 74 20 45 4E 44 3B b:=b^.Next END;
000070: 0D 0A 09 09 43 6F 75 6C 64 42 65 3A 3D 62 3C 3E ....CouldBe:=b<>
000080: 4E 49 4C 0D 0A 09 09 45 4E 44 3B 0D 0A 09 52 45 NIL....END;...RE
000090: 54 55 52 4E 20 43 6F 75 6C 64 42 65 3B 0D 0A 09 TURN CouldBe;...
0000A0: 45 4E 44 20 49 6E 73 69 64 65 42 6C 6F 63 6B 3B END InsideBlock;
0000B0: 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 ....PROCEDURE Ch
0000C0: 65 63 6B 42 6C 6F 63 6B 28 56 41 52 20 46 3A 45 eckBlock(VAR F:E
0000D0: 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 41 4E ditFile):BOOLEAN
0000E0: 3B 0D 0A 0D 0A 28 2A 09 43 68 65 63 6B 20 69 66 ;....(*.Check if
0000F0: 20 62 65 67 69 6E 20 61 6E 64 20 65 6E 64 20 6F begin and end o
000100: 66 20 62 6C 6F 63 6B 20 68 61 76 65 20 62 65 65 f block have bee
000110: 6E 20 63 6F 72 72 65 63 74 6C 79 20 73 65 74 20 n correctly set
000120: 75 70 2A 29 0D 0A 0D 0A 42 45 47 49 4E 0D 0A 09 up*)....BEGIN...
000130: 49 46 20 28 46 2E 4C 61 62 65 6C 73 5B 31 30 5D IF (F.Labels[10]
000140: 2E 42 6C 6F 63 6B 3D 4E 49 4C 29 20 4F 52 20 28 .Block=NIL) OR (
000150: 46 2E 4C 61 62 65 6C 73 5B 31 31 5D 2E 42 6C 6F F.Labels[11].Blo
000160: 63 6B 3D 4E 49 4C 29 20 54 48 45 4E 0D 0A 09 09 ck=NIL) THEN....
000170: 52 45 54 55 52 4E 20 46 41 4C 53 45 3B 0D 0A 09 RETURN FALSE;...
000180: 09 45 4E 44 3B 0D 0A 09 57 6F 72 6B 69 6E 67 3A .END;...Working:
000190: 3D 46 2E 4C 61 62 65 6C 73 5B 31 30 5D 2E 42 6C =F.Labels[10].Bl
0001A0: 6F 63 6B 3B 0D 0A 09 72 65 70 6C 79 3A 3D 30 3B ock;...reply:=0;
0001B0: 0D 0A 0D 0A 09 57 48 49 4C 45 20 28 57 6F 72 6B .....WHILE (Work
0001C0: 69 6E 67 3C 3E 4E 49 4C 29 20 41 4E 44 20 28 57 ing<>NIL) AND (W
0001D0: 6F 72 6B 69 6E 67 3C 3E 46 2E 4C 61 62 65 6C 73 orking<>F.Labels
0001E0: 5B 31 31 5D 2E 42 6C 6F 63 6B 29 20 44 4F 0D 0A [11].Block) DO..
0001F0: 09 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 2B 4F ..reply:=reply+O
Size : 512 (Real : 512)
000000: 62 65 6C 73 5B 32 35 5D 3A 3D 43 75 72 50 6F 73 bels[25]:=CurPos
000010: 3B 0D 0A 09 09 43 75 72 50 6F 73 3A 3D 4C 61 62 ;....CurPos:=Lab
000020: 65 6C 73 5B 31 30 5D 3B 0D 0A 09 20 20 20 20 20 els[10];...
000030: 20 20 20 44 65 6C 43 68 61 72 73 28 46 72 6F 6D DelChars(From
000040: 46 69 6C 65 2C 72 65 70 6C 79 29 3B 0D 0A 09 09 File,reply);....
000050: 43 75 72 50 6F 73 3A 3D 4C 61 62 65 6C 73 5B 32 CurPos:=Labels[2
000060: 35 5D 3B 0D 0A 09 09 4C 61 62 65 6C 73 5B 32 35 5];....Labels[25
000070: 5D 2E 42 6C 6F 63 6B 3A 3D 4E 49 4C 3B 0D 0A 09 ].Block:=NIL;...
000080: 09 45 4E 44 3B 0D 0A 09 52 45 54 55 52 4E 20 54 .END;...RETURN T
000090: 52 55 45 3B 0D 0A 09 45 4E 44 20 42 6C 6F 63 6B RUE;...END Block
0000A0: 44 65 6C 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 Del;..PROCEDURE
0000B0: 52 65 6C 6F 63 61 74 65 4C 61 62 65 6C 73 28 56 RelocateLabels(V
0000C0: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 3B 6E 75 AR f:EditFile;nu
0000D0: 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 3B 0D 0A mber:INTEGER);..
0000E0: 28 2A 09 52 65 6C 6F 63 61 74 65 20 6C 61 62 65 (*.Relocate labe
0000F0: 6C 73 20 66 6F 72 20 74 68 65 20 63 75 72 72 65 ls for the curre
000100: 6E 74 20 62 6C 6F 63 6B 0D 0A 09 6E 75 6D 62 65 nt block...numbe
000110: 72 20 69 73 20 6E 75 6D 62 65 72 20 6F 66 20 63 r is number of c
000120: 68 61 72 61 63 74 65 72 73 20 62 65 69 6E 67 20 haracters being
000130: 64 65 6C 65 74 65 64 20 0D 0A 09 28 2D 76 65 20 deleted ...(-ve
000140: 66 6F 72 20 69 6E 73 65 72 74 69 6F 6E 73 29 0D for insertions).
000150: 0A 2A 29 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 .*)..BEGIN..
000160: 20 20 20 20 46 4F 52 20 72 65 70 6C 79 3A 3D 30 FOR reply:=0
000170: 20 54 4F 20 48 49 47 48 28 66 2E 4C 61 62 65 6C TO HIGH(f.Label
000180: 73 29 20 44 4F 0D 0A 09 09 57 49 54 48 20 66 2E s) DO....WITH f.
000190: 4C 61 62 65 6C 73 5B 72 65 70 6C 79 5D 20 44 4F Labels[reply] DO
0001A0: 0D 0A 09 09 09 49 46 20 28 42 6C 6F 63 6B 3D 57 .....IF (Block=W
0001B0: 6F 72 6B 69 6E 67 29 20 41 4E 44 20 28 4F 52 44 orking) AND (ORD
0001C0: 28 4F 66 66 73 65 74 29 3E 3D 43 68 61 72 50 6F (Offset)>=CharPo
0001D0: 73 29 20 54 48 45 4E 0D 0A 09 09 09 09 49 46 20 s) THEN......IF
0001E0: 28 6E 75 6D 62 65 72 3D 4F 52 44 28 57 6F 72 6B (number=ORD(Work
0001F0: 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 29 20 ing^.BlockLen))
Size : 512 (Real : 512)
000000: 52 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 RD(Working^.Bloc
000010: 6B 4C 65 6E 29 3B 0D 0A 09 09 57 6F 72 6B 69 6E kLen);....Workin
000020: 67 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 g:=Working^.Next
000030: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 49 46 ;....END;.....IF
000040: 20 57 6F 72 6B 69 6E 67 3D 4E 49 4C 20 54 48 45 Working=NIL THE
000050: 4E 20 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 N RETURN FALSE E
000060: 4E 44 3B 0D 0A 09 0D 0A 09 28 2A 69 66 20 65 6E ND;......(*if en
000070: 64 20 70 72 65 63 65 64 65 73 20 62 65 67 69 6E d precedes begin
000080: 6E 69 6E 67 20 6F 66 20 62 6C 6F 63 6B 2A 29 0D ning of block*).
000090: 0A 0D 0A 09 72 65 70 6C 79 3A 3D 72 65 70 6C 79 ....reply:=reply
0000A0: 2B 4F 52 44 28 46 2E 4C 61 62 65 6C 73 5B 31 31 +ORD(F.Labels[11
0000B0: 5D 2E 4F 66 66 73 65 74 29 2D 4F 52 44 28 46 2E ].Offset)-ORD(F.
0000C0: 4C 61 62 65 6C 73 5B 31 30 5D 2E 4F 66 66 73 65 Labels[10].Offse
0000D0: 74 29 3B 0D 0A 09 52 45 54 55 52 4E 20 72 65 70 t);...RETURN rep
0000E0: 6C 79 3E 3D 30 0D 0A 09 45 4E 44 20 43 68 65 63 ly>=0...END Chec
0000F0: 6B 42 6C 6F 63 6B 3B 0D 0A 50 52 4F 43 45 44 55 kBlock;..PROCEDU
000100: 52 45 20 42 6C 6F 63 6B 43 6F 70 79 28 56 41 52 RE BlockCopy(VAR
000110: 20 46 72 6F 6D 46 69 6C 65 2C 54 6F 46 69 6C 65 FromFile,ToFile
000120: 3A 45 64 69 74 46 69 6C 65 29 3A 42 4F 4F 4C 45 :EditFile):BOOLE
000130: 41 4E 3B 0D 0A 0D 0A 28 2A 09 43 61 72 65 66 75 AN;....(*.Carefu
000140: 6C 20 2D 20 45 61 73 79 20 2D 20 4F 75 63 68 21 l - Easy - Ouch!
000150: 0D 0A 0D 0A 09 46 72 6F 6D 46 69 6C 65 20 61 6E .....FromFile an
000160: 64 20 54 6F 46 69 6C 65 20 6D 61 79 20 62 65 20 d ToFile may be
000170: 74 68 65 20 73 61 6D 65 20 20 76 61 72 69 61 62 the same variab
000180: 6C 65 2A 29 0D 0A 0D 0A 56 41 52 09 69 3A 49 4E le*)....VAR.i:IN
000190: 54 45 47 45 52 3B 0D 0A 09 63 3A 41 52 52 41 59 TEGER;...c:ARRAY
0001A0: 5B 31 2E 2E 54 65 78 74 4C 65 6E 5D 20 4F 46 20 [1..TextLen] OF
0001B0: 43 48 41 52 3B 0D 0A 09 70 2C 71 2C 72 3A 50 6F CHAR;...p,q,r:Po
0001C0: 73 69 74 69 6F 6E 3B 0D 0A 0D 0A 28 2A 09 54 68 sition;....(*.Th
0001D0: 69 73 20 63 6F 64 65 20 69 73 20 61 20 6C 69 74 is code is a lit
0001E0: 74 6C 65 20 6F 64 64 20 66 6F 72 20 74 68 65 20 tle odd for the
0001F0: 66 6F 6C 6C 6F 77 69 6E 67 20 72 65 61 73 6F 6E following reason
Size : 512 (Real : 512)
000000: 54 48 45 4E 0D 0A 09 09 09 09 09 42 6C 6F 63 6B THEN.......Block
000010: 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B :=Working^.Next;
000020: 0D 0A 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 30 .......Offset:=0
000030: 3B 0D 0A 09 09 09 09 45 4C 53 49 46 20 28 6E 75 ;......ELSIF (nu
000040: 6D 62 65 72 2B 43 68 61 72 50 6F 73 29 3E 4F 52 mber+CharPos)>OR
000050: 44 28 4F 66 66 73 65 74 29 20 54 48 45 4E 0D 0A D(Offset) THEN..
000060: 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 43 68 61 .....Offset:=Cha
000070: 72 50 6F 73 0D 0A 09 09 09 09 45 4C 53 45 0D 0A rPos......ELSE..
000080: 09 09 09 09 09 4F 66 66 73 65 74 3A 3D 4F 52 44 .....Offset:=ORD
000090: 28 4F 66 66 73 65 74 29 2D 6E 75 6D 62 65 72 0D (Offset)-number.
0000A0: 0A 09 09 09 09 09 45 4E 44 3B 28 2A 49 46 2A 29 ......END;(*IF*)
0000B0: 0D 0A 09 09 09 09 45 4E 44 3B 28 2A 49 46 20 42 ......END;(*IF B
0000C0: 6C 6F 63 6B 3D 57 6F 72 6B 69 6E 67 20 65 74 63 lock=Working etc
0000D0: 2A 29 0D 0A 09 09 09 45 4E 44 3B 20 28 2A 57 49 *).....END; (*WI
0000E0: 54 48 2A 29 0D 0A 09 09 45 4E 44 3B 28 2A 46 4F TH*)....END;(*FO
0000F0: 52 2A 29 0D 0A 09 45 4E 44 20 52 65 6C 6F 63 61 R*)...END Reloca
000100: 74 65 4C 61 62 65 6C 73 3B 0D 0A 0D 0A 0D 0A 50 teLabels;......P
000110: 52 4F 43 45 44 55 52 45 20 44 65 6C 43 68 61 72 ROCEDURE DelChar
000120: 73 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C 65 s(VAR f:EditFile
000130: 3B 6E 75 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 ;number:INTEGER)
000140: 3B 0D 0A 0D 0A 28 2A 09 64 65 6C 65 74 65 20 61 ;....(*.delete a
000150: 20 6E 75 6D 62 65 72 20 6F 66 20 63 68 61 72 61 number of chara
000160: 63 74 65 72 73 2A 29 0D 0A 0D 0A 50 52 4F 43 45 cters*)....PROCE
000170: 44 55 52 45 20 44 65 6C 49 6E 42 6C 6F 63 6B 28 DURE DelInBlock(
000180: 6E 75 6D 62 65 72 3A 49 4E 54 45 47 45 52 29 3B number:INTEGER);
000190: 0D 0A 0D 0A 28 2A 09 50 65 72 66 6F 72 6D 20 61 ....(*.Perform a
0001A0: 20 64 65 6C 65 74 65 20 77 68 69 63 68 20 64 6F delete which do
0001B0: 65 73 20 6E 6F 74 20 73 70 61 6E 20 61 20 62 6C es not span a bl
0001C0: 6F 63 6B 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 52 ock*)..BEGIN...R
0001D0: 65 6C 6F 63 61 74 65 4C 61 62 65 6C 73 28 66 2C elocateLabels(f,
0001E0: 6E 75 6D 62 65 72 29 3B 0D 0A 09 57 49 54 48 20 number);...WITH
0001F0: 57 6F 72 6B 69 6E 67 5E 20 44 4F 0D 0A 09 09 49 Working^ DO....I
Size : 512 (Real : 512)
000000: 3A 0D 0A 0D 0A 09 31 2F 09 49 6E 73 43 68 61 72 :.....1/.InsChar
000010: 73 20 63 61 6E 6E 6F 74 20 69 6E 73 65 72 74 20 s cannot insert
000020: 6D 6F 72 65 20 74 68 61 6E 20 68 61 6C 66 20 61 more than half a
000030: 20 62 6C 6F 63 6B 20 6F 66 20 63 68 61 72 61 63 block of charac
000040: 74 65 72 73 0D 0A 09 32 2F 09 49 66 20 79 6F 75 ters...2/.If you
000050: 20 64 6F 6E 27 74 20 72 65 61 64 20 61 74 20 6C don't read at l
000060: 65 61 73 74 20 61 20 62 6C 6F 63 6B 20 61 74 20 east a block at
000070: 61 20 74 69 6D 65 20 61 6E 64 20 74 68 65 0D 0A a time and the..
000080: 09 09 74 6F 20 61 6E 64 20 66 72 6F 6D 20 66 69 ..to and from fi
000090: 6C 65 73 20 61 72 65 20 74 68 65 20 73 61 6D 65 les are the same
0000A0: 2C 20 79 6F 75 20 6D 61 79 20 68 61 76 65 20 74 , you may have t
0000B0: 6F 20 63 68 61 6E 67 65 20 74 68 65 0D 0A 09 09 o change the....
0000C0: 70 6F 73 69 74 69 6F 6E 20 69 6E 20 74 68 65 20 position in the
0000D0: 66 72 6F 6D 20 66 69 6C 65 20 74 6F 20 72 65 66 from file to ref
0000E0: 6C 65 63 74 20 69 6E 73 65 72 74 69 6F 6E 73 2C lect insertions,
0000F0: 20 77 68 69 63 68 20 69 73 0D 0A 09 09 61 77 6B which is....awk
000100: 77 61 72 64 20 28 74 68 6F 75 67 68 20 79 6F 75 ward (though you
000110: 20 63 6F 75 6C 64 20 61 6C 77 61 79 73 20 61 64 could always ad
000120: 64 20 61 20 74 65 6D 70 6F 72 61 72 79 20 6C 61 d a temporary la
000130: 62 65 6C 29 0D 0A 0D 0A 09 54 68 65 72 65 66 6F bel).....Therefo
000140: 72 65 2C 20 74 65 78 74 20 69 73 20 72 65 61 64 re, text is read
000150: 20 61 6E 64 20 74 68 65 6E 20 69 6E 73 65 72 74 and then insert
000160: 65 64 20 69 6E 20 75 70 20 74 6F 20 74 68 72 65 ed in up to thre
000170: 65 20 67 6F 65 73 21 2A 29 0D 0A 0D 0A 09 54 68 e goes!*).....Th
000180: 69 72 64 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 ird:CARDINAL;..B
000190: 45 47 49 4E 0D 0A 09 54 68 69 72 64 3A 3D 54 65 EGIN...Third:=Te
0001A0: 78 74 4C 65 6E 20 44 49 56 20 33 3B 0D 0A 09 49 xtLen DIV 3;...I
0001B0: 46 20 4E 4F 54 20 43 68 65 63 6B 42 6C 6F 63 6B F NOT CheckBlock
0001C0: 28 46 72 6F 6D 46 69 6C 65 29 20 54 48 45 4E 20 (FromFile) THEN
0001D0: 52 45 54 55 52 4E 20 46 41 4C 53 45 20 45 4E 44 RETURN FALSE END
0001E0: 3B 0D 0A 09 57 49 54 48 20 46 72 6F 6D 46 69 6C ;...WITH FromFil
0001F0: 65 2E 4C 61 62 65 6C 73 5B 31 30 5D 20 44 4F 0D e.Labels[10] DO.
Size : 512 (Real : 512)
000000: 46 20 28 6E 75 6D 62 65 72 3D 4F 52 44 28 42 6C F (number=ORD(Bl
000010: 6F 63 6B 4C 65 6E 29 29 20 28 2A 3D 3E 43 68 61 ockLen)) (*=>Cha
000020: 72 50 6F 73 3D 30 2A 29 20 54 48 45 4E 0D 0A 09 rPos=0*) THEN...
000030: 09 09 28 2A 44 65 6C 65 74 65 20 62 6C 6F 63 6B ..(*Delete block
000040: 2A 29 0D 0A 0D 0A 09 09 09 49 46 20 4E 65 78 74 *).......IF Next
000050: 3C 3E 4E 49 4C 20 54 48 45 4E 20 4E 65 78 74 5E <>NIL THEN Next^
000060: 2E 50 72 65 64 3A 3D 50 72 65 64 20 45 4E 44 3B .Pred:=Pred END;
000070: 0D 0A 09 09 09 49 46 20 50 72 65 64 3C 3E 4E 49 .....IF Pred<>NI
000080: 4C 20 54 48 45 4E 20 0D 0A 09 09 09 09 50 72 65 L THEN ......Pre
000090: 64 5E 2E 4E 65 78 74 3A 3D 4E 65 78 74 3B 0D 0A d^.Next:=Next;..
0000A0: 09 09 09 09 44 49 53 50 4F 53 45 28 57 6F 72 6B ....DISPOSE(Work
0000B0: 69 6E 67 29 3B 0D 0A 09 09 09 45 4C 53 49 46 20 ing);.....ELSIF
0000C0: 4E 65 78 74 3C 3E 4E 49 4C 20 54 48 45 4E 20 0D Next<>NIL THEN .
0000D0: 0A 09 09 09 09 66 2E 43 68 61 69 6E 3A 3D 4E 65 .....f.Chain:=Ne
0000E0: 78 74 3B 0D 0A 09 09 09 09 44 49 53 50 4F 53 45 xt;......DISPOSE
0000F0: 28 57 6F 72 6B 69 6E 67 29 3B 0D 0A 09 09 09 45 (Working);.....E
000100: 4C 53 45 09 28 2A 6F 6E 6C 79 20 62 6C 6F 63 6B LSE.(*only block
000110: 20 69 6E 20 66 69 6C 65 20 73 6F 20 6B 65 65 70 in file so keep
000120: 2A 29 0D 0A 09 09 09 09 42 6C 6F 63 6B 4C 65 6E *)......BlockLen
000130: 3A 3D 31 3B 0D 0A 09 09 09 09 57 6F 72 6B 69 6E :=1;......Workin
000140: 67 5E 2E 43 68 61 72 73 5B 30 5D 3A 3D 45 4F 46 g^.Chars[0]:=EOF
000150: 3B 0D 0A 09 09 09 09 45 4E 44 3B 28 2A 50 72 65 ;......END;(*Pre
000160: 64 3C 3E 4E 49 4C 2A 29 0D 0A 09 09 45 4C 53 45 d<>NIL*)....ELSE
000170: 09 0D 0A 09 09 09 49 46 20 4F 52 44 28 42 6C 6F ......IF ORD(Blo
000180: 63 6B 4C 65 6E 29 3E 28 43 68 61 72 50 6F 73 2B ckLen)>(CharPos+
000190: 6E 75 6D 62 65 72 29 20 54 48 45 4E 0D 0A 09 09 number) THEN....
0001A0: 09 20 20 20 20 4D 6F 76 65 64 6F 77 6E 28 41 44 . Movedown(AD
0001B0: 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 2B R(Chars[CharPos+
0001C0: 6E 75 6D 62 65 72 5D 29 2C 0D 0A 09 09 09 09 41 number]),......A
0001D0: 44 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 DR(Chars[CharPos
0001E0: 5D 29 2C 0D 0A 09 09 09 09 4F 52 44 28 42 6C 6F ]),......ORD(Blo
0001F0: 63 6B 4C 65 6E 29 2D 4F 52 44 28 43 68 61 72 50 ckLen)-ORD(CharP
Size : 512 (Real : 512)
000000: 0A 09 09 43 68 61 72 50 6F 73 3A 3D 4F 66 66 73 ...CharPos:=Offs
000010: 65 74 3B 0D 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D et;....Working:=
000020: 42 6C 6F 63 6B 3B 0D 0A 09 09 45 4E 44 3B 0D 0A Block;....END;..
000030: 09 43 68 61 72 73 72 65 61 64 3A 3D 30 3B 0D 0A .Charsread:=0;..
000040: 09 69 3A 3D 72 65 70 6C 79 3B 0D 0A 09 72 3A 3D .i:=reply;...r:=
000050: 46 72 6F 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3B FromFile.CurPos;
000060: 0D 0A 09 71 3A 3D 54 6F 46 69 6C 65 2E 43 75 72 ...q:=ToFile.Cur
000070: 50 6F 73 3B 0D 0A 09 46 72 6F 6D 46 69 6C 65 2E Pos;...FromFile.
000080: 43 75 72 50 6F 73 3A 3D 46 72 6F 6D 46 69 6C 65 CurPos:=FromFile
000090: 2E 4C 61 62 65 6C 73 5B 31 30 5D 3B 0D 0A 09 4C .Labels[10];...L
0000A0: 4F 4F 50 0D 0A 09 09 49 46 20 69 3D 30 20 54 48 OOP....IF i=0 TH
0000B0: 45 4E 20 0D 0A 09 09 09 45 58 49 54 20 0D 0A 09 EN .....EXIT ...
0000C0: 09 09 45 4E 44 3B 0D 0A 09 09 49 4E 43 28 43 68 ..END;....INC(Ch
0000D0: 61 72 73 72 65 61 64 29 3B 0D 0A 09 09 63 5B 43 arsread);....c[C
0000E0: 68 61 72 73 72 65 61 64 5D 3A 3D 57 6F 72 6B 69 harsread]:=Worki
0000F0: 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F ng^.Chars[CharPo
000100: 73 5D 3B 0D 0A 09 09 49 46 20 28 43 68 61 72 73 s];....IF (Chars
000110: 72 65 61 64 3D 48 49 47 48 28 63 29 29 20 4F 52 read=HIGH(c)) OR
000120: 20 28 69 3D 31 29 20 54 48 45 4E 0D 0A 09 09 09 (i=1) THEN.....
000130: 73 61 76 65 63 75 72 70 6F 73 28 46 72 6F 6D 46 savecurpos(FromF
000140: 69 6C 65 29 3B 0D 0A 09 09 09 70 3A 3D 46 72 6F ile);.....p:=Fro
000150: 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3B 0D 0A 09 mFile.CurPos;...
000160: 09 09 54 6F 46 69 6C 65 2E 43 75 72 50 6F 73 3A ..ToFile.CurPos:
000170: 3D 71 3B 0D 0A 09 09 09 57 48 49 4C 45 20 43 68 =q;.....WHILE Ch
000180: 61 72 73 72 65 61 64 3E 30 20 44 4F 0D 0A 09 09 arsread>0 DO....
000190: 09 09 49 46 20 43 68 61 72 73 72 65 61 64 3E 54 ..IF Charsread>T
0001A0: 68 69 72 64 20 54 48 45 4E 0D 0A 09 09 09 09 09 hird THEN.......
0001B0: 49 6E 73 43 68 61 72 73 28 54 6F 46 69 6C 65 2C InsChars(ToFile,
0001C0: 63 2C 54 68 69 72 64 29 3B 0D 0A 09 09 09 09 09 c,Third);.......
0001D0: 43 68 61 72 73 72 65 61 64 3A 3D 43 68 61 72 73 Charsread:=Chars
0001E0: 72 65 61 64 2D 54 68 69 72 64 3B 0D 0A 09 09 09 read-Third;.....
0001F0: 09 09 4D 6F 76 65 64 6F 77 6E 28 41 44 52 28 63 ..Movedown(ADR(c
Size : 512 (Real : 512)
000000: 6F 73 29 2D 6E 75 6D 62 65 72 29 3B 0D 0A 09 09 os)-number);....
000010: 09 09 45 4E 44 3B 0D 0A 09 09 09 42 6C 6F 63 6B ..END;.....Block
000020: 4C 65 6E 3A 3D 4F 52 44 28 42 6C 6F 63 6B 4C 65 Len:=ORD(BlockLe
000030: 6E 29 2D 6E 75 6D 62 65 72 3B 0D 0A 09 09 09 49 n)-number;.....I
000040: 46 20 28 4E 65 78 74 3D 4E 49 4C 29 20 41 4E 44 F (Next=NIL) AND
000050: 20 28 43 68 61 72 73 5B 42 6C 6F 63 6B 4C 65 6E (Chars[BlockLen
000060: 2D 31 5D 3C 3E 45 4F 46 29 20 54 48 45 4E 0D 0A -1]<>EOF) THEN..
000070: 09 09 09 09 43 68 61 72 73 5B 42 6C 6F 63 6B 4C ....Chars[BlockL
000080: 65 6E 5D 3A 3D 45 4F 46 3B 0D 0A 09 09 09 09 49 en]:=EOF;......I
000090: 4E 43 28 42 6C 6F 63 6B 4C 65 6E 29 3B 20 0D 0A NC(BlockLen); ..
0000A0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
0000B0: 28 2A 20 42 6C 6F 63 6B 20 6E 6F 74 20 6E 6F 77 (* Block not now
0000C0: 20 65 6D 70 74 79 2A 29 3B 0D 0A 09 09 45 4E 44 empty*);....END
0000D0: 3B 28 2A 57 49 54 48 2A 29 0D 0A 09 45 4E 44 20 ;(*WITH*)...END
0000E0: 44 65 6C 49 6E 42 6C 6F 63 6B 3B 0D 0A 0D 0A 56 DelInBlock;....V
0000F0: 41 52 09 4E 65 78 74 42 6C 6F 63 6B 3A 50 54 65 AR.NextBlock:PTe
000100: 78 74 3B 0D 0A 42 45 47 49 4E 0D 0A 09 73 65 74 xt;..BEGIN...set
000110: 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 57 48 49 curpos(f);...WHI
000120: 4C 45 20 28 6E 75 6D 62 65 72 3E 30 29 20 41 4E LE (number>0) AN
000130: 44 20 28 57 6F 72 6B 69 6E 67 3C 3E 4E 49 4C 29 D (Working<>NIL)
000140: 20 44 4F 0D 0A 09 09 4E 65 78 74 42 6C 6F 63 6B DO....NextBlock
000150: 3A 3D 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3B :=Working^.Next;
000160: 0D 0A 09 09 49 46 20 6E 75 6D 62 65 72 3C 3D 28 ....IF number<=(
000170: 4F 52 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F ORD(Working^.Blo
000180: 63 6B 4C 65 6E 29 2D 43 68 61 72 50 6F 73 29 20 ckLen)-CharPos)
000190: 54 48 45 4E 0D 0A 09 09 09 44 65 6C 49 6E 42 6C THEN.....DelInBl
0001A0: 6F 63 6B 28 6E 75 6D 62 65 72 29 3B 0D 0A 09 09 ock(number);....
0001B0: 09 6E 75 6D 62 65 72 3A 3D 30 3B 0D 0A 09 09 45 .number:=0;....E
0001C0: 4C 53 45 0D 0A 09 09 09 6E 75 6D 62 65 72 3A 3D LSE.....number:=
0001D0: 6E 75 6D 62 65 72 2D 4F 52 44 28 57 6F 72 6B 69 number-ORD(Worki
0001E0: 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 2B 43 68 ng^.BlockLen)+Ch
0001F0: 61 72 50 6F 73 3B 0D 0A 09 09 09 44 65 6C 49 6E arPos;.....DelIn
Size : 512 (Real : 512)
000000: 5B 54 68 69 72 64 2B 31 5D 29 2C 0D 0A 09 09 09 [Third+1]),.....
000010: 09 09 09 41 44 52 28 63 29 2C 43 68 61 72 73 72 ...ADR(c),Charsr
000020: 65 61 64 29 3B 0D 0A 09 09 09 09 45 4C 53 45 0D ead);......ELSE.
000030: 0A 09 09 09 09 09 49 6E 73 43 68 61 72 73 28 54 ......InsChars(T
000040: 6F 46 69 6C 65 2C 63 2C 43 68 61 72 73 72 65 61 oFile,c,Charsrea
000050: 64 29 3B 0D 0A 09 09 09 09 09 43 68 61 72 73 72 d);.......Charsr
000060: 65 61 64 3A 3D 30 3B 0D 0A 09 09 09 09 09 45 4E ead:=0;.......EN
000070: 44 3B 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 09 D;......END;....
000080: 09 71 3A 3D 54 6F 46 69 6C 65 2E 43 75 72 50 6F .q:=ToFile.CurPo
000090: 73 3B 0D 0A 09 09 09 46 72 6F 6D 46 69 6C 65 2E s;.....FromFile.
0000A0: 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 09 09 73 CurPos:=p;.....s
0000B0: 65 74 63 75 72 70 6F 73 28 46 72 6F 6D 46 69 6C etcurpos(FromFil
0000C0: 65 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 e);.....END;....
0000D0: 49 46 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 29 IF NOT Advance()
0000E0: 20 54 48 45 4E 20 45 58 49 54 20 28 2A 20 6E 65 THEN EXIT (* ne
0000F0: 76 65 72 20 74 61 6B 65 6E 2A 29 20 45 4E 44 3B ver taken*) END;
000100: 0D 0A 09 09 44 45 43 28 69 29 3B 0D 0A 09 09 45 ....DEC(i);....E
000110: 4E 44 3B 09 28 2A 4C 4F 4F 50 2A 29 0D 0A 09 46 ND;.(*LOOP*)...F
000120: 72 6F 6D 46 69 6C 65 2E 43 75 72 50 6F 73 3A 3D romFile.CurPos:=
000130: 72 3B 0D 0A 09 54 6F 46 69 6C 65 2E 43 75 72 50 r;...ToFile.CurP
000140: 6F 73 3A 3D 71 3B 0D 0A 09 52 45 54 55 52 4E 20 os:=q;...RETURN
000150: 54 52 55 45 3B 0D 0A 09 45 4E 44 20 42 6C 6F 63 TRUE;...END Bloc
000160: 6B 43 6F 70 79 3B 0D 0A 50 52 4F 43 45 44 55 52 kCopy;..PROCEDUR
000170: 45 20 42 6C 6F 63 6B 44 65 6C 28 56 41 52 20 46 E BlockDel(VAR F
000180: 72 6F 6D 46 69 6C 65 3A 45 64 69 74 46 69 6C 65 romFile:EditFile
000190: 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 56 41 52 09 ):BOOLEAN;..VAR.
0001A0: 70 3A 50 6F 73 69 74 69 6F 6E 3B 0D 0A 42 45 47 p:Position;..BEG
0001B0: 49 4E 0D 0A 09 49 46 20 4E 4F 54 20 43 68 65 63 IN...IF NOT Chec
0001C0: 6B 42 6C 6F 63 6B 28 46 72 6F 6D 46 69 6C 65 29 kBlock(FromFile)
0001D0: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 46 41 4C THEN RETURN FAL
0001E0: 53 45 20 45 4E 44 3B 0D 0A 09 57 49 54 48 20 46 SE END;...WITH F
0001F0: 72 6F 6D 46 69 6C 65 20 44 4F 0D 0A 09 09 4C 61 romFile DO....La
Size : 512 (Real : 512)
000000: 42 6C 6F 63 6B 28 4F 52 44 28 57 6F 72 6B 69 6E Block(ORD(Workin
000010: 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 2D 43 68 61 g^.BlockLen)-Cha
000020: 72 50 6F 73 29 3B 0D 0A 09 09 09 45 4E 44 3B 0D rPos);.....END;.
000030: 0A 09 09 49 46 20 28 6E 75 6D 62 65 72 3E 30 29 ...IF (number>0)
000040: 20 4F 52 20 28 57 6F 72 6B 69 6E 67 3D 4E 49 4C OR (Working=NIL
000050: 29 20 54 48 45 4E 20 0D 0A 09 09 09 57 6F 72 6B ) THEN .....Work
000060: 69 6E 67 3A 3D 4E 65 78 74 42 6C 6F 63 6B 3B 0D ing:=NextBlock;.
000070: 0A 09 09 09 43 68 61 72 50 6F 73 3A 3D 30 3B 20 ....CharPos:=0;
000080: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 .....END;....END
000090: 3B 20 28 2A 57 48 49 4C 45 2A 29 0D 0A 09 49 46 ; (*WHILE*)...IF
0000A0: 20 57 6F 72 6B 69 6E 67 3D 4E 49 4C 20 54 48 45 Working=NIL THE
0000B0: 4E 20 0D 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D 66 N ....Working:=f
0000C0: 2E 43 68 61 69 6E 3B 0D 0A 09 09 57 48 49 4C 45 .Chain;....WHILE
0000D0: 20 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3C 3E Working^.Next<>
0000E0: 4E 49 4C 20 44 4F 20 57 6F 72 6B 69 6E 67 3A 3D NIL DO Working:=
0000F0: 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 20 45 4E Working^.Next EN
000100: 44 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 57 D;....CharPos:=W
000110: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
000120: 0D 0A 09 09 45 4E 44 3B 28 2A 64 65 6C 65 74 65 ....END;(*delete
000130: 64 20 65 76 65 72 79 74 68 69 6E 67 2A 29 0D 0A d everything*)..
000140: 09 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D .savecurpos(f);.
000150: 0A 09 45 4E 44 20 44 65 6C 43 68 61 72 73 3B 0D ..END DelChars;.
000160: 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 73 ...PROCEDURE Ins
000170: 43 68 61 72 73 28 56 41 52 20 66 3A 45 64 69 74 Chars(VAR f:Edit
000180: 46 69 6C 65 3B 56 41 52 20 53 3A 41 52 52 41 59 File;VAR S:ARRAY
000190: 20 4F 46 20 43 48 41 52 3B 6C 65 6E 3A 49 4E 54 OF CHAR;len:INT
0001A0: 45 47 45 52 29 3B 0D 0A 28 2A 09 69 6E 73 65 72 EGER);..(*.inser
0001B0: 74 20 63 68 61 72 61 63 74 65 72 73 2A 29 0D 0A t characters*)..
0001C0: 56 41 52 09 6C 65 66 74 2C 66 6F 6C 6C 6F 77 73 VAR.left,follows
0001D0: 3A 49 4E 54 45 47 45 52 3B 0D 0A 09 4D 61 69 6E :INTEGER;...Main
0001E0: 42 6C 6F 63 6B 3A 50 54 65 78 74 3B 0D 0A 50 52 Block:PText;..PR
0001F0: 4F 43 45 44 55 52 45 20 49 6E 73 49 6E 42 6C 6F OCEDURE InsInBlo
Size : 512 (Real : 512)
000000: 69 6E 65 28 29 3A 49 4E 54 45 47 45 52 3B 0D 0A ine():INTEGER;..
000010: 0D 0A 28 2A 09 6D 6F 76 65 20 20 74 6F 20 73 74 ..(*.move to st
000020: 61 72 74 20 6F 66 20 6E 65 78 74 20 6C 69 6E 65 art of next line
000030: 0D 0A 09 72 65 74 75 72 6E 73 20 63 68 61 72 61 ...returns chara
000040: 63 74 65 72 73 20 61 64 76 61 6E 63 65 64 0D 0A cters advanced..
000050: 09 70 6F 73 69 74 69 6F 6E 73 20 74 6F 20 66 69 .positions to fi
000060: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 rst character of
000070: 20 6E 65 78 74 20 6C 69 6E 65 2A 29 0D 0A 56 41 next line*)..VA
000080: 52 09 70 6F 73 3A 49 4E 54 45 47 45 52 3B 0D 0A R.pos:INTEGER;..
000090: 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 .b:BOOLEAN;..BEG
0000A0: 49 4E 0D 0A 09 41 64 76 61 6E 63 65 4F 4B 3A 3D IN...AdvanceOK:=
0000B0: 54 52 55 45 3B 0D 0A 09 70 6F 73 3A 3D 30 3B 0D TRUE;...pos:=0;.
0000C0: 0A 09 4C 4F 4F 50 0D 0A 09 09 63 68 3A 3D 57 6F ..LOOP....ch:=Wo
0000D0: 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 rking^.Chars[Cha
0000E0: 72 50 6F 73 5D 3B 0D 0A 09 09 49 46 20 63 68 3D rPos];....IF ch=
0000F0: 45 4F 46 20 54 48 45 4E 20 0D 0A 09 09 09 41 64 EOF THEN .....Ad
000100: 76 61 6E 63 65 4F 4B 3A 3D 46 41 4C 53 45 3B 0D vanceOK:=FALSE;.
000110: 0A 09 09 09 45 58 49 54 20 0D 0A 09 09 09 45 4E ....EXIT .....EN
000120: 44 3B 0D 0A 09 09 49 46 20 28 63 68 3D 43 52 29 D;....IF (ch=CR)
000130: 20 4F 52 20 28 63 68 3D 4C 46 29 20 4F 52 20 28 OR (ch=LF) OR (
000140: 63 68 3D 46 46 29 20 54 48 45 4E 20 0D 0A 09 09 ch=FF) THEN ....
000150: 09 49 46 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 .IF NOT Advance(
000160: 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 3B ) THEN EXIT END;
000170: 0D 0A 09 09 09 63 68 3A 3D 57 6F 72 6B 69 6E 67 .....ch:=Working
000180: 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F 73 5D ^.Chars[CharPos]
000190: 3B 0D 0A 09 09 09 49 46 20 63 68 3D 4C 46 20 54 ;.....IF ch=LF T
0001A0: 48 45 4E 20 62 3A 3D 41 64 76 61 6E 63 65 28 29 HEN b:=Advance()
0001B0: 20 45 4E 44 3B 0D 0A 09 09 09 45 58 49 54 0D 0A END;.....EXIT..
0001C0: 09 09 09 45 4E 44 3B 0D 0A 09 09 49 4E 43 28 70 ...END;....INC(p
0001D0: 6F 73 29 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 41 os);....IF NOT A
0001E0: 64 76 61 6E 63 65 28 29 20 54 48 45 4E 20 0D 0A dvance() THEN ..
0001F0: 09 09 09 41 64 76 61 6E 63 65 4F 4B 3A 3D 46 41 ...AdvanceOK:=FA
Size : 512 (Real : 512)
000000: 63 6B 3B 0D 0A 56 41 52 09 73 74 61 72 74 3A 49 ck;..VAR.start:I
000010: 4E 54 45 47 45 52 3B 0D 0A 09 69 3A 49 4E 54 45 NTEGER;...i:INTE
000020: 47 45 52 3B 0D 0A 42 45 47 49 4E 0D 0A 0D 0A 09 GER;..BEGIN.....
000030: 09 28 2A 61 64 6A 75 73 74 20 6C 61 62 65 6C 73 .(*adjust labels
000040: 2A 29 0D 0A 09 52 65 6C 6F 63 61 74 65 4C 61 62 *)...RelocateLab
000050: 65 6C 73 28 66 2C 2D 6C 65 6E 29 3B 0D 0A 09 73 els(f,-len);...s
000060: 74 61 72 74 3A 3D 30 3B 0D 0A 09 57 49 54 48 20 tart:=0;...WITH
000070: 57 6F 72 6B 69 6E 67 5E 20 44 4F 0D 0A 09 09 49 Working^ DO....I
000080: 46 20 4F 52 44 28 42 6C 6F 63 6B 4C 65 6E 29 3E F ORD(BlockLen)>
000090: 43 68 61 72 50 6F 73 20 54 48 45 4E 0D 0A 09 09 CharPos THEN....
0000A0: 20 20 20 20 4D 6F 76 65 75 70 28 41 44 52 28 43 Moveup(ADR(C
0000B0: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 29 2C 41 hars[CharPos]),A
0000C0: 44 52 28 43 68 61 72 73 5B 43 68 61 72 50 6F 73 DR(Chars[CharPos
0000D0: 2B 6C 65 6E 5D 29 2C 0D 0A 09 09 09 4F 52 44 28 +len]),.....ORD(
0000E0: 42 6C 6F 63 6B 4C 65 6E 29 2D 43 68 61 72 50 6F BlockLen)-CharPo
0000F0: 73 29 3B 0D 0A 09 09 20 20 20 20 45 4E 44 3B 0D s);.... END;.
000100: 0A 09 09 42 6C 6F 63 6B 4C 65 6E 3A 3D 4F 52 44 ...BlockLen:=ORD
000110: 28 42 6C 6F 63 6B 4C 65 6E 29 2B 6C 65 6E 3B 0D (BlockLen)+len;.
000120: 0A 09 09 57 48 49 4C 45 20 6C 65 6E 3E 30 20 44 ...WHILE len>0 D
000130: 4F 0D 0A 09 09 09 43 68 61 72 73 5B 43 68 61 72 O.....Chars[Char
000140: 50 6F 73 5D 3A 3D 53 5B 73 74 61 72 74 5D 3B 0D Pos]:=S[start];.
000150: 0A 09 09 09 49 4E 43 28 73 74 61 72 74 29 3B 0D ....INC(start);.
000160: 0A 09 09 09 44 45 43 28 6C 65 6E 29 3B 0D 0A 09 ....DEC(len);...
000170: 09 09 49 4E 43 28 43 68 61 72 50 6F 73 29 3B 0D ..INC(CharPos);.
000180: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B ....END;....END;
000190: 0D 0A 09 45 4E 44 20 49 6E 73 49 6E 42 6C 6F 63 ...END InsInBloc
0001A0: 6B 3B 0D 0A 09 09 09 0D 0A 28 2A 09 49 66 20 74 k;.......(*.If t
0001B0: 65 78 74 20 77 69 6C 6C 20 66 69 74 20 69 6E 20 ext will fit in
0001C0: 63 75 72 72 65 6E 74 20 62 6C 6F 63 6B 2C 20 65 current block, e
0001D0: 6E 74 65 72 20 69 6E 20 63 75 72 72 65 6E 74 20 nter in current
0001E0: 62 6C 6F 63 6B 0D 0A 09 65 6C 73 65 20 73 70 6C block...else spl
0001F0: 69 74 20 62 6C 6F 63 6B 20 61 6E 64 20 65 6E 74 it block and ent
Size : 512 (Real : 512)
000000: 4C 53 45 3B 0D 0A 09 09 09 45 58 49 54 20 0D 0A LSE;.....EXIT ..
000010: 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 20 ...END;....END;
000020: 28 2A 4C 4F 4F 50 2A 29 0D 0A 09 52 45 54 55 52 (*LOOP*)...RETUR
000030: 4E 20 70 6F 73 3B 0D 0A 09 45 4E 44 20 41 64 76 N pos;...END Adv
000040: 61 6E 63 65 4C 69 6E 65 3B 0D 0A 0D 0A 09 0D 0A anceLine;.......
000050: 50 52 4F 43 45 44 55 52 45 20 52 65 74 72 6C 69 PROCEDURE Retrli
000060: 6E 65 28 56 41 52 20 66 3A 45 64 69 74 46 69 6C ne(VAR f:EditFil
000070: 65 3B 56 41 52 20 6C 65 6E 2C 70 6F 73 3A 49 4E e;VAR len,pos:IN
000080: 54 45 47 45 52 3B 56 41 52 20 70 3A 50 6F 73 69 TEGER;VAR p:Posi
000090: 74 69 6F 6E 3B 0D 0A 09 09 56 41 52 20 6C 69 6E tion;....VAR lin
0000A0: 65 73 6D 6F 76 65 64 3A 49 4E 54 45 47 45 52 3B esmoved:INTEGER;
0000B0: 6C 69 6E 65 73 74 6F 6D 6F 76 65 3A 49 4E 54 45 linestomove:INTE
0000C0: 47 45 52 29 3B 0D 0A 28 2A 09 72 65 74 75 72 6E GER);..(*.return
0000D0: 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 69 6E the position in
0000E0: 20 74 68 65 20 63 75 72 72 65 6E 74 20 6C 69 6E the current lin
0000F0: 65 2A 29 0D 0A 56 41 52 09 63 68 3A 43 48 41 52 e*)..VAR.ch:CHAR
000100: 3B 0D 0A 09 69 3A 49 4E 54 45 47 45 52 3B 0D 0A ;...i:INTEGER;..
000110: 09 62 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 .b:BOOLEAN;..BEG
000120: 49 4E 0D 0A 09 73 65 74 63 75 72 70 6F 73 28 66 IN...setcurpos(f
000130: 29 3B 0D 0A 09 6C 69 6E 65 73 6D 6F 76 65 64 3A );...linesmoved:
000140: 3D 30 3B 0D 0A 0D 0A 09 49 46 20 43 68 61 72 50 =0;.....IF CharP
000150: 6F 73 3E 49 4E 54 45 47 45 52 28 57 6F 72 6B 69 os>INTEGER(Worki
000160: 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 54 48 ng^.BlockLen) TH
000170: 45 4E 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 57 EN....CharPos:=W
000180: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
000190: 20 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 09 49 46 ....END;.....IF
0001A0: 20 6C 69 6E 65 73 74 6F 6D 6F 76 65 3D 2D 31 36 linestomove=-16
0001B0: 37 33 36 20 54 48 45 4E 20 28 2A 67 6F 20 74 6F 736 THEN (*go to
0001C0: 20 74 6F 70 20 6F 66 20 66 69 6C 65 0D 0A 09 09 top of file....
0001D0: 09 09 20 20 20 20 54 68 69 73 20 69 73 20 61 20 .. This is a
0001E0: 72 65 63 65 6E 74 20 6D 6F 64 20 74 6F 20 73 70 recent mod to sp
0001F0: 65 65 64 20 75 70 20 0D 0A 09 09 09 09 20 20 20 eed up ......
Size : 512 (Real : 512)
000000: 65 72 20 69 6E 20 61 70 70 72 6F 70 72 69 61 74 er in appropriat
000010: 65 20 62 6C 6F 63 6B 2A 29 0D 0A 0D 0A 42 45 47 e block*)....BEG
000020: 49 4E 0D 0A 09 73 65 74 63 75 72 70 6F 73 28 66 IN...setcurpos(f
000030: 29 3B 0D 0A 09 6C 65 66 74 3A 3D 54 65 78 74 4C );...left:=TextL
000040: 65 6E 2D 4F 52 44 28 57 6F 72 6B 69 6E 67 5E 2E en-ORD(Working^.
000050: 42 6C 6F 63 6B 4C 65 6E 29 3B 0D 0A 0D 0A 09 28 BlockLen);.....(
000060: 2A 09 6C 65 66 74 20 69 73 20 63 68 61 72 61 63 *.left is charac
000070: 74 65 72 73 20 6C 65 66 74 20 69 6E 20 62 6C 6F ters left in blo
000080: 63 6B 2A 29 0D 0A 0D 0A 09 49 46 20 6C 65 66 74 ck*).....IF left
000090: 3E 3D 6C 65 6E 20 54 48 45 4E 20 49 6E 73 49 6E >=len THEN InsIn
0000A0: 42 6C 6F 63 6B 0D 0A 09 45 4C 53 45 0D 0A 0D 0A Block...ELSE....
0000B0: 09 09 28 2A 73 70 6C 69 74 20 74 68 65 20 62 6C ..(*split the bl
0000C0: 6F 63 6B 20 73 6F 20 74 68 61 74 20 61 66 74 65 ock so that afte
0000D0: 72 20 69 6E 73 65 72 74 20 74 68 65 20 74 77 6F r insert the two
0000E0: 20 62 6C 6F 63 6B 73 0D 0A 09 09 20 20 77 69 6C blocks.... wil
0000F0: 6C 20 62 65 20 61 70 70 72 6F 78 20 65 71 75 61 l be approx equa
000100: 6C 20 69 6E 20 73 69 7A 65 2A 29 0D 0A 09 09 6C l in size*)....l
000110: 65 66 74 3A 3D 4F 52 44 28 57 6F 72 6B 69 6E 67 eft:=ORD(Working
000120: 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 20 44 49 56 20 ^.BlockLen) DIV
000130: 32 3B 0D 0A 09 09 4D 61 69 6E 42 6C 6F 63 6B 3A 2;....MainBlock:
000140: 3D 57 6F 72 6B 69 6E 67 3B 0D 0A 09 09 4E 65 77 =Working;....New
000150: 42 6C 6F 63 6B 3B 0D 0A 09 09 57 6F 72 6B 69 6E Block;....Workin
000160: 67 5E 2E 50 72 65 64 3A 3D 4D 61 69 6E 42 6C 6F g^.Pred:=MainBlo
000170: 63 6B 3B 0D 0A 09 09 46 4F 52 20 72 65 70 6C 79 ck;....FOR reply
000180: 3A 3D 30 20 54 4F 20 48 49 47 48 28 66 2E 4C 61 :=0 TO HIGH(f.La
000190: 62 65 6C 73 29 20 44 4F 0D 0A 09 09 09 57 49 54 bels) DO.....WIT
0001A0: 48 20 66 2E 4C 61 62 65 6C 73 5B 72 65 70 6C 79 H f.Labels[reply
0001B0: 5D 20 44 4F 0D 0A 09 09 09 09 49 46 20 28 42 6C ] DO......IF (Bl
0001C0: 6F 63 6B 3D 4D 61 69 6E 42 6C 6F 63 6B 29 20 41 ock=MainBlock) A
0001D0: 4E 44 20 28 4F 52 44 28 4F 66 66 73 65 74 29 3E ND (ORD(Offset)>
0001E0: 3D 6C 65 66 74 29 20 54 48 45 4E 0D 0A 09 09 09 =left) THEN.....
0001F0: 09 09 42 6C 6F 63 6B 3A 3D 57 6F 72 6B 69 6E 67 ..Block:=Working
Size : 512 (Real : 512)
000000: 20 20 5E 51 43 20 61 6E 64 20 5E 51 52 2A 29 0D ^QC and ^QR*).
000010: 0A 09 09 57 6F 72 6B 69 6E 67 3A 3D 66 2E 43 68 ...Working:=f.Ch
000020: 61 69 6E 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A ain;....CharPos:
000030: 3D 30 3B 0D 0A 09 09 70 6F 73 3A 3D 30 3B 0D 0A =0;....pos:=0;..
000040: 09 45 4C 53 49 46 20 6C 69 6E 65 73 74 6F 6D 6F .ELSIF linestomo
000050: 76 65 3D 31 36 37 33 36 20 54 48 45 4E 0D 0A 09 ve=16736 THEN...
000060: 09 57 48 49 4C 45 20 57 6F 72 6B 69 6E 67 5E 2E .WHILE Working^.
000070: 4E 65 78 74 3C 3E 4E 49 4C 20 44 4F 0D 0A 09 09 Next<>NIL DO....
000080: 09 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B 69 6E .Working:=Workin
000090: 67 5E 2E 4E 65 78 74 3B 0D 0A 09 09 09 45 4E 44 g^.Next;.....END
0000A0: 3B 0D 0A 09 09 43 68 61 72 50 6F 73 3A 3D 4F 52 ;....CharPos:=OR
0000B0: 44 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B D(Working^.Block
0000C0: 4C 65 6E 29 3B 0D 0A 09 09 49 46 20 57 6F 72 6B Len);....IF Work
0000D0: 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 ing^.Chars[CharP
0000E0: 6F 73 2D 31 5D 3D 45 4F 46 20 54 48 45 4E 0D 0A os-1]=EOF THEN..
0000F0: 09 09 09 44 45 43 28 43 68 61 72 50 6F 73 29 3B ...DEC(CharPos);
000100: 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 73 61 76 .....END;....sav
000110: 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 70 ecurpos(f);....p
000120: 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 09 70 :=f.CurPos;....p
000130: 6F 73 3A 3D 42 61 63 6B 75 70 4C 69 6E 65 28 29 os:=BackupLine()
000140: 3B 0D 0A 09 09 66 2E 43 75 72 50 6F 73 3A 3D 70 ;....f.CurPos:=p
000150: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 20 20 20 20 28 ;...ELSE... (
000160: 2A 63 68 61 73 65 20 62 61 63 6B 77 61 72 64 73 *chase backwards
000170: 20 75 6E 74 69 6C 20 61 20 43 52 2C 20 4C 46 20 until a CR, LF
000180: 6F 72 20 46 46 20 69 73 20 66 6F 75 6E 64 20 61 or FF is found a
000190: 6E 64 0D 0A 09 20 20 20 20 20 20 63 61 6C 63 75 nd... calcu
0001A0: 6C 61 74 65 20 70 6F 73 69 74 69 6F 6E 20 69 6E late position in
0001B0: 20 6C 69 6E 65 2A 29 0D 0A 09 20 20 20 20 70 6F line*)... po
0001C0: 73 3A 3D 42 61 63 6B 75 70 4C 69 6E 65 28 29 3B s:=BackupLine();
0001D0: 0D 0A 09 20 20 20 20 6C 65 6E 3A 3D 30 3B 0D 0A ... len:=0;..
0001E0: 0D 0A 09 20 20 20 20 28 2A 09 6E 6F 77 20 70 6F ... (*.now po
0001F0: 73 69 74 69 6F 6E 65 64 20 74 6F 20 62 65 67 69 sitioned to begi
Size : 512 (Real : 512)
000000: 3B 0D 0A 09 09 09 09 09 4F 66 66 73 65 74 3A 3D ;.......Offset:=
000010: 4F 52 44 28 4F 66 66 73 65 74 29 2D 6C 65 66 74 ORD(Offset)-left
000020: 3B 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ;.......END;....
000030: 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B 0D ..END;.....END;.
000040: 0A 09 09 09 09 09 0D 0A 09 09 57 49 54 48 20 4D ..........WITH M
000050: 61 69 6E 42 6C 6F 63 6B 5E 20 44 4F 0D 0A 09 09 ainBlock^ DO....
000060: 09 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 74 3A 3D .Working^.Next:=
000070: 4E 65 78 74 3B 0D 0A 09 09 09 49 46 20 4E 65 78 Next;.....IF Nex
000080: 74 3C 3E 4E 49 4C 20 54 48 45 4E 20 4E 65 78 74 t<>NIL THEN Next
000090: 5E 2E 50 72 65 64 3A 3D 57 6F 72 6B 69 6E 67 20 ^.Pred:=Working
0000A0: 45 4E 44 3B 0D 0A 09 09 09 4E 65 78 74 3A 3D 57 END;.....Next:=W
0000B0: 6F 72 6B 69 6E 67 3B 0D 0A 09 09 09 57 6F 72 6B orking;.....Work
0000C0: 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 3A 3D 4F ing^.BlockLen:=O
0000D0: 52 44 28 42 6C 6F 63 6B 4C 65 6E 29 2D 6C 65 66 RD(BlockLen)-lef
0000E0: 74 3B 0D 0A 09 09 09 42 6C 6F 63 6B 4C 65 6E 3A t;.....BlockLen:
0000F0: 3D 6C 65 66 74 3B 0D 0A 09 09 09 4D 6F 76 65 75 =left;.....Moveu
000100: 70 28 41 44 52 28 43 68 61 72 73 5B 42 6C 6F 63 p(ADR(Chars[Bloc
000110: 6B 4C 65 6E 5D 29 2C 0D 0A 09 09 09 20 20 20 20 kLen]),.....
000120: 41 44 52 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 ADR(Working^.Cha
000130: 72 73 29 2C 0D 0A 09 09 09 20 20 20 20 6C 65 66 rs),..... lef
000140: 74 2B 31 29 3B 0D 0A 09 09 09 49 46 20 43 68 61 t+1);.....IF Cha
000150: 72 50 6F 73 3C 4F 52 44 28 42 6C 6F 63 6B 4C 65 rPos<ORD(BlockLe
000160: 6E 29 20 54 48 45 4E 20 57 6F 72 6B 69 6E 67 3A n) THEN Working:
000170: 3D 4D 61 69 6E 42 6C 6F 63 6B 0D 0A 09 09 09 45 =MainBlock.....E
000180: 4C 53 45 20 43 68 61 72 50 6F 73 3A 3D 43 68 61 LSE CharPos:=Cha
000190: 72 50 6F 73 2D 4F 52 44 28 42 6C 6F 63 6B 4C 65 rPos-ORD(BlockLe
0001A0: 6E 29 20 45 4E 44 3B 0D 0A 09 09 09 49 6E 73 49 n) END;.....InsI
0001B0: 6E 42 6C 6F 63 6B 3B 0D 0A 09 09 09 45 4E 44 3B nBlock;.....END;
0001C0: 28 2A 57 49 54 48 2A 29 0D 0A 09 09 45 4E 44 3B (*WITH*)....END;
0001D0: 28 2A 6C 65 66 74 3E 3D 6C 65 6E 2A 29 0D 0A 09 (*left>=len*)...
0001E0: 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A savecurpos(f);..
0001F0: 09 45 4E 44 20 49 6E 73 43 68 61 72 73 3B 0D 0A .END InsChars;..
Size : 512 (Real : 512)
000000: 6E 6E 69 6E 67 20 6F 66 20 63 75 72 72 65 6E 74 nning of current
000010: 20 6C 69 6E 65 0D 0A 09 09 6D 6F 76 65 20 72 65 line....move re
000020: 71 75 69 72 65 64 20 6E 75 6D 62 65 72 20 6F 66 quired number of
000030: 20 6C 69 6E 65 73 2A 29 0D 0A 0D 0A 09 20 20 20 lines*).....
000040: 20 49 46 20 6C 69 6E 65 73 74 6F 6D 6F 76 65 3C IF linestomove<
000050: 30 20 54 48 45 4E 0D 0A 09 09 57 48 49 4C 45 20 0 THEN....WHILE
000060: 09 28 6C 69 6E 65 73 74 6F 6D 6F 76 65 3C 30 29 .(linestomove<0)
000070: 0D 0A 09 09 20 20 20 20 20 41 4E 44 20 28 28 43 .... AND ((C
000080: 68 61 72 50 6F 73 3E 30 29 20 4F 52 20 28 57 6F harPos>0) OR (Wo
000090: 72 6B 69 6E 67 5E 2E 50 72 65 64 3C 3E 4E 49 4C rking^.Pred<>NIL
0000A0: 29 29 20 44 4F 0D 0A 09 09 09 49 4E 43 28 6C 69 )) DO.....INC(li
0000B0: 6E 65 73 74 6F 6D 6F 76 65 29 3B 0D 0A 0D 0A 09 nestomove);.....
0000C0: 09 09 28 2A 6D 6F 76 65 20 62 61 63 6B 20 6F 76 ..(*move back ov
0000D0: 65 72 20 63 72 2F 6C 66 2A 29 0D 0A 0D 0A 09 09 er cr/lf*)......
0000E0: 09 49 46 20 42 61 63 6B 75 70 28 29 20 41 4E 44 .IF Backup() AND
0000F0: 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 (Working^.Chars
000100: 5B 43 68 61 72 50 6F 73 5D 3D 4C 46 29 20 54 48 [CharPos]=LF) TH
000110: 45 4E 0D 0A 09 09 09 09 62 3A 3D 42 61 63 6B 75 EN......b:=Backu
000120: 70 28 29 0D 0A 09 09 09 09 45 4E 44 3B 0D 0A 09 p()......END;...
000130: 09 09 44 45 43 28 6C 69 6E 65 73 6D 6F 76 65 64 ..DEC(linesmoved
000140: 29 3B 0D 0A 09 09 09 6C 65 6E 3A 3D 42 61 63 6B );.....len:=Back
000150: 75 70 4C 69 6E 65 28 29 3B 0D 0A 09 09 09 45 4E upLine();.....EN
000160: 44 3B 0D 0A 09 20 20 20 20 45 4C 53 45 0D 0A 09 D;... ELSE...
000170: 09 57 48 49 4C 45 20 09 28 6C 69 6E 65 73 74 6F .WHILE .(linesto
000180: 6D 6F 76 65 3E 30 29 0D 0A 09 09 09 41 4E 44 20 move>0).....AND
000190: 28 20 20 28 43 68 61 72 50 6F 73 3C 49 4E 54 45 ( (CharPos<INTE
0001A0: 47 45 52 28 57 6F 72 6B 69 6E 67 5E 2E 42 6C 6F GER(Working^.Blo
0001B0: 63 6B 4C 65 6E 29 29 0D 0A 09 09 09 20 20 20 20 ckLen)).....
0001C0: 4F 52 20 28 57 6F 72 6B 69 6E 67 5E 2E 4E 65 78 OR (Working^.Nex
0001D0: 74 3C 3E 4E 49 4C 29 29 20 44 4F 20 0D 0A 0D 0A t<>NIL)) DO ....
0001E0: 09 09 09 44 45 43 28 6C 69 6E 65 73 74 6F 6D 6F ...DEC(linestomo
0001F0: 76 65 29 3B 0D 0A 09 09 09 6C 65 6E 3A 3D 41 64 ve);.....len:=Ad
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 56 41 52 09 62 3A 42 4F 4F 4C 45 41 ....VAR.b:BOOLEA
000010: 4E 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 20 N;....PROCEDURE
000020: 42 61 63 6B 75 70 4C 69 6E 65 28 29 3A 49 4E 54 BackupLine():INT
000030: 45 47 45 52 3B 0D 0A 0D 0A 28 2A 09 42 61 63 6B EGER;....(*.Back
000040: 75 70 20 74 6F 20 62 65 67 69 6E 6E 69 6E 67 20 up to beginning
000050: 6F 66 20 63 75 72 72 65 6E 74 20 6C 69 6E 65 0D of current line.
000060: 0A 09 72 65 74 75 72 6E 73 20 6E 75 6D 62 65 72 ..returns number
000070: 20 6F 66 20 63 68 61 72 61 63 74 65 72 73 20 62 of characters b
000080: 61 63 6B 65 64 20 75 70 0D 0A 0D 0A 09 61 66 74 acked up.....aft
000090: 65 72 20 74 68 65 20 63 61 6C 6C 2C 20 74 68 65 er the call, the
0000A0: 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 74 68 65 position is the
0000B0: 20 66 69 72 73 74 20 63 68 61 72 61 63 74 65 72 first character
0000C0: 0D 0A 09 61 66 74 65 72 20 6F 66 20 74 68 65 20 ...after of the
0000D0: 6C 69 6E 65 2A 29 0D 0A 56 41 52 09 70 6F 73 3A line*)..VAR.pos:
0000E0: 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 49 4E 0D INTEGER;..BEGIN.
0000F0: 0A 09 70 6F 73 3A 3D 30 3B 0D 0A 09 4C 4F 4F 50 ..pos:=0;...LOOP
000100: 0D 0A 09 09 49 46 20 4E 4F 54 20 42 61 63 6B 75 ....IF NOT Backu
000110: 70 28 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E p() THEN EXIT EN
000120: 44 3B 0D 0A 09 09 63 68 3A 3D 57 6F 72 6B 69 6E D;....ch:=Workin
000130: 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F 73 g^.Chars[CharPos
000140: 5D 3B 0D 0A 09 09 49 46 20 28 28 63 68 3D 43 52 ];....IF ((ch=CR
000150: 29 20 4F 52 20 28 63 68 3D 4C 46 29 20 4F 52 20 ) OR (ch=LF) OR
000160: 28 63 68 3D 46 46 29 29 20 20 54 48 45 4E 20 0D (ch=FF)) THEN .
000170: 0A 09 09 09 62 3A 3D 41 64 76 61 6E 63 65 28 29 ....b:=Advance()
000180: 3B 0D 0A 09 09 09 45 58 49 54 20 0D 0A 09 09 09 ;.....EXIT .....
000190: 45 4E 44 3B 0D 0A 09 09 70 6F 73 3A 3D 70 6F 73 END;....pos:=pos
0001A0: 2B 31 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A 4C 4F +1;....END; (*LO
0001B0: 4F 50 2A 29 0D 0A 09 52 45 54 55 52 4E 20 70 6F OP*)...RETURN po
0001C0: 73 3B 0D 0A 09 45 4E 44 20 42 61 63 6B 75 70 4C s;...END BackupL
0001D0: 69 6E 65 3B 0D 0A 56 41 52 09 41 64 76 61 6E 63 ine;..VAR.Advanc
0001E0: 65 4F 4B 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 50 52 eOK:BOOLEAN;..PR
0001F0: 4F 43 45 44 55 52 45 20 41 64 76 61 6E 63 65 4C OCEDURE AdvanceL
Size : 512 (Real : 512)
000000: 76 61 6E 63 65 4C 69 6E 65 28 29 3B 0D 0A 09 09 vanceLine();....
000010: 09 49 46 20 41 64 76 61 6E 63 65 4F 4B 20 54 48 .IF AdvanceOK TH
000020: 45 4E 20 49 4E 43 28 6C 69 6E 65 73 6D 6F 76 65 EN INC(linesmove
000030: 64 29 20 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B d) END;.....END;
000040: 0D 0A 09 09 45 4E 44 3B 0D 0A 09 20 20 20 20 45 ....END;... E
000050: 4E 44 3B 0D 0A 09 73 61 76 65 63 75 72 70 6F 73 ND;...savecurpos
000060: 28 66 29 3B 70 3A 3D 66 2E 43 75 72 50 6F 73 3B (f);p:=f.CurPos;
000070: 0D 0A 09 49 46 20 57 6F 72 6B 69 6E 67 5E 2E 43 ...IF Working^.C
000080: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3D 45 4F hars[CharPos]=EO
000090: 46 20 54 48 45 4E 0D 0A 0D 0A 09 09 28 2A 49 46 F THEN......(*IF
0000A0: 20 77 65 20 61 72 65 20 61 74 20 65 6E 64 20 6F we are at end o
0000B0: 66 20 66 69 6C 65 2C 20 72 65 70 6F 73 69 74 69 f file, repositi
0000C0: 6F 6E 20 74 6F 20 73 74 61 72 74 0D 0A 09 09 20 on to start....
0000D0: 20 6F 66 20 63 75 72 72 65 6E 74 20 6C 69 6E 65 of current line
0000E0: 20 61 73 20 52 65 74 72 6C 69 6E 65 20 61 6C 77 as Retrline alw
0000F0: 61 79 73 20 72 65 74 75 72 6E 73 0D 0A 09 09 20 ays returns....
000100: 20 70 6F 73 69 74 69 6F 6E 20 61 73 20 61 74 20 position as at
000110: 73 74 61 72 74 20 6F 66 20 6C 69 6E 65 2A 29 0D start of line*).
000120: 0A 0D 0A 09 09 6C 65 6E 3A 3D 42 61 63 6B 75 70 .....len:=Backup
000130: 4C 69 6E 65 28 29 3B 0D 0A 09 09 73 61 76 65 63 Line();....savec
000140: 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 70 3A 3D urpos(f);....p:=
000150: 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 09 70 6F 73 f.CurPos;....pos
000160: 3A 3D 6C 65 6E 0D 0A 09 45 4C 53 45 0D 0A 09 09 :=len...ELSE....
000170: 6C 65 6E 3A 3D 41 64 76 61 6E 63 65 4C 69 6E 65 len:=AdvanceLine
000180: 28 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 66 2E ();....END;...f.
000190: 43 75 72 50 6F 73 3A 3D 70 3B 0D 0A 09 45 4E 44 CurPos:=p;...END
0001A0: 20 52 65 74 72 6C 69 6E 65 3B 0D 0A 50 52 4F 43 Retrline;..PROC
0001B0: 45 44 55 52 45 20 52 65 61 64 4E 65 78 74 43 68 EDURE ReadNextCh
0001C0: 61 72 28 56 41 52 20 70 3A 50 6F 73 69 74 69 6F ar(VAR p:Positio
0001D0: 6E 3B 56 41 52 20 63 68 3A 43 48 41 52 29 3B 0D n;VAR ch:CHAR);.
0001E0: 0A 42 45 47 49 4E 0D 0A 09 57 49 54 48 20 70 20 .BEGIN...WITH p
0001F0: 44 4F 0D 0A 09 09 49 46 20 4F 66 66 73 65 74 3E DO....IF Offset>
Size : 512 (Real : 512)
000000: 65 28 29 29 0D 0A 09 09 09 09 20 20 20 20 41 4E e())...... AN
000010: 44 20 20 4D 61 74 63 68 65 73 28 29 20 44 4F 0D D Matches() DO.
000020: 0A 09 09 09 09 09 49 4E 43 28 4D 61 74 63 68 43 ......INC(MatchC
000030: 68 61 72 4E 6F 29 3B 0D 0A 09 09 09 09 09 45 4E harNo);.......EN
000040: 44 3B 0D 0A 09 09 09 09 49 46 20 4D 61 74 63 68 D;......IF Match
000050: 43 68 61 72 4E 6F 3E 3D 53 74 72 69 6E 67 4C 65 CharNo>=StringLe
000060: 6E 20 54 48 45 4E 0D 0A 09 09 09 09 09 52 45 54 n THEN.......RET
000070: 55 52 4E 20 54 52 55 45 3B 0D 0A 09 09 09 09 09 URN TRUE;.......
000080: 45 4E 44 3B 0D 0A 09 09 09 09 73 65 74 63 75 72 END;......setcur
000090: 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 45 4E 44 pos(f);......END
0000A0: 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E ;.....END;....EN
0000B0: 44 3B 0D 0A 09 73 61 76 65 63 75 72 70 6F 73 28 D;...savecurpos(
0000C0: 66 29 3B 0D 0A 09 52 45 54 55 52 4E 20 46 41 4C f);...RETURN FAL
0000D0: 53 45 3B 0D 0A 09 45 4E 44 20 46 69 6E 64 53 74 SE;...END FindSt
0000E0: 72 69 6E 67 3B 0D 0A 28 2A 09 41 63 74 75 61 6C ring;..(*.Actual
0000F0: 6C 79 20 66 69 6E 64 20 74 68 65 20 6E 65 78 74 ly find the next
000100: 20 6F 63 63 75 72 72 65 6E 63 65 20 6F 66 20 74 occurrence of t
000110: 68 65 20 73 74 72 69 6E 67 09 0D 0A 0D 0A 09 44 he string......D
000120: 6F 6E 65 20 72 65 74 75 72 6E 73 20 74 72 75 65 one returns true
000130: 20 69 66 20 6F 6E 65 20 69 73 20 66 6F 75 6E 64 if one is found
000140: 2A 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 61 *)..PROCEDURE Ca
000150: 6C 6C 57 69 74 68 46 69 6C 65 28 4E 61 6D 65 3A llWithFile(Name:
000160: 41 52 52 41 59 20 4F 46 20 43 48 41 52 3B 56 41 ARRAY OF CHAR;VA
000170: 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3B 0D 0A R f:EditFile);..
000180: 42 45 47 49 4E 0D 0A 09 4D 61 6B 65 43 61 6C 6C BEGIN...MakeCall
000190: 28 4E 61 6D 65 2C 66 2E 66 2E 66 29 3B 0D 0A 09 (Name,f.f.f);...
0001A0: 45 4E 44 20 43 61 6C 6C 57 69 74 68 46 69 6C 65 END CallWithFile
0001B0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 69 6C ;..PROCEDURE Fil
0001C0: 65 54 79 70 65 28 56 41 52 20 66 3A 45 64 69 74 eType(VAR f:Edit
0001D0: 46 69 6C 65 29 3A 43 41 52 44 49 4E 41 4C 3B 0D File):CARDINAL;.
0001E0: 0A 42 45 47 49 4E 0D 0A 09 49 46 20 66 2E 66 2E .BEGIN...IF f.f.
0001F0: 66 2E 66 63 62 66 74 3D 27 4D 4F 44 27 20 54 48 f.fcbft='MOD' TH
Size : 512 (Real : 512)
000000: 3D 42 6C 6F 63 6B 5E 2E 42 6C 6F 63 6B 4C 65 6E =Block^.BlockLen
000010: 20 54 48 45 4E 0D 0A 09 09 09 49 46 20 42 6C 6F THEN.....IF Blo
000020: 63 6B 5E 2E 4E 65 78 74 3D 4E 49 4C 20 54 48 45 ck^.Next=NIL THE
000030: 4E 0D 0A 09 09 09 09 63 68 3A 3D 45 4F 46 3B 0D N......ch:=EOF;.
000040: 0A 09 09 09 09 52 45 54 55 52 4E 0D 0A 09 09 09 .....RETURN.....
000050: 45 4C 53 45 0D 0A 09 09 09 09 42 6C 6F 63 6B 3A ELSE......Block:
000060: 3D 42 6C 6F 63 6B 5E 2E 4E 65 78 74 3B 0D 0A 09 =Block^.Next;...
000070: 09 09 09 4F 66 66 73 65 74 3A 3D 30 3B 0D 0A 09 ...Offset:=0;...
000080: 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 3B ...END;.....END;
000090: 0D 0A 09 09 63 68 3A 3D 42 6C 6F 63 6B 5E 2E 43 ....ch:=Block^.C
0000A0: 68 61 72 73 5B 4F 66 66 73 65 74 5D 3B 0D 0A 09 hars[Offset];...
0000B0: 09 49 46 20 63 68 3C 3E 45 4F 46 20 54 48 45 4E .IF ch<>EOF THEN
0000C0: 20 4F 66 66 73 65 74 3A 3D 4F 66 66 73 65 74 2B Offset:=Offset+
0000D0: 31 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 1 END;....END;..
0000E0: 09 45 4E 44 20 52 65 61 64 4E 65 78 74 43 68 61 .END ReadNextCha
0000F0: 72 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 47 65 r;..PROCEDURE Ge
000100: 74 43 75 72 72 65 6E 74 43 68 61 72 28 56 41 52 tCurrentChar(VAR
000110: 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 43 48 41 f:EditFile):CHA
000120: 52 3B 0D 0A 0D 0A 42 45 47 49 4E 0D 0A 09 70 6F R;....BEGIN...po
000130: 73 3A 3D 66 2E 43 75 72 50 6F 73 3B 0D 0A 09 52 s:=f.CurPos;...R
000140: 65 61 64 4E 65 78 74 43 68 61 72 28 70 6F 73 2C eadNextChar(pos,
000150: 63 68 29 3B 0D 0A 09 52 45 54 55 52 4E 20 63 68 ch);...RETURN ch
000160: 0D 0A 09 45 4E 44 20 47 65 74 43 75 72 72 65 6E ...END GetCurren
000170: 74 43 68 61 72 3B 0D 0A 50 52 4F 43 45 44 55 52 tChar;..PROCEDUR
000180: 45 20 20 42 61 63 6B 4F 6E 65 43 68 61 72 28 56 E BackOneChar(V
000190: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 42 AR f:EditFile):B
0001A0: 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A OOLEAN;..BEGIN..
0001B0: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
0001C0: 09 62 3A 3D 42 61 63 6B 75 70 28 29 3B 0D 0A 09 .b:=Backup();...
0001D0: 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A savecurpos(f);..
0001E0: 09 52 45 54 55 52 4E 20 62 0D 0A 09 45 4E 44 20 .RETURN b...END
0001F0: 42 61 63 6B 4F 6E 65 43 68 61 72 3B 09 09 09 09 BackOneChar;....
Size : 512 (Real : 512)
000000: 45 4E 20 52 45 54 55 52 4E 20 31 0D 0A 09 45 4C EN RETURN 1...EL
000010: 53 49 46 20 66 2E 66 2E 66 2E 66 63 62 66 74 3D SIF f.f.f.fcbft=
000020: 27 44 45 46 27 20 54 48 45 4E 20 52 45 54 55 52 'DEF' THEN RETUR
000030: 4E 20 32 0D 0A 09 45 4C 53 45 20 52 45 54 55 52 N 2...ELSE RETUR
000040: 4E 20 30 0D 0A 09 09 45 4E 44 0D 0A 09 45 4E 44 N 0....END...END
000050: 20 46 69 6C 65 54 79 70 65 3B 0D 0A 50 52 4F 43 FileType;..PROC
000060: 45 44 55 52 45 20 4D 6F 76 65 54 6F 43 68 61 72 EDURE MoveToChar
000070: 28 56 41 52 20 46 69 6C 65 3A 45 64 69 74 46 69 (VAR File:EditFi
000080: 6C 65 3B 50 6F 73 3A 43 41 52 44 49 4E 41 4C 29 le;Pos:CARDINAL)
000090: 3B 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 4E 41 ;..VAR.i:CARDINA
0000A0: 4C 3B 77 3A 50 54 65 78 74 3B 0D 0A 42 45 47 49 L;w:PText;..BEGI
0000B0: 4E 0D 0A 09 57 6F 72 6B 69 6E 67 3A 3D 46 69 6C N...Working:=Fil
0000C0: 65 2E 43 68 61 69 6E 3B 0D 0A 09 77 3A 3D 4E 49 e.Chain;...w:=NI
0000D0: 4C 3B 0D 0A 09 69 3A 3D 30 3B 0D 0A 09 4C 4F 4F L;...i:=0;...LOO
0000E0: 50 0D 0A 09 09 49 46 20 57 6F 72 6B 69 6E 67 3D P....IF Working=
0000F0: 4E 49 4C 20 54 48 45 4E 20 45 58 49 54 20 45 4E NIL THEN EXIT EN
000100: 44 3B 0D 0A 09 09 69 3A 3D 69 2B 4F 52 44 28 57 D;....i:=i+ORD(W
000110: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
000120: 29 3B 0D 0A 09 09 77 3A 3D 57 6F 72 6B 69 6E 67 );....w:=Working
000130: 3B 0D 0A 09 09 49 46 20 69 3C 50 6F 73 20 54 48 ;....IF i<Pos TH
000140: 45 4E 20 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B EN Working:=Work
000150: 69 6E 67 5E 2E 4E 65 78 74 20 45 4C 53 45 20 45 ing^.Next ELSE E
000160: 58 49 54 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B XIT END;....END;
000170: 0D 0A 09 49 46 20 57 6F 72 6B 69 6E 67 3D 4E 49 ...IF Working=NI
000180: 4C 20 54 48 45 4E 20 0D 0A 09 09 57 6F 72 6B 69 L THEN ....Worki
000190: 6E 67 3A 3D 77 3B 0D 0A 09 09 43 68 61 72 50 6F ng:=w;....CharPo
0001A0: 73 3A 3D 77 5E 2E 42 6C 6F 63 6B 4C 65 6E 3B 0D s:=w^.BlockLen;.
0001B0: 0A 09 45 4C 53 45 0D 0A 09 09 43 68 61 72 50 6F ..ELSE....CharPo
0001C0: 73 3A 3D 50 6F 73 2D 28 69 2D 4F 52 44 28 57 6F s:=Pos-(i-ORD(Wo
0001D0: 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 rking^.BlockLen)
0001E0: 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 73 61 76 );....END;...sav
0001F0: 65 63 75 72 70 6F 73 28 46 69 6C 65 29 3B 0D 0A ecurpos(File);..
Size : 512 (Real : 512)
000000: 0D 0A 09 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 .....PROCEDURE
000010: 46 6F 72 77 61 72 64 4F 6E 65 43 68 61 72 28 56 ForwardOneChar(V
000020: 41 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3A 42 AR f:EditFile):B
000030: 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A OOLEAN;..BEGIN..
000040: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
000050: 09 62 3A 3D 41 64 76 61 6E 63 65 28 29 3B 0D 0A .b:=Advance();..
000060: 09 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D .savecurpos(f);.
000070: 0A 09 52 45 54 55 52 4E 20 62 0D 0A 09 45 4E 44 ..RETURN b...END
000080: 20 46 6F 72 77 61 72 64 4F 6E 65 43 68 61 72 3B ForwardOneChar;
000090: 09 09 09 09 0D 0A 56 41 52 09 53 74 72 69 6E 67 ......VAR.String
0000A0: 3A 41 52 52 41 59 5B 30 2E 2E 35 39 5D 20 4F 46 :ARRAY[0..59] OF
0000B0: 20 43 48 41 52 3B 0D 0A 09 53 74 72 69 6E 67 4C CHAR;...StringL
0000C0: 65 6E 3A 43 41 52 44 49 4E 41 4C 3D 30 3B 09 0D en:CARDINAL=0;..
0000D0: 0A 09 4D 61 74 63 68 43 68 61 72 4E 6F 3A 43 41 ..MatchCharNo:CA
0000E0: 52 44 49 4E 41 4C 3B 0D 0A 09 4D 61 74 63 68 43 RDINAL;...MatchC
0000F0: 68 61 72 3A 43 48 41 52 3B 0D 0A 0D 0A 50 52 4F har:CHAR;....PRO
000100: 43 45 44 55 52 45 20 4D 61 74 63 68 65 73 28 29 CEDURE Matches()
000110: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E :BOOLEAN;..BEGIN
000120: 0D 0A 09 52 45 54 55 52 4E 20 28 57 6F 72 6B 69 ...RETURN (Worki
000130: 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F ng^.Chars[CharPo
000140: 73 5D 3D 53 74 72 69 6E 67 5B 4D 61 74 63 68 43 s]=String[MatchC
000150: 68 61 72 4E 6F 5D 29 0D 0A 09 20 20 20 20 4F 52 harNo])... OR
000160: 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 (Working^.Chars
000170: 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 53 74 [CharPos]=CAP(St
000180: 72 69 6E 67 5B 4D 61 74 63 68 43 68 61 72 4E 6F ring[MatchCharNo
000190: 5D 29 29 0D 0A 09 45 4E 44 20 4D 61 74 63 68 65 ]))...END Matche
0001A0: 73 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 50 72 s;..PROCEDURE Pr
0001B0: 65 70 61 72 65 53 74 72 69 6E 67 28 73 3A 41 52 epareString(s:AR
0001C0: 52 41 59 20 4F 46 20 43 48 41 52 3B 6C 65 6E 3A RAY OF CHAR;len:
0001D0: 49 4E 54 45 47 45 52 29 3B 0D 0A 0D 0A 42 45 47 INTEGER);....BEG
0001E0: 49 4E 0D 0A 09 53 74 72 69 6E 67 4C 65 6E 3A 3D IN...StringLen:=
0001F0: 6C 65 6E 3B 0D 0A 09 4D 6F 76 65 75 70 28 41 44 len;...Moveup(AD
Size : 512 (Real : 512)
000000: 09 45 4E 44 20 4D 6F 76 65 54 6F 43 68 61 72 3B .END MoveToChar;
000010: 0D 0A 50 52 4F 43 45 44 55 52 45 20 44 65 66 69 ..PROCEDURE Defi
000020: 6E 65 45 72 72 6F 72 73 28 56 41 52 20 66 3A 45 neErrors(VAR f:E
000030: 64 69 74 46 69 6C 65 29 3B 0D 0A 56 41 52 09 69 ditFile);..VAR.i
000040: 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 62 3A 42 :CARDINAL;...b:B
000050: 4F 4F 4C 45 41 4E 3B 0D 0A 42 45 47 49 4E 0D 0A OOLEAN;..BEGIN..
000060: 09 49 46 20 45 72 72 6F 72 43 6F 75 6E 74 3D 30 .IF ErrorCount=0
000070: 20 54 48 45 4E 20 52 45 54 55 52 4E 20 45 4E 44 THEN RETURN END
000080: 3B 0D 0A 09 46 4F 52 20 69 3A 3D 30 20 54 4F 20 ;...FOR i:=0 TO
000090: 45 72 72 6F 72 43 6F 75 6E 74 2D 31 20 44 4F 0D ErrorCount-1 DO.
0000A0: 0A 09 09 4D 6F 76 65 54 6F 43 68 61 72 28 66 2C ...MoveToChar(f,
0000B0: 45 72 72 6F 72 4C 69 73 74 5B 69 5D 2E 43 68 61 ErrorList[i].Cha
0000C0: 72 50 29 3B 0D 0A 09 09 62 3A 3D 4C 61 62 65 6C rP);....b:=Label
0000D0: 4F 70 28 66 2C 54 52 55 45 2C 43 48 52 28 30 62 Op(f,TRUE,CHR(0b
0000E0: 30 68 2B 69 29 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0h+i));....END;.
0000F0: 0A 09 45 4E 44 20 44 65 66 69 6E 65 45 72 72 6F ..END DefineErro
000100: 72 73 3B 0D 0A 0D 0A 45 4E 44 20 4D 61 6B 65 45 rs;....END MakeE
000110: 64 69 74 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A dits............
000120: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000130: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000140: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000180: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 00 ................
000190: 00 00 00 00 00 00 00 00 00 00 30 00 80 19 00 00 ..........0.....
0001A0: 45 44 49 54 53 54 41 54 44 45 46 20 80 00 00 00 EDITSTATDEF ....
0001B0: 00 00 00 00 00 00 00 00 00 00 32 00 00 02 00 00 ..........2.....
0001C0: 45 44 49 54 53 54 41 54 4D 4F 44 20 80 00 00 00 EDITSTATMOD ....
0001D0: 00 00 00 00 00 00 00 00 00 00 33 00 80 0B 00 00 ..........3.....
0001E0: 46 49 4C 45 4F 50 53 20 44 45 46 20 80 00 00 00 FILEOPS DEF ....
0001F0: 00 00 00 00 00 00 00 00 00 00 35 00 00 02 00 00 ..........5.....
Size : 512 (Real : 512)
000000: 52 28 73 29 2C 41 44 52 28 53 74 72 69 6E 67 29 R(s),ADR(String)
000010: 2C 6C 65 6E 29 3B 0A 09 45 4E 44 20 50 72 65 70 ,len);..END Prep
000020: 61 72 65 53 74 72 69 6E 67 3B 0D 0A 28 2A 09 70 areString;..(*.p
000030: 72 65 70 61 72 65 20 61 20 73 74 72 69 6E 67 20 repare a string
000040: 66 6F 72 20 75 73 65 20 69 6E 20 61 20 66 69 6E for use in a fin
000050: 64 20 63 6F 6D 6D 61 6E 64 2A 29 0D 0A 0D 0A 50 d command*)....P
000060: 52 4F 43 45 44 55 52 45 20 46 69 6E 64 53 74 72 ROCEDURE FindStr
000070: 69 6E 67 28 56 41 52 20 66 3A 45 64 69 74 46 69 ing(VAR f:EditFi
000080: 6C 65 3B 42 61 63 6B 77 61 72 64 73 3A 42 4F 4F le;Backwards:BOO
000090: 4C 45 41 4E 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A LEAN):BOOLEAN;..
0000A0: 0D 0A 0D 0A 28 2A 09 62 61 63 6B 77 61 72 64 73 ....(*.backwards
0000B0: 20 6E 6F 74 20 79 65 74 20 69 6D 70 6C 65 6D 65 not yet impleme
0000C0: 6E 74 65 64 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 nted*)..BEGIN...
0000D0: 49 46 20 53 74 72 69 6E 67 4C 65 6E 3D 30 20 54 IF StringLen=0 T
0000E0: 48 45 4E 20 52 45 54 55 52 4E 20 54 52 55 45 20 HEN RETURN TRUE
0000F0: 45 4E 44 3B 0D 0A 09 73 65 74 63 75 72 70 6F 73 END;...setcurpos
000100: 28 66 29 3B 0D 0A 09 49 46 20 42 61 63 6B 77 61 (f);...IF Backwa
000110: 72 64 73 20 54 48 45 4E 0D 0A 09 09 4D 61 74 63 rds THEN....Matc
000120: 68 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 53 74 hChar:=String[St
000130: 72 69 6E 67 4C 65 6E 2D 31 5D 3B 0D 0A 09 09 4C ringLen-1];....L
000140: 4F 4F 50 0D 0A 09 09 09 49 46 20 4E 4F 54 20 42 OOP.....IF NOT B
000150: 61 63 6B 75 70 28 29 20 54 48 45 4E 20 45 58 49 ackup() THEN EXI
000160: 54 20 45 4E 44 3B 0D 0A 09 09 09 49 46 20 28 57 T END;.....IF (W
000170: 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 orking^.Chars[Ch
000180: 61 72 50 6F 73 5D 3D 4D 61 74 63 68 43 68 61 72 arPos]=MatchChar
000190: 29 20 0D 0A 09 09 09 20 20 4F 52 20 28 57 6F 72 ) ..... OR (Wor
0001A0: 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 king^.Chars[Char
0001B0: 50 6F 73 5D 3D 43 41 50 28 4D 61 74 63 68 43 68 Pos]=CAP(MatchCh
0001C0: 61 72 29 29 20 54 48 45 4E 0D 0A 09 09 09 09 4D ar)) THEN......M
0001D0: 61 74 63 68 43 68 61 72 4E 6F 3A 3D 53 74 72 69 atchCharNo:=Stri
0001E0: 6E 67 4C 65 6E 2D 32 3B 0D 0A 09 09 09 09 73 61 ngLen-2;......sa
0001F0: 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 vecurpos(f);....
Size : 512 (Real : 512)
000000: 4D 4F 44 55 4C 45 20 6D 65 3B 0D 0A 0D 0A 28 2A MODULE me;....(*
000010: 09 4D 6F 64 75 6C 61 20 20 65 64 69 74 6F 72 0D .Modula editor.
000020: 0A 0D 0A 09 44 61 76 65 20 4D 6F 6F 72 65 20 31 ....Dave Moore 1
000030: 20 46 65 62 20 38 35 0D 0A 0D 0A 09 54 68 69 73 Feb 85.....This
000040: 20 69 73 20 74 68 65 20 6D 61 69 6E 20 6D 6F 64 is the main mod
000050: 75 6C 65 20 66 6F 72 20 74 68 65 20 65 64 69 74 ule for the edit
000060: 6F 72 0D 0A 0D 0A 09 49 20 68 61 76 65 20 61 64 or.....I have ad
000070: 64 65 64 20 73 6F 6D 65 20 63 6F 6D 6D 65 6E 74 ded some comment
000080: 73 20 61 74 20 76 65 72 73 69 6F 6E 20 31 2E 32 s at version 1.2
000090: 20 77 68 69 63 68 20 73 68 6F 75 6C 64 20 62 65 which should be
0000A0: 20 0D 0A 09 77 6F 72 74 68 20 72 65 61 64 69 6E ...worth readin
0000B0: 67 20 69 66 20 79 6F 75 20 61 72 65 20 74 72 79 g if you are try
0000C0: 69 6E 67 20 74 6F 20 6C 65 61 72 6E 20 74 6F 20 ing to learn to
0000D0: 77 72 69 74 65 20 69 6E 20 4D 6F 64 75 6C 61 2D write in Modula-
0000E0: 32 0D 0A 2A 29 0D 0A 0D 0A 46 52 4F 4D 20 45 64 2..*)....FROM Ed
0000F0: 69 74 43 6F 6E 74 72 6F 6C 20 49 4D 50 4F 52 54 itControl IMPORT
000100: 20 46 69 6C 65 73 2C 46 69 6C 65 73 4F 70 65 6E Files,FilesOpen
000110: 65 64 2C 63 75 72 78 2C 63 75 72 79 2C 43 75 72 ed,curx,cury,Cur
000120: 72 65 6E 74 57 69 6E 64 6F 77 2C 43 68 61 6E 67 rentWindow,Chang
000130: 65 57 69 6E 64 6F 77 2C 0D 0A 09 09 09 52 65 73 eWindow,.....Res
000140: 65 74 53 63 72 65 65 6E 50 6F 73 2C 43 75 72 72 etScreenPos,Curr
000150: 65 6E 74 46 69 6C 65 3B 0D 0A 46 52 4F 4D 20 45 entFile;..FROM E
000160: 64 69 74 44 69 73 70 6C 61 79 20 49 4D 50 4F 52 ditDisplay IMPOR
000170: 54 20 45 72 72 6F 72 4D 65 73 73 61 67 65 2C 53 T ErrorMessage,S
000180: 65 74 57 69 6E 64 6F 77 73 2C 44 69 73 70 6C 61 etWindows,Displa
000190: 79 46 69 6C 65 2C 57 69 6E 64 6F 77 73 2C 0D 0A yFile,Windows,..
0001A0: 09 09 44 69 73 70 6C 61 79 45 72 72 6F 72 2C 45 ..DisplayError,E
0001B0: 72 72 6F 72 4F 72 64 69 6E 61 6C 3B 0D 0A 0D 0A rrorOrdinal;....
0001C0: 46 52 4F 4D 20 44 6F 4D 65 6E 75 20 49 4D 50 4F FROM DoMenu IMPO
0001D0: 52 54 20 44 6F 4D 65 6E 75 4F 70 2C 4F 70 65 6E RT DoMenuOp,Open
0001E0: 3B 0D 0A 0D 0A 46 52 4F 4D 20 4B 65 79 42 6F 61 ;....FROM KeyBoa
0001F0: 72 64 20 49 4D 50 4F 52 54 20 49 6E 74 65 72 70 rd IMPORT Interp
Size : 512 (Real : 512)
000000: 09 09 57 48 49 4C 45 20 28 4D 61 74 63 68 43 68 ..WHILE (MatchCh
000010: 61 72 4E 6F 3E 30 29 0D 0A 09 09 09 09 20 20 20 arNo>0)......
000020: 20 41 4E 44 20 28 42 61 63 6B 75 70 28 29 29 0D AND (Backup()).
000030: 0A 09 09 09 09 20 20 20 20 41 4E 44 20 4D 61 74 ..... AND Mat
000040: 63 68 65 73 28 29 20 44 4F 0D 0A 09 09 09 09 09 ches() DO.......
000050: 44 45 43 28 4D 61 74 63 68 43 68 61 72 4E 6F 29 DEC(MatchCharNo)
000060: 3B 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 ;.......END;....
000070: 09 09 49 46 20 42 61 63 6B 75 70 28 29 20 41 4E ..IF Backup() AN
000080: 44 20 4D 61 74 63 68 65 73 28 29 20 0D 0A 09 09 D Matches() ....
000090: 09 09 20 20 20 41 4E 44 20 28 4D 61 74 63 68 43 .. AND (MatchC
0000A0: 68 61 72 4E 6F 3D 30 29 20 54 48 45 4E 0D 0A 09 harNo=0) THEN...
0000B0: 09 09 09 09 52 45 54 55 52 4E 20 54 52 55 45 3B ....RETURN TRUE;
0000C0: 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 .......END;.....
0000D0: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
0000E0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
0000F0: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 4D 61 74 63 ;...ELSE....Matc
000100: 68 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 30 5D hChar:=String[0]
000110: 3B 0D 0A 09 09 4C 4F 4F 50 0D 0A 09 09 09 49 46 ;....LOOP.....IF
000120: 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 29 20 54 NOT Advance() T
000130: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 HEN EXIT END;...
000140: 09 09 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 ..IF (Working^.C
000150: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3D 4D 61 hars[CharPos]=Ma
000160: 74 63 68 43 68 61 72 29 0D 0A 09 09 09 20 20 4F tchChar)..... O
000170: 52 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 R (Working^.Char
000180: 73 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 4D s[CharPos]=CAP(M
000190: 61 74 63 68 43 68 61 72 29 29 20 54 48 45 4E 0D atchChar)) THEN.
0001A0: 0A 09 09 09 09 4D 61 74 63 68 43 68 61 72 4E 6F .....MatchCharNo
0001B0: 3A 3D 31 3B 0D 0A 09 09 09 09 73 61 76 65 63 75 :=1;......savecu
0001C0: 72 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 57 48 rpos(f);......WH
0001D0: 49 4C 45 20 28 4D 61 74 63 68 43 68 61 72 4E 6F ILE (MatchCharNo
0001E0: 3C 53 74 72 69 6E 67 4C 65 6E 29 0D 0A 09 09 09 <StringLen).....
0001F0: 09 20 20 20 20 41 4E 44 20 28 41 64 76 61 6E 63 . AND (Advanc
Size : 512 (Real : 512)
000000: 72 65 74 3B 0D 0A 46 52 4F 4D 09 4D 61 6B 65 45 ret;..FROM.MakeE
000010: 64 69 74 20 49 4D 50 4F 52 54 20 44 65 66 69 6E dit IMPORT Defin
000020: 65 45 72 72 6F 72 73 2C 45 72 72 6F 72 4C 69 73 eErrors,ErrorLis
000030: 74 2C 45 72 72 6F 72 43 6F 75 6E 74 3B 0D 0A 46 t,ErrorCount;..F
000040: 52 4F 4D 09 46 61 73 74 4D 6F 76 65 20 49 4D 50 ROM.FastMove IMP
000050: 4F 52 54 20 4D 6F 76 65 75 70 3B 0D 0A 28 2A 0D ORT Moveup;..(*.
000060: 0A 09 54 68 65 20 6D 6F 64 75 6C 65 73 20 61 62 ..The modules ab
000070: 6F 76 65 20 61 72 65 20 70 61 72 74 20 6F 66 20 ove are part of
000080: 74 68 65 20 65 64 69 74 6F 72 0D 0A 09 54 68 65 the editor...The
000090: 20 66 6F 6C 6C 6F 77 69 6E 67 20 6D 6F 64 75 6C following modul
0000A0: 65 73 20 61 72 65 20 61 6C 6C 20 67 65 6E 65 72 es are all gener
0000B0: 61 6C 20 70 75 72 70 6F 73 65 20 6D 6F 64 75 6C al purpose modul
0000C0: 65 73 0D 0A 2A 29 0D 0A 0D 0A 46 52 4F 4D 20 43 es..*)....FROM C
0000D0: 6F 6D 6D 61 6E 64 20 49 4D 50 4F 52 54 20 50 61 ommand IMPORT Pa
0000E0: 72 63 6C 61 73 73 2C 6E 61 6D 65 2C 73 74 72 69 rclass,name,stri
0000F0: 6E 67 2C 6F 70 74 69 6F 6E 2C 0D 0A 09 09 20 20 ng,option,....
000100: 20 54 65 78 74 2C 50 61 72 61 6D 65 74 65 72 2C Text,Parameter,
000110: 47 65 74 50 61 72 61 6D 73 3B 0D 0A 0D 0A 28 2A GetParams;....(*
000120: 09 43 6F 6D 6D 61 6E 64 20 63 72 61 63 6B 73 20 .Command cracks
000130: 74 68 65 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 the command line
000140: 20 70 61 72 61 6D 65 74 65 72 73 20 77 68 69 63 parameters whic
000150: 68 20 61 72 65 20 73 65 74 20 75 70 0D 0A 09 62 h are set up...b
000160: 79 20 43 50 2F 4D 20 61 74 20 61 64 64 72 65 73 y CP/M at addres
000170: 73 20 38 30 0D 0A 2A 29 0D 0A 0D 0A 46 52 4F 4D s 80..*)....FROM
000180: 20 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 69 Files IMPORT Fi
000190: 6C 65 4E 61 6D 65 2C 46 49 4C 45 2C 4C 6F 6F 6B leName,FILE,Look
0001A0: 75 70 2C 52 65 61 64 42 6C 6F 63 6B 2C 53 65 74 up,ReadBlock,Set
0001B0: 42 6C 6F 63 6B 3B 0D 0A 0D 0A 28 2A 09 46 69 6C Block;....(*.Fil
0001C0: 65 73 20 69 73 20 74 68 65 20 66 69 6C 65 20 6F es is the file o
0001D0: 72 69 65 6E 74 65 64 20 62 6C 6F 63 6B 20 6C 65 riented block le
0001E0: 76 65 6C 20 49 4F 20 73 79 73 74 65 6D 2A 29 0D vel IO system*).
0001F0: 0A 0D 0A 46 52 4F 4D 20 53 59 53 54 45 4D 20 49 ...FROM SYSTEM I
Size : 512 (Real : 512)
000000: 69 6C 65 72 20 61 6C 6C 6F 77 73 20 79 6F 75 20 iler allows you
000010: 74 6F 20 74 79 70 65 20 62 72 65 61 6B 20 77 69 to type break wi
000020: 74 68 20 74 79 70 65 73 0D 0A 09 09 20 20 61 6E th types.... an
000030: 64 20 76 61 72 69 61 62 6C 65 73 20 6D 6F 72 65 d variables more
000040: 20 74 68 61 6E 20 74 77 6F 20 62 79 74 65 73 20 than two bytes
000050: 69 6E 20 6C 65 6E 67 74 68 2C 20 77 68 69 63 68 in length, which
000060: 20 73 69 6D 70 6C 69 66 79 73 0D 0A 09 09 20 20 simplifys....
000070: 74 68 69 73 20 63 6F 64 65 20 67 72 65 61 74 65 this code greate
000080: 6C 79 2E 20 57 68 61 74 20 69 73 20 68 61 70 70 ly. What is happ
000090: 65 6E 69 6E 67 20 69 73 20 74 68 61 74 20 43 68 ening is that Ch
0000A0: 61 72 73 20 69 73 20 72 65 61 6C 6C 79 0D 0A 09 ars is really...
0000B0: 09 20 20 6F 66 20 74 79 70 65 20 41 52 52 41 59 . of type ARRAY
0000C0: 5B 73 6F 6D 65 74 68 69 6E 67 5D 20 4F 46 20 43 [something] OF C
0000D0: 48 41 52 2C 20 61 6E 64 20 69 73 20 6E 6F 74 20 HAR, and is not
0000E0: 74 68 65 20 73 61 6D 65 20 61 73 20 46 69 6C 65 the same as File
0000F0: 4E 61 6D 65 0D 0A 09 09 0D 0A 09 09 20 20 42 79 Name........ By
000100: 20 70 75 74 74 69 6E 67 20 74 68 65 20 76 61 72 putting the var
000110: 69 61 62 6C 65 20 69 6E 20 46 69 6C 65 4E 61 6D iable in FileNam
000120: 65 28 29 2C 20 69 74 73 20 74 79 70 65 20 69 73 e(), its type is
000130: 20 63 68 61 6E 67 65 64 20 74 6F 0D 0A 09 09 20 changed to....
000140: 20 62 65 20 46 69 6C 65 4E 61 6D 65 2E 20 54 68 be FileName. Th
000150: 69 73 20 69 73 6E 27 74 20 72 65 61 6C 6C 79 20 is isn't really
000160: 61 20 63 6F 65 72 63 69 6F 6E 20 73 69 6E 63 65 a coercion since
000170: 20 74 68 65 20 64 61 74 61 20 69 73 20 6E 6F 74 the data is not
000180: 0D 0A 09 09 20 20 61 6C 74 65 72 65 64 20 69 6E .... altered in
000190: 20 61 6E 79 20 77 61 79 2E 20 49 74 20 73 69 6D any way. It sim
0001A0: 70 6C 79 20 64 65 66 65 61 74 73 20 74 68 65 20 ply defeats the
0001B0: 63 6F 6D 70 69 6C 65 72 27 73 20 74 79 70 65 0D compiler's type.
0001C0: 0A 09 09 20 20 63 68 65 63 6B 69 6E 67 2E 20 20 ... checking.
0001D0: 2A 29 0D 0A 0D 0A 09 20 09 09 4F 70 65 6E 28 46 *)..... ..Open(F
0001E0: 69 6C 65 4E 61 6D 65 28 43 68 61 72 73 29 2C 46 ileName(Chars),F
0001F0: 69 6C 65 50 6F 73 69 74 69 6F 6E 29 3B 0D 0A 09 ilePosition);...
Size : 512 (Real : 512)
000000: 4D 50 4F 52 54 20 41 44 52 3B 0D 0A 0D 0A 46 52 MPORT ADR;....FR
000010: 4F 4D 20 53 74 6F 72 61 67 65 20 49 4D 50 4F 52 OM Storage IMPOR
000020: 54 20 46 75 6C 6C 55 70 3B 0D 0A 0D 0A 28 2A 09 T FullUp;....(*.
000030: 54 65 72 6D 69 6E 61 6C 20 69 73 20 74 68 65 20 Terminal is the
000040: 73 74 61 6E 64 61 72 64 20 74 65 72 6D 69 6E 61 standard termina
000050: 6C 20 69 6E 70 75 74 2D 6F 75 74 70 75 74 20 6D l input-output m
000060: 6F 64 75 6C 65 0D 0A 0D 0A 09 49 74 20 69 73 20 odule.....It is
000070: 61 6C 73 6F 20 70 6F 73 73 69 62 6C 65 20 74 6F also possible to
000080: 20 64 6F 20 49 6E 70 75 74 2D 4F 75 74 70 75 74 do Input-Output
000090: 20 74 6F 20 74 68 65 20 74 65 72 6D 69 6E 61 6C to the terminal
0000A0: 0D 0A 09 74 68 72 6F 75 67 68 20 74 68 65 20 6D ...through the m
0000B0: 6F 64 75 6C 65 73 20 53 74 72 65 61 6D 73 20 61 odules Streams a
0000C0: 6E 64 20 49 6E 4F 75 74 2C 20 62 75 74 20 74 68 nd InOut, but th
0000D0: 65 73 65 0D 0A 09 69 6E 63 72 65 61 73 65 20 74 ese...increase t
0000E0: 68 65 20 73 69 7A 65 20 6F 66 20 74 68 65 20 70 he size of the p
0000F0: 72 6F 67 72 61 6D 20 61 6E 64 20 61 72 65 20 6F rogram and are o
000100: 6E 6C 79 20 72 65 71 75 69 72 65 64 20 69 66 20 nly required if
000110: 0D 0A 09 79 6F 75 20 77 61 6E 74 20 74 6F 20 64 ...you want to d
000120: 6F 20 6D 6F 72 65 20 70 6F 77 65 72 66 75 6C 20 o more powerful
000130: 74 68 69 6E 67 73 2C 20 73 75 63 68 20 61 73 20 things, such as
000140: 66 69 6C 65 0D 0A 09 72 65 64 69 72 65 63 74 69 file...redirecti
000150: 6F 6E 20 61 6E 64 20 6E 75 6D 62 65 72 20 63 6F on and number co
000160: 6E 76 65 72 73 69 6F 6E 2E 20 49 66 20 61 6C 6C nversion. If all
000170: 20 79 6F 75 20 77 61 6E 74 20 69 73 20 6E 75 6D you want is num
000180: 62 65 72 20 0D 0A 09 63 6F 6E 76 65 72 73 69 6F ber ...conversio
000190: 6E 2C 20 53 6D 61 6C 6C 49 4F 20 63 61 6E 20 62 n, SmallIO can b
0001A0: 65 20 75 73 65 64 20 2A 29 20 0D 0A 0D 0A 56 41 e used *) ....VA
0001B0: 52 09 50 61 72 73 3A 41 52 52 41 59 5B 30 2E 2E R.Pars:ARRAY[0..
0001C0: 33 5D 20 4F 46 20 50 61 72 61 6D 65 74 65 72 3B 3] OF Parameter;
0001D0: 0D 0A 09 50 61 72 43 6F 75 6E 74 3A 49 4E 54 45 ...ParCount:INTE
0001E0: 47 45 52 3B 0D 0A 0D 0A 09 28 2A 09 50 61 72 73 GER;.....(*.Pars
0001F0: 20 69 73 20 61 6E 20 61 72 72 61 79 20 69 6E 74 is an array int
Size : 512 (Real : 512)
000000: 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A ..END;....END;..
000010: 09 49 46 20 45 72 72 6F 72 43 6F 75 6E 74 3E 30 .IF ErrorCount>0
000020: 20 54 48 45 4E 20 44 65 66 69 6E 65 45 72 72 6F THEN DefineErro
000030: 72 73 28 46 69 6C 65 73 5B 43 75 72 72 65 6E 74 rs(Files[Current
000040: 46 69 6C 65 5D 29 20 45 4E 44 3B 0D 0A 09 45 4E File]) END;...EN
000050: 44 20 4F 70 65 6E 46 69 6C 65 73 3B 09 09 09 09 D OpenFiles;....
000060: 0D 0A 50 52 4F 43 45 44 55 52 45 20 4D 65 6D 46 ..PROCEDURE MemF
000070: 75 6C 6C 3B 0D 0A 42 45 47 49 4E 0D 0A 09 45 72 ull;..BEGIN...Er
000080: 72 6F 72 4D 65 73 73 61 67 65 28 27 20 4D 65 6D rorMessage(' Mem
000090: 6F 72 79 20 69 73 20 66 75 6C 6C 20 2D 20 70 6C ory is full - pl
0000A0: 65 61 73 65 20 73 61 76 65 20 66 69 6C 65 73 20 ease save files
0000B0: 6E 6F 77 27 2C 27 20 27 29 3B 0D 0A 09 44 6F 4D now',' ');...DoM
0000C0: 65 6E 75 4F 70 3B 0D 0A 09 45 4E 44 20 4D 65 6D enuOp;...END Mem
0000D0: 46 75 6C 6C 3B 0D 0A 56 41 52 09 63 63 63 3A 43 Full;..VAR.ccc:C
0000E0: 48 41 52 3B 0D 0A 42 45 47 49 4E 0D 0A 0D 0A 09 HAR;..BEGIN.....
0000F0: 28 2A 47 65 74 50 61 72 61 6D 73 20 72 65 61 64 (*GetParams read
000100: 73 20 74 68 65 20 70 61 72 61 6D 65 74 65 72 73 s the parameters
000110: 20 66 72 6F 6D 20 74 68 65 20 63 6F 6D 6D 61 6E from the comman
000120: 64 20 6C 69 6E 65 2A 29 0D 0A 0D 0A 09 46 75 6C d line*).....Ful
000130: 6C 55 70 3A 3D 4D 65 6D 46 75 6C 6C 3B 0D 0A 09 lUp:=MemFull;...
000140: 47 65 74 50 61 72 61 6D 73 28 50 61 72 73 2C 50 GetParams(Pars,P
000150: 61 72 43 6F 75 6E 74 29 3B 0D 0A 09 46 69 6C 65 arCount);...File
000160: 73 4F 70 65 6E 65 64 3A 3D 30 3B 0D 0A 09 49 46 sOpened:=0;...IF
000170: 20 50 61 72 43 6F 75 6E 74 3E 30 20 54 48 45 4E ParCount>0 THEN
000180: 20 4F 70 65 6E 46 69 6C 65 73 20 45 4E 44 3B 0D OpenFiles END;.
000190: 0A 09 49 46 20 45 72 72 6F 72 43 6F 75 6E 74 3C ..IF ErrorCount<
0001A0: 3E 30 20 54 48 45 4E 20 44 69 73 70 6C 61 79 45 >0 THEN DisplayE
0001B0: 72 72 6F 72 20 45 4E 44 3B 0D 0A 09 49 46 20 46 rror END;...IF F
0001C0: 69 6C 65 73 4F 70 65 6E 65 64 3E 30 20 54 48 45 ilesOpened>0 THE
0001D0: 4E 20 43 68 61 6E 67 65 57 69 6E 64 6F 77 28 31 N ChangeWindow(1
0001E0: 29 20 45 4E 44 3B 0D 0A 09 4C 4F 4F 50 0D 0A 0D ) END;...LOOP...
0001F0: 0A 09 09 28 2A 74 68 69 73 20 6C 6F 6F 70 20 67 ...(*this loop g
Size : 512 (Real : 512)
000000: 6F 20 77 68 69 63 68 20 43 6F 6D 6D 61 6E 64 20 o which Command
000010: 77 69 6C 6C 20 70 6C 61 63 65 0D 0A 09 09 74 68 will place....th
000020: 65 20 70 61 72 61 6D 65 74 65 72 73 20 65 6E 74 e parameters ent
000030: 65 72 65 64 20 6F 6E 20 74 68 65 20 63 6F 6D 6D ered on the comm
000040: 61 6E 64 20 6C 69 6E 65 0D 0A 09 09 0D 0A 09 09 and line........
000050: 49 74 20 6E 65 65 64 20 6F 6E 6C 79 20 62 65 20 It need only be
000060: 61 73 20 6C 61 72 67 65 20 61 73 20 74 68 65 20 as large as the
000070: 6E 75 6D 62 65 72 20 6F 66 20 70 61 72 61 6D 65 number of parame
000080: 74 65 72 73 0D 0A 09 09 79 6F 75 20 65 78 70 65 ters....you expe
000090: 63 74 20 74 6F 20 62 65 20 65 6E 74 65 72 65 64 ct to be entered
0000A0: 20 6F 6E 20 74 68 65 20 63 6F 6D 6D 61 6E 64 20 on the command
0000B0: 6C 69 6E 65 0D 0A 0D 0A 09 09 54 68 65 20 65 64 line......The ed
0000C0: 69 74 6F 72 20 65 78 70 65 63 74 73 20 75 70 20 itor expects up
0000D0: 74 6F 20 66 6F 75 72 20 70 61 72 61 6D 65 74 65 to four paramete
0000E0: 72 73 3A 20 74 68 72 65 65 0D 0A 09 09 66 69 6C rs: three....fil
0000F0: 65 20 6E 61 6D 65 73 20 61 6E 64 20 73 6F 6D 65 e names and some
000100: 20 6F 70 74 69 6F 6E 73 2C 20 61 6C 74 68 6F 75 options, althou
000110: 67 68 20 74 68 65 20 6F 70 74 69 6F 6E 73 0D 0A gh the options..
000120: 09 09 61 72 65 20 63 75 72 72 65 6E 74 6C 79 20 ..are currently
000130: 6F 6E 6C 79 20 75 73 65 64 20 62 79 20 74 68 65 only used by the
000140: 20 63 6F 6D 70 69 6C 65 72 20 77 68 65 6E 20 69 compiler when i
000150: 74 20 0D 0A 09 09 6C 69 6E 6B 73 20 74 6F 20 74 t ....links to t
000160: 68 65 20 65 64 69 74 6F 72 20 61 66 74 65 72 20 he editor after
000170: 61 6E 20 65 72 72 6F 72 20 61 6E 64 20 69 6E 20 an error and in
000180: 74 68 61 74 0D 0A 09 09 63 61 73 65 2C 20 74 68 that....case, th
000190: 65 72 65 20 69 73 20 6F 6E 6C 79 20 6F 6E 65 20 ere is only one
0001A0: 6F 74 68 65 72 20 70 61 72 61 6D 65 74 65 72 0D other parameter.
0001B0: 0A 09 2A 29 0D 0A 0D 0A 09 6B 3A 49 4E 54 45 47 ..*).....k:INTEG
0001C0: 45 52 3B 0D 0A 09 69 2C 6A 3A 43 41 52 44 49 4E ER;...i,j:CARDIN
0001D0: 41 4C 3B 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 AL;...reply:INTE
0001E0: 47 45 52 3B 0D 0A 09 66 6E 3A 46 69 6C 65 4E 61 GER;...fn:FileNa
0001F0: 6D 65 3B 0D 0A 09 63 68 3A 43 48 41 52 3B 0D 0A me;...ch:CHAR;..
Size : 512 (Real : 512)
000000: 6F 65 73 20 72 6F 75 6E 64 20 66 6F 72 20 65 76 oes round for ev
000010: 65 72 20 73 69 6E 63 65 20 74 68 65 72 65 20 69 er since there i
000020: 73 20 61 6E 0D 0A 09 09 20 20 65 78 70 6C 69 63 s an.... explic
000030: 69 74 20 48 41 4C 54 20 69 6E 20 64 6F 6D 65 6E it HALT in domen
000040: 75 20 74 6F 20 73 74 6F 70 20 74 68 65 20 70 72 u to stop the pr
000050: 6F 67 72 61 6D 2A 29 0D 0A 0D 0A 09 09 49 46 20 ogram*)......IF
000060: 46 69 6C 65 73 4F 70 65 6E 65 64 3E 30 20 54 48 FilesOpened>0 TH
000070: 45 4E 20 0D 0A 09 09 09 49 6E 74 65 72 70 72 65 EN .....Interpre
000080: 74 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 69 t;.....END;....i
000090: 3A 3D 43 75 72 72 65 6E 74 57 69 6E 64 6F 77 3B :=CurrentWindow;
0000A0: 09 0D 0A 09 09 6B 3A 3D 43 75 72 72 65 6E 74 46 .....k:=CurrentF
0000B0: 69 6C 65 3B 0D 0A 0D 0A 09 09 28 2A 72 65 6D 65 ile;......(*reme
0000C0: 6D 62 65 72 20 63 75 72 72 65 6E 74 20 77 69 6E mber current win
0000D0: 64 6F 77 20 73 69 6E 63 65 20 44 6F 6D 65 6E 75 dow since Domenu
0000E0: 4F 70 20 6D 61 79 20 63 68 61 6E 67 65 20 69 74 Op may change it
0000F0: 2A 29 0D 0A 0D 0A 09 09 6A 3A 3D 46 69 6C 65 73 *)......j:=Files
000100: 4F 70 65 6E 65 64 3B 0D 0A 09 09 44 6F 4D 65 6E Opened;....DoMen
000110: 75 4F 70 3B 09 28 2A 65 78 70 6C 69 63 69 74 20 uOp;.(*explicit
000120: 65 78 69 74 20 69 6E 20 74 68 69 73 20 6D 6F 64 exit in this mod
000130: 75 6C 65 2A 29 0D 0A 09 09 49 46 20 28 69 3D 43 ule*)....IF (i=C
000140: 75 72 72 65 6E 74 57 69 6E 64 6F 77 29 20 41 4E urrentWindow) AN
000150: 44 20 28 57 69 6E 64 6F 77 73 3E 30 29 20 54 48 D (Windows>0) TH
000160: 45 4E 0D 0A 0D 0A 09 09 09 28 2A 61 66 74 65 72 EN.......(*after
000170: 20 6D 65 6E 75 2C 20 72 65 64 69 73 70 6C 61 79 menu, redisplay
000180: 20 77 69 6E 64 6F 77 20 69 6E 20 77 68 69 63 68 window in which
000190: 20 74 68 65 0D 0A 09 09 09 20 20 77 69 6E 64 6F the..... windo
0001A0: 77 20 70 6F 70 70 65 64 20 75 70 2A 29 0D 0A 0D w popped up*)...
0001B0: 0A 09 09 09 44 69 73 70 6C 61 79 46 69 6C 65 28 ....DisplayFile(
0001C0: 46 69 6C 65 73 5B 6B 5D 2C 69 2C 63 75 72 78 5B Files[k],i,curx[
0001D0: 69 5D 2C 63 75 72 79 5B 69 5D 29 3B 0D 0A 09 09 i],cury[i]);....
0001E0: 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A .END;....END; (*
0001F0: 4C 4F 4F 50 2A 29 0D 0A 0D 0A 09 45 4E 44 20 6D LOOP*).....END m
Size : 512 (Real : 512)
000000: 0D 0A 28 2A 09 45 72 72 6F 72 20 64 69 73 70 6C ..(*.Error displ
000010: 61 79 20 72 6F 75 74 69 6E 65 0D 0A 0D 0A 09 49 ay routine.....I
000020: 66 20 74 68 65 20 65 64 69 74 6F 72 20 69 73 20 f the editor is
000030: 65 6E 74 65 72 65 64 20 61 73 20 74 68 65 20 72 entered as the r
000040: 65 73 75 6C 74 20 6F 66 20 61 20 63 6F 6D 70 69 esult of a compi
000050: 6C 61 74 69 6F 6E 20 65 72 72 6F 72 2C 0D 0A 09 lation error,...
000060: 74 68 65 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 the command line
000070: 20 63 6F 6E 73 69 73 74 73 20 6F 66 20 74 68 65 consists of the
000080: 20 6E 61 6D 65 20 6F 66 20 74 68 65 20 66 69 6C name of the fil
000090: 65 20 77 68 69 63 68 20 77 61 73 0D 0A 09 62 65 e which was...be
0000A0: 69 6E 67 20 63 6F 6D 70 69 6C 65 64 20 66 6F 6C ing compiled fol
0000B0: 6C 6F 77 65 64 20 62 79 20 61 6E 20 6F 70 74 69 lowed by an opti
0000C0: 6F 6E 2E 20 54 68 65 20 6F 70 74 69 6F 6E 20 63 on. The option c
0000D0: 6F 6E 74 61 69 6E 73 0D 0A 09 74 77 6F 20 69 6E ontains...two in
0000E0: 74 65 67 65 72 20 76 61 6C 75 65 73 20 69 6E 20 teger values in
0000F0: 62 69 6E 61 72 79 20 28 73 6F 20 79 6F 75 20 63 binary (so you c
000100: 61 6E 6E 6F 74 20 65 6E 74 65 72 20 73 61 6D 65 annot enter same
000110: 20 66 72 6F 6D 0D 0A 09 74 68 65 20 43 50 2F 4D from...the CP/M
000120: 20 70 72 6F 6D 70 74 20 2D 20 6F 72 20 61 74 20 prompt - or at
000130: 6C 65 61 73 74 20 6E 6F 74 20 65 61 73 69 6C 79 least not easily
000140: 29 2E 20 47 69 76 69 6E 67 20 74 68 65 20 70 6F ). Giving the po
000150: 73 69 74 69 6F 6E 0D 0A 09 6F 66 20 74 68 65 20 sition...of the
000160: 65 72 72 6F 72 20 69 6E 20 74 68 65 20 66 69 6C error in the fil
000170: 65 20 61 6E 64 20 74 68 65 20 65 72 72 6F 72 20 e and the error
000180: 6E 75 6D 62 65 72 2A 29 0D 0A 0D 0A 0D 0A 28 2A number*)......(*
000190: 09 57 6F 72 6B 20 74 68 72 6F 75 67 68 20 74 68 .Work through th
0001A0: 65 20 70 61 72 61 6D 65 74 65 72 73 20 6F 70 65 e parameters ope
0001B0: 6E 69 6E 67 20 74 68 65 20 66 69 6C 65 73 20 74 ning the files t
0001C0: 6F 20 62 65 20 65 64 69 74 65 64 0D 0A 09 50 61 o be edited...Pa
0001D0: 72 73 20 61 6E 64 20 50 61 72 43 6F 75 6E 74 20 rs and ParCount
0001E0: 68 61 76 65 20 61 6C 72 65 61 64 79 20 62 65 65 have already bee
0001F0: 6E 20 73 65 74 20 75 70 20 62 79 20 61 20 63 61 n set up by a ca
Size : 512 (Real : 512)
000000: 65 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 45 4E e.............EN
000010: 44 3B 20 28 2A 43 68 61 72 50 6F 73 3E 42 6C 6F D; (*CharPos>Blo
000020: 63 6B 4C 65 6E 2A 29 0D 0A 09 52 45 54 55 52 4E ckLen*)...RETURN
000030: 20 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B Working^.Chars[
000040: 43 68 61 72 50 6F 73 5D 3C 3E 45 4F 46 0D 0A 09 CharPos]<>EOF...
000050: 45 4E 44 20 41 64 76 61 6E 63 65 3B 0D 0A 0D 0A END Advance;....
000060: 50 52 4F 43 45 44 55 52 45 20 43 68 65 63 6B 42 PROCEDURE CheckB
000070: 6C 6F 63 6B 28 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A lock(...........
000080: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000090: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 18 8F 65 01 00 .............e..
0000A0: 31 35 46 45 42 38 37 20 44 4F 43 20 00 00 00 00 15FEB87 DOC ....
0000B0: 00 00 00 00 00 00 AC 3B 50 0E 51 0D 8F 65 01 00 .......;P.Q..e..
0000C0: 46 49 58 45 53 20 20 20 44 4F 43 20 00 00 00 00 FIXES DOC ....
0000D0: 00 00 00 00 00 00 F0 73 50 0E 47 25 74 05 00 00 .......sP.G%t...
0000E0: 46 49 58 45 53 20 20 20 42 41 4B 20 00 00 00 00 FIXES BAK ....
0000F0: 00 00 00 00 00 00 E2 70 50 0E F1 21 D4 03 00 00 .......pP..!....
000100: 70 28 41 44 52 28 43 68 61 72 73 5B 42 6C 6F 63 p(ADR(Chars[Bloc
000110: 6B 4C 65 6E 5D 29 2C 0D 0A 09 09 09 20 20 20 20 kLen]),.....
000120: 41 44 52 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 ADR(Working^.Cha
000130: 72 73 29 2C 0D 0A 09 09 09 20 20 20 20 6C 65 66 rs),..... lef
000140: 74 2B 31 29 3B 0D 0A 09 09 09 49 46 20 43 68 61 t+1);.....IF Cha
000150: 72 50 6F 73 3C 4F 52 44 28 42 6C 6F 63 6B 4C 65 rPos<ORD(BlockLe
000160: 6E 29 20 54 48 45 4E 20 57 6F 72 6B 69 6E 67 3A n) THEN Working:
000170: 3D 4D 61 69 6E 42 6C 6F 63 6B 0D 0A 09 09 09 45 =MainBlock.....E
000180: 4C 53 45 20 43 68 61 72 50 6F 73 3A 3D 43 68 61 LSE CharPos:=Cha
000190: 72 50 6F 73 2D 4F 52 44 28 42 6C 6F 63 6B 4C 65 rPos-ORD(BlockLe
0001A0: 6E 29 20 45 4E 44 3B 0D 0A 09 09 09 49 6E 73 49 n) END;.....InsI
0001B0: 6E 42 6C 6F 63 6B 3B 0D 0A 09 09 09 45 4E 44 3B nBlock;.....END;
0001C0: 28 2A 57 49 54 48 2A 29 0D 0A 09 09 45 4E 44 3B (*WITH*)....END;
0001D0: 28 2A 6C 65 66 74 3E 3D 6C 65 6E 2A 29 0D 0A 09 (*left>=len*)...
0001E0: 73 61 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A savecurpos(f);..
0001F0: 09 45 4E 44 20 49 6E 73 43 68 61 72 73 3B 0D 0A .END InsChars;..
Size : 512 (Real : 512)
000000: 6C 6C 20 74 6F 0D 0A 09 74 68 65 20 43 6F 6D 6D ll to...the Comm
000010: 61 6E 64 20 6D 6F 64 75 6C 65 2A 29 0D 0A 0D 0A and module*)....
000020: 50 52 4F 43 45 44 55 52 45 20 4F 70 65 6E 46 69 PROCEDURE OpenFi
000030: 6C 65 73 3B 0D 0A 56 41 52 09 6B 3A 49 4E 54 45 les;..VAR.k:INTE
000040: 47 45 52 3B 0D 0A 09 46 69 6C 65 50 6F 73 69 74 GER;...FilePosit
000050: 69 6F 6E 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 42 ion:CARDINAL;..B
000060: 45 47 49 4E 0D 0A 0D 0A 09 28 2A 09 63 68 65 63 EGIN.....(*.chec
000070: 6B 20 66 6F 72 20 6F 70 74 69 6F 6E 20 67 69 76 k for option giv
000080: 69 6E 67 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 ing error number
000090: 20 61 6E 64 20 70 6F 73 69 74 69 6F 6E 2A 29 0D and position*).
0000A0: 0A 09 45 72 72 6F 72 43 6F 75 6E 74 3A 3D 30 3B ..ErrorCount:=0;
0000B0: 0D 0A 09 45 72 72 6F 72 4F 72 64 69 6E 61 6C 3A ...ErrorOrdinal:
0000C0: 3D 30 3B 0D 0A 09 57 49 54 48 20 50 61 72 73 5B =0;...WITH Pars[
0000D0: 50 61 72 43 6F 75 6E 74 2D 31 5D 5E 20 44 4F 0D ParCount-1]^ DO.
0000E0: 0A 09 09 49 46 20 43 6C 61 73 73 3D 6F 70 74 69 ...IF Class=opti
0000F0: 6F 6E 20 54 48 45 4E 0D 0A 09 09 09 45 72 72 6F on THEN.....Erro
000100: 72 43 6F 75 6E 74 3A 3D 46 69 6C 65 50 6F 73 3B rCount:=FilePos;
000110: 0D 0A 09 09 09 4D 6F 76 65 75 70 28 41 44 52 28 .....Moveup(ADR(
000120: 43 68 61 72 73 5B 32 5D 29 2C 41 44 52 28 45 72 Chars[2]),ADR(Er
000130: 72 6F 72 4C 69 73 74 29 2C 34 2A 45 72 72 6F 72 rorList),4*Error
000140: 43 6F 75 6E 74 29 3B 0D 0A 09 09 09 44 45 43 28 Count);.....DEC(
000150: 50 61 72 43 6F 75 6E 74 29 3B 0D 0A 09 09 45 4C ParCount);....EL
000160: 53 45 0D 0A 09 09 09 46 69 6C 65 50 6F 73 69 74 SE.....FilePosit
000170: 69 6F 6E 3A 3D 36 35 35 33 35 0D 0A 09 09 09 45 ion:=65535.....E
000180: 4E 44 3B 28 2A 49 46 2A 29 0D 0A 09 09 45 4E 44 ND;(*IF*)....END
000190: 3B 09 0D 0A 09 46 4F 52 20 6B 3A 3D 30 20 54 4F ;....FOR k:=0 TO
0001A0: 20 50 61 72 43 6F 75 6E 74 2D 31 20 44 4F 0D 0A ParCount-1 DO..
0001B0: 09 09 57 49 54 48 20 50 61 72 73 5B 6B 5D 5E 20 ..WITH Pars[k]^
0001C0: 44 4F 0D 0A 0D 0A 09 09 28 2A 20 4E 6F 74 65 20 DO......(* Note
0001D0: 74 68 65 20 65 78 74 65 6E 73 69 6F 6E 20 62 65 the extension be
0001E0: 6C 6F 77 3A 0D 0A 0D 0A 09 09 20 20 41 73 20 6F low:...... As o
0001F0: 66 20 56 31 2E 32 2C 20 54 68 65 20 63 6F 6D 70 f V1.2, The comp
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 4D 65 6E 75 3B 0D 0A 0D 0A 28 2A 09 4D 65 E Menu;....(*.Me
000020: 6E 75 20 64 72 69 76 65 72 0D 0A 0D 0A 09 42 72 nu driver.....Br
000030: 69 6E 67 20 75 70 20 61 20 6D 65 6E 75 20 61 74 ing up a menu at
000040: 20 73 65 6C 65 63 74 65 64 20 70 6F 69 6E 74 20 selected point
000050: 6F 6E 20 73 63 72 65 65 6E 20 61 6E 64 20 61 63 on screen and ac
000060: 63 65 70 74 20 61 6E 20 6F 70 74 69 6F 6E 0D 0A cept an option..
000070: 0D 0A 09 6F 70 74 69 6F 6E 73 20 63 61 6E 20 62 ...options can b
000080: 65 20 73 65 6C 65 63 74 65 64 20 65 69 74 68 65 e selected eithe
000090: 72 20 62 79 20 73 74 72 69 6B 69 6E 67 20 66 69 r by striking fi
0000A0: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 rst character of
0000B0: 0D 0A 0D 0A 09 6F 70 74 69 6F 6E 20 6F 72 20 62 .....option or b
0000C0: 79 20 65 6E 74 65 72 69 6E 67 20 6F 70 74 69 6F y entering optio
0000D0: 6E 20 6E 6F 20 28 6C 69 6D 69 74 65 64 20 74 6F n no (limited to
0000E0: 20 30 2D 39 29 0D 0A 0D 0A 09 6F 70 74 69 6F 6E 0-9).....option
0000F0: 20 30 20 69 73 20 61 6C 77 61 79 73 20 65 78 69 0 is always exi
000100: 74 20 77 69 74 68 6F 75 74 20 73 65 6C 65 63 74 t without select
000110: 69 6F 6E 20 61 73 20 69 73 20 65 73 63 61 70 65 ion as is escape
000120: 2A 29 0D 0A 0D 0A 54 59 50 45 09 4D 65 6E 75 54 *)....TYPE.MenuT
000130: 65 78 74 3D 41 52 52 41 59 5B 31 2E 2E 31 31 5D ext=ARRAY[1..11]
000140: 20 4F 46 20 43 48 41 52 3B 0D 0A 0D 0A 50 52 4F OF CHAR;....PRO
000150: 43 45 44 55 52 45 20 47 65 74 46 72 6F 6D 4D 65 CEDURE GetFromMe
000160: 6E 75 28 56 41 52 20 54 65 78 74 3A 41 52 52 41 nu(VAR Text:ARRA
000170: 59 20 4F 46 20 4D 65 6E 75 54 65 78 74 3B 78 2C Y OF MenuText;x,
000180: 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 64 y:CARDINAL;....d
000190: 65 70 74 68 2C 63 6F 6C 75 6D 6E 73 3A 43 41 52 epth,columns:CAR
0001A0: 44 49 4E 41 4C 29 3A 43 41 52 44 49 4E 41 4C 3B DINAL):CARDINAL;
0001B0: 0D 0A 0D 0A 28 2A 20 09 54 65 78 74 20 69 73 20 ....(* .Text is
0001C0: 74 68 65 20 74 65 78 74 20 74 6F 20 64 69 73 70 the text to disp
0001D0: 6C 61 79 0D 0A 0D 0A 09 78 20 61 6E 64 20 79 20 lay.....x and y
0001E0: 61 72 65 20 74 68 65 20 70 6F 73 69 74 69 6F 6E are the position
0001F0: 20 66 6F 72 20 74 68 65 20 74 6F 70 20 6C 65 66 for the top lef
Size : 512 (Real : 512)
000000: 69 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F irst character o
000010: 66 20 6D 65 6E 75 20 61 73 20 6F 70 74 69 6F 6E f menu as option
000020: 0D 0A 09 41 6C 77 61 79 73 20 6D 6F 76 65 20 2D ...Always move -
000030: 20 73 6F 20 74 68 61 74 20 69 66 20 6D 6F 72 65 so that if more
000040: 20 74 68 61 6E 20 6F 6E 65 20 63 6F 6D 6D 61 6E than one comman
000050: 64 20 73 74 61 72 74 73 20 77 69 74 68 0D 0A 09 d starts with...
000060: 74 68 65 20 73 61 6D 65 20 63 68 61 72 61 63 74 the same charact
000070: 65 72 20 79 6F 75 20 63 61 6E 20 67 65 74 20 74 er you can get t
000080: 6F 20 6F 74 68 65 72 20 74 68 61 6E 20 74 68 65 o other than the
000090: 20 66 69 72 73 74 20 2A 29 0D 0A 56 41 52 09 69 first *)..VAR.i
0000A0: 3A 49 4E 54 45 47 45 52 3B 0D 0A 42 45 47 49 4E :INTEGER;..BEGIN
0000B0: 0D 0A 09 69 3A 3D 48 49 47 48 28 54 65 78 74 29 ...i:=HIGH(Text)
0000C0: 3B 0D 0A 09 52 45 50 45 41 54 0D 0A 09 09 43 68 ;...REPEAT....Ch
0000D0: 61 6E 67 65 4F 70 74 69 6F 6E 28 31 29 3B 0D 0A angeOption(1);..
0000E0: 09 09 44 45 43 28 69 29 3B 0D 0A 09 09 55 4E 54 ..DEC(i);....UNT
0000F0: 49 4C 20 28 69 3C 30 29 20 4F 52 20 28 43 41 50 IL (i<0) OR (CAP
000100: 28 54 65 78 74 5B 4F 70 74 69 6F 6E 4E 6F 5D 5B (Text[OptionNo][
000110: 31 5D 29 3D 43 41 50 28 63 68 29 29 3B 0D 0A 09 1])=CAP(ch));...
000120: 45 4E 44 20 43 68 61 6E 67 65 50 6F 73 3B 0D 0A END ChangePos;..
000130: 42 45 47 49 4E 0D 0A 09 28 2A 09 64 72 61 77 20 BEGIN...(*.draw
000140: 74 68 65 20 62 6F 78 2A 29 0D 0A 0D 0A 09 78 31 the box*).....x1
000150: 3A 3D 78 2B 28 77 69 64 74 68 2B 31 29 2A 63 6F :=x+(width+1)*co
000160: 6C 75 6D 6E 73 3B 0D 0A 09 79 31 3A 3D 79 2B 64 lumns;...y1:=y+d
000170: 65 70 74 68 2B 31 3B 0D 0A 09 44 72 61 77 42 6F epth+1;...DrawBo
000180: 78 28 78 2C 79 31 2C 78 31 2C 79 29 3B 0D 0A 09 x(x,y1,x1,y);...
000190: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 69 ScreenControl(Di
0001A0: 6D 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F 6E 74 m);...ScreenCont
0001B0: 72 6F 6C 28 53 74 61 72 74 47 72 61 70 68 29 3B rol(StartGraph);
0001C0: 0D 0A 09 46 4F 52 20 69 3A 3D 31 20 54 4F 20 63 ...FOR i:=1 TO c
0001D0: 6F 6C 75 6D 6E 73 2D 31 20 44 4F 0D 0A 09 09 78 olumns-1 DO....x
0001E0: 31 3A 3D 78 2B 69 2A 28 77 69 64 74 68 2B 31 29 1:=x+i*(width+1)
0001F0: 3B 0D 0A 09 09 46 4F 52 20 6A 3A 3D 79 2B 31 20 ;....FOR j:=y+1
Size : 512 (Real : 512)
000000: 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 t corner of the
000010: 62 6F 78 0D 0A 09 64 65 70 74 68 20 69 73 20 74 box...depth is t
000020: 68 65 20 6E 75 6D 62 65 72 20 6F 66 20 6F 70 74 he number of opt
000030: 69 6F 6E 73 20 69 6E 20 61 20 63 6F 6C 75 6D 6E ions in a column
000040: 0D 0A 09 63 6F 6C 75 6D 6E 73 20 69 73 20 74 68 ...columns is th
000050: 65 20 6E 75 6D 62 65 72 20 6F 66 20 63 6F 6C 75 e number of colu
000060: 6D 6E 73 20 74 68 61 74 20 77 69 6C 6C 20 62 65 mns that will be
000070: 20 72 65 71 75 69 72 65 64 09 2A 29 0D 0A 0D 0A required.*)....
000080: 45 4E 44 20 4D 65 6E 75 2E 0D 0A 1A 1A 1A 1A 1A END Menu........
000090: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000100: 76 61 6E 63 65 4F 4B 3A 3D 46 41 4C 53 45 3B 0D vanceOK:=FALSE;.
000110: 0A 09 09 09 45 58 49 54 20 0D 0A 09 09 09 45 4E ....EXIT .....EN
000120: 44 3B 0D 0A 09 09 49 46 20 28 63 68 3D 43 52 29 D;....IF (ch=CR)
000130: 20 4F 52 20 28 63 68 3D 4C 46 29 20 4F 52 20 28 OR (ch=LF) OR (
000140: 63 68 3D 46 46 29 20 54 48 45 4E 20 0D 0A 09 09 ch=FF) THEN ....
000150: 09 49 46 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 .IF NOT Advance(
000160: 29 20 54 48 45 4E 20 45 58 49 54 20 45 4E 44 3B ) THEN EXIT END;
000170: 0D 0A 09 09 09 63 68 3A 3D 57 6F 72 6B 69 6E 67 .....ch:=Working
000180: 5E 2E 43 68 61 72 73 5B 43 68 61 72 50 6F 73 5D ^.Chars[CharPos]
000190: 3B 0D 0A 09 09 09 49 46 20 63 68 3D 4C 46 20 54 ;.....IF ch=LF T
0001A0: 48 45 4E 20 62 3A 3D 41 64 76 61 6E 63 65 28 29 HEN b:=Advance()
0001B0: 20 45 4E 44 3B 0D 0A 09 09 09 45 58 49 54 0D 0A END;.....EXIT..
0001C0: 09 09 09 45 4E 44 3B 0D 0A 09 09 49 4E 43 28 70 ...END;....INC(p
0001D0: 6F 73 29 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 41 os);....IF NOT A
0001E0: 64 76 61 6E 63 65 28 29 20 54 48 45 4E 20 0D 0A dvance() THEN ..
0001F0: 09 09 09 41 64 76 61 6E 63 65 4F 4B 3A 3D 46 41 ...AdvanceOK:=FA
Size : 512 (Real : 512)
000000: 54 4F 20 79 31 2D 31 20 44 4F 0D 0A 09 09 09 47 TO y1-1 DO.....G
000010: 6F 74 6F 78 79 28 78 31 2C 6A 29 3B 0D 0A 09 09 otoxy(x1,j);....
000020: 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 56 .ScreenControl(V
000030: 65 72 74 69 63 61 6C 29 3B 0D 0A 09 09 09 45 4E ertical);.....EN
000040: 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 53 63 72 D;....END;...Scr
000050: 65 65 6E 43 6F 6E 74 72 6F 6C 28 45 6E 64 47 72 eenControl(EndGr
000060: 61 70 68 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F aph);...ScreenCo
000070: 6E 74 72 6F 6C 28 4E 6F 72 6D 61 6C 29 3B 0D 0A ntrol(Normal);..
000080: 0D 0A 09 28 2A 77 65 20 6E 6F 77 20 68 61 76 65 ...(*we now have
000090: 20 61 20 62 6F 78 20 61 72 6F 75 6E 64 20 74 68 a box around th
0000A0: 65 20 6D 65 6E 75 20 77 69 74 68 20 64 69 6D 20 e menu with dim
0000B0: 62 61 72 73 20 62 65 74 77 65 65 6E 20 63 6F 6C bars between col
0000C0: 75 6D 6E 73 2A 29 0D 0A 0D 0A 09 4F 70 74 69 6F umns*).....Optio
0000D0: 6E 4E 6F 3A 3D 30 3B 09 28 2A 61 63 74 75 61 6C nNo:=0;.(*actual
0000E0: 6C 79 20 6F 6E 65 20 6C 65 73 73 20 74 68 61 6E ly one less than
0000F0: 20 76 61 6C 75 65 20 72 65 74 75 72 6E 65 64 2A value returned*
000100: 29 0D 0A 09 6A 3A 3D 30 3B 09 09 28 2A 72 6F 77 )...j:=0;..(*row
000110: 20 6E 75 6D 62 65 72 2A 29 0D 0A 09 78 31 3A 3D number*)...x1:=
000120: 78 2B 31 3B 09 28 2A 70 6F 73 69 74 69 6F 6E 20 x+1;.(*position
000130: 66 6F 72 20 74 65 78 74 2A 29 0D 0A 09 79 31 3A for text*)...y1:
000140: 3D 79 2B 31 3B 09 0D 0A 09 46 4F 52 20 69 3A 3D =y+1;....FOR i:=
000150: 30 20 54 4F 20 48 49 47 48 28 54 65 78 74 29 20 0 TO HIGH(Text)
000160: 44 4F 09 0D 0A 09 09 47 6F 74 6F 78 79 28 78 31 DO.....Gotoxy(x1
000170: 2C 79 31 29 3B 0D 0A 09 09 57 72 69 74 65 53 74 ,y1);....WriteSt
000180: 72 69 6E 67 28 54 65 78 74 5B 69 5D 29 3B 0D 0A ring(Text[i]);..
000190: 09 09 49 4E 43 28 6A 29 3B 0D 0A 09 09 49 46 20 ..INC(j);....IF
0001A0: 6A 3D 64 65 70 74 68 20 54 48 45 4E 20 28 2A 6E j=depth THEN (*n
0001B0: 65 78 74 20 63 6F 6C 75 6D 6E 2A 29 0D 0A 09 09 ext column*)....
0001C0: 09 78 31 3A 3D 78 31 2B 77 69 64 74 68 2B 31 3B .x1:=x1+width+1;
0001D0: 0D 0A 09 09 09 79 31 3A 3D 79 2B 31 3B 0D 0A 09 .....y1:=y+1;...
0001E0: 09 09 6A 3A 3D 30 0D 0A 09 09 45 4C 53 45 0D 0A ..j:=0....ELSE..
0001F0: 09 09 09 49 4E 43 28 79 31 29 3B 0D 0A 09 09 09 ...INC(y1);.....
Size : 512 (Real : 512)
000000: 28 2A 09 6D 65 6E 75 20 68 61 6E 64 6C 65 72 0D (*.menu handler.
000010: 0A 0D 0A 09 43 6F 70 79 72 69 67 68 74 20 44 61 ....Copyright Da
000020: 76 65 20 4D 6F 6F 72 65 20 46 54 4C 20 4D 6F 64 ve Moore FTL Mod
000030: 75 6C 61 2D 32 20 31 39 38 36 0D 0A 0D 0A 09 4D ula-2 1986.....M
000040: 6F 64 69 66 69 63 61 74 69 6F 6E 73 3A 09 43 68 odifications:.Ch
000050: 61 6E 67 65 64 20 74 6F 20 61 6C 6C 6F 77 20 70 anged to allow p
000060: 6F 73 69 74 69 6F 6E 20 74 6F 20 6F 70 74 69 6F osition to optio
000070: 6E 20 75 73 69 6E 67 20 66 69 72 73 74 0D 0A 09 n using first...
000080: 09 09 6C 65 74 74 65 72 20 6F 66 20 6F 70 74 69 ..letter of opti
000090: 6F 6E 2E 20 49 66 20 6D 6F 72 65 20 74 68 61 6E on. If more than
0000A0: 20 6F 6E 65 20 6F 70 74 69 6F 6E 20 73 74 61 72 one option star
0000B0: 74 73 0D 0A 09 09 09 77 69 74 68 20 61 20 67 69 ts.....with a gi
0000C0: 76 65 6E 20 6C 65 74 74 65 72 2C 20 61 6C 77 61 ven letter, alwa
0000D0: 79 73 20 6D 6F 76 65 73 20 74 6F 20 6E 65 78 74 ys moves to next
0000E0: 20 2A 29 0D 0A 0D 0A 0D 0A 49 4D 50 4C 45 4D 45 *)......IMPLEME
0000F0: 4E 54 41 54 49 4F 4E 20 4D 4F 44 55 4C 45 20 4D NTATION MODULE M
000100: 65 6E 75 3B 0D 0A 0D 0A 28 2A 09 4D 65 6E 75 20 enu;....(*.Menu
000110: 64 72 69 76 65 72 0D 0A 0D 0A 09 42 72 69 6E 67 driver.....Bring
000120: 20 75 70 20 61 20 6D 65 6E 75 20 61 74 20 73 65 up a menu at se
000130: 6C 65 63 74 65 64 20 70 6F 69 6E 74 20 6F 6E 20 lected point on
000140: 73 63 72 65 65 6E 20 61 6E 64 20 61 63 63 65 70 screen and accep
000150: 74 20 61 6E 20 6F 70 74 69 6F 6E 0D 0A 0D 0A 09 t an option.....
000160: 6F 70 74 69 6F 6E 73 20 63 61 6E 20 62 65 20 73 options can be s
000170: 65 6C 65 63 74 65 64 20 65 69 74 68 65 72 20 62 elected either b
000180: 79 20 73 74 72 69 6B 69 6E 67 20 66 69 72 73 74 y striking first
000190: 20 63 68 61 72 61 63 74 65 72 20 6F 66 0D 0A 0D character of...
0001A0: 0A 09 6F 70 74 69 6F 6E 20 6F 72 20 62 79 20 65 ..option or by e
0001B0: 6E 74 65 72 69 6E 67 20 6F 70 74 69 6F 6E 20 6E ntering option n
0001C0: 6F 20 28 6C 69 6D 69 74 65 64 20 74 6F 20 30 2D o (limited to 0-
0001D0: 39 29 0D 0A 0D 0A 09 6F 70 74 69 6F 6E 20 30 20 9).....option 0
0001E0: 69 73 20 61 6C 77 61 79 73 20 65 78 69 74 20 77 is always exit w
0001F0: 69 74 68 6F 75 74 20 73 65 6C 65 63 74 69 6F 6E ithout selection
Size : 512 (Real : 512)
000000: 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 20 28 2A 46 END;....END; (*F
000010: 4F 52 2A 29 0D 0A 0D 0A 09 28 2A 66 69 6E 69 73 OR*).....(*finis
000020: 68 20 6F 66 66 20 63 75 72 72 65 6E 74 20 63 6F h off current co
000030: 6C 75 6D 6E 2A 29 0D 0A 0D 0A 09 49 46 20 79 31 lumn*).....IF y1
000040: 3C 3E 28 79 2B 31 29 20 54 48 45 4E 0D 0A 09 09 <>(y+1) THEN....
000050: 57 48 49 4C 45 20 6A 3C 64 65 70 74 68 20 44 4F WHILE j<depth DO
000060: 0D 0A 09 09 09 47 6F 74 6F 78 79 28 78 31 2C 79 .....Gotoxy(x1,y
000070: 31 29 3B 0D 0A 09 09 09 57 72 69 74 65 53 74 72 1);.....WriteStr
000080: 69 6E 67 28 27 20 20 20 20 20 20 20 20 20 20 20 ing('
000090: 27 29 3B 0D 0A 09 09 09 49 4E 43 28 6A 29 3B 0D ');.....INC(j);.
0000A0: 0A 09 09 09 49 4E 43 28 79 31 29 3B 0D 0A 09 09 ....INC(y1);....
0000B0: 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 .END;....END;...
0000C0: 0D 0A 09 28 2A 61 63 63 65 70 74 20 61 6E 20 6F ...(*accept an o
0000D0: 70 74 69 6F 6E 2A 29 0D 0A 0D 0A 09 4C 4F 4F 50 ption*).....LOOP
0000E0: 0D 0A 0D 0A 09 09 28 2A 69 6E 76 65 72 73 65 20 ......(*inverse
0000F0: 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 currently select
000100: 65 64 20 6F 70 74 69 6F 6E 2A 29 0D 0A 0D 0A 09 ed option*).....
000110: 09 78 31 3A 3D 78 2B 31 3B 0D 0A 09 09 79 31 3A .x1:=x+1;....y1:
000120: 3D 79 2B 31 2B 4F 70 74 69 6F 6E 4E 6F 3B 0D 0A =y+1+OptionNo;..
000130: 09 09 57 48 49 4C 45 20 79 31 3E 3D 28 79 2B 64 ..WHILE y1>=(y+d
000140: 65 70 74 68 2B 31 29 20 44 4F 0D 0A 09 09 09 79 epth+1) DO.....y
000150: 31 3A 3D 79 31 2D 64 65 70 74 68 3B 0D 0A 09 09 1:=y1-depth;....
000160: 09 78 31 3A 3D 78 31 2B 77 69 64 74 68 2B 31 0D .x1:=x1+width+1.
000170: 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 47 6F 74 6F ....END;....Goto
000180: 78 79 28 78 31 2C 79 31 29 3B 0D 0A 09 09 53 63 xy(x1,y1);....Sc
000190: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 49 6E 76 65 reenControl(Inve
0001A0: 72 73 65 29 3B 0D 0A 09 09 57 72 69 74 65 53 74 rse);....WriteSt
0001B0: 72 69 6E 67 28 54 65 78 74 5B 4F 70 74 69 6F 6E ring(Text[Option
0001C0: 4E 6F 5D 29 3B 0D 0A 09 09 53 63 72 65 65 6E 43 No]);....ScreenC
0001D0: 6F 6E 74 72 6F 6C 28 4E 6F 72 6D 61 6C 29 3B 0D ontrol(Normal);.
0001E0: 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C 79 31 29 ...Gotoxy(x1,y1)
0001F0: 3B 0D 0A 09 09 52 45 50 45 41 54 0D 0A 09 09 09 ;....REPEAT.....
Size : 512 (Real : 512)
000000: 20 61 73 20 69 73 20 65 73 63 61 70 65 2A 29 0D as is escape*).
000010: 0A 0D 0A 46 52 4F 4D 09 53 63 72 65 65 6E 49 4F ...FROM.ScreenIO
000020: 09 49 4D 50 4F 52 54 09 47 6F 74 6F 78 79 2C 44 .IMPORT.Gotoxy,D
000030: 72 61 77 42 6F 78 2C 44 69 6D 2C 53 74 61 72 74 rawBox,Dim,Start
000040: 47 72 61 70 68 2C 0D 0A 09 09 09 09 45 6E 64 47 Graph,......EndG
000050: 72 61 70 68 2C 56 65 72 74 69 63 61 6C 2C 49 6E raph,Vertical,In
000060: 76 65 72 73 65 2C 4E 6F 72 6D 61 6C 2C 0D 0A 09 verse,Normal,...
000070: 09 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C ...ScreenControl
000080: 2C 52 69 6E 67 42 65 6C 6C 3B 0D 0A 46 52 4F 4D ,RingBell;..FROM
000090: 09 54 65 72 6D 69 6E 61 6C 09 49 4D 50 4F 52 54 .Terminal.IMPORT
0000A0: 20 09 57 72 69 74 65 53 74 72 69 6E 67 2C 52 65 .WriteString,Re
0000B0: 61 64 2C 57 72 69 74 65 2C 42 75 73 79 52 65 61 ad,Write,BusyRea
0000C0: 64 3B 0D 0A 43 4F 4E 53 54 09 77 69 64 74 68 3D d;..CONST.width=
0000D0: 31 31 3B 09 28 2A 77 69 64 74 68 20 6F 66 20 6F 11;.(*width of o
0000E0: 6E 65 20 6F 70 74 69 6F 6E 2A 29 0D 0A 09 45 53 ne option*)...ES
0000F0: 43 3D 31 62 78 3B 0D 0A 09 43 52 3D 30 64 78 3B C=1bx;...CR=0dx;
000100: 0D 0A 09 43 74 72 6C 58 3D 31 38 78 3B 0D 0A 09 ...CtrlX=18x;...
000110: 43 74 72 6C 45 3D 30 35 78 3B 0D 0A 09 43 74 72 CtrlE=05x;...Ctr
000120: 6C 44 3D 30 34 78 3B 0D 0A 09 43 74 72 6C 53 3D lD=04x;...CtrlS=
000130: 31 33 78 3B 0D 0A 09 4C 46 3D 30 61 78 3B 0D 0A 13x;...LF=0ax;..
000140: 09 42 53 3D 30 38 78 3B 0D 0A 50 52 4F 43 45 44 .BS=08x;..PROCED
000150: 55 52 45 20 47 65 74 46 72 6F 6D 4D 65 6E 75 28 URE GetFromMenu(
000160: 56 41 52 20 54 65 78 74 3A 41 52 52 41 59 20 4F VAR Text:ARRAY O
000170: 46 20 4D 65 6E 75 54 65 78 74 3B 78 2C 79 3A 43 F MenuText;x,y:C
000180: 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 64 65 70 74 ARDINAL;....dept
000190: 68 2C 63 6F 6C 75 6D 6E 73 3A 43 41 52 44 49 4E h,columns:CARDIN
0001A0: 41 4C 29 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 0D AL):CARDINAL;...
0001B0: 0A 28 2A 20 09 54 65 78 74 20 69 73 20 74 68 65 .(* .Text is the
0001C0: 20 74 65 78 74 20 74 6F 20 64 69 73 70 6C 61 79 text to display
0001D0: 0D 0A 0D 0A 0D 0A 09 78 20 61 6E 64 20 79 20 61 .......x and y a
0001E0: 72 65 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 re the position
0001F0: 66 6F 72 20 74 68 65 20 74 6F 70 20 6C 65 66 74 for the top left
Size : 512 (Real : 512)
000000: 42 75 73 79 52 65 61 64 28 63 68 29 3B 0D 0A 09 BusyRead(ch);...
000010: 09 09 55 4E 54 49 4C 20 63 68 3C 3E 30 78 3B 0D ..UNTIL ch<>0x;.
000020: 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C 79 31 29 ...Gotoxy(x1,y1)
000030: 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 ;....ScreenContr
000040: 6F 6C 28 4E 6F 72 6D 61 6C 29 3B 0D 0A 09 09 57 ol(Normal);....W
000050: 72 69 74 65 53 74 72 69 6E 67 28 54 65 78 74 5B riteString(Text[
000060: 4F 70 74 69 6F 6E 4E 6F 5D 29 3B 0D 0A 09 09 43 OptionNo]);....C
000070: 41 53 45 20 43 41 50 28 63 68 29 20 4F 46 0D 0A ASE CAP(ch) OF..
000080: 09 09 45 53 43 2C 27 20 27 3A 20 52 45 54 55 52 ..ESC,' ': RETUR
000090: 4E 20 30 7C 0D 0A 09 09 43 52 3A 20 20 52 45 54 N 0|....CR: RET
0000A0: 55 52 4E 20 4F 70 74 69 6F 6E 4E 6F 2B 31 7C 0D URN OptionNo+1|.
0000B0: 0A 09 09 43 74 72 6C 53 2C 42 53 3A 43 68 61 6E ...CtrlS,BS:Chan
0000C0: 67 65 4F 70 74 69 6F 6E 28 2D 64 65 70 74 68 29 geOption(-depth)
0000D0: 7C 0D 0A 09 09 43 74 72 6C 45 3A 43 68 61 6E 67 |....CtrlE:Chang
0000E0: 65 4F 70 74 69 6F 6E 28 2D 31 29 7C 0D 0A 09 09 eOption(-1)|....
0000F0: 43 74 72 6C 44 3A 43 68 61 6E 67 65 4F 70 74 69 CtrlD:ChangeOpti
000100: 6F 6E 28 64 65 70 74 68 29 7C 0D 0A 09 09 43 74 on(depth)|....Ct
000110: 72 6C 58 2C 4C 46 3A 43 68 61 6E 67 65 4F 70 74 rlX,LF:ChangeOpt
000120: 69 6F 6E 28 31 29 7C 0D 0A 09 09 27 41 27 2E 2E ion(1)|....'A'..
000130: 27 5A 27 3A 43 68 61 6E 67 65 50 6F 73 7C 0D 0A 'Z':ChangePos|..
000140: 09 09 45 4C 53 45 20 53 63 72 65 65 6E 43 6F 6E ..ELSE ScreenCon
000150: 74 72 6F 6C 28 52 69 6E 67 42 65 6C 6C 29 0D 0A trol(RingBell)..
000160: 09 09 45 4E 44 3B 28 2A 63 61 73 65 2A 29 0D 0A ..END;(*case*)..
000170: 09 09 45 4E 44 3B 28 2A 4C 4F 4F 50 2A 29 0D 0A ..END;(*LOOP*)..
000180: 09 45 4E 44 20 47 65 74 46 72 6F 6D 4D 65 6E 75 .END GetFromMenu
000190: 3B 0D 0A 09 45 4E 44 20 4D 65 6E 75 2E 0D 0A 1A ;...END Menu....
0001A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
Size : 512 (Real : 512)
000000: 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 62 corner of the b
000010: 6F 78 0D 0A 09 64 65 70 74 68 20 69 73 20 74 68 ox...depth is th
000020: 65 20 6E 75 6D 62 65 72 20 6F 66 20 6F 70 74 69 e number of opti
000030: 6F 6E 73 20 69 6E 20 61 20 63 6F 6C 75 6D 6E 0D ons in a column.
000040: 0A 09 63 6F 6C 75 6D 6E 73 20 69 73 20 74 68 65 ..columns is the
000050: 20 6E 75 6D 62 65 72 20 6F 66 20 63 6F 6C 75 6D number of colum
000060: 6E 73 20 74 68 61 74 20 77 69 6C 6C 20 62 65 20 ns that will be
000070: 72 65 71 75 69 72 65 64 09 2A 29 0D 0A 0D 0A 56 required.*)....V
000080: 41 52 09 78 31 2C 79 31 3A 43 41 52 44 49 4E 41 AR.x1,y1:CARDINA
000090: 4C 3B 0D 0A 09 69 2C 6A 3A 43 41 52 44 49 4E 41 L;...i,j:CARDINA
0000A0: 4C 3B 0D 0A 09 4F 70 74 69 6F 6E 4E 6F 3A 43 41 L;...OptionNo:CA
0000B0: 52 44 49 4E 41 4C 3B 0D 0A 09 63 68 3A 43 48 41 RDINAL;...ch:CHA
0000C0: 52 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 68 R;..PROCEDURE Ch
0000D0: 61 6E 67 65 4F 70 74 69 6F 6E 28 62 79 3A 49 4E angeOption(by:IN
0000E0: 54 45 47 45 52 29 3B 0D 0A 0D 0A 28 2A 09 63 68 TEGER);....(*.ch
0000F0: 61 6E 67 65 20 74 68 65 20 63 75 72 72 65 6E 74 ange the current
000100: 20 6F 70 74 69 6F 6E 20 6E 75 6D 62 65 72 20 79 option number y
000110: 20 67 69 76 65 6E 20 69 6E 63 72 65 6D 65 6E 74 given increment
000120: 0D 0A 0D 0A 09 65 6E 73 75 72 65 20 69 74 20 72 .....ensure it r
000130: 65 6D 61 69 6E 73 20 69 6E 20 72 61 6E 67 65 2A emains in range*
000140: 29 0D 0A 42 45 47 49 4E 0D 0A 09 62 79 3A 3D 62 )..BEGIN...by:=b
000150: 79 2B 49 4E 54 45 47 45 52 28 4F 70 74 69 6F 6E y+INTEGER(Option
000160: 4E 6F 29 3B 0D 0A 09 49 46 20 62 79 3C 30 20 54 No);...IF by<0 T
000170: 48 45 4E 20 62 79 3A 3D 48 49 47 48 28 54 65 78 HEN by:=HIGH(Tex
000180: 74 29 20 0D 0A 09 45 4C 53 49 46 20 62 79 3E 48 t) ...ELSIF by>H
000190: 49 47 48 28 54 65 78 74 29 20 54 48 45 4E 20 62 IGH(Text) THEN b
0001A0: 79 3A 3D 30 20 45 4E 44 3B 0D 0A 09 4F 70 74 69 y:=0 END;...Opti
0001B0: 6F 6E 4E 6F 3A 3D 62 79 0D 0A 09 45 4E 44 20 43 onNo:=by...END C
0001C0: 68 61 6E 67 65 4F 70 74 69 6F 6E 3B 0D 0A 50 52 hangeOption;..PR
0001D0: 4F 43 45 44 55 52 45 20 43 68 61 6E 67 65 50 6F OCEDURE ChangePo
0001E0: 73 3B 0D 0A 0D 0A 28 2A 09 43 68 61 6E 67 65 20 s;....(*.Change
0001F0: 70 6F 73 69 74 69 6F 6E 20 75 73 69 6E 67 20 66 position using f
Size : 512 (Real : 512)
000000: 1A 1A 1A 1A 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 ........END;....
000010: 4C 6F 63 3A 3D 4C 6F 63 2B 31 32 38 3B 0D 0A 09 Loc:=Loc+128;...
000020: 09 45 4E 44 3B 0D 0A 09 45 4E 44 20 43 6F 6D 70 .END;...END Comp
000030: 42 69 6E 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A Bin.............
000040: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000050: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000060: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000070: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000080: 44 20 4D 61 74 63 68 65 73 28 29 20 0D 0A 09 09 D Matches() ....
000090: 09 09 20 20 20 41 4E 44 20 28 4D 61 74 63 68 43 .. AND (MatchC
0000A0: 68 61 72 4E 6F 3D 30 29 20 54 48 45 4E 0D 0A 09 harNo=0) THEN...
0000B0: 09 09 09 09 52 45 54 55 52 4E 20 54 52 55 45 3B ....RETURN TRUE;
0000C0: 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 .......END;.....
0000D0: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
0000E0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
0000F0: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 4D 61 74 63 ;...ELSE....Matc
000100: 68 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 30 5D hChar:=String[0]
000110: 3B 0D 0A 09 09 4C 4F 4F 50 0D 0A 09 09 09 49 46 ;....LOOP.....IF
000120: 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 29 20 54 NOT Advance() T
000130: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 HEN EXIT END;...
000140: 09 09 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 ..IF (Working^.C
000150: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3D 4D 61 hars[CharPos]=Ma
000160: 74 63 68 43 68 61 72 29 0D 0A 09 09 09 20 20 4F tchChar)..... O
000170: 52 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 R (Working^.Char
000180: 73 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 4D s[CharPos]=CAP(M
000190: 61 74 63 68 43 68 61 72 29 29 20 54 48 45 4E 0D atchChar)) THEN.
0001A0: 0A 09 09 09 09 4D 61 74 63 68 43 68 61 72 4E 6F .....MatchCharNo
0001B0: 3A 3D 31 3B 0D 0A 09 09 09 09 73 61 76 65 63 75 :=1;......savecu
0001C0: 72 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 57 48 rpos(f);......WH
0001D0: 49 4C 45 20 28 4D 61 74 63 68 43 68 61 72 4E 6F ILE (MatchCharNo
0001E0: 3C 53 74 72 69 6E 67 4C 65 6E 29 0D 0A 09 09 09 <StringLen).....
0001F0: 09 20 20 20 20 41 4E 44 20 28 41 64 76 61 6E 63 . AND (Advanc
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 53 63 72 65 65 6E 44 75 6D 6D 79 3B 0D 0A E ScreenDummy;..
000020: 0D 0A 28 2A 09 74 68 69 73 20 6D 6F 64 75 6C 65 ..(*.this module
000030: 20 77 61 73 20 77 72 69 74 74 65 6E 20 74 6F 20 was written to
000040: 65 6E 61 62 6C 65 0D 0A 09 73 65 76 65 72 61 6C enable...several
000050: 20 6D 6F 64 75 6C 65 73 20 74 6F 20 62 65 20 63 modules to be c
000060: 6F 6D 70 69 6C 65 64 0D 0A 09 6F 6E 20 6D 61 63 ompiled...on mac
000070: 68 69 6E 65 73 20 77 69 74 68 20 74 69 67 68 74 hines with tight
000080: 20 54 50 41 27 73 2E 20 54 68 65 20 73 61 6D 65 TPA's. The same
000090: 0D 0A 09 74 68 69 6E 67 20 63 61 6E 20 62 65 20 ...thing can be
0000A0: 64 6F 6E 65 20 77 69 74 68 20 6F 74 68 65 72 20 done with other
0000B0: 6D 6F 64 75 6C 65 73 20 69 66 0D 0A 09 79 6F 75 modules if...you
0000C0: 72 20 54 50 41 20 69 73 20 74 69 67 68 74 65 72 r TPA is tighter
0000D0: 20 74 68 61 6E 20 74 68 61 74 20 6F 66 20 6D 79 than that of my
0000E0: 20 74 65 73 74 0D 0A 09 6D 61 63 68 69 6E 65 2E test...machine.
0000F0: 0D 0A 0D 0A 09 57 68 61 74 20 68 61 73 20 62 65 .....What has be
000100: 65 6E 20 64 6F 6E 65 20 69 73 20 74 6F 20 72 65 en done is to re
000110: 70 6C 61 63 65 20 61 20 6C 61 72 67 65 0D 0A 09 place a large...
000120: 73 79 6D 62 6F 6C 20 74 61 62 6C 65 20 28 74 68 symbol table (th
000130: 61 74 20 6F 66 20 53 63 72 65 65 6E 49 4F 29 20 at of ScreenIO)
000140: 77 69 74 68 20 61 20 0D 0A 09 73 6D 61 6C 6C 20 with a ...small
000150: 73 79 6D 62 6F 6C 20 74 61 62 6C 65 20 28 74 68 symbol table (th
000160: 69 73 20 6D 6F 64 75 6C 65 29 2E 20 54 68 69 73 is module). This
000170: 0D 0A 09 72 65 64 75 63 65 73 20 74 68 65 20 73 ...reduces the s
000180: 79 6D 62 6F 6C 20 74 61 62 6C 65 20 73 70 61 63 ymbol table spac
000190: 65 20 75 73 65 64 20 62 79 20 74 68 65 0D 0A 09 e used by the...
0001A0: 63 61 6C 6C 69 6E 67 20 6D 6F 64 75 6C 65 73 2E calling modules.
0001B0: 20 54 68 69 73 20 69 73 20 66 75 72 74 68 65 72 This is further
0001C0: 20 64 69 73 63 75 73 73 65 64 0D 0A 09 69 6E 20 discussed...in
0001D0: 74 68 65 20 6D 61 6E 75 61 6C 2E 0D 0A 2A 29 0D the manual...*).
0001E0: 0A 50 52 4F 43 45 44 55 52 45 20 43 6C 65 61 72 .PROCEDURE Clear
0001F0: 53 63 72 65 65 6E 3B 0D 0A 50 52 4F 43 45 44 55 Screen;..PROCEDU
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 52 65 73 65 74 44 69 73 63 3B 0D 0A 50 52 E ResetDisc;..PR
000020: 4F 43 45 44 55 52 45 20 52 65 73 65 74 41 6C 6C OCEDURE ResetAll
000030: 44 69 73 63 73 3B 0D 0A 45 4E 44 20 52 65 73 65 Discs;..END Rese
000040: 74 44 69 73 63 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A tDisc...........
000050: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000060: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000070: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000080: 45 4E 44 3B 0D 0A 09 09 09 09 73 65 74 63 75 72 END;......setcur
000090: 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 45 4E 44 pos(f);......END
0000A0: 3B 0D 0A 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E ;.....END;....EN
0000B0: 44 3B 0D 0A 09 73 61 76 65 63 75 72 70 6F 73 28 D;...savecurpos(
0000C0: 66 29 3B 0D 0A 09 52 45 54 55 52 4E 20 46 41 4C f);...RETURN FAL
0000D0: 53 45 3B 0D 0A 09 45 4E 44 20 46 69 6E 64 53 74 SE;...END FindSt
0000E0: 72 69 6E 67 3B 0D 0A 28 2A 09 41 63 74 75 61 6C ring;..(*.Actual
0000F0: 6C 79 20 66 69 6E 64 20 74 68 65 20 6E 65 78 74 ly find the next
000100: 20 6F 63 63 75 72 72 65 6E 63 65 20 6F 66 20 74 occurrence of t
000110: 68 65 20 73 74 72 69 6E 67 09 0D 0A 0D 0A 09 44 he string......D
000120: 6F 6E 65 20 72 65 74 75 72 6E 73 20 74 72 75 65 one returns true
000130: 20 69 66 20 6F 6E 65 20 69 73 20 66 6F 75 6E 64 if one is found
000140: 2A 29 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 61 *)..PROCEDURE Ca
000150: 6C 6C 57 69 74 68 46 69 6C 65 28 4E 61 6D 65 3A llWithFile(Name:
000160: 41 52 52 41 59 20 4F 46 20 43 48 41 52 3B 56 41 ARRAY OF CHAR;VA
000170: 52 20 66 3A 45 64 69 74 46 69 6C 65 29 3B 0D 0A R f:EditFile);..
000180: 42 45 47 49 4E 0D 0A 09 4D 61 6B 65 43 61 6C 6C BEGIN...MakeCall
000190: 28 4E 61 6D 65 2C 66 2E 66 2E 66 29 3B 0D 0A 09 (Name,f.f.f);...
0001A0: 45 4E 44 20 43 61 6C 6C 57 69 74 68 46 69 6C 65 END CallWithFile
0001B0: 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 46 69 6C ;..PROCEDURE Fil
0001C0: 65 54 79 70 65 28 56 41 52 20 66 3A 45 64 69 74 eType(VAR f:Edit
0001D0: 46 69 6C 65 29 3A 43 41 52 44 49 4E 41 4C 3B 0D File):CARDINAL;.
0001E0: 0A 42 45 47 49 4E 0D 0A 09 49 46 20 66 2E 66 2E .BEGIN...IF f.f.
0001F0: 66 2E 66 63 62 66 74 3D 27 4D 4F 44 27 20 54 48 f.fcbft='MOD' TH
Size : 512 (Real : 512)
000000: 52 45 20 47 6F 74 6F 78 79 28 78 2C 79 3A 43 41 RE Gotoxy(x,y:CA
000010: 52 44 49 4E 41 4C 29 3B 0D 0A 50 52 4F 43 45 44 RDINAL);..PROCED
000020: 55 52 45 20 52 69 6E 67 42 65 6C 6C 3B 0D 0A 50 URE RingBell;..P
000030: 52 4F 43 45 44 55 52 45 20 4F 75 74 70 75 74 54 ROCEDURE OutputT
000040: 6F 53 63 72 65 65 6E 28 62 3A 42 4F 4F 4C 45 41 oScreen(b:BOOLEA
000050: 4E 29 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 N);..PROCEDURE
000060: 44 72 61 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 DrawBox(x1,y1,x2
000070: 2C 79 32 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ,y2:CARDINAL);..
000080: 45 4E 44 20 53 63 72 65 65 6E 44 75 6D 6D 79 2E END ScreenDummy.
000090: 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000100: 20 46 69 6C 65 73 2C 46 69 6C 65 73 4F 70 65 6E Files,FilesOpen
000110: 65 64 2C 63 75 72 78 2C 63 75 72 79 2C 43 75 72 ed,curx,cury,Cur
000120: 72 65 6E 74 57 69 6E 64 6F 77 2C 43 68 61 6E 67 rentWindow,Chang
000130: 65 57 69 6E 64 6F 77 2C 0D 0A 09 09 09 52 65 73 eWindow,.....Res
000140: 65 74 53 63 72 65 65 6E 50 6F 73 2C 43 75 72 72 etScreenPos,Curr
000150: 65 6E 74 46 69 6C 65 3B 0D 0A 46 52 4F 4D 20 45 entFile;..FROM E
000160: 64 69 74 44 69 73 70 6C 61 79 20 49 4D 50 4F 52 ditDisplay IMPOR
000170: 54 20 45 72 72 6F 72 4D 65 73 73 61 67 65 2C 53 T ErrorMessage,S
000180: 65 74 57 69 6E 64 6F 77 73 2C 44 69 73 70 6C 61 etWindows,Displa
000190: 79 46 69 6C 65 2C 57 69 6E 64 6F 77 73 2C 0D 0A yFile,Windows,..
0001A0: 09 09 44 69 73 70 6C 61 79 45 72 72 6F 72 2C 45 ..DisplayError,E
0001B0: 72 72 6F 72 4F 72 64 69 6E 61 6C 3B 0D 0A 0D 0A rrorOrdinal;....
0001C0: 46 52 4F 4D 20 44 6F 4D 65 6E 75 20 49 4D 50 4F FROM DoMenu IMPO
0001D0: 52 54 20 44 6F 4D 65 6E 75 4F 70 2C 4F 70 65 6E RT DoMenuOp,Open
0001E0: 3B 0D 0A 0D 0A 46 52 4F 4D 20 4B 65 79 42 6F 61 ;....FROM KeyBoa
0001F0: 72 64 20 49 4D 50 4F 52 54 20 49 6E 74 65 72 70 rd IMPORT Interp
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 53 63 72 65 65 6E 44 75 6D 6D ODULE ScreenDumm
000020: 79 3B 0D 0A 49 4D 50 4F 52 54 09 53 63 72 65 65 y;..IMPORT.Scree
000030: 6E 49 4F 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 nIO;....PROCEDUR
000040: 45 20 43 6C 65 61 72 53 63 72 65 65 6E 3B 0D 0A E ClearScreen;..
000050: 42 45 47 49 4E 0D 0A 09 53 63 72 65 65 6E 49 4F BEGIN...ScreenIO
000060: 2E 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 53 .ScreenControl(S
000070: 63 72 65 65 6E 49 4F 2E 43 6C 65 61 72 53 63 72 creenIO.ClearScr
000080: 65 65 6E 29 3B 0D 0A 09 45 4E 44 20 43 6C 65 61 een);...END Clea
000090: 72 53 63 72 65 65 6E 3B 0D 0A 50 52 4F 43 45 44 rScreen;..PROCED
0000A0: 55 52 45 20 47 6F 74 6F 78 79 28 78 2C 79 3A 43 URE Gotoxy(x,y:C
0000B0: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
0000C0: 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 47 6F 74 6F ...ScreenIO.Goto
0000D0: 78 79 28 78 2C 79 29 3B 0D 0A 09 45 4E 44 20 47 xy(x,y);...END G
0000E0: 6F 74 6F 78 79 3B 0D 0A 50 52 4F 43 45 44 55 52 otoxy;..PROCEDUR
0000F0: 45 20 52 69 6E 67 42 65 6C 6C 3B 0D 0A 42 45 47 E RingBell;..BEG
000100: 49 4E 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 53 63 IN...ScreenIO.Sc
000110: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 53 63 72 65 reenControl(Scre
000120: 65 6E 49 4F 2E 52 69 6E 67 42 65 6C 6C 29 3B 0D enIO.RingBell);.
000130: 0A 09 45 4E 44 20 52 69 6E 67 42 65 6C 6C 3B 0D ..END RingBell;.
000140: 0A 50 52 4F 43 45 44 55 52 45 20 4F 75 74 70 75 .PROCEDURE Outpu
000150: 74 54 6F 53 63 72 65 65 6E 28 62 3A 42 4F 4F 4C tToScreen(b:BOOL
000160: 45 41 4E 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 53 EAN);..BEGIN...S
000170: 63 72 65 65 6E 49 4F 2E 4F 75 74 70 75 74 54 6F creenIO.OutputTo
000180: 53 63 72 65 65 6E 28 62 29 3B 0D 0A 09 45 4E 44 Screen(b);...END
000190: 20 4F 75 74 70 75 74 54 6F 53 63 72 65 65 6E 3B OutputToScreen;
0001A0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 44 72 61 ..PROCEDURE Dra
0001B0: 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 2C 79 32 wBox(x1,y1,x2,y2
0001C0: 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 :CARDINAL);..BEG
0001D0: 49 4E 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 44 72 IN...ScreenIO.Dr
0001E0: 61 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 2C 79 awBox(x1,y1,x2,y
0001F0: 32 29 3B 0D 0A 09 45 4E 44 20 44 72 61 77 42 6F 2);...END DrawBo
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 52 65 73 65 74 44 69 73 63 3B ODULE ResetDisc;
000020: 0D 0A 46 52 4F 4D 09 43 50 4D 20 49 4D 50 4F 52 ..FROM.CPM IMPOR
000030: 54 20 42 44 4F 53 2C 72 73 64 66 63 3B 0D 0A 50 T BDOS,rsdfc;..P
000040: 52 4F 43 45 44 55 52 45 20 52 65 73 65 74 41 6C ROCEDURE ResetAl
000050: 6C 44 69 73 63 73 3B 0D 0A 56 41 52 09 63 3A 43 lDiscs;..VAR.c:C
000060: 41 52 44 49 4E 41 4C 3B 0D 0A 42 45 47 49 4E 0D ARDINAL;..BEGIN.
000070: 0A 09 63 3A 3D 42 44 4F 53 28 72 73 64 66 63 2C ..c:=BDOS(rsdfc,
000080: 30 33 66 68 29 3B 0D 0A 09 45 4E 44 20 52 65 73 03fh);...END Res
000090: 65 74 41 6C 6C 44 69 73 63 73 3B 0D 0A 45 4E 44 etAllDiscs;..END
0000A0: 20 52 65 73 65 74 44 69 73 63 2E 0D 0A 1A 1A 1A ResetDisc......
0000B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000100: 44 3B 0D 0A 09 09 69 3A 3D 69 2B 4F 52 44 28 57 D;....i:=i+ORD(W
000110: 6F 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E orking^.BlockLen
000120: 29 3B 0D 0A 09 09 77 3A 3D 57 6F 72 6B 69 6E 67 );....w:=Working
000130: 3B 0D 0A 09 09 49 46 20 69 3C 50 6F 73 20 54 48 ;....IF i<Pos TH
000140: 45 4E 20 57 6F 72 6B 69 6E 67 3A 3D 57 6F 72 6B EN Working:=Work
000150: 69 6E 67 5E 2E 4E 65 78 74 20 45 4C 53 45 20 45 ing^.Next ELSE E
000160: 58 49 54 20 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B XIT END;....END;
000170: 0D 0A 09 49 46 20 57 6F 72 6B 69 6E 67 3D 4E 49 ...IF Working=NI
000180: 4C 20 54 48 45 4E 20 0D 0A 09 09 57 6F 72 6B 69 L THEN ....Worki
000190: 6E 67 3A 3D 77 3B 0D 0A 09 09 43 68 61 72 50 6F ng:=w;....CharPo
0001A0: 73 3A 3D 77 5E 2E 42 6C 6F 63 6B 4C 65 6E 3B 0D s:=w^.BlockLen;.
0001B0: 0A 09 45 4C 53 45 0D 0A 09 09 43 68 61 72 50 6F ..ELSE....CharPo
0001C0: 73 3A 3D 50 6F 73 2D 28 69 2D 4F 52 44 28 57 6F s:=Pos-(i-ORD(Wo
0001D0: 72 6B 69 6E 67 5E 2E 42 6C 6F 63 6B 4C 65 6E 29 rking^.BlockLen)
0001E0: 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 73 61 76 );....END;...sav
0001F0: 65 63 75 72 70 6F 73 28 46 69 6C 65 29 3B 0D 0A ecurpos(File);..
Size : 512 (Real : 512)
000000: 78 3B 0D 0A 45 4E 44 20 53 63 72 65 65 6E 44 75 x;..END ScreenDu
000010: 6D 6D 79 2E 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A mmy.............
000020: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000030: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000040: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000050: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000060: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000070: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000080: 20 64 6F 20 49 6E 70 75 74 2D 4F 75 74 70 75 74 do Input-Output
000090: 20 74 6F 20 74 68 65 20 74 65 72 6D 69 6E 61 6C to the terminal
0000A0: 0D 0A 09 74 68 72 6F 75 67 68 20 74 68 65 20 6D ...through the m
0000B0: 6F 64 75 6C 65 73 20 53 74 72 65 61 6D 73 20 61 odules Streams a
0000C0: 6E 64 20 49 6E 4F 75 74 2C 20 62 75 74 20 74 68 nd InOut, but th
0000D0: 65 73 65 0D 0A 09 69 6E 63 72 65 61 73 65 20 74 ese...increase t
0000E0: 68 65 20 73 69 7A 65 20 6F 66 20 74 68 65 20 70 he size of the p
0000F0: 72 6F 67 72 61 6D 20 61 6E 64 20 61 72 65 20 6F rogram and are o
000100: 6E 6C 79 20 72 65 71 75 69 72 65 64 20 69 66 20 nly required if
000110: 0D 0A 09 79 6F 75 20 77 61 6E 74 20 74 6F 20 64 ...you want to d
000120: 6F 20 6D 6F 72 65 20 70 6F 77 65 72 66 75 6C 20 o more powerful
000130: 74 68 69 6E 67 73 2C 20 73 75 63 68 20 61 73 20 things, such as
000140: 66 69 6C 65 0D 0A 09 72 65 64 69 72 65 63 74 69 file...redirecti
000150: 6F 6E 20 61 6E 64 20 6E 75 6D 62 65 72 20 63 6F on and number co
000160: 6E 76 65 72 73 69 6F 6E 2E 20 49 66 20 61 6C 6C nversion. If all
000170: 20 79 6F 75 20 77 61 6E 74 20 69 73 20 6E 75 6D you want is num
000180: 62 65 72 20 0D 0A 09 63 6F 6E 76 65 72 73 69 6F ber ...conversio
000190: 6E 2C 20 53 6D 61 6C 6C 49 4F 20 63 61 6E 20 62 n, SmallIO can b
0001A0: 65 20 75 73 65 64 20 2A 29 20 0D 0A 0D 0A 56 41 e used *) ....VA
0001B0: 52 09 50 61 72 73 3A 41 52 52 41 59 5B 30 2E 2E R.Pars:ARRAY[0..
0001C0: 33 5D 20 4F 46 20 50 61 72 61 6D 65 74 65 72 3B 3] OF Parameter;
0001D0: 0D 0A 09 50 61 72 43 6F 75 6E 74 3A 49 4E 54 45 ...ParCount:INTE
0001E0: 47 45 52 3B 0D 0A 0D 0A 09 28 2A 09 50 61 72 73 GER;.....(*.Pars
0001F0: 20 69 73 20 61 6E 20 61 72 72 61 79 20 69 6E 74 is an array int
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 53 63 72 65 65 6E 49 4F 3B 0D 0A 0D 0A 28 E ScreenIO;....(
000020: 2A 09 53 63 72 65 65 6E 20 68 61 6E 64 6C 69 6E *.Screen handlin
000030: 67 20 72 6F 75 74 69 6E 65 73 20 66 6F 72 20 63 g routines for c
000040: 75 72 73 6F 72 20 70 6F 73 69 74 69 6F 6E 2C 20 ursor position,
000050: 61 74 74 72 69 62 75 74 65 20 65 74 63 0D 0A 0D attribute etc...
000060: 0A 09 53 70 65 63 69 66 69 63 20 74 6F 20 74 68 ..Specific to th
000070: 69 73 20 63 6F 6D 70 69 6C 65 72 2A 29 0D 0A 0D is compiler*)...
000080: 0A 46 52 4F 4D 09 53 59 53 54 45 4D 20 49 4D 50 .FROM.SYSTEM IMP
000090: 4F 52 54 20 42 59 54 45 3B 0D 0A 46 52 4F 4D 09 ORT BYTE;..FROM.
0000A0: 46 69 6C 65 73 20 49 4D 50 4F 52 54 20 46 69 6C Files IMPORT Fil
0000B0: 65 4E 61 6D 65 3B 0D 0A 54 59 50 45 09 45 64 69 eName;..TYPE.Edi
0000C0: 74 73 3D 28 44 69 6D 2C 42 72 69 67 68 74 2C 4E ts=(Dim,Bright,N
0000D0: 6F 72 6D 61 6C 2C 49 6E 76 65 72 73 65 2C 42 6C ormal,Inverse,Bl
0000E0: 69 6E 6B 2C 53 74 61 72 74 47 72 61 70 68 2C 45 ink,StartGraph,E
0000F0: 6E 64 47 72 61 70 68 2C 0D 0A 09 09 44 65 6C 43 ndGraph,....DelC
000100: 68 61 72 2C 44 65 6C 4C 69 6E 65 2C 49 6E 73 43 har,DelLine,InsC
000110: 68 61 72 2C 49 6E 73 4C 69 6E 65 2C 44 65 6C 45 har,InsLine,DelE
000120: 6F 6C 2C 44 65 6C 45 6F 73 2C 43 6C 65 61 72 53 ol,DelEos,ClearS
000130: 63 72 65 65 6E 2C 0D 0A 09 09 48 6F 72 69 7A 6F creen,....Horizo
000140: 6E 74 61 6C 2C 56 65 72 74 69 63 61 6C 2C 43 6F ntal,Vertical,Co
000150: 72 6E 65 72 4C 4C 2C 43 6F 72 6E 65 72 55 4C 2C rnerLL,CornerUL,
000160: 43 6F 72 6E 65 72 55 52 2C 43 6F 72 6E 65 72 4C CornerUR,CornerL
000170: 52 2C 0D 0A 09 09 53 74 61 72 74 78 79 2C 4D 69 R,....Startxy,Mi
000180: 64 64 6C 65 58 59 2C 45 6E 64 58 59 2C 52 69 6E ddleXY,EndXY,Rin
000190: 67 42 65 6C 6C 2C 4D 6F 76 65 4C 65 66 74 2C 4D gBell,MoveLeft,M
0001A0: 6F 76 65 52 69 67 68 74 2C 0D 0A 09 09 4D 6F 76 oveRight,....Mov
0001B0: 65 44 6F 77 6E 2C 4D 6F 76 65 55 70 29 3B 0D 0A eDown,MoveUp);..
0001C0: 0D 0A 09 28 2A 09 54 68 65 20 65 64 69 74 74 69 ...(*.The editti
0001D0: 6E 67 20 6D 6E 65 6D 6F 6E 69 63 73 20 68 61 76 ng mnemonics hav
0001E0: 65 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 e the following
0001F0: 6D 65 61 6E 69 6E 67 20 0D 0A 0D 0A 09 09 44 69 meaning ......Di
Size : 512 (Real : 512)
000000: 3B 0D 0A 0D 0A 28 2A 09 09 64 72 61 77 20 61 20 ;....(*..draw a
000010: 62 6F 78 20 66 6F 72 20 61 20 77 69 6E 64 6F 77 box for a window
000020: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 0D 0A on the screen..
000030: 0D 0A 09 09 78 31 2C 79 31 20 20 69 73 20 74 68 ....x1,y1 is th
000040: 65 20 6C 6F 77 65 72 20 6C 65 66 74 20 63 6F 72 e lower left cor
000050: 6E 65 72 0D 0A 09 09 78 32 2C 79 32 20 20 69 73 ner....x2,y2 is
000060: 20 75 70 70 65 72 20 72 69 67 68 74 20 63 6F 72 upper right cor
000070: 6E 65 72 2A 29 0D 0A 50 52 4F 43 45 44 55 52 45 ner*)..PROCEDURE
000080: 20 43 6C 69 70 28 78 31 2C 79 31 2C 78 32 2C 79 Clip(x1,y1,x2,y
000090: 32 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 28 2A 2:CARDINAL);..(*
0000A0: 09 09 53 65 74 20 63 6C 69 70 20 62 6F 75 6E 64 ..Set clip bound
0000B0: 61 72 69 65 73 0D 0A 09 09 75 73 65 64 20 62 79 aries....used by
0000C0: 20 57 69 6E 64 6F 77 73 20 77 68 65 6E 20 64 72 Windows when dr
0000D0: 61 77 69 6E 67 20 62 6F 78 65 73 20 73 6F 20 74 awing boxes so t
0000E0: 68 61 74 20 6F 6E 6C 79 20 74 68 65 0D 0A 09 09 hat only the....
0000F0: 70 61 72 74 73 20 6F 66 20 74 68 65 20 62 6F 78 parts of the box
000100: 65 73 20 6D 61 73 6B 65 64 20 61 72 65 20 72 65 es masked are re
000110: 2D 64 72 61 77 6E 0D 0A 09 09 68 61 73 20 6E 6F -drawn....has no
000120: 20 65 66 66 65 63 74 20 65 78 63 65 70 74 20 69 effect except i
000130: 6E 20 44 72 61 77 42 6F 78 2A 29 0D 0A 56 41 52 n DrawBox*)..VAR
000140: 09 53 63 72 65 65 6E 44 65 70 74 68 2C 53 63 72 .ScreenDepth,Scr
000150: 65 65 6E 57 69 64 74 68 3A 43 41 52 44 49 4E 41 eenWidth:CARDINA
000160: 4C 3B 0D 0A 09 4D 61 64 65 43 68 61 6E 67 65 3A L;...MadeChange:
000170: 42 4F 4F 4C 45 41 4E 3B 0D 0A 0D 0A 09 28 2A 09 BOOLEAN;.....(*.
000180: 43 6F 6E 74 72 6F 6C 20 69 73 20 74 68 65 20 63 Control is the c
000190: 75 72 72 65 6E 74 20 63 6F 6E 74 72 6F 6C 20 63 urrent control c
0001A0: 6F 64 65 20 73 65 74 20 66 6F 72 20 74 68 65 20 ode set for the
0001B0: 74 65 72 6D 69 6E 61 6C 0D 0A 0D 0A 09 09 4D 61 terminal......Ma
0001C0: 64 65 43 68 61 6E 67 65 20 69 73 20 54 52 55 45 deChange is TRUE
0001D0: 20 6F 6E 20 72 65 74 75 72 6E 20 66 72 6F 6D 20 on return from
0001E0: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 20 69 66 ScreenControl if
0001F0: 20 74 68 65 20 0D 0A 09 09 72 65 71 75 69 72 65 the ....require
Size : 512 (Real : 512)
000000: 6D 2C 42 72 69 67 68 74 2C 4E 6F 72 6D 61 6C 2C m,Bright,Normal,
000010: 49 6E 76 65 72 73 65 2C 42 6C 69 6E 6B 0D 0A 0D Inverse,Blink...
000020: 0A 09 09 09 45 6E 74 65 72 20 74 68 65 20 67 69 ....Enter the gi
000030: 76 65 6E 20 6D 6F 64 65 2E 20 4D 6F 64 65 73 20 ven mode. Modes
000040: 73 68 6F 75 6C 64 20 6E 6F 74 20 62 65 20 63 6F should not be co
000050: 6D 62 69 6E 65 64 0D 0A 09 09 09 61 73 20 74 6F mbined.....as to
000060: 6F 20 6D 75 63 68 20 76 61 72 69 61 74 69 6F 6E o much variation
000070: 20 65 78 69 73 74 73 20 62 65 74 77 65 65 6E 20 exists between
000080: 74 65 72 6D 69 6E 61 6C 73 20 69 6E 0D 0A 09 09 terminals in....
000090: 09 74 68 69 73 20 61 72 65 61 0D 0A 0D 0A 09 09 .this area......
0000A0: 53 74 61 72 74 47 72 61 70 68 2C 45 6E 64 47 72 StartGraph,EndGr
0000B0: 61 70 68 0D 0A 0D 0A 09 09 09 45 6E 74 65 72 20 aph.......Enter
0000C0: 61 6E 64 20 65 78 69 74 20 67 72 61 70 68 69 63 and exit graphic
0000D0: 20 63 68 61 72 61 63 74 65 72 20 73 65 74 20 6D character set m
0000E0: 6F 64 65 0D 0A 09 09 09 55 73 65 64 20 66 6F 72 ode.....Used for
0000F0: 20 64 72 61 77 69 6E 67 20 62 61 72 73 20 61 72 drawing bars ar
000100: 6F 75 6E 64 20 77 69 6E 64 6F 77 73 0D 0A 09 09 ound windows....
000110: 09 49 66 20 79 6F 75 72 20 74 65 72 6D 69 6E 61 .If your termina
000120: 6C 20 63 61 6E 20 64 6F 20 74 68 69 73 20 77 69 l can do this wi
000130: 74 68 20 6F 72 64 69 6E 61 72 79 20 63 68 61 72 th ordinary char
000140: 61 63 74 65 72 73 2C 0D 0A 09 09 09 73 65 74 20 acters,.....set
000150: 74 68 65 73 65 20 73 65 71 75 65 6E 63 65 73 20 these sequences
000160: 65 6D 70 74 79 20 61 6E 64 20 70 75 74 20 74 68 empty and put th
000170: 65 20 72 65 71 75 69 72 65 64 20 0D 0A 09 09 09 e required .....
000180: 63 68 61 72 61 63 74 65 72 73 20 69 6E 20 74 68 characters in th
000190: 65 20 73 65 71 75 65 6E 63 65 73 20 62 65 6C 6F e sequences belo
0001A0: 77 0D 0A 0D 0A 09 09 44 65 6C 43 68 61 72 2C 44 w......DelChar,D
0001B0: 65 6C 4C 69 6E 65 2C 49 6E 73 43 68 61 72 2C 49 elLine,InsChar,I
0001C0: 6E 73 4C 69 6E 65 2C 44 65 6C 45 6F 6C 2C 44 65 nsLine,DelEol,De
0001D0: 6C 45 6F 73 2C 43 6C 65 61 72 53 63 72 65 65 6E lEos,ClearScreen
0001E0: 0D 0A 0D 0A 09 09 09 50 65 72 66 6F 72 6D 20 74 .......Perform t
0001F0: 68 65 20 76 61 72 69 6F 75 73 20 65 64 69 74 74 he various editt
Size : 512 (Real : 512)
000000: 64 20 63 6F 64 65 20 69 73 20 69 6D 70 6C 65 6D d code is implem
000010: 65 6E 74 65 64 2C 20 65 6C 73 65 20 66 61 6C 73 ented, else fals
000020: 65 0D 0A 0D 0A 09 09 45 64 69 74 44 69 73 70 20 e......EditDisp
000030: 63 6F 6E 74 61 69 6E 73 20 63 6F 64 65 20 74 6F contains code to
000040: 20 73 69 6D 75 6C 61 74 65 20 73 6F 6D 65 20 63 simulate some c
000050: 6F 64 65 73 20 77 68 65 6E 20 74 68 65 79 0D 0A odes when they..
000060: 09 09 61 72 65 20 6E 6F 74 20 69 6D 70 6C 65 6D ..are not implem
000070: 65 6E 74 65 64 2A 29 0D 0A 0D 0A 28 2A 09 4E 65 ented*)....(*.Ne
000080: 77 20 72 6F 75 74 69 6E 65 73 20 61 64 64 65 64 w routines added
000090: 20 61 74 20 76 65 72 73 69 6F 6E 20 31 2E 30 32 at version 1.02
0000A0: 0D 0A 0D 0A 09 54 68 65 73 65 20 72 6F 75 74 69 .....These routi
0000B0: 6E 65 73 20 6D 6F 76 65 20 74 68 65 20 72 65 73 nes move the res
0000C0: 70 6F 73 69 62 69 6C 74 79 20 66 6F 72 20 73 63 posibilty for sc
0000D0: 72 6F 6C 6C 69 6E 67 20 77 69 74 68 69 6E 20 61 rolling within a
0000E0: 20 77 69 6E 64 6F 77 20 66 72 6F 6D 0D 0A 09 45 window from...E
0000F0: 64 69 74 53 74 61 74 20 74 6F 20 53 63 72 65 65 ditStat to Scree
000100: 6E 49 4F 0D 0A 0D 0A 09 54 68 69 73 20 69 73 20 nIO.....This is
000110: 64 6F 6E 65 20 73 6F 20 74 68 61 74 2C 20 77 68 done so that, wh
000120: 65 6E 20 77 6F 72 6B 69 6E 67 20 77 69 74 68 20 en working with
000130: 74 68 65 20 6D 65 6D 6F 72 79 20 6D 61 70 70 65 the memory mappe
000140: 64 20 76 65 72 73 69 6F 6E 20 6F 66 20 53 63 72 d version of Scr
000150: 65 65 6E 49 4F 2C 0D 0A 09 54 68 65 20 42 61 72 eenIO,...The Bar
000160: 73 20 6E 65 65 64 20 6E 6F 74 20 6A 75 6D 70 20 s need not jump
000170: 75 70 20 61 6E 64 20 64 6F 77 6E 20 77 68 65 6E up and down when
000180: 20 61 20 77 69 6E 64 6F 77 20 69 73 20 73 63 72 a window is scr
000190: 6F 6C 6C 65 64 2A 29 0D 0A 50 52 4F 43 45 44 55 olled*)..PROCEDU
0001A0: 52 45 20 53 63 72 6F 6C 6C 57 69 6E 64 6F 77 55 RE ScrollWindowU
0001B0: 70 28 53 74 61 72 74 4C 69 6E 65 2C 45 6E 64 4C p(StartLine,EndL
0001C0: 69 6E 65 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ine:CARDINAL);..
0001D0: 50 52 4F 43 45 44 55 52 45 20 53 63 72 6F 6C 6C PROCEDURE Scroll
0001E0: 57 69 6E 64 6F 77 44 6F 77 6E 28 53 74 61 72 74 WindowDown(Start
0001F0: 4C 69 6E 65 2C 45 6E 64 4C 69 6E 65 3A 43 41 52 Line,EndLine:CAR
Size : 512 (Real : 512)
000000: 69 6E 67 20 73 65 71 75 65 6E 63 65 73 0D 0A 09 ing sequences...
000010: 09 09 44 65 6C 45 6F 6C 20 64 65 6C 65 74 65 73 ..DelEol deletes
000020: 20 66 72 6F 6D 20 75 6E 64 65 72 20 63 75 72 73 from under curs
000030: 6F 72 20 74 6F 20 65 6E 64 20 6F 66 20 6C 69 6E or to end of lin
000040: 65 0D 0A 09 09 09 44 65 6C 45 6F 73 20 64 65 6C e.....DelEos del
000050: 65 74 65 73 20 66 72 6F 6D 20 75 6E 64 65 72 20 etes from under
000060: 63 75 72 73 6F 72 20 74 6F 20 65 6E 64 20 6F 66 cursor to end of
000070: 20 73 63 72 65 65 6E 0D 0A 09 09 09 43 6C 65 61 screen.....Clea
000080: 72 73 63 72 65 65 6E 20 68 6F 6D 65 73 20 74 68 rscreen homes th
000090: 65 20 63 75 72 73 6F 72 20 61 73 20 77 65 6C 6C e cursor as well
0000A0: 20 28 74 6F 20 74 6F 70 20 6C 65 66 74 29 0D 0A (to top left)..
0000B0: 0D 0A 09 09 48 6F 72 69 7A 6F 6E 74 61 6C 2C 56 ....Horizontal,V
0000C0: 65 72 74 69 63 61 6C 2C 43 6F 72 6E 65 72 4C 4C ertical,CornerLL
0000D0: 2C 43 6F 72 6E 65 72 55 4C 2C 43 6F 72 6E 65 72 ,CornerUL,Corner
0000E0: 55 52 2C 43 6F 72 6E 65 72 4C 52 0D 0A 0D 0A 09 UR,CornerLR.....
0000F0: 09 09 43 68 61 72 61 63 74 65 72 20 73 65 71 75 ..Character sequ
000100: 65 6E 63 65 73 20 74 6F 20 64 72 61 77 20 68 6F ences to draw ho
000110: 72 69 7A 6F 6E 74 61 6C 20 61 6E 64 20 76 65 72 rizontal and ver
000120: 74 69 63 61 6C 0D 0A 09 09 09 62 61 72 73 20 61 tical.....bars a
000130: 72 6F 75 6E 64 20 77 69 6E 64 6F 77 73 20 61 6E round windows an
000140: 64 20 74 6F 20 64 6F 20 74 68 65 20 63 6F 72 6E d to do the corn
000150: 65 72 73 20 28 6C 6F 77 65 72 20 6C 65 66 74 2C ers (lower left,
000160: 0D 0A 09 09 09 75 70 70 65 72 20 6C 65 66 74 2C .....upper left,
000170: 20 75 70 70 65 72 20 72 69 67 68 74 2C 6C 6F 77 upper right,low
000180: 65 72 20 72 69 67 68 74 29 0D 0A 0D 0A 09 09 53 er right)......S
000190: 74 61 72 74 78 79 2C 4D 69 64 64 6C 65 58 59 2C tartxy,MiddleXY,
0001A0: 45 6E 64 58 59 0D 0A 0D 0A 09 09 09 54 68 65 20 EndXY.......The
0001B0: 63 68 61 72 61 63 74 65 72 20 73 65 71 75 65 6E character sequen
0001C0: 63 65 73 20 74 6F 20 73 74 61 72 74 20 61 20 63 ces to start a c
0001D0: 75 72 73 6F 72 20 61 64 64 72 65 73 73 0D 0A 09 ursor address...
0001E0: 09 09 63 6F 6D 6D 61 6E 64 2C 20 66 6F 72 20 62 ..command, for b
0001F0: 65 74 77 65 65 6E 20 74 68 65 20 63 6F 2D 6F 72 etween the co-or
Size : 512 (Real : 512)
000000: 44 49 4E 41 4C 29 3B 0D 0A 50 52 4F 43 45 44 55 DINAL);..PROCEDU
000010: 52 45 20 4F 75 74 70 75 74 54 6F 53 63 72 65 65 RE OutputToScree
000020: 6E 28 54 75 72 6E 4F 6E 3A 42 4F 4F 4C 45 41 4E n(TurnOn:BOOLEAN
000030: 29 3B 0D 0A 0D 0A 28 2A 09 43 61 6C 6C 20 74 68 );....(*.Call th
000040: 69 73 20 72 6F 75 74 69 6E 65 20 77 69 74 68 20 is routine with
000050: 46 41 4C 53 45 20 74 6F 20 70 72 65 76 65 6E 74 FALSE to prevent
000060: 20 6F 75 74 70 75 74 20 67 6F 69 6E 67 20 74 6F output going to
000070: 20 74 68 65 0D 0A 09 73 63 72 65 65 6E 2E 20 54 the...screen. T
000080: 68 69 73 20 61 6C 6C 6F 77 73 20 79 6F 75 20 74 his allows you t
000090: 6F 20 73 75 70 70 72 65 73 73 20 6F 75 74 70 75 o suppress outpu
0000A0: 74 20 77 68 69 6C 65 20 6C 61 72 67 65 20 61 6D t while large am
0000B0: 6F 75 6E 74 73 0D 0A 09 6F 66 20 73 63 72 65 65 ounts...of scree
0000C0: 6E 20 61 6C 74 65 72 61 74 69 6F 6E 73 20 61 72 n alterations ar
0000D0: 65 20 62 65 69 6E 67 20 6D 61 64 65 20 74 6F 20 e being made to
0000E0: 73 70 65 65 64 20 75 70 20 61 20 70 72 6F 67 72 speed up a progr
0000F0: 61 6D 2E 20 4F 66 0D 0A 09 63 6F 75 72 73 65 2C am. Of...course,
000100: 20 79 6F 75 20 6D 75 73 74 20 72 65 2D 65 6E 61 you must re-ena
000110: 62 6C 65 20 73 63 72 65 65 6E 20 6F 75 74 70 75 ble screen outpu
000120: 74 20 61 6E 64 20 74 68 65 6E 20 72 65 2D 64 72 t and then re-dr
000130: 61 77 20 74 68 65 0D 0A 09 73 63 72 65 65 6E 20 aw the...screen
000140: 6C 61 74 65 72 2E 20 54 68 69 73 20 69 73 20 75 later. This is u
000150: 73 65 64 20 62 79 20 74 68 65 20 65 64 69 74 6F sed by the edito
000160: 72 20 74 6F 20 73 75 70 70 72 65 73 73 20 73 63 r to suppress sc
000170: 72 65 65 6E 0D 0A 09 61 6C 74 65 72 61 74 69 6F reen...alteratio
000180: 6E 73 20 64 75 72 69 6E 67 20 65 78 65 63 75 74 ns during execut
000190: 69 6F 6E 20 6F 66 20 72 65 70 65 61 74 73 20 2A ion of repeats *
0001A0: 29 0D 0A 45 4E 44 20 53 63 72 65 65 6E 49 4F 2E )..END ScreenIO.
0001B0: 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0001F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
Size : 512 (Real : 512)
000000: 64 69 6E 61 74 65 73 20 61 6E 64 20 61 66 74 65 dinates and afte
000010: 72 20 74 68 65 0D 0A 09 09 09 63 75 72 73 6F 72 r the.....cursor
000020: 20 61 64 64 72 65 73 73 20 63 6F 6D 6D 61 6E 64 address command
000030: 2E 0D 0A 0D 0A 09 09 4D 6F 76 65 4C 65 66 74 2C .......MoveLeft,
000040: 4D 6F 76 65 52 69 67 68 74 2C 4D 6F 76 65 44 6F MoveRight,MoveDo
000050: 77 6E 2C 4D 6F 76 65 55 70 0D 0A 0D 0A 09 09 09 wn,MoveUp.......
000060: 43 75 72 73 6F 72 20 6D 6F 76 65 20 63 6F 6D 6D Cursor move comm
000070: 61 6E 64 73 0D 0A 09 09 2A 29 0D 0A 09 28 2A 09 ands....*)...(*.
000080: 59 6F 75 20 73 68 6F 75 6C 64 20 6E 6F 74 20 6E You should not n
000090: 65 65 64 20 74 6F 20 75 73 65 20 74 68 65 20 6E eed to use the n
0000A0: 65 78 74 20 66 65 77 20 74 79 70 65 20 64 65 63 ext few type dec
0000B0: 6C 61 72 61 74 69 6F 6E 73 0D 0A 09 09 54 68 65 larations....The
0000C0: 79 20 61 72 65 20 69 6E 63 6C 75 64 65 64 20 68 y are included h
0000D0: 65 72 65 20 66 6F 72 20 75 73 65 20 62 79 20 74 ere for use by t
0000E0: 68 65 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E he configuration
0000F0: 20 70 72 6F 67 72 61 6D 2A 29 0D 0A 0D 0A 0D 0A program*)......
000100: 50 52 4F 43 45 44 55 52 45 20 47 6F 74 6F 78 79 PROCEDURE Gotoxy
000110: 28 78 2C 79 3A 43 41 52 44 49 4E 41 4C 29 3B 09 (x,y:CARDINAL);.
000120: 09 0D 0A 0D 0A 28 2A 09 09 50 6F 73 69 74 69 6F .....(*..Positio
000130: 6E 20 74 6F 20 67 69 76 65 6E 20 63 6F 6F 72 64 n to given coord
000140: 69 6E 61 74 65 73 0D 0A 09 09 74 6F 70 20 6C 65 inates....top le
000150: 66 74 20 69 73 20 61 6C 77 61 79 73 20 30 2C 30 ft is always 0,0
000160: 2C 20 77 68 69 63 68 20 6D 65 61 6E 73 20 74 68 , which means th
000170: 61 74 0D 0A 09 09 74 68 65 20 62 69 67 67 65 72 at....the bigger
000180: 20 79 20 69 73 2C 20 74 68 65 20 66 75 72 74 68 y is, the furth
000190: 65 72 20 64 6F 77 6E 20 74 68 65 20 73 63 72 65 er down the scre
0001A0: 65 6E 0D 0A 0D 0A 09 09 78 20 69 73 20 63 6F 6C en......x is col
0001B0: 75 6D 6E 2C 20 79 20 69 73 20 72 6F 77 0D 0A 0D umn, y is row...
0001C0: 0A 09 09 41 20 27 53 74 61 6E 64 61 72 64 27 20 ...A 'Standard'
0001D0: 53 63 72 65 65 6E 20 69 73 20 38 30 20 62 79 20 Screen is 80 by
0001E0: 32 34 2E 20 54 68 65 20 6C 69 6D 69 74 20 69 73 24. The limit is
0001F0: 20 73 65 74 20 62 79 0D 0A 09 09 74 68 65 20 74 set by....the t
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 53 63 72 65 65 6E 49 4F 3B 0D ODULE ScreenIO;.
000020: 0A 46 52 4F 4D 20 54 65 72 6D 69 6E 61 6C 20 49 .FROM Terminal I
000030: 4D 50 4F 52 54 20 43 68 61 72 52 6F 75 74 69 6E MPORT CharRoutin
000040: 65 2C 43 68 61 72 45 6E 61 62 6C 65 64 3B 0D 0A e,CharEnabled;..
000050: 46 52 4F 4D 20 46 69 6C 65 73 20 49 4D 50 4F 52 FROM Files IMPOR
000060: 54 20 4C 6F 6F 6B 75 70 2C 46 49 4C 45 2C 52 65 T Lookup,FILE,Re
000070: 61 64 42 6C 6F 63 6B 3B 0D 0A 46 52 4F 4D 20 46 adBlock;..FROM F
000080: 61 73 74 4D 6F 76 65 20 49 4D 50 4F 52 54 20 4D astMove IMPORT M
000090: 6F 76 65 75 70 3B 0D 0A 46 52 4F 4D 20 53 59 53 oveup;..FROM SYS
0000A0: 54 45 4D 20 49 4D 50 4F 52 54 20 41 44 52 2C 53 TEM IMPORT ADR,S
0000B0: 49 5A 45 2C 57 4F 52 44 3B 0D 0A 46 52 4F 4D 09 IZE,WORD;..FROM.
0000C0: 43 50 4D 20 49 4D 50 4F 52 54 20 77 63 63 66 63 CPM IMPORT wccfc
0000D0: 2C 42 44 4F 53 3B 0D 0A 28 2A 09 53 63 72 65 65 ,BDOS;..(*.Scree
0000E0: 6E 20 68 61 6E 64 6C 69 6E 67 20 72 6F 75 74 69 n handling routi
0000F0: 6E 65 73 20 66 6F 72 20 63 75 72 73 6F 72 20 70 nes for cursor p
000100: 6F 73 69 74 69 6F 6E 2C 20 61 74 74 72 69 62 75 osition, attribu
000110: 74 65 20 65 74 63 0D 0A 0D 0A 09 54 68 69 73 20 te etc.....This
000120: 6D 6F 64 75 6C 65 20 69 73 20 73 70 65 63 69 66 module is specif
000130: 69 63 20 74 6F 20 74 68 69 73 20 63 6F 6D 70 69 ic to this compi
000140: 6C 65 72 2A 29 0D 0A 54 59 50 45 0D 0A 09 43 6F ler*)..TYPE...Co
000150: 6E 74 72 6F 6C 53 65 71 75 65 6E 63 65 3D 52 45 ntrolSequence=RE
000160: 43 4F 52 44 0D 0A 09 09 43 68 61 72 73 3A 41 52 CORD....Chars:AR
000170: 52 41 59 5B 31 2E 2E 37 5D 20 4F 46 20 43 48 41 RAY[1..7] OF CHA
000180: 52 3B 0D 0A 09 09 53 65 71 4C 65 6E 3A 42 59 54 R;....SeqLen:BYT
000190: 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 0D 0A 0D 0A E;....END;......
0001A0: 09 43 6F 6E 74 72 6F 6C 43 6F 64 65 73 3D 52 45 .ControlCodes=RE
0001B0: 43 4F 52 44 0D 0A 09 09 45 64 69 74 53 65 71 75 CORD....EditSequ
0001C0: 65 6E 63 65 73 3A 41 52 52 41 59 20 45 64 69 74 ences:ARRAY Edit
0001D0: 73 20 4F 46 20 43 6F 6E 74 72 6F 6C 53 65 71 75 s OF ControlSequ
0001E0: 65 6E 63 65 3B 0D 0A 09 09 41 73 63 69 69 3A 42 ence;....Ascii:B
0001F0: 4F 4F 4C 45 41 4E 3B 20 28 2A 74 72 75 65 20 69 OOLEAN; (*true i
Size : 512 (Real : 512)
000000: 65 72 6D 69 6E 61 6C 20 64 65 66 69 6E 69 74 69 erminal definiti
000010: 6F 6E 20 66 69 6C 65 09 2A 29 0D 0A 0D 0A 50 52 on file.*)....PR
000020: 4F 43 45 44 55 52 45 20 4C 6F 61 64 54 65 72 6D OCEDURE LoadTerm
000030: 43 6F 64 65 28 66 69 6C 65 6E 61 6D 65 3A 46 69 Code(filename:Fi
000040: 6C 65 4E 61 6D 65 29 3B 0D 0A 0D 0A 28 2A 09 09 leName);....(*..
000050: 4C 6F 61 64 20 74 68 65 20 74 65 72 6D 69 6E 61 Load the termina
000060: 6C 20 64 65 66 69 6E 69 74 69 6F 6E 20 66 6F 72 l definition for
000070: 20 74 68 65 20 63 75 72 72 65 6E 74 20 74 65 72 the current ter
000080: 6D 69 6E 61 6C 0D 0A 0D 0A 09 09 66 69 6C 65 6E minal......filen
000090: 61 6D 65 20 69 73 20 74 68 65 20 6E 61 6D 65 20 ame is the name
0000A0: 6F 66 20 74 68 65 20 66 69 6C 65 20 74 6F 20 72 of the file to r
0000B0: 65 61 64 0D 0A 0D 0A 09 09 4E 6F 72 6D 61 6C 6C ead......Normall
0000C0: 79 2C 20 77 68 65 6E 20 74 68 65 20 70 72 6F 67 y, when the prog
0000D0: 72 61 6D 20 69 73 20 6C 6F 61 64 65 64 2C 20 74 ram is loaded, t
0000E0: 68 65 20 66 69 6C 65 0D 0A 09 09 27 54 45 52 4D he file....'TERM
0000F0: 49 4E 41 4C 2E 43 4F 44 27 20 69 73 20 6C 6F 61 INAL.COD' is loa
000100: 64 65 64 20 66 72 6F 6D 20 74 68 65 20 6C 6F 67 ded from the log
000110: 67 65 64 20 69 6E 20 64 69 73 63 0D 0A 09 09 54 ged in disc....T
000120: 68 69 73 20 72 6F 75 74 69 6E 65 20 6F 6E 6C 79 his routine only
000130: 20 6E 65 65 64 73 20 74 6F 20 62 65 20 75 73 65 needs to be use
000140: 64 20 69 66 20 74 68 61 74 0D 0A 09 09 66 69 6C d if that....fil
000150: 65 20 69 73 20 6E 6F 74 20 74 68 65 20 6F 6E 65 e is not the one
000160: 20 74 6F 20 75 73 65 20 28 65 67 2C 20 74 6F 20 to use (eg, to
000170: 73 77 61 70 20 73 63 72 65 65 6E 73 2A 29 20 0D swap screens*) .
000180: 0A 0D 0A 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 45 .......PROCEDURE
000190: 20 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 73 ScreenControl(s
0001A0: 3A 45 64 69 74 73 29 3B 0D 0A 0D 0A 28 2A 09 09 :Edits);....(*..
0001B0: 50 65 72 66 6F 72 6D 20 61 20 73 63 72 65 65 6E Perform a screen
0001C0: 20 63 6F 6E 74 72 6F 6C 20 6F 70 65 72 61 74 69 control operati
0001D0: 6F 6E 2A 29 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 on*)....PROCEDUR
0001E0: 45 20 20 44 72 61 77 42 6F 78 28 78 31 2C 79 31 E DrawBox(x1,y1
0001F0: 2C 78 32 2C 79 32 3A 43 41 52 44 49 4E 41 4C 29 ,x2,y2:CARDINAL)
Size : 512 (Real : 512)
000000: 66 20 63 6F 2D 6F 72 64 69 6E 61 74 65 73 20 6F f co-ordinates o
000010: 75 74 20 6F 75 74 70 75 74 20 61 73 20 0D 0A 09 ut output as ...
000020: 09 09 09 20 61 73 63 69 69 20 6E 75 6D 62 65 72 ... ascii number
000030: 73 20 72 61 74 68 65 72 20 74 68 61 6E 20 62 69 s rather than bi
000040: 6E 61 72 79 2A 29 0D 0A 09 09 43 6F 6C 75 6D 6E nary*)....Column
000050: 46 69 72 73 74 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A First:BOOLEAN;..
000060: 09 09 41 64 64 72 65 73 73 49 6E 47 72 61 70 68 ..AddressInGraph
000070: 3A 42 4F 4F 4C 45 41 4E 3B 20 28 2A 74 72 75 65 :BOOLEAN; (*true
000080: 20 69 66 20 63 61 6E 20 63 68 61 6E 67 65 20 63 if can change c
000090: 6F 6F 72 64 69 6E 61 74 65 73 0D 0A 09 09 09 09 oordinates......
0000A0: 09 20 20 69 6E 20 67 72 61 70 68 20 6D 6F 64 65 . in graph mode
0000B0: 2A 29 0D 0A 09 09 43 61 72 72 69 61 67 65 52 65 *)....CarriageRe
0000C0: 74 75 72 6E 3A 42 4F 4F 4C 45 41 4E 3B 20 28 2A turn:BOOLEAN; (*
0000D0: 74 72 75 65 20 69 66 20 63 61 72 72 69 61 67 65 true if carriage
0000E0: 20 72 65 74 75 72 6E 20 72 65 74 75 72 6E 73 20 return returns
0000F0: 0D 0A 09 09 09 09 09 20 20 74 6F 20 73 74 61 72 ....... to star
000100: 74 20 6F 66 20 63 75 72 72 65 6E 74 20 72 6F 77 t of current row
000110: 2A 29 0D 0A 09 09 53 63 72 65 65 6E 44 65 70 74 *)....ScreenDept
000120: 68 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 53 h:CARDINAL;....S
000130: 63 72 65 65 6E 57 69 64 74 68 3A 43 41 52 44 49 creenWidth:CARDI
000140: 4E 41 4C 3B 0D 0A 09 09 58 59 4F 66 66 73 65 74 NAL;....XYOffset
000150: 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 09 45 4E :CARDINAL;....EN
000160: 44 3B 20 0D 0A 09 09 0D 0A 0D 0A 56 41 52 09 43 D; ........VAR.C
000170: 6F 6E 74 72 6F 6C 3A 43 6F 6E 74 72 6F 6C 43 6F ontrol:ControlCo
000180: 64 65 73 3B 0D 0A 09 41 63 74 69 76 65 3A 42 4F des;...Active:BO
000190: 4F 4C 45 41 4E 3B 0D 0A 09 49 6E 47 72 61 70 68 OLEAN;...InGraph
0001A0: 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A 09 4C 6F 77 78 :BOOLEAN;...Lowx
0001B0: 2C 48 69 67 68 78 2C 4C 6F 77 79 2C 48 69 67 68 ,Highx,Lowy,High
0001C0: 79 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A 09 4F 75 y:CARDINAL;...Ou
0001D0: 74 70 75 74 45 6E 61 62 6C 65 64 3A 42 4F 4F 4C tputEnabled:BOOL
0001E0: 45 41 4E 3B 0D 0A 28 2A 50 52 4F 43 45 44 55 52 EAN;..(*PROCEDUR
0001F0: 45 20 57 72 69 74 65 28 69 3A 43 48 41 52 29 3B E Write(i:CHAR);
Size : 512 (Real : 512)
000000: 6B 28 66 6E 2C 41 44 52 28 62 6C 6F 63 6B 29 2C k(fn,ADR(block),
000010: 30 2C 53 49 5A 45 28 62 6C 6F 63 6B 29 2C 72 65 0,SIZE(block),re
000020: 70 6C 79 29 3B 0D 0A 09 09 41 63 74 69 76 65 3A ply);....Active:
000030: 3D 72 65 70 6C 79 3E 3D 53 49 5A 45 28 43 6F 6E =reply>=SIZE(Con
000040: 74 72 6F 6C 29 3B 0D 0A 09 09 4D 6F 76 65 75 70 trol);....Moveup
000050: 28 41 44 52 28 62 6C 6F 63 6B 29 2C 41 44 52 28 (ADR(block),ADR(
000060: 43 6F 6E 74 72 6F 6C 29 2C 53 49 5A 45 28 43 6F Control),SIZE(Co
000070: 6E 74 72 6F 6C 29 29 3B 0D 0A 09 09 45 4E 44 3B ntrol));....END;
000080: 0D 0A 09 53 63 72 65 65 6E 57 69 64 74 68 3A 3D ...ScreenWidth:=
000090: 43 6F 6E 74 72 6F 6C 2E 53 63 72 65 65 6E 57 69 Control.ScreenWi
0000A0: 64 74 68 3B 0D 0A 09 53 63 72 65 65 6E 44 65 70 dth;...ScreenDep
0000B0: 74 68 3A 3D 43 6F 6E 74 72 6F 6C 2E 53 63 72 65 th:=Control.Scre
0000C0: 65 6E 44 65 70 74 68 3B 0D 0A 09 45 4E 44 20 4C enDepth;...END L
0000D0: 6F 61 64 54 65 72 6D 43 6F 64 65 3B 0D 0A 0D 0A oadTermCode;....
0000E0: 50 52 4F 43 45 44 55 52 45 20 53 63 72 65 65 6E PROCEDURE Screen
0000F0: 43 6F 6E 74 72 6F 6C 28 73 3A 45 64 69 74 73 29 Control(s:Edits)
000100: 3B 0D 0A 0D 0A 28 2A 09 09 50 65 72 66 6F 72 6D ;....(*..Perform
000110: 20 61 20 73 63 72 65 65 6E 20 63 6F 6E 74 72 6F a screen contro
000120: 6C 20 6F 70 65 72 61 74 69 6F 6E 2A 29 0D 0A 56 l operation*)..V
000130: 41 52 09 69 3A 43 41 52 44 49 4E 41 4C 3B 0D 0A AR.i:CARDINAL;..
000140: 42 45 47 49 4E 0D 0A 09 49 46 20 41 63 74 69 76 BEGIN...IF Activ
000150: 65 20 41 4E 44 20 4F 75 74 70 75 74 45 6E 61 62 e AND OutputEnab
000160: 6C 65 64 20 54 48 45 4E 0D 0A 09 09 57 49 54 48 led THEN....WITH
000170: 20 43 6F 6E 74 72 6F 6C 2E 45 64 69 74 53 65 71 Control.EditSeq
000180: 75 65 6E 63 65 73 5B 73 5D 20 44 4F 0D 0A 09 09 uences[s] DO....
000190: 09 4D 61 64 65 43 68 61 6E 67 65 3A 3D 53 65 71 .MadeChange:=Seq
0001A0: 4C 65 6E 3E 30 3B 0D 0A 09 09 09 46 4F 52 20 69 Len>0;.....FOR i
0001B0: 3A 3D 31 20 54 4F 20 4F 52 44 28 53 65 71 4C 65 :=1 TO ORD(SeqLe
0001C0: 6E 29 20 44 4F 20 57 72 69 74 65 28 43 68 61 72 n) DO Write(Char
0001D0: 73 5B 69 5D 29 20 45 4E 44 3B 0D 0A 09 09 09 45 s[i]) END;.....E
0001E0: 4E 44 3B 0D 0A 09 09 49 46 20 4E 4F 54 20 43 6F ND;....IF NOT Co
0001F0: 6E 74 72 6F 6C 2E 41 64 64 72 65 73 73 49 6E 47 ntrol.AddressInG
Size : 512 (Real : 512)
000000: 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 28 69 3E ..BEGIN...IF (i>
000010: 3D 27 20 27 29 20 41 4E 44 20 28 69 3C 3D 27 7A =' ') AND (i<='z
000020: 27 29 20 54 48 45 4E 20 54 65 72 6D 69 6E 61 6C ') THEN Terminal
000030: 2E 57 72 69 74 65 28 69 29 0D 0A 09 45 4C 53 45 .Write(i)...ELSE
000040: 20 0D 0A 09 09 54 65 72 6D 69 6E 61 6C 2E 57 72 ....Terminal.Wr
000050: 69 74 65 28 27 3C 27 29 3B 0D 0A 09 09 57 72 69 ite('<');....Wri
000060: 74 65 48 65 78 28 4F 52 44 28 69 29 2C 33 29 3B teHex(ORD(i),3);
000070: 0D 0A 09 09 54 65 72 6D 69 6E 61 6C 2E 57 72 69 ....Terminal.Wri
000080: 74 65 28 27 3E 27 29 3B 0D 0A 09 09 45 4E 44 3B te('>');....END;
000090: 0D 0A 09 45 4E 44 20 57 72 69 74 65 3B 2A 29 0D ...END Write;*).
0000A0: 0A 50 52 4F 43 45 44 55 52 45 20 57 72 69 74 65 .PROCEDURE Write
0000B0: 28 62 3A 43 48 41 52 29 3B 0D 0A 56 41 52 09 69 (b:CHAR);..VAR.i
0000C0: 3A 49 4E 54 45 47 45 52 3B 09 28 2A 6E 65 65 64 :INTEGER;.(*need
0000D0: 65 64 20 74 6F 20 61 76 6F 69 64 20 63 6F 6E 66 ed to avoid conf
0000E0: 6C 69 63 74 20 77 69 74 68 20 67 6C 6F 62 61 6C lict with global
0000F0: 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 49 46 20 4F *)..BEGIN...IF O
000100: 75 74 70 75 74 45 6E 61 62 6C 65 64 20 54 48 45 utputEnabled THE
000110: 4E 0D 0A 09 09 69 3A 3D 42 44 4F 53 28 77 63 63 N....i:=BDOS(wcc
000120: 66 63 2C 57 4F 52 44 28 62 29 29 0D 0A 09 09 45 fc,WORD(b))....E
000130: 4E 44 3B 0D 0A 09 45 4E 44 20 57 72 69 74 65 3B ND;...END Write;
000140: 0D 0A 50 52 4F 43 45 44 55 52 45 20 57 72 69 74 ..PROCEDURE Writ
000150: 65 41 73 63 69 69 28 69 3A 49 4E 54 45 47 45 52 eAscii(i:INTEGER
000160: 29 3B 0D 0A 56 41 52 09 54 65 78 74 3A 41 52 52 );..VAR.Text:ARR
000170: 41 59 5B 31 2E 2E 33 5D 20 4F 46 20 43 48 41 52 AY[1..3] OF CHAR
000180: 3B 0D 0A 09 6A 2C 6B 3A 49 4E 54 45 47 45 52 3B ;...j,k:INTEGER;
000190: 0D 0A 42 45 47 49 4E 0D 0A 09 6A 3A 3D 33 3B 0D ..BEGIN...j:=3;.
0001A0: 0A 09 57 48 49 4C 45 20 28 6A 3E 30 29 20 41 4E ..WHILE (j>0) AN
0001B0: 44 20 28 69 3C 3E 30 29 20 44 4F 0D 0A 09 09 6B D (i<>0) DO....k
0001C0: 3A 3D 69 20 44 49 56 20 31 30 3B 0D 0A 09 09 54 :=i DIV 10;....T
0001D0: 65 78 74 5B 6A 5D 3A 3D 43 48 52 28 69 2D 31 30 ext[j]:=CHR(i-10
0001E0: 2A 6B 2B 4F 52 44 28 27 30 27 29 29 3B 0D 0A 09 *k+ORD('0'));...
0001F0: 09 69 3A 3D 6B 3B 0D 0A 09 09 6A 3A 3D 6A 2D 31 .i:=k;....j:=j-1
Size : 512 (Real : 512)
000000: 72 61 70 68 20 54 48 45 4E 0D 0A 09 09 09 49 46 raph THEN.....IF
000010: 20 73 3D 53 74 61 72 74 47 72 61 70 68 20 54 48 s=StartGraph TH
000020: 45 4E 20 49 6E 47 72 61 70 68 3A 3D 54 52 55 45 EN InGraph:=TRUE
000030: 0D 0A 09 09 09 45 4C 53 49 46 20 73 3D 45 6E 64 .....ELSIF s=End
000040: 47 72 61 70 68 20 54 48 45 4E 20 49 6E 47 72 61 Graph THEN InGra
000050: 70 68 3A 3D 46 41 4C 53 45 20 45 4E 44 3B 0D 0A ph:=FALSE END;..
000060: 09 09 09 45 4E 44 3B 0D 0A 09 45 4C 53 45 20 20 ...END;...ELSE
000070: 4D 61 64 65 43 68 61 6E 67 65 3A 3D 46 41 4C 53 MadeChange:=FALS
000080: 45 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 45 4E 44 E;....END;...END
000090: 20 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 3B 0D ScreenControl;.
0000A0: 0A 50 52 4F 43 45 44 55 52 45 20 49 6E 42 6F 75 .PROCEDURE InBou
0000B0: 6E 64 28 78 2C 79 3A 43 41 52 44 49 4E 41 4C 3B nd(x,y:CARDINAL;
0000C0: 63 68 3A 45 64 69 74 73 29 3B 0D 0A 42 45 47 49 ch:Edits);..BEGI
0000D0: 4E 0D 0A 09 49 46 20 09 28 78 3E 3D 4C 6F 77 78 N...IF .(x>=Lowx
0000E0: 29 20 41 4E 44 20 28 78 3C 3D 48 69 67 68 78 29 ) AND (x<=Highx)
0000F0: 0D 0A 09 20 20 41 4E 44 09 28 79 3E 3D 4C 6F 77 ... AND.(y>=Low
000100: 79 29 20 41 4E 44 20 28 79 3C 3D 48 69 67 68 79 y) AND (y<=Highy
000110: 29 20 54 48 45 4E 20 0D 0A 09 09 53 63 72 65 65 ) THEN ....Scree
000120: 6E 43 6F 6E 74 72 6F 6C 28 63 68 29 3B 0D 0A 09 nControl(ch);...
000130: 09 45 4E 44 0D 0A 09 45 4E 44 20 49 6E 42 6F 75 .END...END InBou
000140: 6E 64 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 nd;..PROCEDURE
000150: 44 72 61 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 DrawBox(x1,y1,x2
000160: 2C 79 32 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A ,y2:CARDINAL);..
000170: 0D 0A 28 2A 09 09 64 72 61 77 20 61 20 62 6F 78 ..(*..draw a box
000180: 20 66 6F 72 20 61 20 77 69 6E 64 6F 77 20 6F 6E for a window on
000190: 20 74 68 65 20 73 63 72 65 65 6E 0D 0A 0D 0A 09 the screen.....
0001A0: 09 78 31 2C 79 31 20 20 69 73 20 74 68 65 20 6C .x1,y1 is the l
0001B0: 6F 77 65 72 20 6C 65 66 74 20 63 6F 72 6E 65 72 ower left corner
0001C0: 0D 0A 09 09 78 32 2C 79 32 20 20 69 73 20 75 70 ....x2,y2 is up
0001D0: 70 65 72 20 72 69 67 68 74 20 63 6F 72 6E 65 72 per right corner
0001E0: 2A 29 0D 0A 56 41 52 09 69 3A 43 41 52 44 49 4E *)..VAR.i:CARDIN
0001F0: 41 4C 3B 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 AL;..BEGIN..
Size : 512 (Real : 512)
000000: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 46 4F 52 20 ;....END;...FOR
000010: 6B 3A 3D 6A 2B 31 20 54 4F 20 33 20 44 4F 20 57 k:=j+1 TO 3 DO W
000020: 72 69 74 65 28 54 65 78 74 5B 6B 5D 29 20 45 4E rite(Text[k]) EN
000030: 44 3B 0D 0A 09 45 4E 44 20 57 72 69 74 65 41 73 D;...END WriteAs
000040: 63 69 69 3B 20 0D 0A 50 52 4F 43 45 44 55 52 45 cii; ..PROCEDURE
000050: 20 47 6F 74 6F 78 79 28 78 2C 79 3A 43 41 52 44 Gotoxy(x,y:CARD
000060: 49 4E 41 4C 29 3B 09 09 0D 0A 0D 0A 28 2A 09 09 INAL);......(*..
000070: 50 6F 73 69 74 69 6F 6E 20 74 6F 20 67 69 76 65 Position to give
000080: 6E 20 63 6F 6F 72 64 69 6E 61 74 65 73 0D 0A 09 n coordinates...
000090: 09 74 6F 70 20 6C 65 66 74 20 69 73 20 61 6C 77 .top left is alw
0000A0: 61 79 73 20 30 2C 30 20 0D 0A 0D 0A 09 09 78 20 ays 0,0 ......x
0000B0: 69 73 20 63 6F 6C 75 6D 6E 2C 20 79 20 69 73 20 is column, y is
0000C0: 72 6F 77 0D 0A 0D 0A 09 09 41 20 27 53 74 61 6E row......A 'Stan
0000D0: 64 61 72 64 27 20 53 63 72 65 65 6E 20 69 73 20 dard' Screen is
0000E0: 38 30 20 62 79 20 32 34 2E 20 54 68 65 20 6C 69 80 by 24. The li
0000F0: 6D 69 74 20 69 73 20 73 65 74 20 62 79 0D 0A 09 mit is set by...
000100: 09 74 68 65 20 74 65 72 6D 69 6E 61 6C 20 64 65 .the terminal de
000110: 66 69 6E 69 74 69 6F 6E 20 66 69 6C 65 09 2A 29 finition file.*)
000120: 0D 0A 56 41 52 09 69 2C 6A 3A 49 4E 54 45 47 45 ..VAR.i,j:INTEGE
000130: 52 3B 0D 0A 09 69 6E 67 3A 42 4F 4F 4C 45 41 4E R;...ing:BOOLEAN
000140: 3B 0D 0A 42 45 47 49 4E 0D 0A 20 20 20 20 49 46 ;..BEGIN.. IF
000150: 20 41 63 74 69 76 65 20 41 4E 44 20 4F 75 74 70 Active AND Outp
000160: 75 74 45 6E 61 62 6C 65 64 20 54 48 45 4E 0D 0A utEnabled THEN..
000170: 09 57 49 54 48 20 43 6F 6E 74 72 6F 6C 20 44 4F .WITH Control DO
000180: 0D 0A 09 09 69 6E 67 3A 3D 49 6E 47 72 61 70 68 ....ing:=InGraph
000190: 3B 0D 0A 09 09 49 46 20 49 6E 47 72 61 70 68 20 ;....IF InGraph
0001A0: 54 48 45 4E 20 53 63 72 65 65 6E 43 6F 6E 74 72 THEN ScreenContr
0001B0: 6F 6C 28 45 6E 64 47 72 61 70 68 29 20 45 4E 44 ol(EndGraph) END
0001C0: 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 ;....ScreenContr
0001D0: 6F 6C 28 53 74 61 72 74 78 79 29 3B 0D 0A 09 09 ol(Startxy);....
0001E0: 49 46 20 43 6F 6C 75 6D 6E 46 69 72 73 74 20 54 IF ColumnFirst T
0001F0: 48 45 4E 0D 0A 09 09 09 69 3A 3D 78 2B 58 59 4F HEN.....i:=x+XYO
Size : 512 (Real : 512)
000000: 49 46 20 41 63 74 69 76 65 20 41 4E 44 20 4F 75 IF Active AND Ou
000010: 74 70 75 74 45 6E 61 62 6C 65 64 20 54 48 45 4E tputEnabled THEN
000020: 0D 0A 09 57 49 54 48 20 43 6F 6E 74 72 6F 6C 20 ...WITH Control
000030: 44 4F 0D 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C DO....Gotoxy(x1,
000040: 79 31 29 3B 0D 0A 09 09 53 63 72 65 65 6E 43 6F y1);....ScreenCo
000050: 6E 74 72 6F 6C 28 53 74 61 72 74 47 72 61 70 68 ntrol(StartGraph
000060: 29 3B 0D 0A 09 09 49 6E 42 6F 75 6E 64 28 78 31 );....InBound(x1
000070: 2C 79 31 2C 43 6F 72 6E 65 72 4C 4C 29 3B 0D 0A ,y1,CornerLL);..
000080: 09 09 46 4F 52 20 69 3A 3D 78 31 2B 31 20 54 4F ..FOR i:=x1+1 TO
000090: 20 78 32 2D 31 20 44 4F 20 49 6E 42 6F 75 6E 64 x2-1 DO InBound
0000A0: 28 69 2C 79 31 2C 48 6F 72 69 7A 6F 6E 74 61 6C (i,y1,Horizontal
0000B0: 29 20 45 4E 44 3B 0D 0A 09 09 49 6E 42 6F 75 6E ) END;....InBoun
0000C0: 64 28 78 32 2C 79 31 2C 43 6F 72 6E 65 72 4C 52 d(x2,y1,CornerLR
0000D0: 29 3B 0D 0A 09 09 47 6F 74 6F 78 79 28 78 31 2C );....Gotoxy(x1,
0000E0: 79 32 29 3B 0D 0A 09 09 49 6E 42 6F 75 6E 64 28 y2);....InBound(
0000F0: 78 31 2C 79 32 2C 43 6F 72 6E 65 72 55 4C 29 3B x1,y2,CornerUL);
000100: 0D 0A 09 09 46 4F 52 20 69 3A 3D 78 31 2B 31 20 ....FOR i:=x1+1
000110: 54 4F 20 78 32 2D 31 20 44 4F 20 49 6E 42 6F 75 TO x2-1 DO InBou
000120: 6E 64 28 69 2C 79 32 2C 48 6F 72 69 7A 6F 6E 74 nd(i,y2,Horizont
000130: 61 6C 29 20 45 4E 44 3B 0D 0A 09 09 49 6E 42 6F al) END;....InBo
000140: 75 6E 64 28 78 32 2C 79 32 2C 43 6F 72 6E 65 72 und(x2,y2,Corner
000150: 55 52 29 3B 0D 0A 09 09 46 4F 52 20 69 3A 3D 79 UR);....FOR i:=y
000160: 32 2B 31 20 54 4F 20 79 31 2D 31 20 20 44 4F 0D 2+1 TO y1-1 DO.
000170: 0A 09 09 09 47 6F 74 6F 78 79 28 78 32 2C 69 29 ....Gotoxy(x2,i)
000180: 3B 0D 0A 09 09 09 49 6E 42 6F 75 6E 64 28 78 32 ;.....InBound(x2
000190: 2C 69 2C 56 65 72 74 69 63 61 6C 29 3B 0D 0A 09 ,i,Vertical);...
0001A0: 09 09 45 4E 44 3B 0D 0A 09 09 46 4F 52 20 69 3A ..END;....FOR i:
0001B0: 3D 79 32 2B 31 20 54 4F 20 79 31 2D 31 20 44 4F =y2+1 TO y1-1 DO
0001C0: 0D 0A 09 09 09 47 6F 74 6F 78 79 28 78 31 2C 69 .....Gotoxy(x1,i
0001D0: 29 3B 0D 0A 09 09 09 49 6E 42 6F 75 6E 64 28 78 );.....InBound(x
0001E0: 31 2C 69 2C 56 65 72 74 69 63 61 6C 29 3B 0D 0A 1,i,Vertical);..
0001F0: 09 09 09 45 4E 44 3B 0D 0A 09 09 45 4E 44 3B 28 ...END;....END;(
Size : 512 (Real : 512)
000000: 66 66 73 65 74 3B 0D 0A 09 09 09 6A 3A 3D 79 2B ffset;.....j:=y+
000010: 58 59 4F 66 66 73 65 74 3B 0D 0A 09 09 45 4C 53 XYOffset;....ELS
000020: 45 0D 0A 09 09 09 69 3A 3D 79 2B 58 59 4F 66 66 E.....i:=y+XYOff
000030: 73 65 74 3B 0D 0A 09 09 09 6A 3A 3D 78 2B 58 59 set;.....j:=x+XY
000040: 4F 66 66 73 65 74 3B 0D 0A 09 09 09 45 4E 44 3B Offset;.....END;
000050: 0D 0A 09 09 49 46 20 41 73 63 69 69 20 54 48 45 ....IF Ascii THE
000060: 4E 20 57 72 69 74 65 41 73 63 69 69 28 69 29 0D N WriteAscii(i).
000070: 0A 09 09 45 4C 53 45 20 57 72 69 74 65 28 43 48 ...ELSE Write(CH
000080: 52 28 69 29 29 20 45 4E 44 3B 0D 0A 09 09 53 63 R(i)) END;....Sc
000090: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 4D 69 64 64 reenControl(Midd
0000A0: 6C 65 58 59 29 3B 0D 0A 09 09 49 46 20 41 73 63 leXY);....IF Asc
0000B0: 69 69 20 54 48 45 4E 20 57 72 69 74 65 41 73 63 ii THEN WriteAsc
0000C0: 69 69 28 6A 29 0D 0A 09 09 45 4C 53 45 20 57 72 ii(j)....ELSE Wr
0000D0: 69 74 65 28 43 48 52 28 6A 29 29 20 45 4E 44 3B ite(CHR(j)) END;
0000E0: 0D 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F ....ScreenContro
0000F0: 6C 28 45 6E 64 58 59 29 3B 0D 0A 09 09 45 4E 44 l(EndXY);....END
000100: 3B 20 28 2A 57 49 54 48 2A 29 0D 0A 09 49 46 20 ; (*WITH*)...IF
000110: 69 6E 67 20 54 48 45 4E 20 53 63 72 65 65 6E 43 ing THEN ScreenC
000120: 6F 6E 74 72 6F 6C 28 53 74 61 72 74 47 72 61 70 ontrol(StartGrap
000130: 68 29 20 45 4E 44 3B 0D 0A 09 45 4E 44 28 2A 49 h) END;...END(*I
000140: 46 2A 29 0D 0A 20 20 20 20 45 4E 44 20 47 6F 74 F*).. END Got
000150: 6F 78 79 3B 0D 0A 0D 0A 50 52 4F 43 45 44 55 52 oxy;....PROCEDUR
000160: 45 20 4C 6F 61 64 54 65 72 6D 43 6F 64 65 28 66 E LoadTermCode(f
000170: 69 6C 65 6E 61 6D 65 3A 46 69 6C 65 4E 61 6D 65 ilename:FileName
000180: 29 3B 0D 0A 56 41 52 09 66 6E 3A 46 49 4C 45 3B );..VAR.fn:FILE;
000190: 0D 0A 09 72 65 70 6C 79 3A 49 4E 54 45 47 45 52 ...reply:INTEGER
0001A0: 3B 0D 0A 0D 0A 28 2A 09 09 64 65 66 69 6E 65 20 ;....(*..define
0001B0: 61 20 74 65 6D 70 6F 72 61 72 79 20 61 72 65 61 a temporary area
0001C0: 20 66 6F 72 20 72 65 61 64 69 6E 67 20 6F 66 20 for reading of
0001D0: 66 69 6C 65 0D 0A 09 09 69 74 20 6D 75 73 74 20 file....it must
0001E0: 62 65 20 65 71 75 61 6C 20 69 6E 20 73 69 7A 65 be equal in size
0001F0: 20 74 6F 20 74 68 65 20 73 69 7A 65 20 6F 66 20 to the size of
Size : 512 (Real : 512)
000000: 2A 57 49 54 48 20 43 6F 6E 74 72 6F 6C 2A 29 0D *WITH Control*).
000010: 0A 09 09 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C ...ScreenControl
000020: 28 45 6E 64 47 72 61 70 68 29 3B 0D 0A 09 45 4E (EndGraph);...EN
000030: 44 3B 20 28 2A 49 46 20 41 63 74 69 76 65 2A 29 D; (*IF Active*)
000040: 0D 0A 20 20 20 20 45 4E 44 20 44 72 61 77 42 6F .. END DrawBo
000050: 78 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 43 6C x;..PROCEDURE Cl
000060: 69 70 28 78 31 2C 79 31 2C 78 32 2C 79 32 3A 43 ip(x1,y1,x2,y2:C
000070: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
000080: 0D 0A 09 4C 6F 77 78 3A 3D 78 31 3B 0D 0A 09 48 ...Lowx:=x1;...H
000090: 69 67 68 78 3A 3D 78 32 3B 0D 0A 09 4C 6F 77 79 ighx:=x2;...Lowy
0000A0: 3A 3D 79 32 3B 0D 0A 09 48 69 67 68 79 3A 3D 79 :=y2;...Highy:=y
0000B0: 31 3B 0D 0A 09 45 4E 44 20 43 6C 69 70 3B 0D 0A 1;...END Clip;..
0000C0: 50 52 4F 43 45 44 55 52 45 20 53 63 72 6F 6C 6C PROCEDURE Scroll
0000D0: 57 69 6E 64 6F 77 55 70 28 53 74 61 72 74 6F 66 WindowUp(Startof
0000E0: 57 69 6E 64 6F 77 2C 45 6E 64 6F 66 57 69 6E 64 Window,EndofWind
0000F0: 6F 77 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 ow:CARDINAL);..B
000100: 45 47 49 4E 0D 0A 09 47 6F 74 6F 78 79 28 30 2C EGIN...Gotoxy(0,
000110: 45 6E 64 6F 66 57 69 6E 64 6F 77 29 3B 0D 0A 09 EndofWindow);...
000120: 53 63 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 44 65 ScreenControl(De
000130: 6C 4C 69 6E 65 29 3B 0D 0A 09 47 6F 74 6F 78 79 lLine);...Gotoxy
000140: 28 30 2C 53 74 61 72 74 6F 66 57 69 6E 64 6F 77 (0,StartofWindow
000150: 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F 6E 74 72 );...ScreenContr
000160: 6F 6C 28 49 6E 73 4C 69 6E 65 29 3B 0D 0A 09 45 ol(InsLine);...E
000170: 4E 44 20 53 63 72 6F 6C 6C 57 69 6E 64 6F 77 55 ND ScrollWindowU
000180: 70 3B 0D 0A 50 52 4F 43 45 44 55 52 45 20 53 63 p;..PROCEDURE Sc
000190: 72 6F 6C 6C 57 69 6E 64 6F 77 44 6F 77 6E 28 53 rollWindowDown(S
0001A0: 74 61 72 74 6F 66 57 69 6E 64 6F 77 2C 45 6E 64 tartofWindow,End
0001B0: 6F 66 57 69 6E 64 6F 77 3A 43 41 52 44 49 4E 41 ofWindow:CARDINA
0001C0: 4C 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 47 6F 74 L);..BEGIN...Got
0001D0: 6F 78 79 28 30 2C 53 74 61 72 74 6F 66 57 69 6E oxy(0,StartofWin
0001E0: 64 6F 77 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F dow);...ScreenCo
0001F0: 6E 74 72 6F 6C 28 44 65 6C 4C 69 6E 65 29 3B 0D ntrol(DelLine);.
Size : 512 (Real : 512)
000000: 63 6F 6E 74 72 6F 6C 2C 20 70 61 64 64 65 64 0D control, padded.
000010: 0A 09 09 6F 75 74 20 74 6F 20 61 20 6D 75 6C 74 ...out to a mult
000020: 69 70 6C 65 20 6F 66 20 31 32 38 20 62 79 74 65 iple of 128 byte
000030: 73 2A 29 0D 0A 0D 0A 09 62 6C 6F 63 6B 3A 41 52 s*).....block:AR
000040: 52 41 59 5B 30 2E 2E 31 32 38 2A 28 53 49 5A 45 RAY[0..128*(SIZE
000050: 28 43 6F 6E 74 72 6F 6C 29 20 44 49 56 20 31 32 (Control) DIV 12
000060: 38 29 2B 31 32 37 5D 20 4F 46 20 43 48 41 52 3B 8)+127] OF CHAR;
000070: 0D 0A 0D 0A 28 2A 09 09 4C 6F 61 64 20 74 68 65 ....(*..Load the
000080: 20 74 65 72 6D 69 6E 61 6C 20 64 65 66 69 6E 69 terminal defini
000090: 74 69 6F 6E 20 66 6F 72 20 74 68 65 20 63 75 72 tion for the cur
0000A0: 72 65 6E 74 20 74 65 72 6D 69 6E 61 6C 0D 0A 0D rent terminal...
0000B0: 0A 09 09 66 69 6C 65 6E 61 6D 65 20 69 73 20 74 ...filename is t
0000C0: 68 65 20 6E 61 6D 65 20 6F 66 20 74 68 65 20 66 he name of the f
0000D0: 69 6C 65 20 74 6F 20 72 65 61 64 0D 0A 0D 0A 09 ile to read.....
0000E0: 09 4E 6F 72 6D 61 6C 6C 79 2C 20 77 68 65 6E 20 .Normally, when
0000F0: 74 68 65 20 70 72 6F 67 72 61 6D 20 69 73 20 6C the program is l
000100: 6F 61 64 65 64 2C 20 74 68 65 20 66 69 6C 65 0D oaded, the file.
000110: 0A 09 09 27 54 45 52 4D 49 4E 41 4C 2E 43 4F 44 ...'TERMINAL.COD
000120: 27 20 69 73 20 6C 6F 61 64 65 64 20 66 72 6F 6D ' is loaded from
000130: 20 74 68 65 20 6C 6F 67 67 65 64 20 69 6E 20 64 the logged in d
000140: 69 73 63 0D 0A 09 09 54 68 69 73 20 72 6F 75 74 isc....This rout
000150: 69 6E 65 20 6F 6E 6C 79 20 6E 65 65 64 73 20 74 ine only needs t
000160: 6F 20 62 65 20 75 73 65 64 20 69 66 20 74 68 61 o be used if tha
000170: 74 0D 0A 09 09 66 69 6C 65 20 69 73 20 6E 6F 74 t....file is not
000180: 20 74 68 65 20 6F 6E 65 20 74 6F 20 75 73 65 20 the one to use
000190: 28 65 67 2C 20 74 6F 20 73 77 61 70 20 73 63 72 (eg, to swap scr
0001A0: 65 65 6E 73 2A 29 20 0D 0A 0D 0A 42 45 47 49 4E eens*) ....BEGIN
0001B0: 0D 0A 09 4C 6F 6F 6B 75 70 28 66 6E 2C 66 69 6C ...Lookup(fn,fil
0001C0: 65 6E 61 6D 65 2C 72 65 70 6C 79 29 3B 0D 0A 09 ename,reply);...
0001D0: 49 46 20 72 65 70 6C 79 3C 30 20 54 48 45 4E 20 IF reply<0 THEN
0001E0: 41 63 74 69 76 65 3A 3D 46 41 4C 53 45 0D 0A 09 Active:=FALSE...
0001F0: 45 4C 53 45 0D 0A 09 09 52 65 61 64 42 6C 6F 63 ELSE....ReadBloc
Size : 512 (Real : 512)
000000: 0A 09 47 6F 74 6F 78 79 28 30 2C 45 6E 64 6F 66 ..Gotoxy(0,Endof
000010: 57 69 6E 64 6F 77 29 3B 20 20 20 0D 0A 09 53 63 Window); ...Sc
000020: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 49 6E 73 4C reenControl(InsL
000030: 69 6E 65 29 3B 0D 0A 09 53 63 72 65 65 6E 43 6F ine);...ScreenCo
000040: 6E 74 72 6F 6C 28 44 65 6C 45 6F 6C 29 3B 20 20 ntrol(DelEol);
000050: 20 0D 0A 09 45 4E 44 20 53 63 72 6F 6C 6C 57 69 ...END ScrollWi
000060: 6E 64 6F 77 44 6F 77 6E 3B 0D 0A 0D 0A 28 2A 09 ndowDown;....(*.
000070: 43 75 72 73 6F 72 20 62 6C 69 6E 6B 20 72 6F 75 Cursor blink rou
000080: 74 69 6E 65 20 2D 20 6F 6E 6C 79 20 73 75 70 70 tine - only supp
000090: 6F 72 74 65 64 20 69 6E 20 6D 65 6D 6F 72 79 20 orted in memory
0000A0: 6D 61 70 70 65 64 0D 0A 09 76 65 72 73 69 6F 6E mapped...version
0000B0: 20 6F 66 20 73 63 72 65 65 6E 69 6F 2A 29 0D 0A of screenio*)..
0000C0: 50 52 4F 43 45 44 55 52 45 20 4F 75 74 70 75 74 PROCEDURE Output
0000D0: 54 6F 53 63 72 65 65 6E 28 4F 6E 3A 42 4F 4F 4C ToScreen(On:BOOL
0000E0: 45 41 4E 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 4F EAN);..BEGIN...O
0000F0: 75 74 70 75 74 45 6E 61 62 6C 65 64 3A 3D 4F 6E utputEnabled:=On
000100: 0D 0A 09 45 4E 44 20 4F 75 74 70 75 74 54 6F 53 ...END OutputToS
000110: 63 72 65 65 6E 3B 09 0D 0A 0D 0A 42 45 47 49 4E creen;.....BEGIN
000120: 09 28 2A 49 6E 69 74 69 61 6C 69 73 61 74 69 6F .(*Initialisatio
000130: 6E 20 70 61 72 74 2A 29 0D 0A 09 43 68 61 72 52 n part*)...CharR
000140: 6F 75 74 69 6E 65 3A 3D 57 72 69 74 65 3B 0D 0A outine:=Write;..
000150: 09 43 68 61 72 45 6E 61 62 6C 65 64 3A 3D 54 52 .CharEnabled:=TR
000160: 55 45 3B 09 0D 0A 0D 0A 09 49 6E 47 72 61 70 68 UE;......InGraph
000170: 3A 3D 46 41 4C 53 45 3B 0D 0A 09 4F 75 74 70 75 :=FALSE;...Outpu
000180: 74 45 6E 61 62 6C 65 64 3A 3D 54 52 55 45 3B 0D tEnabled:=TRUE;.
000190: 0A 09 4C 6F 61 64 54 65 72 6D 43 6F 64 65 28 27 ..LoadTermCode('
0001A0: 43 4F 4E 54 52 4F 4C 2E 44 41 54 27 29 3B 0D 0A CONTROL.DAT');..
0001B0: 09 4C 6F 77 78 3A 3D 30 3B 4C 6F 77 79 3A 3D 30 .Lowx:=0;Lowy:=0
0001C0: 3B 0D 0A 09 48 69 67 68 78 3A 3D 39 39 39 3B 48 ;...Highx:=999;H
0001D0: 69 67 68 79 3A 3D 39 39 39 3B 0D 0A 09 53 63 72 ighy:=999;...Scr
0001E0: 65 65 6E 57 69 64 74 68 3A 3D 43 6F 6E 74 72 6F eenWidth:=Contro
0001F0: 6C 2E 53 63 72 65 65 6E 57 69 64 74 68 3B 0D 0A l.ScreenWidth;..
Size : 512 (Real : 512)
000000: 4F 52 44 28 27 41 27 29 2D 31 29 3B 0D 0A 09 09 ORD('A')-1);....
000010: 49 4E 43 28 69 29 3B 0D 0A 09 09 63 6F 6D 6D 61 INC(i);....comma
000020: 6E 64 5B 69 5D 3A 3D 27 3A 27 3B 0D 0A 09 09 49 nd[i]:=':';....I
000030: 4E 43 28 69 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A NC(i);....END;..
000040: 09 57 48 49 4C 45 20 28 6A 3C 3D 38 29 20 41 4E .WHILE (j<=8) AN
000050: 44 20 28 66 63 62 31 2E 66 63 62 66 6E 5B 6A 5D D (fcb1.fcbfn[j]
000060: 3C 3E 27 20 27 29 20 44 4F 0D 0A 09 09 63 6F 6D <>' ') DO....com
000070: 6D 61 6E 64 5B 69 5D 3A 3D 66 63 62 31 2E 66 63 mand[i]:=fcb1.fc
000080: 62 66 6E 5B 6A 5D 3B 0D 0A 09 09 49 4E 43 28 69 bfn[j];....INC(i
000090: 29 3B 0D 0A 09 09 49 4E 43 28 6A 29 3B 0D 0A 09 );....INC(j);...
0000A0: 09 45 4E 44 3B 0D 0A 09 6A 3A 3D 31 3B 0D 0A 09 .END;...j:=1;...
0000B0: 63 6F 6D 6D 61 6E 64 5B 69 5D 3A 3D 27 2E 27 3B command[i]:='.';
0000C0: 0D 0A 09 49 4E 43 28 69 29 3B 0D 0A 09 57 48 49 ...INC(i);...WHI
0000D0: 4C 45 20 28 6A 3C 3D 33 29 20 41 4E 44 20 28 66 LE (j<=3) AND (f
0000E0: 2E 66 63 62 66 74 5B 6A 5D 3C 3E 27 20 27 29 20 .fcbft[j]<>' ')
0000F0: 44 4F 0D 0A 09 09 63 6F 6D 6D 61 6E 64 5B 69 5D DO....command[i]
000100: 3A 3D 66 63 62 31 2E 66 63 62 66 74 5B 6A 5D 3B :=fcb1.fcbft[j];
000110: 0D 0A 09 09 49 4E 43 28 69 29 3B 0D 0A 09 09 49 ....INC(i);....I
000120: 4E 43 28 6A 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0A NC(j);....END;..
000130: 09 6A 3A 3D 30 3B 0D 0A 09 57 48 49 4C 45 20 28 .j:=0;...WHILE (
000140: 6A 3C 3D 48 49 47 48 28 70 72 6F 67 6E 61 6D 65 j<=HIGH(progname
000150: 29 29 20 41 4E 44 20 28 70 72 6F 67 6E 61 6D 65 )) AND (progname
000160: 5B 6A 5D 3C 3E 27 5B 27 29 20 44 4F 20 49 4E 43 [j]<>'[') DO INC
000170: 28 6A 29 20 45 4E 44 3B 0D 0A 09 49 46 20 28 6A (j) END;...IF (j
000180: 3C 48 49 47 48 28 70 72 6F 67 6E 61 6D 65 29 29 <HIGH(progname))
000190: 20 54 48 45 4E 20 0D 0A 09 09 63 6F 6D 6D 61 6E THEN ....comman
0001A0: 64 5B 69 5D 3A 3D 27 5B 27 3B 0D 0A 09 09 49 4E d[i]:='[';....IN
0001B0: 43 28 69 29 3B 0D 0A 09 09 63 6F 6D 6D 61 6E 64 C(i);....command
0001C0: 5B 69 5D 3A 3D 70 72 6F 67 6E 61 6D 65 5B 6A 2B [i]:=progname[j+
0001D0: 31 5D 3B 0D 0A 09 09 49 4E 43 28 69 29 3B 0D 0A 1];....INC(i);..
0001E0: 09 09 45 4E 44 3B 0D 0A 09 63 6F 6D 6D 61 6E 64 ..END;...command
0001F0: 6C 65 6E 3A 3D 69 3B 0D 0A 09 66 2E 66 63 62 66 len:=i;...f.fcbf
Size : 512 (Real : 512)
000000: 09 53 63 72 65 65 6E 44 65 70 74 68 3A 3D 43 6F .ScreenDepth:=Co
000010: 6E 74 72 6F 6C 2E 53 63 72 65 65 6E 44 65 70 74 ntrol.ScreenDept
000020: 68 3B 0D 0A 09 53 63 72 65 65 6E 43 6F 6E 74 72 h;...ScreenContr
000030: 6F 6C 28 43 6C 65 61 72 53 63 72 65 65 6E 29 3B ol(ClearScreen);
000040: 0D 0A 09 45 4E 44 20 53 63 72 65 65 6E 49 4F 2E ...END ScreenIO.
000050: 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000060: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000070: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000080: 20 54 50 41 27 73 2E 20 54 68 65 20 73 61 6D 65 TPA's. The same
000090: 0D 0A 09 74 68 69 6E 67 20 63 61 6E 20 62 65 20 ...thing can be
0000A0: 64 6F 6E 65 20 77 69 74 68 20 6F 74 68 65 72 20 done with other
0000B0: 6D 6F 64 75 6C 65 73 20 69 66 0D 0A 09 79 6F 75 modules if...you
0000C0: 72 20 54 50 41 20 69 73 20 74 69 67 68 74 65 72 r TPA is tighter
0000D0: 20 74 68 61 6E 20 74 68 61 74 20 6F 66 20 6D 79 than that of my
0000E0: 20 74 65 73 74 0D 0A 09 6D 61 63 68 69 6E 65 2E test...machine.
0000F0: 0D 0A 0D 0A 09 57 68 61 74 20 68 61 73 20 62 65 .....What has be
000100: 65 6E 20 64 6F 6E 65 20 69 73 20 74 6F 20 72 65 en done is to re
000110: 70 6C 61 63 65 20 61 20 6C 61 72 67 65 0D 0A 09 place a large...
000120: 73 79 6D 62 6F 6C 20 74 61 62 6C 65 20 28 74 68 symbol table (th
000130: 61 74 20 6F 66 20 53 63 72 65 65 6E 49 4F 29 20 at of ScreenIO)
000140: 77 69 74 68 20 61 20 0D 0A 09 73 6D 61 6C 6C 20 with a ...small
000150: 73 79 6D 62 6F 6C 20 74 61 62 6C 65 20 28 74 68 symbol table (th
000160: 69 73 20 6D 6F 64 75 6C 65 29 2E 20 54 68 69 73 is module). This
000170: 0D 0A 09 72 65 64 75 63 65 73 20 74 68 65 20 73 ...reduces the s
000180: 79 6D 62 6F 6C 20 74 61 62 6C 65 20 73 70 61 63 ymbol table spac
000190: 65 20 75 73 65 64 20 62 79 20 74 68 65 0D 0A 09 e used by the...
0001A0: 63 61 6C 6C 69 6E 67 20 6D 6F 64 75 6C 65 73 2E calling modules.
0001B0: 20 54 68 69 73 20 69 73 20 66 75 72 74 68 65 72 This is further
0001C0: 20 64 69 73 63 75 73 73 65 64 0D 0A 09 69 6E 20 discussed...in
0001D0: 74 68 65 20 6D 61 6E 75 61 6C 2E 0D 0A 2A 29 0D the manual...*).
0001E0: 0A 50 52 4F 43 45 44 55 52 45 20 43 6C 65 61 72 .PROCEDURE Clear
0001F0: 53 63 72 65 65 6E 3B 0D 0A 50 52 4F 43 45 44 55 Screen;..PROCEDU
Size : 512 (Real : 512)
000000: 6E 3A 3D 27 20 20 20 20 20 20 20 20 27 3B 0D 0A n:=' ';..
000010: 09 46 4F 52 20 69 3A 3D 30 20 54 4F 20 6A 2D 31 .FOR i:=0 TO j-1
000020: 20 44 4F 0D 0A 09 09 66 2E 66 63 62 66 6E 5B 69 DO....f.fcbfn[i
000030: 2B 31 5D 3A 3D 70 72 6F 67 6E 61 6D 65 5B 69 5D +1]:=progname[i]
000040: 3B 0D 0A 09 09 45 4E 44 3B 0D 0A 09 66 2E 66 63 ;....END;...f.fc
000050: 62 66 74 3A 3D 27 43 4F 4D 27 3B 0D 0A 09 66 2E bft:='COM';...f.
000060: 66 63 62 64 6E 3A 3D 30 3B 0D 0A 09 66 2E 66 63 fcbdn:=0;...f.fc
000070: 62 65 78 3A 3D 30 3B 0D 0A 09 66 2E 66 63 62 63 bex:=0;...f.fcbc
000080: 72 3A 3D 30 3B 0D 0A 09 4C 6F 61 64 41 6E 64 45 r:=0;...LoadAndE
000090: 78 65 63 75 74 65 28 66 29 3B 0D 0A 09 45 4E 44 xecute(f);...END
0000A0: 20 4D 61 6B 65 43 61 6C 6C 3B 09 0D 0A 45 4E 44 MakeCall;...END
0000B0: 20 53 65 74 55 70 43 61 6C 6C 2E 0D 0A 0D 0A 1A SetUpCall......
0000C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0000F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000100: 6F 75 6E 64 20 77 69 6E 64 6F 77 73 0D 0A 09 09 ound windows....
000110: 09 49 66 20 79 6F 75 72 20 74 65 72 6D 69 6E 61 .If your termina
000120: 6C 20 63 61 6E 20 64 6F 20 74 68 69 73 20 77 69 l can do this wi
000130: 74 68 20 6F 72 64 69 6E 61 72 79 20 63 68 61 72 th ordinary char
000140: 61 63 74 65 72 73 2C 0D 0A 09 09 09 73 65 74 20 acters,.....set
000150: 74 68 65 73 65 20 73 65 71 75 65 6E 63 65 73 20 these sequences
000160: 65 6D 70 74 79 20 61 6E 64 20 70 75 74 20 74 68 empty and put th
000170: 65 20 72 65 71 75 69 72 65 64 20 0D 0A 09 09 09 e required .....
000180: 63 68 61 72 61 63 74 65 72 73 20 69 6E 20 74 68 characters in th
000190: 65 20 73 65 71 75 65 6E 63 65 73 20 62 65 6C 6F e sequences belo
0001A0: 77 0D 0A 0D 0A 09 09 44 65 6C 43 68 61 72 2C 44 w......DelChar,D
0001B0: 65 6C 4C 69 6E 65 2C 49 6E 73 43 68 61 72 2C 49 elLine,InsChar,I
0001C0: 6E 73 4C 69 6E 65 2C 44 65 6C 45 6F 6C 2C 44 65 nsLine,DelEol,De
0001D0: 6C 45 6F 73 2C 43 6C 65 61 72 53 63 72 65 65 6E lEos,ClearScreen
0001E0: 0D 0A 0D 0A 09 09 09 50 65 72 66 6F 72 6D 20 74 .......Perform t
0001F0: 68 65 20 76 61 72 69 6F 75 73 20 65 64 69 74 74 he various editt
Size : 512 (Real : 512)
000000: 44 45 46 49 4E 49 54 49 4F 4E 20 4D 4F 44 55 4C DEFINITION MODUL
000010: 45 20 53 65 74 55 70 43 61 6C 6C 3B 0D 0A 0D 0A E SetUpCall;....
000020: 28 2A 09 53 45 54 20 55 70 20 63 61 6C 6C 20 70 (*.SET Up call p
000030: 61 72 61 6D 65 74 65 72 73 20 66 6F 72 20 61 20 arameters for a
000040: 70 72 6F 67 72 61 6D 20 61 6E 64 20 63 68 61 69 program and chai
000050: 6E 20 74 6F 20 69 74 0D 0A 0D 0A 09 54 68 69 73 n to it.....This
000060: 20 6D 6F 64 75 6C 65 20 69 73 20 75 73 65 64 20 module is used
000070: 62 79 20 74 68 65 20 65 64 69 74 6F 72 20 66 6F by the editor fo
000080: 72 20 63 61 6C 6C 69 6E 67 20 74 68 65 0D 0A 09 r calling the...
000090: 63 6F 6D 70 69 6C 65 72 73 2E 0D 0A 0D 0A 09 54 compilers......T
0000A0: 68 65 20 73 65 63 6F 6E 64 20 70 61 72 61 6D 65 he second parame
0000B0: 74 65 72 20 69 73 20 74 68 65 20 66 63 62 20 66 ter is the fcb f
0000C0: 6F 72 20 74 68 65 20 66 69 6C 65 20 77 68 69 63 or the file whic
0000D0: 68 20 69 73 20 74 6F 20 62 65 20 63 6F 6D 70 69 h is to be compi
0000E0: 6C 65 64 0D 0A 0D 0A 09 49 74 20 77 69 6C 6C 20 led.....It will
0000F0: 62 65 20 73 65 74 20 75 70 20 6F 6E 20 74 68 65 be set up on the
000100: 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 20 61 73 command line as
000110: 20 61 20 70 61 72 61 6D 65 74 65 72 2E 20 49 74 a parameter. It
000120: 20 77 69 6C 6C 20 62 65 20 66 6F 6C 6C 6F 77 65 will be followe
000130: 64 0D 0A 09 62 79 20 2F 45 20 61 73 20 61 6E 20 d...by /E as an
000140: 6F 70 74 69 6F 6E 2E 0D 0A 0D 0A 09 49 66 20 74 option......If t
000150: 68 69 73 20 69 73 20 74 6F 6F 20 63 6C 65 76 65 his is too cleve
000160: 72 20 66 6F 72 20 79 6F 75 72 20 72 65 71 75 69 r for your requi
000170: 72 65 6D 65 6E 74 73 2C 20 79 6F 75 20 63 6F 75 rements, you cou
000180: 6C 64 20 75 73 65 20 74 68 65 20 6D 6F 64 75 6C ld use the modul
000190: 65 0D 0A 09 27 43 68 61 69 6E 27 20 64 69 72 65 e...'Chain' dire
0001A0: 63 74 6C 79 2E 0D 0A 09 2A 29 0D 0A 0D 0A 46 52 ctly....*)....FR
0001B0: 4F 4D 20 09 43 50 4D 20 49 4D 50 4F 52 54 20 66 OM .CPM IMPORT f
0001C0: 63 62 2C 61 6C 66 61 3B 0D 0A 50 52 4F 43 45 44 cb,alfa;..PROCED
0001D0: 55 52 45 20 4D 61 6B 65 43 61 6C 6C 28 70 72 6F URE MakeCall(pro
0001E0: 67 6E 61 6D 65 3A 41 52 52 41 59 20 4F 46 20 43 gname:ARRAY OF C
0001F0: 48 41 52 3B 56 41 52 20 66 3A 66 63 62 29 3B 0D HAR;VAR f:fcb);.
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 0A 45 4E 44 20 53 65 74 55 70 43 61 6C 6C 2E 0D .END SetUpCall..
000010: 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000020: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000030: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000040: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000050: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000060: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000070: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000080: 65 65 6E 29 3B 0D 0A 09 45 4E 44 20 43 6C 65 61 een);...END Clea
000090: 72 53 63 72 65 65 6E 3B 0D 0A 50 52 4F 43 45 44 rScreen;..PROCED
0000A0: 55 52 45 20 47 6F 74 6F 78 79 28 78 2C 79 3A 43 URE Gotoxy(x,y:C
0000B0: 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 49 4E ARDINAL);..BEGIN
0000C0: 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 47 6F 74 6F ...ScreenIO.Goto
0000D0: 78 79 28 78 2C 79 29 3B 0D 0A 09 45 4E 44 20 47 xy(x,y);...END G
0000E0: 6F 74 6F 78 79 3B 0D 0A 50 52 4F 43 45 44 55 52 otoxy;..PROCEDUR
0000F0: 45 20 52 69 6E 67 42 65 6C 6C 3B 0D 0A 42 45 47 E RingBell;..BEG
000100: 49 4E 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 53 63 IN...ScreenIO.Sc
000110: 72 65 65 6E 43 6F 6E 74 72 6F 6C 28 53 63 72 65 reenControl(Scre
000120: 65 6E 49 4F 2E 52 69 6E 67 42 65 6C 6C 29 3B 0D enIO.RingBell);.
000130: 0A 09 45 4E 44 20 52 69 6E 67 42 65 6C 6C 3B 0D ..END RingBell;.
000140: 0A 50 52 4F 43 45 44 55 52 45 20 4F 75 74 70 75 .PROCEDURE Outpu
000150: 74 54 6F 53 63 72 65 65 6E 28 62 3A 42 4F 4F 4C tToScreen(b:BOOL
000160: 45 41 4E 29 3B 0D 0A 42 45 47 49 4E 0D 0A 09 53 EAN);..BEGIN...S
000170: 63 72 65 65 6E 49 4F 2E 4F 75 74 70 75 74 54 6F creenIO.OutputTo
000180: 53 63 72 65 65 6E 28 62 29 3B 0D 0A 09 45 4E 44 Screen(b);...END
000190: 20 4F 75 74 70 75 74 54 6F 53 63 72 65 65 6E 3B OutputToScreen;
0001A0: 0D 0A 50 52 4F 43 45 44 55 52 45 20 20 44 72 61 ..PROCEDURE Dra
0001B0: 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 2C 79 32 wBox(x1,y1,x2,y2
0001C0: 3A 43 41 52 44 49 4E 41 4C 29 3B 0D 0A 42 45 47 :CARDINAL);..BEG
0001D0: 49 4E 0D 0A 09 53 63 72 65 65 6E 49 4F 2E 44 72 IN...ScreenIO.Dr
0001E0: 61 77 42 6F 78 28 78 31 2C 79 31 2C 78 32 2C 79 awBox(x1,y1,x2,y
0001F0: 32 29 3B 0D 0A 09 45 4E 44 20 44 72 61 77 42 6F 2);...END DrawBo
Size : 512 (Real : 512)
000000: 6D 64 20 73 63 72 65 65 6E 69 6F 2E 64 65 66 0D md screenio.def.
000010: 0A 6D 64 20 73 63 72 65 65 6E 64 75 2E 64 65 66 .md screendu.def
000020: 0D 0A 6D 64 20 72 65 73 65 74 64 69 73 2E 64 65 ..md resetdis.de
000030: 66 0D 0A 6D 32 20 73 63 72 65 65 6E 69 6F 2E 6D f..m2 screenio.m
000040: 6F 64 0D 0A 6D 64 20 6D 61 6B 65 65 64 69 74 2E od..md makeedit.
000050: 64 65 66 0D 0A 6D 64 20 65 64 69 74 73 74 61 74 def..md editstat
000060: 2E 64 65 66 0D 0A 6D 32 20 6D 61 6B 65 65 64 69 .def..m2 makeedi
000070: 74 2E 6D 6F 64 0D 0A 6D 64 20 65 64 69 74 63 6F t.mod..md editco
000080: 6E 74 2E 64 65 66 0D 0A 6D 64 20 6D 61 63 72 6F nt.def..md macro
000090: 73 2E 64 65 66 0D 0A 6D 64 20 6D 65 6E 75 2E 64 s.def..md menu.d
0000A0: 65 66 0D 0A 6D 64 20 64 6F 6D 65 6E 75 2E 64 65 ef..md domenu.de
0000B0: 66 0D 0A 6D 64 20 65 64 69 74 64 69 73 70 2E 64 f..md editdisp.d
0000C0: 65 66 0D 0A 6D 64 20 73 65 74 75 70 63 61 6C 2E ef..md setupcal.
0000D0: 64 65 66 0D 0A 6D 64 20 65 64 69 74 63 6F 6E 74 def..md editcont
0000E0: 2E 64 65 66 0D 0A 6D 64 20 6B 65 79 62 6F 61 72 .def..md keyboar
0000F0: 64 2E 64 65 66 0D 0A 6D 32 20 6D 65 6E 75 2E 6D d.def..m2 menu.m
000100: 6F 64 0D 0A 6D 32 20 65 64 69 74 73 74 61 74 2E od..m2 editstat.
000110: 6D 6F 64 0D 0A 6D 32 20 6D 61 63 72 6F 73 2E 6D mod..m2 macros.m
000120: 6F 64 0D 0A 6D 32 20 64 6F 6D 65 6E 75 2E 6D 6F od..m2 domenu.mo
000130: 64 0D 0A 6D 32 20 65 64 69 74 64 69 73 70 2E 6D d..m2 editdisp.m
000140: 6F 64 0D 0A 6D 32 20 65 64 69 74 63 6F 6E 74 2E od..m2 editcont.
000150: 6D 6F 64 0D 0A 6D 32 20 6D 65 2E 6D 6F 64 0D 0A mod..m2 me.mod..
000160: 6D 32 20 73 63 72 65 65 6E 64 75 2E 6D 6F 64 0D m2 screendu.mod.
000170: 0A 6D 32 20 72 65 73 65 74 64 69 73 2E 6D 6F 64 .m2 resetdis.mod
000180: 0D 0A 6D 32 20 6B 65 79 62 6F 61 72 64 2E 6D 6F ..m2 keyboard.mo
000190: 64 0D 0A 6D 32 20 73 65 74 75 70 63 61 6C 2E 6D d..m2 setupcal.m
0001A0: 6F 64 0D 0A 6D 32 20 6D 61 63 72 6F 73 2E 6D 6F od..m2 macros.mo
0001B0: 64 0D 0A 6D 32 20 6D 61 6B 65 65 64 69 74 2E 6D d..m2 makeedit.m
0001C0: 6F 64 0D 0A 6D 32 20 6D 65 2E 6D 6F 64 0D 0A 6D od..m2 me.mod..m
0001D0: 6C 20 6D 65 2F 64 0D 0A 1A 65 2E 6D 6F 64 0D 0A l me/d...e.mod..
0001E0: 6D 32 20 73 63 72 65 65 6E 64 75 2E 6D 6F 64 0D m2 screendu.mod.
0001F0: 0A 6D 32 20 72 65 73 65 74 64 69 73 2E 6D 6F 64 .m2 resetdis.mod
Size : 512 (Real : 512)
000000: 49 4D 50 4C 45 4D 45 4E 54 41 54 49 4F 4E 20 4D IMPLEMENTATION M
000010: 4F 44 55 4C 45 20 53 65 74 55 70 43 61 6C 6C 3B ODULE SetUpCall;
000020: 0D 0A 0D 0A 28 2A 09 53 45 54 20 55 70 20 63 61 ....(*.SET Up ca
000030: 6C 6C 20 70 61 72 61 6D 65 74 65 72 73 20 66 6F ll parameters fo
000040: 72 20 61 20 70 72 6F 67 72 61 6D 20 61 6E 64 20 r a program and
000050: 63 68 61 69 6E 20 74 6F 20 69 74 0D 0A 09 2A 29 chain to it...*)
000060: 0D 0A 46 52 4F 4D 09 43 68 61 69 6E 20 49 4D 50 ..FROM.Chain IMP
000070: 4F 52 54 20 4C 6F 61 64 41 6E 64 45 78 65 63 75 ORT LoadAndExecu
000080: 74 65 3B 0D 0A 46 52 4F 4D 09 53 59 53 54 45 4D te;..FROM.SYSTEM
000090: 20 49 4D 50 4F 52 54 20 42 59 54 45 3B 0D 0A 28 IMPORT BYTE;..(
0000A0: 2A 09 4C 6F 77 20 63 6F 72 65 20 76 61 72 69 61 *.Low core varia
0000B0: 62 6C 65 73 2A 29 0D 0A 56 41 52 09 66 63 62 31 bles*)..VAR.fcb1
0000C0: 5B 35 63 68 5D 3A 66 63 62 3B 0D 0A 09 66 63 62 [5ch]:fcb;...fcb
0000D0: 32 5B 36 63 68 5D 3A 66 63 62 3B 0D 0A 09 63 6F 2[6ch]:fcb;...co
0000E0: 6D 6D 61 6E 64 6C 65 6E 5B 38 30 68 5D 3A 42 59 mmandlen[80h]:BY
0000F0: 54 45 3B 0D 0A 09 63 6F 6D 6D 61 6E 64 5B 38 31 TE;...command[81
000100: 68 5D 3A 41 52 52 41 59 5B 30 2E 2E 38 30 5D 20 h]:ARRAY[0..80]
000110: 4F 46 20 43 48 41 52 3B 0D 0A 09 69 2C 6A 3A 49 OF CHAR;...i,j:I
000120: 4E 54 45 47 45 52 3B 0D 0A 50 52 4F 43 45 44 55 NTEGER;..PROCEDU
000130: 52 45 20 4D 61 6B 65 43 61 6C 6C 28 70 72 6F 67 RE MakeCall(prog
000140: 6E 61 6D 65 3A 41 52 52 41 59 20 4F 46 20 43 48 name:ARRAY OF CH
000150: 41 52 3B 56 41 52 20 66 3A 66 63 62 29 3B 0D 0A AR;VAR f:fcb);..
000160: 42 45 47 49 4E 0D 0A 20 09 66 63 62 31 3A 3D 66 BEGIN.. .fcb1:=f
000170: 3B 0D 0A 09 66 63 62 32 2E 66 63 62 64 6E 3A 3D ;...fcb2.fcbdn:=
000180: 30 3B 0D 0A 09 66 63 62 32 2E 66 63 62 66 6E 5B 0;...fcb2.fcbfn[
000190: 31 5D 3A 3D 27 20 27 3B 0D 0A 09 28 2A 73 65 74 1]:=' ';...(*set
0001A0: 20 75 70 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 up command line
0001B0: 2A 29 0D 0A 0D 0A 09 69 3A 3D 30 3B 0D 0A 09 6A *).....i:=0;...j
0001C0: 3A 3D 31 3B 0D 0A 09 49 46 20 66 63 62 31 2E 66 :=1;...IF fcb1.f
0001D0: 63 62 64 6E 3C 3E 30 20 54 48 45 4E 0D 0A 09 09 cbdn<>0 THEN....
0001E0: 63 6F 6D 6D 61 6E 64 5B 69 5D 3A 3D 43 48 52 28 command[i]:=CHR(
0001F0: 4F 52 44 28 66 63 62 31 2E 66 63 62 64 6E 29 2B ORD(fcb1.fcbdn)+
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 25 00 00 FE FE 35 26 00 33 FE 0A FF 02 00 23 00 %....5&.3.....#.
000010: 00 FE FE 35 24 00 33 FE 02 02 02 00 01 3E 00 05 ...5$.3......>..
000020: FE 01 02 01 00 05 00 00 FF 02 00 0B 00 02 FF 02 ................
000030: 00 01 00 00 05 03 12 02 00 00 00 00 00 00 00 FE ................
000040: 35 2F 00 33 FE 0A FF 02 00 32 00 00 FE 01 03 01 5/.3.....2......
000050: 00 02 00 04 03 01 00 00 19 00 FF FE 33 FE 0A FF ............3...
000060: 02 00 30 00 00 FE FE 35 32 00 35 31 00 33 FE 0A ..0....52.51.3..
000070: FF 02 00 34 00 00 FE 00 03 01 00 0A 00 00 03 01 ...4............
000080: 00 0C 03 01 02 01 00 05 00 00 FF 02 00 0B 00 00 ................
000090: FF 02 00 0B 00 01 00 02 00 05 00 02 08 02 00 01 ................
0000A0: 03 00 01 03 12 02 00 00 00 01 00 00 00 01 00 02 ................
0000B0: 00 05 00 02 FF 02 00 01 05 00 01 01 02 01 00 05 ................
0000C0: 00 02 FF 02 00 01 3E 00 05 00 03 01 00 0C 03 01 ......>.........
0000D0: 02 01 00 05 00 00 FF 02 00 0B 00 00 FF 02 00 0B ................
0000E0: 00 01 00 02 00 05 00 02 08 02 00 01 03 00 01 03 ................
0000F0: 12 02 00 00 00 01 00 00 00 01 00 02 00 05 00 02 ................
000100: FF 02 00 01 05 00 01 09 02 01 00 03 01 02 01 00 ................
000110: 05 00 02 FF 02 00 01 3E 00 05 FE 33 FE 02 0F 02 .......>...3....
000120: 00 01 3C 00 05 FE 03 12 02 00 00 00 01 00 00 00 ..<.............
000130: FE 33 FE FE 08 FF 02 00 00 17 00 05 FF 02 00 00 .3..............
000140: 01 00 02 00 05 00 02 05 02 00 02 06 00 F1 FF FE ................
000150: 35 35 00 33 FE 0A FF 02 00 36 00 00 FE 00 03 01 55.3.....6......
000160: 00 09 00 00 03 01 00 09 00 00 03 01 00 0C 02 01 ................
000170: 0F 02 00 05 00 02 FF 02 00 01 3C 00 05 01 0F 02 ..........<.....
000180: 00 05 00 02 FF 02 00 01 00 00 06 04 03 01 00 00 ................
000190: 19 00 FF 04 03 01 00 00 1F 00 FF FE 33 FE 02 0F ............3...
0001A0: 02 00 01 3C 00 05 FE 00 0F 02 00 00 00 01 0F 02 ...<............
0001B0: 00 05 00 02 FF 02 00 01 3C 00 05 03 12 02 00 00 ........<.......
0001C0: 00 01 00 00 00 FE 33 FE 0A FF 02 00 35 00 00 FE ......3.....5...
0001D0: FE 35 36 00 33 FE 0A FF 02 00 38 00 00 FE 00 03 .56.3.....8.....
0001E0: 01 00 0C 06 01 0F 02 00 05 00 02 FF 02 00 01 3C ...............<
0001F0: 00 05 01 0F 02 00 05 00 02 FF 02 00 01 00 00 06 ................
Size : 512 (Real : 512)
000000: FF 01 0C 01 00 05 00 00 FF 02 00 0B 00 01 00 02 ................
000010: 00 05 00 02 08 02 00 03 00 00 FF 03 12 02 00 00 ................
000020: 00 00 00 00 00 FE 33 FE 0A FF 02 00 23 00 00 FE ......3.....#...
000030: 00 03 01 00 0C 03 01 08 02 00 05 00 00 FF 02 00 ................
000040: 0B 00 01 00 02 00 05 00 02 08 02 00 03 00 00 FF ................
000050: 03 12 02 00 00 00 8D 00 00 00 03 10 02 00 00 00 ................
000060: FF FF 00 00 FE 33 FE 01 02 02 00 05 00 02 02 02 .....3..........
000070: 00 02 04 00 0E FE 03 0A 01 00 00 00 1A 00 00 00 ................
000080: FE 19 2C 03 02 33 FE 0A FF 02 00 1F 00 00 FE FE ..,..3..........
000090: 33 FE 0A FF 02 00 22 00 00 FE FE 35 23 00 33 FE 3....."....5#.3.
0000A0: 02 08 02 00 03 00 00 FF FE 01 08 02 00 05 00 00 ................
0000B0: FF 02 00 0B 00 01 00 02 00 05 00 02 08 02 00 03 ................
0000C0: 00 00 FF 03 12 02 00 00 00 8D 00 00 00 FE 33 FE ..............3.
0000D0: 02 0C 02 00 03 02 00 FF FE 01 0C 01 00 09 00 03 ................
0000E0: 12 02 00 00 00 00 00 00 00 FE 35 22 00 35 21 00 ..........5".5!.
0000F0: 35 20 00 33 FE 01 02 02 00 05 00 02 02 02 00 02 5 .3............
000100: 04 00 0E FE 01 02 01 00 05 00 00 FF 02 00 0B 00 ................
000110: 00 FF 02 00 0B 00 01 00 02 00 05 00 02 08 02 00 ................
000120: 03 00 00 FF 03 12 02 00 00 00 01 00 00 00 01 0C ................
000130: 01 00 05 00 02 FF 02 00 03 02 00 FF FE 33 FE 0A .............3..
000140: FF 02 00 25 00 00 FE 00 03 01 00 0C 07 01 02 01 ...%............
000150: 00 05 00 01 FF 02 00 05 00 02 02 02 00 02 04 00 ................
000160: 0E 03 0A 01 00 00 00 1A 00 00 00 FE 33 FE 02 0C ............3...
000170: 02 00 03 02 00 FF FE 00 0C 01 00 00 00 01 0C 01 ................
000180: 00 05 00 02 FF 02 00 03 02 00 FF 03 12 02 00 00 ................
000190: 00 01 00 00 00 FE 35 25 00 35 24 00 2C 03 01 35 ......5%.5$.,..5
0001A0: 1F 00 2E 1F 00 24 08 0F 35 0F 00 2F 02 00 00 0F .....$..5../....
0001B0: 00 02 06 00 33 FE 02 05 02 00 01 08 00 01 FE 01 ....3...........
0001C0: 05 03 00 05 00 00 FF 02 00 0B 00 01 00 02 00 05 ................
0001D0: 00 02 05 02 00 02 04 00 EE 03 12 02 00 00 00 28 ...............(
0001E0: 00 00 00 FE 33 FE FE 08 FF 02 00 00 0A 00 05 FF ....3...........
0001F0: 02 00 00 02 00 02 00 01 08 00 01 05 FF 02 00 00 ................
Size : 512 (Real : 512)
000000: FE 33 FE 02 FF 02 00 02 08 00 00 FE 01 FF 02 00 .3..............
000010: 08 00 03 03 01 00 00 00 01 00 00 00 FE 33 FE 0A .............3..
000020: FF 02 00 20 00 00 FE FE 35 38 00 35 37 00 33 FE ... ....58.57.3.
000030: FE 08 FF 02 00 00 16 00 05 FF 02 00 00 01 00 02 ................
000040: 00 05 00 02 05 02 00 02 06 00 F1 FF FE 35 34 00 .............54.
000050: 35 33 00 33 FE 0A FF 02 00 2F 00 00 FE FE 35 30 53.3...../....50
000060: 00 35 23 00 33 FE FE 08 FF 02 00 00 17 00 05 FF .5#.3...........
000070: 02 00 00 01 00 02 00 05 00 02 05 02 00 02 06 00 ................
000080: F1 FF FE 33 FE 02 FF 02 00 02 08 00 00 FE 01 FF ...3............
000090: 02 00 08 00 03 03 01 00 00 00 00 00 00 00 FE 33 ...............3
0000A0: FE 0A FF 02 00 20 00 00 FE FE 35 20 00 2E 20 00 ..... ....5 .. .
0000B0: 24 08 10 35 10 00 2F 02 00 00 10 00 00 0C 00 16 $..5../.........
0000C0: 01 0A 00 33 FE FE 08 FF 02 00 06 01 00 05 FF 02 ...3............
0000D0: 00 01 01 04 FF FF 05 00 01 FF 02 00 05 00 02 04 ................
0000E0: 02 00 02 0A 00 01 05 FF 02 00 00 01 12 02 00 05 ................
0000F0: 00 02 00 02 00 02 08 00 01 05 FF 02 00 00 01 12 ................
000100: 02 00 05 00 02 00 02 00 02 06 00 01 05 FF 02 00 ................
000110: 00 00 00 02 00 0B 00 00 00 02 00 0B 00 01 00 02 ................
000120: 00 05 00 02 05 02 00 02 04 00 00 03 12 02 00 00 ................
000130: 00 00 00 00 00 03 12 02 00 00 00 01 00 00 00 FF ................
000140: FE 35 20 00 2E 20 00 24 08 11 35 11 00 2F 02 00 .5 .. .$..5../..
000150: 00 11 00 02 06 00 36 04 01 4D 4F 44 00 33 FE 0A ......6..MOD.3..
000160: FF 02 00 22 00 00 FE 00 03 01 00 0D 03 01 04 03 ..."............
000170: 00 05 00 00 FF 02 00 0B 00 00 00 02 00 0B 00 00 ................
000180: 00 02 00 0B 00 01 00 02 00 05 00 02 05 02 00 02 ................
000190: 04 00 9B 03 12 02 00 00 00 00 00 00 00 03 12 02 ................
0001A0: 00 00 00 01 00 00 00 03 12 02 00 00 00 09 00 00 ................
0001B0: 00 03 0A 03 00 01 00 00 00 00 00 FE 33 FE 02 0F ............3...
0001C0: 02 00 02 06 00 00 FE 03 12 02 00 00 00 01 00 00 ................
0001D0: 00 FE 33 FE 0A FF 02 00 20 00 00 FE FE 33 FE 0A ..3..... ....3..
0001E0: FF 02 00 21 00 00 FE FE 35 22 00 36 04 02 44 45 ...!....5".6..DE
0001F0: 46 00 33 FE 0A FF 02 00 23 00 00 FE 00 03 01 00 F.3.....#.......
Size : 512 (Real : 512)
000000: 02 00 02 00 01 07 00 01 FF FE 33 FE 02 FF 02 00 ..........3.....
000010: 02 06 00 00 FE 01 FF 02 00 08 00 01 02 01 00 05 ................
000020: 00 02 FF 02 00 01 07 00 01 FE 33 FE 0A FF 02 00 ..........3.....
000030: 1F 00 00 FE FE 35 1F 00 2E 1F 00 24 08 0C 35 0C .....5.....$..5.
000040: 00 2F 02 00 00 0C 00 02 06 00 33 FE FE 08 FF 02 ./........3.....
000050: 00 00 16 00 05 FF 02 00 00 01 00 02 00 05 00 02 ................
000060: 05 02 00 02 04 00 FF FF FE 33 FE 02 03 02 00 01 .........3......
000070: 00 00 03 FE 04 03 01 00 00 18 00 FF FE 33 FE FE .............3..
000080: 08 FF 02 00 00 17 00 05 FF 02 00 00 01 00 02 00 ................
000090: 05 00 02 05 02 00 02 04 00 FF FF FE 33 FE 02 FF ............3...
0000A0: 02 00 02 06 00 00 FE 01 FF 02 00 08 00 01 03 01 ................
0000B0: 00 05 00 02 FF 02 00 01 00 00 03 FE 33 FE 0A FF ............3...
0000C0: 02 00 1F 00 00 FE FE 35 1F 00 2E 1F 00 24 08 0D .......5.....$..
0000D0: 35 0D 00 2F 02 00 00 0D 00 02 06 00 33 FE FE 08 5../........3...
0000E0: FF 02 00 00 16 00 05 FF 02 00 00 01 00 02 00 05 ................
0000F0: 00 02 05 02 00 02 04 00 FF FF FE 33 FE 02 03 02 ...........3....
000100: 00 01 00 00 03 FE 04 03 01 00 00 19 00 FF FE 33 ...............3
000110: FE FE 08 FF 02 00 00 17 00 05 FF 02 00 00 01 00 ................
000120: 02 00 05 00 02 05 02 00 02 04 00 FF FF FE 33 FE ..............3.
000130: 02 FF 02 00 02 06 00 00 FE 01 FF 02 00 08 00 01 ................
000140: 03 01 00 05 00 02 FF 02 00 01 00 00 03 FE 33 FE ..............3.
000150: 0A FF 02 00 1F 00 00 FE FE 35 1F 00 2E 1F 00 24 .........5.....$
000160: 1B 06 02 00 01 1C 06 00 00 31 02 00 00 1C 06 02 .........1......
000170: 00 08 1F 1B 05 3F 00 00 35 1F 00 2F 02 00 00 1F .....?..5../....
000180: 00 02 04 00 33 FE 02 FF 02 00 02 04 00 00 FE 01 ....3...........
000190: FF 02 00 08 00 00 03 01 00 0A 00 00 03 01 00 0C ................
0001A0: 03 01 02 01 00 05 00 00 FF 02 00 0B 00 00 FF 02 ................
0001B0: 00 0B 00 01 00 02 00 05 00 02 08 02 00 01 03 00 ................
0001C0: 01 03 12 02 00 00 00 01 00 00 00 01 00 02 00 05 ................
0001D0: 00 02 FF 02 00 01 05 00 01 01 02 01 00 05 00 00 ................
0001E0: FF 02 00 0B 00 02 FF 02 00 01 00 00 05 01 0F 02 ................
0001F0: 00 05 00 02 FF 02 00 01 3C 00 05 00 03 01 00 0C ........<.......
Size : 512 (Real : 512)
000000: 0D 03 01 04 03 00 05 00 00 FF 02 00 0B 00 00 00 ................
000010: 02 00 0B 00 00 00 02 00 0B 00 01 00 02 00 05 00 ................
000020: 02 05 02 00 02 04 00 9B 03 12 02 00 00 00 00 00 ................
000030: 00 00 03 12 02 00 00 00 01 00 00 00 03 12 02 00 ................
000040: 00 00 09 00 00 00 03 0A 03 00 02 00 00 00 00 00 ................
000050: FE 33 FE 02 0F 02 00 02 06 00 00 FE 03 12 02 00 .3..............
000060: 00 00 02 00 00 00 FE 33 FE 0A FF 02 00 20 00 00 .......3..... ..
000070: FE FE 33 FE 0A FF 02 00 21 00 00 FE FE 35 23 00 ..3.....!....5#.
000080: 33 FE 02 0F 02 00 02 06 00 00 FE 03 12 02 00 00 3...............
000090: 00 00 00 00 00 FE 33 FE 0A FF 02 00 20 00 00 FE ......3..... ...
0000A0: FE 35 21 00 35 20 00 2E 20 00 24 08 20 35 20 00 .5!.5 .. .$. 5 .
0000B0: 2F 02 FC FF 20 00 00 08 00 33 FE 02 08 02 00 01 /... ....3......
0000C0: 03 00 01 FE 01 08 02 00 05 00 00 FF 02 00 0B 00 ................
0000D0: 01 00 02 00 05 00 02 05 02 00 02 06 00 D0 03 12 ................
0000E0: 02 00 00 00 26 00 00 00 FE 33 FE 02 08 02 00 02 ....&....3......
0000F0: FC FF FF FE 03 10 02 00 00 00 FF FF 00 00 FE 33 ...............3
000100: FE 02 0F 02 00 02 FE FF FF FE 03 12 02 00 00 00 ................
000110: 00 00 00 00 FE 35 22 00 33 FE 0A FF 02 00 25 00 .....5".3.....%.
000120: 00 FE 00 03 01 00 0C 03 01 08 02 00 05 00 02 FF ................
000130: 02 00 01 03 00 01 03 10 02 00 00 00 FF FF 00 00 ................
000140: FE 33 FE 0A FF 02 00 23 00 00 FE FE 35 25 00 35 .3.....#....5%.5
000150: 24 00 33 FE 02 0F 02 00 02 FE FF FF FE 00 0F 02 $.3.............
000160: 00 00 00 01 0F 02 00 05 00 02 FF 02 00 02 FE FF ................
000170: FF 01 12 02 00 08 00 01 0C 01 00 05 00 00 FF 02 ................
000180: 00 0B 00 01 00 02 00 05 00 02 08 02 00 01 03 00 ................
000190: 01 03 12 02 00 00 00 00 00 00 00 FE 33 FE 02 08 ............3...
0001A0: 02 00 02 FC FF FF FE 01 08 02 00 05 00 02 FF 02 ................
0001B0: 00 01 03 00 01 FE 33 FE 0A FF 02 00 27 00 00 FE ......3.....'...
0001C0: 00 03 01 00 0C 02 01 0F 02 00 05 00 02 FF 02 00 ................
0001D0: 02 FE FF FF 01 0F 02 00 05 00 02 FF 02 00 02 04 ................
0001E0: 00 2A FE 33 FE 02 08 02 00 01 03 00 01 FE 01 08 .*.3............
0001F0: 02 00 05 00 00 FF 02 00 0B 00 01 00 02 00 05 00 ................
Size : 512 (Real : 512)
000000: 03 01 02 01 00 05 00 00 FF 02 00 0B 00 00 FF 02 ................
000010: 00 0B 00 01 00 02 00 05 00 02 08 02 00 01 03 00 ................
000020: 01 03 12 02 00 00 00 01 00 00 00 01 00 02 00 05 ................
000030: 00 02 FF 02 00 01 05 00 01 09 02 01 00 03 01 02 ................
000040: 01 00 05 00 00 FF 02 00 0B 00 02 FF 02 00 01 00 ................
000050: 00 05 01 0F 02 00 05 00 02 FF 02 00 01 3C 00 05 .............<..
000060: FE 33 FE 0A FF 02 00 20 00 00 FE FE 35 20 00 2E .3..... ....5 ..
000070: 20 00 24 08 0B 35 0B 00 2F 02 00 00 0B 00 00 0C .$..5../.......
000080: 00 16 01 0A 00 33 FE 02 0F 02 00 01 00 00 06 FE .....3..........
000090: 01 00 02 00 05 00 02 FF 02 00 02 04 00 03 FE 33 ...............3
0000A0: FE FE 08 FF 02 00 05 01 00 05 FF 02 00 00 01 10 ................
0000B0: 02 00 05 00 02 04 02 00 02 0A 00 81 05 FF 02 00 ................
0000C0: 00 02 10 02 00 01 00 00 05 05 FF 02 00 00 01 00 ................
0000D0: 02 00 05 00 02 FF 02 00 02 04 00 03 FF FE 35 20 ..............5
0000E0: 00 2E 20 00 24 08 0E 35 0E 00 2F 02 00 00 0E 00 .. .$..5../.....
0000F0: 02 08 00 33 FE 0A FF 02 00 22 00 00 FE 00 03 01 ...3....."......
000100: 00 0C 03 01 0F 02 00 05 00 02 FF 02 00 01 00 00 ................
000110: 06 03 12 02 00 00 00 00 00 00 00 FE 33 FE 02 FF ............3...
000120: 02 00 02 08 00 00 FE 01 FF 02 00 08 00 03 03 01 ................
000130: 00 00 00 01 00 00 00 FE 33 FE 0A FF 02 00 20 00 ........3..... .
000140: 00 FE FE 35 22 00 35 21 00 33 FE FE 08 FF 02 00 ...5".5!.3......
000150: 00 16 00 05 FF 02 00 00 01 00 02 00 05 00 02 05 ................
000160: 02 00 02 06 00 F1 FF FE 33 FE 0A FF 02 00 24 00 ........3.....$.
000170: 00 FE 01 03 01 00 05 00 02 FF 02 00 02 04 00 01 ................
000180: FE 33 FE 02 02 02 00 01 3E 00 05 FE 01 02 01 00 .3......>.......
000190: 05 00 00 FF 02 00 0B 00 02 FF 02 00 01 00 00 05 ................
0001A0: 00 0F 02 00 01 00 01 0F 02 00 05 00 02 FF 02 00 ................
0001B0: 01 00 00 06 03 12 02 00 00 00 01 00 00 00 FE 35 ...............5
0001C0: 25 00 33 FE 0A FF 02 00 28 00 00 FE 01 03 01 00 %.3.....(.......
0001D0: 02 00 04 03 01 00 00 18 00 FF FE 33 FE 0A FF 02 ...........3....
0001E0: 00 26 00 00 FE FE 35 28 00 35 27 00 33 FE 0A FF .&....5(.5'.3...
0001F0: 02 00 2A 00 00 FE 00 03 01 00 0A 00 00 03 01 00 ..*.............
Size : 512 (Real : 512)
000000: 02 08 02 00 01 03 00 01 03 12 02 00 00 00 8D 00 ................
000010: 00 00 FE 33 FE 0A FF 02 00 26 00 00 FE FE 35 27 ...3.....&....5'
000020: 00 33 FE 0A FF 02 00 23 00 00 FE FE 35 26 00 33 .3.....#....5&.3
000030: FE 0A FF 02 00 22 00 00 FE FE 35 23 00 33 FE 0A ....."....5#.3..
000040: FF 02 00 29 00 00 FE 00 03 01 00 0C 03 01 08 02 ...)............
000050: 00 05 00 02 FF 02 00 01 03 00 01 03 10 02 00 00 ................
000060: 00 FF FF 00 00 FE 33 FE 02 08 02 00 01 03 00 01 ......3.........
000070: FE 01 08 02 00 05 00 02 FF 02 00 02 FC FF FF FE ................
000080: 33 FE 02 00 02 00 01 05 00 01 FE 01 00 02 00 08 3...............
000090: 00 01 0C 01 00 05 00 00 FF 02 00 0B 00 01 00 02 ................
0000A0: 00 05 00 02 08 02 00 02 FC FF FF 03 12 02 00 00 ................
0000B0: 00 00 00 00 00 FE 33 FE 0A FF 02 00 28 00 00 FE ......3.....(...
0000C0: FE 35 29 00 33 FE 02 00 02 00 01 05 00 01 FE 00 .5).3...........
0000D0: 0F 02 00 01 00 01 0F 02 00 05 00 02 FF 02 00 02 ................
0000E0: 04 00 2A 00 0F 02 00 01 00 01 0F 02 00 05 00 02 ..*.............
0000F0: FF 02 00 02 FE FF FF 01 12 02 00 08 00 01 0C 01 ................
000100: 00 05 00 00 FF 02 00 0B 00 01 00 02 00 05 00 02 ................
000110: 08 02 00 01 03 00 01 03 12 02 00 00 00 00 00 00 ................
000120: 00 FE 35 28 00 33 FE FE 08 FF 02 00 00 17 00 05 ..5(.3..........
000130: FF 02 00 00 01 00 02 00 05 00 02 05 02 00 02 06 ................
000140: 00 D0 FF FE 35 21 00 2E 21 00 24 08 14 35 14 00 ....5!..!.$..5..
000150: 2F 02 FD FF 14 00 00 06 00 33 FE 0A FF 02 00 23 /........3.....#
000160: 00 00 FE 00 03 01 00 0C 03 01 0F 02 00 05 00 02 ................
000170: FF 02 00 01 28 00 00 03 12 02 00 00 00 00 00 00 ....(...........
000180: 00 FE 19 33 FE 0A FF 02 00 21 00 00 FE FE 35 23 ...3.....!....5#
000190: 00 35 22 00 2B 00 24 00 01 00 33 FE 02 0F 02 00 .5".+.$...3.....
0001A0: 02 FE FF FF FE 03 12 02 00 00 00 00 00 00 00 FE ................
0001B0: 33 FE FE 00 0F 02 00 01 00 01 0F 02 00 05 00 02 3...............
0001C0: FF 02 00 01 28 00 00 03 12 02 00 00 00 01 00 00 ....(...........
0001D0: 00 FE 33 FE FE 08 FF 02 00 00 20 00 05 FF 02 00 ..3....... .....
0001E0: 00 01 00 02 00 05 00 02 05 02 00 02 04 00 00 05 ................
0001F0: FF 02 00 00 01 0F 02 00 05 00 00 FF 02 00 0B 00 ................
Size : 512 (Real : 512)
000000: 0C 03 01 02 01 00 05 00 00 FF 02 00 0B 00 00 FF ................
000010: 02 00 0B 00 01 00 02 00 05 00 02 08 02 00 01 03 ................
000020: 00 01 03 12 02 00 00 00 01 00 00 00 01 00 02 00 ................
000030: 05 00 02 FF 02 00 01 05 00 01 01 02 01 00 05 00 ................
000040: 02 FF 02 00 01 3E 00 05 00 03 01 00 0C 03 01 02 .....>..........
000050: 01 00 05 00 00 FF 02 00 0B 00 00 FF 02 00 0B 00 ................
000060: 01 00 02 00 05 00 02 08 02 00 01 03 00 01 03 12 ................
000070: 02 00 00 00 01 00 00 00 01 00 02 00 05 00 02 FF ................
000080: 02 00 01 05 00 01 09 02 01 00 03 01 02 01 00 05 ................
000090: 00 02 FF 02 00 01 3E 00 05 FE 33 FE 02 0F 02 00 ......>...3.....
0000A0: 01 3C 00 05 FE 00 0F 02 00 01 00 01 0F 02 00 05 .<..............
0000B0: 00 02 FF 02 00 01 00 00 06 03 12 02 00 00 00 02 ................
0000C0: 00 00 00 FE 33 FE FE 08 FF 02 00 00 17 00 05 FF ....3...........
0000D0: 02 00 00 01 00 02 00 05 00 02 05 02 00 02 06 00 ................
0000E0: F1 FF FE 35 2B 00 33 FE 0A FF 02 00 2C 00 00 FE ...5+.3.....,...
0000F0: 00 03 01 00 09 00 00 03 01 00 09 00 00 03 01 00 ................
000100: 0C 04 01 0F 02 00 05 00 02 FF 02 00 01 3C 00 05 .............<..
000110: 03 12 02 00 00 00 00 00 00 00 04 03 01 00 00 18 ................
000120: 00 FF 04 03 01 00 00 1F 00 FF FE 33 FE 02 0F 02 ...........3....
000130: 00 01 3C 00 05 FE 00 0F 02 00 01 00 01 0F 02 00 ..<.............
000140: 05 00 02 FF 02 00 01 3C 00 05 03 12 02 00 00 00 .......<........
000150: 01 00 00 00 FE 33 FE 0A FF 02 00 2B 00 00 FE FE .....3.....+....
000160: 35 2C 00 33 FE 0A FF 02 00 2E 00 00 FE 00 03 01 5,.3............
000170: 00 09 00 00 03 01 00 09 00 04 03 01 00 00 18 00 ................
000180: FF 04 03 01 00 00 1F 00 FF 00 03 01 00 0C 03 01 ................
000190: 0F 02 00 05 00 02 FF 02 00 01 3C 00 05 03 12 02 ..........<.....
0001A0: 00 00 00 00 00 00 00 FE 33 FE 02 FF 02 00 02 08 ........3.......
0001B0: 00 00 FE 01 FF 02 00 08 00 03 03 01 00 00 00 01 ................
0001C0: 00 00 00 FE 33 FE 0A FF 02 00 20 00 00 FE FE 35 ....3..... ....5
0001D0: 2E 00 35 2D 00 33 FE FE 08 FF 02 00 00 16 00 05 ..5-.3..........
0001E0: FF 02 00 00 01 00 02 00 05 00 02 05 02 00 02 06 ................
0001F0: 00 F1 FF FE 35 2A 00 35 29 00 33 FE 0A FF 02 00 ....5*.5).3.....
Size : 512 (Real : 512)
000000: 00 00 02 00 0B 00 02 FF 02 00 01 00 00 00 00 00 ................
000010: 02 00 02 00 01 0F 02 00 05 00 02 FF 02 00 02 FE ................
000020: FF FF 03 12 02 00 00 00 04 00 00 00 03 12 02 00 ................
000030: 00 00 02 00 00 00 FF FE 33 FE 02 03 02 00 02 FD ........3.......
000040: FF FF FE 04 03 01 00 00 06 00 05 FF 02 00 00 01 ................
000050: 00 02 00 05 00 02 05 02 00 02 04 00 00 05 FF 02 ................
000060: 00 00 03 03 01 00 00 00 01 00 00 00 05 FF 02 00 ................
000070: 00 01 02 01 00 09 00 00 0F 02 00 00 00 03 12 02 ................
000080: 00 00 00 B0 00 00 00 01 0F 02 00 05 00 02 FF 02 ................
000090: 00 02 FE FF FF FF FE 2B 02 24 00 01 00 35 25 00 .......+.$...5%.
0000A0: 35 21 00 2E 21 00 24 35 21 00 3B 08 20 35 20 00 5!..!.$5!.;. 5 .
0000B0: 2F 02 FC FF 20 00 00 08 00 33 FE 02 08 02 00 01 /... ....3......
0000C0: 03 00 01 FE 01 08 02 00 05 00 00 FF 02 00 0B 00 ................
0000D0: 01 00 02 00 05 00 02 05 02 00 02 06 00 D0 03 12 ................
0000E0: 02 00 00 00 26 00 00 00 FE 33 FE 02 08 02 00 02 ....&....3......
0000F0: FC FF FF FE 03 10 02 00 00 00 FF FF 00 00 FE 33 ...............3
000100: 02 00 00 00 01 00 00 00 01 00 02 00 05 00 02 FF ................
000110: 02 00 01 05 00 01 FE 33 FE 0A FF 02 00 23 00 00 .......3.....#..
000120: FE 00 03 01 00 0C 03 01 02 01 00 05 00 02 FF 02 ................
000130: 00 01 07 00 01 03 0A 01 00 00 00 1A 00 00 00 FE ................
000140: 33 FE 02 03 02 00 01 00 00 04 FE 03 03 01 00 00 3...............
000150: 00 00 00 00 00 FE 33 FE 0A FF 02 00 21 00 00 FE ......3.....!...
000160: FE 35 23 00 35 22 00 33 FE 0A FF 02 00 25 00 00 .5#.5".3.....%..
000170: FE 00 03 01 00 0A 00 00 03 01 00 0A 00 00 03 01 ................
000180: 00 0C 03 01 02 01 00 05 00 02 FF 02 00 01 07 00 ................
000190: 01 03 0A 01 00 00 00 0D 00 00 00 00 03 01 00 0C ................
0001A0: 03 01 02 01 00 05 00 02 FF 02 00 01 07 00 01 03 ................
0001B0: 0A 01 00 00 00 0A 00 00 00 00 03 01 00 0C 03 01 ................
0001C0: 02 01 00 05 00 02 FF 02 00 01 07 00 01 03 0A 01 ................
0001D0: 00 00 00 0C 00 00 00 FE 33 FE 0A FF 02 00 27 00 ........3.....'.
0001E0: 00 FE 01 03 01 00 02 00 04 03 01 00 00 19 00 FF ................
0001F0: FE 33 FE 0A FF 02 00 21 00 00 FE FE 35 27 00 35 .3.....!....5'.5
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 12 02 00 00 00 17 37 00 1F 02 00 00 00 21 08 53 ......7......!.S
000010: 63 72 65 65 6E 49 4F 09 00 00 00 65 00 21 08 54 creenIO....e.!.T
000020: 65 72 6D 69 6E 61 6C 0B 00 00 00 18 00 08 01 35 erminal........5
000030: 02 00 2F 03 00 00 02 00 00 06 00 33 FE 02 00 02 ../........3....
000040: 00 03 04 00 00 FE 00 00 02 00 00 00 01 00 02 00 ................
000050: 05 00 02 FF 02 00 03 04 00 00 01 00 02 00 05 00 ................
000060: 02 FF 02 00 02 F6 FF FF FE 33 FE 0A FF 02 00 05 .........3......
000070: 00 00 FE 00 03 01 00 0C 02 01 00 02 00 05 00 02 ................
000080: FF 02 00 03 04 00 00 03 12 02 00 00 00 00 00 00 ................
000090: 00 FE 33 FE 02 00 02 00 03 04 00 00 FE 01 12 02 ..3.............
0000A0: 00 05 00 02 00 02 00 02 10 00 00 FE 33 FE 0A FF ............3...
0000B0: 02 00 04 00 00 FE FE 35 05 00 33 FE 0A FF 02 00 .......5..3.....
0000C0: 06 00 00 FE 00 03 01 00 0C 04 01 00 02 00 05 00 ................
0000D0: 02 FF 02 00 03 04 00 00 01 12 02 00 05 00 02 00 ................
0000E0: 02 00 02 10 00 00 FE 33 FE 02 00 02 00 03 04 00 .......3........
0000F0: 00 FE 03 12 02 00 00 00 00 00 00 00 FE 35 06 00 .............5..
000100: 35 04 00 33 FE 02 0F 02 00 02 F6 FF FF FE 01 00 5..3............
000110: 02 00 05 00 02 FF 02 00 03 04 00 00 FE 35 03 00 .............5..
000120: 2E 03 00 24 35 03 00 2F 03 FE FF 03 00 00 04 00 ...$5../........
000130: 33 FE 02 00 02 00 03 FE FF FF FE 01 12 02 00 05 3...............
000140: 00 02 00 02 00 02 10 00 00 FE 35 05 00 33 FE FE ..........5..3..
000150: 08 FF 02 00 00 02 00 05 FF 02 00 00 03 12 02 00 ................
000160: 00 00 01 00 00 00 FF FE 33 FE 02 00 02 00 03 FE ........3.......
000170: FF FF FE 00 00 02 00 01 00 01 00 02 00 05 00 02 ................
000180: FF 02 00 03 FE FF FF 03 12 02 00 00 00 01 00 00 ................
000190: 00 FE 33 FE 0A FF 02 00 05 00 00 FE 00 03 01 00 ..3.............
0001A0: 0A 00 00 03 01 00 0C 02 01 00 02 00 05 00 02 FF ................
0001B0: 02 00 03 FE FF FF 03 12 02 00 00 00 00 00 00 00 ................
0001C0: 00 03 01 00 0C 03 09 02 01 00 03 01 02 01 00 05 ................
0001D0: 00 00 FF 02 00 0B 00 00 FF 02 00 00 00 00 FF 02 ................
0001E0: 00 0B 00 01 FF 02 00 05 00 02 04 02 00 02 12 00 ................
0001F0: 00 00 00 02 00 02 00 01 0F 02 00 05 00 02 FF 02 ................
Size : 512 (Real : 512)
000000: 21 08 4D 61 6B 65 45 64 69 74 15 00 00 00 23 00 !.MakeEdit....#.
000010: 21 08 54 65 72 6D 69 6E 61 6C 0B 00 00 00 18 00 !.Terminal......
000020: 1B 00 95 01 00 12 1A 00 00 00 17 1D 00 1F 1A 00 ................
000030: 00 00 18 00 00 00 00 00 00 00 00 11 34 00 B7 ED ............4...
000040: 52 CA 11 89 2A D3 01 26 00 FD 75 0C C3 43 89 21 R...*..&..u..C.!
000050: 01 00 B7 ED 52 CA 26 89 21 02 00 B7 ED 52 C2 43 ....R.&.!....R.C
000060: 89 2A D3 01 11 02 00 B7 ED 52 FD 2A 5A 87 FD 75 .*.......R.*Z..u
000070: 0E DD 6E 04 DD 66 05 E5 CD 7C 7D C3 43 89 E1 22 ..n..f...|}.C.."
000080: 00 05 00 02 00 02 00 02 0A 00 03 FE 03 12 02 00 ................
000090: 00 00 00 00 00 00 FE 33 FE 0A FF 02 00 22 00 00 .......3....."..
0000A0: FE FE 35 23 00 33 FE 0A FF 02 00 24 00 00 FE 00 ..5#.3.....$....
0000B0: 03 01 00 0C 03 01 00 02 00 05 00 02 FF 02 00 02 ................
0000C0: 04 00 83 03 12 02 00 00 00 60 41 00 00 FE 35 25 .........`A...5%
0000D0: 00 33 FE 0A FF 02 00 26 00 00 FE 00 03 01 00 0C .3.....&........
0000E0: 07 01 08 02 00 05 00 00 FF 02 00 0B 00 01 00 02 ................
0000F0: 00 05 00 02 08 02 00 01 03 00 01 03 12 02 00 00 ................
000100: 00 8D 00 00 00 03 10 02 00 00 00 FF FF 00 00 FE ................
000110: 33 FE 02 08 02 00 01 03 00 01 FE 01 08 02 00 05 3...............
000120: 00 00 FF 02 00 0B 00 01 00 02 00 05 00 02 08 02 ................
000130: 00 01 03 00 01 03 12 02 00 00 00 8D 00 00 00 FE ................
000140: 33 FE 0A FF 02 00 25 00 00 FE FE 35 26 00 33 FE 3.....%....5&.3.
000150: 02 00 02 00 01 05 00 01 FE 01 12 02 00 08 00 01 ................
000160: 0C 01 00 05 00 00 FF 02 00 0B 00 01 00 02 00 05 ................
000170: 00 02 08 02 00 01 03 00 01 03 12 02 00 00 00 00 ................
000180: 00 00 00 FE 33 FE 0A FF 02 00 28 00 00 FE 00 03 ....3.....(.....
000190: 01 00 0C 03 01 02 01 00 05 00 00 FF 02 00 0B 00 ................
0001A0: 00 FF 02 00 0B 00 01 00 02 00 05 00 02 08 02 00 ................
0001B0: 01 03 00 01 03 12 02 00 00 00 01 00 00 00 00 00 ................
0001C0: 02 00 01 00 01 00 02 00 05 00 02 FF 02 00 01 05 ................
0001D0: 00 01 03 12 02 00 00 00 01 00 00 00 03 0A 01 00 ................
0001E0: 00 00 1A 00 00 00 FE 33 FE 02 00 02 00 01 05 00 .......3........
0001F0: 01 FE 00 00 02 00 01 00 01 00 02 00 05 00 02 FF ................
Size : 512 (Real : 512)
000000: 00 02 F6 FF FF 03 12 02 00 00 00 0B 00 00 00 03 ................
000010: 00 02 00 00 00 FF FF 00 00 03 12 02 00 00 00 01 ................
000020: 00 00 00 09 02 01 00 03 01 02 01 00 05 00 02 FF ................
000030: 02 00 02 F5 FF FF FE 35 04 00 2E 04 00 24 35 01 .......5.....$5.
000040: 00 2F 02 F5 FF 01 00 03 14 00 33 FE 02 0F 02 00 ./........3.....
000050: 02 FE FF FF FE 00 0F 02 00 00 00 01 0F 02 00 05 ................
000060: 00 02 FF 02 00 02 0C 00 50 00 0F 02 00 02 00 03 ........P.......
000070: 12 02 00 00 00 0C 00 00 00 01 0F 02 00 05 00 02 ................
000080: FF 02 00 02 06 00 66 FE 33 FE 02 0F 02 00 02 FC ......f.3.......
000090: FF FF FE 00 0F 02 00 00 00 00 0F 02 00 00 00 01 ................
0000A0: 0F 02 00 05 00 02 FF 02 00 02 0A 00 03 01 0F 02 ................
0000B0: 00 05 00 02 FF 02 00 02 08 00 01 03 12 02 00 00 ................
0000C0: 00 01 00 00 00 FE 33 FE FE 08 FF 02 00 01 04 00 ......3.........
0000D0: 05 FF 02 00 00 01 0F 02 00 05 00 02 FF 02 00 02 ................
0000E0: 0C 00 50 05 FF 02 00 00 01 0F 02 00 05 00 02 FF ..P.............
0000F0: 02 00 02 FC FF FF 05 FF 02 00 00 01 0F 02 00 05 ................
000100: 00 02 FF 02 00 02 FE FF FF 05 FF 02 00 00 01 0F ................
000110: 02 00 05 00 02 FF 02 00 02 0A 00 03 FF FE 33 FE ..............3.
000120: FE 08 FF 02 00 01 03 00 05 FF 02 00 00 03 0E 01 ................
000130: 00 00 00 00 00 00 00 FF FE 33 FE FE 08 FF 02 00 .........3......
000140: 01 03 00 05 FF 02 00 00 03 0E 01 00 00 00 05 00 ................
000150: 00 00 FF FE 2B 00 05 00 01 00 33 FE 02 0F 02 00 ....+.....3.....
000160: 02 FA FF FF FE 03 12 02 00 00 00 01 00 00 00 FE ................
000170: 33 FE FE 00 0F 02 00 01 00 01 0F 02 00 05 00 02 3...............
000180: FF 02 00 02 06 00 66 03 12 02 00 00 00 01 00 00 ......f.........
000190: 00 FE 33 FE 02 0F 02 00 02 FE FF FF FE 00 0F 02 ..3.............
0001A0: 00 00 00 01 0F 02 00 05 00 02 FF 02 00 02 0C 00 ................
0001B0: 50 00 0F 02 00 02 00 01 0F 02 00 05 00 02 FF 02 P...............
0001C0: 00 02 FA FF FF 03 12 02 00 00 00 0C 00 00 00 FE ................
0001D0: 2B 00 07 00 01 00 33 FE 02 0F 02 00 02 F8 FF FF +.....3.........
0001E0: FE 00 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 ................
0001F0: 00 02 0A 00 03 03 12 02 00 00 00 01 00 00 00 FE ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 21 05 46 69 6C 65 73 0E 00 00 00 4C 00 12 05 00 !.Files....L....
000010: 00 00 17 11 00 1F 05 00 00 00 18 00 00 00 00 00 ................
000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000030: 00 00 00 00 00 00 00 00 00 00 00 11 34 00 B7 ED ............4...
000040: 52 CA 11 89 2A D3 01 26 00 FD 75 0C C3 43 89 21 R...*..&..u..C.!
000050: 01 00 B7 ED 52 CA 26 89 21 02 00 B7 ED 52 C2 43 ....R.&.!....R.C
000060: 89 2A D3 01 11 02 00 B7 ED 52 FD 2A 5A 87 FD 75 .*.......R.*Z..u
000070: 0E DD 6E 04 DD 66 05 E5 CD 7C 7D C3 43 89 E1 22 ..n..f...|}.C.."
000080: 6C 65 3B 42 61 63 6B 77 61 72 64 73 3A 42 4F 4F le;Backwards:BOO
000090: 4C 45 41 4E 29 3A 42 4F 4F 4C 45 41 4E 3B 0D 0A LEAN):BOOLEAN;..
0000A0: 0D 0A 0D 0A 28 2A 09 62 61 63 6B 77 61 72 64 73 ....(*.backwards
0000B0: 20 6E 6F 74 20 79 65 74 20 69 6D 70 6C 65 6D 65 not yet impleme
0000C0: 6E 74 65 64 2A 29 0D 0A 42 45 47 49 4E 0D 0A 09 nted*)..BEGIN...
0000D0: 49 46 20 53 74 72 69 6E 67 4C 65 6E 3D 30 20 54 IF StringLen=0 T
0000E0: 48 45 4E 20 52 45 54 55 52 4E 20 54 52 55 45 20 HEN RETURN TRUE
0000F0: 45 4E 44 3B 0D 0A 09 73 65 74 63 75 72 70 6F 73 END;...setcurpos
000100: 28 66 29 3B 0D 0A 09 49 46 20 42 61 63 6B 77 61 (f);...IF Backwa
000110: 72 64 73 20 54 48 45 4E 0D 0A 09 09 4D 61 74 63 rds THEN....Matc
000120: 68 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 53 74 hChar:=String[St
000130: 72 69 6E 67 4C 65 6E 2D 31 5D 3B 0D 0A 09 09 4C ringLen-1];....L
000140: 4F 4F 50 0D 0A 09 09 09 49 46 20 4E 4F 54 20 42 OOP.....IF NOT B
000150: 61 63 6B 75 70 28 29 20 54 48 45 4E 20 45 58 49 ackup() THEN EXI
000160: 54 20 45 4E 44 3B 0D 0A 09 09 09 49 46 20 28 57 T END;.....IF (W
000170: 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 orking^.Chars[Ch
000180: 61 72 50 6F 73 5D 3D 4D 61 74 63 68 43 68 61 72 arPos]=MatchChar
000190: 29 20 0D 0A 09 09 09 20 20 4F 52 20 28 57 6F 72 ) ..... OR (Wor
0001A0: 6B 69 6E 67 5E 2E 43 68 61 72 73 5B 43 68 61 72 king^.Chars[Char
0001B0: 50 6F 73 5D 3D 43 41 50 28 4D 61 74 63 68 43 68 Pos]=CAP(MatchCh
0001C0: 61 72 29 29 20 54 48 45 4E 0D 0A 09 09 09 09 4D ar)) THEN......M
0001D0: 61 74 63 68 43 68 61 72 4E 6F 3A 3D 53 74 72 69 atchCharNo:=Stri
0001E0: 6E 67 4C 65 6E 2D 32 3B 0D 0A 09 09 09 09 73 61 ngLen-2;......sa
0001F0: 76 65 63 75 72 70 6F 73 28 66 29 3B 0D 0A 09 09 vecurpos(f);....
Size : 512 (Real : 512)
000000: 1B 00 01 00 01 1C 00 00 00 31 01 01 1C 00 01 00 .........1......
000010: 12 08 00 00 00 17 4B 00 1F 08 00 00 00 18 00 00 ......K.........
000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000030: 00 00 00 00 00 00 00 00 00 00 00 11 34 00 B7 ED ............4...
000040: 52 CA 11 89 2A D3 01 26 00 FD 75 0C C3 43 89 21 R...*..&..u..C.!
000050: 01 00 B7 ED 52 CA 26 89 21 02 00 B7 ED 52 C2 43 ....R.&.!....R.C
000060: 89 2A D3 01 11 02 00 B7 ED 52 FD 2A 5A 87 FD 75 .*.......R.*Z..u
000070: 0E DD 6E 04 DD 66 05 E5 CD 7C 7D C3 43 89 E1 22 ..n..f...|}.C.."
000080: 01 02 01 00 05 00 00 FF 02 00 0B 00 00 FF 02 00 ................
000090: 0B 00 01 00 02 00 05 00 02 08 02 00 01 03 00 01 ................
0000A0: 03 12 02 00 00 00 01 00 00 00 01 00 02 00 05 00 ................
0000B0: 02 FF 02 00 01 05 00 01 03 0A 01 00 00 00 1A 00 ................
0000C0: 00 00 FE 33 FE 01 00 02 00 05 00 02 00 02 00 02 ...3............
0000D0: 0C 00 00 FE 04 00 02 00 00 1D 00 FF FE 33 FE FE .............3..
0000E0: 08 FF 02 00 00 17 00 05 FF 02 00 00 01 00 02 00 ................
0000F0: 05 00 02 05 02 00 02 0E 00 FF FF FE 33 FE 01 05 ............3...
000100: 02 00 05 00 02 05 02 00 02 08 00 00 FE 01 05 03 ................
000110: 00 05 00 00 FF 02 00 0B 00 01 00 02 00 05 00 02 ................
000120: 05 02 00 02 0E 00 FF 03 12 02 00 00 00 28 00 00 .............(..
000130: 00 FE 33 FE 01 00 02 00 05 00 02 00 02 00 02 0A ..3.............
000140: 00 03 FE 01 00 02 00 05 00 01 FF 02 00 05 00 02 ................
000150: 00 02 00 02 0C 00 00 FE 33 FE 0A FF 02 00 33 00 ........3.....3.
000160: 00 FE FE 35 34 00 33 FE 01 00 02 00 05 00 02 00 ...54.3.........
000170: 02 00 02 0C 00 00 FE 04 00 02 00 00 1E 00 FF FE ................
000180: 35 33 00 33 FE 00 05 02 00 0B 00 01 00 02 00 05 53.3............
000190: 00 02 05 02 00 02 0E 00 FF 03 12 02 00 00 00 28 ...............(
0001A0: 00 00 00 FE 01 05 03 00 05 00 01 FF 02 00 05 00 ................
0001B0: 02 05 02 00 02 08 00 00 FE 35 1F 00 2E 1F 00 24 .........5.....$
0001C0: 08 0A 35 0A 00 2F 02 00 00 0A 00 00 08 00 2C 03 ..5../........,.
0001D0: 00 33 FE FE 01 FF 02 00 05 00 02 05 02 00 02 06 .3..............
0001E0: 00 01 FE 33 FE 0A FF 02 00 21 00 00 FE 00 03 01 ...3.....!......
0001F0: 00 0C 06 01 0C 01 00 05 00 02 FF 02 00 03 02 00 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 12 02 00 00 00 17 2E 00 1F 02 00 00 00 18 00 00 ................
000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000030: 00 00 00 00 00 00 00 00 00 00 00 11 34 00 B7 ED ............4...
000040: 52 CA 11 89 2A D3 01 26 00 FD 75 0C C3 43 89 21 R...*..&..u..C.!
000050: 01 00 B7 ED 52 CA 26 89 21 02 00 B7 ED 52 C2 43 ....R.&.!....R.C
000060: 89 2A D3 01 11 02 00 B7 ED 52 FD 2A 5A 87 FD 75 .*.......R.*Z..u
000070: 0E DD 6E 04 DD 66 05 E5 CD 7C 7D C3 43 89 E1 22 ..n..f...|}.C.."
000080: 3B 0D 0A 09 46 4F 52 20 69 3A 3D 30 20 54 4F 20 ;...FOR i:=0 TO
000090: 45 72 72 6F 72 43 6F 75 6E 74 2D 31 20 44 4F 0D ErrorCount-1 DO.
0000A0: 0A 09 09 4D 6F 76 65 54 6F 43 68 61 72 28 66 2C ...MoveToChar(f,
0000B0: 45 72 72 6F 72 4C 69 73 74 5B 69 5D 2E 43 68 61 ErrorList[i].Cha
0000C0: 72 50 29 3B 0D 0A 09 09 62 3A 3D 4C 61 62 65 6C rP);....b:=Label
0000D0: 4F 70 28 66 2C 54 52 55 45 2C 43 48 52 28 30 62 Op(f,TRUE,CHR(0b
0000E0: 30 68 2B 69 29 29 3B 0D 0A 09 09 45 4E 44 3B 0D 0h+i));....END;.
0000F0: 0A 09 45 4E 44 20 44 65 66 69 6E 65 45 72 72 6F ..END DefineErro
000100: 72 73 3B 0D 0A 0D 0A 45 4E 44 20 4D 61 6B 65 45 rs;....END MakeE
000110: 64 69 74 73 2E 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A dits............
000120: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000130: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000140: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
000180: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 00 ................
000190: 00 00 00 00 00 00 00 00 00 00 30 00 80 19 00 00 ..........0.....
0001A0: 45 44 49 54 53 54 41 54 44 45 46 20 80 00 00 00 EDITSTATDEF ....
0001B0: 00 00 00 00 00 00 00 00 00 00 32 00 00 02 00 00 ..........2.....
0001C0: 45 44 49 54 53 54 41 54 4D 4F 44 20 80 00 00 00 EDITSTATMOD ....
0001D0: 00 00 00 00 00 00 00 00 00 00 33 00 80 0B 00 00 ..........3.....
0001E0: 46 49 4C 45 4F 50 53 20 44 45 46 20 80 00 00 00 FILEOPS DEF ....
0001F0: 00 00 00 00 00 00 00 00 00 00 35 00 00 02 00 00 ..........5.....
Size : 512 (Real : 512)
000000: 21 08 53 63 72 65 65 6E 49 4F 09 00 00 00 65 00 !.ScreenIO....e.
000010: 21 08 4D 61 6B 65 45 64 69 74 15 00 00 00 23 00 !.MakeEdit....#.
000020: 1B 00 06 00 00 12 06 00 00 00 17 11 00 1F 06 00 ................
000030: 00 00 18 00 00 00 00 00 00 00 00 11 34 00 B7 ED ............4...
000040: 52 CA 11 89 2A D3 01 26 00 FD 75 0C C3 43 89 21 R...*..&..u..C.!
000050: 01 00 B7 ED 52 CA 26 89 21 02 00 B7 ED 52 C2 43 ....R.&.!....R.C
000060: 89 2A D3 01 11 02 00 B7 ED 52 FD 2A 5A 87 FD 75 .*.......R.*Z..u
000070: 0E DD 6E 04 DD 66 05 E5 CD 7C 7D C3 43 89 E1 22 ..n..f...|}.C.."
000080: 44 20 4D 61 74 63 68 65 73 28 29 20 0D 0A 09 09 D Matches() ....
000090: 09 09 20 20 20 41 4E 44 20 28 4D 61 74 63 68 43 .. AND (MatchC
0000A0: 68 61 72 4E 6F 3D 30 29 20 54 48 45 4E 0D 0A 09 harNo=0) THEN...
0000B0: 09 09 09 09 52 45 54 55 52 4E 20 54 52 55 45 3B ....RETURN TRUE;
0000C0: 0D 0A 09 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 .......END;.....
0000D0: 09 73 65 74 63 75 72 70 6F 73 28 66 29 3B 0D 0A .setcurpos(f);..
0000E0: 09 09 09 09 45 4E 44 3B 0D 0A 09 09 09 45 4E 44 ....END;.....END
0000F0: 3B 0D 0A 09 45 4C 53 45 0D 0A 09 09 4D 61 74 63 ;...ELSE....Matc
000100: 68 43 68 61 72 3A 3D 53 74 72 69 6E 67 5B 30 5D hChar:=String[0]
000110: 3B 0D 0A 09 09 4C 4F 4F 50 0D 0A 09 09 09 49 46 ;....LOOP.....IF
000120: 20 4E 4F 54 20 41 64 76 61 6E 63 65 28 29 20 54 NOT Advance() T
000130: 48 45 4E 20 45 58 49 54 20 45 4E 44 3B 0D 0A 09 HEN EXIT END;...
000140: 09 09 49 46 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 ..IF (Working^.C
000150: 68 61 72 73 5B 43 68 61 72 50 6F 73 5D 3D 4D 61 hars[CharPos]=Ma
000160: 74 63 68 43 68 61 72 29 0D 0A 09 09 09 20 20 4F tchChar)..... O
000170: 52 20 28 57 6F 72 6B 69 6E 67 5E 2E 43 68 61 72 R (Working^.Char
000180: 73 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 4D s[CharPos]=CAP(M
000190: 61 74 63 68 43 68 61 72 29 29 20 54 48 45 4E 0D atchChar)) THEN.
0001A0: 0A 09 09 09 09 4D 61 74 63 68 43 68 61 72 4E 6F .....MatchCharNo
0001B0: 3A 3D 31 3B 0D 0A 09 09 09 09 73 61 76 65 63 75 :=1;......savecu
0001C0: 72 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 57 48 rpos(f);......WH
0001D0: 49 4C 45 20 28 4D 61 74 63 68 43 68 61 72 4E 6F ILE (MatchCharNo
0001E0: 3C 53 74 72 69 6E 67 4C 65 6E 29 0D 0A 09 09 09 <StringLen).....
0001F0: 09 20 20 20 20 41 4E 44 20 28 41 64 76 61 6E 63 . AND (Advanc
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 33 FE FE 00 0F 02 00 01 00 01 0F 02 00 05 00 02 3...............
000010: FF 02 00 02 FC FF FF 03 12 02 00 00 00 01 00 00 ................
000020: 00 FE 33 FE FE 08 FF 02 00 01 01 00 05 FF 02 00 ..3.............
000030: 00 01 0F 02 00 05 00 02 FF 02 00 02 FE FF FF 05 ................
000040: FF 02 00 00 01 0F 02 00 05 00 02 FF 02 00 02 F8 ................
000050: FF FF FF FE 33 FE FE 08 FF 02 00 01 03 00 05 FF ....3...........
000060: 02 00 00 03 0E 01 00 00 00 0F 00 00 00 FF FE 2B ...............+
000070: 02 07 00 01 00 35 08 00 2B 02 05 00 01 00 35 06 .....5..+.....5.
000080: 00 33 FE FE 08 FF 02 00 01 03 00 05 FF 02 00 00 .3..............
000090: 03 0E 01 00 00 00 06 00 00 00 FF FE 33 FE FE 08 ............3...
0000A0: FF 02 00 01 03 00 05 FF 02 00 00 03 0E 01 00 00 ................
0000B0: 00 02 00 00 00 FF FE 33 FE 02 0F 02 00 02 F6 FF .......3........
0000C0: FF FE 03 12 02 00 00 00 00 00 00 00 FE 33 FE 02 .............3..
0000D0: 0F 02 00 02 F8 FF FF FE 03 12 02 00 00 00 00 00 ................
0000E0: 00 00 FE 33 FE 02 0F 02 00 02 FE FF FF FE 00 0F ...3............
0000F0: 02 00 00 00 01 0F 02 00 05 00 02 FF 02 00 02 0C ................
000100: 00 50 03 12 02 00 00 00 01 00 00 00 FE 33 FE 02 .P...........3..
000110: 0F 02 00 02 FC FF FF FE 00 0F 02 00 00 00 01 0F ................
000120: 02 00 05 00 02 FF 02 00 02 0A 00 03 03 12 02 00 ................
000130: 00 00 01 00 00 00 FE 2B 00 09 00 01 00 33 FE 02 .......+.....3..
000140: 0F 02 00 02 FA FF FF FE 03 12 02 00 00 00 00 00 ................
000150: 00 00 FE 33 FE FE 01 12 02 00 05 00 02 00 02 00 ...3............
000160: 02 10 00 00 FE 33 FE FE 08 FF 02 00 01 01 00 05 .....3..........
000170: FF 02 00 00 01 0F 02 00 05 00 02 FF 02 00 02 FE ................
000180: FF FF 05 FF 02 00 00 01 0F 02 00 05 00 02 FF 02 ................
000190: 00 02 FC FF FF FF FE 33 FE FE 08 FF 02 00 02 07 .......3........
0001A0: 00 05 FF 02 00 01 01 04 0B 00 05 00 00 FF 02 00 ................
0001B0: 0B 00 01 FF 02 00 05 00 02 04 02 00 02 12 00 00 ................
0001C0: 00 00 02 00 02 00 01 0F 02 00 05 00 02 FF 02 00 ................
0001D0: 02 FA FF FF 03 12 02 00 00 00 0B 00 00 00 05 FF ................
0001E0: 02 00 00 03 12 02 00 00 00 0A 00 00 00 05 FF 02 ................
0001F0: 00 00 03 12 02 00 00 00 0B 00 00 00 FF FE 33 FE ..............3.
Size : 512 (Real : 512)
000000: 21 03 43 50 4D 03 00 00 00 7A 00 12 02 00 00 00 !.CPM....z......
000010: 17 1A 00 1F 02 00 00 00 18 00 00 00 00 00 00 00 ................
000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000030: 00 00 00 00 00 00 00 00 00 00 00 11 34 00 B7 ED ............4...
000040: 52 CA 11 89 2A D3 01 26 00 FD 75 0C C3 43 89 21 R...*..&..u..C.!
000050: 01 00 B7 ED 52 CA 26 89 21 02 00 B7 ED 52 C2 43 ....R.&.!....R.C
000060: 89 2A D3 01 11 02 00 B7 ED 52 FD 2A 5A 87 FD 75 .*.......R.*Z..u
000070: 0E DD 6E 04 DD 66 05 E5 CD 7C 7D C3 43 89 E1 22 ..n..f...|}.C.."
000080: CA FF FE 33 FE 02 FF 02 00 02 08 00 00 FE 01 FF ...3............
000090: 02 00 08 00 03 03 01 00 00 00 00 00 00 00 FE 33 ...............3
0000A0: FE 0A FF 02 00 20 00 00 FE FE 35 20 00 2E 20 00 ..... ....5 .. .
0000B0: 24 08 10 35 10 00 2F 02 00 00 10 00 00 0C 00 16 $..5../.........
0000C0: 01 0A 00 33 FE FE 08 FF 02 00 06 01 00 05 FF 02 ...3............
0000D0: 00 01 01 04 FF FF 05 00 01 FF 02 00 05 00 02 04 ................
0000E0: 02 00 02 0A 00 01 05 FF 02 00 00 01 12 02 00 05 ................
0000F0: 00 02 00 02 00 02 08 00 01 05 FF 02 00 00 01 12 ................
000100: 02 00 05 00 02 00 02 00 02 06 00 01 05 FF 02 00 ................
000110: 00 00 00 02 00 0B 00 00 00 02 00 0B 00 01 00 02 ................
000120: 00 05 00 02 05 02 00 02 04 00 00 03 12 02 00 00 ................
000130: 00 00 00 00 00 03 12 02 00 00 00 01 00 00 00 FF ................
000140: FE 35 20 00 2E 20 00 24 08 11 35 11 00 2F 02 00 .5 .. .$..5../..
000150: 00 11 00 02 06 00 36 04 01 4D 4F 44 00 33 FE 0A ......6..MOD.3..
000160: FF 02 00 22 00 00 FE 00 03 01 00 0D 03 01 04 03 ..."............
000170: 00 05 00 00 FF 02 00 0B 00 00 00 02 00 0B 00 00 ................
000180: 00 02 00 0B 00 01 00 02 00 05 00 02 05 02 00 02 ................
000190: 04 00 74 03 12 02 00 00 00 00 00 00 00 03 12 02 ..t.............
0001A0: 00 00 00 01 00 00 00 03 12 02 00 00 00 09 00 00 ................
0001B0: 00 03 0A 03 00 01 00 00 00 00 00 FE 33 FE 02 0F ............3...
0001C0: 02 00 02 06 00 00 FE 03 12 02 00 00 00 01 00 00 ................
0001D0: 00 FE 33 FE 0A FF 02 00 20 00 00 FE FE 33 FE 0A ..3..... ....3..
0001E0: FF 02 00 21 00 00 FE FE 35 22 00 36 04 02 44 45 ...!....5".6..DE
0001F0: 46 00 33 FE 0A FF 02 00 23 00 00 FE 00 03 01 00 F.3.....#.......
Size : 512 (Real : 512)
000000: 02 0F 02 00 02 F8 FF FF FE 00 0F 02 00 00 00 01 ................
000010: 0F 02 00 05 00 02 FF 02 00 02 F8 FF FF 03 12 02 ................
000020: 00 00 00 01 00 00 00 FE 33 FE 0A FF 02 00 0C 00 ........3.......
000030: 00 FE 00 03 01 00 0C 03 01 0F 02 00 05 00 02 FF ................
000040: 02 00 02 F8 FF FF 01 0F 02 00 05 00 02 FF 02 00 ................
000050: 02 08 00 01 FE 33 FE 02 0F 02 00 02 FE FF FF FE .....3..........
000060: 00 0F 02 00 00 00 00 0F 02 00 00 00 01 0F 02 00 ................
000070: 05 00 02 FF 02 00 02 FE FF FF 03 12 02 00 00 00 ................
000080: 0B 00 00 00 03 12 02 00 00 00 01 00 00 00 FE 33 ...............3
000090: FE 02 0F 02 00 02 FC FF FF FE 00 0F 02 00 00 00 ................
0000A0: 01 0F 02 00 05 00 02 FF 02 00 02 0A 00 03 03 12 ................
0000B0: 02 00 00 00 01 00 00 00 FE 33 FE 02 0F 02 00 02 .........3......
0000C0: F8 FF FF FE 03 12 02 00 00 00 00 00 00 00 FE 33 ...............3
0000D0: FE 0A FF 02 00 0B 00 00 FE FE 35 0C 00 33 FE 02 ..........5..3..
0000E0: 0F 02 00 02 FC FF FF FE 00 0F 02 00 00 00 01 0F ................
0000F0: 02 00 05 00 02 FF 02 00 02 FC FF FF 03 12 02 00 ................
000100: 00 00 01 00 00 00 FE 35 0B 00 2B 02 09 00 01 00 .......5..+.....
000110: 35 0A 00 33 FE 0A FF 02 00 0E 00 00 FE 00 03 01 5..3............
000120: 00 0C 07 01 0F 02 00 05 00 02 FF 02 00 02 FC FF ................
000130: FF 00 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 ................
000140: 00 02 0A 00 03 03 12 02 00 00 00 01 00 00 00 FE ................
000150: 35 0F 00 33 FE 0A FF 02 00 10 00 00 FE 00 03 01 5..3............
000160: 00 0C 02 01 0F 02 00 05 00 02 FF 02 00 02 F8 FF ................
000170: FF 01 0F 02 00 05 00 02 FF 02 00 02 08 00 01 FE ................
000180: 33 FE FE 08 FF 02 00 01 01 00 05 FF 02 00 00 01 3...............
000190: 0F 02 00 05 00 02 FF 02 00 02 FE FF FF 05 FF 02 ................
0001A0: 00 00 01 0F 02 00 05 00 02 FF 02 00 02 FC FF FF ................
0001B0: FF FE 36 0C 01 20 20 20 20 20 20 20 20 20 20 20 ..6..
0001C0: 00 33 FE FE 08 FF 02 00 02 07 00 05 FF 02 00 01 .3..............
0001D0: 03 0A 0B 00 01 00 00 00 00 00 05 FF 02 00 00 03 ................
0001E0: 12 02 00 00 00 0A 00 00 00 05 FF 02 00 00 03 12 ................
0001F0: 02 00 00 00 0B 00 00 00 FF FE 33 FE 02 0F 02 00 ..........3.....
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 02 F8 FF FF FE 00 0F 02 00 00 00 01 0F 02 00 05 ................
000010: 00 02 FF 02 00 02 F8 FF FF 03 12 02 00 00 00 01 ................
000020: 00 00 00 FE 33 FE 02 0F 02 00 02 FC FF FF FE 00 ....3...........
000030: 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 00 02 ................
000040: FC FF FF 03 12 02 00 00 00 01 00 00 00 FE 33 FE ..............3.
000050: 0A FF 02 00 0F 00 00 FE FE 35 10 00 35 0E 00 35 .........5..5..5
000060: 0D 00 35 11 00 33 FE 02 0F 02 00 02 FE FF FF FE ..5..3..........
000070: 00 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 00 ................
000080: 02 0C 00 50 03 12 02 00 00 00 01 00 00 00 FE 33 ...P...........3
000090: FE 02 0F 02 00 02 FC FF FF FE 00 0F 02 00 00 00 ................
0000A0: 00 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 00 ................
0000B0: 02 0A 00 03 03 12 02 00 00 00 01 00 00 00 01 0F ................
0000C0: 02 00 05 00 02 FF 02 00 02 F6 FF FF FE 35 13 00 .............5..
0000D0: 33 FE 0A FF 02 00 14 00 00 FE 00 03 01 00 0C 06 3...............
0000E0: 01 0F 02 00 05 00 02 FF 02 00 02 FC FF FF 00 0F ................
0000F0: 02 00 00 00 00 0F 02 00 00 00 01 0F 02 00 05 00 ................
000100: 02 FF 02 00 02 0A 00 03 01 0F 02 00 05 00 02 FF ................
000110: 02 00 02 08 00 01 03 12 02 00 00 00 01 00 00 00 ................
000120: FE 33 FE 02 0F 02 00 02 FC FF FF FE 00 0F 02 00 .3..............
000130: 01 00 01 0F 02 00 05 00 02 FF 02 00 02 FC FF FF ................
000140: 01 0F 02 00 05 00 02 FF 02 00 02 08 00 01 FE 33 ...............3
000150: FE 02 0F 02 00 02 FE FF FF FE 00 0F 02 00 00 00 ................
000160: 00 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 00 ................
000170: 02 FE FF FF 03 12 02 00 00 00 0B 00 00 00 03 12 ................
000180: 02 00 00 00 01 00 00 00 FE 33 FE 0A FF 02 00 13 .........3......
000190: 00 00 FE FE 35 14 00 33 FE FE 08 FF 02 00 01 01 ....5..3........
0001A0: 00 05 FF 02 00 00 01 0F 02 00 05 00 02 FF 02 00 ................
0001B0: 02 FE FF FF 05 FF 02 00 00 01 0F 02 00 05 00 02 ................
0001C0: FF 02 00 02 FC FF FF FF FE 33 FE FE 08 FF 02 00 .........3......
0001D0: 01 03 00 05 FF 02 00 00 03 0E 01 00 00 00 03 00 ................
0001E0: 00 00 FF FE 33 FE FE 08 FF 02 00 02 07 00 05 FF ....3...........
0001F0: 02 00 01 01 04 0B 00 05 00 00 FF 02 00 0B 00 01 ................
Size : 512 (Real : 512)
000000: 00 00 03 0F 02 00 00 00 60 EA 00 00 FE 33 FE FE ........`....3..
000010: 08 FF 02 00 03 09 00 05 FF 02 00 00 02 00 02 00 ................
000020: 01 00 00 00 05 FF 02 00 00 02 10 02 00 01 2A 00 ..............*.
000030: 00 05 FF 02 00 00 03 12 02 00 00 00 80 00 00 00 ................
000040: 05 FF 02 00 00 02 00 02 00 01 D0 00 00 FF FE 33 ...............3
000050: FE 0A FF 02 00 0F 00 00 FE 00 03 01 00 0C 07 01 ................
000060: 00 02 00 05 00 02 FF 02 00 01 D0 00 00 03 12 02 ................
000070: 00 00 00 80 00 00 00 FE 33 FE 00 0F 02 00 0B 00 ........3.......
000080: 02 00 02 00 01 2A 00 00 03 12 02 00 00 00 00 00 .....*..........
000090: 00 00 FE 03 12 02 00 00 00 01 00 00 00 FE 33 FE ..............3.
0000A0: 02 0F 02 00 01 28 00 00 FE 03 12 02 00 00 00 00 .....(..........
0000B0: 00 00 00 FE 33 FE FE 08 FF 02 00 00 04 00 FF FE ....3...........
0000C0: 33 FE 0A FF 02 00 0E 00 00 FE FE 35 0F 00 33 FE 3..........5..3.
0000D0: FE 08 FF 02 00 00 05 00 FF FE 35 0E 00 33 FE 0A ..........5..3..
0000E0: FF 02 00 11 00 00 FE 00 03 01 00 0C 03 01 0F 02 ................
0000F0: 00 05 00 02 FF 02 00 01 28 00 00 03 0F 02 00 00 ........(.......
000100: 00 60 EA 00 00 FE 33 FE 02 0F 02 00 01 26 00 00 .`....3......&..
000110: FE 00 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 ................
000120: 00 01 26 00 00 03 12 02 00 00 00 01 00 00 00 FE ..&.............
000130: 35 11 00 35 10 00 33 FE 0A FF 02 00 0C 00 00 FE 5..5..3.........
000140: FE 35 0D 00 35 07 00 2E 07 00 24 08 01 35 01 00 .5..5.....$..5..
000150: 2F 02 00 00 01 00 02 2A 00 33 FE 02 05 02 00 01 /......*.3......
000160: AA 00 00 FE 01 05 26 00 05 00 02 FF 02 00 02 04 ......&.........
000170: 00 1C FE 33 FE 0A FF 02 00 09 00 00 FE 01 03 01 ...3............
000180: 00 05 00 02 FF 02 00 01 D2 00 00 FE 33 FE FE 08 ............3...
000190: FF 02 00 00 06 00 FF FE 33 FE 02 0F 02 00 02 2A ........3......*
0001A0: 00 00 FE 01 0F 02 00 05 00 00 FF 02 00 0B 00 00 ................
0001B0: 00 02 00 0B 00 00 FF 02 00 0B 00 02 00 02 00 01 ................
0001C0: 2A 00 00 03 12 02 00 00 00 02 00 00 00 00 00 02 *...............
0001D0: 00 02 00 01 0F 02 00 05 00 02 FF 02 00 01 28 00 ..............(.
0001E0: 00 03 12 02 00 00 00 0D 00 00 00 03 12 02 00 00 ................
0001F0: 00 0B 00 00 00 FE 33 FE 0A FF 02 00 07 00 00 FE ......3.........
Size : 512 (Real : 512)
000000: FF 02 00 05 00 02 04 02 00 02 12 00 00 00 00 02 ................
000010: 00 02 00 01 0F 02 00 05 00 02 FF 02 00 02 F6 FF ................
000020: FF 03 12 02 00 00 00 0B 00 00 00 05 FF 02 00 00 ................
000030: 03 12 02 00 00 00 0A 00 00 00 05 FF 02 00 00 03 ................
000040: 12 02 00 00 00 0B 00 00 00 FF FE 33 FE FE 08 FF ...........3....
000050: 02 00 01 03 00 05 FF 02 00 00 03 0E 01 00 00 00 ................
000060: 02 00 00 00 FF FE 33 FE FE 08 FF 02 00 01 01 00 ......3.........
000070: 05 FF 02 00 00 01 0F 02 00 05 00 02 FF 02 00 02 ................
000080: FE FF FF 05 FF 02 00 00 01 0F 02 00 05 00 02 FF ................
000090: 02 00 02 FC FF FF FF FE 35 15 00 33 FE FE 08 FF ........5..3....
0000A0: 02 00 02 03 00 05 FF 02 00 00 02 00 02 00 02 F5 ................
0000B0: FF FF FF FE 33 FE 0A FF 02 00 15 00 00 FE 00 03 ....3...........
0000C0: 01 00 0C 07 01 02 01 00 05 00 02 FF 02 00 02 F5 ................
0000D0: FF FF 03 0A 01 00 00 00 00 00 00 00 FE 33 FE FE .............3..
0000E0: 08 FF 02 00 01 01 00 05 FF 02 00 00 01 0F 02 00 ................
0000F0: 05 00 02 FF 02 00 02 FE FF FF 05 FF 02 00 00 01 ................
000100: 0F 02 00 05 00 02 FF 02 00 02 FC FF FF FF FE 33 ...............3
000110: FE FE 08 FF 02 00 01 03 00 05 FF 02 00 00 03 0E ................
000120: 01 00 00 00 02 00 00 00 FF FE 33 FE FE 08 FF 02 ..........3.....
000130: 00 02 07 00 05 FF 02 00 01 01 04 0B 00 05 00 00 ................
000140: FF 02 00 0B 00 01 FF 02 00 05 00 02 04 02 00 02 ................
000150: 12 00 00 00 00 02 00 02 00 01 0F 02 00 05 00 02 ................
000160: FF 02 00 02 F6 FF FF 03 12 02 00 00 00 0B 00 00 ................
000170: 00 05 FF 02 00 00 03 12 02 00 00 00 0A 00 00 00 ................
000180: 05 FF 02 00 00 03 12 02 00 00 00 0B 00 00 00 FF ................
000190: FE 2A 33 FE FE 01 00 02 00 08 00 09 02 01 00 03 .*3.............
0001A0: 01 02 01 00 05 00 02 FF 02 00 02 F5 FF FF FE 2D ...............-
0001B0: 17 00 00 1B 00 01 20 00 33 FE 02 0F 02 00 02 14 ...... .3.......
0001C0: 00 00 FE 03 12 02 00 00 00 00 00 00 00 FE 33 FE ..............3.
0001D0: 0A FF 02 00 04 00 00 FE FE 33 FE 0A FF 02 00 16 .........3......
0001E0: 00 00 FE FE 35 17 00 2D 18 00 01 0D 00 33 FE 02 ....5..-.....3..
0001F0: 0F 02 00 02 14 00 00 FE 00 0F 02 00 00 00 01 0F ................
Size : 512 (Real : 512)
000000: FE 33 FE 0A FF 02 00 08 00 00 FE FE 35 09 00 33 .3..........5..3
000010: FE 02 0F 02 00 02 2A 00 00 FE 03 12 02 00 00 00 ......*.........
000020: 00 00 00 00 FE 33 FE 0A FF 02 00 07 00 00 FE FE .....3..........
000030: 35 08 00 35 07 00 2E 07 00 24 08 02 35 02 00 2F 5..5.....$..5../
000040: 02 00 00 02 00 00 2C 00 33 FE 02 05 02 00 01 AA ......,.3.......
000050: 00 00 FE 01 05 26 00 05 00 02 FF 02 00 02 06 00 .....&..........
000060: 1E FE 33 FE 0A FF 02 00 09 00 00 FE 01 03 01 00 ..3.............
000070: 05 00 02 FF 02 00 01 D2 00 00 FE 33 FE FE 08 FF ...........3....
000080: 02 00 00 06 00 FF FE 33 FE 00 0F 02 00 0B 00 00 .......3........
000090: 00 02 00 0B 00 00 FF 02 00 0B 00 02 00 02 00 01 ................
0000A0: 2A 00 00 03 12 02 00 00 00 02 00 00 00 00 00 02 *...............
0000B0: 00 02 00 01 0F 02 00 05 00 02 FF 02 00 01 28 00 ..............(.
0000C0: 00 03 12 02 00 00 00 0D 00 00 00 03 12 02 00 00 ................
0000D0: 00 0B 00 00 00 FE 01 0F 02 00 05 00 02 FF 02 00 ................
0000E0: 02 04 00 2A FE 33 FE FE 08 FF 02 00 00 03 00 FF ...*.3..........
0000F0: FE 35 09 00 35 08 00 35 07 00 2E 07 00 24 22 33 .5..5..5.....$"3
000100: FE 02 03 02 00 01 D2 00 00 FE 03 03 01 00 00 00 ................
000110: 01 00 00 00 FE 36 0E 02 45 44 49 54 53 54 41 54 .....6..EDITSTAT
000120: 2E 44 41 54 20 00 33 FE FE 08 FF 02 00 03 02 00 .DAT .3.........
000130: 05 FF 02 00 00 02 00 02 00 01 00 00 00 05 FF 02 ................
000140: 00 01 03 0A 0D 00 02 00 00 00 00 00 05 FF 02 00 ................
000150: 00 03 12 02 00 00 00 0C 00 00 00 05 FF 02 00 00 ................
000160: 03 12 02 00 00 00 0D 00 00 00 05 FF 02 00 00 02 ................
000170: 00 02 00 01 D0 00 00 FF FE 33 FE 0A FF 02 00 09 .........3......
000180: 00 00 FE 00 03 01 00 0C 07 01 00 02 00 05 00 02 ................
000190: FF 02 00 01 D0 00 00 03 12 02 00 00 00 00 00 00 ................
0001A0: 00 FE 36 0D 03 45 44 49 54 53 54 41 54 2E 44 41 ..6..EDITSTAT.DA
0001B0: 54 00 33 FE FE 08 FF 02 00 03 03 00 05 FF 02 00 T.3.............
0001C0: 00 02 00 02 00 01 00 00 00 05 FF 02 00 01 03 0A ................
0001D0: 0C 00 03 00 00 00 00 00 05 FF 02 00 00 03 12 02 ................
0001E0: 00 00 00 0B 00 00 00 05 FF 02 00 00 03 12 02 00 ................
0001F0: 00 00 0C 00 00 00 05 FF 02 00 00 02 00 02 00 01 ................
Size : 512 (Real : 512)
000000: 02 00 05 00 02 FF 02 00 02 F6 FF FF 03 12 02 00 ................
000010: 00 00 01 00 00 00 FE 33 FE 0A FF 02 00 04 00 00 .......3........
000020: FE FE 33 FE 0A FF 02 00 16 00 00 FE FE 35 18 00 ..3..........5..
000030: 2D 19 00 00 13 00 01 08 00 33 FE FE 08 FF 02 00 -........3......
000040: 00 02 00 05 FF 02 00 00 01 00 02 00 00 00 01 0F ................
000050: 02 00 05 00 02 FF 02 00 02 08 00 01 FF FE 33 FE ..............3.
000060: 0A FF 02 00 16 00 00 FE FE 35 19 00 2D 1A 00 01 .........5..-...
000070: 05 00 33 FE FE 08 FF 02 00 00 02 00 05 FF 02 00 ..3.............
000080: 00 03 00 02 00 00 00 FF FF 00 00 FF FE 33 FE 0A .............3..
000090: FF 02 00 16 00 00 FE FE 35 1A 00 2D 1B 00 01 04 ........5..-....
0000A0: 00 33 FE FE 08 FF 02 00 00 02 00 05 FF 02 00 00 .3..............
0000B0: 01 0F 02 00 05 00 02 FF 02 00 02 08 00 01 FF FE ................
0000C0: 33 FE 0A FF 02 00 16 00 00 FE FE 35 1B 00 2D 1C 3..........5..-.
0000D0: 00 00 18 00 01 0A 00 33 FE FE 08 FF 02 00 00 02 .......3........
0000E0: 00 05 FF 02 00 00 03 12 02 00 00 00 01 00 00 00 ................
0000F0: FF FE 33 FE 0A FF 02 00 16 00 00 FE FE 35 1C 00 ..3..........5..
000100: 2D 1D 00 02 41 00 01 5A 00 33 FE FE 08 FF 02 00 -...A..Z.3......
000110: 00 03 00 FF FE 33 FE 0A FF 02 00 16 00 00 FE FE .....3..........
000120: 35 1D 00 33 FE FE 08 FF 02 00 01 03 00 05 FF 02 5..3............
000130: 00 00 03 0E 01 00 00 00 17 00 00 00 FF FE 35 16 ..............5.
000140: 00 33 FE 0A FF 02 00 11 00 00 FE FE 35 12 00 35 .3..........5..5
000150: 04 00 2E 02 00 24 35 02 00 3B 00 0F 02 00 00 00 .....$5..;......
000160: 00 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 00 ................
000170: 02 FE FF FF 03 12 02 00 00 00 0B 00 00 00 03 12 ................
000180: 73 5B 43 68 61 72 50 6F 73 5D 3D 43 41 50 28 4D s[CharPos]=CAP(M
000190: 61 74 63 68 43 68 61 72 29 29 20 54 48 45 4E 0D atchChar)) THEN.
0001A0: 0A 09 09 09 09 4D 61 74 63 68 43 68 61 72 4E 6F .....MatchCharNo
0001B0: 3A 3D 31 3B 0D 0A 09 09 09 09 73 61 76 65 63 75 :=1;......savecu
0001C0: 72 70 6F 73 28 66 29 3B 0D 0A 09 09 09 09 57 48 rpos(f);......WH
0001D0: 49 4C 45 20 28 4D 61 74 63 68 43 68 61 72 4E 6F ILE (MatchCharNo
0001E0: 3C 53 74 72 69 6E 67 4C 65 6E 29 0D 0A 09 09 09 <StringLen).....
0001F0: 09 20 20 20 20 41 4E 44 20 28 41 64 76 61 6E 63 . AND (Advanc
Size : 512 (Real : 512)
000000: D0 00 00 FF FE 33 FE 0A FF 02 00 0B 00 00 FE 00 .....3..........
000010: 03 01 00 0C 07 01 00 02 00 05 00 02 FF 02 00 01 ................
000020: D0 00 00 03 12 02 00 00 00 00 00 00 00 FE 33 FE ..............3.
000030: FE 08 FF 02 00 04 01 00 05 FF 02 00 00 03 12 02 ................
000040: 00 00 00 00 00 00 00 05 FF 02 00 00 00 0F 02 00 ................
000050: 01 00 01 0F 02 00 05 00 02 FF 02 00 FC 00 00 00 ................
000060: 03 12 02 00 00 00 01 00 00 00 FF FE 36 1C 04 20 ............6..
000070: 43 6F 75 6C 64 20 6E 6F 74 20 6F 70 65 6E 20 73 Could not open s
000080: 74 61 74 75 73 20 66 69 6C 65 00 33 FE FE 08 FF tatus file.3....
000090: 02 00 06 07 00 05 FF 02 00 01 03 0A 1B 00 04 00 ................
0000A0: 00 00 00 00 05 FF 02 00 00 03 12 02 00 00 00 1A ................
0000B0: 00 00 00 05 FF 02 00 00 03 12 02 00 00 00 1B 00 ................
0000C0: 00 00 FF FE 33 FE 02 03 02 00 01 D2 00 00 FE 03 ....3...........
0000D0: 03 01 00 00 00 00 00 00 00 FE 35 0B 00 35 0A 00 ..........5..5..
0000E0: 35 09 00 35 08 00 33 FE 02 0F 02 00 01 26 00 00 5..5..3......&..
0000F0: FE 03 0F 02 00 00 00 60 EA 00 00 FE 23 35 07 00 .......`....#5..
000100: 3B 60 EA 00 00 FE 33 FE 02 0F 02 00 01 26 00 00 ;`....3......&..
000110: FE 00 0F 02 00 00 00 01 0F 02 00 05 00 02 FF 02 ................
000120: 00 01 26 00 00 03 12 02 00 00 00 01 00 00 00 FE ..&.............
000130: 35 11 00 35 10 00 33 FE 0A FF 02 00 0C 00 00 FE 5..5..3.........
000140: FE 35 0D 00 35 07 00 2E 07 00 24 08 01 35 01 00 .5..5.....$..5..
000150: 2F 02 00 00 01 00 02 2A 00 33 FE 02 05 02 00 01 /......*.3......
000160: AA 00 00 FE 01 05 26 00 05 00 02 FF 02 00 02 04 ......&.........
000170: 00 1C FE 33 FE 0A FF 02 00 09 00 00 FE 01 03 01 ...3............
000180: 74 29 20 0D 0A 09 45 4C 53 49 46 20 62 79 3E 48 t) ...ELSIF by>H
000190: 49 47 48 28 54 65 78 74 29 20 54 48 45 4E 20 62 IGH(Text) THEN b
0001A0: 79 3A 3D 30 20 45 4E 44 3B 0D 0A 09 4F 70 74 69 y:=0 END;...Opti
0001B0: 6F 6E 4E 6F 3A 3D 62 79 0D 0A 09 45 4E 44 20 43 onNo:=by...END C
0001C0: 68 61 6E 67 65 4F 70 74 69 6F 6E 3B 0D 0A 50 52 hangeOption;..PR
0001D0: 4F 43 45 44 55 52 45 20 43 68 61 6E 67 65 50 6F OCEDURE ChangePo
0001E0: 73 3B 0D 0A 0D 0A 28 2A 09 43 68 61 6E 67 65 20 s;....(*.Change
0001F0: 70 6F 73 69 74 69 6F 6E 20 75 73 69 6E 67 20 66 position using f
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 6D 64 20 61 3A 73 63 72 65 65 6E 64 75 2E 64 65 md a:screendu.de
000010: 66 0D 0A 6D 64 20 61 3A 72 65 73 65 74 64 69 73 f..md a:resetdis
000020: 2E 64 65 66 0D 0A 6D 64 20 61 3A 6D 61 6B 65 65 .def..md a:makee
000030: 64 69 74 2E 64 65 66 0D 0A 6D 64 20 61 3A 65 64 dit.def..md a:ed
000040: 69 74 73 74 61 74 2E 64 65 66 0D 0A 6D 32 20 61 itstat.def..m2 a
000050: 3A 6D 61 6B 65 65 64 69 74 2E 6D 6F 64 0D 0A 6D :makeedit.mod..m
000060: 64 20 61 3A 65 64 69 74 63 6F 6E 74 2E 64 65 66 d a:editcont.def
000070: 0D 0A 6D 64 20 61 3A 6D 61 63 72 6F 73 2E 64 65 ..md a:macros.de
000080: 66 0D 0A 6D 64 20 61 3A 6D 65 6E 75 2E 64 65 66 f..md a:menu.def
000090: 0D 0A 6D 64 20 61 3A 64 6F 6D 65 6E 75 2E 64 65 ..md a:domenu.de
0000A0: 66 0D 0A 6D 64 20 61 3A 65 64 69 74 64 69 73 70 f..md a:editdisp
0000B0: 2E 64 65 66 0D 0A 6D 64 20 61 3A 73 65 74 75 70 .def..md a:setup
0000C0: 63 61 6C 2E 64 65 66 0D 0A 6D 64 20 61 3A 65 64 cal.def..md a:ed
0000D0: 69 74 63 6F 6E 74 2E 64 65 66 0D 0A 6D 64 20 61 itcont.def..md a
0000E0: 3A 6B 65 79 62 6F 61 72 64 2E 64 65 66 0D 0A 6D :keyboard.def..m
0000F0: 32 20 61 3A 6D 65 6E 75 2E 6D 6F 64 0D 0A 6D 32 2 a:menu.mod..m2
000100: 20 61 3A 65 64 69 74 73 74 61 74 2E 6D 6F 64 0D a:editstat.mod.
000110: 0A 6D 32 20 61 3A 6D 61 63 72 6F 73 2E 6D 6F 64 .m2 a:macros.mod
000120: 0D 0A 6D 32 20 61 3A 64 6F 6D 65 6E 75 2E 6D 6F ..m2 a:domenu.mo
000130: 64 0D 0A 6D 32 20 61 3A 65 64 69 74 64 69 73 70 d..m2 a:editdisp
000140: 2E 6D 6F 64 0D 0A 6D 32 20 61 3A 65 64 69 74 63 .mod..m2 a:editc
000150: 6F 6E 74 2E 6D 6F 64 0D 0A 6D 32 20 61 3A 6D 65 ont.mod..m2 a:me
000160: 2E 6D 6F 64 0D 0A 6D 32 20 61 3A 73 63 72 65 65 .mod..m2 a:scree
000170: 6E 64 75 2E 6D 6F 64 0D 0A 6D 32 20 61 3A 72 65 ndu.mod..m2 a:re
000180: 73 65 74 64 69 73 2E 6D 6F 64 0D 0A 6D 32 20 61 setdis.mod..m2 a
000190: 3A 6B 65 79 62 6F 61 72 64 2E 6D 6F 64 0D 0A 6D :keyboard.mod..m
0001A0: 32 20 61 3A 73 65 74 75 70 63 61 6C 2E 6D 6F 64 2 a:setupcal.mod
0001B0: 0D 0A 6D 32 20 61 3A 6D 61 63 72 6F 73 2E 6D 6F ..m2 a:macros.mo
0001C0: 64 0D 0A 6D 32 20 61 3A 6D 61 6B 65 65 64 69 74 d..m2 a:makeedit
0001D0: 2E 6D 6F 64 0D 0A 6D 32 20 61 3A 6D 65 2E 6D 6F .mod..m2 a:me.mo
0001E0: 64 0D 0A 1A 0D 0A 6D 32 20 61 3A 73 63 72 65 65 d.....m2 a:scree
0001F0: 6E 64 75 2E 6D 6F 64 0D 0A 6D 32 20 61 3A 72 65 ndu.mod..m2 a:re
Size : 512 (Real : 512)
000000: 02 00 07 00 00 FE FE 35 08 00 33 FE 0A FF 02 00 .......5..3.....
000010: 0A 00 00 FE 00 03 01 00 0C 06 01 0F 02 00 05 00 ................
000020: 02 FF 02 00 01 28 00 00 01 0F 02 00 05 00 00 FF .....(..........
000030: 02 00 0B 00 02 00 02 00 01 2A 00 00 03 12 02 00 .........*......
000040: 00 00 00 00 00 00 FE 33 FE 0A FF 02 00 0C 00 00 .......3........
000050: FE 00 03 01 00 0C 02 01 0F 02 00 05 00 00 FF 02 ................
000060: 00 0B 00 02 00 02 00 01 2A 00 00 03 12 02 00 00 ........*.......
000070: 00 00 00 00 00 03 12 02 00 00 00 08 00 00 00 FE ................
000080: 33 FE 00 0F 02 00 0B 00 02 00 02 00 01 2A 00 00 3............*..
000090: 03 12 02 00 00 00 00 00 00 00 FE 00 0F 02 00 00 ................
0000A0: 00 01 0F 02 00 05 00 00 FF 02 00 0B 00 02 00 02 ................
0000B0: 00 01 2A 00 00 03 12 02 00 00 00 00 00 00 00 03 ..*.............
0000C0: 12 02 00 00 00 01 00 00 00 FE 33 FE FE 08 FF 02 ..........3.....
0000D0: 00 00 04 00 FF FE 33 FE 0A FF 02 00 0B 00 00 FE ......3.........
0000E0: FE 35 0C 00 33 FE 02 0F 02 00 01 28 00 00 FE 03 .5..3......(....
0000F0: 0F 02 00 00 00 60 EA 00 00 FE 35 0B 00 35 0A 00 .....`....5..5..
000100: 35 09 00 35 06 00 2E 06 00 24 08 06 35 06 00 2F 5..5.....$..5../
000110: 02 00 00 06 00 00 04 00 33 FE 0A FF 02 00 09 00 ........3.......
000120: 00 FE 00 03 01 00 0C 02 01 0F 02 00 05 00 02 FF ................
000130: 02 00 01 26 00 00 03 0F 02 00 00 00 60 EA 00 00 ...&........`...
000140: FE 33 FE FE 08 FF 02 00 00 05 00 FF FE 33 FE 0A .3...........3..
000150: FF 02 00 08 00 00 FE FE 35 09 00 33 FE 02 0F 02 ........5..3....
000160: 00 01 28 00 00 FE 03 0F 02 00 00 00 60 EA 00 00 ..(.........`...
000170: FE 35 08 00 33 FE 0A FF 02 00 0B 00 00 FE 00 03 .5..3...........
000180: 01 00 0C 03 01 0F 02 00 05 00 02 FF 02 00 01 28 ...............(
000190: 00 00 03 0F 02 00 00 00 60 EA 00 00 FE 33 FE FE ........`....3..
0001A0: 08 FF 02 00 03 0D 00 05 FF 02 00 00 02 00 02 00 ................
0001B0: 01 00 00 00 05 FF 02 00 00 03 12 02 00 00 00 00 ................
0001C0: 00 00 00 FF FE 33 FE 02 0F 02 00 01 26 00 00 FE .....3......&...
0001D0: 03 12 02 00 00 00 00 00 00 00 FE 35 0B 00 35 0A ...........5..5.
0001E0: 00 35 0C 00 33 FE 0A FF 02 00 0D 00 00 FE 00 03 .5..3...........
0001F0: 01 00 0C 03 01 0F 02 00 05 00 02 FF 02 00 01 28 ...............(
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
   
Tous droits réservés. Reproduction sans autorisation interdite. © Kukulcan