浏览代码

rebuilt lin32 release

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7644 8c9fc860-2736-0410-a75d-ab315db34111
felixf 7 年之前
父节点
当前提交
6733a89b09
共有 100 个文件被更改,包括 83 次插入45 次删除
  1. 二进制
      lin32/bin/AnimationCodec.GofU
  2. 二进制
      lin32/bin/Bimso.GofU
  3. 二进制
      lin32/bin/BootConsole.GofU
  4. 1 1
      lin32/bin/BootConsole.SymU
  5. 二进制
      lin32/bin/BootShell.GofU
  6. 二进制
      lin32/bin/CATServer.GofU
  7. 二进制
      lin32/bin/Compiler.GofU
  8. 1 0
      lin32/bin/Compiler.SymU
  9. 二进制
      lin32/bin/Configuration.GofU
  10. 二进制
      lin32/bin/CryptoAES.GofU
  11. 4 14
      lin32/bin/CryptoAES.SymU
  12. 二进制
      lin32/bin/CryptoARC4.GofU
  13. 1 1
      lin32/bin/CryptoARC4.SymU
  14. 二进制
      lin32/bin/CryptoDES.GofU
  15. 16 0
      lin32/bin/CryptoDES.SymU
  16. 二进制
      lin32/bin/CryptoDES3.GofU
  17. 1 1
      lin32/bin/CryptoDES3.SymU
  18. 二进制
      lin32/bin/CryptoTestCiphers.GofU
  19. 2 0
      lin32/bin/CryptoTestCiphers.SymU
  20. 二进制
      lin32/bin/CryptoTwofish.GofU
  21. 13 4
      lin32/bin/CryptoTwofish.SymU
  22. 二进制
      lin32/bin/CyberbitNetInstall.GofU
  23. 二进制
      lin32/bin/DTPData.GofU
  24. 二进制
      lin32/bin/DTPEditor.GofU
  25. 二进制
      lin32/bin/DTPRect.GofU
  26. 二进制
      lin32/bin/DTPUtilities.GofU
  27. 二进制
      lin32/bin/DTPView.GofU
  28. 二进制
      lin32/bin/Debugging.GofU
  29. 1 0
      lin32/bin/Debugging.SymU
  30. 二进制
      lin32/bin/DiskBenchmark.GofU
  31. 二进制
      lin32/bin/DiskTests.GofU
  32. 1 1
      lin32/bin/DiskTests.SymU
  33. 二进制
      lin32/bin/DisplayGTF.GofU
  34. 二进制
      lin32/bin/DynamicWebpage.GofU
  35. 二进制
      lin32/bin/DynamicWebpagePlugin.GofU
  36. 二进制
      lin32/bin/Errors.GofU
  37. 二进制
      lin32/bin/EventsUtils.GofU
  38. 二进制
      lin32/bin/ExerciseGroups.GofU
  39. 二进制
      lin32/bin/FATFiles.GofU
  40. 2 2
      lin32/bin/FATFiles.SymU
  41. 二进制
      lin32/bin/FATScavenger.GofU
  42. 二进制
      lin32/bin/FSTools.GofU
  43. 二进制
      lin32/bin/FileTrapWriter.GofU
  44. 二进制
      lin32/bin/Files.GofU
  45. 2 0
      lin32/bin/Files.SymU
  46. 二进制
      lin32/bin/FoxAMD64Assembler.GofU
  47. 二进制
      lin32/bin/FoxAMD64InstructionSet.GofU
  48. 二进制
      lin32/bin/FoxAMDBackend.GofU
  49. 6 6
      lin32/bin/FoxAMDBackend.SymU
  50. 二进制
      lin32/bin/FoxARMBackend.GofU
  51. 二进制
      lin32/bin/FoxAssembler.GofU
  52. 二进制
      lin32/bin/FoxBackend.GofU
  53. 0 3
      lin32/bin/FoxBackend.SymU
  54. 二进制
      lin32/bin/FoxBasic.GofU
  55. 二进制
      lin32/bin/FoxBinaryObjectFile.GofU
  56. 二进制
      lin32/bin/FoxBinarySymbolFile.GofU
  57. 二进制
      lin32/bin/FoxCSharpParser.GofU
  58. 二进制
      lin32/bin/FoxCodeGenerators.GofU
  59. 0 1
      lin32/bin/FoxCodeGenerators.SymU
  60. 二进制
      lin32/bin/FoxDocumentationBackend.GofU
  61. 二进制
      lin32/bin/FoxFingerPrinter.GofU
  62. 二进制
      lin32/bin/FoxGenericObjectFile.GofU
  63. 二进制
      lin32/bin/FoxGlobal.GofU
  64. 2 2
      lin32/bin/FoxGlobal.SymU
  65. 二进制
      lin32/bin/FoxInterfaceComparison.GofU
  66. 二进制
      lin32/bin/FoxIntermediateBackend.GofU
  67. 4 0
      lin32/bin/FoxIntermediateBackend.SymU
  68. 二进制
      lin32/bin/FoxIntermediateCode.GofU
  69. 1 0
      lin32/bin/FoxIntermediateCode.SymU
  70. 二进制
      lin32/bin/FoxIntermediateLinker.GofU
  71. 二进制
      lin32/bin/FoxIntermediateObjectFile.GofU
  72. 二进制
      lin32/bin/FoxIntermediateParser.GofU
  73. 二进制
      lin32/bin/FoxInterpreterBackend.GofU
  74. 二进制
      lin32/bin/FoxMinosObjectFile.GofU
  75. 二进制
      lin32/bin/FoxParser.GofU
  76. 1 0
      lin32/bin/FoxParser.SymU
  77. 二进制
      lin32/bin/FoxPrintout.GofU
  78. 1 0
      lin32/bin/FoxPrintout.SymU
  79. 二进制
      lin32/bin/FoxProgTools.GofU
  80. 二进制
      lin32/bin/FoxScanner.GofU
  81. 二进制
      lin32/bin/FoxSections.GofU
  82. 二进制
      lin32/bin/FoxSemanticChecker.GofU
  83. 二进制
      lin32/bin/FoxSyntaxTree.GofU
  84. 22 8
      lin32/bin/FoxSyntaxTree.SymU
  85. 二进制
      lin32/bin/FoxTRMBackend.GofU
  86. 1 1
      lin32/bin/FoxTRMBackend.SymU
  87. 二进制
      lin32/bin/FoxTextualSymbolFile.GofU
  88. 二进制
      lin32/bin/FoxTranspilerBackend.GofU
  89. 二进制
      lin32/bin/FractalDemo.GofU
  90. 二进制
      lin32/bin/GenericLinker.GofU
  91. 二进制
      lin32/bin/GenericLoader.GofU
  92. 二进制
      lin32/bin/HTMLTransformer.GofU
  93. 二进制
      lin32/bin/HTTPSession.GofU
  94. 二进制
      lin32/bin/IMAP.GofU
  95. 二进制
      lin32/bin/IMAPClient.GofU
  96. 二进制
      lin32/bin/IMAPGUI.GofU
  97. 二进制
      lin32/bin/IP.GofU
  98. 二进制
      lin32/bin/Installer.GofU
  99. 二进制
      lin32/bin/Joysticks.GofU
  100. 二进制
      lin32/bin/Kernel.GofU

