diff --git a/source/Cosmos/Cosmos.Sys.Plugs/Assemblers/Reboot.cs b/source/Cosmos/Cosmos.Sys.Plugs/Assemblers/Reboot.cs index e14845a8f..59fd8df2a 100644 --- a/source/Cosmos/Cosmos.Sys.Plugs/Assemblers/Reboot.cs +++ b/source/Cosmos/Cosmos.Sys.Plugs/Assemblers/Reboot.cs @@ -16,7 +16,7 @@ namespace Cosmos.Sys.Plugs.Assemblers SourceValue = 0x64, DestinationReg = CPUx86.Registers.DX }; - new CPUx86.In { + new CPUx86.IN { DestinationReg = CPUx86.Registers.AL }; new CPUx86.Test { @@ -43,7 +43,7 @@ namespace Cosmos.Sys.Plugs.Assemblers SourceValue = 0x64, DestinationReg = CPUx86.Registers.DX }; - new CPUx86.In { + new CPUx86.IN { DestinationReg = CPUx86.Registers.AL }; new CPUx86.Test { diff --git a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Cosmos.Compiler.Assembler.X86.csproj b/source2/Compiler/Cosmos.Compiler.Assembler.X86/Cosmos.Compiler.Assembler.X86.csproj index a80e11fd0..fcc0dcae8 100644 --- a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Cosmos.Compiler.Assembler.X86.csproj +++ b/source2/Compiler/Cosmos.Compiler.Assembler.X86/Cosmos.Compiler.Assembler.X86.csproj @@ -94,12 +94,12 @@ - - - - - - + + + + + + diff --git a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Interrupt.cs b/source2/Compiler/Cosmos.Compiler.Assembler.X86/INT.cs similarity index 63% rename from source2/Compiler/Cosmos.Compiler.Assembler.X86/Interrupt.cs rename to source2/Compiler/Cosmos.Compiler.Assembler.X86/INT.cs index 23eeaa583..7ef7a6b5b 100644 --- a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Interrupt.cs +++ b/source2/Compiler/Cosmos.Compiler.Assembler.X86/INT.cs @@ -1,8 +1,9 @@ namespace Cosmos.Compiler.Assembler.X86 { [OpCode("int")] - public class Interrupt : InstructionWithDestination { + public class INT : InstructionWithDestination { public override void WriteText( Cosmos.Compiler.Assembler.Assembler aAssembler, System.IO.TextWriter aOutput ) { + //TODO: In base have a property that has the opcode from above and we can reuse it. aOutput.Write("Int " + DestinationValue); } } diff --git a/source2/Compiler/Cosmos.Compiler.Assembler.X86/InterruptReturn.cs b/source2/Compiler/Cosmos.Compiler.Assembler.X86/IRET.cs similarity index 74% rename from source2/Compiler/Cosmos.Compiler.Assembler.X86/InterruptReturn.cs rename to source2/Compiler/Cosmos.Compiler.Assembler.X86/IRET.cs index d514afb16..6fbc6baa4 100644 --- a/source2/Compiler/Cosmos.Compiler.Assembler.X86/InterruptReturn.cs +++ b/source2/Compiler/Cosmos.Compiler.Assembler.X86/IRET.cs @@ -5,6 +5,6 @@ using System.Text; namespace Cosmos.Compiler.Assembler.X86 { [OpCode("iret")] - public class InterruptReturn: Instruction { + public class IRET: Instruction { } } \ No newline at end of file diff --git a/source2/Compiler/Cosmos.Compiler.Assembler.X86/In.cs b/source2/Compiler/Cosmos.Compiler.Assembler.X86/In.cs index 09bd951a2..4ae991fe8 100644 --- a/source2/Compiler/Cosmos.Compiler.Assembler.X86/In.cs +++ b/source2/Compiler/Cosmos.Compiler.Assembler.X86/In.cs @@ -5,7 +5,7 @@ using System.Text; namespace Cosmos.Compiler.Assembler.X86 { [OpCode("in")] - public class In : InstructionWithDestinationAndSize { + public class IN : InstructionWithDestinationAndSize { public override void WriteText( Cosmos.Compiler.Assembler.Assembler aAssembler, System.IO.TextWriter aOutput ) { base.WriteText(aAssembler, aOutput); diff --git a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Inc.cs b/source2/Compiler/Cosmos.Compiler.Assembler.X86/Inc.cs index 053e46a96..5fd9629b3 100644 --- a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Inc.cs +++ b/source2/Compiler/Cosmos.Compiler.Assembler.X86/Inc.cs @@ -5,6 +5,6 @@ using System.Text; namespace Cosmos.Compiler.Assembler.X86 { [OpCode("inc")] - public class Inc : InstructionWithDestinationAndSize { + public class INC : InstructionWithDestinationAndSize { } } diff --git a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Int1.cs b/source2/Compiler/Cosmos.Compiler.Assembler.X86/Int1.cs index 7cf06d31d..2629992f8 100644 --- a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Int1.cs +++ b/source2/Compiler/Cosmos.Compiler.Assembler.X86/Int1.cs @@ -2,7 +2,7 @@ // See note in Int3 as to why we need a separate op for Int1 versus Int 0x01 [OpCode("Int1")] - public class Int1: Instruction { + public class INT1: Instruction { } } diff --git a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Int3.cs b/source2/Compiler/Cosmos.Compiler.Assembler.X86/Int3.cs index 7b6e8964c..13bdbcf65 100644 --- a/source2/Compiler/Cosmos.Compiler.Assembler.X86/Int3.cs +++ b/source2/Compiler/Cosmos.Compiler.Assembler.X86/Int3.cs @@ -8,7 +8,7 @@ // are cases where the long form could be preferred. Thus instead we have // chosen to follow the NASM model in our code. [OpCode("Int3")] - public class Int3 : Instruction { + public class INT3 : Instruction { } } \ No newline at end of file diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/CodeBlock.cs b/source2/Compiler/Cosmos.Compiler.XSharp/CodeBlock.cs index 192583d64..61e912ab9 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/CodeBlock.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/CodeBlock.cs @@ -209,7 +209,7 @@ namespace Cosmos.Compiler.XSharp { new Return { DestinationValue = aBytes }; } public void ReturnFromInterrupt() { - new InterruptReturn(); + new IRET(); } public void EnableInterrupts() { diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/Memory.cs b/source2/Compiler/Cosmos.Compiler.XSharp/Memory.cs index 222aa72cb..3121c6834 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/Memory.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/Memory.cs @@ -27,7 +27,8 @@ namespace Cosmos.Compiler.XSharp { return new MemoryAction(xAddrIndirect.Reference, xAddrIndirect.Displacement) { IsIndirect = true }; } else { if (xAddrIndirect.Register != null) { - return new MemoryAction(xAddrIndirect.Register.Value, xAddrIndirect.Displacement) { IsIndirect = true }; + //TODO: HACK.... This defaults all registers without the size argument to 32. We need to really rebuild this code + return new MemoryAction(xAddrIndirect.Register.Value, xAddrIndirect.Displacement) { Size = 32, IsIndirect = true }; } else { return new MemoryAction(xAddrIndirect.Address, xAddrIndirect.Displacement) { IsIndirect = true }; } @@ -58,7 +59,8 @@ namespace Cosmos.Compiler.XSharp { var xAddrDirect = aAddress as AddressDirect; if (xAddrDirect != null) { if (xAddrDirect.Label != null) { - new Move { DestinationRef = ElementReference.New(xAddrDirect.Label), SourceValue = value.Value.GetValueOrDefault(), SourceRef = value.Reference, SourceReg = value.Register, SourceIsIndirect = value.IsIndirect }; + // Default is 32, in future save type that created the label, ie DataMemberInt vs DataMemberByte and set the size + new Move { DestinationRef = ElementReference.New(xAddrDirect.Label), DestinationIsIndirect = true, SourceValue = value.Value.GetValueOrDefault(), SourceRef = value.Reference, SourceReg = value.Register, SourceIsIndirect = value.IsIndirect }; } else { new Move { DestinationValue = xAddrDirect.Address, SourceValue = value.Value.GetValueOrDefault(), SourceRef = value.Reference, SourceReg = value.Register, SourceIsIndirect = value.IsIndirect }; } diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/MemoryAction.cs b/source2/Compiler/Cosmos.Compiler.XSharp/MemoryAction.cs index 9af836afe..5025d75fc 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/MemoryAction.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/MemoryAction.cs @@ -32,7 +32,7 @@ namespace Cosmos.Compiler.XSharp { } public static MemoryAction operator ++(MemoryAction aTarget) { - aTarget.ApplyToDest(new Inc()); + aTarget.ApplyToDest(new INC()); return null; } diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterAL.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterAL.cs index cf87a0a0a..f2430f457 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterAL.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterAL.cs @@ -25,7 +25,7 @@ namespace Cosmos.Compiler.XSharp { } public static implicit operator RegisterAL(PortNumber aPort) { - new In { DestinationReg = Registers.AL }; + new IN { DestinationReg = Registers.AL }; return Instance; } diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterBL.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterBL.cs index dbd144d94..bd81c8df1 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterBL.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterBL.cs @@ -25,7 +25,7 @@ namespace Cosmos.Compiler.XSharp { } public static implicit operator RegisterBL(PortNumber aPort) { - new In { DestinationReg = Registers.BL }; + new IN { DestinationReg = Registers.BL }; return Instance; } diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEAX.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEAX.cs index dd260f1b2..a1447d0d3 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEAX.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEAX.cs @@ -10,7 +10,7 @@ namespace Cosmos.Compiler.XSharp { public static readonly RegisterEAX Instance = new RegisterEAX(); public static RegisterEAX operator ++(RegisterEAX aRegister) { - new Inc { DestinationReg = aRegister.GetId() }; + new INC { DestinationReg = aRegister.GetId() }; return aRegister; } public static RegisterEAX operator +(RegisterEAX aRegister, UInt32 aValue) { diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEBP.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEBP.cs index 1fb68d1c5..61ffd4f74 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEBP.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEBP.cs @@ -10,7 +10,7 @@ namespace Cosmos.Compiler.XSharp { public static readonly RegisterEBP Instance = new RegisterEBP(); public static RegisterEBP operator ++(RegisterEBP aRegister) { - new Inc { DestinationReg = aRegister.GetId() }; + new INC { DestinationReg = aRegister.GetId() }; return aRegister; } public static RegisterEBP operator +(RegisterEBP aRegister, UInt32 aValue) { diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEBX.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEBX.cs index ce223b6e5..72cfc4a7c 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEBX.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEBX.cs @@ -10,7 +10,7 @@ namespace Cosmos.Compiler.XSharp { public static readonly RegisterEBX Instance = new RegisterEBX(); public static RegisterEBX operator ++(RegisterEBX aRegister) { - new Inc { DestinationReg = aRegister.GetId() }; + new INC { DestinationReg = aRegister.GetId() }; return aRegister; } public static RegisterEBX operator --(RegisterEBX aRegister) { diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterECX.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterECX.cs index 371c35f83..811c645fa 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterECX.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterECX.cs @@ -10,7 +10,7 @@ namespace Cosmos.Compiler.XSharp { public static readonly RegisterECX Instance = new RegisterECX(); public static RegisterECX operator ++(RegisterECX aRegister) { - new Inc { DestinationReg = aRegister.GetId() }; + new INC { DestinationReg = aRegister.GetId() }; return aRegister; } public static RegisterECX operator --(RegisterECX aRegister) { diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEDI.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEDI.cs index 45c3f8cdf..e4b36546e 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEDI.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterEDI.cs @@ -10,7 +10,7 @@ namespace Cosmos.Compiler.XSharp { public static readonly RegisterEDI Instance = new RegisterEDI(); public static RegisterEDI operator ++(RegisterEDI aRegister) { - new Inc { DestinationReg = aRegister.GetId() }; + new INC { DestinationReg = aRegister.GetId() }; return aRegister; } public static RegisterEDI operator --(RegisterEDI aRegister) { diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterESI.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterESI.cs index 668cc158c..2cf5331ec 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterESI.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterESI.cs @@ -10,7 +10,7 @@ namespace Cosmos.Compiler.XSharp { public static readonly RegisterESI Instance = new RegisterESI(); public static RegisterESI operator ++(RegisterESI aRegister) { - new Inc { DestinationReg = aRegister.GetId() }; + new INC { DestinationReg = aRegister.GetId() }; return aRegister; } public static RegisterESI operator +(RegisterESI aRegister, UInt32 aValue) { diff --git a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterESP.cs b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterESP.cs index 71307e54f..2b179a130 100644 --- a/source2/Compiler/Cosmos.Compiler.XSharp/RegisterESP.cs +++ b/source2/Compiler/Cosmos.Compiler.XSharp/RegisterESP.cs @@ -10,7 +10,7 @@ namespace Cosmos.Compiler.XSharp { public static readonly RegisterESP Instance = new RegisterESP(); public static RegisterESP operator ++(RegisterESP aRegister) { - new Inc { DestinationReg = aRegister.GetId() }; + new INC { DestinationReg = aRegister.GetId() }; return aRegister; } public static RegisterESP operator +(RegisterESP aRegister, UInt32 aValue) { diff --git a/source2/IL2CPU/Cosmos.IL2CPU.X86/AppAssemblerNasm.cs b/source2/IL2CPU/Cosmos.IL2CPU.X86/AppAssemblerNasm.cs index 36476dca5..0f14e8ff2 100644 --- a/source2/IL2CPU/Cosmos.IL2CPU.X86/AppAssemblerNasm.cs +++ b/source2/IL2CPU/Cosmos.IL2CPU.X86/AppAssemblerNasm.cs @@ -478,7 +478,7 @@ namespace Cosmos.IL2CPU.X86 { } // If we made it this far without a return, emit the Tracer - new CPUx86.Int3(); + new CPUx86.INT3(); } private int[] xCodeOffsets; diff --git a/source2/IL2CPU/Cosmos.IL2CPU.X86/IL/Div.cs b/source2/IL2CPU/Cosmos.IL2CPU.X86/IL/Div.cs index d73ad1378..146f7b48d 100644 --- a/source2/IL2CPU/Cosmos.IL2CPU.X86/IL/Div.cs +++ b/source2/IL2CPU/Cosmos.IL2CPU.X86/IL/Div.cs @@ -69,7 +69,7 @@ namespace Cosmos.IL2CPU.X86.IL new CPUx86.ShiftRight { DestinationReg = CPUx86.Registers.EDI, SourceValue = 1 }; // increment shift counter - new CPUx86.Inc { DestinationReg = CPUx86.Registers.ECX}; + new CPUx86.INC { DestinationReg = CPUx86.Registers.ECX}; // set flags new CPUx86.Or { DestinationReg = CPUx86.Registers.EDI, SourceReg = CPUx86.Registers.EDI }; diff --git a/source2/IL2CPU/Cosmos.IL2CPU.X86/IL/Div_Un.cs b/source2/IL2CPU/Cosmos.IL2CPU.X86/IL/Div_Un.cs index f0129614a..f3ed15c30 100644 --- a/source2/IL2CPU/Cosmos.IL2CPU.X86/IL/Div_Un.cs +++ b/source2/IL2CPU/Cosmos.IL2CPU.X86/IL/Div_Un.cs @@ -69,7 +69,7 @@ namespace Cosmos.IL2CPU.X86.IL new CPUx86.ShiftRight { DestinationReg = CPUx86.Registers.EDI, SourceValue = 1 }; // increment shift counter - new CPUx86.Inc { DestinationReg = CPUx86.Registers.ECX }; + new CPUx86.INC { DestinationReg = CPUx86.Registers.ECX }; // set flags new CPUx86.Or { DestinationReg = CPUx86.Registers.EDI, SourceReg = CPUx86.Registers.EDI }; diff --git a/source2/IL2CPU/Cosmos.IL2CPU.X86/Plugs/NEW_PLUGS/InvokeImplAssembler.cs b/source2/IL2CPU/Cosmos.IL2CPU.X86/Plugs/NEW_PLUGS/InvokeImplAssembler.cs index 862e29478..cdd3de85e 100644 --- a/source2/IL2CPU/Cosmos.IL2CPU.X86/Plugs/NEW_PLUGS/InvokeImplAssembler.cs +++ b/source2/IL2CPU/Cosmos.IL2CPU.X86/Plugs/NEW_PLUGS/InvokeImplAssembler.cs @@ -104,7 +104,7 @@ namespace Cosmos.IL2CPU.X86.Plugs.NEW_PLUGS { new CPUx86.Move { DestinationReg = CPUx86.Registers.EDI, SourceReg = CPUx86.Registers.EDI, SourceIsIndirect = true, SourceDisplacement = Ldfld.GetFieldOffset(xMethodInfo.MethodBase.DeclaringType, "System.Object System.Delegate._target") };//i really dont get the +12, MtW: that's for the object header new CPU.Label(".noTHIStoPop"); new CPUx86.Popad(); - new CPUx86.Inc { DestinationReg = CPUx86.Registers.EDX }; + new CPUx86.INC { DestinationReg = CPUx86.Registers.EDX }; new CPUx86.Add { DestinationReg = CPUx86.Registers.EAX, SourceValue = 4 }; new CPUx86.Jump { DestinationLabel = ".BEGIN_OF_LOOP" }; new CPU.Label(".END_OF_INVOKE_"); diff --git a/source2/IL2CPU/Cosmos.IL2CPU.X86/Plugs/System/Assemblers/MulticastDelegate_Invoke.cs b/source2/IL2CPU/Cosmos.IL2CPU.X86/Plugs/System/Assemblers/MulticastDelegate_Invoke.cs index 243970dc2..e67673e89 100644 --- a/source2/IL2CPU/Cosmos.IL2CPU.X86/Plugs/System/Assemblers/MulticastDelegate_Invoke.cs +++ b/source2/IL2CPU/Cosmos.IL2CPU.X86/Plugs/System/Assemblers/MulticastDelegate_Invoke.cs @@ -128,7 +128,7 @@ namespace Cosmos.IL2CPU.X86.Plugs.CustomImplementations.System.Assemblers //new CPUx86.Move("[esp]", "edi"); new CPU.Label(".noTHIStoPop"); new CPUx86.Popad(); - new CPUx86.Inc { DestinationReg = Registers.EDX }; + new CPUx86.INC { DestinationReg = Registers.EDX }; new CPUx86.Add { DestinationReg = Registers.EAX, SourceValue = 4 }; new CPUx86.Jump { DestinationLabel = ".BEGIN_OF_LOOP" }; new CPU.Label(".END_OF_INVOKE_"); diff --git a/source2/Kernel/System/Hardware/Core/Cosmos.Core.Plugs/IOPortImpl.cs b/source2/Kernel/System/Hardware/Core/Cosmos.Core.Plugs/IOPortImpl.cs index 7bc266389..aba03ff8d 100644 --- a/source2/Kernel/System/Hardware/Core/Cosmos.Core.Plugs/IOPortImpl.cs +++ b/source2/Kernel/System/Hardware/Core/Cosmos.Core.Plugs/IOPortImpl.cs @@ -45,7 +45,7 @@ namespace Cosmos.Core.Plugs //TODO: Do we need to clear rest of EAX first? // MTW: technically not, as in other places, it _should_ be working with AL too.. new CPUx86.Move { DestinationReg = CPUx86.Registers.EAX, SourceValue = 0 }; - new CPUx86.In { DestinationReg = CPUx86.Registers.AL }; + new CPUx86.IN { DestinationReg = CPUx86.Registers.AL }; new CPUx86.Push { DestinationReg = CPUx86.Registers.EAX }; return 0; } @@ -55,7 +55,7 @@ namespace Cosmos.Core.Plugs { new CPUx86.Move { DestinationReg = CPUx86.Registers.EDX, SourceReg = CPUx86.Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 0x08 }; new CPUx86.Move { DestinationReg = CPUx86.Registers.EAX, SourceValue = 0 }; - new CPUx86.In { DestinationReg = CPUx86.Registers.AX }; + new CPUx86.IN { DestinationReg = CPUx86.Registers.AX }; new CPUx86.Push { DestinationReg = CPUx86.Registers.EAX }; return 0; } @@ -64,7 +64,7 @@ namespace Cosmos.Core.Plugs public static UInt32 Read32(UInt16 aPort) { new CPUx86.Move { DestinationReg = CPUx86.Registers.EDX, SourceReg = CPUx86.Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 0x08 }; - new CPUx86.In { DestinationReg = CPUx86.Registers.EAX }; + new CPUx86.IN { DestinationReg = CPUx86.Registers.EAX }; new CPUx86.Push { DestinationReg = CPUx86.Registers.EAX }; return 0; } diff --git a/source2/Kernel/System/Hardware/Core/Cosmos.Core.Plugs/UpdateIDT.cs b/source2/Kernel/System/Hardware/Core/Cosmos.Core.Plugs/UpdateIDT.cs index affdf8664..b3a7e6ce6 100644 --- a/source2/Kernel/System/Hardware/Core/Cosmos.Core.Plugs/UpdateIDT.cs +++ b/source2/Kernel/System/Hardware/Core/Cosmos.Core.Plugs/UpdateIDT.cs @@ -130,7 +130,7 @@ namespace Cosmos.Core.Plugs.Assemblers { new CPUx86.Add { DestinationReg = CPUx86.Registers.ESP, SourceValue = 8 }; new CPUAll.Label("__ISR_Handler_" + j.ToString("X2") + "_END"); new CPUx86.Move { DestinationRef = CPUAll.ElementReference.New("InterruptsEnabledFlag"), DestinationIsIndirect = true, SourceValue = 1, Size = 32 }; - new CPUx86.InterruptReturn(); + new CPUx86.IRET(); } new CPUAll.Label("__INTERRUPT_OCCURRED__"); new CPUx86.Return();