source: branches/bigint/Machine.pas

Last change on this file was 12, checked in by chronos, 2 months ago
  • Added: More CPU instructions.
  • Added: Mouse device.
File size: 1.0 KB
Line 
1unit Machine;
2
3interface
4
5uses
6 Classes, SysUtils, Cpu, IntMemory, Console, DeviceManager, Mouse;
7
8type
9
10 { TMachine }
11
12 TMachine = class
13 public
14 Cpu: TCpu;
15 Memory: TIntMemory;
16 Console: TConsole;
17 Mouse: TMouse;
18 DeviceManager: TDeviceManager;
19 constructor Create;
20 destructor Destroy; override;
21 procedure Run;
22 end;
23
24implementation
25
26{ TMachine }
27
28constructor TMachine.Create;
29begin
30 Memory := TIntMemory.Create;
31 Memory.Size := 10000;
32 Console := TConsole.Create;
33 Mouse := TMouse.Create;
34 DeviceManager := TDeviceManager.Create;
35 DeviceManager.RegisterDevice(Console);
36 DeviceManager.RegisterDevice(Mouse);
37 Cpu := TCpu.Create;
38 Cpu.OnWriteMem := Memory.Write;
39 Cpu.OnReadMem := Memory.Read;
40 Cpu.OnWriteIo := DeviceManager.Write;
41 Cpu.OnReadIo := DeviceManager.Read;
42end;
43
44destructor TMachine.Destroy;
45begin
46 FreeAndNil(Cpu);
47 FreeAndNil(Memory);
48 FreeAndNil(DeviceManager);
49 FreeAndNil(Console);
50 FreeAndNil(Mouse);
51 inherited;
52end;
53
54procedure TMachine.Run;
55begin
56 Cpu.Run;
57end;
58
59end.
60
Note: See TracBrowser for help on using the repository browser.