二进制
lin32/bin/AnimationCodec.GofU


二进制
lin32/bin/Bimso.GofU


二进制
lin32/bin/BootConsole.GofU


+ 1 - 1
lin32/bin/BootConsole.SymU

@@ -1,5 +1,5 @@
 MODULE BootConsole;
-	IMPORT S := SYSTEM, Trace, Glue, Unix, Modules, Objects, Commands;
+	IMPORT S := SYSTEM, Trace, Glue, Unix, Machine, Modules, Objects, Commands, KernelLog;
 CONST 
 TYPE 
 	Module = Modules.Module; 

二进制
lin32/bin/BootShell.GofU


二进制
lin32/bin/CATServer.GofU


二进制
lin32/bin/Compiler.GofU


+ 1 - 0
lin32/bin/Compiler.SymU

@@ -46,5 +46,6 @@ VAR
 	PROCEDURE ^ AddPlatform*(context: Commands.Context); 
 	PROCEDURE ^ SetDefaultPlatform*(context: Commands.Context); 
 	PROCEDURE ^ GetDefaultPlatform(VAR name: ARRAY OF CHAR): BOOLEAN; 
+	PROCEDURE ^ SetupDefaults; 
 BEGIN
 END Compiler.

二进制
lin32/bin/Configuration.GofU


二进制
lin32/bin/CryptoAES.GofU


+ 4 - 14
lin32/bin/CryptoAES.SymU

@@ -12,10 +12,10 @@ CONST
 TYPE 
 	RTable = ARRAY 256 OF SET; 
 
+	RKeys = ARRAY (4 * (MaxRounds + 1)) OF SET; 
+
 	Cipher* = OBJECT (Ciphers.Cipher)
 	TYPE 
-		Key = ARRAY (4 * (MaxRounds + 1)) OF SET; 
-
 		Block = ARRAY 4 OF SET; 
 
 		Ind4 = RECORD 
@@ -23,7 +23,7 @@ TYPE
 		END; 
 	VAR 
 		rounds: SHORTINT; 
-		key, dkey: Key; 
+		key, dkey: RKeys; 
 		iv: Block; 
 
 		PROCEDURE ^ InitKey*(CONST src: ARRAY OF CHAR; keybits: LONGINT); 
@@ -43,19 +43,9 @@ TYPE
 		PROCEDURE ^ Init128(CONST src: ARRAY OF CHAR): SHORTINT; 
 		PROCEDURE ^ Init192(CONST src: ARRAY OF CHAR): SHORTINT; 
 		PROCEDURE ^ Init256(CONST src: ARRAY OF CHAR): SHORTINT; 
-		PROCEDURE ^ InvertKey; 
+		PROCEDURE ^ InvertKeys; 
 		PROCEDURE ^  & Init*; 
 	END Cipher; 
