home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_300 / 346_02 / m16pst.c < prev    next >
C/C++ Source or Header  |  1991-02-10  |  11KB  |  358 lines

  1. /* m16pst.c */
  2.  
  3. /*
  4.  * (C) Copyright 1991
  5.  * All Rights Reserved
  6.  *
  7.  * Alan R. Baldwin
  8.  * 721 Berkeley St.
  9.  * Kent, Ohio  44240
  10.  */
  11.  
  12. #include <stdio.h>
  13. #include <setjmp.h>
  14. #include "asm.h"
  15. #include "m6816.h"
  16.  
  17. struct    mne    mne[] = {
  18.  
  19.     /* machine */
  20.  
  21.     NULL,    ".setdp",    S_SDP,        0,    0,
  22.  
  23.     /* system */
  24.  
  25.     NULL,    "CON",        S_ATYP,        0,    A_CON,
  26.     NULL,    "OVR",        S_ATYP,        0,    A_OVR,
  27.     NULL,    "REL",        S_ATYP,        0,    A_REL,
  28.     NULL,    "ABS",        S_ATYP,        0,  A_ABS|A_OVR,
  29.     NULL,    "NOPAG",    S_ATYP,        0,    A_NOPAG,
  30.     NULL,    "PAG",        S_ATYP,        0,    A_PAG,
  31.  
  32.     NULL,    ".byte",    S_BYTE,        0,    0,
  33.     NULL,    ".db",        S_BYTE,        0,    0,
  34.     NULL,    ".word",    S_WORD,        0,    0,
  35.     NULL,    ".dw",        S_WORD,        0,    0,
  36.     NULL,    ".ascii",    S_ASCII,    0,    0,
  37.     NULL,    ".asciz",    S_ASCIZ,    0,    0,
  38.     NULL,    ".blkb",    S_BLK,        0,    1,
  39.     NULL,    ".ds",        S_BLK,        0,    1,
  40.     NULL,    ".blkw",    S_BLK,        0,    2,
  41.     NULL,    ".page",    S_PAGE,        0,    0,
  42.     NULL,    ".title",    S_TITLE,    0,    0,
  43.     NULL,    ".sbttl",    S_SBTL,        0,    0,
  44.     NULL,    ".globl",    S_GLOBL,    0,    0,
  45.     NULL,    ".area",    S_DAREA,    0,    0,
  46.     NULL,    ".even",    S_EVEN,        0,    0,
  47.     NULL,    ".odd",        S_ODD,        0,    0,
  48.     NULL,    ".if",        S_IF,        0,    0,
  49.     NULL,    ".else",    S_ELSE,        0,    0,
  50.     NULL,    ".endif",    S_ENDIF,    0,    0,
  51.     NULL,    ".include",    S_INCL,        0,    0,
  52.     NULL,    ".radix",    S_RADIX,    0,    0,
  53.     NULL,    ".org",        S_ORG,        0,    0,
  54.     NULL,    ".module",    S_MODUL,    0,    0,
  55.  
  56.     /* machine */
  57.  
  58.     NULL,    "ais",        S_IMMA,        0,    0x3F,
  59.     NULL,    "aix",        S_IMMA,        0,    0x3C,
  60.     NULL,    "aiy",        S_IMMA,        0,    0x3D,
  61.     NULL,    "aiz",        S_IMMA,        0,    0x3E,
  62.  
  63.     NULL,    "andp",        S_IM16,        0,    0x2A,
  64.     NULL,    "orp",        S_IM16,        0,    0x3B,
  65.  
  66.     NULL,    "bclr",        S_BIT,        0,    0x08,
  67.     NULL,    "bset",        S_BIT,        0,    0x09,
  68.  
  69.     NULL,    "bclrw",    S_BITW,        0,    0x08,
  70.     NULL,    "bsetw",    S_BITW,        0,    0x09,
  71.  
  72.     NULL,    "brclr",    S_BRBT,        0,    0x0A,
  73.     NULL,    "brset",    S_BRBT,        0,    0x0B,
  74.  
  75.     NULL,    "lded",        S_LDED,        0,    0x71,
  76.  
  77.     NULL,    "mac",        S_MAC,        0,    0x7B,
  78.     NULL,    "rmac",        S_MAC,        0,    0xFB,
  79.  
  80.     NULL,    "pshm",        S_PSHM,        0,    0x34,
  81.     NULL,    "pulm",        S_PULM,        0,    0x35,
  82.  
  83.     NULL,    "jmp",        S_JXX,        0,    0x4B,
  84.     NULL,    "jsr",        S_JXX,        0,    0x89,
  85.  
  86.     NULL,    "movb",        S_MOVB,        0,    0x30,
  87.     NULL,    "movw",        S_MOVW,        0,    0x31,
  88.  
  89.     NULL,    "cps",        S_CMP,        0,    0x4F,
  90.     NULL,    "cpx",        S_CMP,        0,    0x4C,
  91.     NULL,    "cpy",        S_CMP,        0,    0x4D,
  92.     NULL,    "cpz",        S_CMP,        0,    0x4E,
  93.  
  94.     NULL,    "lds",        S_LOAD,        0,    0xCF,
  95.     NULL,    "ldx",        S_LOAD,        0,    0xCC,
  96.     NULL,    "ldy",        S_LOAD,        0,    0xCD,
  97.     NULL,    "ldz",        S_LOAD,        0,    0xCE,
  98.  
  99.     NULL,    "sts",        S_STOR,        0,    0x8F,
  100.     NULL,    "stx",        S_STOR,        0,    0x8C,
  101.     NULL,    "sty",        S_STOR,        0,    0x8D,
  102.     NULL,    "stz",        S_STOR,        0,    0x8E,
  103.  
  104.     NULL,    "aslw",        S_SOPW,        0,    0x04,
  105.     NULL,    "asrw",        S_SOPW,        0,    0x0D,
  106.     NULL,    "clrw",        S_SOPW,        0,    0x05,
  107.     NULL,    "comw",        S_SOPW,        0,    0x00,
  108.     NULL,    "decw",        S_SOPW,        0,    0x01,
  109.     NULL,    "incw",        S_SOPW,        0,    0x03,
  110.     NULL,    "lslw",        S_SOPW,        0,    0x04,
  111.     NULL,    "lsrw",        S_SOPW,        0,    0x0F,
  112.     NULL,    "negw",        S_SOPW,        0,    0x02,
  113.     NULL,    "rolw",        S_SOPW,        0,    0x0C,
  114.     NULL,    "rorw",        S_SOPW,        0,    0x0E,
  115.     NULL,    "tstw",        S_SOPW,        0,    0x06,
  116.  
  117.     NULL,    "asl",        S_SOP,        0,    0x04,
  118.     NULL,    "asr",        S_SOP,        0,    0x0D,
  119.     NULL,    "clr",        S_SOP,        0,    0x05,
  120.     NULL,    "com",        S_SOP,        0,    0x00,
  121.     NULL,    "dec",        S_SOP,        0,    0x01,
  122.     NULL,    "inc",        S_SOP,        0,    0x03,
  123.     NULL,    "lsl",        S_SOP,        0,    0x04,
  124.     NULL,    "lsr",        S_SOP,        0,    0x0F,
  125.     NULL,    "neg",        S_SOP,        0,    0x02,
  126.     NULL,    "rol",        S_SOP,        0,    0x0C,
  127.     NULL,    "ror",        S_SOP,        0,    0x0E,
  128.     NULL,    "tst",        S_SOP,        0,    0x06,
  129.  
  130.     NULL,    "adce",        S_DOPE,        0,    0x43,
  131.     NULL,    "adde",        S_DOPE,        0,    0x41,
  132.     NULL,    "ande",        S_DOPE,        0,    0x46,
  133.     NULL,    "cpe",        S_DOPE,        0,    0x48,
  134.     NULL,    "eore",        S_DOPE,        0,    0x44,
  135.     NULL,    "lde",        S_DOPE,        0,    0x45,
  136.     NULL,    "ore",        S_DOPE,        0,    0x47,
  137.     NULL,    "sbce",        S_DOPE,        0,    0x42,
  138.     NULL,    "ste",        S_DOPE,        0,    0x4A,
  139.     NULL,    "sube",        S_DOPE,        0,    0x40,
  140.  
  141.     NULL,    "adcd",        S_DOPD,        0,    0x83,
  142.     NULL,    "addd",        S_DOPD,        0,    0x81,
  143.     NULL,    "andd",        S_DOPD,        0,    0x86,
  144.     NULL,    "cpd",        S_DOPD,        0,    0x88,
  145.     NULL,    "eord",        S_DOPD,        0,    0x84,
  146.     NULL,    "ldd",        S_DOPD,        0,    0x85,
  147.     NULL,    "ord",        S_DOPD,        0,    0x87,
  148.     NULL,    "sbcd",        S_DOPD,        0,    0x82,
  149.     NULL,    "std",        S_DOPD,        0,    0x8A,
  150.     NULL,    "subd",        S_DOPD,        0,    0x80,
  151.  
  152.     NULL,    "adca",        S_DOP,        0,    0x43,
  153.     NULL,    "adcb",        S_DOP,        0,    0xC3,
  154.     NULL,    "adda",        S_DOP,        0,    0x41,
  155.     NULL,    "addb",        S_DOP,        0,    0xC1,
  156.     NULL,    "anda",        S_DOP,        0,    0x46,
  157.     NULL,    "andb",        S_DOP,        0,    0xC6,
  158.     NULL,    "bita",        S_DOP,        0,    0x49,
  159.     NULL,    "bitb",        S_DOP,        0,    0xC9,
  160.     NULL,    "cmpa",        S_DOP,        0,    0x48,
  161.     NULL,    "cmpb",        S_DOP,        0,    0xC8,
  162.     NULL,    "eora",        S_DOP,        0,    0x44,
  163.     NULL,    "eorb",        S_DOP,        0,    0xC4,
  164.     NULL,    "ldaa",        S_DOP,        0,    0x45,
  165.     NULL,    "ldab",        S_DOP,        0,    0xC5,
  166.     NULL,    "oraa",        S_DOP,        0,    0x47,
  167.     NULL,    "orab",        S_DOP,        0,    0xC7,
  168.     NULL,    "sbca",        S_DOP,        0,    0x42,
  169.     NULL,    "sbcb",        S_DOP,        0,    0xC2,
  170.     NULL,    "staa",        S_DOP,        0,    0x4A,
  171.     NULL,    "stab",        S_DOP,        0,    0xCA,
  172.     NULL,    "suba",        S_DOP,        0,    0x40,
  173.     NULL,    "subb",        S_DOP,        0,    0xC0,
  174.  
  175.     NULL,    "aba",        S_INH37,    0,    0x0B,
  176.     NULL,    "abx",        S_INH37,    0,    0x4F,
  177.     NULL,    "aby",        S_INH37,    0,    0x5F,
  178.     NULL,    "abz",        S_INH37,    0,    0x6F,
  179.     NULL,    "ace",        S_INH37,    0,    0x22,
  180.     NULL,    "aced",        S_INH37,    0,    0x23,
  181.     NULL,    "adx",        S_INH37,    0,    0xCD,
  182.     NULL,    "ady",        S_INH37,    0,    0xDD,
  183.     NULL,    "adz",        S_INH37,    0,    0xED,
  184.     NULL,    "aex",        S_INH37,    0,    0x4D,
  185.     NULL,    "aey",        S_INH37,    0,    0x5D,
  186.     NULL,    "aez",        S_INH37,    0,    0x6D,
  187.     NULL,    "asla",        S_INH37,    0,    0x04,
  188.     NULL,    "aslb",        S_INH37,    0,    0x14,
  189.     NULL,    "asra",        S_INH37,    0,    0x0D,
  190.     NULL,    "asrb",        S_INH37,    0,    0x1D,
  191.     NULL,    "bgnd",        S_INH37,    0,    0xA6,
  192.     NULL,    "cba",        S_INH37,    0,    0x1B,
  193.     NULL,    "clra",        S_INH37,    0,    0x05,
  194.     NULL,    "clrb",        S_INH37,    0,    0x15,
  195.     NULL,    "coma",        S_INH37,    0,    0x00,
  196.     NULL,    "comb",        S_INH37,    0,    0x10,
  197.     NULL,    "daa",        S_INH37,    0,    0x21,
  198.     NULL,    "deca",        S_INH37,    0,    0x01,
  199.     NULL,    "decb",        S_INH37,    0,    0x11,
  200.     NULL,    "ediv",        S_INH37,    0,    0x28,
  201.     NULL,    "edivs",    S_INH37,    0,    0x29,
  202.     NULL,    "emul",        S_INH37,    0,    0x25,
  203.     NULL,    "emuls",    S_INH37,    0,    0x26,
  204.     NULL,    "fdiv",        S_INH37,    0,    0x2B,
  205.     NULL,    "fmuls",    S_INH37,    0,    0x27,
  206.     NULL,    "idiv",        S_INH37,    0,    0x2A,
  207.     NULL,    "inca",        S_INH37,    0,    0x03,
  208.     NULL,    "incb",        S_INH37,    0,    0x13,
  209.     NULL,    "lsla",        S_INH37,    0,    0x04,
  210.     NULL,    "lslb",        S_INH37,    0,    0x14,
  211.     NULL,    "lsra",        S_INH37,    0,    0x0F,
  212.     NULL,    "lsrb",        S_INH37,    0,    0x1F,
  213.     NULL,    "mul",        S_INH37,    0,    0x24,
  214.     NULL,    "nega",        S_INH37,    0,    0x02,
  215.     NULL,    "negb",        S_INH37,    0,    0x12,
  216.     NULL,    "psha",        S_INH37,    0,    0x08,
  217.     NULL,    "pshb",        S_INH37,    0,    0x18,
  218.     NULL,    "pula",        S_INH37,    0,    0x09,
  219.     NULL,    "pulb",        S_INH37,    0,    0x19,
  220.     NULL,    "rola",        S_INH37,    0,    0x0C,
  221.     NULL,    "rolb",        S_INH37,    0,    0x1C,
  222.     NULL,    "rora",        S_INH37,    0,    0x0E,
  223.     NULL,    "rorb",        S_INH37,    0,    0x1E,
  224.     NULL,    "sba",        S_INH37,    0,    0x0A,
  225.     NULL,    "swi",        S_INH37,    0,    0x20,
  226.     NULL,    "tab",        S_INH37,    0,    0x17,
  227.     NULL,    "tap",        S_INH37,    0,    0xFD,
  228.     NULL,    "tba",        S_INH37,    0,    0x07,
  229.     NULL,    "tbsk",        S_INH37,    0,    0x9F,
  230.     NULL,    "tbxk",        S_INH37,    0,    0x9C,
  231.     NULL,    "tbyk",        S_INH37,    0,    0x9D,
  232.     NULL,    "tbzk",        S_INH37,    0,    0x9E,
  233.     NULL,    "tdmsk",    S_INH37,    0,    0x2F,
  234.     NULL,    "tdp",        S_INH37,    0,    0x2D,
  235.     NULL,    "tpa",        S_INH37,    0,    0xFC,
  236.     NULL,    "tpd",        S_INH37,    0,    0x2C,
  237.     NULL,    "tskb",        S_INH37,    0,    0xAF,
  238.     NULL,    "tsta",        S_INH37,    0,    0x06,
  239.     NULL,    "tstb",        S_INH37,    0,    0x16,
  240.     NULL,    "txkb",        S_INH37,    0,    0xAC,
  241.     NULL,    "txs",        S_INH37,    0,    0x4E,
  242.     NULL,    "tykb",        S_INH37,    0,    0xAD,
  243.     NULL,    "tys",        S_INH37,    0,    0x5E,
  244.     NULL,    "tzkb",        S_INH37,    0,    0xAE,
  245.     NULL,    "tzs",        S_INH37,    0,    0x6E,
  246.     NULL,    "xgab",        S_INH37,    0,    0x1A,
  247.     NULL,    "xgdx",        S_INH37,    0,    0xCC,
  248.     NULL,    "xgdy",        S_INH37,    0,    0xDC,
  249.     NULL,    "xgdz",        S_INH37,    0,    0xEC,
  250.     NULL,    "xgex",        S_INH37,    0,    0x4C,
  251.     NULL,    "xgey",        S_INH37,    0,    0x5C,
  252.     NULL,    "xgez",        S_INH37,    0,    0x6C,
  253.  
  254.     NULL,    "ade",        S_INH27,    0,    0x78,
  255.     NULL,    "asld",        S_INH27,    0,    0xF4,
  256.     NULL,    "asle",        S_INH27,    0,    0x74,
  257.     NULL,    "aslm",        S_INH27,    0,    0xB6,
  258.     NULL,    "asrd",        S_INH27,    0,    0xFD,
  259.     NULL,    "asre",        S_INH27,    0,    0x7D,
  260.     NULL,    "asrm",        S_INH27,    0,    0xBA,
  261.     NULL,    "clrd",        S_INH27,    0,    0xF5,
  262.     NULL,    "clre",        S_INH27,    0,    0x75,
  263.     NULL,    "clrm",        S_INH27,    0,    0xB7,
  264.     NULL,    "comd",        S_INH27,    0,    0xF0,
  265.     NULL,    "come",        S_INH27,    0,    0x70,
  266.     NULL,    "ldhi",        S_INH27,    0,    0xB0,
  267.     NULL,    "lpstop",    S_INH27,    0,    0xF1,
  268.     NULL,    "lsld",        S_INH27,    0,    0xF4,
  269.     NULL,    "lsle",        S_INH27,    0,    0x74,
  270.     NULL,    "lslm",        S_INH27,    0,    0xB6,
  271.     NULL,    "lsrd",        S_INH27,    0,    0xFF,
  272.     NULL,    "lsre",        S_INH27,    0,    0x7F,
  273.     NULL,    "negd",        S_INH27,    0,    0xF2,
  274.     NULL,    "nege",        S_INH27,    0,    0x72,
  275.     NULL,    "nop",        S_INH27,    0,    0x4C,
  276.     NULL,    "pshmac",    S_INH27,    0,    0xB8,
  277.     NULL,    "pulmac",    S_INH27,    0,    0xB9,
  278.     NULL,    "rold",        S_INH27,    0,    0xFC,
  279.     NULL,    "role",        S_INH27,    0,    0x7C,
  280.     NULL,    "rord",        S_INH27,    0,    0xFE,
  281.     NULL,    "rore",        S_INH27,    0,    0x7E,
  282.     NULL,    "rti",        S_INH27,    0,    0x77,
  283.     NULL,    "rts",        S_INH27,    0,    0xF7,
  284.     NULL,    "sde",        S_INH27,    0,    0x79,
  285.     NULL,    "sted",        S_INH27,    0,    0x73,
  286.     NULL,    "sxt",        S_INH27,    0,    0xF8,
  287.     NULL,    "tbek",        S_INH27,    0,    0xFA,
  288.     NULL,    "tde",        S_INH27,    0,    0x7B,
  289.     NULL,    "ted",        S_INH27,    0,    0xFB,
  290.     NULL,    "tedm",        S_INH27,    0,    0xB1,
  291.     NULL,    "tekb",        S_INH27,    0,    0xBB,
  292.     NULL,    "tem",        S_INH27,    0,    0xB2,
  293.     NULL,    "tmer",        S_INH27,    0,    0xB4,
  294.     NULL,    "tmet",        S_INH27,    0,    0xB5,
  295.     NULL,    "tmxed",    S_INH27,    0,    0xB3,
  296.     NULL,    "tstd",        S_INH27,    0,    0xF6,
  297.     NULL,    "tste",        S_INH27,    0,    0x76,
  298.     NULL,    "tsx",        S_INH27,    0,    0x4F,
  299.     NULL,    "tsy",        S_INH27,    0,    0x5F,
  300.     NULL,    "tsz",        S_INH27,    0,    0x6F,
  301.     NULL,    "txy",        S_INH27,    0,    0x5C,
  302.     NULL,    "txz",        S_INH27,    0,    0x6C,
  303.     NULL,    "tyx",        S_INH27,    0,    0x4D,
  304.     NULL,    "tyz",        S_INH27,    0,    0x6D,
  305.     NULL,    "tzx",        S_INH27,    0,    0x4E,
  306.     NULL,    "tzy",        S_INH27,    0,    0x5E,
  307.     NULL,    "wai",        S_INH27,    0,    0xF3,
  308.     NULL,    "xgde",        S_INH27,    0,    0x7A,
  309.  
  310.     NULL,    "lbcc",        S_LBRA,        0,    0x84,
  311.     NULL,    "lbhs",        S_LBRA,        0,    0x84,
  312.     NULL,    "lbhis",    S_LBRA,        0,    0x84,
  313.     NULL,    "lbcs",        S_LBRA,        0,    0x85,
  314.     NULL,    "lblo",        S_LBRA,        0,    0x85,
  315.     NULL,    "lbeq",        S_LBRA,        0,    0x87,
  316.     NULL,    "lbev",        S_LBRA,        0,    0x91,
  317.     NULL,    "lbge",        S_LBRA,        0,    0x8C,
  318.     NULL,    "lbgt",        S_LBRA,        0,    0x8E,
  319.     NULL,    "lbhi",        S_LBRA,        0,    0x82,
  320.     NULL,    "lble",        S_LBRA,        0,    0x8F,
  321.     NULL,    "lbls",        S_LBRA,        0,    0x83,
  322.     NULL,    "lblos",    S_LBRA,        0,    0x83,
  323.     NULL,    "lblt",        S_LBRA,        0,    0x8D,
  324.     NULL,    "lbmi",        S_LBRA,        0,    0x8B,
  325.     NULL,    "lbmv",        S_LBRA,        0,    0x90,
  326.     NULL,    "lbne",        S_LBRA,        0,    0x86,
  327.     NULL,    "lbpl",        S_LBRA,        0,    0x8A,
  328.     NULL,    "lbra",        S_LBRA,        0,    0x80,
  329.     NULL,    "lbrn",        S_LBRA,        0,    0x81,
  330.     NULL,    "lbvc",        S_LBRA,        0,    0x88,
  331.     NULL,    "lbvs",        S_LBRA,        0,    0x89,
  332.  
  333.     NULL,    "lbsr",        S_LBSR,        0,    0xF9,
  334.  
  335.     NULL,    "bcc",        S_BRA,        0,    0xB4,
  336.     NULL,    "bhs",        S_BRA,        0,    0xB4,
  337.     NULL,    "bhis",        S_BRA,        0,    0xB4,
  338.     NULL,    "bcs",        S_BRA,        0,    0xB5,
  339.     NULL,    "blo",        S_BRA,        0,    0xB5,
  340.     NULL,    "beq",        S_BRA,        0,    0xB7,
  341.     NULL,    "bge",        S_BRA,        0,    0xBC,
  342.     NULL,    "bgt",        S_BRA,        0,    0xBE,
  343.     NULL,    "bhi",        S_BRA,        0,    0xB2,
  344.     NULL,    "ble",        S_BRA,        0,    0xBF,
  345.     NULL,    "bls",        S_BRA,        0,    0xB3,
  346.     NULL,    "blos",        S_BRA,        0,    0xB3,
  347.     NULL,    "blt",        S_BRA,        0,    0xBD,
  348.     NULL,    "bmi",        S_BRA,        0,    0xBB,
  349.     NULL,    "bne",        S_BRA,        0,    0xB6,
  350.     NULL,    "bpl",        S_BRA,        0,    0xBA,
  351.     NULL,    "bra",        S_BRA,        0,    0xB0,
  352.     NULL,    "brn",        S_BRA,        0,    0xB1,
  353.     NULL,    "bvc",        S_BRA,        0,    0xB8,
  354.     NULL,    "bvs",        S_BRA,        0,    0xB9,
  355.  
  356.     NULL,    "bsr",        S_BSR,        S_END,    0x36,
  357. };
  358.