Changeset 62


Ignore:
Timestamp:
Aug 1, 2024, 11:00:58 PM (4 months ago)
Author:
chronos
Message:
  • Modified: Assembler syntax highlight.
Location:
branches/ByteArray
Files:
14 added
7 edited

Legend:

Unmodified
Added
Removed
  • branches/ByteArray/ByteArray.lpi

    r59 r62  
    241241        <ResourceBaseClass Value="Form"/>
    242242      </Unit>
     243      <Unit>
     244        <Filename Value="CpuInstructions.txt"/>
     245        <IsPartOfProject Value="True"/>
     246      </Unit>
     247      <Unit>
     248        <Filename Value="Asm/Api.asm"/>
     249        <IsPartOfProject Value="True"/>
     250      </Unit>
     251      <Unit>
     252        <Filename Value="Asm/Combined.asm"/>
     253        <IsPartOfProject Value="True"/>
     254      </Unit>
     255      <Unit>
     256        <Filename Value="Asm/Io.asm"/>
     257        <IsPartOfProject Value="True"/>
     258      </Unit>
     259      <Unit>
     260        <Filename Value="Asm/Kernel.asm"/>
     261        <IsPartOfProject Value="True"/>
     262      </Unit>
     263      <Unit>
     264        <Filename Value="Asm/SysCalls.asm"/>
     265        <IsPartOfProject Value="True"/>
     266      </Unit>
     267      <Unit>
     268        <Filename Value="Asm/Apps/Beep.asm"/>
     269        <IsPartOfProject Value="True"/>
     270      </Unit>
     271      <Unit>
     272        <Filename Value="Asm/Apps/Halt.asm"/>
     273        <IsPartOfProject Value="True"/>
     274      </Unit>
     275      <Unit>
     276        <Filename Value="Asm/Apps/Shell.asm"/>
     277        <IsPartOfProject Value="True"/>
     278      </Unit>
     279      <Unit>
     280        <Filename Value="Asm/Apps/Write.asm"/>
     281        <IsPartOfProject Value="True"/>
     282      </Unit>
     283      <Unit>
     284        <Filename Value="VarInt.pas"/>
     285        <IsPartOfProject Value="True"/>
     286      </Unit>
    243287    </Units>
    244288  </ProjectOptions>
  • branches/ByteArray/ByteArray.lpr

    r58 r62  
    1313  Storage, DeviceMapper, Machine, Disassembler, Instructions, Parser, Message,
    1414  Assembler, Serial, Mouse, FormSourceEditor, FormMessages, FormMemory,
    15   FormStorage, Common, FormSettings, Core, FormDebugger
     15  FormStorage, Common, FormSettings, Core, FormDebugger, VarInt
    1616  { you can add units after this };
    1717
  • branches/ByteArray/Cpu.pas

    r59 r62  
    806806end.
    807807
    808 
    809 32-bit
    810 
    811 LD       A, B
    812 LD       A1, B1
    813 LD       A2, $aabb
    814 LD       A2, (B2)
    815 LD       A2, ($ffff)
    816 LD       A.2, ($00ff.2)
    817 LD.2.2   A2, ($ffff)
    818 JR.128   $ff
    819 LD       (A2), (B2)
    820 LD       (n.1), (n.1)
    821 LD       (n.1), (n.1)
    822 
    823 LD       A, B
    824 LD2      A, B
    825 LD       A2, B2
    826 LD.2     A, n
    827 LD       A, (B)
    828 LD.1     A, (n)
    829 IN.1     A, (n)
    830 IN.1     A, (B)
    831 JP       n
    832 JP.1     n
    833 JR       n
    834 JR.1     n
    835 PUSH     A
    836 PUSH.1   A
    837 PUSH.4   A
    838 PUSH.128 A
    839 RET
    840 LD.2     (A), (B)
    841 INC      A
    842 LD.1     A, n
    843 SHL.2    A
    844 LD.1     A, n
    845 AND.2    A, n
    846 LD.2     B, A
    847 IN       C, (B)
    848 IN.d1.a1 C, (B)
    849 CALL     n
    850 CALL.4   n
    851 LD       A, (B + n)
    852 LD.1.2.1 A, (B + n)
    853 LD.d1.a2.r1 A, (B + n)
    854 LD       A, (B + n)
    855 LDIR     A, B, C
    856 LDIR.4   (A), (B), C
    857 LDI      (A), (B), C
    858 SET.4    A, 20
    859 
    860 - bit index 2048 (256 * 8) (8 + 3) bits = 2^11
    861 
    862 LD   R0, R1
    863 LD2  R0, R1
    864 LD.2 R0, R1
    865 LD:2 R0, R1
    866 LD   D2, R0, R1
    867 LD   D2, A16, R0, (R1)
    868 LD   D2:A16: R0, (R1)
    869 RET
    870 RET2
    871 RET.2
    872 RET:2
    873 RET  A2
    874 PUSH   R0
    875 PUSH2  R0
    876 PUSH.2 R0
    877 PUSH:2 R0
    878 PUSH   D2, R0
    879 PUSH   D2:R0
    880 PUSH   R0.2
    881 PUSH   R0:2
    882 LD     (R0), (R2)
    883 LD     D1, A2, (R0), (R2)
    884 LDIR   (R0), (R1), R2
    885 LDIR   D1, A2, (R0), (R1), R2
    886 LDI
    887 OUT    (R0), R1
    888 OUT    D1, (R0), R1
    889 OUT    D1, A2, (R0), R1
    890 
    891 
    892 
    893   LD   A, TEXT
    894   CALL PRINT
    895 
    896 :PRINT
    897   PUSH B
    898 :PRINT_START
    899   LD   B, (A)
    900   TEST B
    901   JR   Z, PRINT_END
    902   OUT  (n), B
    903   INC  A
    904   JR   PRINT_START
    905 :PRINT_END
    906   POP  B
    907   RET
    908 
  • branches/ByteArray/Forms/FormAssembler.lfm

    r50 r62  
    11object FormAssembler: TFormAssembler
    2   Left = 728
     2  Left = 727
    33  Height = 719
    4   Top = 384
     4  Top = 360
    55  Width = 1106
    66  Caption = 'Assembler'
     
    88  ClientWidth = 1106
    99  DesignTimePPI = 144
     10  OnCreate = FormCreate
     11  OnDestroy = FormDestroy
    1012  LCLVersion = '2.2.6.0'
    1113  inline SynEdit1: TSynEdit
     
    2830    RightGutter.Width = 0
    2931    RightGutter.MouseActions = <>
     32    Highlighter = SynAnySyn1
    3033    Keystrokes = <   
    3134      item
     
    513516  object SynAnySyn1: TSynAnySyn
    514517    Enabled = False
    515     Comments = []
     518    CommentAttri.Foreground = clGreen
     519    Comments = [csAsmStyle]
    516520    DetectPreprocessor = False
    517521    IdentifierChars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'
     522    KeyAttri.Foreground = clYellow
     523    NumberAttri.Foreground = clFuchsia
    518524    Markup = False
    519525    Entity = False
  • branches/ByteArray/Forms/FormAssembler.pas

    r48 r62  
    44
    55uses
    6   Classes, SysUtils, Forms, Controls, Graphics, Dialogs, AsyncProcess, SynEdit,
    7   SynHighlighterAny, SynHighlighterMulti, Common.FormEx;
     6  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, SynEdit,
     7  SynHighlighterAny, SynHighlighterMulti, Common.FormEx, Generics.Collections;
    88
    99type
     
    1414    SynAnySyn1: TSynAnySyn;
    1515    SynEdit1: TSynEdit;
     16    procedure FormCreate(Sender: TObject);
     17    procedure FormDestroy(Sender: TObject);
     18  private
    1619  public
    1720    procedure Select(Position: TPoint);
     
    2326{$R *.lfm}
    2427
     28uses
     29  Instructions;
     30
    2531{ TFormAssembler }
     32
     33procedure TFormAssembler.FormCreate(Sender: TObject);
     34var
     35  InstructionInfos: TInstructionInfos;
     36  Keywords: TList<string>;
     37  I: Integer;
     38begin
     39  Keywords := TList<string>.Create;
     40  InstructionInfos := TInstructionInfos.Create;
     41  InstructionInfos.Init;
     42  for I := 0 to InstructionInfos.Count - 1 do
     43    if not Keywords.Contains(InstructionInfos[I].Name) then
     44      Keywords.Add(InstructionInfos[I].Name);
     45  for I := 0 to Keywords.Count - 1 do
     46    SynAnySyn1.KeyWords.Add(Keywords[I]);
     47  SynAnySyn1.KeyWords.Add('VAR');
     48  SynAnySyn1.KeyWords.Add('DB');
     49  SynAnySyn1.KeyWords.Add('ORG');
     50  FreeAndNil(InstructionInfos);
     51  FreeAndNil(Keywords);
     52end;
     53
     54procedure TFormAssembler.FormDestroy(Sender: TObject);
     55begin
     56end;
    2657
    2758procedure TFormAssembler.Select(Position: TPoint);
  • branches/ByteArray/Languages/ByteArray.cs.po

    r59 r62  
    188188msgstr "Úložiště"
    189189
     190#: tformassembler.caption
     191msgid "Assembler"
     192msgstr ""
     193
    190194#: tformdebugger.caption
    191195msgctxt "tformdebugger.caption"
     
    383387msgid "ASCII"
    384388msgstr "ASCII"
     389
  • branches/ByteArray/Languages/ByteArray.pot

    r59 r62  
    178178msgstr ""
    179179
     180#: tformassembler.caption
     181msgid "Assembler"
     182msgstr ""
     183
    180184#: tformdebugger.caption
    181185msgctxt "tformdebugger.caption"
Note: See TracChangeset for help on using the changeset viewer.