-
-	ConstBuffer = OBJECT 
-	VAR 
-		buf: ARRAY 2048 OF CHAR; 
-		ib: LONGINT; 
-
-		PROCEDURE ^  & Initialize; 
-		PROCEDURE ^ Append(CONST str: ARRAY OF CHAR); 
-		PROCEDURE ^ GetInt(): LONGINT; 
-	END ConstBuffer; 
 VAR 
 	e0, e1, e2, e3, e4: RTable; 
 	d0, d1, d2, d3, d4: RTable; 

二进制
lin32/bin/CryptoARC4.GofU


+ 1 - 1
lin32/bin/CryptoARC4.SymU

@@ -4,7 +4,7 @@ CONST
 TYPE 
 	Cipher* = OBJECT (Ciphers.Cipher)
 	VAR 
-		s: ARRAY 256 OF CHAR; 
+		s: ARRAY 256 OF LONGINT; 
 		i, j: LONGINT; 
 
 		PROCEDURE ^  & Init*; 

二进制
lin32/bin/CryptoDES.GofU


+ 16 - 0
lin32/bin/CryptoDES.SymU

@@ -1,11 +1,20 @@
 MODULE CryptoDES;
 	IMPORT S := SYSTEM, U := CryptoUtils, Ciphers := CryptoCiphers;
 CONST 
+	Mask01 = S.VAL(SET, 0AAAAAAAAH); 
+	Mask02 = S.VAL(SET, 858993459); 
+	Mask04 = S.VAL(SET, 252645135); 
+	Mask08 = S.VAL(SET, 16711935); 
+	Mask16 = S.VAL(SET, 65535); 
 TYPE 
 	Sandbox = ARRAY 64 OF SET; 
 
 	BitSwap = ARRAY 16 OF SET; 
 
+	Ind4* = RECORD 
+		a-, b-, c-, d-: LONGINT; 
+	END; 
+
 	Cipher* = OBJECT (Ciphers.Cipher)
 	VAR 
 		ske, skd: ARRAY 32 OF SET; 
@@ -24,6 +33,13 @@ VAR
 	sb1-, sb2-, sb3-, sb4-, sb5-, sb6-, sb7-, sb8-: Sandbox; 
 	LHs, RHs: BitSwap; 
 
+	PROCEDURE  - Split*(x: SET; VAR i4: Ind4);
+	BEGIN
+		i4.a := (S.VAL(LONGINT, x) MOD 64); 
+		i4.b := ((S.VAL(LONGINT, x) DIV 256) MOD 64); 
+		i4.c := ((S.VAL(LONGINT, x) DIV 65536) MOD 64); 
+		i4.d := ((S.VAL(LONGINT, x) DIV 16777216) MOD 64)
+	END Split; 
 	PROCEDURE ^ NewCipher*(): Ciphers.Cipher; 
 	PROCEDURE ^ IP*(VAR x, y: SET); 
 	PROCEDURE ^ FP*(VAR x, y: SET); 

二进制
lin32/bin/CryptoDES3.GofU


+ 1 - 1
lin32/bin/CryptoDES3.SymU

@@ -1,5 +1,5 @@
 MODULE CryptoDES3;
-	IMPORT Ciphers := CryptoCiphers, U := CryptoUtils, DES := CryptoDES, S := SYSTEM;
+	IMPORT Ciphers := CryptoCiphers, U := CryptoUtils, D := CryptoDES;
 CONST 
 TYPE 
 	Cipher* = OBJECT (Ciphers.Cipher)

二进制
lin32/bin/CryptoTestCiphers.GofU


+ 2 - 0
lin32/bin/CryptoTestCiphers.SymU

@@ -7,6 +7,7 @@ CONST
 	PROCEDURE ^ Ctr1*(context: Commands.Context); 
 	PROCEDURE ^ Ecb2*(CONST modname, input, output, key: ARRAY OF CHAR; datalen, keybits: LONGINT); 
 	PROCEDURE ^ Cbc2*(CONST modname, input, output, key, iv: ARRAY OF CHAR; datalen, keybits: LONGINT); 
+	PROCEDURE ^ DecryptCbc2*(CONST modname, input, output, key, iv: ARRAY OF CHAR; datalen, keybits: LONGINT); 
 	PROCEDURE ^ Ctr2*(CONST modname, input, output, key, iv: ARRAY OF CHAR; datalen, keybits: LONGINT); 
 	PROCEDURE ^ MeasureTime*(context: Commands.Context); 
 	PROCEDURE ^ DesEcb2*; 
@@ -19,5 +20,6 @@ CONST
 	PROCEDURE ^ IdeaCbc2*; 
 	PROCEDURE ^ AesCbc2*; 
 	PROCEDURE ^ AesCtr2*; 
+	PROCEDURE ^ CbcRandom*(context: Commands.Context); 
 BEGIN
 END CryptoTestCiphers.

二进制
lin32/bin/CryptoTwofish.GofU


+ 13 - 4
lin32/bin/CryptoTwofish.SymU

