This commit is contained in:
kudzu_cp 2008-01-26 17:41:35 +00:00
parent 96a0fc4280
commit bec1a510fa
15 changed files with 79 additions and 22 deletions

View file

@ -16,6 +16,8 @@
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>Cosmos.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -49,8 +51,19 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Global.cs" />
<Compile Include="Processor.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Cosmos\Cosmos.Hardware\Cosmos.Hardware.csproj">
<Project>{CE50FE98-9AC4-4B4D-ADC7-31F6DCD28755}</Project>
<Name>Cosmos.Hardware</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Cosmos.snk" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View file

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cosmos.Hardware.PC {
public class Global : Cosmos.Hardware.Global {
public static void Init() {
mProcessor = new Processor();
}
}
}

View file

@ -0,0 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cosmos.Hardware.PC {
class Processor : Cosmos.Hardware.Processor {
}
}

View file

@ -59,11 +59,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cosmos.Shell.Guess", "Cosmo
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cosmos.Hardware.PC", "Cosmos.Hardware.PC\Cosmos.Hardware.PC.csproj", "{B024FADF-EF04-4602-A0F4-49016D68B2AF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cosmos.Hardware.PC.x86", "Cosmos.Hardware.PC.x86\Cosmos.Hardware.PC.x86.csproj", "{A62F41F4-A759-40FA-90AA-CF8A3C9AC72A}"
EndProject
Global
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 26
SccNumberOfProjects = 25
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = https://tfs04.codeplex.com/
SccLocalPath0 = .
@ -163,10 +161,6 @@ Global
SccProjectTopLevelParentUniqueName24 = Cosmos.sln
SccProjectName24 = Cosmos.Hardware.PC
SccLocalPath24 = Cosmos.Hardware.PC
SccProjectUniqueName25 = Cosmos.Hardware.PC.x86\\Cosmos.Hardware.PC.x86.csproj
SccProjectTopLevelParentUniqueName25 = Cosmos.sln
SccProjectName25 = Cosmos.Hardware.PC.x86
SccLocalPath25 = Cosmos.Hardware.PC.x86
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -267,10 +261,6 @@ Global
{B024FADF-EF04-4602-A0F4-49016D68B2AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B024FADF-EF04-4602-A0F4-49016D68B2AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B024FADF-EF04-4602-A0F4-49016D68B2AF}.Release|Any CPU.Build.0 = Release|Any CPU
{A62F41F4-A759-40FA-90AA-CF8A3C9AC72A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A62F41F4-A759-40FA-90AA-CF8A3C9AC72A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A62F41F4-A759-40FA-90AA-CF8A3C9AC72A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A62F41F4-A759-40FA-90AA-CF8A3C9AC72A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -295,7 +285,6 @@ Global
{B168BEDD-C6A6-4E7C-B9A5-0144286E9E42} = {0D558E33-78B0-47DB-B5EF-B7C2F3114D75}
{A1F83D9F-2D44-4264-A08B-416797123018} = {0D558E33-78B0-47DB-B5EF-B7C2F3114D75}
{B024FADF-EF04-4602-A0F4-49016D68B2AF} = {0D558E33-78B0-47DB-B5EF-B7C2F3114D75}
{A62F41F4-A759-40FA-90AA-CF8A3C9AC72A} = {0D558E33-78B0-47DB-B5EF-B7C2F3114D75}
{B0BBD2A2-4FAA-4730-9770-ACE6D9532132} = {E16DB75B-0F1D-4813-9103-F8FB6E7BAE2A}
{7BAB58BF-E8A1-4623-B6BF-4B90A0505226} = {E16DB75B-0F1D-4813-9103-F8FB6E7BAE2A}
{1F0EDE86-F6D4-4355-9A97-10E90457770C} = {2DE75CE4-7A3B-4659-84FC-16F5EC0AEDE4}

View file

@ -17,7 +17,7 @@
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>Old\Cosmos.snk</AssemblyOriginatorKeyFile>
<AssemblyOriginatorKeyFile>Cosmos.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -48,6 +48,7 @@
<Compile Include="Bus\Bus.cs" />
<Compile Include="Bus\CPUBus.cs" />
<Compile Include="Device.cs" />
<Compile Include="Global.cs" />
<Compile Include="Old\CPU.cs" />
<Compile Include="Old\DebugUtil.cs" />
<Compile Include="Old\Hardware.cs" />
@ -56,6 +57,7 @@
<Compile Include="Old\PIC.cs" />
<Compile Include="Old\PIT.cs" />
<Compile Include="Bus\PCIBus.cs" />
<Compile Include="Processor.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Old\RTC.cs" />
<Compile Include="Old\Screen\Text.cs" />
@ -68,7 +70,7 @@
</ItemGroup>
<ItemGroup>
<None Include="Old\ClassDiagram.cd" />
<None Include="Old\Cosmos.snk" />
<None Include="Cosmos.snk" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

Binary file not shown.

View file

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Cosmos.Hardware {
public class Global {
protected static Processor mProcessor;
public static Processor Processor {
get { return mProcessor; }
}
}
}

View file

@ -3,9 +3,12 @@ using System.Collections.Generic;
using System.Text;
namespace Cosmos.Hardware {
public class CPU: Hardware {
public class CPUOld: Hardware {
// Plugged
public static void CreateGDT() { }
public static void CreateIDT() { }
// Plugged
public static void CreateIDT() { }
public static uint AmountOfMemory {
get {
return GetAmountOfRAM();

View file

@ -0,0 +1,8 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Cosmos.Hardware {
public abstract class Processor {
}
}

View file

@ -5,8 +5,8 @@ using Indy.IL2CPU.Plugs;
using HW = Cosmos.Hardware;
namespace Cosmos.Kernel.Plugs {
[Plug(Target = typeof(HW.CPU))]
public static class CPU {
[Plug(Target = typeof(HW.CPUOld))]
public static class CPUOld {
[PlugMethod(MethodAssembler = typeof(Assemblers.CreateGDT))]
public static void CreateGDT() {
}

View file

@ -8,6 +8,11 @@ namespace Cosmos.Kernel {
// For now we just have default, but can add others in the future
public class Boot {
public static void Default() {
// This should be the ONLY reference to the specific assembly
// Later I would like to make this auto loading, but .NET's
// init methods are a bit more work than Delphi's. :)
Cosmos.Hardware.PC.Global.Init();
//Remove later
CPU.Init();
}
}

View file

@ -58,6 +58,10 @@
<Compile Include="Old\TextScreen-Old.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Cosmos.Hardware.PC\Cosmos.Hardware.PC.csproj">
<Project>{B024FADF-EF04-4602-A0F4-49016D68B2AF}</Project>
<Name>Cosmos.Hardware.PC</Name>
</ProjectReference>
<ProjectReference Include="..\..\Indy.IL2CPU.Plugs\Indy.IL2CPU.Plugs.csproj">
<Project>{E9B2E8CC-E264-42F9-9113-16B0A0431198}</Project>
<Name>Indy.IL2CPU.Plugs</Name>

View file

@ -16,7 +16,7 @@ namespace Cosmos.Kernel {
public static unsafe void Init() {
Heap.CheckInit();
Console.Write("Creating GDT...");
Hardware.CPU.CreateGDT();
Hardware.CPUOld.CreateGDT();
Console.WriteLine("Done");
Console.Write("Initializing PIC...");
Hardware.PIC.Init();
@ -34,7 +34,7 @@ namespace Cosmos.Kernel {
Console.Write("Creating IDT...");
Kernel.Interrupts.DoTest();
Hardware.Storage.ATA.Initialize(Sleep);
Hardware.CPU.CreateIDT();
Hardware.CPUOld.CreateIDT();
Console.WriteLine("Done");
Keyboard.Initialize();
//TestATA();

View file

@ -25,7 +25,7 @@ namespace Cosmos.Kernel {
private static void ClearMemory(uint aStartAddress, uint aLength) {
//int xStart = (RTC.GetMinutes() * 60) + RTC.GetSeconds();
Hardware.CPU.ZeroFill(aStartAddress, aLength);
Hardware.CPUOld.ZeroFill(aStartAddress, aLength);
//int xEnd = (RTC.GetMinutes() * 60) + RTC.GetSeconds();
//int xDiff = xEnd - xStart;
//Console.Write("Time to clear ");
@ -62,7 +62,7 @@ namespace Cosmos.Kernel {
public static void CheckInit() {
if (mFirstBlock == null) {
//Initialize(Hardware.CPU.EndOfKernel, (Hardware.CPU.AmountOfMemory * 1024 * 1024) - (Hardware.CPU.EndOfKernel + 4));
Initialize(Hardware.CPU.EndOfKernel, (Hardware.CPU.AmountOfMemory * 1024 * 1024) - 1024);
Initialize(Hardware.CPUOld.EndOfKernel, (Hardware.CPUOld.AmountOfMemory * 1024 * 1024) - 1024);
}
}