Changeset 5 for trunk/Core.pas
- Timestamp:
- Apr 18, 2026, 7:24:02 PM (9 days ago)
- File:
-
- 1 edited
-
trunk/Core.pas (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Core.pas
r4 r5 5 5 uses 6 6 Classes, SysUtils, ActnList, Controls, FormMain, Forms, ExtCtrls, FormMemory, 7 SharpMz800, FormDisassembler, FormCpu, FormScreen ;7 SharpMz800, FormDisassembler, FormCpu, FormScreen, FormMessages; 8 8 9 9 type … … 12 12 13 13 TCore = class(TDataModule) 14 AViewMessages: TAction; 15 AGoToAddress: TAction; 16 AReset: TAction; 14 17 AViewScreen: TAction; 15 18 AViewCpu: TAction; … … 28 31 TimerUpdate: TTimer; 29 32 procedure AExitExecute(Sender: TObject); 33 procedure AGoToAddressExecute(Sender: TObject); 30 34 procedure APauseExecute(Sender: TObject); 35 procedure AResetExecute(Sender: TObject); 31 36 procedure ARunExecute(Sender: TObject); 32 37 procedure AStepInExecute(Sender: TObject); … … 37 42 procedure AViewDissssemblerExecute(Sender: TObject); 38 43 procedure AViewMemoryExecute(Sender: TObject); 44 procedure AViewMessagesExecute(Sender: TObject); 39 45 procedure AViewScreenExecute(Sender: TObject); 40 46 procedure DataModuleCreate(Sender: TObject); … … 49 55 FormCpu: TFormCpu; 50 56 FormScreen: TFormScreen; 57 FormMessages: TFormMessages; 51 58 SharpMz800: TSharpMz800; 52 59 procedure UpdateDisassemblerPos; … … 63 70 64 71 uses 65 CpuZ80 ;72 CpuZ80, FormGoToAddress; 66 73 67 74 { TCore } … … 69 76 procedure TCore.DataModuleCreate(Sender: TObject); 70 77 begin 78 LastPc := $ffff; 71 79 SharpMz800 := TSharpMz800.Create; 72 80 // SharpMz800.PowerOn; … … 80 88 end; 81 89 90 procedure TCore.AGoToAddressExecute(Sender: TObject); 91 var 92 FormGoToAddress: TFormGoToAddress; 93 Address: LongInt; 94 begin 95 FormGoToAddress := TFormGoToAddress.Create(nil); 96 try 97 if FormGoToAddress.ShowModal = mrOk then begin 98 if TryStrToInt(FormGoToAddress.EditAddress.Text, Address) then 99 FormDisassembler.SelectAddress(Address); 100 end; 101 finally 102 FormGoToAddress.Free; 103 end; 104 end; 105 82 106 procedure TCore.APauseExecute(Sender: TObject); 83 107 begin 84 108 SharpMz800.Cpu.Running := False; 109 UpdateInterface; 110 end; 111 112 procedure TCore.AResetExecute(Sender: TObject); 113 var 114 IsRunning: Boolean; 115 begin 116 IsRunning := SharpMz800.Cpu.Running; 117 SharpMz800.Cpu.Running := False; 118 SharpMz800.Cpu.Reset; 119 SharpMz800.Cpu.Running := IsRunning; 85 120 UpdateInterface; 86 121 end; … … 142 177 if not Assigned(FormMemory) then begin 143 178 FormMemory := TFormMemory.Create(nil); 144 FormMemory.Size := SharpMz800.MappedMemory.Size; 145 FormMemory.Memory := SharpMz800.MappedMemory; 179 FormMemory.Areas.Add(SharpMz800.Memory); 180 FormMemory.Areas.Add(SharpMz800.BaseRom); 181 FormMemory.Areas.Add(SharpMz800.ExtendedRom); 182 FormMemory.Areas.Add(SharpMz800.VideoRam); 183 FormMemory.Areas.Add(SharpMz800.CharacterRom); 184 FormMemory.Areas.Add(SharpMz800.MappedIO); 146 185 end; 147 186 FormMemory.Show; 187 end; 188 189 procedure TCore.AViewMessagesExecute(Sender: TObject); 190 begin 191 if not Assigned(FormMessages) then begin 192 FormMessages := TFormMessages.Create(nil); 193 SharpMz800.OnMessage := FormMessages.AddMessage; 194 end; 195 FormMessages.Show; 148 196 end; 149 197 … … 162 210 if Assigned(FormMemory) then FreeAndNil(FormMemory); 163 211 if Assigned(FormScreen) then FreeAndNil(FormScreen); 212 if Assigned(FormMessages) then FreeAndNil(FormMessages); 164 213 FreeAndNil(FormMain); 165 214 FreeAndNil(SharpMz800);
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/mzxemu/chrome/site/your_project_logo.png)