@@ -2,11 +2,15 @@ MODULE CryptoTwofish;
 	IMPORT S := SYSTEM, Ciphers := CryptoCiphers, U := CryptoUtils;
 CONST 
 	N = 16; 
+	FDBK = 361; 
+	Fdbk2 = S.VAL(SET, (FDBK DIV 2)); 
+	Fdbk4 = S.VAL(SET, (FDBK DIV 4)); 
+	Byte0 = S.VAL(SET, 255); 
+	S14d = S.VAL(SET, 333); 
+	S0a6 = S.VAL(SET, 166); 
 TYPE 
 	Block = ARRAY 4 OF SET; 
 
-	LI = LONGINT; 
-
 	SKey = ARRAY 4 OF SET; 
 
 	Cipher* = OBJECT (Ciphers.Cipher)
@@ -25,14 +29,19 @@ TYPE
 		PROCEDURE ^  & Init*; 
 	END Cipher; 
 VAR 
-	tab: ARRAY 2 OF ARRAY 256 OF SET; 
+	tab0: ARRAY 256 OF SET; 
+	tab1: ARRAY 256 OF SET; 
 
 	PROCEDURE ^ NewCipher*(): Ciphers.Cipher; 
 	PROCEDURE ^ m1(x: LONGINT): SET; 
 	PROCEDURE ^ mx(x: LONGINT): SET; 
 	PROCEDURE ^ my(x: LONGINT): SET; 
 	PROCEDURE ^ split(x: LONGINT; VAR v: SKey); 
-	PROCEDURE ^ f32(x: LONGINT; CONST k32: ARRAY OF LONGINT; keybits: LONGINT): LONGINT; 
+	PROCEDURE  - Int(x: SET): LONGINT;
+	BEGIN
+		RETURN S.VAL(LONGINT, x)
+	END Int; 
+	PROCEDURE ^ F32(x: SET; CONST k32: ARRAY OF LONGINT; keybits: LONGINT): LONGINT; 
 	PROCEDURE ^ Encode(k0, k1: LONGINT): LONGINT; 
 	PROCEDURE ^ Init0; 
 BEGIN

二进制
lin32/bin/CyberbitNetInstall.GofU


二进制
lin32/bin/DTPData.GofU


二进制
lin32/bin/DTPEditor.GofU


二进制
lin32/bin/DTPRect.GofU


二进制
lin32/bin/DTPUtilities.GofU


二进制
lin32/bin/DTPView.GofU


二进制
lin32/bin/Debugging.GofU


+ 1 - 0
lin32/bin/Debugging.SymU

@@ -31,5 +31,6 @@ VAR
 	PROCEDURE ^ Nothing; 
 	PROCEDURE ^ DisableGC*; 
 	PROCEDURE ^ EnableGC*; 
+	PROCEDURE ^ ReportProcedureDescriptors*; 
 BEGIN
 END Debugging.

二进制
lin32/bin/DiskBenchmark.GofU


二进制
lin32/bin/DiskTests.GofU


+ 1 - 1
lin32/bin/DiskTests.SymU

@@ -13,7 +13,7 @@ TYPE
 
 	TestDataWriter* = OBJECT {EXCLUSIVE} (TestDataBase)
 
-		PROCEDURE ^ FillWithTestData(VAR buffer: ARRAY OF CHAR); 
+		PROCEDURE ^ FillWithTestData*(VAR buffer: ARRAY OF CHAR); 
 		PROCEDURE ^ DoOperation*; 
 		PROCEDURE ^  & Init*(disk: Lib.Disk; partition: LONGINT; out: Streams.Writer); 
 	END TestDataWriter; 

二进制
lin32/bin/DisplayGTF.GofU


二进制
lin32/bin/DynamicWebpage.GofU


二进制
lin32/bin/DynamicWebpagePlugin.GofU


二进制
lin32/bin/Errors.GofU


二进制
lin32/bin/EventsUtils.GofU


二进制
lin32/bin/ExerciseGroups.GofU


二进制
lin32/bin/FATFiles.GofU


+ 2 - 2
lin32/bin/FATFiles.SymU

@@ -244,8 +244,8 @@ TYPE
 
 		PROCEDURE ^  & Init*(fs: Files.FileSystem); 
 		PROCEDURE ^ InitSize; 
-		PROCEDURE ^ ReadBuffer*(buffer: Buffer; pos: LONGINT); 
-		PROCEDURE ^ WriteBuffer*(buffer: Buffer); 
+		PROCEDURE ^ ReadBuffer(buffer: Buffer; pos: LONGINT); 
+		PROCEDURE ^ WriteBuffer(buffer: Buffer); 
 	END RootDirectory1216; 
 
 	RootDirectory32 = OBJECT {EXCLUSIVE} (RootDirectory)

二进制
lin32/bin/FATScavenger.GofU


二进制
lin32/bin/FSTools.GofU


二进制
lin32/bin/FileTrapWriter.GofU


二进制
lin32/bin/Files.GofU


+ 2 - 0
lin32/bin/Files.SymU

