Changeset 42 for branches/simple/Machine.pas
- Timestamp:
- Sep 8, 2023, 11:20:27 PM (8 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/simple/Machine.pas
r41 r42 4 4 5 5 uses 6 Classes, SysUtils, Cpu, Memory, DeviceMa pper, Console, Screen;6 Classes, SysUtils, Cpu, Memory, DeviceManager, Console, Screen; 7 7 8 8 type … … 25 25 procedure SetPoweredOn(AValue: Boolean); override; 26 26 public 27 DeviceMa pper: TDeviceMapper8;27 DeviceManager: TDeviceManager8; 28 28 Memory: TMemory8; 29 Console: TConsole ;29 Console: TConsole8; 30 30 Cpu: TCpu8; 31 31 Screen: TScreen8; … … 41 41 procedure SetPoweredOn(AValue: Boolean); override; 42 42 public 43 DeviceMa pper: TDeviceMapper16;43 DeviceManager: TDeviceManager16; 44 44 Memory: TMemory16; 45 Console: TConsole ;45 Console: TConsole16; 46 46 Cpu: TCpu16; 47 47 Screen: TScreen16; … … 72 72 constructor TMachine16.Create; 73 73 begin 74 DeviceMapper := TDeviceMapper16.Create; 75 Console := TConsole.Create; 76 Console.RegisterMapper16(DeviceMapper); 74 Cpu := TCpu16.Create; 75 Console := TConsole16.Create; 77 76 Screen := TScreen16.Create; 78 Screen.RegisterMapper16(DeviceMapper); 77 DeviceManager := TDeviceManager16.Create; 78 DeviceManager.RegisterDevice(Console); 79 DeviceManager.RegisterDevice(Screen); 80 DeviceManager.SetDataBus(Cpu.IO); 79 81 Memory := TMemory16.Create; 80 82 Memory.Size := 65535; 81 Cpu := TCpu16.Create; 82 Cpu.IO := DeviceMapper; 83 Cpu.Memory := Memory; 83 Memory.SetDataBus(Cpu.Memory); 84 84 end; 85 85 … … 87 87 begin 88 88 FreeAndNil(Cpu); 89 FreeAndNil(DeviceMa pper);89 FreeAndNil(DeviceManager); 90 90 FreeAndNil(Console); 91 91 FreeAndNil(Memory); … … 105 105 constructor TMachine8.Create; 106 106 begin 107 DeviceMapper := TDeviceMapper8.Create; 108 Console := TConsole.Create; 109 Console.RegisterMapper8(DeviceMapper); 107 Cpu := TCpu8.Create; 108 Console := TConsole8.Create; 110 109 Screen := TScreen8.Create; 111 Screen.RegisterMapper8(DeviceMapper); 110 DeviceManager := TDeviceManager8.Create; 111 DeviceManager.RegisterDevice(Console); 112 DeviceManager.RegisterDevice(Screen); 113 DeviceManager.SetDataBus(Cpu.IO); 112 114 Memory := TMemory8.Create; 113 115 Memory.Size := 255; 114 Cpu := TCpu8.Create; 115 Cpu.IO := DeviceMapper; 116 Cpu.Memory := Memory; 116 Memory.SetDataBus(Cpu.Memory); 117 117 end; 118 118 … … 120 120 begin 121 121 FreeAndNil(Cpu); 122 FreeAndNil(DeviceMa pper);122 FreeAndNil(DeviceManager); 123 123 FreeAndNil(Console); 124 124 FreeAndNil(Memory);
Note:
See TracChangeset
for help on using the changeset viewer.