home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2204 < prev    next >
Encoding:
Internet Message Format  |  1990-12-28  |  61.3 KB

  1. From: markz@ssc.UUCP (Mark Zenier)
  2. Newsgroups: alt.sources
  3. Subject: Frankenstein Cross Assemblers, Motorola 6811 "Flavor", part 2 of 2
  4. Message-ID: <604@ssc.UUCP>
  5. Date: 5 Dec 90 06:13:35 GMT
  6.  
  7. ---- Cut Here and feed the following to sh ----
  8. #!/bin/sh
  9. # This is part 02 of Frankasm/As6811
  10. # ============= as6811.y ==============
  11. if test -f 'as6811.y' -a X"$1" != X"-c"; then
  12.     echo 'x - skipping as6811.y (File already exists)'
  13. else
  14. echo 'x - extracting as6811.y (Text)'
  15. sed 's/^X//' << 'SHAR_EOF' > 'as6811.y' &&
  16. X%{
  17. X
  18. X/*
  19. XHEADER:     ;
  20. XTITLE:         Frankenstein Cross Assemblers;
  21. XVERSION:     2.0;
  22. XDESCRIPTION: "    Reconfigurable Cross-assembler producing Intel (TM)
  23. X        Hex format object records.  ";
  24. XKEYWORDS:     cross-assemblers, 1805, 2650, 6301, 6502, 6805, 6809, 
  25. X        6811, tms7000, 8048, 8051, 8096, z8, z80;
  26. XSYSTEM:     UNIX, MS-Dos ;
  27. XFILENAME:     as6811.y;
  28. XWARNINGS:     "This software is in the public domain.  
  29. X        Any prior copyright claims are relinquished.  
  30. X
  31. X        This software is distributed with no warranty whatever.  
  32. X        The author takes no responsibility for the consequences 
  33. X        of its use.
  34. X
  35. X        Yacc (or Bison) required to compile."  ;
  36. XSEE-ALSO:     as6811.doc,frasmain.c;    
  37. XAUTHORS:     Mark Zenier;
  38. XCOMPILERS:     Microport Sys V/AT, ATT Yacc, Turbo C V1.5, Bison (CUG disk 285)
  39. X        (previous versions Xenix, Unisoft 68000 Version 7, Sun 3);
  40. X*/
  41. X/* 6811 instruction generation file */
  42. X/* November 17, 1990 */
  43. X
  44. X/*
  45. X    description    frame work parser description for framework cross
  46. X            assemblers
  47. X    history        February 2, 1988
  48. X            September 11, 1990 - merge table definition
  49. X            September 12, 1990 - short file names
  50. X            September 14, 1990 - short variable names
  51. X            September 17, 1990 - use yylex as external
  52. X*/
  53. X#include <stdio.h>
  54. X#include "frasmdat.h"
  55. X#include "fragcon.h"
  56. X
  57. X#define yylex lexintercept
  58. X
  59. X/*
  60. X    file        fraselcrit.h
  61. X    author        Mark Zenier
  62. X    description    Selection criteria and token values for 6811
  63. X            framework assembler
  64. X    usage        framework cross assembler
  65. X    history        September 19, 1987
  66. X*/
  67. X
  68. X        /* 000000xxxx */
  69. X#define CPUMASK        0xf
  70. X#define CPU6800        0x1    /* cpuselect value in parser */
  71. X#define CPU6801        0x3
  72. X#define CPU6811        0x7
  73. X#define TS6800PLUS    0x1    /* mask and match values in table */
  74. X#define TS6801PLUS    0x2    /* if select value & mask == mask */
  75. X#define TS6811        0x4
  76. X
  77. X        /* 0000xx0000 */
  78. X#define ACCREG        0x30
  79. X#define REGA        0x10
  80. X#define REGB        0x20
  81. X
  82. X        /* 00xx000000 */
  83. X#define INDREG        0xc0
  84. X#define REGX        0x40
  85. X#define REGY        0x80
  86. X
  87. X        /* xx00000000 */
  88. X#define ADDR        0x300
  89. X#define DIRECT        0x100
  90. X#define EXTENDED    0x200
  91. X
  92. X
  93. X#define ST_ACC 0x1
  94. X#define ST_AEXP 0x2
  95. X#define ST_AIMM 0x4
  96. X#define ST_AIND 0x8
  97. X#define ST_BRSET 0x10
  98. X#define ST_BSET 0x20
  99. X#define ST_EXP 0x40
  100. X#define ST_IBRSET 0x80
  101. X#define ST_IBSET 0x100
  102. X#define ST_IMM 0x200
  103. X#define ST_IND 0x400
  104. X#define ST_INDREG 0x800
  105. X#define ST_INH 0x1000
  106. X    
  107. X    
  108. X    int    cpuselect = CPU6811;
  109. X    static char    genbdef[] = "[1=];";
  110. X    static char    genwdef[] = "[1=]x";
  111. X    char ignosyn[] = "[Xinvalid syntax for instruction";
  112. X    char ignosel[] = "[Xinvalid operands/illegal instruction for cpu";
  113. X
  114. X
  115. X    long    labelloc;
  116. X    static int satsub;
  117. X    int    ifstkpt = 0;
  118. X    int    fraifskip = FALSE;
  119. X
  120. X    struct symel * endsymbol = SYMNULL;
  121. X
  122. X%}
  123. X%union {
  124. X    int    intv;
  125. X    long     longv;
  126. X    char    *strng;
  127. X    struct symel *symb;
  128. X    struct {int indexv, ex; } inetre;
  129. X}
  130. X
  131. X%token <intv> ACCUM
  132. X%token <intv> INDEX
  133. X%type <inetre> indexed
  134. X
  135. X%token <intv> KOC_BDEF
  136. X%token <intv> KOC_ELSE
  137. X%token <intv> KOC_END
  138. X%token <intv> KOC_ENDI
  139. X%token <intv> KOC_EQU
  140. X%token <intv> KOC_IF
  141. X%token <intv> KOC_INCLUDE
  142. X%token <intv> KOC_ORG
  143. X%token <intv> KOC_RESM
  144. X%token <intv> KOC_SDEF
  145. X%token <intv> KOC_SET
  146. X%token <intv> KOC_WDEF
  147. X%token <intv> KOC_CHSET
  148. X%token <intv> KOC_CHDEF
  149. X%token <intv> KOC_CHUSE
  150. X%token <intv> KOC_CPU
  151. X%token <intv> KOC_opcode
  152. X
  153. X%token <longv> CONSTANT
  154. X%token EOL
  155. X%token KEOP_AND
  156. X%token KEOP_DEFINED
  157. X%token KEOP_EQ
  158. X%token KEOP_GE
  159. X%token KEOP_GT
  160. X%token KEOP_HIGH
  161. X%token KEOP_LE
  162. X%token KEOP_LOW
  163. X%token KEOP_LT
  164. X%token KEOP_MOD
  165. X%token KEOP_MUN
  166. X%token KEOP_NE
  167. X%token KEOP_NOT
  168. X%token KEOP_OR
  169. X%token KEOP_SHL
  170. X%token KEOP_SHR
  171. X%token KEOP_XOR
  172. X%token KEOP_locctr
  173. X%token <symb> LABEL
  174. X%token <strng> STRING
  175. X%token <symb> SYMBOL
  176. X
  177. X%token KTK_invalid
  178. X
  179. X%right    KEOP_HIGH KEOP_LOW
  180. X%left    KEOP_OR KEOP_XOR
  181. X%left    KEOP_AND
  182. X%right    KEOP_NOT
  183. X%nonassoc    KEOP_GT KEOP_GE KEOP_LE KEOP_LT KEOP_NE KEOP_EQ
  184. X%left    '+' '-'
  185. X%left    '*' '/' KEOP_MOD KEOP_SHL KEOP_SHR
  186. X%right    KEOP_MUN
  187. X
  188. X
  189. X%type <intv> expr exprlist stringlist
  190. X
  191. X%start file
  192. X
  193. X%%
  194. X
  195. Xfile    :    file allline
  196. X    |    allline
  197. X    ;
  198. X
  199. Xallline    :     line EOL
  200. X            {
  201. X                clrexpr();
  202. X            }
  203. X    |    EOL
  204. X    |    error EOL
  205. X            {
  206. X                clrexpr();
  207. X                yyerrok;
  208. X            }
  209. X    ;
  210. X
  211. Xline    :    LABEL KOC_END 
  212. X            {
  213. X                endsymbol = $1;
  214. X                nextreadact = Nra_end;
  215. X            }
  216. X    |          KOC_END 
  217. X            {
  218. X                nextreadact = Nra_end;
  219. X            }
  220. X    |    KOC_INCLUDE STRING
  221. X            {
  222. X        if(nextfstk >= FILESTKDPTH)
  223. X        {
  224. X            fraerror("include file nesting limit exceeded");
  225. X        }
  226. X        else
  227. X        {
  228. X            infilestk[nextfstk].fnm = savestring($2,strlen($2));
  229. X            if( (infilestk[nextfstk].fpt = fopen($2,"r"))
  230. X                ==(FILE *)NULL )
  231. X            {
  232. X                fraerror("cannot open include file");
  233. X            }
  234. X            else
  235. X            {
  236. X                nextreadact = Nra_new;
  237. X            }
  238. X        }
  239. X            }
  240. X    |    LABEL KOC_EQU expr 
  241. X            {
  242. X                if($1 -> seg == SSG_UNDEF)
  243. X                {
  244. X                    pevalexpr(0, $3);
  245. X                    if(evalr[0].seg == SSG_ABS)
  246. X                    {
  247. X                        $1 -> seg = SSG_EQU;
  248. X                        $1 -> value = evalr[0].value;
  249. X                        prtequvalue("C: 0x%lx\n",
  250. X                            evalr[0].value);
  251. X                    }
  252. X                    else
  253. X                    {
  254. X                        fraerror(
  255. X                    "noncomputable expression for EQU");
  256. X                    }
  257. X                }
  258. X                else
  259. X                {
  260. X                    fraerror(
  261. X                "cannot change symbol value with EQU");
  262. X                }
  263. X            }
  264. X    |    LABEL KOC_SET expr 
  265. X            {
  266. X                if($1 -> seg == SSG_UNDEF
  267. X                   || $1 -> seg == SSG_SET)
  268. X                {
  269. X                    pevalexpr(0, $3);
  270. X                    if(evalr[0].seg == SSG_ABS)
  271. X                    {
  272. X                        $1 -> seg = SSG_SET;
  273. X                        $1 -> value = evalr[0].value;
  274. X                        prtequvalue("C: 0x%lx\n",
  275. X                            evalr[0].value);
  276. X                    }
  277. X                    else
  278. X                    {
  279. X                        fraerror(
  280. X                    "noncomputable expression for SET");
  281. X                    }
  282. X                }
  283. X                else
  284. X                {
  285. X                    fraerror(
  286. X                "cannot change symbol value with SET");
  287. X                }
  288. X            }
  289. X    |    KOC_IF expr 
  290. X            {
  291. X        if((++ifstkpt) < IFSTKDEPTH)
  292. X        {
  293. X            pevalexpr(0, $2);
  294. X            if(evalr[0].seg == SSG_ABS)
  295. X            {
  296. X                if(evalr[0].value != 0)
  297. X                {
  298. X                    elseifstk[ifstkpt] = If_Skip;
  299. X                    endifstk[ifstkpt] = If_Active;
  300. X                }
  301. X                else
  302. X                {
  303. X                    fraifskip = TRUE;
  304. X                    elseifstk[ifstkpt] = If_Active;
  305. X                    endifstk[ifstkpt] = If_Active;
  306. X                }
  307. X            }
  308. X            else
  309. X            {
  310. X                fraifskip = TRUE;
  311. X                elseifstk[ifstkpt] = If_Active;
  312. X                endifstk[ifstkpt] = If_Active;
  313. X            }
  314. X        }
  315. X        else
  316. X        {
  317. X            fraerror("IF stack overflow");
  318. X        }
  319. X            }
  320. X                        
  321. X    |    KOC_IF 
  322. X            {
  323. X        if(fraifskip) 
  324. X        {
  325. X            if((++ifstkpt) < IFSTKDEPTH)
  326. X            {
  327. X                    elseifstk[ifstkpt] = If_Skip;
  328. X                    endifstk[ifstkpt] = If_Skip;
  329. X            }
  330. X            else
  331. X            {
  332. X                fraerror("IF stack overflow");
  333. X            }
  334. X        }
  335. X        else
  336. X        {
  337. X            yyerror("syntax error");
  338. X            YYERROR;
  339. X        }
  340. X                }
  341. X                        
  342. X    |    KOC_ELSE 
  343. X            {
  344. X                switch(elseifstk[ifstkpt])
  345. X                {
  346. X                case If_Active:
  347. X                    fraifskip = FALSE;
  348. X                    break;
  349. X                
  350. X                case If_Skip:
  351. X                    fraifskip = TRUE;
  352. X                    break;
  353. X                
  354. X                case If_Err:
  355. X                    fraerror("ELSE with no matching if");
  356. X                    break;
  357. X                }
  358. X            }
  359. X
  360. X    |    KOC_ENDI 
  361. X            {
  362. X                switch(endifstk[ifstkpt])
  363. X                {
  364. X                case If_Active:
  365. X                    fraifskip = FALSE;
  366. X                    ifstkpt--;
  367. X                    break;
  368. X                
  369. X                case If_Skip:
  370. X                    fraifskip = TRUE;
  371. X                    ifstkpt--;
  372. X                    break;
  373. X                
  374. X                case If_Err:
  375. X                    fraerror("ENDI with no matching if");
  376. X                    break;
  377. X                }
  378. X            }
  379. X    |    LABEL KOC_ORG expr 
  380. X            {
  381. X                pevalexpr(0, $3);
  382. X                if(evalr[0].seg == SSG_ABS)
  383. X                {
  384. X                    locctr = labelloc = evalr[0].value;
  385. X                    if($1 -> seg == SSG_UNDEF)
  386. X                    {
  387. X                        $1 -> seg = SSG_ABS;
  388. X                        $1 -> value = labelloc;
  389. X                    }
  390. X                    else
  391. X                        fraerror(
  392. X                        "multiple definition of label");
  393. X                    prtequvalue("C: 0x%lx\n",
  394. X                        evalr[0].value);
  395. X                }
  396. X                else
  397. X                {
  398. X                    fraerror(
  399. X                     "noncomputable expression for ORG");
  400. X                }
  401. X            }
  402. X    |          KOC_ORG expr 
  403. X            {
  404. X                pevalexpr(0, $2);
  405. X                if(evalr[0].seg == SSG_ABS)
  406. X                {
  407. X                    locctr = labelloc = evalr[0].value;
  408. X                    prtequvalue("C: 0x%lx\n",
  409. X                        evalr[0].value);
  410. X                }
  411. X                else
  412. X                {
  413. X                    fraerror(
  414. X                     "noncomputable expression for ORG");
  415. X                }
  416. X            }
  417. X    |    LABEL KOC_CHSET
  418. X            {
  419. X                if($1 -> seg == SSG_UNDEF)
  420. X                {
  421. X                    $1 -> seg = SSG_EQU;
  422. X                    if( ($1->value = chtcreate()) <= 0)
  423. X                    {
  424. X        fraerror( "cannot create character translation table");
  425. X                    }
  426. X                    prtequvalue("C: 0x%lx\n", $1 -> value);
  427. X                }
  428. X                else
  429. X                {
  430. X            fraerror( "multiple definition of label");
  431. X                }
  432. X            }
  433. X    |        KOC_CHUSE
  434. X            {
  435. X                chtcpoint = (int *) NULL;
  436. X                prtequvalue("C: 0x%lx\n", 0L);
  437. X            }
  438. X    |        KOC_CHUSE expr
  439. X            {
  440. X                pevalexpr(0, $2);
  441. X                if( evalr[0].seg == SSG_ABS)
  442. X                {
  443. X                    if( evalr[0].value == 0)
  444. X                    {
  445. X                        chtcpoint = (int *)NULL;
  446. X                        prtequvalue("C: 0x%lx\n", 0L);
  447. X                    }
  448. X                    else if(evalr[0].value < chtnxalph)
  449. X                    {
  450. X                chtcpoint = chtatab[evalr[0].value];
  451. X                prtequvalue("C: 0x%lx\n", evalr[0].value);
  452. X                    }
  453. X                    else
  454. X                    {
  455. X            fraerror("nonexistent character translation table");
  456. X                    }
  457. X                }
  458. X                else
  459. X                {
  460. X                    fraerror("noncomputable expression");
  461. X                }
  462. X            }
  463. X    |        KOC_CHDEF STRING ',' exprlist
  464. X            {
  465. X        int findrv, numret, *charaddr;
  466. X        char *sourcestr = $2, *before;
  467. X
  468. X        if(chtnpoint != (int *)NULL)
  469. X        {
  470. X            for(satsub = 0; satsub < $4; satsub++)
  471. X            {
  472. X                before = sourcestr;
  473. X
  474. X                pevalexpr(0, exprlist[satsub]);
  475. X                findrv = chtcfind(chtnpoint, &sourcestr,
  476. X                        &charaddr, &numret);
  477. X                if(findrv == CF_END)
  478. X                {
  479. X            fraerror("more expressions than characters");
  480. X                    break;
  481. X                }
  482. X
  483. X                if(evalr[0].seg == SSG_ABS)
  484. X                {
  485. X                    switch(findrv)
  486. X                    {
  487. X                    case CF_UNDEF:
  488. X                        {
  489. X                if(evalr[0].value < 0 ||
  490. X                    evalr[0].value > 255)
  491. X                {
  492. X            frawarn("character translation value truncated");
  493. X                }
  494. X                *charaddr = evalr[0].value & 0xff;
  495. X                prtequvalue("C: 0x%lx\n", evalr[0].value);
  496. X                        }
  497. X                        break;
  498. X
  499. X                    case CF_INVALID:
  500. X                    case CF_NUMBER:
  501. X                fracherror("invalid character to define", 
  502. X                    before, sourcestr);
  503. X                        break;
  504. X
  505. X                    case CF_CHAR:
  506. X                fracherror("character already defined", 
  507. X                    before, sourcestr);
  508. X                        break;
  509. X                    }
  510. X                }
  511. X                else
  512. X                {
  513. X                    fraerror("noncomputable expression");
  514. X                }
  515. X            }
  516. X
  517. X            if( *sourcestr != '\0')
  518. X            {
  519. X                fraerror("more characters than expressions");
  520. X            }
  521. X        }
  522. X        else
  523. X        {
  524. X            fraerror("no CHARSET statement active");
  525. X        }
  526. X            
  527. X            }
  528. X    |    LABEL 
  529. X            {
  530. X            if($1 -> seg == SSG_UNDEF)
  531. X            {
  532. X                $1 -> seg = SSG_ABS;
  533. X                $1 -> value = labelloc;
  534. X                prtequvalue("C: 0x%lx\n", labelloc);
  535. X
  536. X            }
  537. X            else
  538. X                fraerror(
  539. X                "multiple definition of label");
  540. X            }
  541. X    |    labeledline
  542. X    ;
  543. X
  544. Xlabeledline :    LABEL genline
  545. X            {
  546. X            if($1 -> seg == SSG_UNDEF)
  547. X            {
  548. X                $1 -> seg = SSG_ABS;
  549. X                $1 -> value = labelloc;
  550. X            }
  551. X            else
  552. X                fraerror(
  553. X                "multiple definition of label");
  554. X            labelloc = locctr;
  555. X            }
  556. X                
  557. X    |    genline
  558. X            {
  559. X                labelloc = locctr;
  560. X            }
  561. X    ;
  562. X
  563. Xgenline    :    KOC_BDEF    exprlist 
  564. X            {
  565. X                genlocrec(currseg, labelloc);
  566. X                for( satsub = 0; satsub < $2; satsub++)
  567. X                {
  568. X                    pevalexpr(1, exprlist[satsub]);
  569. X                    locctr += geninstr(genbdef);
  570. X                }
  571. X            }
  572. X    |    KOC_SDEF stringlist 
  573. X            {
  574. X                genlocrec(currseg, labelloc);
  575. X                for(satsub = 0; satsub < $2; satsub++)
  576. X                {
  577. X                    locctr += genstring(stringlist[satsub]);
  578. X                }
  579. X            }
  580. X    |    KOC_WDEF exprlist 
  581. X            {
  582. X                genlocrec(currseg, labelloc);
  583. X                for( satsub = 0; satsub < $2; satsub++)
  584. X                {
  585. X                    pevalexpr(1, exprlist[satsub]);
  586. X                    locctr += geninstr(genwdef);
  587. X                }
  588. X            }    
  589. X    |    KOC_RESM expr 
  590. X            {
  591. X                pevalexpr(0, $2);
  592. X                if(evalr[0].seg == SSG_ABS)
  593. X                {
  594. X                    locctr = labelloc + evalr[0].value;
  595. X                    prtequvalue("C: 0x%lx\n", labelloc);
  596. X                }
  597. X                else
  598. X                {
  599. X                    fraerror(
  600. X                 "noncomputable result for RMB expression");
  601. X                }
  602. X            }
  603. X    ;
  604. X
  605. Xexprlist :    exprlist ',' expr
  606. X            {
  607. X                exprlist[nextexprs ++ ] = $3;
  608. X                $$ = nextexprs;
  609. X            }
  610. X    |    expr
  611. X            {
  612. X                nextexprs = 0;
  613. X                exprlist[nextexprs ++ ] = $1;
  614. X                $$ = nextexprs;
  615. X            }
  616. X    ;
  617. X
  618. Xstringlist :    stringlist ',' STRING
  619. X            {
  620. X                stringlist[nextstrs ++ ] = $3;
  621. X                $$ = nextstrs;
  622. X            }
  623. X    |    STRING
  624. X            {
  625. X                nextstrs = 0;
  626. X                stringlist[nextstrs ++ ] = $1;
  627. X                $$ = nextstrs;
  628. X            }
  629. X    ;
  630. X
  631. X
  632. Xline    :    KOC_CPU STRING
  633. X            {
  634. X        if( ! cpumatch($2))
  635. X        {
  636. X            fraerror("unknown cpu type, 68hc11 assumed");
  637. X            cpuselect = CPU6811;
  638. X        }
  639. X            }
  640. X    ;
  641. Xgenline : KOC_opcode  ACCUM
  642. X            {
  643. X        genlocrec(currseg, labelloc);
  644. X        locctr += geninstr(findgen($1, ST_ACC, $2 + cpuselect));
  645. X            }
  646. X    ;
  647. Xgenline : KOC_opcode  ACCUM expr
  648. X            {
  649. X        pevalexpr(1, $3);
  650. X        genlocrec(currseg, labelloc);
  651. X        locctr += geninstr(findgen( $1, ST_AEXP, cpuselect + $2
  652. X                 + ( (evalr[1].seg == SSG_ABS 
  653. X                && evalr[1].value >= 0
  654. X                && evalr[1].value <= 255 )
  655. X                ? DIRECT : EXTENDED ) ) );
  656. X            }
  657. X    ;
  658. Xgenline : KOC_opcode  ACCUM '#' expr
  659. X            {
  660. X        pevalexpr(1,$4);
  661. X        genlocrec(currseg, labelloc);
  662. X        locctr += geninstr( findgen($1, ST_AIMM, $2 + cpuselect));
  663. X            }
  664. X    ;
  665. Xgenline : KOC_opcode  ACCUM indexed
  666. X            {
  667. X        pevalexpr(1, $3.ex);
  668. X        genlocrec(currseg, labelloc);
  669. X        locctr += geninstr( findgen($1, ST_AIND, cpuselect
  670. X                    + $2 + $3.indexv));
  671. X            }
  672. X    ;
  673. Xgenline : KOC_opcode  expr ',' expr ',' expr
  674. X            {
  675. X        pevalexpr(1,$2);
  676. X        pevalexpr(2,$4);
  677. X        pevalexpr(3,$6);
  678. X        genlocrec(currseg, labelloc);
  679. X        locctr += geninstr( findgen($1, ST_BRSET, cpuselect));
  680. X            }
  681. X    ;
  682. Xgenline : KOC_opcode  expr ',' expr
  683. X            {
  684. X        pevalexpr(1,$2);
  685. X        pevalexpr(2,$4);
  686. X        genlocrec(currseg, labelloc);
  687. X        locctr += geninstr( findgen( $1, ST_BSET, cpuselect));
  688. X            }
  689. X    ;
  690. Xgenline : KOC_opcode  expr
  691. X            {
  692. X        pevalexpr(1, $2);
  693. X        genlocrec(currseg, labelloc);
  694. X        locctr += geninstr( findgen( $1, ST_EXP, cpuselect 
  695. X                 + ( (evalr[1].seg == SSG_ABS 
  696. X                && evalr[1].value >= 0
  697. X                && evalr[1].value <= 255 )
  698. X                ? DIRECT : EXTENDED ) )
  699. X                );
  700. X            }
  701. X    ;
  702. Xgenline : KOC_opcode  indexed ',' expr ',' expr
  703. X            {
  704. X        pevalexpr(1,$2.ex);
  705. X        pevalexpr(2,$4);
  706. X        pevalexpr(3,$6);
  707. X        genlocrec(currseg, labelloc);
  708. X        locctr += geninstr( findgen($1, ST_IBRSET, cpuselect
  709. X                    + $2.indexv));
  710. X            }
  711. X    ;
  712. Xgenline : KOC_opcode  indexed ',' expr
  713. X            {
  714. X        pevalexpr(1,$2.ex);
  715. X        pevalexpr(2,$4);
  716. X        genlocrec(currseg, labelloc);
  717. X        locctr += geninstr( findgen($1, ST_IBSET, cpuselect
  718. X                    + $2.indexv));
  719. X            }
  720. X    ;
  721. Xgenline : KOC_opcode  '#' expr
  722. X            {
  723. X        pevalexpr(1, $3);
  724. X        genlocrec(currseg, labelloc);
  725. X        locctr += geninstr( findgen($1, ST_IMM, cpuselect));
  726. X            }
  727. X    ;
  728. Xgenline : KOC_opcode  indexed
  729. X            {
  730. X        pevalexpr(1, $2.ex);
  731. X        genlocrec(currseg, labelloc);
  732. X        locctr += geninstr( findgen($1, ST_IND, cpuselect 
  733. X                    + ($2.indexv)));
  734. X            }
  735. X    ;
  736. Xgenline : KOC_opcode  INDEX
  737. X            {
  738. X        genlocrec(currseg, labelloc);
  739. X        locctr += geninstr(findgen($1, ST_INDREG, $2 + cpuselect));
  740. X            }
  741. X    ;
  742. Xgenline : KOC_opcode 
  743. X            {
  744. X        genlocrec(currseg, labelloc);
  745. X        locctr += geninstr(findgen($1, ST_INH, cpuselect));
  746. X            }
  747. X    ;
  748. Xexpr    :    '+' expr %prec KEOP_MUN
  749. X            {
  750. X                $$ = $2;
  751. X            }
  752. X    |    '-' expr %prec KEOP_MUN
  753. X            {
  754. X                $$ = exprnode(PCCASE_UN,$2,IFC_NEG,0,0L,
  755. X                    SYMNULL);
  756. X            }
  757. X    |    KEOP_NOT expr
  758. X            {
  759. X                $$ = exprnode(PCCASE_UN,$2,IFC_NOT,0,0L,
  760. X                    SYMNULL);
  761. X            }
  762. X    |    KEOP_HIGH expr
  763. X            {
  764. X                $$ = exprnode(PCCASE_UN,$2,IFC_HIGH,0,0L,
  765. X                    SYMNULL);
  766. X            }
  767. X    |    KEOP_LOW expr
  768. X            {
  769. X                $$ = exprnode(PCCASE_UN,$2,IFC_LOW,0,0L,
  770. X                    SYMNULL);
  771. X            }
  772. X    |    expr '*' expr
  773. X            {
  774. X                $$ = exprnode(PCCASE_BIN,$1,IFC_MUL,$3,0L,
  775. X                    SYMNULL);
  776. X            }
  777. X    |    expr '/' expr
  778. X            {
  779. X                $$ = exprnode(PCCASE_BIN,$1,IFC_DIV,$3,0L,
  780. X                    SYMNULL);
  781. X            }
  782. X    |    expr '+' expr
  783. X            {
  784. X                $$ = exprnode(PCCASE_BIN,$1,IFC_ADD,$3,0L,
  785. X                    SYMNULL);
  786. X            }
  787. X    |    expr '-' expr
  788. X            {
  789. X                $$ = exprnode(PCCASE_BIN,$1,IFC_SUB,$3,0L,
  790. X                    SYMNULL);
  791. X            }
  792. X    |    expr KEOP_MOD expr
  793. X            {
  794. X                $$ = exprnode(PCCASE_BIN,$1,IFC_MOD,$3,0L,
  795. X                    SYMNULL);
  796. X            }
  797. X    |    expr KEOP_SHL expr
  798. X            {
  799. X                $$ = exprnode(PCCASE_BIN,$1,IFC_SHL,$3,0L,
  800. X                    SYMNULL);
  801. X            }
  802. X    |    expr KEOP_SHR expr
  803. X            {
  804. X                $$ = exprnode(PCCASE_BIN,$1,IFC_SHR,$3,0L,
  805. X                    SYMNULL);
  806. X            }
  807. X    |    expr KEOP_GT expr
  808. X            {
  809. X                $$ = exprnode(PCCASE_BIN,$1,IFC_GT,$3,0L,
  810. X                    SYMNULL);
  811. X            }
  812. X    |    expr KEOP_GE expr
  813. X            {
  814. X                $$ = exprnode(PCCASE_BIN,$1,IFC_GE,$3,0L,
  815. X                    SYMNULL);
  816. X            }
  817. X    |    expr KEOP_LT expr
  818. X            {
  819. X                $$ = exprnode(PCCASE_BIN,$1,IFC_LT,$3,0L,
  820. X                    SYMNULL);
  821. X            }
  822. X    |    expr KEOP_LE expr
  823. X            {
  824. X                $$ = exprnode(PCCASE_BIN,$1,IFC_LE,$3,0L,
  825. X                    SYMNULL);
  826. X            }
  827. X    |    expr KEOP_NE expr
  828. X            {
  829. X                $$ = exprnode(PCCASE_BIN,$1,IFC_NE,$3,0L,
  830. X                    SYMNULL);
  831. X            }
  832. X    |    expr KEOP_EQ expr
  833. X            {
  834. X                $$ = exprnode(PCCASE_BIN,$1,IFC_EQ,$3,0L,
  835. X                    SYMNULL);
  836. X            }
  837. X    |    expr KEOP_AND expr
  838. X            {
  839. X                $$ = exprnode(PCCASE_BIN,$1,IFC_AND,$3,0L,
  840. X                    SYMNULL);
  841. X            }
  842. X    |    expr KEOP_OR expr
  843. X            {
  844. X                $$ = exprnode(PCCASE_BIN,$1,IFC_OR,$3,0L,
  845. X                    SYMNULL);
  846. X            }
  847. X    |    expr KEOP_XOR expr
  848. X            {
  849. X                $$ = exprnode(PCCASE_BIN,$1,IFC_XOR,$3,0L,
  850. X                    SYMNULL);
  851. X            }
  852. X    |    KEOP_DEFINED SYMBOL
  853. X            {
  854. X                $$ = exprnode(PCCASE_DEF,0,IGP_DEFINED,0,0L,$2);
  855. X            }
  856. X    |    SYMBOL
  857. X            {
  858. X                $$ = exprnode(PCCASE_SYMB,0,IFC_SYMB,0,0L,$1);
  859. X            }
  860. X    |    '*'
  861. X            {
  862. X                $$ = exprnode(PCCASE_PROGC,0,IFC_PROGCTR,0,
  863. X                    labelloc, SYMNULL);
  864. X            }
  865. X    |    CONSTANT
  866. X            {
  867. X                $$ = exprnode(PCCASE_CONS,0,IGP_CONSTANT,0,$1,
  868. X                    SYMNULL);
  869. X            }
  870. X    |    STRING
  871. X            {
  872. X                char *sourcestr = $1;
  873. X                long accval = 0;
  874. X
  875. X                if(strlen($1) > 0)
  876. X                {
  877. X                    accval = chtran(&sourcestr);
  878. X                    if(*sourcestr != '\0')
  879. X                    {
  880. X                        accval = (accval << 8) +
  881. X                            chtran(&sourcestr);
  882. X                    }
  883. X
  884. X                    if( *sourcestr != '\0')
  885. X                    {
  886. X    frawarn("string constant in expression more than 2 characters long");
  887. X                    }
  888. X                }
  889. X                $$ = exprnode(PCCASE_CONS, 0, IGP_CONSTANT, 0,
  890. X                    accval, SYMNULL);
  891. X            }
  892. X    |    '(' expr ')'
  893. X            {
  894. X                $$ = $2;
  895. X            }
  896. X    ;
  897. X
  898. X
  899. Xindexed    :    INDEX ',' expr
  900. X            {
  901. X                $$.ex = $3;
  902. X                $$.indexv = $1;
  903. X            }
  904. X    |    expr ',' INDEX
  905. X            {
  906. X                $$.ex = $1;
  907. X                $$.indexv = $3;
  908. X            }
  909. X    ;
  910. X
  911. X%%
  912. X
  913. Xlexintercept()
  914. X/*
  915. X    description    intercept the call to yylex (the lexical analyzer)
  916. X            and filter out all unnecessary tokens when skipping
  917. X            the input between a failed IF and its matching ENDI or
  918. X            ELSE
  919. X    globals     fraifskip    the enable flag
  920. X*/
  921. X{
  922. X#undef yylex
  923. X
  924. X    int rv;
  925. X
  926. X    if(fraifskip)
  927. X    {
  928. X        for(;;)
  929. X        {
  930. X
  931. X            switch(rv = yylex())
  932. X
  933. X            {
  934. X            case 0:
  935. X            case KOC_END:
  936. X            case KOC_IF:
  937. X            case KOC_ELSE:
  938. X            case KOC_ENDI:
  939. X            case EOL:
  940. X                return rv;
  941. X            default:
  942. X                break;
  943. X            }
  944. X        }
  945. X    }
  946. X    else
  947. X        return yylex();
  948. X#define yylex lexintercept
  949. X}
  950. X
  951. X
  952. X
  953. Xsetreserved()
  954. X{
  955. X
  956. X    reservedsym("and", KEOP_AND, 0);
  957. X    reservedsym("defined", KEOP_DEFINED,0);
  958. X    reservedsym("eq", KEOP_EQ, 0);
  959. X    reservedsym("ge", KEOP_GE, 0);
  960. X    reservedsym("gt", KEOP_GT, 0);
  961. X    reservedsym("high", KEOP_HIGH, 0);
  962. X    reservedsym("le", KEOP_LE, 0);
  963. X    reservedsym("low", KEOP_LOW, 0);
  964. X    reservedsym("lt", KEOP_LT, 0);
  965. X    reservedsym("mod", KEOP_MOD, 0);
  966. X    reservedsym("ne", KEOP_NE, 0);
  967. X    reservedsym("not", KEOP_NOT, 0);
  968. X    reservedsym("or", KEOP_OR, 0);
  969. X    reservedsym("shl", KEOP_SHL, 0);
  970. X    reservedsym("shr", KEOP_SHR, 0);
  971. X    reservedsym("xor", KEOP_XOR, 0);
  972. X    reservedsym("AND", KEOP_AND, 0);
  973. X    reservedsym("DEFINED", KEOP_DEFINED,0);
  974. X    reservedsym("EQ", KEOP_EQ, 0);
  975. X    reservedsym("GE", KEOP_GE, 0);
  976. X    reservedsym("GT", KEOP_GT, 0);
  977. X    reservedsym("HIGH", KEOP_HIGH, 0);
  978. X    reservedsym("LE", KEOP_LE, 0);
  979. X    reservedsym("LOW", KEOP_LOW, 0);
  980. X    reservedsym("LT", KEOP_LT, 0);
  981. X    reservedsym("MOD", KEOP_MOD, 0);
  982. X    reservedsym("NE", KEOP_NE, 0);
  983. X    reservedsym("NOT", KEOP_NOT, 0);
  984. X    reservedsym("OR", KEOP_OR, 0);
  985. X    reservedsym("SHL", KEOP_SHL, 0);
  986. X    reservedsym("SHR", KEOP_SHR, 0);
  987. X    reservedsym("XOR", KEOP_XOR, 0);
  988. X
  989. X
  990. X    reservedsym("a", ACCUM, REGA);
  991. X    reservedsym("b", ACCUM, REGB);
  992. X    reservedsym("x", INDEX, REGX);
  993. X    reservedsym("y", INDEX, REGY);
  994. X    reservedsym("A", ACCUM, REGA);
  995. X    reservedsym("B", ACCUM, REGB);
  996. X    reservedsym("X", INDEX, REGX);
  997. X    reservedsym("Y", INDEX, REGY);
  998. X
  999. X}
  1000. X
  1001. Xcpumatch(str)
  1002. X    char * str;
  1003. X{
  1004. X    int msub;
  1005. X
  1006. X    static struct
  1007. X    {
  1008. X        char * mtch;
  1009. X        int   cpuv;
  1010. X    } matchtab[] =
  1011. X    {
  1012. X        {"11", CPU6811},
  1013. X        {"01", CPU6801},
  1014. X        {"00", CPU6800},
  1015. X        {"03", CPU6801},
  1016. X        {"02", CPU6800},
  1017. X        {"08", CPU6800},
  1018. X        {"", 0} 
  1019. X    };
  1020. X
  1021. X    for(msub = 0; matchtab[msub].cpuv != 0; msub++)
  1022. X    {
  1023. X        if(strcontains(str, matchtab[msub].mtch))
  1024. X        {
  1025. X            cpuselect = matchtab[msub].cpuv;
  1026. X            return TRUE;
  1027. X        }
  1028. X    }
  1029. X
  1030. X    return FALSE;
  1031. X}
  1032. X
  1033. X
  1034. Xstrcontains(s1, sm)
  1035. X    char * s1, *sm;
  1036. X{
  1037. X    int l1 = strlen(s1), lm = strlen(sm);
  1038. X
  1039. X    for(; l1 >= lm; l1--, s1++)
  1040. X    {
  1041. X        if(strncmp(s1, sm, lm) == 0)
  1042. X        {
  1043. X            return TRUE;
  1044. X        }
  1045. X    }
  1046. X    return FALSE;
  1047. X}
  1048. X
  1049. X/*
  1050. X    description    Opcode and Instruction generation tables
  1051. X    usage        Unix, framework crossassembler
  1052. X    history        September 25, 1987
  1053. X*/
  1054. X
  1055. X#define NUMOPCODE 183
  1056. X#define NUMSYNBLK 277
  1057. X#define NUMDIFFOP 459
  1058. X
  1059. Xint gnumopcode = NUMOPCODE;
  1060. X
  1061. Xint ophashlnk[NUMOPCODE];
  1062. X
  1063. Xstruct opsym optab[NUMOPCODE+1]
  1064. X    = {
  1065. X    {"invalid", KOC_opcode, 2, 0 },
  1066. X    {"ABA", KOC_opcode, 1, 2 },
  1067. X    {"ABX", KOC_opcode, 1, 3 },
  1068. X    {"ABY", KOC_opcode, 1, 4 },
  1069. X    {"ADC", KOC_opcode, 3, 5 },
  1070. X    {"ADCA", KOC_opcode, 3, 8 },
  1071. X    {"ADCB", KOC_opcode, 3, 11 },
  1072. X    {"ADD", KOC_opcode, 3, 14 },
  1073. X    {"ADDA", KOC_opcode, 3, 17 },
  1074. X    {"ADDB", KOC_opcode, 3, 20 },
  1075. X    {"ADDD", KOC_opcode, 3, 23 },
  1076. X    {"AND", KOC_opcode, 3, 26 },
  1077. X    {"ANDA", KOC_opcode, 3, 29 },
  1078. X    {"ANDB", KOC_opcode, 3, 32 },
  1079. X    {"ASL", KOC_opcode, 3, 35 },
  1080. X    {"ASLA", KOC_opcode, 1, 38 },
  1081. X    {"ASLB", KOC_opcode, 1, 39 },
  1082. X    {"ASLD", KOC_opcode, 1, 40 },
  1083. X    {"ASR", KOC_opcode, 3, 41 },
  1084. X    {"ASRA", KOC_opcode, 1, 44 },
  1085. X    {"ASRB", KOC_opcode, 1, 45 },
  1086. X    {"BCC", KOC_opcode, 1, 46 },
  1087. X    {"BCLR", KOC_opcode, 2, 47 },
  1088. X    {"BCS", KOC_opcode, 1, 49 },
  1089. X    {"BEQ", KOC_opcode, 1, 50 },
  1090. X    {"BGE", KOC_opcode, 1, 51 },
  1091. X    {"BGT", KOC_opcode, 1, 52 },
  1092. X    {"BHI", KOC_opcode, 1, 53 },
  1093. X    {"BHS", KOC_opcode, 1, 54 },
  1094. X    {"BIT", KOC_opcode, 3, 55 },
  1095. X    {"BITA", KOC_opcode, 3, 58 },
  1096. X    {"BITB", KOC_opcode, 3, 61 },
  1097. X    {"BLE", KOC_opcode, 1, 64 },
  1098. X    {"BLO", KOC_opcode, 1, 65 },
  1099. X    {"BLS", KOC_opcode, 1, 66 },
  1100. X    {"BLT", KOC_opcode, 1, 67 },
  1101. X    {"BMI", KOC_opcode, 1, 68 },
  1102. X    {"BNE", KOC_opcode, 1, 69 },
  1103. X    {"BPL", KOC_opcode, 1, 70 },
  1104. X    {"BRA", KOC_opcode, 1, 71 },
  1105. X    {"BRCLR", KOC_opcode, 2, 72 },
  1106. X    {"BRN", KOC_opcode, 1, 74 },
  1107. X    {"BRSET", KOC_opcode, 2, 75 },
  1108. X    {"BSET", KOC_opcode, 2, 77 },
  1109. X    {"BSR", KOC_opcode, 1, 79 },
  1110. X    {"BVC", KOC_opcode, 1, 80 },
  1111. X    {"BVS", KOC_opcode, 1, 81 },
  1112. X    {"BYTE", KOC_BDEF, 0, 0 },
  1113. X    {"CBA", KOC_opcode, 1, 82 },
  1114. X    {"CHARDEF", KOC_CHDEF, 0, 0 },
  1115. X    {"CHARSET", KOC_CHSET, 0, 0 },
  1116. X    {"CHARUSE", KOC_CHUSE, 0, 0 },
  1117. X    {"CHD", KOC_CHDEF, 0, 0 },
  1118. X    {"CLC", KOC_opcode, 1, 83 },
  1119. X    {"CLI", KOC_opcode, 1, 84 },
  1120. X    {"CLR", KOC_opcode, 3, 85 },
  1121. X    {"CLRA", KOC_opcode, 1, 88 },
  1122. X    {"CLRB", KOC_opcode, 1, 89 },
  1123. X    {"CLV", KOC_opcode, 1, 90 },
  1124. X    {"CMP", KOC_opcode, 3, 91 },
  1125. X    {"CMPA", KOC_opcode, 3, 94 },
  1126. X    {"CMPB", KOC_opcode, 3, 97 },
  1127. X    {"COM", KOC_opcode, 3, 100 },
  1128. X    {"COMA", KOC_opcode, 1, 103 },
  1129. X    {"COMB", KOC_opcode, 1, 104 },
  1130. X    {"CPD", KOC_opcode, 3, 105 },
  1131. X    {"CPU", KOC_CPU, 0, 0 },
  1132. X    {"CPX", KOC_opcode, 3, 108 },
  1133. X    {"CPY", KOC_opcode, 3, 111 },
  1134. X    {"DAA", KOC_opcode, 1, 114 },
  1135. X    {"DB", KOC_BDEF, 0, 0 },
  1136. X    {"DEC", KOC_opcode, 3, 115 },
  1137. X    {"DECA", KOC_opcode, 1, 118 },
  1138. X    {"DECB", KOC_opcode, 1, 119 },
  1139. X    {"DES", KOC_opcode, 1, 120 },
  1140. X    {"DEX", KOC_opcode, 1, 121 },
  1141. X    {"DEY", KOC_opcode, 1, 122 },
  1142. X    {"DW", KOC_WDEF, 0, 0 },
  1143. X    {"ELSE", KOC_ELSE, 0, 0 },
  1144. X    {"END", KOC_END, 0, 0 },
  1145. X    {"ENDI", KOC_ENDI, 0, 0 },
  1146. X    {"EOR", KOC_opcode, 3, 123 },
  1147. X    {"EORA", KOC_opcode, 3, 126 },
  1148. X    {"EORB", KOC_opcode, 3, 129 },
  1149. X    {"EQU", KOC_EQU, 0, 0 },
  1150. X    {"FCB", KOC_BDEF, 0, 0 },
  1151. X    {"FCC", KOC_SDEF, 0, 0 },
  1152. X    {"FDB", KOC_WDEF, 0, 0 },
  1153. X    {"FDIV", KOC_opcode, 1, 132 },
  1154. X    {"IDIV", KOC_opcode, 1, 133 },
  1155. X    {"IF", KOC_IF, 0, 0 },
  1156. X    {"INC", KOC_opcode, 3, 134 },
  1157. X    {"INCA", KOC_opcode, 1, 137 },
  1158. X    {"INCB", KOC_opcode, 1, 138 },
  1159. X    {"INCL", KOC_INCLUDE, 0, 0 },
  1160. X    {"INCLUDE", KOC_INCLUDE, 0, 0 },
  1161. X    {"INS", KOC_opcode, 1, 139 },
  1162. X    {"INX", KOC_opcode, 1, 140 },
  1163. X    {"INY", KOC_opcode, 1, 141 },
  1164. X    {"JMP", KOC_opcode, 2, 142 },
  1165. X    {"JSR", KOC_opcode, 2, 144 },
  1166. X    {"LDA", KOC_opcode, 3, 146 },
  1167. X    {"LDAA", KOC_opcode, 3, 149 },
  1168. X    {"LDAB", KOC_opcode, 3, 152 },
  1169. X    {"LDD", KOC_opcode, 3, 155 },
  1170. X    {"LDS", KOC_opcode, 3, 158 },
  1171. X    {"LDX", KOC_opcode, 3, 161 },
  1172. X    {"LDY", KOC_opcode, 3, 164 },
  1173. X    {"LSL", KOC_opcode, 3, 167 },
  1174. X    {"LSLA", KOC_opcode, 1, 170 },
  1175. X    {"LSLB", KOC_opcode, 1, 171 },
  1176. X    {"LSLD", KOC_opcode, 1, 172 },
  1177. X    {"LSR", KOC_opcode, 3, 173 },
  1178. X    {"LSRA", KOC_opcode, 1, 176 },
  1179. X    {"LSRB", KOC_opcode, 1, 177 },
  1180. X    {"LSRD", KOC_opcode, 1, 178 },
  1181. X    {"MUL", KOC_opcode, 1, 179 },
  1182. X    {"NEG", KOC_opcode, 3, 180 },
  1183. X    {"NEGA", KOC_opcode, 1, 183 },
  1184. X    {"NEGB", KOC_opcode, 1, 184 },
  1185. X    {"NOP", KOC_opcode, 1, 185 },
  1186. X    {"ORA", KOC_opcode, 3, 186 },
  1187. X    {"ORAA", KOC_opcode, 3, 189 },
  1188. X    {"ORAB", KOC_opcode, 3, 192 },
  1189. X    {"ORG", KOC_ORG, 0, 0 },
  1190. X    {"PSH", KOC_opcode, 2, 195 },
  1191. X    {"PSHA", KOC_opcode, 1, 197 },
  1192. X    {"PSHB", KOC_opcode, 1, 198 },
  1193. X    {"PSHX", KOC_opcode, 1, 199 },
  1194. X    {"PSHY", KOC_opcode, 1, 200 },
  1195. X    {"PUL", KOC_opcode, 2, 201 },
  1196. X    {"PULA", KOC_opcode, 1, 203 },
  1197. X    {"PULB", KOC_opcode, 1, 204 },
  1198. X    {"PULX", KOC_opcode, 1, 205 },
  1199. X    {"PULY", KOC_opcode, 1, 206 },
  1200. X    {"RESERVE", KOC_RESM, 0, 0 },
  1201. X    {"RMB", KOC_RESM, 0, 0 },
  1202. X    {"ROL", KOC_opcode, 3, 207 },
  1203. X    {"ROLA", KOC_opcode, 1, 210 },
  1204. X    {"ROLB", KOC_opcode, 1, 211 },
  1205. X    {"ROR", KOC_opcode, 3, 212 },
  1206. X    {"RORA", KOC_opcode, 1, 215 },
  1207. X    {"RORB", KOC_opcode, 1, 216 },
  1208. X    {"RTI", KOC_opcode, 1, 217 },
  1209. X    {"RTS", KOC_opcode, 1, 218 },
  1210. X    {"SBA", KOC_opcode, 1, 219 },
  1211. X    {"SBC", KOC_opcode, 3, 220 },
  1212. X    {"SBCA", KOC_opcode, 3, 223 },
  1213. X    {"SBCB", KOC_opcode, 3, 226 },
  1214. X    {"SEC", KOC_opcode, 1, 229 },
  1215. X    {"SEI", KOC_opcode, 1, 230 },
  1216. X    {"SET", KOC_SET, 0, 0 },
  1217. X    {"SEV", KOC_opcode, 1, 231 },
  1218. X    {"STA", KOC_opcode, 2, 232 },
  1219. X    {"STAA", KOC_opcode, 2, 234 },
  1220. X    {"STAB", KOC_opcode, 2, 236 },
  1221. X    {"STD", KOC_opcode, 2, 238 },
  1222. X    {"STOP", KOC_opcode, 1, 240 },
  1223. X    {"STRING", KOC_SDEF, 0, 0 },
  1224. X    {"STS", KOC_opcode, 2, 241 },
  1225. X    {"STX", KOC_opcode, 2, 243 },
  1226. X    {"STY", KOC_opcode, 2, 245 },
  1227. X    {"SUB", KOC_opcode, 3, 247 },
  1228. X    {"SUBA", KOC_opcode, 3, 250 },
  1229. X    {"SUBB", KOC_opcode, 3, 253 },
  1230. X    {"SUBD", KOC_opcode, 3, 256 },
  1231. X    {"SWI", KOC_opcode, 1, 259 },
  1232. X    {"TAB", KOC_opcode, 1, 260 },
  1233. X    {"TAP", KOC_opcode, 1, 261 },
  1234. X    {"TBA", KOC_opcode, 1, 262 },
  1235. X    {"TEST", KOC_opcode, 1, 263 },
  1236. X    {"TPA", KOC_opcode, 1, 264 },
  1237. X    {"TST", KOC_opcode, 3, 265 },
  1238. X    {"TSTA", KOC_opcode, 1, 268 },
  1239. X    {"TSTB", KOC_opcode, 1, 269 },
  1240. X    {"TSX", KOC_opcode, 1, 270 },
  1241. X    {"TSY", KOC_opcode, 1, 271 },
  1242. X    {"TXS", KOC_opcode, 1, 272 },
  1243. X    {"TYS", KOC_opcode, 1, 273 },
  1244. X    {"WAI", KOC_opcode, 1, 274 },
  1245. X    {"WORD", KOC_WDEF, 0, 0 },
  1246. X    {"XGDX", KOC_opcode, 1, 275 },
  1247. X    {"XGDY", KOC_opcode, 1, 276 },
  1248. X    { "", 0, 0, 0 }};
  1249. X
  1250. Xstruct opsynt ostab[NUMSYNBLK+1]
  1251. X    = {
  1252. X/* invalid 0 */ { 0, 1, 0 },
  1253. X/* invalid 1 */ { 0xffff, 1, 1 },
  1254. X/* ABA 2 */ { ST_INH, 1, 2 },
  1255. X/* ABX 3 */ { ST_INH, 1, 3 },
  1256. X/* ABY 4 */ { ST_INH, 1, 4 },
  1257. X/* ADC 5 */ { ST_AEXP, 4, 5 },
  1258. X/* ADC 6 */ { ST_AIMM, 2, 9 },
  1259. X/* ADC 7 */ { ST_AIND, 4, 11 },
  1260. X/* ADCA 8 */ { ST_EXP, 2, 15 },
  1261. X/* ADCA 9 */ { ST_IMM, 1, 17 },
  1262. X/* ADCA 10 */ { ST_IND, 2, 18 },
  1263. X/* ADCB 11 */ { ST_EXP, 2, 20 },
  1264. X/* ADCB 12 */ { ST_IMM, 1, 22 },
  1265. X/* ADCB 13 */ { ST_IND, 2, 23 },
  1266. X/* ADD 14 */ { ST_AEXP, 4, 25 },
  1267. X/* ADD 15 */ { ST_AIMM, 2, 29 },
  1268. X/* ADD 16 */ { ST_AIND, 4, 31 },
  1269. X/* ADDA 17 */ { ST_EXP, 2, 35 },
  1270. X/* ADDA 18 */ { ST_IMM, 1, 37 },
  1271. X/* ADDA 19 */ { ST_IND, 2, 38 },
  1272. X/* ADDB 20 */ { ST_EXP, 2, 40 },
  1273. X/* ADDB 21 */ { ST_IMM, 1, 42 },
  1274. X/* ADDB 22 */ { ST_IND, 2, 43 },
  1275. X/* ADDD 23 */ { ST_EXP, 2, 45 },
  1276. X/* ADDD 24 */ { ST_IMM, 1, 47 },
  1277. X/* ADDD 25 */ { ST_IND, 2, 48 },
  1278. X/* AND 26 */ { ST_AEXP, 4, 50 },
  1279. X/* AND 27 */ { ST_AIMM, 2, 54 },
  1280. X/* AND 28 */ { ST_AIND, 4, 56 },
  1281. X/* ANDA 29 */ { ST_EXP, 2, 60 },
  1282. X/* ANDA 30 */ { ST_IMM, 1, 62 },
  1283. X/* ANDA 31 */ { ST_IND, 2, 63 },
  1284. X/* ANDB 32 */ { ST_EXP, 2, 65 },
  1285. X/* ANDB 33 */ { ST_IMM, 1, 67 },
  1286. X/* ANDB 34 */ { ST_IND, 2, 68 },
  1287. X/* ASL 35 */ { ST_ACC, 2, 70 },
  1288. X/* ASL 36 */ { ST_EXP, 1, 72 },
  1289. X/* ASL 37 */ { ST_IND, 2, 73 },
  1290. X/* ASLA 38 */ { ST_INH, 1, 75 },
  1291. X/* ASLB 39 */ { ST_INH, 1, 76 },
  1292. X/* ASLD 40 */ { ST_INH, 1, 77 },
  1293. X/* ASR 41 */ { ST_ACC, 2, 78 },
  1294. X/* ASR 42 */ { ST_EXP, 1, 80 },
  1295. X/* ASR 43 */ { ST_IND, 2, 81 },
  1296. X/* ASRA 44 */ { ST_INH, 1, 83 },
  1297. X/* ASRB 45 */ { ST_INH, 1, 84 },
  1298. X/* BCC 46 */ { ST_EXP, 1, 85 },
  1299. X/* BCLR 47 */ { ST_BSET, 1, 86 },
  1300. X/* BCLR 48 */ { ST_IBSET, 2, 87 },
  1301. X/* BCS 49 */ { ST_EXP, 1, 89 },
  1302. X/* BEQ 50 */ { ST_EXP, 1, 90 },
  1303. X/* BGE 51 */ { ST_EXP, 1, 91 },
  1304. X/* BGT 52 */ { ST_EXP, 1, 92 },
  1305. X/* BHI 53 */ { ST_EXP, 1, 93 },
  1306. X/* BHS 54 */ { ST_EXP, 1, 94 },
  1307. X/* BIT 55 */ { ST_AEXP, 4, 95 },
  1308. X/* BIT 56 */ { ST_AIMM, 2, 99 },
  1309. X/* BIT 57 */ { ST_AIND, 4, 101 },
  1310. X/* BITA 58 */ { ST_EXP, 2, 105 },
  1311. X/* BITA 59 */ { ST_IMM, 1, 107 },
  1312. X/* BITA 60 */ { ST_IND, 2, 108 },
  1313. X/* BITB 61 */ { ST_EXP, 2, 110 },
  1314. X/* BITB 62 */ { ST_IMM, 1, 112 },
  1315. X/* BITB 63 */ { ST_IND, 2, 113 },
  1316. X/* BLE 64 */ { ST_EXP, 1, 115 },
  1317. X/* BLO 65 */ { ST_EXP, 1, 116 },
  1318. X/* BLS 66 */ { ST_EXP, 1, 117 },
  1319. X/* BLT 67 */ { ST_EXP, 1, 118 },
  1320. X/* BMI 68 */ { ST_EXP, 1, 119 },
  1321. X/* BNE 69 */ { ST_EXP, 1, 120 },
  1322. X/* BPL 70 */ { ST_EXP, 1, 121 },
  1323. X/* BRA 71 */ { ST_EXP, 1, 122 },
  1324. X/* BRCLR 72 */ { ST_BRSET, 1, 123 },
  1325. X/* BRCLR 73 */ { ST_IBRSET, 2, 124 },
  1326. X/* BRN 74 */ { ST_EXP, 1, 126 },
  1327. X/* BRSET 75 */ { ST_BRSET, 1, 127 },
  1328. X/* BRSET 76 */ { ST_IBRSET, 2, 128 },
  1329. X/* BSET 77 */ { ST_BSET, 1, 130 },
  1330. X/* BSET 78 */ { ST_IBSET, 2, 131 },
  1331. X/* BSR 79 */ { ST_EXP, 1, 133 },
  1332. X/* BVC 80 */ { ST_EXP, 1, 134 },
  1333. X/* BVS 81 */ { ST_EXP, 1, 135 },
  1334. X/* CBA 82 */ { ST_INH, 1, 136 },
  1335. X/* CLC 83 */ { ST_INH, 1, 137 },
  1336. X/* CLI 84 */ { ST_INH, 1, 138 },
  1337. X/* CLR 85 */ { ST_ACC, 2, 139 },
  1338. X/* CLR 86 */ { ST_EXP, 1, 141 },
  1339. X/* CLR 87 */ { ST_IND, 2, 142 },
  1340. X/* CLRA 88 */ { ST_INH, 1, 144 },
  1341. X/* CLRB 89 */ { ST_INH, 1, 145 },
  1342. X/* CLV 90 */ { ST_INH, 1, 146 },
  1343. X/* CMP 91 */ { ST_AEXP, 4, 147 },
  1344. X/* CMP 92 */ { ST_AIMM, 2, 151 },
  1345. X/* CMP 93 */ { ST_AIND, 4, 153 },
  1346. X/* CMPA 94 */ { ST_EXP, 2, 157 },
  1347. X/* CMPA 95 */ { ST_IMM, 1, 159 },
  1348. X/* CMPA 96 */ { ST_IND, 2, 160 },
  1349. X/* CMPB 97 */ { ST_EXP, 2, 162 },
  1350. X/* CMPB 98 */ { ST_IMM, 1, 164 },
  1351. X/* CMPB 99 */ { ST_IND, 2, 165 },
  1352. X/* COM 100 */ { ST_ACC, 2, 167 },
  1353. X/* COM 101 */ { ST_EXP, 1, 169 },
  1354. X/* COM 102 */ { ST_IND, 2, 170 },
  1355. X/* COMA 103 */ { ST_INH, 1, 172 },
  1356. X/* COMB 104 */ { ST_INH, 1, 173 },
  1357. X/* CPD 105 */ { ST_EXP, 2, 174 },
  1358. X/* CPD 106 */ { ST_IMM, 1, 176 },
  1359. X/* CPD 107 */ { ST_IND, 2, 177 },
  1360. X/* CPX 108 */ { ST_EXP, 2, 179 },
  1361. X/* CPX 109 */ { ST_IMM, 1, 181 },
  1362. X/* CPX 110 */ { ST_IND, 2, 182 },
  1363. X/* CPY 111 */ { ST_EXP, 2, 184 },
  1364. X/* CPY 112 */ { ST_IMM, 1, 186 },
  1365. X/* CPY 113 */ { ST_IND, 2, 187 },
  1366. X/* DAA 114 */ { ST_INH, 1, 189 },
  1367. X/* DEC 115 */ { ST_ACC, 2, 190 },
  1368. X/* DEC 116 */ { ST_EXP, 1, 192 },
  1369. X/* DEC 117 */ { ST_IND, 2, 193 },
  1370. X/* DECA 118 */ { ST_INH, 1, 195 },
  1371. X/* DECB 119 */ { ST_INH, 1, 196 },
  1372. X/* DES 120 */ { ST_INH, 1, 197 },
  1373. X/* DEX 121 */ { ST_INH, 1, 198 },
  1374. X/* DEY 122 */ { ST_INH, 1, 199 },
  1375. X/* EOR 123 */ { ST_AEXP, 4, 200 },
  1376. X/* EOR 124 */ { ST_AIMM, 2, 204 },
  1377. X/* EOR 125 */ { ST_AIND, 4, 206 },
  1378. X/* EORA 126 */ { ST_EXP, 2, 210 },
  1379. X/* EORA 127 */ { ST_IMM, 1, 212 },
  1380. X/* EORA 128 */ { ST_IND, 2, 213 },
  1381. X/* EORB 129 */ { ST_EXP, 2, 215 },
  1382. X/* EORB 130 */ { ST_IMM, 1, 217 },
  1383. X/* EORB 131 */ { ST_IND, 2, 218 },
  1384. X/* FDIV 132 */ { ST_INH, 1, 220 },
  1385. X/* IDIV 133 */ { ST_INH, 1, 221 },
  1386. X/* INC 134 */ { ST_ACC, 2, 222 },
  1387. X/* INC 135 */ { ST_EXP, 1, 224 },
  1388. X/* INC 136 */ { ST_IND, 2, 225 },
  1389. X/* INCA 137 */ { ST_INH, 1, 227 },
  1390. X/* INCB 138 */ { ST_INH, 1, 228 },
  1391. X/* INS 139 */ { ST_INH, 1, 229 },
  1392. X/* INX 140 */ { ST_INH, 1, 230 },
  1393. X/* INY 141 */ { ST_INH, 1, 231 },
  1394. X/* JMP 142 */ { ST_EXP, 1, 232 },
  1395. X/* JMP 143 */ { ST_IND, 2, 233 },
  1396. X/* JSR 144 */ { ST_EXP, 3, 235 },
  1397. X/* JSR 145 */ { ST_IND, 2, 238 },
  1398. X/* LDA 146 */ { ST_AEXP, 4, 240 },
  1399. X/* LDA 147 */ { ST_AIMM, 2, 244 },
  1400. X/* LDA 148 */ { ST_AIND, 4, 246 },
  1401. X/* LDAA 149 */ { ST_EXP, 2, 250 },
  1402. X/* LDAA 150 */ { ST_IMM, 1, 252 },
  1403. X/* LDAA 151 */ { ST_IND, 2, 253 },
  1404. X/* LDAB 152 */ { ST_EXP, 2, 255 },
  1405. X/* LDAB 153 */ { ST_IMM, 1, 257 },
  1406. X/* LDAB 154 */ { ST_IND, 2, 258 },
  1407. X/* LDD 155 */ { ST_EXP, 2, 260 },
  1408. X/* LDD 156 */ { ST_IMM, 1, 262 },
  1409. X/* LDD 157 */ { ST_IND, 2, 263 },
  1410. X/* LDS 158 */ { ST_EXP, 2, 265 },
  1411. X/* LDS 159 */ { ST_IMM, 1, 267 },
  1412. X/* LDS 160 */ { ST_IND, 2, 268 },
  1413. X/* LDX 161 */ { ST_EXP, 2, 270 },
  1414. X/* LDX 162 */ { ST_IMM, 1, 272 },
  1415. X/* LDX 163 */ { ST_IND, 2, 273 },
  1416. X/* LDY 164 */ { ST_EXP, 2, 275 },
  1417. X/* LDY 165 */ { ST_IMM, 1, 277 },
  1418. X/* LDY 166 */ { ST_IND, 2, 278 },
  1419. X/* LSL 167 */ { ST_ACC, 2, 280 },
  1420. X/* LSL 168 */ { ST_EXP, 1, 282 },
  1421. X/* LSL 169 */ { ST_IND, 2, 283 },
  1422. X/* LSLA 170 */ { ST_INH, 1, 285 },
  1423. X/* LSLB 171 */ { ST_INH, 1, 286 },
  1424. X/* LSLD 172 */ { ST_INH, 1, 287 },
  1425. X/* LSR 173 */ { ST_ACC, 2, 288 },
  1426. X/* LSR 174 */ { ST_EXP, 1, 290 },
  1427. X/* LSR 175 */ { ST_IND, 2, 291 },
  1428. X/* LSRA 176 */ { ST_INH, 1, 293 },
  1429. X/* LSRB 177 */ { ST_INH, 1, 294 },
  1430. X/* LSRD 178 */ { ST_INH, 1, 295 },
  1431. X/* MUL 179 */ { ST_INH, 1, 296 },
  1432. X/* NEG 180 */ { ST_ACC, 2, 297 },
  1433. X/* NEG 181 */ { ST_EXP, 1, 299 },
  1434. X/* NEG 182 */ { ST_IND, 2, 300 },
  1435. X/* NEGA 183 */ { ST_INH, 1, 302 },
  1436. X/* NEGB 184 */ { ST_INH, 1, 303 },
  1437. X/* NOP 185 */ { ST_INH, 1, 304 },
  1438. X/* ORA 186 */ { ST_AEXP, 4, 305 },
  1439. X/* ORA 187 */ { ST_AIMM, 2, 309 },
  1440. X/* ORA 188 */ { ST_AIND, 4, 311 },
  1441. X/* ORAA 189 */ { ST_EXP, 2, 315 },
  1442. X/* ORAA 190 */ { ST_IMM, 1, 317 },
  1443. X/* ORAA 191 */ { ST_IND, 2, 318 },
  1444. X/* ORAB 192 */ { ST_EXP, 2, 320 },
  1445. X/* ORAB 193 */ { ST_IMM, 1, 322 },
  1446. X/* ORAB 194 */ { ST_IND, 2, 323 },
  1447. X/* PSH 195 */ { ST_ACC, 2, 325 },
  1448. X/* PSH 196 */ { ST_INDREG, 2, 327 },
  1449. X/* PSHA 197 */ { ST_INH, 1, 329 },
  1450. X/* PSHB 198 */ { ST_INH, 1, 330 },
  1451. X/* PSHX 199 */ { ST_INH, 1, 331 },
  1452. X/* PSHY 200 */ { ST_INH, 1, 332 },
  1453. X/* PUL 201 */ { ST_ACC, 2, 333 },
  1454. X/* PUL 202 */ { ST_INDREG, 2, 335 },
  1455. X/* PULA 203 */ { ST_INH, 1, 337 },
  1456. X/* PULB 204 */ { ST_INH, 1, 338 },
  1457. X/* PULX 205 */ { ST_INH, 1, 339 },
  1458. X/* PULY 206 */ { ST_INH, 1, 340 },
  1459. X/* ROL 207 */ { ST_ACC, 2, 341 },
  1460. X/* ROL 208 */ { ST_EXP, 1, 343 },
  1461. X/* ROL 209 */ { ST_IND, 2, 344 },
  1462. X/* ROLA 210 */ { ST_INH, 1, 346 },
  1463. X/* ROLB 211 */ { ST_INH, 1, 347 },
  1464. X/* ROR 212 */ { ST_ACC, 2, 348 },
  1465. X/* ROR 213 */ { ST_EXP, 1, 350 },
  1466. X/* ROR 214 */ { ST_IND, 2, 351 },
  1467. X/* RORA 215 */ { ST_INH, 1, 353 },
  1468. X/* RORB 216 */ { ST_INH, 1, 354 },
  1469. X/* RTI 217 */ { ST_INH, 1, 355 },
  1470. X/* RTS 218 */ { ST_INH, 1, 356 },
  1471. X/* SBA 219 */ { ST_INH, 1, 357 },
  1472. X/* SBC 220 */ { ST_AEXP, 4, 358 },
  1473. X/* SBC 221 */ { ST_AIMM, 2, 362 },
  1474. X/* SBC 222 */ { ST_AIND, 4, 364 },
  1475. X/* SBCA 223 */ { ST_EXP, 2, 368 },
  1476. X/* SBCA 224 */ { ST_IMM, 1, 370 },
  1477. X/* SBCA 225 */ { ST_IND, 2, 371 },
  1478. X/* SBCB 226 */ { ST_EXP, 2, 373 },
  1479. X/* SBCB 227 */ { ST_IMM, 1, 375 },
  1480. X/* SBCB 228 */ { ST_IND, 2, 376 },
  1481. X/* SEC 229 */ { ST_INH, 1, 378 },
  1482. X/* SEI 230 */ { ST_INH, 1, 379 },
  1483. X/* SEV 231 */ { ST_INH, 1, 380 },
  1484. X/* STA 232 */ { ST_AEXP, 4, 381 },
  1485. X/* STA 233 */ { ST_AIND, 4, 385 },
  1486. X/* STAA 234 */ { ST_EXP, 2, 389 },
  1487. X/* STAA 235 */ { ST_IND, 2, 391 },
  1488. X/* STAB 236 */ { ST_EXP, 2, 393 },
  1489. X/* STAB 237 */ { ST_IND, 2, 395 },
  1490. X/* STD 238 */ { ST_EXP, 2, 397 },
  1491. X/* STD 239 */ { ST_IND, 2, 399 },
  1492. X/* STOP 240 */ { ST_INH, 1, 401 },
  1493. X/* STS 241 */ { ST_EXP, 2, 402 },
  1494. X/* STS 242 */ { ST_IND, 2, 404 },
  1495. X/* STX 243 */ { ST_EXP, 2, 406 },
  1496. X/* STX 244 */ { ST_IND, 2, 408 },
  1497. X/* STY 245 */ { ST_EXP, 2, 410 },
  1498. X/* STY 246 */ { ST_IND, 2, 412 },
  1499. X/* SUB 247 */ { ST_AEXP, 4, 414 },
  1500. X/* SUB 248 */ { ST_AIMM, 2, 418 },
  1501. X/* SUB 249 */ { ST_AIND, 4, 420 },
  1502. X/* SUBA 250 */ { ST_EXP, 2, 424 },
  1503. X/* SUBA 251 */ { ST_IMM, 1, 426 },
  1504. X/* SUBA 252 */ { ST_IND, 2, 427 },
  1505. X/* SUBB 253 */ { ST_EXP, 2, 429 },
  1506. X/* SUBB 254 */ { ST_IMM, 1, 431 },
  1507. X/* SUBB 255 */ { ST_IND, 2, 432 },
  1508. X/* SUBD 256 */ { ST_EXP, 2, 434 },
  1509. X/* SUBD 257 */ { ST_IMM, 1, 436 },
  1510. X/* SUBD 258 */ { ST_IND, 2, 437 },
  1511. X/* SWI 259 */ { ST_INH, 1, 439 },
  1512. X/* TAB 260 */ { ST_INH, 1, 440 },
  1513. X/* TAP 261 */ { ST_INH, 1, 441 },
  1514. X/* TBA 262 */ { ST_INH, 1, 442 },
  1515. X/* TEST 263 */ { ST_INH, 1, 443 },
  1516. X/* TPA 264 */ { ST_INH, 1, 444 },
  1517. X/* TST 265 */ { ST_ACC, 2, 445 },
  1518. X/* TST 266 */ { ST_EXP, 1, 447 },
  1519. X/* TST 267 */ { ST_IND, 2, 448 },
  1520. X/* TSTA 268 */ { ST_INH, 1, 450 },
  1521. X/* TSTB 269 */ { ST_INH, 1, 451 },
  1522. X/* TSX 270 */ { ST_INH, 1, 452 },
  1523. X/* TSY 271 */ { ST_INH, 1, 453 },
  1524. X/* TXS 272 */ { ST_INH, 1, 454 },
  1525. X/* TYS 273 */ { ST_INH, 1, 455 },
  1526. X/* WAI 274 */ { ST_INH, 1, 456 },
  1527. X/* XGDX 275 */ { ST_INH, 1, 457 },
  1528. X/* XGDY 276 */ { ST_INH, 1, 458 },
  1529. X    { 0, 0, 0 } };
  1530. X
  1531. Xstruct igel igtab[NUMDIFFOP+1]
  1532. X    = {
  1533. X/* invalid 0 */   { 0 , 0, 
  1534. X        "[Xnullentry" },
  1535. X/* invalid 1 */   { 0 , 0, 
  1536. X        "[Xinvalid opcode" },
  1537. X/* ABA 2 */   { 0 , 0, 
  1538. X        "1b;" },
  1539. X/* ABX 3 */   { TS6801PLUS , TS6801PLUS, 
  1540. X        "3a;" },
  1541. X/* ABY 4 */   { TS6811 , TS6811, 
  1542. X        "18;3a;" },
  1543. X/* ADC 5 */   { ACCREG+ADDR , REGA+DIRECT, 
  1544. X        "99;[1=];" },
  1545. X/* ADC 6 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1546. X        "b9;[1=]x" },
  1547. X/* ADC 7 */   { ACCREG+ADDR , REGB+DIRECT, 
  1548. X        "d9;[1=];" },
  1549. X/* ADC 8 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1550. X        "f9;[1=]x" },
  1551. X/* ADC 9 */   { ACCREG , REGA, 
  1552. X        "89;[1=];" },
  1553. X/* ADC 10 */   { ACCREG , REGB, 
  1554. X        "c9;[1=];" },
  1555. X/* ADC 11 */   { ACCREG+INDREG , REGA+REGX, 
  1556. X        "a9;[1=];" },
  1557. X/* ADC 12 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  1558. X        "18;a9;[1=];" },
  1559. X/* ADC 13 */   { ACCREG+INDREG , REGB+REGX, 
  1560. X        "e9;[1=];" },
  1561. X/* ADC 14 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  1562. X        "18;e9;[1=];" },
  1563. X/* ADCA 15 */   { ADDR , DIRECT, 
  1564. X        "99;[1=];" },
  1565. X/* ADCA 16 */   { ADDR , EXTENDED, 
  1566. X        "b9;[1=]x" },
  1567. X/* ADCA 17 */   { 0 , 0, 
  1568. X        "89;[1=];" },
  1569. X/* ADCA 18 */   { INDREG , REGX, 
  1570. X        "a9;[1=];" },
  1571. X/* ADCA 19 */   { INDREG+TS6811 , REGY+TS6811, 
  1572. X        "18;a9;[1=];" },
  1573. X/* ADCB 20 */   { ADDR , DIRECT, 
  1574. X        "d9;[1=];" },
  1575. X/* ADCB 21 */   { ADDR , EXTENDED, 
  1576. X        "f9;[1=]x" },
  1577. X/* ADCB 22 */   { 0 , 0, 
  1578. X        "c9;[1=];" },
  1579. X/* ADCB 23 */   { INDREG , REGX, 
  1580. X        "e9;[1=];" },
  1581. X/* ADCB 24 */   { INDREG+TS6811 , REGY+TS6811, 
  1582. X        "18;e9;[1=];" },
  1583. X/* ADD 25 */   { ACCREG+ADDR , REGA+DIRECT, 
  1584. X        "9b;[1=];" },
  1585. X/* ADD 26 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1586. X        "bb;[1=]x" },
  1587. X/* ADD 27 */   { ACCREG+ADDR , REGB+DIRECT, 
  1588. X        "db;[1=];" },
  1589. X/* ADD 28 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1590. X        "fb;[1=]x" },
  1591. X/* ADD 29 */   { ACCREG , REGA, 
  1592. X        "8b;[1=];" },
  1593. X/* ADD 30 */   { ACCREG , REGB, 
  1594. X        "cb;[1=];" },
  1595. X/* ADD 31 */   { ACCREG+INDREG , REGA+REGX, 
  1596. X        "ab;[1=];" },
  1597. X/* ADD 32 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  1598. X        "18;ab;[1=];" },
  1599. X/* ADD 33 */   { ACCREG+INDREG , REGB+REGX, 
  1600. X        "eb;[1=];" },
  1601. X/* ADD 34 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  1602. X        "18;eb;[1=];" },
  1603. X/* ADDA 35 */   { ADDR , DIRECT, 
  1604. X        "9b;[1=];" },
  1605. X/* ADDA 36 */   { ADDR , EXTENDED, 
  1606. X        "bb;[1=]x" },
  1607. X/* ADDA 37 */   { 0 , 0, 
  1608. X        "8b;[1=];" },
  1609. X/* ADDA 38 */   { INDREG , REGX, 
  1610. X        "ab;[1=];" },
  1611. X/* ADDA 39 */   { INDREG+TS6811 , REGY+TS6811, 
  1612. X        "18;ab;[1=];" },
  1613. X/* ADDB 40 */   { ADDR , DIRECT, 
  1614. X        "db;[1=];" },
  1615. X/* ADDB 41 */   { ADDR , EXTENDED, 
  1616. X        "fb;[1=]x" },
  1617. X/* ADDB 42 */   { 0 , 0, 
  1618. X        "cb;[1=];" },
  1619. X/* ADDB 43 */   { INDREG , REGX, 
  1620. X        "eb;[1=];" },
  1621. X/* ADDB 44 */   { INDREG+TS6811 , REGY+TS6811, 
  1622. X        "18;eb;[1=];" },
  1623. X/* ADDD 45 */   { ADDR+TS6801PLUS , DIRECT+TS6801PLUS, 
  1624. X        "d3;[1=];" },
  1625. X/* ADDD 46 */   { ADDR+TS6801PLUS , EXTENDED+TS6801PLUS, 
  1626. X        "f3;[1=]x" },
  1627. X/* ADDD 47 */   { TS6801PLUS , 0+TS6801PLUS, 
  1628. X        "c3;[1=]x" },
  1629. X/* ADDD 48 */   { INDREG+TS6801PLUS , REGX+TS6801PLUS, 
  1630. X        "e3;[1=];" },
  1631. X/* ADDD 49 */   { INDREG+TS6811 , REGY+TS6811, 
  1632. X        "18;e3;[1=];" },
  1633. X/* AND 50 */   { ACCREG+ADDR , REGA+DIRECT, 
  1634. X        "94;[1=];" },
  1635. X/* AND 51 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1636. X        "b4;[1=]x" },
  1637. X/* AND 52 */   { ACCREG+ADDR , REGB+DIRECT, 
  1638. X        "d4;[1=];" },
  1639. X/* AND 53 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1640. X        "f4;[1=]x" },
  1641. X/* AND 54 */   { ACCREG , REGA, 
  1642. X        "84;[1=];" },
  1643. X/* AND 55 */   { ACCREG , REGB, 
  1644. X        "c4;[1=];" },
  1645. X/* AND 56 */   { ACCREG+INDREG , REGA+REGX, 
  1646. X        "a4;[1=];" },
  1647. X/* AND 57 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  1648. X        "18;a4;[1=];" },
  1649. X/* AND 58 */   { ACCREG+INDREG , REGB+REGX, 
  1650. X        "e4;[1=];" },
  1651. X/* AND 59 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  1652. X        "18;e4;[1=];" },
  1653. X/* ANDA 60 */   { ADDR , DIRECT, 
  1654. X        "94;[1=];" },
  1655. X/* ANDA 61 */   { ADDR , EXTENDED, 
  1656. X        "b4;[1=]x" },
  1657. X/* ANDA 62 */   { 0 , 0, 
  1658. X        "84;[1=];" },
  1659. X/* ANDA 63 */   { INDREG , REGX, 
  1660. X        "a4;[1=];" },
  1661. X/* ANDA 64 */   { INDREG+TS6811 , REGY+TS6811, 
  1662. X        "18;a4;[1=];" },
  1663. X/* ANDB 65 */   { ADDR , DIRECT, 
  1664. X        "d4;[1=];" },
  1665. X/* ANDB 66 */   { ADDR , EXTENDED, 
  1666. X        "f4;[1=]x" },
  1667. X/* ANDB 67 */   { 0 , 0, 
  1668. X        "c4;[1=];" },
  1669. X/* ANDB 68 */   { INDREG , REGX, 
  1670. X        "e4;[1=];" },
  1671. X/* ANDB 69 */   { INDREG+TS6811 , REGY+TS6811, 
  1672. X        "18;e4;[1=];" },
  1673. X/* ASL 70 */   { ACCREG , REGA, 
  1674. X        "48;" },
  1675. X/* ASL 71 */   { ACCREG , REGB, 
  1676. X        "58;" },
  1677. X/* ASL 72 */   { 0 , 0, 
  1678. X        "78;[1=]x" },
  1679. X/* ASL 73 */   { INDREG , REGX, 
  1680. X        "68;[1=];" },
  1681. X/* ASL 74 */   { INDREG+TS6811 , REGY+TS6811, 
  1682. X        "18;68;[1=];" },
  1683. X/* ASLA 75 */   { 0 , 0, 
  1684. X        "48;" },
  1685. X/* ASLB 76 */   { 0 , 0, 
  1686. X        "58;" },
  1687. X/* ASLD 77 */   { TS6801PLUS , TS6801PLUS, 
  1688. X        "05;" },
  1689. X/* ASR 78 */   { ACCREG , REGA, 
  1690. X        "47;" },
  1691. X/* ASR 79 */   { ACCREG , REGB, 
  1692. X        "57;" },
  1693. X/* ASR 80 */   { 0 , 0, 
  1694. X        "77;[1=]x" },
  1695. X/* ASR 81 */   { INDREG , REGX, 
  1696. X        "67;[1=];" },
  1697. X/* ASR 82 */   { INDREG+TS6811 , REGY+TS6811, 
  1698. X        "18;67;[1=];" },
  1699. X/* ASRA 83 */   { 0 , 0, 
  1700. X        "47;" },
  1701. X/* ASRB 84 */   { 0 , 0, 
  1702. X        "57;" },
  1703. X/* BCC 85 */   { 0 , 0, 
  1704. X        "24;[1=].P.2+-r" },
  1705. X/* BCLR 86 */   { TS6811 , TS6811, 
  1706. X        "15;[1=];[2=];" },
  1707. X/* BCLR 87 */   { INDREG+TS6811 , REGX+TS6811, 
  1708. X        "1d;[1=];[2=];" },
  1709. X/* BCLR 88 */   { INDREG+TS6811 , REGY+TS6811, 
  1710. X        "18;1d;[1=];[2=];" },
  1711. X/* BCS 89 */   { 0 , 0, 
  1712. X        "25;[1=].P.2+-r" },
  1713. X/* BEQ 90 */   { 0 , 0, 
  1714. X        "27;[1=].P.2+-r" },
  1715. X/* BGE 91 */   { 0 , 0, 
  1716. X        "2c;[1=].P.2+-r" },
  1717. X/* BGT 92 */   { 0 , 0, 
  1718. X        "2e;[1=].P.2+-r" },
  1719. X/* BHI 93 */   { 0 , 0, 
  1720. X        "22;[1=].P.2+-r" },
  1721. X/* BHS 94 */   { 0 , 0, 
  1722. X        "24;[1=].P.2+-r" },
  1723. X/* BIT 95 */   { ACCREG+ADDR , REGA+DIRECT, 
  1724. X        "95;[1=];" },
  1725. X/* BIT 96 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1726. X        "b5;[1=]x" },
  1727. X/* BIT 97 */   { ACCREG+ADDR , REGB+DIRECT, 
  1728. X        "d5;[1=];" },
  1729. X/* BIT 98 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1730. X        "f5;[1=]x" },
  1731. X/* BIT 99 */   { ACCREG , REGA, 
  1732. X        "85;[1=];" },
  1733. X/* BIT 100 */   { ACCREG , REGB, 
  1734. X        "c5;[1=];" },
  1735. X/* BIT 101 */   { ACCREG+INDREG , REGA+REGX, 
  1736. X        "a5;[1=];" },
  1737. X/* BIT 102 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  1738. X        "18;a5;[1=];" },
  1739. X/* BIT 103 */   { ACCREG+INDREG , REGB+REGX, 
  1740. X        "e5;[1=];" },
  1741. X/* BIT 104 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  1742. X        "18;e5;[1=];" },
  1743. X/* BITA 105 */   { ADDR , DIRECT, 
  1744. X        "95;[1=];" },
  1745. X/* BITA 106 */   { ADDR , EXTENDED, 
  1746. X        "b5;[1=]x" },
  1747. X/* BITA 107 */   { 0 , 0, 
  1748. X        "85;[1=];" },
  1749. X/* BITA 108 */   { INDREG , REGX, 
  1750. X        "a5;[1=];" },
  1751. X/* BITA 109 */   { INDREG+TS6811 , REGY+TS6811, 
  1752. X        "18;a5;[1=];" },
  1753. X/* BITB 110 */   { ADDR , DIRECT, 
  1754. X        "d5;[1=];" },
  1755. X/* BITB 111 */   { ADDR , EXTENDED, 
  1756. X        "f5;[1=]x" },
  1757. X/* BITB 112 */   { 0 , 0, 
  1758. X        "c5;[1=];" },
  1759. X/* BITB 113 */   { INDREG , REGX, 
  1760. X        "e5;[1=];" },
  1761. X/* BITB 114 */   { INDREG+TS6811 , REGY+TS6811, 
  1762. X        "18;e5;[1=];" },
  1763. X/* BLE 115 */   { 0 , 0, 
  1764. X        "2f;[1=].P.2+-r" },
  1765. X/* BLO 116 */   { 0 , 0, 
  1766. X        "25;[1=].P.2+-r" },
  1767. X/* BLS 117 */   { 0 , 0, 
  1768. X        "23;[1=].P.2+-r" },
  1769. X/* BLT 118 */   { 0 , 0, 
  1770. X        "2d;[1=].P.2+-r" },
  1771. X/* BMI 119 */   { 0 , 0, 
  1772. X        "2b;[1=].P.2+-r" },
  1773. X/* BNE 120 */   { 0 , 0, 
  1774. X        "26;[1=].P.2+-r" },
  1775. X/* BPL 121 */   { 0 , 0, 
  1776. X        "2a;[1=].P.2+-r" },
  1777. X/* BRA 122 */   { 0 , 0, 
  1778. X        "20;[1=].P.2+-r" },
  1779. X/* BRCLR 123 */   { TS6811 , TS6811, 
  1780. X        "13;[1=];[2=];[3=].P.4+-r" },
  1781. X/* BRCLR 124 */   { INDREG+TS6811 , REGX+TS6811, 
  1782. X        "1f;[1=];[2=];[3=].P.4+-r" },
  1783. X/* BRCLR 125 */   { INDREG+TS6811 , REGY+TS6811, 
  1784. X        "18;1f;[1=];[2=];[3=].P.5+-r" },
  1785. X/* BRN 126 */   { TS6801PLUS , TS6801PLUS, 
  1786. X        "21;[1=].P.2+-r" },
  1787. X/* BRSET 127 */   { TS6811 , TS6811, 
  1788. X        "12;[1=];[2=];[3=].P.4+-r" },
  1789. X/* BRSET 128 */   { INDREG+TS6811 , REGX+TS6811, 
  1790. X        "1e;[1=];[2=];[3=].P.4+-r" },
  1791. X/* BRSET 129 */   { INDREG+TS6811 , REGY+TS6811, 
  1792. X        "18;1e;[1=];[2=];[3=].P.5+-r" },
  1793. X/* BSET 130 */   { TS6811 , TS6811, 
  1794. X        "14;[1=];[2=];" },
  1795. X/* BSET 131 */   { INDREG+TS6811 , REGX+TS6811, 
  1796. X        "1c;[1=];[2=];" },
  1797. X/* BSET 132 */   { INDREG+TS6811 , REGY+TS6811, 
  1798. X        "18;1c;[1=];[2=];" },
  1799. X/* BSR 133 */   { 0 , 0, 
  1800. X        "8d;[1=].P.2+-r" },
  1801. X/* BVC 134 */   { 0 , 0, 
  1802. X        "28;[1=].P.2+-r" },
  1803. X/* BVS 135 */   { 0 , 0, 
  1804. X        "29;[1=].P.2+-r" },
  1805. X/* CBA 136 */   { 0 , 0, 
  1806. X        "11;" },
  1807. X/* CLC 137 */   { 0 , 0, 
  1808. X        "0c;" },
  1809. X/* CLI 138 */   { 0 , 0, 
  1810. X        "0e;" },
  1811. X/* CLR 139 */   { ACCREG , REGA, 
  1812. X        "4f;" },
  1813. X/* CLR 140 */   { ACCREG , REGB, 
  1814. X        "5f;" },
  1815. X/* CLR 141 */   { 0 , 0, 
  1816. X        "7f;[1=]x" },
  1817. X/* CLR 142 */   { INDREG , REGX, 
  1818. X        "6f;[1=];" },
  1819. X/* CLR 143 */   { INDREG+TS6811 , REGY+TS6811, 
  1820. X        "18;6f;[1=];" },
  1821. X/* CLRA 144 */   { 0 , 0, 
  1822. X        "4f;" },
  1823. X/* CLRB 145 */   { 0 , 0, 
  1824. X        "5f;" },
  1825. X/* CLV 146 */   { 0 , 0, 
  1826. X        "0a;" },
  1827. X/* CMP 147 */   { ACCREG+ADDR , REGA+DIRECT, 
  1828. X        "91;[1=];" },
  1829. X/* CMP 148 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1830. X        "b1;[1=]x" },
  1831. X/* CMP 149 */   { ACCREG+ADDR , REGB+DIRECT, 
  1832. X        "d1;[1=];" },
  1833. X/* CMP 150 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1834. X        "f1;[1=]x" },
  1835. X/* CMP 151 */   { ACCREG , REGA, 
  1836. X        "81;[1=];" },
  1837. X/* CMP 152 */   { ACCREG , REGB, 
  1838. X        "c1;[1=];" },
  1839. X/* CMP 153 */   { ACCREG+INDREG , REGA+REGX, 
  1840. X        "a1;[1=];" },
  1841. X/* CMP 154 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  1842. X        "18;a1;[1=];" },
  1843. X/* CMP 155 */   { ACCREG+INDREG , REGB+REGX, 
  1844. X        "e1;[1=];" },
  1845. X/* CMP 156 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  1846. X        "18;e1;[1=];" },
  1847. X/* CMPA 157 */   { ADDR , DIRECT, 
  1848. X        "91;[1=];" },
  1849. X/* CMPA 158 */   { ADDR , EXTENDED, 
  1850. X        "b1;[1=]x" },
  1851. X/* CMPA 159 */   { 0 , 0, 
  1852. X        "81;[1=];" },
  1853. X/* CMPA 160 */   { INDREG , REGX, 
  1854. X        "a1;[1=];" },
  1855. X/* CMPA 161 */   { INDREG+TS6811 , REGY+TS6811, 
  1856. X        "18;a1;[1=];" },
  1857. X/* CMPB 162 */   { ADDR , DIRECT, 
  1858. X        "d1;[1=];" },
  1859. X/* CMPB 163 */   { ADDR , EXTENDED, 
  1860. X        "f1;[1=]x" },
  1861. X/* CMPB 164 */   { 0 , 0, 
  1862. X        "c1;[1=];" },
  1863. X/* CMPB 165 */   { INDREG , REGX, 
  1864. X        "e1;[1=];" },
  1865. X/* CMPB 166 */   { INDREG+TS6811 , REGY+TS6811, 
  1866. X        "18;e1;[1=];" },
  1867. X/* COM 167 */   { ACCREG , REGA, 
  1868. X        "43;" },
  1869. X/* COM 168 */   { ACCREG , REGB, 
  1870. X        "53;" },
  1871. X/* COM 169 */   { 0 , 0, 
  1872. X        "73;[1=]x" },
  1873. X/* COM 170 */   { INDREG , REGX, 
  1874. X        "63;[1=];" },
  1875. X/* COM 171 */   { INDREG+TS6811 , REGY+TS6811, 
  1876. X        "18;63;[1=];" },
  1877. X/* COMA 172 */   { 0 , 0, 
  1878. X        "43;" },
  1879. X/* COMB 173 */   { 0 , 0, 
  1880. X        "53;" },
  1881. X/* CPD 174 */   { ADDR+TS6811 , DIRECT+TS6811, 
  1882. X        "1a;93;[1=];" },
  1883. X/* CPD 175 */   { ADDR+TS6811 , EXTENDED+TS6811, 
  1884. X        "1a;b3;[1=]x" },
  1885. X/* CPD 176 */   { TS6811 , TS6811, 
  1886. X        "1a;83;[1=]x" },
  1887. X/* CPD 177 */   { INDREG+TS6811 , REGX+TS6811, 
  1888. X        "1a;a3;[1=];" },
  1889. X/* CPD 178 */   { INDREG+TS6811 , REGY+TS6811, 
  1890. X        "cd;a3;[1=];" },
  1891. X/* CPX 179 */   { ADDR , DIRECT, 
  1892. X        "9c;[1=];" },
  1893. X/* CPX 180 */   { ADDR , EXTENDED, 
  1894. X        "bc;[1=]x" },
  1895. X/* CPX 181 */   { 0 , 0, 
  1896. X        "8c;[1=]x" },
  1897. X/* CPX 182 */   { INDREG , REGX, 
  1898. X        "ac;[1=];" },
  1899. X/* CPX 183 */   { INDREG+TS6811 , REGY+TS6811, 
  1900. X        "cd;ac;[1=];" },
  1901. X/* CPY 184 */   { ADDR+TS6811 , DIRECT+TS6811, 
  1902. X        "18;9c;[1=];" },
  1903. X/* CPY 185 */   { ADDR+TS6811 , EXTENDED+TS6811, 
  1904. X        "18;bc;[1=]x" },
  1905. X/* CPY 186 */   { TS6811 , TS6811, 
  1906. X        "18;8c;[1=]x" },
  1907. X/* CPY 187 */   { INDREG+TS6811 , REGX+TS6811, 
  1908. X        "1a;ac;[1=];" },
  1909. X/* CPY 188 */   { INDREG+TS6811 , REGY+TS6811, 
  1910. X        "18;ac;[1=];" },
  1911. X/* DAA 189 */   { 0 , 0, 
  1912. X        "19;" },
  1913. X/* DEC 190 */   { ACCREG , REGA, 
  1914. X        "4a;" },
  1915. X/* DEC 191 */   { ACCREG , REGB, 
  1916. X        "5a;" },
  1917. X/* DEC 192 */   { 0 , 0, 
  1918. X        "7a;[1=]x" },
  1919. X/* DEC 193 */   { INDREG , REGX, 
  1920. X        "6a;[1=];" },
  1921. X/* DEC 194 */   { INDREG+TS6811 , REGY+TS6811, 
  1922. X        "18;6a;[1=];" },
  1923. X/* DECA 195 */   { 0 , 0, 
  1924. X        "4a;" },
  1925. X/* DECB 196 */   { 0 , 0, 
  1926. X        "5a;" },
  1927. X/* DES 197 */   { 0 , 0, 
  1928. X        "34;" },
  1929. X/* DEX 198 */   { 0 , 0, 
  1930. X        "09;" },
  1931. X/* DEY 199 */   { TS6811 , TS6811, 
  1932. X        "18;09;" },
  1933. X/* EOR 200 */   { ACCREG+ADDR , REGA+DIRECT, 
  1934. X        "98;[1=];" },
  1935. X/* EOR 201 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1936. X        "b8;[1=]x" },
  1937. X/* EOR 202 */   { ACCREG+ADDR , REGB+DIRECT, 
  1938. X        "d8;[1=];" },
  1939. X/* EOR 203 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1940. X        "f8;[1=]x" },
  1941. X/* EOR 204 */   { ACCREG , REGA, 
  1942. X        "88;[1=];" },
  1943. X/* EOR 205 */   { ACCREG , REGB, 
  1944. X        "c8;[1=];" },
  1945. X/* EOR 206 */   { ACCREG+INDREG , REGA+REGX, 
  1946. X        "a8;[1=];" },
  1947. X/* EOR 207 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  1948. X        "18;a8;[1=];" },
  1949. X/* EOR 208 */   { ACCREG+INDREG , REGB+REGX, 
  1950. X        "e8;[1=];" },
  1951. X/* EOR 209 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  1952. X        "18;e8;[1=];" },
  1953. X/* EORA 210 */   { ADDR , DIRECT, 
  1954. X        "98;[1=];" },
  1955. X/* EORA 211 */   { ADDR , EXTENDED, 
  1956. X        "b8;[1=]x" },
  1957. X/* EORA 212 */   { 0 , 0, 
  1958. X        "88;[1=];" },
  1959. X/* EORA 213 */   { INDREG , REGX, 
  1960. X        "a8;[1=];" },
  1961. X/* EORA 214 */   { INDREG+TS6811 , REGY+TS6811, 
  1962. X        "18;a8;[1=];" },
  1963. X/* EORB 215 */   { ADDR , DIRECT, 
  1964. X        "d8;[1=];" },
  1965. X/* EORB 216 */   { ADDR , EXTENDED, 
  1966. X        "f8;[1=]x" },
  1967. X/* EORB 217 */   { 0 , 0, 
  1968. X        "c8;[1=];" },
  1969. X/* EORB 218 */   { INDREG , REGX, 
  1970. X        "e8;[1=];" },
  1971. X/* EORB 219 */   { INDREG+TS6811 , REGY+TS6811, 
  1972. X        "18;e8;[1=];" },
  1973. X/* FDIV 220 */   { TS6811 , TS6811, 
  1974. X        "03;" },
  1975. X/* IDIV 221 */   { TS6811 , TS6811, 
  1976. X        "02;" },
  1977. X/* INC 222 */   { ACCREG , REGA, 
  1978. X        "4c;" },
  1979. X/* INC 223 */   { ACCREG , REGB, 
  1980. X        "5c;" },
  1981. X/* INC 224 */   { 0 , 0, 
  1982. X        "7c;[1=]x" },
  1983. X/* INC 225 */   { INDREG , REGX, 
  1984. X        "6c;[1=];" },
  1985. X/* INC 226 */   { INDREG+TS6811 , REGY+TS6811, 
  1986. X        "18;6c;[1=];" },
  1987. X/* INCA 227 */   { 0 , 0, 
  1988. X        "4c;" },
  1989. X/* INCB 228 */   { 0 , 0, 
  1990. X        "5c;" },
  1991. X/* INS 229 */   { 0 , 0, 
  1992. X        "31;" },
  1993. X/* INX 230 */   { 0 , 0, 
  1994. X        "08;" },
  1995. X/* INY 231 */   { TS6811 , TS6811, 
  1996. X        "18;08;" },
  1997. X/* JMP 232 */   { 0 , 0, 
  1998. X        "7e;[1=]x" },
  1999. X/* JMP 233 */   { INDREG , REGX, 
  2000. X        "6e;[1=];" },
  2001. X/* JMP 234 */   { INDREG+TS6811 , REGY+TS6811, 
  2002. X        "18;6e;[1=];" },
  2003. X/* JSR 235 */   { ADDR+CPUMASK , DIRECT+CPU6800, 
  2004. X        "bd;[1=]x" },
  2005. X/* JSR 236 */   { ADDR+TS6801PLUS , DIRECT+TS6801PLUS, 
  2006. X        "9d;[1=];" },
  2007. X/* JSR 237 */   { ADDR , EXTENDED, 
  2008. X        "bd;[1=]x" },
  2009. X/* JSR 238 */   { INDREG , REGX, 
  2010. X        "ad;[1=];" },
  2011. X/* JSR 239 */   { INDREG+TS6811 , REGY+TS6811, 
  2012. X        "18;ad;[1=];" },
  2013. X/* LDA 240 */   { ACCREG+ADDR , REGA+DIRECT, 
  2014. X        "96;[1=];" },
  2015. X/* LDA 241 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2016. X        "b6;[1=]x" },
  2017. X/* LDA 242 */   { ACCREG+ADDR , REGB+DIRECT, 
  2018. X        "d6;[1=];" },
  2019. X/* LDA 243 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2020. X        "f6;[1=]x" },
  2021. X/* LDA 244 */   { ACCREG , REGA, 
  2022. X        "86;[1=];" },
  2023. X/* LDA 245 */   { ACCREG , REGB, 
  2024. X        "c6;[1=];" },
  2025. X/* LDA 246 */   { ACCREG+INDREG , REGA+REGX, 
  2026. X        "a6;[1=];" },
  2027. X/* LDA 247 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  2028. X        "18;a6;[1=];" },
  2029. X/* LDA 248 */   { ACCREG+INDREG , REGB+REGX, 
  2030. X        "e6;[1=];" },
  2031. X/* LDA 249 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  2032. X        "18;e6;[1=];" },
  2033. X/* LDAA 250 */   { ADDR , DIRECT, 
  2034. X        "96;[1=];" },
  2035. X/* LDAA 251 */   { ADDR , EXTENDED, 
  2036. X        "b6;[1=]x" },
  2037. X/* LDAA 252 */   { 0 , 0, 
  2038. X        "86;[1=];" },
  2039. X/* LDAA 253 */   { INDREG , REGX, 
  2040. X        "a6;[1=];" },
  2041. X/* LDAA 254 */   { INDREG+TS6811 , REGY+TS6811, 
  2042. X        "18;a6;[1=];" },
  2043. X/* LDAB 255 */   { ADDR , DIRECT, 
  2044. X        "d6;[1=];" },
  2045. X/* LDAB 256 */   { ADDR , EXTENDED, 
  2046. X        "f6;[1=]x" },
  2047. X/* LDAB 257 */   { 0 , 0, 
  2048. X        "c6;[1=];" },
  2049. X/* LDAB 258 */   { INDREG , REGX, 
  2050. X        "e6;[1=];" },
  2051. X/* LDAB 259 */   { INDREG+TS6811 , REGY+TS6811, 
  2052. X        "18;e6;[1=];" },
  2053. X/* LDD 260 */   { ADDR+TS6801PLUS , DIRECT+TS6801PLUS, 
  2054. X        "dc;[1=];" },
  2055. X/* LDD 261 */   { ADDR+TS6801PLUS , EXTENDED+TS6801PLUS, 
  2056. X        "fc;[1=]x" },
  2057. X/* LDD 262 */   { TS6801PLUS , TS6801PLUS, 
  2058. X        "cc;[1=]x" },
  2059. X/* LDD 263 */   { TS6801PLUS+INDREG , REGX+TS6801PLUS, 
  2060. X        "ec;[1=];" },
  2061. X/* LDD 264 */   { INDREG+TS6811 , REGY+TS6811, 
  2062. X        "18;ec;[1=];" },
  2063. X/* LDS 265 */   { ADDR , DIRECT, 
  2064. X        "9e;[1=];" },
  2065. X/* LDS 266 */   { ADDR , EXTENDED, 
  2066. X        "be;[1=]x" },
  2067. X/* LDS 267 */   { 0 , 0, 
  2068. X        "8e;[1=]x" },
  2069. X/* LDS 268 */   { INDREG , REGX, 
  2070. X        "ae;[1=];" },
  2071. X/* LDS 269 */   { INDREG+TS6811 , REGY+TS6811, 
  2072. X        "18;ae;[1=];" },
  2073. X/* LDX 270 */   { ADDR , DIRECT, 
  2074. X        "de;[1=];" },
  2075. X/* LDX 271 */   { ADDR , EXTENDED, 
  2076. X        "fe;[1=]x" },
  2077. X/* LDX 272 */   { 0 , 0, 
  2078. X        "ce;[1=]x" },
  2079. X/* LDX 273 */   { INDREG , REGX, 
  2080. X        "ee;[1=];" },
  2081. X/* LDX 274 */   { INDREG+TS6811 , REGY+TS6811, 
  2082. X        "cd;ee;[1=];" },
  2083. X/* LDY 275 */   { TS6811+ADDR , DIRECT+TS6811, 
  2084. X        "18;de;[1=];" },
  2085. X/* LDY 276 */   { TS6811+ADDR , EXTENDED+TS6811, 
  2086. X        "18;fe;[1=]x" },
  2087. X/* LDY 277 */   { TS6811 , TS6811, 
  2088. X        "18;ce;[1=]x" },
  2089. X/* LDY 278 */   { TS6811+INDREG , REGX+TS6811, 
  2090. X        "1a;ee;[1=];" },
  2091. X/* LDY 279 */   { INDREG+TS6811 , REGY+TS6811, 
  2092. X        "18;ee;[1=];" },
  2093. X/* LSL 280 */   { ACCREG , REGA, 
  2094. X        "48;" },
  2095. X/* LSL 281 */   { ACCREG , REGB, 
  2096. X        "58;" },
  2097. X/* LSL 282 */   { 0 , 0, 
  2098. X        "78;[1=]x" },
  2099. X/* LSL 283 */   { INDREG , REGX, 
  2100. X        "68;[1=];" },
  2101. X/* LSL 284 */   { INDREG+TS6811 , REGY+TS6811, 
  2102. X        "18;68;[1=];" },
  2103. X/* LSLA 285 */   { 0 , 0, 
  2104. X        "48;" },
  2105. X/* LSLB 286 */   { 0 , 0, 
  2106. X        "58;" },
  2107. X/* LSLD 287 */   { TS6801PLUS , TS6801PLUS, 
  2108. X        "05;" },
  2109. X/* LSR 288 */   { ACCREG , REGA, 
  2110. X        "44;" },
  2111. X/* LSR 289 */   { ACCREG , REGB, 
  2112. X        "54;" },
  2113. X/* LSR 290 */   { 0 , 0, 
  2114. X        "74;[1=]x" },
  2115. X/* LSR 291 */   { INDREG , REGX, 
  2116. X        "64;[1=];" },
  2117. X/* LSR 292 */   { INDREG+TS6811 , REGY+TS6811, 
  2118. X        "18;64;[1=];" },
  2119. X/* LSRA 293 */   { 0 , 0, 
  2120. X        "44;" },
  2121. X/* LSRB 294 */   { 0 , 0, 
  2122. X        "54;" },
  2123. X/* LSRD 295 */   { TS6801PLUS , TS6801PLUS, 
  2124. X        "04;" },
  2125. X/* MUL 296 */   { TS6801PLUS , TS6801PLUS, 
  2126. X        "3d;" },
  2127. X/* NEG 297 */   { ACCREG , REGA, 
  2128. X        "40;" },
  2129. X/* NEG 298 */   { ACCREG , REGB, 
  2130. X        "50;" },
  2131. X/* NEG 299 */   { 0 , 0, 
  2132. X        "70;[1=]x" },
  2133. X/* NEG 300 */   { INDREG , REGX, 
  2134. X        "60;[1=];" },
  2135. X/* NEG 301 */   { INDREG+TS6811 , REGY+TS6811, 
  2136. X        "18;60;[1=];" },
  2137. X/* NEGA 302 */   { 0 , 0, 
  2138. X        "40;" },
  2139. X/* NEGB 303 */   { 0 , 0, 
  2140. X        "50;" },
  2141. X/* NOP 304 */   { 0 , 0, 
  2142. X        "01;" },
  2143. X/* ORA 305 */   { ACCREG+ADDR , REGA+DIRECT, 
  2144. X        "9a;[1=];" },
  2145. X/* ORA 306 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2146. X        "ba;[1=]x" },
  2147. X/* ORA 307 */   { ACCREG+ADDR , REGB+DIRECT, 
  2148. X        "da;[1=];" },
  2149. X/* ORA 308 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2150. X        "fa;[1=]x" },
  2151. X/* ORA 309 */   { ACCREG , REGA, 
  2152. X        "8a;[1=];" },
  2153. X/* ORA 310 */   { ACCREG , REGB, 
  2154. X        "ca;[1=];" },
  2155. X/* ORA 311 */   { ACCREG+INDREG , REGA+REGX, 
  2156. X        "aa;[1=];" },
  2157. X/* ORA 312 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  2158. X        "18;aa;[1=];" },
  2159. X/* ORA 313 */   { ACCREG+INDREG , REGB+REGX, 
  2160. X        "ea;[1=];" },
  2161. X/* ORA 314 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  2162. X        "18;ea;[1=];" },
  2163. X/* ORAA 315 */   { ADDR , DIRECT, 
  2164. X        "9a;[1=];" },
  2165. X/* ORAA 316 */   { ADDR , EXTENDED, 
  2166. X        "ba;[1=]x" },
  2167. X/* ORAA 317 */   { 0 , 0, 
  2168. X        "8a;[1=];" },
  2169. X/* ORAA 318 */   { INDREG , REGX, 
  2170. X        "aa;[1=];" },
  2171. X/* ORAA 319 */   { INDREG+TS6811 , REGY+TS6811, 
  2172. X        "18;aa;[1=];" },
  2173. X/* ORAB 320 */   { ADDR , DIRECT, 
  2174. X        "da;[1=];" },
  2175. X/* ORAB 321 */   { ADDR , EXTENDED, 
  2176. X        "fa;[1=]x" },
  2177. X/* ORAB 322 */   { 0 , 0, 
  2178. X        "ca;[1=];" },
  2179. X/* ORAB 323 */   { INDREG , REGX, 
  2180. X        "ea;[1=];" },
  2181. X/* ORAB 324 */   { INDREG+TS6811 , REGY+TS6811, 
  2182. X        "18;ea;[1=];" },
  2183. X/* PSH 325 */   { ACCREG , REGA, 
  2184. X        "36;" },
  2185. X/* PSH 326 */   { ACCREG , REGB, 
  2186. X        "37;" },
  2187. X/* PSH 327 */   { TS6801PLUS+INDREG , REGX+TS6801PLUS, 
  2188. X        "3c;" },
  2189. X/* PSH 328 */   { INDREG+TS6811 , REGY+TS6811, 
  2190. X        "18;3c;" },
  2191. X/* PSHA 329 */   { 0 , 0, 
  2192. X        "36;" },
  2193. X/* PSHB 330 */   { 0 , 0, 
  2194. X        "37;" },
  2195. X/* PSHX 331 */   { TS6801PLUS , TS6801PLUS, 
  2196. X        "3c;" },
  2197. X/* PSHY 332 */   { TS6811 , TS6811, 
  2198. X        "18;3c;" },
  2199. X/* PUL 333 */   { ACCREG , REGA, 
  2200. X        "32;" },
  2201. X/* PUL 334 */   { ACCREG , REGB, 
  2202. X        "33;" },
  2203. X/* PUL 335 */   { TS6801PLUS+INDREG , REGX+TS6801PLUS, 
  2204. X        "38;" },
  2205. X/* PUL 336 */   { INDREG+TS6811 , REGY+TS6811, 
  2206. X        "18;38;" },
  2207. X/* PULA 337 */   { 0 , 0, 
  2208. X        "32;" },
  2209. X/* PULB 338 */   { 0 , 0, 
  2210. X        "33;" },
  2211. X/* PULX 339 */   { TS6801PLUS , TS6801PLUS, 
  2212. X        "38;" },
  2213. X/* PULY 340 */   { TS6811 , TS6811, 
  2214. X        "18;38;" },
  2215. X/* ROL 341 */   { ACCREG , REGA, 
  2216. X        "49;" },
  2217. X/* ROL 342 */   { ACCREG , REGB, 
  2218. X        "59;" },
  2219. X/* ROL 343 */   { 0 , 0, 
  2220. X        "79;[1=]x" },
  2221. X/* ROL 344 */   { INDREG , REGX, 
  2222. X        "69;[1=];" },
  2223. X/* ROL 345 */   { INDREG+TS6811 , REGY+TS6811, 
  2224. X        "18;69;[1=];" },
  2225. X/* ROLA 346 */   { 0 , 0, 
  2226. X        "49;" },
  2227. X/* ROLB 347 */   { 0 , 0, 
  2228. X        "59;" },
  2229. X/* ROR 348 */   { ACCREG , REGA, 
  2230. X        "46;" },
  2231. X/* ROR 349 */   { ACCREG , REGB, 
  2232. X        "56;" },
  2233. X/* ROR 350 */   { 0 , 0, 
  2234. X        "76;[1=]x" },
  2235. X/* ROR 351 */   { INDREG , REGX, 
  2236. X        "66;[1=];" },
  2237. X/* ROR 352 */   { INDREG+TS6811 , REGY+TS6811, 
  2238. X        "18;66;[1=];" },
  2239. X/* RORA 353 */   { 0 , 0, 
  2240. X        "46;" },
  2241. X/* RORB 354 */   { 0 , 0, 
  2242. X        "56;" },
  2243. X/* RTI 355 */   { 0 , 0, 
  2244. X        "3b;" },
  2245. X/* RTS 356 */   { 0 , 0, 
  2246. X        "39;" },
  2247. X/* SBA 357 */   { 0 , 0, 
  2248. X        "10;" },
  2249. X/* SBC 358 */   { ACCREG+ADDR , REGA+DIRECT, 
  2250. X        "92;[1=];" },
  2251. X/* SBC 359 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2252. X        "b2;[1=]x" },
  2253. X/* SBC 360 */   { ACCREG+ADDR , REGB+DIRECT, 
  2254. X        "d2;[1=];" },
  2255. X/* SBC 361 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2256. X        "f2;[1=]x" },
  2257. X/* SBC 362 */   { ACCREG , REGA, 
  2258. X        "82;[1=];" },
  2259. X/* SBC 363 */   { ACCREG , REGB, 
  2260. X        "c2;[1=];" },
  2261. X/* SBC 364 */   { ACCREG+INDREG , REGA+REGX, 
  2262. X        "a2;[1=];" },
  2263. X/* SBC 365 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  2264. X        "18;a2;[1=];" },
  2265. X/* SBC 366 */   { ACCREG+INDREG , REGB+REGX, 
  2266. X        "e2;[1=];" },
  2267. X/* SBC 367 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  2268. X        "18;e2;[1=];" },
  2269. X/* SBCA 368 */   { ADDR , DIRECT, 
  2270. X        "92;[1=];" },
  2271. X/* SBCA 369 */   { ADDR , EXTENDED, 
  2272. X        "b2;[1=]x" },
  2273. X/* SBCA 370 */   { 0 , 0, 
  2274. X        "82;[1=];" },
  2275. X/* SBCA 371 */   { INDREG , REGX, 
  2276. X        "a2;[1=];" },
  2277. X/* SBCA 372 */   { INDREG+TS6811 , REGY+TS6811, 
  2278. X        "18;a2;[1=];" },
  2279. X/* SBCB 373 */   { ADDR , DIRECT, 
  2280. X        "d2;[1=];" },
  2281. X/* SBCB 374 */   { ADDR , EXTENDED, 
  2282. X        "f2;[1=]x" },
  2283. X/* SBCB 375 */   { 0 , 0, 
  2284. X        "c2;[1=];" },
  2285. X/* SBCB 376 */   { INDREG , REGX, 
  2286. X        "e2;[1=];" },
  2287. X/* SBCB 377 */   { INDREG+TS6811 , REGY+TS6811, 
  2288. X        "18;e2;[1=];" },
  2289. X/* SEC 378 */   { 0 , 0, 
  2290. X        "0d;" },
  2291. X/* SEI 379 */   { 0 , 0, 
  2292. X        "0f;" },
  2293. X/* SEV 380 */   { 0 , 0, 
  2294. X        "0b;" },
  2295. X/* STA 381 */   { ACCREG+ADDR , REGA+DIRECT, 
  2296. X        "97;[1=];" },
  2297. X/* STA 382 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2298. X        "b7;[1=]x" },
  2299. X/* STA 383 */   { ACCREG+ADDR , REGB+DIRECT, 
  2300. X        "d7;[1=];" },
  2301. X/* STA 384 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2302. X        "f7;[1=]x" },
  2303. X/* STA 385 */   { ACCREG+INDREG , REGA+REGX, 
  2304. X        "a7;[1=];" },
  2305. X/* STA 386 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  2306. X        "18;a7;[1=];" },
  2307. X/* STA 387 */   { ACCREG+INDREG , REGB+REGX, 
  2308. X        "e7;[1=];" },
  2309. X/* STA 388 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  2310. X        "18;e7;[1=];" },
  2311. X/* STAA 389 */   { ADDR , DIRECT, 
  2312. X        "97;[1=];" },
  2313. X/* STAA 390 */   { ADDR , EXTENDED, 
  2314. X        "b7;[1=]x" },
  2315. X/* STAA 391 */   { INDREG , REGX, 
  2316. X        "a7;[1=];" },
  2317. X/* STAA 392 */   { INDREG+TS6811 , REGY+TS6811, 
  2318. X        "18;a7;[1=];" },
  2319. X/* STAB 393 */   { ADDR , DIRECT, 
  2320. X        "d7;[1=];" },
  2321. X/* STAB 394 */   { ADDR , EXTENDED, 
  2322. X        "f7;[1=]x" },
  2323. X/* STAB 395 */   { INDREG , REGX, 
  2324. X        "e7;[1=];" },
  2325. X/* STAB 396 */   { INDREG+TS6811 , REGY+TS6811, 
  2326. X        "18;e7;[1=];" },
  2327. X/* STD 397 */   { TS6801PLUS+ADDR , DIRECT+TS6801PLUS, 
  2328. X        "dd;[1=];" },
  2329. X/* STD 398 */   { TS6801PLUS+ADDR , EXTENDED+TS6801PLUS, 
  2330. X        "fd;[1=]x" },
  2331. X/* STD 399 */   { TS6801PLUS+INDREG , REGX+TS6801PLUS, 
  2332. X        "ed;[1=];" },
  2333. X/* STD 400 */   { INDREG+TS6811 , REGY+TS6811, 
  2334. X        "18;ed;[1=];" },
  2335. X/* STOP 401 */   { TS6811 , TS6811, 
  2336. X        "cf;" },
  2337. X/* STS 402 */   { ADDR , DIRECT, 
  2338. X        "9f;[1=];" },
  2339. X/* STS 403 */   { ADDR , EXTENDED, 
  2340. X        "bf;[1=]x" },
  2341. X/* STS 404 */   { INDREG , REGX, 
  2342. X        "af;[1=];" },
  2343. X/* STS 405 */   { INDREG+TS6811 , REGY+TS6811, 
  2344. X        "18;af;[1=];" },
  2345. X/* STX 406 */   { ADDR , DIRECT, 
  2346. X        "df;[1=];" },
  2347. X/* STX 407 */   { ADDR , EXTENDED, 
  2348. X        "ff;[1=]x" },
  2349. X/* STX 408 */   { INDREG , REGX, 
  2350. X        "ef;[1=];" },
  2351. X/* STX 409 */   { INDREG+TS6811 , REGY+TS6811, 
  2352. X        "cd;ef;[1=];" },
  2353. X/* STY 410 */   { TS6811+ADDR , DIRECT+TS6811, 
  2354. X        "18;df;[1=];" },
  2355. X/* STY 411 */   { TS6811+ADDR , EXTENDED+TS6811, 
  2356. X        "18;ff;[1=]x" },
  2357. X/* STY 412 */   { TS6811+INDREG , REGX+TS6811, 
  2358. X        "1a;ef;[1=];" },
  2359. X/* STY 413 */   { INDREG+TS6811 , REGY+TS6811, 
  2360. X        "18;ef;[1=];" },
  2361. X/* SUB 414 */   { ACCREG+ADDR , REGA+DIRECT, 
  2362. X        "90;[1=];" },
  2363. X/* SUB 415 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2364. X        "b0;[1=]x" },
  2365. X/* SUB 416 */   { ACCREG+ADDR , REGB+DIRECT, 
  2366. X        "d0;[1=];" },
  2367. X/* SUB 417 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2368. X        "f0;[1=]x" },
  2369. X/* SUB 418 */   { ACCREG , REGA, 
  2370. X        "80;[1=];" },
  2371. X/* SUB 419 */   { ACCREG , REGB, 
  2372. X        "c0;[1=];" },
  2373. X/* SUB 420 */   { ACCREG+INDREG , REGA+REGX, 
  2374. X        "a0;[1=];" },
  2375. X/* SUB 421 */   { ACCREG+INDREG+TS6811 , REGA+REGY+TS6811, 
  2376. X        "18;a0;[1=];" },
  2377. X/* SUB 422 */   { ACCREG+INDREG , REGB+REGX, 
  2378. X        "e0;[1=];" },
  2379. X/* SUB 423 */   { ACCREG+INDREG+TS6811 , REGB+REGY+TS6811, 
  2380. X        "18;e0;[1=];" },
  2381. X/* SUBA 424 */   { ADDR , DIRECT, 
  2382. X        "90;[1=];" },
  2383. X/* SUBA 425 */   { ADDR , EXTENDED, 
  2384. X        "b0;[1=]x" },
  2385. X/* SUBA 426 */   { 0 , 0, 
  2386. X        "80;[1=];" },
  2387. X/* SUBA 427 */   { INDREG , REGX, 
  2388. X        "a0;[1=];" },
  2389. X/* SUBA 428 */   { INDREG+TS6811 , REGY+TS6811, 
  2390. X        "18;a0;[1=];" },
  2391. X/* SUBB 429 */   { ADDR , DIRECT, 
  2392. X        "d0;[1=];" },
  2393. X/* SUBB 430 */   { ADDR , EXTENDED, 
  2394. X        "f0;[1=]x" },
  2395. X/* SUBB 431 */   { 0 , 0, 
  2396. X        "c0;[1=];" },
  2397. X/* SUBB 432 */   { INDREG , REGX, 
  2398. X        "e0;[1=];" },
  2399. X/* SUBB 433 */   { INDREG+TS6811 , REGY+TS6811, 
  2400. X        "18;e0;[1=];" },
  2401. X/* SUBD 434 */   { TS6801PLUS+ADDR , DIRECT+TS6801PLUS, 
  2402. X        "93;[1=];" },
  2403. X/* SUBD 435 */   { TS6801PLUS+ADDR , EXTENDED+TS6801PLUS, 
  2404. X        "b3;[1=]x" },
  2405. X/* SUBD 436 */   { TS6801PLUS , TS6801PLUS, 
  2406. X        "83;[1=]x" },
  2407. X/* SUBD 437 */   { TS6801PLUS+INDREG , REGX+TS6801PLUS, 
  2408. X        "a3;[1=];" },
  2409. X/* SUBD 438 */   { INDREG+TS6811 , REGY+TS6811, 
  2410. X        "18;a3;[1=];" },
  2411. X/* SWI 439 */   { 0 , 0, 
  2412. X        "3f;" },
  2413. X/* TAB 440 */   { 0 , 0, 
  2414. X        "16;" },
  2415. X/* TAP 441 */   { 0 , 0, 
  2416. X        "06;" },
  2417. X/* TBA 442 */   { 0 , 0, 
  2418. X        "17;" },
  2419. X/* TEST 443 */   { TS6811 , TS6811, 
  2420. X        "00;" },
  2421. X/* TPA 444 */   { 0 , 0, 
  2422. X        "07;" },
  2423. X/* TST 445 */   { ACCREG , REGA, 
  2424. X        "4d;" },
  2425. X/* TST 446 */   { ACCREG , REGB, 
  2426. X        "5d;" },
  2427. X/* TST 447 */   { 0 , 0, 
  2428. X        "7d;[1=]x" },
  2429. X/* TST 448 */   { INDREG , REGX, 
  2430. X        "6d;[1=];" },
  2431. X/* TST 449 */   { INDREG+TS6811 , REGY+TS6811, 
  2432. X        "18;6d;[1=];" },
  2433. X/* TSTA 450 */   { 0 , 0, 
  2434. X        "4d;" },
  2435. X/* TSTB 451 */   { 0 , 0, 
  2436. X        "5d;" },
  2437. X/* TSX 452 */   { 0 , 0, 
  2438. X        "30;" },
  2439. X/* TSY 453 */   { TS6811 , TS6811, 
  2440. X        "18;30;" },
  2441. X/* TXS 454 */   { 0 , 0, 
  2442. X        "35;" },
  2443. X/* TYS 455 */   { TS6811 , TS6811, 
  2444. X        "18;35;" },
  2445. X/* WAI 456 */   { 0 , 0, 
  2446. X        "3e;" },
  2447. X/* XGDX 457 */   { TS6811 , TS6811, 
  2448. X        "8f;" },
  2449. X/* XGDY 458 */   { TS6811 , TS6811, 
  2450. X        "18;8f;" },
  2451. X    { 0,0,""} };
  2452. X/* end fraptabdef.c */
  2453. SHAR_EOF
  2454. true || echo 'restore of as6811.y failed'
  2455. fi
  2456. exit 0
  2457.