@@ -31,6 +31,8 @@ CONST
 	SetSize = (MAX(SET) + 1); 
 	NeedsPrefix* = 0; 
 TYPE 
+	TSize* = Streams.TSize; 
+
 	FileName* = ARRAY (PrefixLength + NameLength) OF CHAR; 
 
 	Rider* = RECORD 

二进制
lin32/bin/FoxAMD64Assembler.GofU


二进制
lin32/bin/FoxAMD64InstructionSet.GofU


二进制
lin32/bin/FoxAMDBackend.GofU


+ 6 - 6
lin32/bin/FoxAMDBackend.SymU

@@ -149,10 +149,6 @@ TYPE
 		PROCEDURE ^ GetImmediateMem(CONST vop: IntermediateCode.Operand; part: LONGINT; VAR imm: Assembler.Operand); 
 		PROCEDURE ^ GetImmediate(CONST virtual: IntermediateCode.Operand; part: LONGINT; VAR physical: Assembler.Operand; forbidden16Bit: BOOLEAN); 
 		PROCEDURE ^ GetMemory(CONST virtual: IntermediateCode.Operand; part: LONGINT; VAR physical: Assembler.Operand); 
-		PROCEDURE ^ HardwareIntegerRegister(index: LONGINT; sizeInBits: LONGINT): LONGINT; 
-		PROCEDURE ^ HardwareFloatRegister(index: LONGINT; sizeInBits: LONGINT): LONGINT; 
-		PROCEDURE ^ GetTypedHardwareRegister(index: LONGINT; type: IntermediateCode.Type): LONGINT; 
-		PROCEDURE ^ ParameterRegister*(CONST type: IntermediateCode.Type; index: LONGINT): LONGINT; 
 		PROCEDURE ^ GetRegister(CONST virtual: IntermediateCode.Operand; part: LONGINT; VAR physical: Assembler.Operand; VAR ticket: Ticket); 
 		PROCEDURE ^ MakeOperand(CONST vop: IntermediateCode.Operand; part: LONGINT; VAR op: Assembler.Operand; ticket: Ticket); 
 		PROCEDURE ^ MakeRegister(CONST vop: IntermediateCode.Operand; part: LONGINT; VAR op: Assembler.Operand); 
@@ -209,12 +205,16 @@ TYPE
 		bits: LONGINT; 
 		traceable: BOOLEAN; 
 		forceFPU: BOOLEAN; 
-		winAPIRegisters, cRegisters: Backend.Registers; 
+		winAPIRegisters: ARRAY 4 OF LONGINT; 
+		cRegisters: ARRAY 6 OF LONGINT; 
 
 		PROCEDURE ^  & InitBackendAMD64; 
 		PROCEDURE ^ Initialize*(diagnostics: Diagnostics.Diagnostics; log: Streams.Writer; flags: SET; checker: SemanticChecker.Checker; system: Global.System); 
 		PROCEDURE ^ GetSystem*(): Global.System; 
-		PROCEDURE ^ GetParameterRegisters*(callingConvention: SyntaxTree.CallingConvention): Backend.Registers; 
+		PROCEDURE ^ NumberParameterRegisters*(callingConvention: SyntaxTree.CallingConvention): SIZE; 
+		PROCEDURE ^ HardwareIntegerRegister(index: LONGINT; sizeInBits: LONGINT): LONGINT; 
+		PROCEDURE ^ HardwareFloatRegister(index: LONGINT; sizeInBits: LONGINT): LONGINT; 
+		PROCEDURE ^ ParameterRegister*(callingConvention: SyntaxTree.CallingConvention; type: IntermediateCode.Type; index: LONGINT): LONGINT; 
 		PROCEDURE ^ SupportedInstruction*(CONST instruction: IntermediateCode.Instruction; VAR moduleName, procedureName: ARRAY OF CHAR): BOOLEAN; 
 		PROCEDURE ^ GenerateBinary(module: Sections.Module; dump: Streams.Writer); 
 		PROCEDURE ^ ProcessIntermediateCodeModule*(intermediateCodeModule: Formats.GeneratedModule): Formats.GeneratedModule; 

二进制
lin32/bin/FoxARMBackend.GofU


二进制
lin32/bin/FoxAssembler.GofU


二进制
lin32/bin/FoxBackend.GofU


+ 0 - 3
lin32/bin/FoxBackend.SymU

@@ -4,8 +4,6 @@ CONST
 TYPE 
 	SectionName = ARRAY 256 OF CHAR; 
 
-	Registers* = POINTER TO ARRAY OF LONGINT; 
-
 	Backend* = OBJECT 
 	VAR 
 		diagnostics-: Diagnostics.Diagnostics; 
@@ -32,7 +30,6 @@ TYPE
 		PROCEDURE ^ Initialize*(diagnostics: Diagnostics.Diagnostics; log: Streams.Writer; flags: SET; checker: SemanticChecker.Checker; system: Global.System); 
 		PROCEDURE ^ SetName*(CONST name: ARRAY OF CHAR); 
 		PROCEDURE ^ GetSystem*(): Global.System; 
