home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / nasm20b / nasm_src / ops.c < prev    next >
C/C++ Source or Header  |  1993-01-19  |  7KB  |  164 lines

  1. /* ---------------------------------------------------------------------- */
  2. /*                   Copyright (C) 1991 by Natürlich!                     */
  3. /*                      This file is copyrighted!                         */
  4. /*                Refer to the documentation for details.                 */
  5. /* ---------------------------------------------------------------------- */
  6. #include "defines.h"
  7. #include "ops.h"
  8.  
  9. /*              A   I   A   R   R   A   R   R   I   R   I   I   I
  10.                 C   N   B   E   E   B   E   E   M   E   N   N   N
  11.                 C   S   S   L   L   S   L   L   P   L   D   D   D
  12.                 U   T   0   X   Y       X   Y   L   A   X   Y
  13.                             0   0
  14.  
  15.  Labels have two entries: one in ABS w/255
  16.  and one in RELA w/the real value.
  17. */
  18.  
  19. #if OS == MSDOS
  20. # define _brk  xbrk
  21. #endif
  22.  
  23. byte
  24.    _adc[] = {   0,105,101,117,  0,109,125,121,  0,  0, 97,113,114 },
  25.    _and[] = {   0, 41, 37, 53,  0, 45, 61, 57,  0,  0, 33, 49, 50 },
  26.    _asl[] = {  10,  0,  6, 22,  0, 14, 30,  0,  0,  0,  0,  0,  0 },
  27.    _bcc[] = {   0,  0,  0,  0,  0,255,  0,  0,  0,144,  0,  0,  0 },
  28.    _bcs[] = {   0,  0,  0,  0,  0,255,  0,  0,  0,176,  0,  0,  0 },
  29.    _beq[] = {   0,  0,  0,  0,  0,255,  0,  0,  0,240,  0,  0,  0 },
  30.    _bit[] = {   0,  0, 36, 52,  0, 44, 60,  0,  0,  0,  0,  0,  0 },
  31.    _bmi[] = {   0,  0,  0,  0,  0,255,  0,  0,  0, 48,  0,  0,  0 },
  32.    _bne[] = {   0,  0,  0,  0,  0,255,  0,  0,  0,208,  0,  0,  0 },
  33.    _bpl[] = {   0,  0,  0,  0,  0,255,  0,  0,  0, 16,  0,  0,  0 },
  34.    _bra[] = {   0,  0,  0,  0,  0,255,  0,  0,  0,128,  0,  0,  0 },
  35.    _brk[] = {   0,  0,  0,  0,  0,  0,  0,  0,255,  0,  0,  0,  0 },
  36.    _bvc[] = {   0,  0,  0,  0,  0,255,  0,  0,  0, 80,  0,  0,  0 },
  37.    _bvs[] = {   0,  0,  0,  0,  0,255,  0,  0,  0,112,  0,  0,  0 },
  38.    _clc[] = {   0,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0 },
  39.    _cld[] = {   0,  0,  0,  0,  0,  0,  0,  0,216,  0,  0,  0,  0 },
  40.    _cli[] = {   0,  0,  0,  0,  0,  0,  0,  0, 88,  0,  0,  0,  0 },
  41.    _clv[] = {   0,  0,  0,  0,  0,  0,  0,  0,184,  0,  0,  0,  0 },
  42.    _cmp[] = {   0,201,197,213,  0,205,221,217,  0,  0,193,209,210 },
  43.    _cpx[] = {   0,224,228,  0,  0,236,  0,  0,  0,  0,  0,  0,  0 },
  44.    _cpy[] = {   0,192,196,  0,  0,204,  0,  0,  0,  0,  0,  0,  0 },
  45.    _dea[] = {   0,  0,  0,  0,  0,  0,  0,  0, 58,  0,  0,  0,  0 },
  46.    _dec[] = {   0,  0,198,214,  0,206,222,  0,  0,  0,  0,  0,  0 },
  47.    _dex[] = {   0,  0,  0,  0,  0,  0,  0,  0,202,  0,  0,  0,  0 },
  48.    _dey[] = {   0,  0,  0,  0,  0,  0,  0,  0,136,  0,  0,  0,  0 },
  49.    _eor[] = {   0, 73, 69, 85,  0, 77, 93, 89,  0,  0, 65, 81, 82 },
  50.    _ina[] = {   0,  0,  0,  0,  0,  0,  0,  0, 26,  0,  0,  0,  0 },
  51.    _inc[] = {   0,  0,230,246,  0,238,254,  0,  0,  0,  0,  0,  0 },
  52.    _inx[] = {   0,  0,  0,  0,  0,  0,  0,  0,232,  0,  0,  0,  0 },
  53.    _iny[] = {   0,  0,  0,  0,  0,  0,  0,  0,200,  0,  0,  0,  0 },
  54.    _jmp[] = {   0,  0,  0,  0,  0, 76,  0,  0,  0,  0,124,  0,108 },
  55.    _jsr[] = {   0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0 },
  56.    _lda[] = {   0,169,165,181,  0,173,189,185,  0,  0,161,177,178 },
  57.    _ldx[] = {   0,162,166,  0,182,174,  0,190,  0,  0,  0,  0,  0 },
  58.    _ldy[] = {   0,160,164,180,  0,172,188,  0,  0,  0,  0,  0,  0 },
  59.    _lsr[] = {  74,  0, 70, 86,  0, 78, 94,  0,  0,  0,  0,  0,  0 },
  60.    _nop[] = {   0,  0,  0,  0,  0,  0,  0,  0,234,  0,  0,  0,  0 },
  61.    _ora[] = {   0,  9,  5, 21,  0, 13, 29, 25,  0,  0,  1, 17, 18 },
  62.    _pha[] = {   0,  0,  0,  0,  0,  0,  0,  0, 72,  0,  0,  0,  0 },
  63.    _php[] = {   0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0 },
  64.    _phx[] = {   0,  0,  0,  0,  0,  0,  0,  0,218,  0,  0,  0,  0 },
  65.    _phy[] = {   0,  0,  0,  0,  0,  0,  0,  0, 90,  0,  0,  0,  0 },
  66.    _pla[] = {   0,  0,  0,  0,  0,  0,  0,  0,104,  0,  0,  0,  0 },
  67.    _plp[] = {   0,  0,  0,  0,  0,  0,  0,  0, 40,  0,  0,  0,  0 },
  68.    _plx[] = {   0,  0,  0,  0,  0,  0,  0,  0,250,  0,  0,  0,  0 },
  69.    _ply[] = {   0,  0,  0,  0,  0,  0,  0,  0,122,  0,  0,  0,  0 },
  70.    _rol[] = {  42,  0, 38, 54,  0, 46, 62,  0,  0,  0,  0,  0,  0 },
  71.    _ror[] = { 106,  0,102,118,  0,110,126,  0,  0,  0,  0,  0,  0 },
  72.    _rti[] = {   0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0 },
  73.    _rts[] = {   0,  0,  0,  0,  0,  0,  0,  0, 96,  0,  0,  0,  0 },
  74.    _sbc[] = {   0,233,229,245,  0,237,253,249,  0,  0,225,241,242 },
  75.    _sec[] = {   0,  0,  0,  0,  0,  0,  0,  0, 56,  0,  0,  0,  0 },
  76.    _sed[] = {   0,  0,  0,  0,  0,  0,  0,  0,248,  0,  0,  0,  0 },
  77.    _sei[] = {   0,  0,  0,  0,  0,  0,  0,  0,120,  0,  0,  0,  0 },
  78.    _sta[] = {   0,  0,133,149,  0,141,157,153,  0,  0,129,145,146 },
  79.    _stx[] = {   0,  0,134,  0,150,142,  0,  0,  0,  0,  0,  0,  0 },
  80.    _sty[] = {   0,  0,132,148,  0,140,  0,  0,  0,  0,  0,  0,  0 },
  81.    _stz[] = {   0,  0,100,116,  0,156,158,  0,  0,  0,  0,  0,  0 },
  82.    _tax[] = {   0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,  0 },
  83.    _tay[] = {   0,  0,  0,  0,  0,  0,  0,  0,168,  0,  0,  0,  0 },
  84.    _trb[] = {   0,  0, 20,  0,  0, 28,  0,  0,  0,  0,  0,  0,  0 },
  85.    _tsb[] = {   0,  0,  4,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0 },
  86.    _tsx[] = {   0,  0,  0,  0,  0,  0,  0,  0,186,  0,  0,  0,  0 },
  87.    _txa[] = {   0,  0,  0,  0,  0,  0,  0,  0,138,  0,  0,  0,  0 },
  88.    _txs[] = {   0,  0,  0,  0,  0,  0,  0,  0,154,  0,  0,  0,  0 },
  89.    _tya[] = {   0,  0,  0,  0,  0,  0,  0,  0,152,  0,  0,  0,  0 };
  90.  
  91.  
  92. static byte _[] = "Coming soon : FTOE NASTY TAPE 68000 Simulator (maybe)";
  93.  
  94. _ops     ops[] =
  95. {
  96.    { "ADC" , _adc },
  97.    { "AND" , _and },
  98.    { "ASL" , _asl },
  99.    { "BCC" , _bcc },
  100.    { "BCS" , _bcs },
  101.    { "BEQ" , _beq },
  102.    { "BIT" , _bit },
  103.    { "BMI" , _bmi },
  104.    { "BNE" , _bne },
  105.    { "BPL" , _bpl },
  106.    { "BRA" , _bra },          /* 65C02 */
  107.    { "BRK" , _brk },
  108.    { "BVC" , _bvc },
  109.    { "BVS" , _bvs },
  110.    { "CLC" , _clc },
  111.    { "CLD" , _cld },
  112.    { "CLI" , _cli },
  113.    { "CLV" , _clv },
  114.    { "CMP" , _cmp },
  115.    { "CPX" , _cpx },
  116.    { "CPY" , _cpy },
  117.    { "DEA" , _dea },          /* 65C02 */
  118.    { "DEC" , _dec },
  119.    { "DEX" , _dex },
  120.    { "DEY" , _dey },
  121.    { "EOR" , _eor },
  122.    { "INA" , _ina },          /* 65C02 */
  123.    { "INC" , _inc },
  124.    { "INX" , _inx },
  125.    { "INY" , _iny },
  126.    { "JMP" , _jmp },
  127.    { "JSR" , _jsr },
  128.    { "LDA" , _lda },
  129.    { "LDX" , _ldx },
  130.    { "LDY" , _ldy },
  131.    { "LSR" , _lsr },
  132.    { "NOP" , _nop },
  133.    { "ORA" , _ora },
  134.    { "PHA" , _pha },
  135.    { "PHP" , _php },
  136.    { "PHX" , _phx },          /* 65C02 */
  137.    { "PHY" , _phy },          /* 65C02 */
  138.    { "PLA" , _pla },
  139.    { "PLP" , _plp },
  140.    { "PLX" , _plx },          /* 65C02 */
  141.    { "PLY" , _ply },          /* 65C02 */
  142.    { "ROL" , _rol },
  143.    { "ROR" , _ror },
  144.    { "RTI" , _rti },
  145.    { "RTS" , _rts },
  146.    { "SBC" , _sbc },
  147.    { "SEC" , _sec },
  148.    { "SED" , _sed },
  149.    { "SEI" , _sei },
  150.    { "STA" , _sta },
  151.    { "STX" , _stx },
  152.    { "STY" , _sty },
  153.    { "STZ" , _stz },          /* 65C02 */
  154.    { "TAX" , _tax },
  155.    { "TAY" , _tay },
  156.    { "TRB" , _trb },          /* 65C02 */
  157.    { "TSB" , _tsb },          /* 65C02 */
  158.    { "TSY" , _tsx },
  159.    { "TXA" , _txa },
  160.    { "TXS" , _txs },
  161.    { "TYA" , _tya },
  162.    { ""    , _    }       /* just for fun */
  163. };
  164.