Changeset 10


Ignore:
Timestamp:
Aug 7, 2024, 12:12:42 AM (2 months ago)
Author:
chronos
Message:
  • Modified: Improved serial console handling.
Location:
branches/ByteArray
Files:
1 added
19 edited

Legend:

Unmodified
Added
Removed
  • branches/ByteArray/Assembler.pas

    r9 r10  
    2929    function ParseOrg: Boolean;
    3030    function ParseInstruction: Boolean;
    31     function ParseInstructionParameter(ParamType: TParamType; Memory: TMemory): Boolean;
     31    function ParseInstructionParameter(ParamType: TParamType; Memory: TMemory;
     32      Offset: Integer): Boolean;
    3233    function ParseLabel: Boolean;
    3334    procedure UpdateLabelRefs;
    34     function ParseNumParam(out Number: TInt): Boolean;
     35    function ParseNumParam(Offset: Integer; out Number: TInt): Boolean;
    3536    function ParseReg(out RegIndex: TRegIndex): Boolean;
    3637    function ParseDataWidth(out Size: TIntSize): Boolean;
     
    9697end;
    9798
    98 function TAssembler.ParseNumParam(out Number: TInt): Boolean;
     99function TAssembler.ParseNumParam(Offset: Integer; out Number: TInt): Boolean;
    99100var
    100101  Token: TToken;
     
    116117      Result := True;
    117118    end else begin
    118       LabelRefs.Add(TLabelRef.Create(Token.Value, Memory.Position + 1, Parser.Pos.Pos));
     119      LabelRefs.Add(TLabelRef.Create(Token.Value, Memory.Position + 1 + Offset, Parser.Pos.Pos));
    119120      Number := 0;
    120121      Result := True;
     
    252253    Result := True;
    253254    while True do begin
    254       if ParseNumParam(Number) then begin
     255      if ParseNumParam(0, Number) then begin
    255256        Memory.WritePos(1, Number);
    256257      end else begin
     
    333334          LastMessagesCount := Messages.Count;
    334335          ParamMemory.Clear;
    335           if ParseInstructionParameter(ParamType, ParamMemory) and
     336          if ParseInstructionParameter(ParamType, ParamMemory, InstructionMemory.Position) and
    336337            (LastMessagesCount = Messages.Count) then begin
    337338            ParamOk := True;
     
    379380end;
    380381
    381 function TAssembler.ParseInstructionParameter(ParamType: TParamType; Memory: TMemory): Boolean;
     382function TAssembler.ParseInstructionParameter(ParamType: TParamType; Memory: TMemory;
     383  Offset: Integer): Boolean;
    382384var
    383385  LastPos: TParserPos;
     
    391393  case ParamType of
    392394    ptData: begin
    393       if ParseNumParam(Number) then Memory.WritePos(InstDataWidth, Number)
     395      if ParseNumParam(Offset, Number) then
     396      Memory.WritePos(InstDataWidth, Number)
    394397        else begin
    395398          Error(SExpectedNumber, Parser.Pos.Pos);
     
    398401    end;
    399402    ptAddress: begin
    400       if ParseNumParam(Number) then Memory.WritePos(InstAddressWidth, Number)
     403      if ParseNumParam(Offset, Number) then
     404      Memory.WritePos(InstAddressWidth, Number)
    401405        else begin
    402406          Error(SExpectedNumber, Parser.Pos.Pos);
     
    425429        Memory.WritePos(1, Byte(RegIndex));
    426430        if not Parser.Expect(tkSpecialSymbol, '+') then Result := False;
    427         if ParseNumParam(Number) then Memory.WritePos(InstAddressWidth, Number)
     431        if ParseNumParam(Offset, Number) then Memory.WritePos(InstAddressWidth, Number)
    428432          else begin
    429433            Error(SExpectedNumericIndex, Parser.Pos.Pos);
  • branches/ByteArray/Core.lfm

    r5 r10  
    55  Height = 729
    66  HorizontalOffset = 992
    7   VerticalOffset = 653
     7  VerticalOffset = 644
    88  Width = 1074
    99  PPI = 144
     
    9393      OnExecute = AAboutExecute
    9494    end
     95    object APowerOn: TAction
     96      Caption = 'Power on'
     97      OnExecute = APowerOnExecute
     98    end
     99    object APowerOff: TAction
     100      Caption = 'Power off'
     101      OnExecute = APowerOffExecute
     102    end
     103    object ARestart: TAction
     104      Caption = 'Restart'
     105      OnExecute = ARestartExecute
     106    end
    95107  end
    96108end
  • branches/ByteArray/Core.lrj

    r5 r10  
    1212{"hash":174433893,"name":"tcore.aconsole.caption","sourcebytes":[67,111,110,115,111,108,101],"value":"Console"},
    1313{"hash":213582195,"name":"tcore.asettings.caption","sourcebytes":[83,101,116,116,105,110,103,115],"value":"Settings"},
    14 {"hash":4691652,"name":"tcore.aabout.caption","sourcebytes":[65,98,111,117,116],"value":"About"}
     14{"hash":4691652,"name":"tcore.aabout.caption","sourcebytes":[65,98,111,117,116],"value":"About"},
     15{"hash":115098670,"name":"tcore.apoweron.caption","sourcebytes":[80,111,119,101,114,32,111,110],"value":"Power on"},
     16{"hash":230965926,"name":"tcore.apoweroff.caption","sourcebytes":[80,111,119,101,114,32,111,102,102],"value":"Power off"},
     17{"hash":147499204,"name":"tcore.arestart.caption","sourcebytes":[82,101,115,116,97,114,116],"value":"Restart"}
    1518]}
  • branches/ByteArray/Core.pas

    r9 r10  
    1616    AAbout: TAction;
    1717    AConsole: TAction;
     18    ARestart: TAction;
     19    APowerOff: TAction;
     20    APowerOn: TAction;
    1821    ActionList1: TActionList;
    1922    ADebugger: TAction;
     
    3841    procedure AFullscreenExecute(Sender: TObject);
    3942    procedure AMemoryExecute(Sender: TObject);
     43    procedure APowerOffExecute(Sender: TObject);
     44    procedure APowerOnExecute(Sender: TObject);
     45    procedure ARestartExecute(Sender: TObject);
    4046    procedure AScreenExecute(Sender: TObject);
    4147    procedure ASettingsExecute(Sender: TObject);
     
    128134  if not Assigned(FormConsole) then begin
    129135    FormConsole := TFormConsole.Create(nil);
    130     Machine.Serial.OnWrite := FormConsole.ConsoleWrite;
     136    FormConsole.Serial := Machine.Serial;
    131137  end;
    132138  FormConsole.Show;
     
    158164  end;
    159165  FormMemory.Show;
     166end;
     167
     168procedure TCore.APowerOffExecute(Sender: TObject);
     169begin
     170  Machine.PowerOff;
     171end;
     172
     173procedure TCore.APowerOnExecute(Sender: TObject);
     174begin
     175  Machine.PowerOn;
     176end;
     177
     178procedure TCore.ARestartExecute(Sender: TObject);
     179begin
     180  Machine.PowerOff;
     181  Machine.PowerOn;
    160182end;
    161183
  • branches/ByteArray/Cpu.pas

    r9 r10  
    157157procedure TCpu.Push(Value: TInt; Size: TIntSize);
    158158begin
    159   SP := SP - Size;
     159  SP := (SP - Size + Memory.GetSize) mod Memory.GetSize;
    160160  Memory.Write(SP, Size, Value);
    161161end;
     
    164164begin
    165165  Result := Memory.Read(SP, Size);
    166   SP := SP + Size;
     166  SP := (SP + Size) mod Memory.GetSize;
    167167end;
    168168
     
    740740  I: TRegIndex;
    741741begin
    742   DataWidth := 1;
    743   AddressWidth := 1;
     742  DataWidth := 2;
     743  AddressWidth := 2;
    744744  for I := Low(TRegIndex) to High(TRegIndex) do
    745745    Regs[I] := 0;
  • branches/ByteArray/Devices/Memory.pas

    r9 r10  
    3232    procedure FillZero;
    3333    procedure Clear;
     34    function ToString: string; override;
    3435    property Size: TInt read FSize write SetSize;
     36    constructor Create;
    3537    destructor Destroy; override;
    3638  end;
     
    144146end;
    145147
     148function TMemory.ToString: string;
     149var
     150  I: Integer;
     151begin
     152  Result := '';
     153  for I := 0 to FSize - 1 do
     154    Result := Result + ', ' + IntToStr(FData[I]);
     155  Delete(Result, 1, 2);
     156end;
     157
     158constructor TMemory.Create;
     159begin
     160  FSize := 0;
     161end;
     162
    146163destructor TMemory.Destroy;
    147164begin
  • branches/ByteArray/Devices/Serial.pas

    r9 r10  
    44
    55uses
    6   Classes, SysUtils, Device, Int, Channel;
     6  Classes, SysUtils, Device, Int, Channel, syncobjs;
    77
    88type
    9   TReadEvent = function: Byte of object;
    10   TWriteEvent = procedure (Value: Byte) of object;
    11 
    129  { TSerial }
    1310
    1411  TSerial = class(TDevice)
    1512  private
    16     FOnRead: TReadEvent;
    17     FOnWrite: TWriteEvent;
     13    FLock: TCriticalSection;
     14    FOnInput: TNotifyEvent;
     15    FOnOutput: TNotifyEvent;
     16    InputBuffer: string;
     17    OutputBuffer: string;
     18    function ReadData(Size: TIntSize): TInt;
     19    function ReadInputBufferCount(Size: TIntSize): TInt;
     20    function ReadOutputBufferCount(Size: TIntSize): TInt;
     21    procedure WriteData(Size: TIntSize; Value: TInt);
     22    procedure WriteInputBufferCount(Size: TIntSize; Value: TInt);
     23    procedure WriteOutputBufferCount(Size: TIntSize; Value: TInt);
    1824  public
    19     function ReadData(Size: TIntSize): TInt;
    20     procedure WriteData(Size: TIntSize; Value: TInt);
     25    constructor Create;
     26    destructor Destroy; override;
     27    function ReadOutputBuffer: string;
     28    procedure WriteInputBuffer(Text: string);
    2129    function GetHandlers: THandlers; override;
    22     property OnWrite: TWriteEvent read FOnWrite write FOnWrite;
    23     property OnRead: TReadEvent read FOnRead write FOnRead;
     30    property OnOutput: TNotifyEvent read FOnOutput write FOnOutput;
     31    property OnInput: TNotifyEvent read FOnInput write FOnInput;
    2432  end;
    2533
     
    3139function TSerial.ReadData(Size: TIntSize): TInt;
    3240begin
    33   if Assigned(FOnRead) then Result := FOnRead;
     41  FLock.Acquire;
     42  try
     43    if Length(InputBuffer) > 0 then begin
     44      Result := Ord(InputBuffer[1]);
     45      Delete(InputBuffer, 1, 1);
     46    end;
     47  finally
     48    FLock.Release;
     49  end;
     50end;
     51
     52function TSerial.ReadInputBufferCount(Size: TIntSize): TInt;
     53begin
     54  FLock.Acquire;
     55  try
     56    Result := Length(InputBuffer);
     57  finally
     58    FLock.Release;
     59  end;
     60end;
     61
     62function TSerial.ReadOutputBufferCount(Size: TIntSize): TInt;
     63begin
     64  FLock.Acquire;
     65  try
     66    Result := Length(OutputBuffer);
     67  finally
     68    FLock.Release;
     69  end;
    3470end;
    3571
    3672procedure TSerial.WriteData(Size: TIntSize; Value: TInt);
    3773begin
    38   if Assigned(FOnWrite) then FOnWrite(Value);
     74  FLock.Acquire;
     75  try
     76    OutputBuffer := OutputBuffer + Chr(Value);
     77  finally
     78    FLock.Release;
     79  end;
     80end;
     81
     82procedure TSerial.WriteInputBufferCount(Size: TIntSize; Value: TInt);
     83begin
     84  FLock.Acquire;
     85  try
     86    InputBuffer := '';
     87  finally
     88    FLock.Release;
     89  end;
     90end;
     91
     92procedure TSerial.WriteOutputBufferCount(Size: TIntSize; Value: TInt);
     93begin
     94  FLock.Acquire;
     95  try
     96    OutputBuffer := '';
     97  finally
     98    FLock.Release;
     99  end;
     100end;
     101
     102constructor TSerial.Create;
     103begin
     104  FLock := TCriticalSection.Create;
     105  OutputBuffer := '';
     106  InputBuffer := '';
     107end;
     108
     109destructor TSerial.Destroy;
     110begin
     111  FreeAndNil(FLock);
     112  inherited;
     113end;
     114
     115function TSerial.ReadOutputBuffer: string;
     116begin
     117  FLock.Acquire;
     118  try
     119    Result := OutputBuffer;
     120    OutputBuffer := '';
     121  finally
     122    FLock.Release;
     123  end;
     124end;
     125
     126procedure TSerial.WriteInputBuffer(Text: string);
     127begin
     128  FLock.Acquire;
     129  try
     130    InputBuffer := InputBuffer + Text;
     131  finally
     132    FLock.Release;
     133  end;
    39134end;
    40135
     
    43138  Result := THandlers.Create;
    44139  Result.ReadHandlers.Add(ReadData);
     140  Result.ReadHandlers.Add(ReadOutputBufferCount);
     141  Result.ReadHandlers.Add(ReadOutputBufferCount);
    45142  Result.WriteHandlers.Add(WriteData);
     143  Result.WriteHandlers.Add(WriteInputBufferCount);
     144  Result.WriteHandlers.Add(WriteOutputBufferCount);
    46145end;
    47146
  • branches/ByteArray/Forms/FormConsole.lfm

    r5 r10  
    11object FormConsole: TFormConsole
    2   Left = 780
     2  Left = 779
    33  Height = 689
    4   Top = 399
     4  Top = 375
    55  Width = 1002
    66  Caption = 'Console'
     
    88  ClientWidth = 1002
    99  DesignTimePPI = 144
    10   LCLVersion = '2.2.6.0'
     10  LCLVersion = '3.4.0.0'
    1111  object Memo1: TMemo
    1212    Left = 0
     
    2020    TabOrder = 0
    2121  end
     22  object Timer1: TTimer
     23    Interval = 100
     24    OnTimer = Timer1Timer
     25    Left = 314
     26    Top = 160
     27  end
    2228end
  • branches/ByteArray/Forms/FormConsole.pas

    r5 r10  
    44
    55uses
    6   Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Device;
     6  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
     7  Device, Serial;
    78
    89type
     
    1213  TFormConsole = class(TFormDevice)
    1314    Memo1: TMemo;
     15    Timer1: TTimer;
     16    procedure Timer1Timer(Sender: TObject);
     17  private
     18    FSerial: TSerial;
     19    procedure SetSerial(AValue: TSerial);
    1420  public
    15     procedure ConsoleWrite(Data: Byte);
     21    property Serial: TSerial read FSerial write SetSerial;
    1622  end;
    1723
     
    2127{$R *.lfm}
    2228
    23 procedure TFormConsole.ConsoleWrite(Data: Byte);
     29procedure TFormConsole.Timer1Timer(Sender: TObject);
    2430begin
    25   Memo1.Lines.Text := Memo1.Lines.Text + Chr(Data);
     31  Memo1.Lines.Text := Memo1.Lines.Text + FSerial.ReadOutputBuffer;
     32end;
     33
     34procedure TFormConsole.SetSerial(AValue: TSerial);
     35begin
     36  if FSerial = AValue then Exit;
     37  if Assigned(FSerial) then begin
     38    FSerial.OnOutput := nil;
     39  end;
     40  FSerial := AValue;
     41  if Assigned(FSerial) then begin
     42    Memo1.Lines.Text := FSerial.ReadOutputBuffer;
     43  end;
    2644end;
    2745
  • branches/ByteArray/Forms/FormMemory.lfm

    r5 r10  
    11object FormMemory: TFormMemory
    2   Left = 706
     2  Left = 705
    33  Height = 866
    4   Top = 311
     4  Top = 287
    55  Width = 1150
    66  Caption = 'Memory'
     
    88  ClientWidth = 1150
    99  DesignTimePPI = 144
     10  Menu = MainMenu1
    1011  OnShow = FormShow
    11   LCLVersion = '2.2.6.0'
     12  LCLVersion = '3.4.0.0'
    1213  object ListViewMemory: TListView
    1314    Left = 8
     
    4546    Top = 205
    4647  end
     48  object MainMenu1: TMainMenu
     49    Left = 246
     50    Top = 252
     51    object MenuItem1: TMenuItem
     52      Caption = 'Tools'
     53      object MenuItemClear: TMenuItem
     54        Caption = 'Clear'
     55        OnClick = MenuItemClearClick
     56      end
     57    end
     58  end
    4759end
  • branches/ByteArray/Forms/FormMemory.lrj

    r5 r10  
    33{"hash":128683235,"name":"tformmemory.listviewmemory.columns[0].caption","sourcebytes":[65,100,100,114,101,115,115],"value":"Address"},
    44{"hash":305313,"name":"tformmemory.listviewmemory.columns[1].caption","sourcebytes":[68,97,116,97],"value":"Data"},
    5 {"hash":4618201,"name":"tformmemory.listviewmemory.columns[2].caption","sourcebytes":[65,83,67,73,73],"value":"ASCII"}
     5{"hash":4618201,"name":"tformmemory.listviewmemory.columns[2].caption","sourcebytes":[65,83,67,73,73],"value":"ASCII"},
     6{"hash":5989939,"name":"tformmemory.menuitem1.caption","sourcebytes":[84,111,111,108,115],"value":"Tools"},
     7{"hash":4860802,"name":"tformmemory.menuitemclear.caption","sourcebytes":[67,108,101,97,114],"value":"Clear"}
    68]}
  • branches/ByteArray/Forms/FormMemory.pas

    r5 r10  
    55uses
    66  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls,
    7   Memory, Common.FormEx;
     7  Menus, Memory, Common.FormEx;
    88
    99type
     
    1313  TFormMemory = class(TFormEx)
    1414    ListViewMemory: TListView;
     15    MainMenu1: TMainMenu;
     16    MenuItem1: TMenuItem;
     17    MenuItemClear: TMenuItem;
    1518    Timer1: TTimer;
    1619    procedure FormShow(Sender: TObject);
    1720    procedure ListViewMemoryData(Sender: TObject; Item: TListItem);
     21    procedure MenuItemClearClick(Sender: TObject);
    1822    procedure Timer1Timer(Sender: TObject);
    1923  public
     
    5862end;
    5963
     64procedure TFormMemory.MenuItemClearClick(Sender: TObject);
     65begin
     66  Memory.FillZero;
     67  Reload;
     68end;
     69
    6070procedure TFormMemory.FormShow(Sender: TObject);
    6171begin
  • branches/ByteArray/Forms/FormScreen.lfm

    r5 r10  
    55  Width = 931
    66  Caption = 'Screen'
    7   ClientHeight = 642
     7  ClientHeight = 676
    88  ClientWidth = 931
    99  DesignTimePPI = 144
     
    1111  OnClose = FormClose
    1212  OnShow = FormShow
    13   LCLVersion = '2.2.6.0'
     13  LCLVersion = '3.4.0.0'
    1414  object Image1: TImage
    1515    Left = 0
    16     Height = 642
     16    Height = 676
    1717    Top = 0
    1818    Width = 931
     
    3737      end
    3838    end
     39    object MenuItem2: TMenuItem
     40      Caption = 'Tools'
     41      object MenuItem10: TMenuItem
     42        Action = Core.ASettings
     43      end
     44      object Separator2: TMenuItem
     45        Caption = '-'
     46      end
     47      object MenuItem3: TMenuItem
     48        Action = Core.ASourceEditor
     49      end
     50      object MenuItem5: TMenuItem
     51        Action = Core.ADebugger
     52      end
     53      object MenuItem8: TMenuItem
     54        Action = Core.ADisassembler
     55      end
     56    end
     57    object MenuItem13: TMenuItem
     58      Caption = 'Execution'
     59      object MenuItem14: TMenuItem
     60        Action = Core.APowerOn
     61      end
     62      object MenuItem15: TMenuItem
     63        Action = Core.APowerOff
     64      end
     65      object MenuItem16: TMenuItem
     66        Action = Core.ARestart
     67      end
     68    end
    3969    object MenuItem1: TMenuItem
    4070      Caption = 'View'
     
    5585      end
    5686    end
    57     object MenuItem2: TMenuItem
    58       Caption = 'Tools'
    59       object MenuItem10: TMenuItem
    60         Action = Core.ASettings
    61       end
    62       object Separator2: TMenuItem
    63         Caption = '-'
    64       end
    65       object MenuItem3: TMenuItem
    66         Action = Core.ASourceEditor
    67       end
    68       object MenuItem5: TMenuItem
    69         Action = Core.ADebugger
    70       end
    71       object MenuItem8: TMenuItem
    72         Action = Core.ADisassembler
    73       end
    74     end
    7587    object MenuItem11: TMenuItem
    7688      Caption = 'Help'
  • branches/ByteArray/Forms/FormScreen.lrj

    r5 r10  
    22{"hash":94014398,"name":"tformscreen.caption","sourcebytes":[83,99,114,101,101,110],"value":"Screen"},
    33{"hash":315429,"name":"tformscreen.menuitem4.caption","sourcebytes":[70,105,108,101],"value":"File"},
     4{"hash":5989939,"name":"tformscreen.menuitem2.caption","sourcebytes":[84,111,111,108,115],"value":"Tools"},
     5{"hash":195880126,"name":"tformscreen.menuitem13.caption","sourcebytes":[69,120,101,99,117,116,105,111,110],"value":"Execution"},
    46{"hash":380871,"name":"tformscreen.menuitem1.caption","sourcebytes":[86,105,101,119],"value":"View"},
    5 {"hash":5989939,"name":"tformscreen.menuitem2.caption","sourcebytes":[84,111,111,108,115],"value":"Tools"},
    67{"hash":322608,"name":"tformscreen.menuitem11.caption","sourcebytes":[72,101,108,112],"value":"Help"}
    78]}
  • branches/ByteArray/Forms/FormScreen.pas

    r5 r10  
    1818    MenuItem11: TMenuItem;
    1919    MenuItem12: TMenuItem;
     20    MenuItem13: TMenuItem;
     21    MenuItem14: TMenuItem;
     22    MenuItem15: TMenuItem;
     23    MenuItem16: TMenuItem;
    2024    MenuItem2: TMenuItem;
    2125    MenuItem3: TMenuItem;
  • branches/ByteArray/Instructions.pas

    r5 r10  
    107107  AddNew(inSubSize, 'SUB', [ptDataWidth, ptReg, ptReg], 'Subtracts second register from first register.');
    108108  AddNew(inInput, 'IN', [ptReg, ptRegIndirect], 'Reads value from input port to register.');
     109  AddNew(inInputSize, 'IN', [ptDataWidth, ptReg, ptRegIndirect], 'Reads value from input port to register.');
    109110  AddNew(inOutput, 'OUT', [ptRegIndirect, ptReg], 'Writes value from register to output port.');
     111  AddNew(inOutputSize, 'OUT', [ptDataWidth, ptRegIndirect, ptReg], 'Writes value from register to output port.');
    110112  AddNew(inJumpZero, 'JZ', [ptReg, ptAddress], 'Jumps to given address if value of register is zero');
    111113  AddNew(inJumpNotZero, 'JNZ', [ptReg, ptAddress], 'Jumps to given address if value of register is not zero');
  • branches/ByteArray/Languages/ByteArray.cs.po

    r5 r10  
    164164msgstr "Paměť"
    165165
     166#: tcore.apoweroff.caption
     167msgid "Power off"
     168msgstr ""
     169
     170#: tcore.apoweron.caption
     171msgid "Power on"
     172msgstr ""
     173
    166174#: tcore.applicationinfo1.description
    167175msgid "Virtual machine and development environment"
    168176msgstr "Virtuální počítač a vývojové prostředí"
     177
     178#: tcore.arestart.caption
     179msgid "Restart"
     180msgstr ""
    169181
    170182#: tcore.ascreen.caption
     
    192204msgstr ""
    193205
     206#: tformconsole.caption
     207#, fuzzy
     208msgctxt "tformconsole.caption"
     209msgid "Console"
     210msgstr "Konzola"
     211
    194212#: tformdebugger.caption
    195213msgctxt "tformdebugger.caption"
     
    222240msgstr "ASCII"
    223241
     242#: tformmemory.menuitem1.caption
     243#, fuzzy
     244msgctxt "tformmemory.menuitem1.caption"
     245msgid "Tools"
     246msgstr "Nástroje"
     247
     248#: tformmemory.menuitemclear.caption
     249msgid "Clear"
     250msgstr ""
     251
    224252#: tformscreen.caption
    225253msgctxt "tformscreen.caption"
     
    237265msgstr "Nápověda"
    238266
     267#: tformscreen.menuitem13.caption
     268msgid "Execution"
     269msgstr ""
     270
    239271#: tformscreen.menuitem2.caption
    240272msgctxt "tformscreen.menuitem2.caption"
  • branches/ByteArray/Languages/ByteArray.pot

    r5 r10  
    154154msgstr ""
    155155
     156#: tcore.apoweroff.caption
     157msgid "Power off"
     158msgstr ""
     159
     160#: tcore.apoweron.caption
     161msgid "Power on"
     162msgstr ""
     163
    156164#: tcore.applicationinfo1.description
    157165msgid "Virtual machine and development environment"
     166msgstr ""
     167
     168#: tcore.arestart.caption
     169msgid "Restart"
    158170msgstr ""
    159171
     
    182194msgstr ""
    183195
     196#: tformconsole.caption
     197msgctxt "tformconsole.caption"
     198msgid "Console"
     199msgstr ""
     200
    184201#: tformdebugger.caption
    185202msgctxt "tformdebugger.caption"
     
    212229msgstr ""
    213230
     231#: tformmemory.menuitem1.caption
     232msgctxt "tformmemory.menuitem1.caption"
     233msgid "Tools"
     234msgstr ""
     235
     236#: tformmemory.menuitemclear.caption
     237msgid "Clear"
     238msgstr ""
     239
    214240#: tformscreen.caption
    215241msgctxt "tformscreen.caption"
     
    227253msgstr ""
    228254
     255#: tformscreen.menuitem13.caption
     256msgid "Execution"
     257msgstr ""
     258
    229259#: tformscreen.menuitem2.caption
    230260msgctxt "tformscreen.menuitem2.caption"
  • branches/ByteArray/Sample.asm

    r5 r10  
    3232
    3333Start:
    34     LD   R0, 64
    35     LD   R1, 8
    36     OUT  (R1), R0
    37     LD   R1, 0
    38     LD   R2, 10
    39     OUT  (R1), R0
    40 Loop:
    41     INC  R0
    42     DEC  R2
    43     JNZ  R2, Loop
     34    LD   R0, Hello
     35    LD   R1, 12
     36    CALL WriteStr
     37
     38    ;LD   R0, 64
     39    ;LD   R1, 8
     40    ;OUT  (R1), R0
     41    ;LD   R1, 0
     42    ;LD   R2, 10
     43    ;OUT  (R1), R0
     44;Loop:
     45    ;INC  R0
     46    ;DEC  R2
     47    ;JNZ  R2, Loop
    4448    HALT
    4549
     
    5256    LD   R3, ConsoleWriteChar
    5357WriteStrLoop:
    54     LD   R2, (R0)
    55     OUT  (R3), R2
     58    LD   D1, R2, (R0)
     59    OUT  D1, (R3), R2
    5660    INC  R0
    5761    DEC  R1
Note: See TracChangeset for help on using the changeset viewer.