-		PROCEDURE ^ GetParameterRegisters*(callingConvention: SyntaxTree.CallingConvention): Registers; 
 		PROCEDURE ^ Error*(CONST source: ARRAY OF CHAR; position: Basic.Position; errorNumber: LONGINT; CONST err: ARRAY OF CHAR); 
 		PROCEDURE ^ ProcessSyntaxTreeModule*(syntaxTreeModule: SyntaxTree.Module): Formats.GeneratedModule; 
 		PROCEDURE ^ ProcessIntermediateCodeModule*(intermediateCodeModule: Formats.GeneratedModule): Formats.GeneratedModule; 

二进制
lin32/bin/FoxBasic.GofU


二进制
lin32/bin/FoxBinaryObjectFile.GofU


二进制
lin32/bin/FoxBinarySymbolFile.GofU


二进制
lin32/bin/FoxCSharpParser.GofU


二进制
lin32/bin/FoxCodeGenerators.GofU


+ 0 - 1
lin32/bin/FoxCodeGenerators.SymU

@@ -144,7 +144,6 @@ TYPE
 		PROCEDURE ^ AllocateSpillStack*(size: LONGINT); 
 		PROCEDURE ^ ToRegister*(ticket: Ticket); 
 		PROCEDURE ^ ExchangeTickets*(ticket1, ticket2: Ticket); 
-		PROCEDURE ^ ParameterRegister*(CONST type: IntermediateCode.Type; number: LONGINT): LONGINT; 
 		PROCEDURE ^ Spill*(ticket: Ticket); 
 		PROCEDURE ^ UnSpill*(ticket: Ticket); 
 		PROCEDURE ^ GetPreferredSpill*(CONST type: IntermediateCode.Type): Ticket; 

二进制
lin32/bin/FoxDocumentationBackend.GofU


二进制
lin32/bin/FoxFingerPrinter.GofU


二进制
lin32/bin/FoxGenericObjectFile.GofU


二进制
lin32/bin/FoxGlobal.GofU


+ 2 - 2
lin32/bin/FoxGlobal.SymU

@@ -282,8 +282,8 @@ VAR
 	PROCEDURE ^ Level*(t: SyntaxTree.Type): LONGINT; 
 	PROCEDURE ^ ConvertSigned*(this: HUGEINT; bits: LONGINT): HUGEINT; 
 	PROCEDURE ^ ConvertUnsigned*(this: HUGEINT; bits: LONGINT): HUGEINT; 
-	PROCEDURE ^ MaxInteger*(system: System; type: SyntaxTree.BasicType): HUGEINT; 
-	PROCEDURE ^ MinInteger*(system: System; type: SyntaxTree.BasicType): HUGEINT; 
+	PROCEDURE ^ MaxInteger*(system: System; type: SyntaxTree.BasicType; signed: BOOLEAN): HUGEINT; 
+	PROCEDURE ^ MinInteger*(system: System; type: SyntaxTree.BasicType; signed: BOOLEAN): HUGEINT; 
 	PROCEDURE ^ MaxFloat*(system: System; type: SyntaxTree.FloatType): LONGREAL; 
 	PROCEDURE ^ MinFloat*(system: System; type: SyntaxTree.FloatType): LONGREAL; 
 	PROCEDURE ^ IsUnsignedInteger*(this: HUGEINT; sizeInBits: LONGINT): BOOLEAN; 

二进制
lin32/bin/FoxInterfaceComparison.GofU


二进制
lin32/bin/FoxIntermediateBackend.GofU


+ 4 - 0
lin32/bin/FoxIntermediateBackend.SymU

@@ -31,6 +31,7 @@ CONST
 	NegativeDivisorTrap* = 12; 
 	NoReturnTrap* = 16; 
 	NilPointerTrap* = 17; 
+	RethrowTrap* = 18; 
 	Trace = FALSE; 
 	TraceRegisterUsageCount = TRUE; 
 	ArrayAlignment = (8 * 8); 
@@ -208,6 +209,7 @@ TYPE
 		nameIndex: LONGINT; 
 
 		PROCEDURE ^  & Init; 
+		PROCEDURE ^ Clear*; 
 		PROCEDURE ^ GetUID(): SyntaxTree.Identifier; 
 		PROCEDURE ^ GetUsage(VAR use: VariableUse); 
 		PROCEDURE ^ SetUsage(CONST use: VariableUse); 
@@ -608,6 +610,8 @@ TYPE
 		experiment: BOOLEAN; 
 
 		PROCEDURE ^  & InitIntermediateBackend*; 
+		PROCEDURE ^ NumberParameterRegisters*(callingConvention: SyntaxTree.CallingConvention): SIZE; 
+		PROCEDURE ^ ParameterRegister*(callingConvention: SyntaxTree.CallingConvention; type: IntermediateCode.Type; index: LONGINT): LONGINT; 
 		PROCEDURE ^ GenerateIntermediate*(x: SyntaxTree.Module; supportedInstruction: SupportedInstructionProcedure; supportedImmediate: SupportedImmediateProcedure): Sections.Module; 
 		PROCEDURE ^ SupportedImmediate*(CONST op: IntermediateCode.Operand): BOOLEAN; 
 		PROCEDURE ^ ProcessSyntaxTreeModule*(syntaxTreeModule: SyntaxTree.Module): Formats.GeneratedModule; 

