home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / crossasm / uasm.arc / 6805SYM.C < prev    next >
C/C++ Source or Header  |  1986-04-06  |  18KB  |  495 lines

  1. /*
  2.         Custom Computer Consultants
  3.         Universal Cross Assembler
  4.         6805 Symbols
  5.         5 April 1985
  6. */
  7.  
  8. #include <stdio.h>
  9. #include <uasm.h>
  10.  
  11. char   *version = {"6805 Assembler -- V3.2  4/5/86\n"} ;
  12.  
  13. #define CSEG    1       /*      Code Segment            */
  14. #define DSEG    2       /*      Data Segment            */
  15. #define ASCII   4       /*      String                  */
  16. #define PAGE    5       /*      Page Eject              */
  17. #define RADIX   6       /*      Define Radix            */
  18. #define DB      8       /*      Define Byte             */
  19. #define DS      9       /*      Define Storage          */
  20. #define DW      10      /*      Define Word             */
  21. #define EQU     11      /*      Equate                  */
  22. #define ORG     12      /*      Origin                  */
  23.  
  24. extern int     pass1 ;
  25. extern int     lbl ;
  26. extern int     i, j, k ;
  27. extern int     lnspp ;
  28. extern int     cc ;
  29. extern int     ilc ;
  30. extern int     active ;
  31. extern int     instl ;
  32. extern int     parval ;
  33. extern int     radix ;
  34. extern int     cput ;
  35. extern int     syte, sytx ;
  36.  
  37. extern unsigned        unpar ;
  38. extern unsigned        ha, he, hsp ;
  39.  
  40. extern unsigned  char    ch ;
  41. extern unsigned  char    sym ;
  42.  
  43. extern char    *iptr ;  
  44. extern char    segtype[] ;
  45.  
  46. extern unsigned  char    ib[] ;
  47. extern unsigned  char    pv[] ;
  48. extern unsigned  char    px[] ;
  49.  
  50. extern           int     pj[] ;
  51. extern           int     il[] ;
  52. extern char    *pc[], *pseudo[] ;
  53.  
  54. extern int     (*pp[])() ;
  55. extern int     (*ppo[])() ;
  56.  
  57. extern char    ibuf[] ;
  58.  
  59. extern struct  symbol  symtab[] ;
  60.  
  61. #define SYMTYPE  (symtab[sytx].flags&(NSEG-1))
  62.  
  63. code_seg() { return CSEG ; }
  64.  
  65. not_cseg(seg)
  66. int    seg ;
  67. {
  68.        if( seg == DSEG ) return TRUE ;
  69.        else return FALSE ;
  70. }
  71.  
  72. set_il()
  73. {
  74.        il[CSEG] =    0x80 ;
  75.        il[DSEG] =    0 ;
  76. }
  77.  
  78. set_type()
  79. {
  80.        segtype[CSEG] = '\'' ;
  81.        segtype[DSEG] = '\"' ;
  82. }
  83.  
  84.  
  85. gen(len)
  86. int     len ;
  87. {
  88.         ib[2] = parval & 0xFF ;
  89.         ib[1] = len == 3 ? parval >> 8 : ib[2] ;
  90.         instl = len ;
  91.         ib[0] = pv[k] ;
  92.         return TRUE ;
  93. }               
  94.  
  95. nopr()  { return gen(1) ; }
  96.  
  97. immd()  { if( nomatch("#") )            return FALSE ;
  98.           parval = eval() ;
  99.           return gen(2) ; }
  100.  
  101. dira()  { parval = eval() ;
  102.           if( ch == ',' )               return FALSE ;
  103.           return gen(2) ;  }
  104.  
  105. dorc()  { parval = eval() ;
  106.           if( ch == ',' )               return FALSE ;
  107.           gen(3) ;
  108.           if( ib[1] )                   return TRUE  ;
  109.           ib[0] -= 0x10 ;
  110.           ib[1] = ib[2] ;
  111.           --instl ;                     return TRUE  ; }
  112.  
  113. inx0()  { if( nomatch(",X") )           return FALSE ;
  114.           return gen(1) ;  }
  115.  
  116. inx1()  { parval = eval() ;
  117.           if( nomatch(",X") )           return FALSE ;
  118.           return gen(2) ;  }
  119.  
  120. indx()  { parval = eval() ;
  121.           if( nomatch(",X") )           return FALSE ;
  122.           gen(3) ;
  123.           if( ib[1] )                   return TRUE  ;
  124.           ib[0] += 0x10 ;
  125.           ib[1] = ib[2] ;
  126.           --instl ;                     return TRUE  ; }
  127.  
  128. rela()  { crela(2) ;
  129.           return gen(2) ; }
  130.  
  131. crela(n)
  132. int     n ;
  133. {
  134.         parval = eval() - ( ilc + n ) ;
  135.         if( parval > 127 || parval < -128 ) push('R') ;
  136. }
  137.  
  138. bada()  { unpar = 2 * eval() ;
  139.           if( notcomma() )              return FALSE ;
  140.           parval = eval() ;
  141.           gen(2) ;
  142.           ib[0] |= ( unpar & 0x0E ) ;   return TRUE  ; }
  143.  
  144. bdrl()  { unpar = 2 * eval() ;
  145.           if( notcomma() )              return FALSE ;
  146.           parval = eval() ;
  147.           if( notcomma() )              return FALSE ;
  148.           gen(2) ;
  149.           ib[0] |= ( unpar & 0x0E ) ;
  150.           crela(3) ;
  151.           ib[2] = parval & 0xFF ;
  152.           instl = 3 ;                   return TRUE  ; }
  153.  
  154. areg()  { if( nomatch("A") )            return FALSE ;
  155.           return gen(1) ; }
  156.  
  157. xreg()  { if( nomatch("X") )            return FALSE ;
  158.           return gen(1) ; }
  159.  
  160.  
  161. #define INFO     1
  162. #define NOINFO   0
  163.  
  164. doseg()
  165. {
  166.        il[active] = ilc ;
  167.        ilc = il[j] ;
  168.        active = j ;
  169.        return NOINFO ;
  170. }
  171.  
  172. dods()
  173. {
  174.        instl = eval() ;
  175.        return NOINFO ;
  176. }
  177.  
  178. dodw()
  179. {                
  180.        parval = eval() ;
  181.        ib[cput++] = parval >> 8 ;
  182.        ib[cput++] = parval & 0xFF ;
  183.        while ( sym == ',' ) {
  184.          getch() ;
  185.          parval = eval() ;
  186.          ib[cput++] = parval >> 8 ;
  187.          ib[cput++] = parval & 0xFF ;
  188.          }
  189.        instl = cput ;
  190.        return INFO ;
  191. }
  192.  
  193. dodb()
  194. {
  195.        parval = eval() ;
  196.        ib[cput++] = parval & 0xFF ;
  197.        while ( sym == ',' ) {
  198.          getch() ;
  199.          ib[cput++] = eval() & 0xFF ;
  200.          }
  201.        instl = cput ;
  202.        return INFO ;
  203. }                            
  204.  
  205.  
  206. doequ()
  207. {
  208.        parval = eval() ;
  209.        if ( pass1 && (lbl == OK) ) {
  210.          symtab[syte-1].value = parval ;
  211.          symtab[syte-1].flags = active ;
  212.          }
  213.        return NOINFO ;
  214. }
  215.  
  216. doorg()
  217. {
  218.        parval = eval() ;
  219.        ilc = parval ;
  220.        if ( hsp == 0 ) ha = he = ilc ;
  221.        return NOINFO ;
  222. }
  223.  
  224. dopage()
  225. {
  226.        lnspp = 0 ;
  227.        return NOINFO ;
  228. }
  229.  
  230. doradix()
  231. {
  232.        radix = parval ;
  233.        return NOINFO ;
  234. }
  235.  
  236. doascii()
  237. {
  238.        while( isin(ch," \t") ) getch() ;
  239.        sym = ch ; getch() ;
  240.        while( ch != sym && ch != '\n' ) {
  241.          ib[cput++] = ch ;
  242.          getch() ;
  243.          }
  244.        ib[cput++] = EOS ;
  245.        instl = cput ;
  246.        return INFO ;
  247. }
  248.  
  249. /*
  250.         build_pseudo -- build a table of pointers to pseudo-ops
  251. */
  252.  
  253. build_pseudo()
  254. {
  255.         
  256.         j = -1 ;
  257.         pseudo[++j] = "ASCII" ; pj[j] = ASCII ; ppo[ASCII] = doascii ;
  258.         pseudo[++j] = "CSEG"  ; pj[j] = CSEG  ; ppo[CSEG]  = doseg   ;
  259.         pseudo[++j] = "DB"    ; pj[j] = DB    ; ppo[DB]    = dodb    ;
  260.         pseudo[++j] = "DS"    ; pj[j] = DS    ; ppo[DS]    = dods    ;
  261.         pseudo[++j] = "DSEG"  ; pj[j] = DSEG  ; ppo[DSEG]  = doseg   ;
  262.         pseudo[++j] = "DW"    ; pj[j] = DW    ; ppo[DW]    = dodw    ;
  263.         pseudo[++j] = "EQU"   ; pj[j] = EQU   ; ppo[EQU]   = doequ   ;
  264.         pseudo[++j] = "ORG"   ; pj[j] = ORG   ; ppo[ORG]   = doorg   ;
  265.         pseudo[++j] = "PAGE"  ; pj[j] = PAGE  ; ppo[PAGE]  = dopage  ;
  266.         pseudo[++j] = "RADIX" ; pj[j] = RADIX ; ppo[RADIX] = doradix ;
  267.         return ++j ;
  268. }
  269.  
  270.  
  271. /*
  272.         buildopc -- build opcode definition tables
  273.                 pc - opcode strings
  274.                 px - index by opcode into opcode values & post processing
  275.                 pv - opcode values
  276.                 pp - post processing functions
  277. */
  278. buildopc()
  279. {
  280.  
  281.  
  282.         i = j = 0 ;
  283.  
  284.         pc[i]="ADC"   ; px[i++]=j ;     pv[j]=0xA9 ; pp[j++]=immd ;
  285.                                         pv[j]=0xF9 ; pp[j++]=inx0 ;
  286.                                         pv[j]=0xC9 ; pp[j++]=dorc ;
  287.                                         pv[j]=0xD9 ; pp[j++]=indx ;
  288.  
  289.         pc[i]="ADD"   ; px[i++]=j ;     pv[j]=0xAB ; pp[j++]=immd ;
  290.                                         pv[j]=0xFB ; pp[j++]=inx0 ;
  291.                                         pv[j]=0xCB ; pp[j++]=dorc ;
  292.                                         pv[j]=0xDB ; pp[j++]=indx ;
  293.  
  294.         pc[i]="AND"   ; px[i++]=j ;     pv[j]=0xA4 ; pp[j++]=immd ;
  295.                                         pv[j]=0xF4 ; pp[j++]=inx0 ;
  296.                                         pv[j]=0xC4 ; pp[j++]=dorc ;
  297.                                         pv[j]=0xD4 ; pp[j++]=indx ;
  298.  
  299.         pc[i]="ASL"   ; px[i++]=j ;     pv[j]=0x48 ; pp[j++]=areg ;
  300.                                         pv[j]=0x58 ; pp[j++]=xreg ;
  301.                                         pv[j]=0x78 ; pp[j++]=inx0 ;
  302.                                         pv[j]=0x38 ; pp[j++]=dira ;
  303.                                         pv[j]=0x68 ; pp[j++]=inx1 ;
  304.  
  305.         pc[i]="ASR"   ; px[i++]=j ;     pv[j]=0x47 ; pp[j++]=areg ;
  306.                                         pv[j]=0x57 ; pp[j++]=xreg ;
  307.                                         pv[j]=0x77 ; pp[j++]=inx0 ;
  308.                                         pv[j]=0x37 ; pp[j++]=dira ;
  309.                                         pv[j]=0x67 ; pp[j++]=inx1 ;
  310.  
  311.  
  312.         pc[i]="BCC"   ; px[i++]=j ;     pv[j]=0x24 ; pp[j++]=rela ;
  313.         pc[i]="BCLR"  ; px[i++]=j ;     pv[j]=0x11 ; pp[j++]=bada ;
  314.         pc[i]="BCS"   ; px[i++]=j ;     pv[j]=0x25 ; pp[j++]=rela ;
  315.         pc[i]="BEQ"   ; px[i++]=j ;     pv[j]=0x27 ; pp[j++]=rela ;
  316.         pc[i]="BHCC"  ; px[i++]=j ;     pv[j]=0x28 ; pp[j++]=rela ;
  317.         pc[i]="BHCS"  ; px[i++]=j ;     pv[j]=0x29 ; pp[j++]=rela ;
  318.         pc[i]="BHI"   ; px[i++]=j ;     pv[j]=0x22 ; pp[j++]=rela ;
  319.         pc[i]="BHS"   ; px[i++]=j ;     pv[j]=0x24 ; pp[j++]=rela ;
  320.         pc[i]="BIH"   ; px[i++]=j ;     pv[j]=0x2F ; pp[j++]=rela ;
  321.         pc[i]="BIL"   ; px[i++]=j ;     pv[j]=0x2E ; pp[j++]=rela ;
  322.         pc[i]="BIL"   ; px[i++]=j ;     pv[j]=0x2E ; pp[j++]=rela ;
  323.  
  324.         pc[i]="BIT"   ; px[i++]=j ;     pv[j]=0xA5 ; pp[j++]=immd ;
  325.                                         pv[j]=0xF5 ; pp[j++]=inx0 ;
  326.                                         pv[j]=0xC5 ; pp[j++]=dorc ;
  327.                                         pv[j]=0xD5 ; pp[j++]=indx ;
  328.  
  329.         pc[i]="BLO"   ; px[i++]=j ;     pv[j]=0x25 ; pp[j++]=rela ;
  330.         pc[i]="BLS"   ; px[i++]=j ;     pv[j]=0x23 ; pp[j++]=rela ;
  331.         pc[i]="BMC"   ; px[i++]=j ;     pv[j]=0x2C ; pp[j++]=rela ;
  332.         pc[i]="BMI"   ; px[i++]=j ;     pv[j]=0x2B ; pp[j++]=rela ;
  333.         pc[i]="BMS"   ; px[i++]=j ;     pv[j]=0x2D ; pp[j++]=rela ;
  334.         pc[i]="BNE"   ; px[i++]=j ;     pv[j]=0x26 ; pp[j++]=rela ;
  335.         pc[i]="BPL"   ; px[i++]=j ;     pv[j]=0x2A ; pp[j++]=rela ;
  336.         pc[i]="BRA"   ; px[i++]=j ;     pv[j]=0x20 ; pp[j++]=rela ;
  337.         pc[i]="BRCLR" ; px[i++]=j ;     pv[j]=0x01 ; pp[j++]=bdrl ;
  338.         pc[i]="BRN"   ; px[i++]=j ;     pv[j]=0x21 ; pp[j++]=rela ;
  339.  
  340.         pc[i]="BRSET" ; px[i++]=j ;     pv[j]=0x00 ; pp[j++]=bdrl ;
  341.  
  342.         pc[i]="BSET"  ; px[i++]=j ;     pv[j]=0x10 ; pp[j++]=bada ;
  343.  
  344.  
  345.         pc[i]="BSR"   ; px[i++]=j ;     pv[j]=0xAD ; pp[j++]=rela ;
  346.  
  347.         pc[i]="CLC"   ; px[i++]=j ;     pv[j]=0x98 ; pp[j++]=nopr ;
  348.         pc[i]="CLI"   ; px[i++]=j ;     pv[j]=0x9A ; pp[j++]=nopr ;
  349.  
  350.         pc[i]="CLR"   ; px[i++]=j ;     pv[j]=0x4F ; pp[j++]=areg ;
  351.                                         pv[j]=0x5F ; pp[j++]=xreg ;
  352.                                         pv[j]=0x7F ; pp[j++]=inx0 ;
  353.                                         pv[j]=0x3F ; pp[j++]=dira ;
  354.                                         pv[j]=0x6F ; pp[j++]=inx1 ;
  355.  
  356.         pc[i]="CMP"   ; px[i++]=j ;     pv[j]=0xA1 ; pp[j++]=immd ;
  357.                                         pv[j]=0xF1 ; pp[j++]=inx0 ;
  358.                                         pv[j]=0xC1 ; pp[j++]=dorc ;
  359.                                         pv[j]=0xD1 ; pp[j++]=indx ;
  360.  
  361.         pc[i]="COM"   ; px[i++]=j ;     pv[j]=0x43 ; pp[j++]=areg ;
  362.                                         pv[j]=0x53 ; pp[j++]=xreg ;
  363.                                         pv[j]=0x73 ; pp[j++]=inx0 ;
  364.                                         pv[j]=0x33 ; pp[j++]=dira ;
  365.                                         pv[j]=0x63 ; pp[j++]=inx1 ;
  366.  
  367.         pc[i]="CPX"   ; px[i++]=j ;     pv[j]=0xA3 ; pp[j++]=immd ;
  368.                                         pv[j]=0xF3 ; pp[j++]=inx0 ;
  369.                                         pv[j]=0xC3 ; pp[j++]=dorc ;
  370.                                         pv[j]=0xD3 ; pp[j++]=indx ;
  371.  
  372.         pc[i]="DEC"   ; px[i++]=j ;     pv[j]=0x4A ; pp[j++]=areg ;
  373.                                         pv[j]=0x5A ; pp[j++]=xreg ;
  374.                                         pv[j]=0x7A ; pp[j++]=inx0 ;
  375.                                         pv[j]=0x3A ; pp[j++]=dira ;
  376.                                         pv[j]=0x6A ; pp[j++]=inx1 ;
  377.  
  378.         pc[i]="EOR"   ; px[i++]=j ;     pv[j]=0xA8 ; pp[j++]=immd ;
  379.                                         pv[j]=0xF8 ; pp[j++]=inx0 ;
  380.                                         pv[j]=0xC8 ; pp[j++]=dorc ;
  381.                                         pv[j]=0xD8 ; pp[j++]=indx ;
  382.  
  383.         pc[i]="INC"   ; px[i++]=j ;     pv[j]=0x4C ; pp[j++]=areg ;
  384.                                         pv[j]=0x5C ; pp[j++]=xreg ;
  385.                                         pv[j]=0x7C ; pp[j++]=inx0 ;
  386.                                         pv[j]=0x3C ; pp[j++]=dira ;
  387.                                         pv[j]=0x6C ; pp[j++]=inx1 ;
  388.  
  389.         pc[i]="JMP"   ; px[i++]=j ;     pv[j]=0xFC ; pp[j++]=inx0 ;
  390.                                         pv[j]=0xCC ; pp[j++]=dorc ;
  391.                                         pv[j]=0xDC ; pp[j++]=indx ;
  392.  
  393.  
  394.         pc[i]="JSR"   ; px[i++]=j ;     pv[j]=0xFD ; pp[j++]=inx0 ;
  395.                                         pv[j]=0xCD ; pp[j++]=dorc ;
  396.                                         pv[j]=0xDD ; pp[j++]=indx ;
  397.  
  398.         pc[i]="LDA"   ; px[i++]=j ;     pv[j]=0xA6 ; pp[j++]=immd ;
  399.                                         pv[j]=0xF6 ; pp[j++]=inx0 ;
  400.                                         pv[j]=0xC6 ; pp[j++]=dorc ;
  401.                                         pv[j]=0xD6 ; pp[j++]=indx ;
  402.  
  403.         pc[i]="LDX"   ; px[i++]=j ;     pv[j]=0xAE ; pp[j++]=immd ;
  404.                                         pv[j]=0xFE ; pp[j++]=inx0 ;
  405.                                         pv[j]=0xCE ; pp[j++]=dorc ;
  406.                                         pv[j]=0xDE ; pp[j++]=indx ;
  407.  
  408.         pc[i]="LSL"   ; px[i++]=j ;     pv[j]=0x48 ; pp[j++]=areg ;
  409.                                         pv[j]=0x58 ; pp[j++]=xreg ;
  410.                                         pv[j]=0x78 ; pp[j++]=inx0 ;
  411.                                         pv[j]=0x38 ; pp[j++]=dira ;
  412.                                         pv[j]=0x68 ; pp[j++]=inx1 ;
  413.  
  414.         pc[i]="LSR"   ; px[i++]=j ;     pv[j]=0x44 ; pp[j++]=areg ;
  415.                                         pv[j]=0x54 ; pp[j++]=xreg ;
  416.                                         pv[j]=0x74 ; pp[j++]=inx0 ;
  417.                                         pv[j]=0x34 ; pp[j++]=dira ;
  418.                                         pv[j]=0x64 ; pp[j++]=inx1 ;
  419.  
  420.  
  421.         pc[i]="NEG"   ; px[i++]=j ;     pv[j]=0x40 ; pp[j++]=areg ;
  422.                                         pv[j]=0x50 ; pp[j++]=xreg ;
  423.                                         pv[j]=0x70 ; pp[j++]=inx0 ;
  424.                                         pv[j]=0x30 ; pp[j++]=dira ;
  425.                                         pv[j]=0x60 ; pp[j++]=inx1 ;
  426.  
  427.         pc[i]="NOP"   ; px[i++]=j ;     pv[j]=0x9D ; pp[j++]=nopr ;
  428.  
  429.         pc[i]="ORA"   ; px[i++]=j ;     pv[j]=0xAA ; pp[j++]=immd ;
  430.                                         pv[j]=0xFA ; pp[j++]=inx0 ;
  431.                                         pv[j]=0xCA ; pp[j++]=dorc ;
  432.                                         pv[j]=0xDA ; pp[j++]=indx ;
  433.  
  434.         pc[i]="ROL"   ; px[i++]=j ;     pv[j]=0x49 ; pp[j++]=areg ;
  435.                                         pv[j]=0x59 ; pp[j++]=xreg ;
  436.                                         pv[j]=0x79 ; pp[j++]=inx0 ;
  437.                                         pv[j]=0x39 ; pp[j++]=dira ;
  438.                                         pv[j]=0x69 ; pp[j++]=inx1 ;
  439.  
  440.         pc[i]="ROR"   ; px[i++]=j ;     pv[j]=0x46 ; pp[j++]=areg ;
  441.                                         pv[j]=0x56 ; pp[j++]=xreg ;
  442.                                         pv[j]=0x76 ; pp[j++]=inx0 ;
  443.                                         pv[j]=0x36 ; pp[j++]=dira ;
  444.                                         pv[j]=0x66 ; pp[j++]=inx1 ;
  445.  
  446.         pc[i]="RSP"   ; px[i++]=j ;     pv[j]=0x98 ; pp[j++]=nopr ;
  447.         pc[i]="RTI"   ; px[i++]=j ;     pv[j]=0x80 ; pp[j++]=nopr ;
  448.         pc[i]="RTS"   ; px[i++]=j ;     pv[j]=0x81 ; pp[j++]=nopr ;
  449.  
  450.         pc[i]="SBC"   ; px[i++]=j ;     pv[j]=0xA2 ; pp[j++]=immd ;
  451.                                         pv[j]=0xF2 ; pp[j++]=inx0 ;
  452.                                         pv[j]=0xC2 ; pp[j++]=dorc ;
  453.                                         pv[j]=0xD2 ; pp[j++]=indx ;
  454.  
  455.         pc[i]="SEC"   ; px[i++]=j ;     pv[j]=0x99 ; pp[j++]=nopr ;
  456.         pc[i]="SEI"   ; px[i++]=j ;     pv[j]=0x9B ; pp[j++]=nopr ;
  457.  
  458.         pc[i]="STA"   ; px[i++]=j ;     pv[j]=0xF7 ; pp[j++]=inx0 ;
  459.                                         pv[j]=0xC7 ; pp[j++]=dorc ;
  460.                                         pv[j]=0xD7 ; pp[j++]=indx ;
  461.  
  462.  
  463.         pc[i]="STOP"  ; px[i++]=j ;     pv[j]=0x8E ; pp[j++]=nopr ;
  464.  
  465.         pc[i]="STX"   ; px[i++]=j ;     pv[j]=0xFF ; pp[j++]=inx0 ;
  466.                                         pv[j]=0xCF ; pp[j++]=dorc ;
  467.                                         pv[j]=0xDF ; pp[j++]=indx ;
  468.  
  469.         pc[i]="SUB"   ; px[i++]=j ;     pv[j]=0xA0 ; pp[j++]=immd ;
  470.                                         pv[j]=0xF0 ; pp[j++]=inx0 ;
  471.                                         pv[j]=0xC0 ; pp[j++]=dorc ;
  472.                                         pv[j]=0xD0 ; pp[j++]=indx ;
  473.  
  474.         pc[i]="SWI"   ; px[i++]=j ;     pv[j]=0x83 ; pp[j++]=nopr ;
  475.         pc[i]="TAX"   ; px[i++]=j ;     pv[j]=0x97 ; pp[j++]=nopr ;
  476.  
  477.         pc[i]="TST"   ; px[i++]=j ;     pv[j]=0x4D ; pp[j++]=areg ;
  478.                                         pv[j]=0x5D ; pp[j++]=xreg ;
  479.                                         pv[j]=0x7D ; pp[j++]=inx0 ;
  480.                                         pv[j]=0x3D ; pp[j++]=dira ;
  481.                                         pv[j]=0x6D ; pp[j++]=inx1 ;
  482.  
  483.         pc[i]="TXA"   ; px[i++]=j ;     pv[j]=0x9F ; pp[j++]=nopr ;
  484.         pc[i]="WAIT"  ; px[i++]=j ;     pv[j]=0x8F ; pp[j++]=nopr ;
  485.                          px[i] = j ;
  486.         return i ;
  487. }
  488.  
  489.  
  490.  
  491. /*
  492.         End of 6805sym.c
  493. */
  494.  
  495.