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 | |
---|
1 | unit Machine;
|
---|
2 |
|
---|
3 | interface
|
---|
4 |
|
---|
5 | uses
|
---|
6 | Classes, SysUtils, Cpu, IntMemory, Console, DeviceManager, Mouse;
|
---|
7 |
|
---|
8 | type
|
---|
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 |
|
---|
24 | implementation
|
---|
25 |
|
---|
26 | { TMachine }
|
---|
27 |
|
---|
28 | constructor TMachine.Create;
|
---|
29 | begin
|
---|
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;
|
---|
42 | end;
|
---|
43 |
|
---|
44 | destructor TMachine.Destroy;
|
---|
45 | begin
|
---|
46 | FreeAndNil(Cpu);
|
---|
47 | FreeAndNil(Memory);
|
---|
48 | FreeAndNil(DeviceManager);
|
---|
49 | FreeAndNil(Console);
|
---|
50 | FreeAndNil(Mouse);
|
---|
51 | inherited;
|
---|
52 | end;
|
---|
53 |
|
---|
54 | procedure TMachine.Run;
|
---|
55 | begin
|
---|
56 | Cpu.Run;
|
---|
57 | end;
|
---|
58 |
|
---|
59 | end.
|
---|
60 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.