Changeset 15 for trunk/Core.pas


Ignore:
Timestamp:
Apr 21, 2026, 6:15:40 PM (5 days ago)
Author:
chronos
Message:
  • Modified: Faster instruction stepping.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Core.pas

    r14 r15  
    5454    procedure TimerUpdateTimer(Sender: TObject);
    5555  private
    56     LastPc: Word;
     56    FUpdateInterfacePending: Boolean;
    5757    procedure DoChangePC(Address: Word);
    5858    procedure DebuggerChange(Sender: TObject);
     
    6868    Debugger: TDebugger;
    6969    Disassembler: TDisassembler;
    70     procedure UpdateDisassemblerPos;
    7170    procedure UpdateInterface;
    7271  end;
     
    242241procedure TCore.DataModuleCreate(Sender: TObject);
    243242begin
    244   LastPc := $ffff;
    245243  SharpMz800 := TSharpMz800.Create;
    246244  Disassembler := TDisassembler.Create;
     
    250248  Debugger.OnChange := DebuggerChange;
    251249  Debugger.Disassembler := Disassembler;
     250  UpdateInterface;
    252251  FormMain := TFormMain.Create(nil);
    253252  FormMain.Show;
     
    271270procedure TCore.TimerUpdateTimer(Sender: TObject);
    272271begin
    273   UpdateDisassemblerPos;
    274   UpdateInterface;
     272  if FUpdateInterfacePending then begin
     273    FUpdateInterfacePending := False;
     274    UpdateInterface;
     275  end;
    275276end;
    276277
     
    283284begin
    284285  if Assigned(FormCallStack) then FormCallStack.Reload;
    285 end;
    286 
    287 procedure TCore.UpdateDisassemblerPos;
    288 begin
    289   if LastPc <> SharpMz800.Cpu.Pc then begin
    290     if Assigned(FormDisassembler) then
    291       FormDisassembler.SelectAddress(SharpMz800.Cpu.PC);
    292     LastPc := SharpMz800.Cpu.Pc;
    293   end;
     286  if Assigned(FormCpu) then FormCpu.Reload;
     287  FUpdateInterfacePending := True;
    294288end;
    295289
Note: See TracChangeset for help on using the changeset viewer.