Ignore:
Timestamp:
Apr 18, 2026, 7:24:02 PM (8 days ago)
Author:
chronos
Message:
  • Added: Some I/O ports handling.
  • Added: Messages form for capturing error messages.
  • Added: Go to address action.
  • Added: Allow to view all used memory areas in Memory window.
  • Added: Allow to reset CPU execution.
  • Modified: Improved memory mapping for MZ-700 and MZ-800 modes.
  • Fixed: Focusing currently executed instruction position.
  • Fixed: Wrong order or 8-bit registers in 16-bit pair.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/FormMemory.pas

    r2 r5  
    55uses
    66  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls,
    7   Memory;
     7  StdCtrls, Memory, Generics.Collections;
    88
    99type
     
    1313
    1414  TFormMemory = class(TForm)
     15    ComboBoxArea: TComboBox;
     16    Label1: TLabel;
    1517    ListViewMemory: TListView;
    1618    Timer1: TTimer;
     19    procedure ComboBoxAreaSelect(Sender: TObject);
     20    procedure FormCreate(Sender: TObject);
     21    procedure FormDestroy(Sender: TObject);
    1722    procedure FormShow(Sender: TObject);
    1823    procedure ListViewMemoryData(Sender: TObject; Item: TListItem);
    1924    procedure Timer1Timer(Sender: TObject);
    20   public
     25  private
    2126    Memory: TMemory;
    2227    Size: Integer;
     28  public
     29    Areas: TObjectList<TMemory>;
     30    procedure ReloadAreas;
    2331    procedure Reload;
    2432  end;
     
    6573procedure TFormMemory.FormShow(Sender: TObject);
    6674begin
     75  ReloadAreas;
     76  ComboBoxAreaSelect(nil);
     77end;
     78
     79procedure TFormMemory.FormCreate(Sender: TObject);
     80begin
     81  Areas := TObjectList<TMemory>.Create(False);
     82end;
     83
     84procedure TFormMemory.ComboBoxAreaSelect(Sender: TObject);
     85begin
     86  if ComboBoxArea.ItemIndex >= 0 then begin
     87    Memory := TMemory(ComboBoxArea.Items.Objects[ComboBoxArea.ItemIndex]);
     88    Size := Memory.Size;
     89  end else begin
     90    Memory := nil;
     91    Size := 0;
     92  end;
    6793  Reload;
     94end;
     95
     96procedure TFormMemory.FormDestroy(Sender: TObject);
     97begin
     98  FreeAndNil(Areas);
    6899end;
    69100
     
    73104end;
    74105
     106procedure TFormMemory.ReloadAreas;
     107var
     108  I: Integer;
     109begin
     110  ComboBoxArea.Items.BeginUpdate;
     111  try
     112    while ComboBoxArea.Items.Count > Areas.Count do
     113      ComboBoxArea.Items.Delete(ComboBoxArea.Items.Count - 1);
     114    while ComboBoxArea.Items.Count < Areas.Count do
     115      ComboBoxArea.Items.Add('');
     116    for I := 0 to Areas.Count - 1 do begin
     117      ComboBoxArea.Items.Strings[I] := Areas[I].Title;
     118      ComboBoxArea.Items.Objects[I] := Areas[I];
     119    end;
     120    if (ComboBoxArea.ItemIndex = -1) and (ComboBoxArea.Items.Count > 0) then
     121      ComboBoxArea.ItemIndex := 0;
     122  finally
     123    ComboBoxArea.Items.EndUpdate;
     124  end;
     125end;
     126
    75127end.
    76128
Note: See TracChangeset for help on using the changeset viewer.