二进制
lin32/bin/FoxIntermediateCode.GofU


+ 1 - 0
lin32/bin/FoxIntermediateCode.SymU

@@ -228,6 +228,7 @@ VAR
 	PROCEDURE ^ InitType*(VAR type: Type; form: SHORTINT; sizeInBits: INTEGER); 
 	PROCEDURE ^ ToVectorType*(VAR type: Type; length: LONGINT); 
 	PROCEDURE ^ InitRegisterClass*(VAR registerClass: RegisterClass; class: SHORTINT; number: LONGINT); 
+	PROCEDURE ^ InitParameterRegisterClass*(VAR registerClass: RegisterClass; number: LONGINT); 
 	PROCEDURE ^ NewType*(form: SHORTINT; sizeInBits: INTEGER): Type; 
 	PROCEDURE ^ SetType*(VAR op: Operand; CONST type: Type); 
 	PROCEDURE ^ FindMnemonic*(CONST name: ARRAY OF CHAR): SHORTINT; 

二进制
lin32/bin/FoxIntermediateLinker.GofU


二进制
lin32/bin/FoxIntermediateObjectFile.GofU


二进制
lin32/bin/FoxIntermediateParser.GofU


二进制
lin32/bin/FoxInterpreterBackend.GofU


二进制
lin32/bin/FoxMinosObjectFile.GofU


二进制
lin32/bin/FoxParser.GofU


+ 1 - 0
lin32/bin/FoxParser.SymU

@@ -20,6 +20,7 @@ TYPE
 		Lax-: BOOLEAN; 
 		indent: LONGINT; 
 		hasSymbol: BOOLEAN; 
+		prevPosition-: Position; 
 
 		PROCEDURE ^ S(CONST s: ARRAY OF CHAR); 
 		PROCEDURE ^ E(CONST s: ARRAY OF CHAR); 

二进制
lin32/bin/FoxPrintout.GofU


+ 1 - 0
lin32/bin/FoxPrintout.SymU

@@ -5,6 +5,7 @@ CONST
 	SymbolFile* = 1; 
 	SourceCode* = 2; 
 	All* = 3; 
+	DebugPosition = FALSE; 
 TYPE 
 	Printer* = OBJECT (SyntaxTree.Visitor)
 	VAR 

二进制
lin32/bin/FoxProgTools.GofU


二进制
lin32/bin/FoxScanner.GofU


二进制
lin32/bin/FoxSections.GofU


二进制
lin32/bin/FoxSemanticChecker.GofU


二进制
lin32/bin/FoxSyntaxTree.GofU


+ 22 - 8
lin32/bin/FoxSyntaxTree.SymU

@@ -170,7 +170,7 @@ TYPE
 		typeDeclaration-: TypeDeclaration; 
 		scope-: Scope; 
 		resolved-: Type; 
-		position-: Position; 
+		position-, end-: Position; 
 		state-: SET; 
 		hasPointers-: BOOLEAN; 
 		fingerprint-: FingerPrint; 
@@ -462,10 +462,12 @@ TYPE
 		pointerType-: PointerType; 
 		modifiers-: Modifier; 
 		isObject-, isProtected: BOOLEAN; 
+		isAbstract-: BOOLEAN; 
 		arrayStructure-: MathArrayType; 
 		arrayAccessOperators-: ArrayAccessOperators; 
 
 		PROCEDURE ^  & InitRecordType(position: Position; scope: Scope; recordScope: RecordScope); 
+		PROCEDURE ^ SetAbstract*(abstract: BOOLEAN); 
 		PROCEDURE ^ SetModifiers*(flag: Modifier); 
 		PROCEDURE ^ SetBaseType*(type: Type); 
 		PROCEDURE ^ SetPointerType*(pointerType: PointerType); 
@@ -558,12 +560,12 @@ TYPE
 	VAR 
 		type-: Type; 
 		assignable-: BOOLEAN; 
-		position-: Position; 
+		position-, end-: Position; 
 		state-: SET; 
 		resolved-: Value; 
 		isHidden-: BOOLEAN; 
 
-		PROCEDURE ^ End*(position: LONGINT); 
+		PROCEDURE ^ End*(position: Position); 
 		PROCEDURE ^ SetState*(state: LONGINT); 
 		PROCEDURE ^  & InitExpression(position: Position); 
 		PROCEDURE ^ SetHidden*(hidden: BOOLEAN); 
@@ -960,7 +962,7 @@ TYPE
 		used-, written-: BOOLEAN; 
 		fixed-: BOOLEAN; 
 		alignment-: LONGINT; 
-		position-: Position; 
+		position-, end-: Position; 
 		state-: SET; 
 		fingerprint-: FingerPrint; 
 		comment-: Comment; 
