Changeset 11 for trunk/Forms


Ignore:
Timestamp:
Apr 20, 2026, 11:55:57 PM (3 weeks ago)
Author:
chronos
Message:
  • Added: Show comments in disassembled addresses.
  • Fixed: Stepping in code.
  • Modified: Show more registers in CPU view.
Location:
trunk/Forms
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/FormCpu.lfm

    r2 r11  
    11object FormCpu: TFormCpu
    22  Left = 834
    3   Height = 438
     3  Height = 657
    44  Top = 501
    5   Width = 476
     5  Width = 274
    66  Caption = 'CPU'
    7   ClientHeight = 438
    8   ClientWidth = 476
     7  ClientHeight = 657
     8  ClientWidth = 274
    99  DesignTimePPI = 144
    10   LCLVersion = '2.2.6.0'
     10  LCLVersion = '4.6.0.0'
    1111  object GroupBox1: TGroupBox
    1212    Left = 22
    13     Height = 370
     13    Height = 546
    1414    Top = 22
    1515    Width = 230
    1616    Caption = 'Registers'
    17     ClientHeight = 343
     17    ClientHeight = 519
    1818    ClientWidth = 228
    1919    TabOrder = 0
    2020    object ValueListEditor1: TValueListEditor
    2121      Left = 16
    22       Height = 323
     22      Height = 499
    2323      Top = 5
    2424      Width = 192
    25       FixedCols = 0
     25      Anchors = [akTop, akLeft, akRight, akBottom]
    2626      RowCount = 2
    2727      TabOrder = 0
  • trunk/Forms/FormCpu.pas

    r9 r11  
    3535  ValueListEditor1.Values['PC'] := IntToHex(Cpu.PC, 4);
    3636  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);
    3744  ValueListEditor1.Values['Ticks'] := IntToStr(Cpu.Ticks);
    3845end;
  • trunk/Forms/FormDisassembler.lfm

    r5 r11  
    3434      item
    3535        Caption = 'Parameters'
    36         Width = 691
     36        Width = 100
     37      end   
     38      item
     39        Caption = 'Comment'
     40        Width = 591
    3741      end>
    3842    OwnerData = True
     43    PopupMenu = PopupMenu1
    3944    ReadOnly = True
    4045    RowSelect = True
     
    4348    OnData = ListView1Data
    4449  end
     50  object PopupMenu1: TPopupMenu
     51    Left = 433
     52    Top = 343
     53    object MenuItemSetAddress: TMenuItem
     54      Caption = 'Set PC to address'
     55      OnClick = MenuItemSetAddressClick
     56    end
     57  end
    4558end
  • trunk/Forms/FormDisassembler.pas

    r6 r11  
    55uses
    66  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls,
    7   ExtCtrls, Disassembler;
     7  ExtCtrls, Menus, Disassembler;
    88
    99type
     10  TChangePCEvent = procedure (Address: Word) of object;
    1011
    1112  { TFormDisassembler }
     
    1314  TFormDisassembler = class(TForm)
    1415    ListView1: TListView;
     16    MenuItemSetAddress: TMenuItem;
     17    PopupMenu1: TPopupMenu;
    1518    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    1619    procedure FormCreate(Sender: TObject);
     
    1821    procedure FormShow(Sender: TObject);
    1922    procedure ListView1Data(Sender: TObject; Item: TListItem);
     23    procedure MenuItemSetAddressClick(Sender: TObject);
     24  private
     25    FOnChangePC: TChangePCEvent;
     26    procedure DoChangePC(Address: Word);
    2027  public
    2128    Disassembler: TDisassembler;
     
    2330    procedure SelectAddress(Address: Word);
    2431    procedure ReloadList;
     32    property OnChangePC: TChangePCEvent read FOnChangePC write FOnChangePC;
    2533  end;
    2634
     
    6472    Item.SubItems.Add(Name);
    6573    Item.SubItems.Add(Parameters);
     74    Item.SubItems.Add(Comment);
    6675  end;
    6776end;
    6877
    69 procedure TFormDisassembler.Disassemble;
     78procedure TFormDisassembler.MenuItemSetAddressClick(Sender: TObject);
     79begin
     80  if Assigned(ListView1.Selected) then begin
     81    DoChangePC(TDecodedInstruction(ListView1.Selected.Data).Address);
     82    SelectAddress(TDecodedInstruction(ListView1.Selected.Data).Address);
     83  end;
     84end;
     85
     86procedure TFormDisassembler.Disassemble(Sender: TObject);
    7087begin
    7188  Disassembler.Disassemble;
    7289  ReloadList;
     90end;
     91
     92procedure TFormDisassembler.DoChangePC(Address: Word);
     93begin
     94  if Assigned(FOnChangePC) then FOnChangePC(Address);
    7395end;
    7496
Note: See TracChangeset for help on using the changeset viewer.