Ignore:
Timestamp:
Nov 2, 2023, 11:18:06 PM (7 months ago)
Author:
chronos
Message:
  • Added: Storage form.
  • Added: Dissasembler form.
  • Added: Debug and release build modes.
  • Added: Support for interface translation.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ByteArray/Forms/FormSourceEditor.pas

    r48 r50  
    55uses
    66  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, Menus,
    7   ActnList, FormMessages, FormAssembler, Project, Common.FormEx;
     7  ActnList, FormMessages, FormAssembler, Project, Common.FormEx, Assembler,
     8  Machine, Memory;
    89
    910type
     
    1314  TFormSourceEditor = class(TFormEx)
    1415    AClose: TAction;
     16    ACompile: TAction;
     17    AStop: TAction;
     18    APause: TAction;
     19    AStepOver: TAction;
     20    AStepOut: TAction;
     21    AStepIn: TAction;
     22    ARunToCursor: TAction;
     23    ARun: TAction;
    1524    ANew: TAction;
    1625    ASaveAs: TAction;
     
    2231    MainMenu1: TMainMenu;
    2332    MenuItem1: TMenuItem;
     33    MenuItem10: TMenuItem;
     34    MenuItem11: TMenuItem;
     35    MenuItem12: TMenuItem;
     36    MenuItem13: TMenuItem;
     37    MenuItem14: TMenuItem;
     38    MenuItem15: TMenuItem;
     39    MenuItem16: TMenuItem;
     40    MenuItem17: TMenuItem;
    2441    MenuItem2: TMenuItem;
    2542    MenuItem3: TMenuItem;
     
    2946    MenuItem7: TMenuItem;
    3047    MenuItem8: TMenuItem;
     48    MenuItem9: TMenuItem;
    3149    Separator1: TMenuItem;
    3250    PanelBottom: TPanel;
     
    3452    Splitter1: TSplitter;
    3553    procedure ACloseExecute(Sender: TObject);
     54    procedure ACompileExecute(Sender: TObject);
    3655    procedure AExitExecute(Sender: TObject);
    3756    procedure ANewExecute(Sender: TObject);
    3857    procedure AOpenExecute(Sender: TObject);
     58    procedure ARunExecute(Sender: TObject);
    3959    procedure ASaveAsExecute(Sender: TObject);
    4060    procedure ASaveExecute(Sender: TObject);
     61    procedure AStopExecute(Sender: TObject);
    4162    procedure FormCreate(Sender: TObject);
    4263    procedure FormDestroy(Sender: TObject);
    4364    procedure FormShow(Sender: TObject);
    4465  public
     66    Assembler: TAssembler;
    4567    FormMessages: TFormMessages;
    4668    FormAssembler: TFormAssembler;
    4769    Project: TProject;
     70    CompiledProgram: TMemory;
     71    Machine: TMachine;
    4872    procedure DockInit;
    4973    procedure UpdateInterface;
     
    6286procedure TFormSourceEditor.FormCreate(Sender: TObject);
    6387begin
     88  CompiledProgram := TMemory.Create;
     89  Assembler := TAssembler.Create;
    6490  FormMessages := TFormMessages.Create(nil);
    6591  FormAssembler := TFormAssembler.Create(nil);
     
    82108end;
    83109
     110procedure TFormSourceEditor.ACompileExecute(Sender: TObject);
     111begin
     112  AStop.Execute;
     113  with Assembler do begin
     114    Compile(FormAssembler.SynEdit1.Lines.Text);
     115    //Memory.SaveToFile('compiled.bin');
     116    CompiledProgram.Assign(Memory);
     117    Machine.Memory.Position := 0;
     118    Machine.Memory.WriteMemoryPos(CompiledProgram);
     119  end;
     120  if FormMessages.Visible then
     121    FormMessages.Reload;
     122end;
     123
    84124procedure TFormSourceEditor.AOpenExecute(Sender: TObject);
    85125var
     
    93133    OpenDialog.Free;
    94134  end;
     135end;
     136
     137procedure TFormSourceEditor.ARunExecute(Sender: TObject);
     138begin
     139  ACompile.Execute;
     140  Machine.PowerOn;
    95141end;
    96142
     
    113159end;
    114160
     161procedure TFormSourceEditor.AStopExecute(Sender: TObject);
     162begin
     163  Machine.PowerOff;
     164end;
     165
    115166procedure TFormSourceEditor.FormDestroy(Sender: TObject);
    116167begin
    117168  FreeAndNil(FormAssembler);
    118169  FreeAndNil(FormMessages);
     170  FreeAndNil(Assembler);
     171  FreeAndNil(CompiledProgram);
    119172end;
    120173
Note: See TracChangeset for help on using the changeset viewer.