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