Changeset 13 for trunk/Core.pas
- Timestamp:
- Apr 21, 2026, 2:55:51 PM (6 days ago)
- File:
-
- 1 edited
-
trunk/Core.pas (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Core.pas
r12 r13 5 5 uses 6 6 Classes, SysUtils, ActnList, Controls, FormMain, Forms, ExtCtrls, FormMemory, 7 SharpMz800, FormDisassembler, FormCpu, FormScreen, FormMessages; 7 SharpMz800, FormDisassembler, FormCpu, FormScreen, FormMessages, FormCallStack, 8 Debugger, Disassembler; 8 9 9 10 type … … 12 13 13 14 TCore = class(TDataModule) 15 AViewCallStack: TAction; 14 16 AInstructionSetGen: TAction; 15 17 AViewMessages: TAction; … … 42 44 procedure AStepOverExecute(Sender: TObject); 43 45 procedure AStopExecute(Sender: TObject); 46 procedure AViewCallStackExecute(Sender: TObject); 44 47 procedure AViewCpuExecute(Sender: TObject); 45 48 procedure AViewDissssemblerExecute(Sender: TObject); … … 53 56 LastPc: Word; 54 57 procedure DoChangePC(Address: Word); 58 procedure DebuggerChange(Sender: TObject); 55 59 public 56 60 FormMain: TFormMain; … … 60 64 FormScreen: TFormScreen; 61 65 FormMessages: TFormMessages; 66 FormCallStack: TFormCallStack; 62 67 SharpMz800: TSharpMz800; 68 Debugger: TDebugger; 69 Disassembler: TDisassembler; 63 70 procedure UpdateDisassemblerPos; 64 71 procedure UpdateInterface; … … 82 89 LastPc := $ffff; 83 90 SharpMz800 := TSharpMz800.Create; 91 Disassembler := TDisassembler.Create; 92 Disassembler.Memory := SharpMz800.MappedMemory; 93 Debugger := TDebugger.Create; 94 Debugger.Cpu := SharpMz800.Cpu; 95 Debugger.OnChange := DebuggerChange; 96 Debugger.Disassembler := Disassembler; 84 97 // SharpMz800.PowerOn; 85 98 FormMain := TFormMain.Create(nil); … … 142 155 procedure TCore.ARunToCursorExecute(Sender: TObject); 143 156 begin 144 SharpMz800.Cpu.DebugMode := dmStopAddress;145 SharpMz800.Cpu.DebugStopAddress := FormDisassembler.GetCurrentAddress;146 SharpMz800.Cpu.Running := True;157 Debugger.DebugMode := dmStopAddress; 158 Debugger.DebugStopAddress := FormDisassembler.GetCurrentAddress; 159 Debugger.Cpu.Running := True; 147 160 UpdateInterface; 148 161 end; … … 150 163 procedure TCore.AStepInExecute(Sender: TObject); 151 164 begin 152 SharpMz800.Cpu.DebugMode := dmStepIn;153 SharpMz800.Cpu.Running := True;165 Debugger.DebugMode := dmStepIn; 166 Debugger.Cpu.Running := True; 154 167 UpdateInterface; 155 168 end; … … 157 170 procedure TCore.AStepOutExecute(Sender: TObject); 158 171 begin 159 SharpMz800.Cpu.DebugMode := dmStepOut;160 SharpMz800.Cpu.Running := True;172 Debugger.DebugMode := dmStepOut; 173 Debugger.Cpu.Running := True; 161 174 UpdateInterface; 162 175 end; … … 164 177 procedure TCore.AStepOverExecute(Sender: TObject); 165 178 begin 166 SharpMz800.Cpu.DebugMode := dmStepOver;167 SharpMz800.Cpu.Running := True;179 Debugger.DebugMode := dmStepOver; 180 Debugger.Cpu.Running := True; 168 181 UpdateInterface; 169 182 end; … … 174 187 SharpMz800.Cpu.Reset; 175 188 UpdateInterface; 189 end; 190 191 procedure TCore.AViewCallStackExecute(Sender: TObject); 192 begin 193 if not Assigned(FormCallStack) then begin 194 FormCallStack := TFormCallStack.Create(nil); 195 FormCallStack.Debugger := Debugger; 196 end; 197 FormCallStack.Show; 176 198 end; 177 199 … … 189 211 if not Assigned(FormDisassembler) then begin 190 212 FormDisassembler := TFormDisassembler.Create(nil); 191 FormDisassembler.Disassembler.Memory := SharpMz800.MappedMemory;192 213 FormDisassembler.OnChangePC := DoChangePC; 193 FormDisassembler.Cpu := SharpMz800.Cpu; 214 FormDisassembler.Debugger := Debugger; 215 FormDisassembler.Disassembler := Disassembler; 194 216 SharpMz800.OnMemoryMappingChange := FormDisassembler.Disassemble; 195 217 end; … … 236 258 if Assigned(FormScreen) then FreeAndNil(FormScreen); 237 259 if Assigned(FormMessages) then FreeAndNil(FormMessages); 260 if Assigned(FormCallStack) then FreeAndNil(FormCallStack); 238 261 FreeAndNil(FormMain); 262 FreeAndNil(Debugger); 263 FreeAndNil(Disassembler); 239 264 FreeAndNil(SharpMz800); 240 265 end; … … 249 274 begin 250 275 SharpMz800.Cpu.PC := Address; 276 end; 277 278 procedure TCore.DebuggerChange(Sender: TObject); 279 begin 280 if Assigned(FormCallStack) then FormCallStack.Reload; 251 281 end; 252 282
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)