@@ -1151,7 +1153,7 @@ TYPE
 	Statement* = OBJECT 
 	VAR 
 		outer-: Statement; 
-		position-: Position; 
+		position-, end-: Position; 
 		isUnreachable-: BOOLEAN; 
 		comment-: Comment; 
 
@@ -1161,6 +1163,7 @@ TYPE
 		PROCEDURE ^ Accept*(v: Visitor); 
 		PROCEDURE ^ SetComment*(comment: Comment); 
 		PROCEDURE ^ Clone(): Statement; 
+		PROCEDURE ^ End*(pos: Position); 
 	END Statement; 
 
 	ProcedureCallStatement* = OBJECT (Statement)
@@ -1197,7 +1200,16 @@ TYPE
 		PROCEDURE ^ Accept*(v: Visitor); 
 	END CommunicationStatement; 
 
-	IfPart* = OBJECT 
+	Part* = OBJECT 
+	VAR 
+		position-, end-: Position; 
+
+		PROCEDURE ^ InitPart; 
+		PROCEDURE ^ SetPosition*(pos: Position); 
+		PROCEDURE ^ SetEnd*(pos: Position); 
+	END Part; 
+
+	IfPart* = OBJECT (Part)
 	VAR 
 		condition-: Expression; 
 		statements-: StatementSequence; 
@@ -1225,7 +1237,7 @@ TYPE
 		PROCEDURE ^ Accept*(v: Visitor); 
 	END IfStatement; 
 
-	WithPart* = OBJECT 
+	WithPart* = OBJECT (Part)
 	VAR 
 		variable-: Designator; 
 		type-: Type; 
@@ -1259,7 +1271,7 @@ TYPE
 		next*: CaseConstant; 
 	END; 
 
-	CasePart* = OBJECT 
+	CasePart* = OBJECT (Part)
 	VAR 
 		elements-: ExpressionList; 
 		firstConstant-: CaseConstant; 
@@ -1454,6 +1466,7 @@ TYPE
 	VAR 
 		firstSymbol-: Symbol; 
 		numberSymbols-: LONGINT; 
+		symbolTable: Basic.HashTableInt; 
 		firstConstant-, lastConstant-: Constant; 
 		numberConstants-: LONGINT; 
 		firstTypeDeclaration-, lastTypeDeclaration-: TypeDeclaration; 
@@ -1524,6 +1537,7 @@ TYPE
 		PROCEDURE ^ SetNumberMethods*(numberMethods: LONGINT); 
 		PROCEDURE ^ AddOperator*(p: Operator); 
 		PROCEDURE ^ FindSymbol*(identifier: Identifier): Symbol; 
+		PROCEDURE ^ AbstractProcedure*(inScope: Scope): Procedure; 
 		PROCEDURE ^ FindConstant*(identifier: Identifier): Constant; 
 		PROCEDURE ^ FindTypeDeclaration*(identifier: Identifier): TypeDeclaration; 
 		PROCEDURE ^ FindVariable*(identifier: Identifier): Variable; 

二进制
lin32/bin/FoxTRMBackend.GofU


+ 1 - 1
lin32/bin/FoxTRMBackend.SymU

@@ -150,7 +150,7 @@ TYPE
 		PROCEDURE ^ HardwareIntegerRegister(index: LONGINT; sizeInBits: LONGINT): LONGINT; 
 		PROCEDURE ^ HardwareFloatRegister(index: LONGINT; sizeInBits: LONGINT): LONGINT; 
 		PROCEDURE ^ GetTypedHardwareRegister(index: LONGINT; type: IntermediateCode.Type): LONGINT; 
-		PROCEDURE ^ ParameterRegister*(CONST type: IntermediateCode.Type; index: LONGINT): LONGINT; 
+		PROCEDURE ^ ParameterRegister(CONST type: IntermediateCode.Type; index: LONGINT): LONGINT; 
 		PROCEDURE ^ PhysicalRegister(virtualReg: LONGINT; part: LONGINT; VAR offset: LONGINT): LONGINT; 
 		PROCEDURE ^ GetRegister(CONST virtual: IntermediateCode.Operand; part: LONGINT; VAR physical: Operand); 
 		PROCEDURE ^ IsSameRegister(CONST a, b: InstructionSet.Operand): BOOLEAN; 

二进制
lin32/bin/FoxTextualSymbolFile.GofU


二进制
lin32/bin/FoxTranspilerBackend.GofU


二进制
lin32/bin/FractalDemo.GofU


二进制
lin32/bin/GenericLinker.GofU


二进制
lin32/bin/GenericLoader.GofU


二进制
lin32/bin/HTMLTransformer.GofU


二进制
lin32/bin/HTTPSession.GofU


二进制
lin32/bin/IMAP.GofU


二进制
lin32/bin/IMAPClient.GofU


二进制
lin32/bin/IMAPGUI.GofU


二进制
lin32/bin/IP.GofU


二进制
lin32/bin/Installer.GofU


二进制
lin32/bin/Joysticks.GofU


二进制
lin32/bin/Kernel.GofU


部分文件因为文件数量过多而无法显示