Changeset 15 for trunk/Forms/FormCpu.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/Forms/FormCpu.pas

    r11 r15  
    1313  TFormCpu = class(TForm)
    1414    GroupBox1: TGroupBox;
    15     TimerUpdate: TTimer;
     15    Timer1: TTimer;
    1616    ValueListEditor1: TValueListEditor;
    17     procedure TimerUpdateTimer(Sender: TObject);
     17    procedure FormCreate(Sender: TObject);
     18    procedure FormShow(Sender: TObject);
     19    procedure Timer1Timer(Sender: TObject);
     20  private
     21    FReloadPending: Boolean;
    1822  public
    1923    Cpu: TCpuZ80;
     24    procedure Reload;
    2025  end;
    2126
     
    2732{ TFormCpu }
    2833
    29 procedure TFormCpu.TimerUpdateTimer(Sender: TObject);
     34procedure TFormCpu.Timer1Timer(Sender: TObject);
    3035begin
    31   ValueListEditor1.Values['AF'] := IntToHex(Cpu.AF.Value, 4);
    32   ValueListEditor1.Values['BC'] := IntToHex(Cpu.BC.Value, 4);
    33   ValueListEditor1.Values['DE'] := IntToHex(Cpu.DE.Value, 4);
    34   ValueListEditor1.Values['HL'] := IntToHex(Cpu.HL.Value, 4);
    35   ValueListEditor1.Values['PC'] := IntToHex(Cpu.PC, 4);
    36   ValueListEditor1.Values['SP'] := IntToHex(Cpu.SP, 4);
    37   ValueListEditor1.Values['IX'] := IntToHex(Cpu.IX, 4);
    38   ValueListEditor1.Values['IY'] := IntToHex(Cpu.IY, 4);
    39   ValueListEditor1.Values['R'] := IntToHex(Cpu.RegR, 2);
    40   ValueListEditor1.Values['I'] := IntToHex(Cpu.RegI, 2);
    41   ValueListEditor1.Values['IM'] := IntToStr(Cpu.InterruptMode);
    42   ValueListEditor1.Values['EI'] := IntToStr(Byte(Cpu.InterruptEnabled));
    43   ValueListEditor1.Values['Cycles'] := IntToStr(Cpu.Cycles);
    44   ValueListEditor1.Values['Ticks'] := IntToStr(Cpu.Ticks);
     36  if FReloadPending then begin
     37    FReloadPending := False;
     38    ValueListEditor1.Values['AF'] := IntToHex(Cpu.AF.Value, 4);
     39    ValueListEditor1.Values['BC'] := IntToHex(Cpu.BC.Value, 4);
     40    ValueListEditor1.Values['DE'] := IntToHex(Cpu.DE.Value, 4);
     41    ValueListEditor1.Values['HL'] := IntToHex(Cpu.HL.Value, 4);
     42    ValueListEditor1.Values['PC'] := IntToHex(Cpu.PC, 4);
     43    ValueListEditor1.Values['SP'] := IntToHex(Cpu.SP, 4);
     44    ValueListEditor1.Values['IX'] := IntToHex(Cpu.IX, 4);
     45    ValueListEditor1.Values['IY'] := IntToHex(Cpu.IY, 4);
     46    ValueListEditor1.Values['R'] := IntToHex(Cpu.RegR, 2);
     47    ValueListEditor1.Values['I'] := IntToHex(Cpu.RegI, 2);
     48    ValueListEditor1.Values['IM'] := IntToStr(Cpu.InterruptMode);
     49    ValueListEditor1.Values['EI'] := IntToStr(Byte(Cpu.InterruptEnabled));
     50    ValueListEditor1.Values['Cycles'] := IntToStr(Cpu.Cycles);
     51    ValueListEditor1.Values['Ticks'] := IntToStr(Cpu.Ticks);
     52  end;
     53end;
     54
     55procedure TFormCpu.FormCreate(Sender: TObject);
     56begin
     57  end;
     58
     59procedure TFormCpu.FormShow(Sender: TObject);
     60begin
     61  Reload;
     62end;
     63
     64procedure TFormCpu.Reload;
     65begin
     66  FReloadPending := True;
    4567end;
    4668
Note: See TracChangeset for help on using the changeset viewer.