Changeset 3 for branches/Z80


Ignore:
Timestamp:
Nov 6, 2009, 2:10:40 PM (15 years ago)
Author:
george
Message:
  • Přidáno: Vývojová větev Void.
Location:
branches/Z80
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • branches/Z80/Compiler.lpi

    r2 r3  
    1313      <Icon Value="0"/>
    1414      <UseXPManifest Value="True"/>
    15       <ActiveEditorIndexAtStart Value="3"/>
     15      <ActiveEditorIndexAtStart Value="4"/>
    1616    </General>
    1717    <VersionInfo>
     
    3333      </local>
    3434    </RunParams>
    35     <Units Count="8">
     35    <Units Count="10">
    3636      <Unit0>
    3737        <Filename Value="Compiler.lpr"/>
    3838        <IsPartOfProject Value="True"/>
    3939        <UnitName Value="Compiler"/>
    40         <CursorPos X="1" Y="27"/>
    41         <TopLine Value="15"/>
     40        <CursorPos X="15" Y="14"/>
     41        <TopLine Value="1"/>
    4242        <EditorIndex Value="0"/>
    43         <UsageCount Value="20"/>
     43        <UsageCount Value="26"/>
    4444        <Loaded Value="True"/>
    4545      </Unit0>
     
    4848        <IsPartOfProject Value="True"/>
    4949        <UnitName Value="UZ80Compiler"/>
    50         <CursorPos X="4" Y="108"/>
    51         <TopLine Value="92"/>
    52         <EditorIndex Value="3"/>
    53         <UsageCount Value="20"/>
     50        <CursorPos X="6" Y="125"/>
     51        <TopLine Value="123"/>
     52        <EditorIndex Value="2"/>
     53        <UsageCount Value="26"/>
    5454        <Loaded Value="True"/>
    5555      </Unit1>
     
    6060        <TopLine Value="48"/>
    6161        <EditorIndex Value="1"/>
    62         <UsageCount Value="10"/>
     62        <UsageCount Value="14"/>
    6363        <Loaded Value="True"/>
    6464      </Unit2>
     
    6767        <CursorPos X="14" Y="173"/>
    6868        <TopLine Value="155"/>
    69         <EditorIndex Value="2"/>
    70         <UsageCount Value="10"/>
    71         <Loaded Value="True"/>
     69        <UsageCount Value="9"/>
    7270      </Unit3>
    7371      <Unit4>
     
    7573        <CursorPos X="3" Y="484"/>
    7674        <TopLine Value="476"/>
    77         <UsageCount Value="10"/>
     75        <UsageCount Value="9"/>
    7876      </Unit4>
    7977      <Unit5>
    8078        <Filename Value="..\..\..\..\..\Programy\Lazarus_0.9.29\fpc\2.3.1\source\rtl\objpas\classes\classesh.inc"/>
    81         <CursorPos X="15" Y="561"/>
    82         <TopLine Value="546"/>
    83         <UsageCount Value="10"/>
     79        <CursorPos X="3" Y="497"/>
     80        <TopLine Value="497"/>
     81        <EditorIndex Value="5"/>
     82        <UsageCount Value="14"/>
     83        <Loaded Value="True"/>
    8484      </Unit5>
    8585      <Unit6>
     
    8787        <CursorPos X="3" Y="731"/>
    8888        <TopLine Value="787"/>
    89         <UsageCount Value="10"/>
     89        <UsageCount Value="9"/>
    9090      </Unit6>
    9191      <Unit7>
     
    9393        <IsPartOfProject Value="True"/>
    9494        <UnitName Value="UDynamicNumber"/>
    95         <CursorPos X="30" Y="135"/>
    96         <TopLine Value="105"/>
     95        <CursorPos X="1" Y="66"/>
     96        <TopLine Value="51"/>
     97        <EditorIndex Value="6"/>
     98        <UsageCount Value="26"/>
     99        <Loaded Value="True"/>
     100      </Unit7>
     101      <Unit8>
     102        <Filename Value="..\..\..\..\..\Programy\Lazarus_0.9.29\fpc\2.3.1\source\rtl\objpas\sysutils\sysstrh.inc"/>
     103        <CursorPos X="28" Y="33"/>
     104        <TopLine Value="18"/>
     105        <EditorIndex Value="3"/>
     106        <UsageCount Value="13"/>
     107        <Loaded Value="True"/>
     108      </Unit8>
     109      <Unit9>
     110        <Filename Value="Example.asm"/>
     111        <IsPartOfProject Value="True"/>
     112        <CursorPos X="6" Y="1"/>
     113        <TopLine Value="1"/>
    97114        <EditorIndex Value="4"/>
    98         <UsageCount Value="20"/>
    99         <Loaded Value="True"/>
    100       </Unit7>
     115        <UsageCount Value="25"/>
     116        <Loaded Value="True"/>
     117        <SyntaxHighlighter Value="None"/>
     118      </Unit9>
    101119    </Units>
    102120    <JumpHistory Count="30" HistoryIndex="29">
    103121      <Position1>
    104         <Filename Value="UDynamicNumber.pas"/>
    105         <Caret Line="22" Column="50" TopLine="6"/>
     122        <Filename Value="UZ80Compiler.pas"/>
     123        <Caret Line="133" Column="38" TopLine="115"/>
    106124      </Position1>
    107125      <Position2>
    108         <Filename Value="UDynamicNumber.pas"/>
    109         <Caret Line="59" Column="11" TopLine="32"/>
     126        <Filename Value="UZ80Compiler.pas"/>
     127        <Caret Line="127" Column="21" TopLine="115"/>
    110128      </Position2>
    111129      <Position3>
    112         <Filename Value="UDynamicNumber.pas"/>
    113         <Caret Line="65" Column="1" TopLine="35"/>
     130        <Filename Value="UZ80Compiler.pas"/>
     131        <Caret Line="130" Column="1" TopLine="115"/>
    114132      </Position3>
    115133      <Position4>
    116         <Filename Value="UDynamicNumber.pas"/>
    117         <Caret Line="18" Column="15" TopLine="7"/>
     134        <Filename Value="UZ80Compiler.pas"/>
     135        <Caret Line="131" Column="1" TopLine="116"/>
    118136      </Position4>
    119137      <Position5>
    120         <Filename Value="UDynamicNumber.pas"/>
    121         <Caret Line="44" Column="42" TopLine="41"/>
     138        <Filename Value="UZ80Compiler.pas"/>
     139        <Caret Line="132" Column="1" TopLine="117"/>
    122140      </Position5>
    123141      <Position6>
    124         <Filename Value="UDynamicNumber.pas"/>
    125         <Caret Line="62" Column="33" TopLine="49"/>
     142        <Filename Value="UZ80Compiler.pas"/>
     143        <Caret Line="133" Column="1" TopLine="118"/>
    126144      </Position6>
    127145      <Position7>
    128         <Filename Value="UDynamicNumber.pas"/>
    129         <Caret Line="25" Column="25" TopLine="11"/>
     146        <Filename Value="UZ80Compiler.pas"/>
     147        <Caret Line="135" Column="1" TopLine="120"/>
    130148      </Position7>
    131149      <Position8>
    132         <Filename Value="UDynamicNumber.pas"/>
    133         <Caret Line="26" Column="41" TopLine="10"/>
     150        <Filename Value="UZ80Compiler.pas"/>
     151        <Caret Line="136" Column="1" TopLine="121"/>
    134152      </Position8>
    135153      <Position9>
    136         <Filename Value="UDynamicNumber.pas"/>
    137         <Caret Line="23" Column="64" TopLine="11"/>
     154        <Filename Value="UZ80Compiler.pas"/>
     155        <Caret Line="126" Column="1" TopLine="111"/>
    138156      </Position9>
    139157      <Position10>
    140         <Filename Value="UDynamicNumber.pas"/>
    141         <Caret Line="25" Column="24" TopLine="1"/>
     158        <Filename Value="UZ80Compiler.pas"/>
     159        <Caret Line="127" Column="1" TopLine="112"/>
    142160      </Position10>
    143161      <Position11>
    144         <Filename Value="UDynamicNumber.pas"/>
    145         <Caret Line="27" Column="18" TopLine="14"/>
     162        <Filename Value="UZ80Compiler.pas"/>
     163        <Caret Line="128" Column="1" TopLine="113"/>
    146164      </Position11>
    147165      <Position12>
    148         <Filename Value="UDynamicNumber.pas"/>
    149         <Caret Line="29" Column="32" TopLine="12"/>
     166        <Filename Value="UZ80Compiler.pas"/>
     167        <Caret Line="139" Column="1" TopLine="124"/>
    150168      </Position12>
    151169      <Position13>
    152         <Filename Value="UDynamicNumber.pas"/>
    153         <Caret Line="34" Column="55" TopLine="18"/>
     170        <Filename Value="UZ80Compiler.pas"/>
     171        <Caret Line="57" Column="3" TopLine="37"/>
    154172      </Position13>
    155173      <Position14>
    156         <Filename Value="UDynamicNumber.pas"/>
    157         <Caret Line="36" Column="19" TopLine="19"/>
     174        <Filename Value="UZ80Compiler.pas"/>
     175        <Caret Line="139" Column="11" TopLine="119"/>
    158176      </Position14>
    159177      <Position15>
    160178        <Filename Value="UZ80Compiler.pas"/>
    161         <Caret Line="31" Column="3" TopLine="19"/>
     179        <Caret Line="138" Column="13" TopLine="121"/>
    162180      </Position15>
    163181      <Position16>
    164182        <Filename Value="UZ80Compiler.pas"/>
    165         <Caret Line="26" Column="3" TopLine="5"/>
     183        <Caret Line="140" Column="1" TopLine="125"/>
    166184      </Position16>
    167185      <Position17>
    168186        <Filename Value="UZ80Compiler.pas"/>
    169         <Caret Line="54" Column="16" TopLine="42"/>
     187        <Caret Line="141" Column="1" TopLine="126"/>
    170188      </Position17>
    171189      <Position18>
    172190        <Filename Value="UZ80Compiler.pas"/>
    173         <Caret Line="21" Column="44" TopLine="7"/>
     191        <Caret Line="142" Column="1" TopLine="127"/>
    174192      </Position18>
    175193      <Position19>
    176194        <Filename Value="UZ80Compiler.pas"/>
    177         <Caret Line="59" Column="7" TopLine="45"/>
     195        <Caret Line="143" Column="1" TopLine="128"/>
    178196      </Position19>
    179197      <Position20>
    180198        <Filename Value="UZ80Compiler.pas"/>
    181         <Caret Line="58" Column="10" TopLine="43"/>
     199        <Caret Line="144" Column="1" TopLine="129"/>
    182200      </Position20>
    183201      <Position21>
    184202        <Filename Value="UZ80Compiler.pas"/>
    185         <Caret Line="59" Column="5" TopLine="44"/>
     203        <Caret Line="145" Column="35" TopLine="130"/>
    186204      </Position21>
    187205      <Position22>
    188206        <Filename Value="UZ80Compiler.pas"/>
    189         <Caret Line="25" Column="5" TopLine="2"/>
     207        <Caret Line="146" Column="1" TopLine="120"/>
    190208      </Position22>
    191209      <Position23>
    192210        <Filename Value="UZ80Compiler.pas"/>
    193         <Caret Line="76" Column="15" TopLine="61"/>
     211        <Caret Line="145" Column="25" TopLine="129"/>
    194212      </Position23>
    195213      <Position24>
    196214        <Filename Value="UZ80Compiler.pas"/>
    197         <Caret Line="47" Column="39" TopLine="32"/>
     215        <Caret Line="140" Column="1" TopLine="125"/>
    198216      </Position24>
    199217      <Position25>
    200218        <Filename Value="UZ80Compiler.pas"/>
    201         <Caret Line="21" Column="3" TopLine="6"/>
     219        <Caret Line="141" Column="1" TopLine="126"/>
    202220      </Position25>
    203221      <Position26>
    204222        <Filename Value="UZ80Compiler.pas"/>
    205         <Caret Line="76" Column="13" TopLine="61"/>
     223        <Caret Line="142" Column="1" TopLine="127"/>
    206224      </Position26>
    207225      <Position27>
    208226        <Filename Value="UZ80Compiler.pas"/>
    209         <Caret Line="88" Column="18" TopLine="49"/>
     227        <Caret Line="143" Column="1" TopLine="128"/>
    210228      </Position27>
    211229      <Position28>
    212230        <Filename Value="UZ80Compiler.pas"/>
    213         <Caret Line="62" Column="1" TopLine="47"/>
     231        <Caret Line="144" Column="1" TopLine="129"/>
    214232      </Position28>
    215233      <Position29>
    216234        <Filename Value="UZ80Compiler.pas"/>
    217         <Caret Line="90" Column="16" TopLine="69"/>
     235        <Caret Line="145" Column="1" TopLine="130"/>
    218236      </Position29>
    219237      <Position30>
    220238        <Filename Value="UZ80Compiler.pas"/>
    221         <Caret Line="107" Column="17" TopLine="103"/>
     239        <Caret Line="146" Column="1" TopLine="131"/>
    222240      </Position30>
    223241    </JumpHistory>
     
    238256  </CompilerOptions>
    239257  <Debugging>
     258    <BreakPoints Count="1">
     259      <Item1>
     260        <Source Value="UZ80Compiler.pas"/>
     261        <Line Value="140"/>
     262      </Item1>
     263    </BreakPoints>
    240264    <Exceptions Count="3">
    241265      <Item1>
  • branches/Z80/Compiler.lpr

    r2 r3  
    3434  end;
    3535  Compiler.Destroy;
     36  ReadLn;
     37  Terminate;
    3638end;
    3739
  • branches/Z80/Example.asm

    r2 r3  
    1 ;
    2 ;       Z-80 Opcodes in Alphabetical Order
    3 ;
    4 ; This file is used to test the Z-80 cross-assembler.  The opcodes are in
    5 ; alphabetical order rather than the usual numerical order so that I can
    6 ; compare the output to my Z-80 assembly-language reference card.
    7 ;
    8 DD      EQU     05H
    9 EE      EQU     30H
    10 NN      EQU     0584H
    11 N       EQU     20H
     1INC A
    122
    13 ;------------------------------------------------------------------------------
    14         ADC     A, (HL)
    15         ADC     A, (IX + DD)
    16         ADC     A, (IY + DD)
    17         ADC     A, A
    18         ADC     A, B
    19         ADC     A, C
    20         ADC     A, D
    21         ADC     A, E
    22         ADC     A, H
    23         ADC     A, L
    24         ADC     A, N
    25 ;------------------------------------------------------------------------------
    26         ADC     HL, BC
    27         ADC     HL, DE
    28         ADC     HL, HL
    29         ADC     HL, SP
    30 ;------------------------------------------------------------------------------
    31         ADD     A, (HL)
    32         ADD     A, (IX + DD)
    33         ADD     A, (IY + DD)
    34         ADD     A, A
    35         ADD     A, B
    36         ADD     A, C
    37         ADD     A, D
    38         ADD     A, E
    39         ADD     A, H
    40         ADD     A, L
    41         ADD     A, N
    42 ;------------------------------------------------------------------------------
    43         ADD     HL, BC
    44         ADD     HL, DE
    45         ADD     HL, HL
    46         ADD     HL, SP
    47 ;------------------------------------------------------------------------------
    48         ADD     IX, BC
    49         ADD     IX, DE
    50         ADD     IX, IX
    51         ADD     IX, SP
    52 ;------------------------------------------------------------------------------
    53         ADD     IY, BC
    54         ADD     IY, DE
    55         ADD     IY, IY
    56         ADD     IY, SP
    57 ;------------------------------------------------------------------------------
    58         AND     (HL)
    59         AND     (IX + DD)
    60         AND     (IY + DD)
    61         AND     A
    62         AND     B
    63         AND     C
    64         AND     D
    65         AND     E
    66         AND     H
    67         AND     L
    68         AND     N
    69 ;------------------------------------------------------------------------------
    70         BIT     0, (HL)
    71         BIT     0, (IX + DD)
    72         BIT     0, (IY + DD)
    73         BIT     0, A
    74         BIT     0, B
    75         BIT     0, C
    76         BIT     0, D
    77         BIT     0, E
    78         BIT     0, H
    79         BIT     0, L
    80         BIT     1, (HL)
    81         BIT     1, (IX + DD)
    82         BIT     1, (IY + DD)
    83         BIT     1, A
    84         BIT     1, B
    85         BIT     1, C
    86         BIT     1, D
    87         BIT     1, E
    88         BIT     1, H
    89         BIT     1, L
    90         BIT     2, (HL)
    91         BIT     2, (IX + DD)
    92         BIT     2, (IY + DD)
    93         BIT     2, A
    94         BIT     2, B
    95         BIT     2, C
    96         BIT     2, D
    97         BIT     2, E
    98         BIT     2, H
    99         BIT     2, L
    100         BIT     3, (HL)
    101         BIT     3, (IX + DD)
    102         BIT     3, (IY + DD)
    103         BIT     3, A
    104         BIT     3, B
    105         BIT     3, C
    106         BIT     3, D
    107         BIT     3, E
    108         BIT     3, H
    109         BIT     3, L
    110         BIT     4, (HL)
    111         BIT     4, (IX + DD)
    112         BIT     4, (IY + DD)
    113         BIT     4, A
    114         BIT     4, B
    115         BIT     4, C
    116         BIT     4, D
    117         BIT     4, E
    118         BIT     4, H
    119         BIT     4, L
    120         BIT     5, (HL)
    121         BIT     5, (IX + DD)
    122         BIT     5, (IY + DD)
    123         BIT     5, A
    124         BIT     5, B
    125         BIT     5, C
    126         BIT     5, D
    127         BIT     5, E
    128         BIT     5, H
    129         BIT     5, L
    130         BIT     6, (HL)
    131         BIT     6, (IX + DD)
    132         BIT     6, (IY + DD)
    133         BIT     6, A
    134         BIT     6, B
    135         BIT     6, C
    136         BIT     6, D
    137         BIT     6, E
    138         BIT     6, H
    139         BIT     6, L
    140         BIT     7, (HL)
    141         BIT     7, (IX + DD)
    142         BIT     7, (IY + DD)
    143         BIT     7, A
    144         BIT     7, B
    145         BIT     7, C
    146         BIT     7, D
    147         BIT     7, E
    148         BIT     7, H
    149         BIT     7, L
    150 ;------------------------------------------------------------------------------
    151         CALL    C, NN
    152         CALL    M, NN
    153         CALL    NC, NN
    154         CALL    NZ, NN
    155         CALL    P, NN
    156         CALL    PE, NN
    157         CALL    PO, NN
    158         CALL    Z, NN
    159 ;------------------------------------------------------------------------------
    160         CALL    NN
    161 ;------------------------------------------------------------------------------
    162         CCF
    163 ;------------------------------------------------------------------------------
    164         CP      (HL)
    165         CP      (IX + DD)
    166         CP      (IY + DD)
    167         CP      A
    168         CP      B
    169         CP      C
    170         CP      D
    171         CP      E
    172         CP      H
    173         CP      L
    174         CP      N
    175 ;------------------------------------------------------------------------------
    176         CPD
    177 ;------------------------------------------------------------------------------
    178         CPDR
    179 ;------------------------------------------------------------------------------
    180         CPI
    181 ;------------------------------------------------------------------------------
    182         CPIR
    183 ;------------------------------------------------------------------------------
    184         CPL
    185 ;------------------------------------------------------------------------------
    186         DAA
    187 ;------------------------------------------------------------------------------
    188         DEC     (HL)
    189         DEC     (IX + DD)
    190         DEC     (IY + DD)
    191         DEC     A
    192         DEC     B
    193         DEC     BC
    194         DEC     C
    195         DEC     D
    196         DEC     DE
    197         DEC     E
    198         DEC     H
    199         DEC     HL
    200         DEC     IX
    201         DEC     IY
    202         DEC     L
    203         DEC     SP
    204 ;------------------------------------------------------------------------------
    205         DI
    206 ;------------------------------------------------------------------------------
    207         DJNZ    $ + EE
    208 ;------------------------------------------------------------------------------
    209         EI
    210 ;------------------------------------------------------------------------------
    211         EX      (SP), HL
    212         EX      (SP), IX
    213         EX      (SP), IY
    214 ;------------------------------------------------------------------------------
    215         EX      AF, AF'
    216 ;------------------------------------------------------------------------------
    217         EX      DE, HL
    218 ;------------------------------------------------------------------------------
    219         EXX
    220 ;------------------------------------------------------------------------------
    221         HALT
    222 ;------------------------------------------------------------------------------
    223         IM      0
    224         IM      1
    225         IM      2
    226 ;------------------------------------------------------------------------------
    227         IN      A, (C)
    228         IN      B, (C)
    229         IN      C, (C)
    230         IN      D, (C)
    231         IN      E, (C)
    232         IN      H, (C)
    233         IN      L, (C)
    234 ;------------------------------------------------------------------------------
    235         INC     (HL)
    236         INC     (IX + DD)
    237         INC     (IY + DD)
    238         INC     A
    239         INC     B
    240         INC     BC
    241         INC     C
    242         INC     D
    243         INC     DE
    244         INC     E
    245         INC     H
    246         INC     HL
    247         INC     IX
    248         INC     IY
    249         INC     L
    250         INC     SP
    251 ;------------------------------------------------------------------------------
    252         IN      A, (N)
    253 ;------------------------------------------------------------------------------
    254         IND
    255 ;------------------------------------------------------------------------------
    256         INDR
    257 ;------------------------------------------------------------------------------
    258         INI
    259 ;------------------------------------------------------------------------------
    260         INIR
    261 ;------------------------------------------------------------------------------
    262         JP      NN
    263         JP      (HL)
    264         JP      (IX)
    265         JP      (IY)
    266 ;------------------------------------------------------------------------------
    267         JP      C, NN
    268         JP      M, NN
    269         JP      NC, NN
    270         JP      NZ, NN
    271         JP      P, NN
    272         JP      PE, NN
    273         JP      PO, NN
    274         JP      Z, NN
    275 ;------------------------------------------------------------------------------
    276         JR      C, $ + EE
    277         JR      NC, $ + EE
    278         JR      NZ, $ + EE
    279         JR      Z, $ + EE
    280 ;------------------------------------------------------------------------------
    281         JR      $ + EE
    282 ;------------------------------------------------------------------------------
    283         LD      (BC), A
    284         LD      (DE), A
    285         LD      (HL), A
    286         LD      (HL), B
    287         LD      (HL), C
    288         LD      (HL), D
    289         LD      (HL), E
    290         LD      (HL), H
    291         LD      (HL), L
    292         LD      (HL), N
    293         LD      (IX + DD), A
    294         LD      (IX + DD), B
    295         LD      (IX + DD), C
    296         LD      (IX + DD), D
    297         LD      (IX + DD), E
    298         LD      (IX + DD), H
    299         LD      (IX + DD), L
    300         LD      (IX + DD), N
    301         LD      (IY + DD), A
    302         LD      (IY + DD), B
    303         LD      (IY + DD), C
    304         LD      (IY + DD), D
    305         LD      (IY + DD), E
    306         LD      (IY + DD), H
    307         LD      (IY + DD), L
    308         LD      (IY + DD), N
    309         LD      (NN), A
    310         LD      (NN), BC
    311         LD      (NN), DE
    312         LD      (NN), HL
    313         LD      (NN), IX
    314         LD      (NN), IY
    315         LD      (NN), SP
    316         LD      A, (BC)
    317         LD      A, (DE)
    318         LD      A, (HL)
    319         LD      A, (IX + DD)
    320         LD      A, (IY + DD)
    321         LD      A, (NN)
    322         LD      A, A
    323         LD      A, B
    324         LD      A, C
    325         LD      A, D
    326         LD      A, E
    327         LD      A, H
    328         LD      A, I
    329         LD      A, L
    330         LD      A, N
    331         LD      A, R
    332         LD      B, (HL)
    333         LD      B, (IX + DD)
    334         LD      B, (IY + DD)
    335         LD      B, A
    336         LD      B, B
    337         LD      B, C
    338         LD      B, D
    339         LD      B, E
    340         LD      B, H
    341         LD      B, L
    342         LD      B, N
    343         LD      BC, (NN)
    344         LD      BC, NN
    345         LD      C, (HL)
    346         LD      C, (IX + DD)
    347         LD      C, (IY + DD)
    348         LD      C, A
    349         LD      C, B
    350         LD      C, C
    351         LD      C, D
    352         LD      C, E
    353         LD      C, H
    354         LD      C, L
    355         LD      C, N
    356         LD      D, (HL)
    357         LD      D, (IX + DD)
    358         LD      D, (IY + DD)
    359         LD      D, A
    360         LD      D, B
    361         LD      D, C
    362         LD      D, D
    363         LD      D, E
    364         LD      D, H
    365         LD      D, L
    366         LD      D, N
    367         LD      DE, (NN)
    368         LD      DE, NN
    369         LD      E, (HL)
    370         LD      E, (IX + DD)
    371         LD      E, (IY + DD)
    372         LD      E, A
    373         LD      E, B
    374         LD      E, C
    375         LD      E, D
    376         LD      E, E
    377         LD      E, H
    378         LD      E, L
    379         LD      E, N
    380         LD      H, (HL)
    381         LD      H, (IX + DD)
    382         LD      H, (IY + DD)
    383         LD      H, A
    384         LD      H, B
    385         LD      H, C
    386         LD      H, D
    387         LD      H, E
    388         LD      H, H
    389         LD      H, L
    390         LD      H, N
    391         LD      HL, (NN)
    392         LD      HL, NN
    393         LD      I, A
    394         LD      IX, (NN)
    395         LD      IX, NN
    396         LD      IY, (NN)
    397         LD      IY, NN
    398         LD      L, (HL)
    399         LD      L, (IX + DD)
    400         LD      L, (IY + DD)
    401         LD      L, A
    402         LD      L, B
    403         LD      L, C
    404         LD      L, D
    405         LD      L, E
    406         LD      L, H
    407         LD      L, L
    408         LD      L, N
    409         LD      R, A
    410         LD      SP, (NN)
    411         LD      SP, HL
    412         LD      SP, IX
    413         LD      SP, IY
    414         LD      SP, NN
    415 ;------------------------------------------------------------------------------
    416         LDD
    417 ;------------------------------------------------------------------------------
    418         LDDR
    419 ;------------------------------------------------------------------------------
    420         LDI
    421 ;------------------------------------------------------------------------------
    422         LDIR
    423 ;------------------------------------------------------------------------------
    424         NEG
    425 ;------------------------------------------------------------------------------
    426         NOP
    427 ;------------------------------------------------------------------------------
    428         OR      (HL)
    429         OR      (IX + DD)
    430         OR      (IY + DD)
    431         OR      A
    432         OR      B
    433         OR      C
    434         OR      D
    435         OR      E
    436         OR      H
    437         OR      L
    438         OR      N
    439 ;------------------------------------------------------------------------------
    440         OTDR
    441 ;------------------------------------------------------------------------------
    442         OTIR
    443 ;------------------------------------------------------------------------------
    444         OUT     (C), A
    445         OUT     (C), B
    446         OUT     (C), C
    447         OUT     (C), D
    448         OUT     (C), E
    449         OUT     (C), H
    450         OUT     (C), L
    451 ;------------------------------------------------------------------------------
    452         OUT     (N), A
    453 ;------------------------------------------------------------------------------
    454         OUTD
    455 ;------------------------------------------------------------------------------
    456         OUTI
    457 ;------------------------------------------------------------------------------
    458         POP     AF
    459         POP     BC
    460         POP     DE
    461         POP     HL
    462         POP     IX
    463         POP     IY
    464 ;------------------------------------------------------------------------------
    465         PUSH    AF
    466         PUSH    BC
    467         PUSH    DE
    468         PUSH    HL
    469         PUSH    IX
    470         PUSH    IY
    471 ;------------------------------------------------------------------------------
    472         RES     0, (HL)
    473         RES     0, (IX + DD)
    474         RES     0, (IY + DD)
    475         RES     0, A
    476         RES     0, B
    477         RES     0, C
    478         RES     0, D
    479         RES     0, E
    480         RES     0, H
    481         RES     0, L
    482         RES     1, (HL)
    483         RES     1, (IX + DD)
    484         RES     1, (IY + DD)
    485         RES     1, A
    486         RES     1, B
    487         RES     1, C
    488         RES     1, D
    489         RES     1, E
    490         RES     1, H
    491         RES     1, L
    492         RES     2, (HL)
    493         RES     2, (IX + DD)
    494         RES     2, (IY + DD)
    495         RES     2, A
    496         RES     2, B
    497         RES     2, C
    498         RES     2, D
    499         RES     2, E
    500         RES     2, H
    501         RES     2, L
    502         RES     3, (HL)
    503         RES     3, (IX + DD)
    504         RES     3, (IY + DD)
    505         RES     3, A
    506         RES     3, B
    507         RES     3, C
    508         RES     3, D
    509         RES     3, E
    510         RES     3, H
    511         RES     3, L
    512         RES     4, (HL)
    513         RES     4, (IX + DD)
    514         RES     4, (IY + DD)
    515         RES     4, A
    516         RES     4, B
    517         RES     4, C
    518         RES     4, D
    519         RES     4, E
    520         RES     4, H
    521         RES     4, L
    522         RES     5, (HL)
    523         RES     5, (IX + DD)
    524         RES     5, (IY + DD)
    525         RES     5, A
    526         RES     5, B
    527         RES     5, C
    528         RES     5, D
    529         RES     5, E
    530         RES     5, H
    531         RES     5, L
    532         RES     6, (HL)
    533         RES     6, (IX + DD)
    534         RES     6, (IY + DD)
    535         RES     6, A
    536         RES     6, B
    537         RES     6, C
    538         RES     6, D
    539         RES     6, E
    540         RES     6, H
    541         RES     6, L
    542         RES     7, (HL)
    543         RES     7, (IX + DD)
    544         RES     7, (IY + DD)
    545         RES     7, A
    546         RES     7, B
    547         RES     7, C
    548         RES     7, D
    549         RES     7, E
    550         RES     7, H
    551         RES     7, L
    552 ;------------------------------------------------------------------------------
    553         RET
    554 ;------------------------------------------------------------------------------
    555         RET     C
    556         RET     M
    557         RET     NC
    558         RET     NZ
    559         RET     P
    560         RET     PE
    561         RET     PO
    562         RET     Z
    563 ;------------------------------------------------------------------------------
    564         RETI
    565 ;------------------------------------------------------------------------------
    566         RETN
    567 ;------------------------------------------------------------------------------
    568         RL      (HL)
    569         RL      (IX + DD)
    570         RL      (IY + DD)
    571         RL      A
    572         RL      B
    573         RL      C
    574         RL      D
    575         RL      E
    576         RL      H
    577         RL      L
    578 ;------------------------------------------------------------------------------
    579         RLA
    580 ;------------------------------------------------------------------------------
    581         RLC     (HL)
    582         RLC     (IX + DD)
    583         RLC     (IY + DD)
    584         RLC     A
    585         RLC     B
    586         RLC     C
    587         RLC     D
    588         RLC     E
    589         RLC     H
    590         RLC     L
    591 ;------------------------------------------------------------------------------
    592         RLCA
    593 ;------------------------------------------------------------------------------
    594         RLD
    595 ;------------------------------------------------------------------------------
    596         RR      (HL)
    597         RR      (IX + DD)
    598         RR      (IY + DD)
    599         RR      A
    600         RR      B
    601         RR      C
    602         RR      D
    603         RR      E
    604         RR      H
    605         RR      L
    606 ;------------------------------------------------------------------------------
    607         RRA
    608 ;------------------------------------------------------------------------------
    609         RRC     (HL)
    610         RRC     (IX + DD)
    611         RRC     (IY + DD)
    612         RRC     A
    613         RRC     B
    614         RRC     C
    615         RRC     D
    616         RRC     E
    617         RRC     H
    618         RRC     L
    619 ;------------------------------------------------------------------------------
    620         RRCA
    621 ;------------------------------------------------------------------------------
    622         RRD
    623 ;------------------------------------------------------------------------------
    624         RST     00H
    625         RST     08H
    626         RST     10H
    627         RST     18H
    628         RST     20H
    629         RST     28H
    630         RST     30H
    631         RST     38H
    632 ;------------------------------------------------------------------------------
    633         SBC     A, (HL)
    634         SBC     A, (IX + DD)
    635         SBC     A, (IY + DD)
    636         SBC     A, A
    637         SBC     A, B
    638         SBC     A, C
    639         SBC     A, D
    640         SBC     A, E
    641         SBC     A, H
    642         SBC     A, L
    643         SBC     A, N
    644         SBC     HL, BC
    645         SBC     HL, DE
    646         SBC     HL, HL
    647         SBC     HL, SP
    648 ;------------------------------------------------------------------------------
    649         SCF
    650 ;------------------------------------------------------------------------------
    651         SET     0, (HL)
    652         SET     0, (IX + DD)
    653         SET     0, (IY + DD)
    654         SET     0, A
    655         SET     0, B
    656         SET     0, C
    657         SET     0, D
    658         SET     0, E
    659         SET     0, H
    660         SET     0, L
    661         SET     1, (HL)
    662         SET     1, (IX + DD)
    663         SET     1, (IY + DD)
    664         SET     1, A
    665         SET     1, B
    666         SET     1, C
    667         SET     1, D
    668         SET     1, E
    669         SET     1, H
    670         SET     1, L
    671         SET     2, (HL)
    672         SET     2, (IX + DD)
    673         SET     2, (IY + DD)
    674         SET     2, A
    675         SET     2, B
    676         SET     2, C
    677         SET     2, D
    678         SET     2, E
    679         SET     2, H
    680         SET     2, L
    681         SET     3, (HL)
    682         SET     3, (IX + DD)
    683         SET     3, (IY + DD)
    684         SET     3, A
    685         SET     3, B
    686         SET     3, C
    687         SET     3, D
    688         SET     3, E
    689         SET     3, H
    690         SET     3, L
    691         SET     4, (HL)
    692         SET     4, (IX + DD)
    693         SET     4, (IY + DD)
    694         SET     4, A
    695         SET     4, B
    696         SET     4, C
    697         SET     4, D
    698         SET     4, E
    699         SET     4, H
    700         SET     4, L
    701         SET     5, (HL)
    702         SET     5, (IX + DD)
    703         SET     5, (IY + DD)
    704         SET     5, A
    705         SET     5, B
    706         SET     5, C
    707         SET     5, D
    708         SET     5, E
    709         SET     5, H
    710         SET     5, L
    711         SET     6, (HL)
    712         SET     6, (IX + DD)
    713         SET     6, (IY + DD)
    714         SET     6, A
    715         SET     6, B
    716         SET     6, C
    717         SET     6, D
    718         SET     6, E
    719         SET     6, H
    720         SET     6, L
    721         SET     7, (HL)
    722         SET     7, (IX + DD)
    723         SET     7, (IY + DD)
    724         SET     7, A
    725         SET     7, B
    726         SET     7, C
    727         SET     7, D
    728         SET     7, E
    729         SET     7, H
    730         SET     7, L
    731 ;------------------------------------------------------------------------------
    732         SLA     (HL)
    733         SLA     (IX + DD)
    734         SLA     (IY + DD)
    735         SLA     A
    736         SLA     B
    737         SLA     C
    738         SLA     D
    739         SLA     E
    740         SLA     H
    741         SLA     L
    742 ;------------------------------------------------------------------------------
    743         SRA     (HL)
    744         SRA     (IX + DD)
    745         SRA     (IY + DD)
    746         SRA     A
    747         SRA     B
    748         SRA     C
    749         SRA     D
    750         SRA     E
    751         SRA     H
    752         SRA     L
    753 ;------------------------------------------------------------------------------
    754         SRL     (HL)
    755         SRL     (IX + DD)
    756         SRL     (IY + DD)
    757         SRL     A
    758         SRL     B
    759         SRL     C
    760         SRL     D
    761         SRL     E
    762         SRL     H
    763         SRL     L
    764 ;------------------------------------------------------------------------------
    765         SUB     (HL)
    766         SUB     (IX + DD)
    767         SUB     (IY + DD)
    768         SUB     A
    769         SUB     B
    770         SUB     C
    771         SUB     D
    772         SUB     E
    773         SUB     H
    774         SUB     L
    775         SUB     N
    776 ;------------------------------------------------------------------------------
    777         XOR     (HL)
    778         XOR     (IX + DD)
    779         XOR     (IY + DD)
    780         XOR     A
    781         XOR     B
    782         XOR     C
    783         XOR     D
    784         XOR     E
    785         XOR     H
    786         XOR     L
    787         XOR     N
    788 ;------------------------------------------------------------------------------
    789 
    790         END
  • branches/Z80/UDynamicNumber.pas

    r2 r3  
    99
    1010type
    11 
    12   { TDynamicNumber }
    13 
    1411  TDynamicNumber = class
    1512  private
  • branches/Z80/UZ80Compiler.pas

    r2 r3  
    1717    Mask: TDynamicNumber;
    1818    property Size: Integer read GetSize write SetSize;
     19    constructor Create;
     20    destructor Destroy; override;
    1921  end;
    2022
     
    4345    destructor Destroy; override;
    4446  end;
     47
     48  { TZ80Compiler }
    4549
    4650  TZ80Compiler = class
     
    5054    MachineCode: TMemoryStream;
    5155    procedure InitOpcodes;
     56    function FindOpcodeByName(Name: string): TOpcode;
     57    function ParseLine(var Text: string; Separator: string = ' '): string;
    5258  public
    5359    procedure Load(StringList: TStringList);
     
    101107end;
    102108
     109function TZ80Compiler.FindOpcodeByName(Name: string): TOpcode;
     110var
     111  I: Integer;
     112begin
     113  I := 0;
     114  while (I < Opcodes.Count) and (TOpcode(Opcodes[I]).Name <> Name) do Inc(I);
     115  if I < Opcodes.Count then Result := Opcodes[I]
     116    else Result := nil;
     117end;
     118
     119function TZ80Compiler.ParseLine(var Text: string; Separator: string = ' '): string;
     120begin
     121  Text := Trim(Text);
     122  Result := Copy(Text, 1, Pos(Separator, Text) - 1);
     123  if Result <> '' then
     124    Delete(Text, 1, Length(Result) + Length(Separator));
     125end;
     126
    103127procedure TZ80Compiler.Load(StringList: TStringList);
    104128var
    105129  I: Integer;
    106 begin
     130  Line: string;
     131  InstructionName: string;
     132  Instruction: TOpcode;
     133  Parameter: string;
     134  begin
    107135  for I := 0 to StringList.Count - 1 do begin
    108 
     136    Line := Trim(StringList[I]);
     137    Line := StringReplace(Line, #9, ' ', [rfReplaceAll]);
     138    if Length(Line) > 0 then begin
     139      if Line[1] = ';' then Continue; // Skip commented lines
     140      InstructionName := ParseLine(Line);
     141      Instruction := FindOpcodeByName(InstructionName);
     142      if Assigned(Instruction) then begin
     143        WriteLn(InstructionName);
     144        if Pos(',', Line) > 0 then Parameter := ParseLine(Line, ',')
     145          else Parameter := Line;
     146        WriteLn(Parameter);
     147      end else WriteLn('Unknown instruction name "' + InstructionName + '"');
     148    end;
    109149  end;
    110150end;
     
    145185end;
    146186
     187constructor TMaskedValue.Create;
     188begin
     189  Mask := TDynamicNumber.Create;
     190  Value := TDynamicNumber.Create;
     191end;
     192
     193destructor TMaskedValue.Destroy;
     194begin
     195  Mask.Destroy;
     196  Value.Destroy;
     197  inherited Destroy;
     198end;
     199
    147200{ TOpcode }
    148201
     
    150203begin
    151204  MaskedValue := TMaskedValue.Create;
     205  Operands := TList.Create;
    152206end;
    153207
Note: See TracChangeset for help on using the changeset viewer.