home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s195 / 1.ddi / TASMTABS.DOC < prev   
Encoding:
Text File  |  1990-09-17  |  83.1 KB  |  2,153 lines

  1. TASM TABLES  Version 2.8                                      Page 1
  2.  
  3.  
  4. 6502 INSTRUCTIONS AND ADDRESSING MODES
  5.  
  6. The acceptable 6502 opcode mnemonics for TASM are as follows:
  7.  
  8.          ADC  AND  ASL  BCC  BCS  BEQ  BNE  BMI  BPL  BVC  BVS  BIT
  9.          BRK  CLC  CLD  CLI  CLV  CMP  CPX  CPY  DEC  DEX  DEY  EOR
  10.          INC  INX  INY  JMP  JSR  LDA  LDX  LDY  LSR  NOP  ORA  PHA
  11.          PHP  PLA  PLP  ROL  ROR  RTI  RTS  SBC  SEC  SED  SEI  STA
  12.          STX  STY  TAX  TAY  TSX  TXA  TXS  TYA
  13.  
  14. TASM  also  supports the following instructions that are part of the
  15. Rockwell  R65C02  and  R65C00/21  microprocessor  instruction  sets.
  16. Those  that  are  marked  as  set A are applicable to the R65C02 and
  17. those marked as set B are  applicable  to  the  R65C00/21  (A+B  for
  18. both):
  19.  
  20.         Mnemonic        Description                Address Mode  Set
  21.         ---------------------------------------------------------------
  22.         ADC             Add with carry             (IND)         A
  23.         AND             And memory with A          (IND)         A
  24.         BIT             Test memory bits with A    ABS,X         A
  25.         BIT             Test memory bits with A    ZP,X          A
  26.         BIT             Test memory bits with A    IMM           A
  27.         CMP             Compare memory with A      (IND)         A
  28.         DEC             Decrement A                A             A
  29.         EOR             Exclusive OR memory with A (IND)         A
  30.         INC             Increment A                A             A
  31.         JMP             Jump                       (ABS,X)       A
  32.         LDA             Load A with memory         (IND)         A
  33.         ORA             OR A with memory           (IND)         A
  34.         SBC             Subtract memory form A     (IND)         A
  35.         STA             Store A in memory          (IND)         A
  36.         STZ             Store zero                 ABS           A
  37.         STZ             Store zero                 ABS,X         A
  38.         STZ             Store zero                 ZP            A
  39.         STZ             Store zero                 ZP,X          A
  40.         TRB             Test and reset memory bit  ABS           A
  41.         TRB             Test and reset memory bit  ZP            A
  42.         TSB             Test and set memory bit    ABS           A
  43.         TSB             Test and set memory bit    ZP            A
  44.  
  45.         BRA             Branch Always              REL           A+B
  46.  
  47.         BBR0            Branch on Bit 0 Reset      ZP,REL        A+B
  48.         BBR1            Branch on Bit 1 Reset      ZP,REL        A+B
  49.         BBR2            Branch on Bit 2 Reset      ZP,REL        A+B
  50.         BBR3            Branch on Bit 3 Reset      ZP,REL        A+B
  51.         BBR4            Branch on Bit 4 Reset      ZP,REL        A+B
  52.         BBR5            Branch on Bit 5 Reset      ZP,REL        A+B
  53.         BBR6            Branch on Bit 6 Reset      ZP,REL        A+B
  54.         BBR7            Branch on Bit 7 Reset      ZP,REL        A+B
  55.  
  56.         BBS0            Branch on Bit 0 Set        ZP,REL        A+B
  57.         BBS1            Branch on Bit 1 Set        ZP,REL        A+B
  58.         BBS2            Branch on Bit 2 Set        ZP,REL        A+B
  59. TASM TABLES  Version 2.8                                      Page 2
  60.  
  61.         BBS3            Branch on Bit 3 Set        ZP,REL        A+B
  62.         BBS4            Branch on Bit 4 Set        ZP,REL        A+B
  63.         BBS5            Branch on Bit 5 Set        ZP,REL        A+B
  64.         BBS6            Branch on Bit 6 Set        ZP,REL        A+B
  65.         BBS7            Branch on Bit 7 Set        ZP,REL        A+B
  66.  
  67.         MUL             Multiply                   Implied       B
  68.  
  69.         PHX             Push Index X               Implied       A+B
  70.         PHY             Push Index Y               Implied       A+B
  71.         PLX             Pull Index X               Implied       A+B
  72.         PLY             Pull Index Y               Implied       A+B
  73.  
  74.         RMB0            Reset Memory Bit 0         ZP            A+B
  75.         RMB1            Reset Memory Bit 1         ZP            A+B
  76.         RMB2            Reset Memory Bit 2         ZP            A+B
  77.         RMB3            Reset Memory Bit 3         ZP            A+B
  78.         RMB4            Reset Memory Bit 4         ZP            A+B
  79.         RMB5            Reset Memory Bit 5         ZP            A+B
  80.         RMB6            Reset Memory Bit 6         ZP            A+B
  81.         RMB7            Reset Memory Bit 7         ZP            A+B
  82.  
  83.         SMB0            Set   Memory Bit 0         ZP            A+B
  84.         SMB1            Set   Memory Bit 1         ZP            A+B
  85.         SMB2            Set   Memory Bit 2         ZP            A+B
  86.         SMB3            Set   Memory Bit 3         ZP            A+B
  87.         SMB4            Set   Memory Bit 4         ZP            A+B
  88.         SMB5            Set   Memory Bit 5         ZP            A+B
  89.         SMB6            Set   Memory Bit 6         ZP            A+B
  90.         SMB7            Set   Memory Bit 7         ZP            A+B
  91.  
  92. Addressing  modes  are denoted as follows:
  93.  
  94.         ABS               Absolute
  95.         ZP                Zero Page
  96.         ABS,X             Absolute X
  97.         ZP,X              Zero Page X
  98.         ABS,Y             Absolute Y
  99.         ZP,Y              Zero Page Y
  100.         A                 Accumulator
  101.         (IND,X)           Indirect X
  102.         (IND),Y           Indirect Y
  103.         (IND)             Indirect
  104.         #IMM              Immediate
  105.         REL               Relative (Branch instructions only)
  106.         ZP,REL            Zero Page, Relative
  107.         Implied           Implied
  108.  
  109. Note  that Zero Page addressing can not be explicitly requested.  It
  110. is used if the value of the operand is  representable  in  a  single
  111. byte for the applicable statements.
  112.  
  113. The '-x' command line option can be  used  to  enable  the  extended
  114. instructions.  A  '-x'  with  no  digit  following  will  enable the
  115. standard set plus both extended sets.  The 6502 version of TASM uses
  116. three bits in the instruction class  mask  to  determine  whether  a
  117. TASM TABLES  Version 2.8                                      Page 3
  118.  
  119. given  instruction  is enabled or not.  Bit 0 enables the basic set,
  120. bit 1 enables set A (R65C02) and bit 2 enables  set  B  (R65C00/21).
  121. The following table shows various options:
  122.  
  123.  
  124.         Class Mask        Enabled Instructions
  125.                         BASIC   R65C02  R65C00/21
  126.         --------------------------------------------
  127.         1               yes     no      no
  128.         2               no      yes     no
  129.         3               yes     yes     no
  130.         4               no      no      yes
  131.         5               yes     no      yes
  132.         6               no      yes     yes
  133.         7               yes     yes     yes
  134.  
  135. Thus,  to enable the basic set plus the R65C02 instructions,  invoke
  136. the '-x3' command line option.
  137.  
  138. See manufacturer's data for  a  more  complete  description  of  the
  139. meaning    of     the     mnemonics    and     addressing     modes.
  140. TASM TABLES  Version 2.8                                      Page 4
  141.  
  142. 8048 INSTRUCTIONS AND ADDRESSING MODES
  143.  
  144. The following list shows the acceptable opcode mnemonics  and  their
  145. corresponding  operand  formats for the 8048 version of TASM.  Where
  146. 'Rn' is seen,  R0 through R7  may  be  substituted.  Other  symbolic
  147. fields are as follows:
  148.  
  149.         SYMBOLIC            DESCRIPTION
  150.         -----------------------------------------------
  151.         <addr8>             Absolute address (8 bits)
  152.         <addr11>            Absolute address (11 bits)
  153.         <immed>             Immediate data
  154.  
  155. Any valid TASM expression can appear in the  place  of  any  of  the
  156. above symbolics.
  157.  
  158. The lines that are marked with an (8041),  (8022),  or (8021) on the
  159. far  right are extended instructions that are available only if a -x
  160. option has  been  invoked  on  the  command  line.  The  classes  of
  161. instructions  (and their bit assignment in the class mask) are shown
  162. below:
  163.  
  164.         BIT     PROCESSOR
  165.         -------------------------------
  166.         0       8X48, 8035, 8039, 8049
  167.         1       8X41A
  168.         2       8022
  169.         3       8021
  170.  
  171. Thus, to enable the basic 8048 set plus the 8022 set, a -x5 could be
  172. used on the command line.
  173.  
  174. Note that some of the base instructions should be disabled  for  the
  175. 8041, 8022, and 8021, but are not.
  176.  
  177. OPCODE  OPERANDS        DESCRIPTION
  178. -------------------------------------------------------------------
  179. ADD     A,Rn            Add Register to Acc
  180. ADD     A,@R0           Add Indirect RAM to Acc
  181. ADD     A,@R1           Add Indirect RAM to Acc
  182. ADD     A,#<immed>      Add Immediate data to Acc
  183.  
  184. ADDC    A,Rn            Add Register to Acc with carry
  185. ADDC    A,@R0           Add Indirect RAM to Acc with carry
  186. ADDC    A,@R1           Add Indirect RAM to Acc with carry
  187. ADDC    A,#<immed>      Add Immediate data to Acc with carry
  188.  
  189. ANL     A,Rn            AND Register to Acc
  190. ANL     A,@R0           AND Indirect RAM to Acc
  191. ANL     A,@R1           AND Indirect RAM to Acc
  192. ANL     A,#<immed>      AND Immediate data to Acc
  193. ANL     BUS,#<immed>    AND Immediate data to BUS
  194. ANL     P1,#<immed>     AND Immediate data to port P1
  195. ANL     P2,#<immed>     AND Immediate data to port P2
  196.  
  197. ANLD    P4,A            AND Acc to Expander port P4
  198. TASM TABLES  Version 2.8                                      Page 5
  199.  
  200. ANLD    P5,A            AND Acc to Expander port P5
  201. ANLD    P6,A            AND Acc to Expander port P6
  202. ANLD    P7,A            AND Acc to Expander port P7
  203.  
  204. CALL    <addr11>        Call subroutine
  205.  
  206. CLR     A               Clear Acc
  207. CLR     C               Clear Carry
  208. CLR     F0              Clear Flag 0
  209. CLR     F1              Clear Flag 1
  210.  
  211. CPL     A               Complement Acc
  212. CPL     C               Complement Carry
  213. CPL     F0              Complement Flag F0
  214. CPL     F1              Complement Flag F1
  215.  
  216. DA      A               Decimal adjust Acc
  217.  
  218. DEC     A               Decrement Acc
  219. DEC     Rn              Decrement Register
  220.  
  221. DIS     I               Disable Interrupts
  222. DIS     TCNTI           Disable Timer/Counter Interrupt
  223.  
  224. DJNZ    Rn,<addr8>      Decrement Register and Jump if nonzero
  225.  
  226. EN      DMA             Enable DMA                           (8041)
  227. EN      FLAGS           Enable Flags                         (8041)
  228. EN      I               Enable External Interrupt
  229. EN      TCNTI           Enable Timer/Counter Interrupt
  230. ENT0    CLK             Enable Clock Output
  231.  
  232. IN      A,DBB           Input Data Bus to Acc                (8041)
  233. IN      A,P0            Input Port 0 to Acc                  (8021)
  234. IN      A,P1            Input Port 1 to Acc
  235. IN      A,P2            Input Port 2 to Acc
  236.  
  237. INC     A               Increment Acc
  238. INC     Rn              Increment Register
  239. INC     @R0             Increment Indirect RAM
  240. INC     @R1             Increment Indirect RAM
  241.  
  242. INS     A,BUS           Strobed Input of Bus to Acc
  243.  
  244. JB0     <addr8>         Jump if Acc bit 0 is set
  245. JB1     <addr8>         Jump if Acc bit 1 is set
  246. JB2     <addr8>         Jump if Acc bit 2 is set
  247. JB3     <addr8>         Jump if Acc bit 3 is set
  248. JB4     <addr8>         Jump if Acc bit 4 is set
  249. JB5     <addr8>         Jump if Acc bit 5 is set
  250. JB6     <addr8>         Jump if Acc bit 6 is set
  251. JB7     <addr8>         Jump if Acc bit 7 is set
  252. JMP     <addr11>        Jump
  253. JC      <addr8>         Jump if Carry is set
  254. JF0     <addr8>         Jump if Flag F0 is set
  255. JF1     <addr8>         Jump if Flag F1 is set
  256. TASM TABLES  Version 2.8                                      Page 6
  257.  
  258. JNC     <addr8>         Jump if Carry is clear
  259. JNI     <addr8>         Jump if Interrupt input is clear
  260. JNIBF   <addr8>         Jump if IBF is clear                 (8041)
  261. JNT0    <addr8>         Jump if T0 is clear
  262. JNT1    <addr8>         Jump if T1 is clear
  263. JNZ     <addr8>         Jump if Acc is not zero
  264. JOBF    <addr8>         Jump if OBF is set                   (8041)
  265. JTF     <addr8>         Jump if Timer Flag is set
  266. JT0     <addr8>         Jump if T0 pin is high
  267. JT1     <addr8>         Jump if T1 pin is high
  268. JZ      <addr8>         Jump if Acc is zero
  269. JMPP    @A              Jump Indirect (current page)
  270.  
  271. MOV     A,PSW           Move PSW to Acc
  272. MOV     A,Rn            Move Register to Acc
  273. MOV     A,T             Move Timer/Counter to Acc
  274. MOV     A,@R0           Move Indirect RAM to Acc
  275. MOV     A,@R1           Move Indirect RAM to Acc
  276. MOV     A,#<immed>      Move Immediate data to Acc
  277. MOV     PSW,A           Move Acc to PSW
  278. MOV     Rn,A            Move Acc to Register
  279. MOV     Rn,#<immed>     Move Immediate data to Register
  280. MOV     STS,A           Move Acc to STS                      (8041)
  281. MOV     T,A             Move Acc to Timer/Counter
  282. MOV     @R0,A           Move Acc to Indirect RAM
  283. MOV     @R1,A           Move Acc to Indirect RAM
  284. MOV     @R0,#<immed>    Move Immediate data to Indirect RAM
  285. MOV     @R1,#<immed>    Move Immediate data to Indirect RAM
  286.  
  287. MOVD    A,P4            Move half-byte Port 4 to Acc (lower nibble)
  288. MOVD    A,P5            Move half-byte Port 5 to Acc (lower nibble)
  289. MOVD    A,P6            Move half-byte Port 6 to Acc (lower nibble)
  290. MOVD    A,P7            Move half-byte Port 7 to Acc (lower nibble)
  291. MOVD    P4,A            Move lower nibble of Acc to Port 4
  292. MOVD    P5,A            Move lower nibble of Acc to Port 5
  293. MOVD    P6,A            Move lower nibble of Acc to Port 6
  294. MOVD    P7,A            Move lower nibble of Acc to Port 7
  295.  
  296. MOVP    A,@A            Move Indirect Program data to Acc
  297. MOVP3   A,@A            Move Indirect Program data to Acc (page 3)
  298.  
  299. MOVX    A,@R0           Move Indirect External RAM to Acc
  300. MOVX    A,@R1           Move Indirect External RAM to Acc
  301. MOVX    @R0,A           Move Acc to Indirect External RAM
  302. MOVX    @R1,A           Move Acc to Indirect External RAM
  303.  
  304. NOP                     No operation
  305.  
  306. ORL     A,Rn            OR Register to Acc
  307. ORL     A,@R0           OR Indirect RAM to Acc
  308. ORL     A,@R1           OR Indirect RAM to Acc
  309. ORL     A,#<immed>      OR Immediate data to Acc
  310. ORL     BUS,#<immed>    OR Immediate data to BUS
  311. ORL     P1,#<immed>     OR Immediate data to port P1
  312. ORL     P2,#<immed>     OR Immediate data to port P2
  313.  
  314. TASM TABLES  Version 2.8                                      Page 7
  315.  
  316. ORLD    P4,A            OR lower nibble of Acc with P4
  317. ORLD    P5,A            OR lower nibble of Acc with P5
  318. ORLD    P6,A            OR lower nibble of Acc with P6
  319. ORLD    P7,A            OR lower nibble of Acc with P7
  320.  
  321. OUTL    BUS,A           Output Acc to Bus
  322. OUT     DBB,A           Output Acc to DBB                    (8041)
  323. OUTL    P0,A            Output Acc to Port P0                (8021)
  324. OUTL    P1,A            Output Acc to Port P1
  325. OUTL    P2,A            Output Acc to Port P2
  326.  
  327. RAD                     Move A/D Converter to Acc            (8022)
  328.  
  329. RET                     Return from subroutine
  330. RETI                    Return from Interrupt w/o PSW restore(8022)
  331. RETR                    Return from Interrupt w/  PSW restore
  332.  
  333. RL      A               Rotate Acc Left
  334. RLC     A               Rotate Acc Left through Carry
  335. RR      A               Rotate Acc Right
  336. RRC     A               Rotate Acc Right through Carry
  337.  
  338. SEL     AN0             Select Analog Input 0                (8022)
  339. SEL     AN1             Select Analog Input 1                (8022)
  340. SEL     MB0             Select Memory Bank 0
  341. SEL     MB1             Select Memory Bank 1
  342. SEL     RB0             Select Register Bank 0
  343. SEL     RB1             Select Register Bank 1
  344.  
  345. STOP    TCNT            Stop Timer/Counter
  346. STRT    CNT             Start Counter
  347. STRT    T               Start Timer
  348.  
  349. SWAP    A               Swap nibbles of Acc
  350.  
  351. XCH     A,Rn            Exchange Register with Acc
  352. XCH     A,@R0           Exchange Indirect RAM with Acc
  353. XCH     A,@R1           Exchange Indirect RAM with Acc
  354.  
  355. XCHD    A,@R0           Exchange lower nibble of Indirect RAM w/ Acc
  356. XCHD    A,@R1           Exchange lower nibble of Indirect RAM w/ Acc
  357.  
  358. XRL     A,Rn            Exclusive OR Register to Acc
  359. XRL     A,@R0           Exclusive OR Indirect RAM to Acc
  360. XRL     A,@R1           Exclusive OR Indirect RAM to Acc
  361. XRL     A,#<immed>      Exclusive OR Immediate data to Acc
  362.  
  363. See manufacturer's data for  a  more  complete  description  of  the
  364. meaning    of     the     mnemonics    and     addressing     modes.
  365. TASM TABLES  Version 2.8                                      Page 8
  366.  
  367. 8051 INSTRUCTIONS AND ADDRESSING MODES
  368.  
  369. The following list shows the acceptable opcode mnemonics  and  their
  370. corresponding  operand  formats for the 8051 version of TASM.  Where
  371. 'Rn' is seen,  R0 through R7  may  be  substituted.  Other  symbolic
  372. fields are as follows:
  373.  
  374.         SYMBOLIC            DESCRIPTION
  375.         -----------------------------------------------
  376.         <addr11>            Absolute address (11 bits)
  377.         <addr16>            Absolute address (16 bits)
  378.         <bit>               Bit address
  379.         <immed>             Immediate data
  380.         <direct>            Direct RAM address
  381.         <rel>               Relative address
  382.  
  383. Any valid TASM expression can appear in the  place  of  any  of  the
  384. above symbolics.
  385.  
  386. OPCODE  OPERAND             DESCRIPTION
  387. --------------------------------------------------------------------
  388. ACALL   <addr11>            Absolute Call
  389. ADD     A,Rn                Add Register to Acc
  390. ADD     A,@R0               Add Indirect RAM to Acc
  391. ADD     A,@R1               Add Indirect RAM to Acc
  392. ADD     A,#<immed>          Add Immediate data to Acc
  393. ADD     A,<direct>          Add Direct RAM to Acc
  394. ADDC    A,Rn                Add Register to Acc with carry
  395. ADDC    A,@R0               Add Indirect RAM to Acc with carry
  396. ADDC    A,@R1               Add Indirect RAM to Acc with carry
  397. ADDC    A,#<immed>          Add Immediate data to Acc with carry
  398. ADDC    A,<direct>          Add Direct RAM to Acc with carry
  399.  
  400. AJMP    <addr11>            Absolute Jump
  401.  
  402. ANL     A,Rn                AND Register and Acc
  403. ANL     A,@R0               AND Indirect RAM and Acc
  404. ANL     A,@R1               AND Indirect RAM and Acc
  405. ANL     A,#<immed>          AND Immediate data and Acc
  406. ANL     A,<direct>          AND Direct RAM and Acc
  407. ANL     C,/<direct>         AND Complement of direct bit to Carry
  408. ANL     C,<direct>          AND direct bit to Carry
  409. ANL     <direct>,A          AND Acc to direct RAM
  410. ANL     <direct>,#<immed>   AND Immediate data and direct RAM
  411.  
  412. CJNE    A,#<immed>,<rel>    Compare Immediate to Acc   and JNE
  413. CJNE    A,<direct>,<rel>    Compare direct RAM to Acc and JNE
  414. CJNE    Rn,#<immed>,<rel>   Compare Immediate to Register and JNE
  415. CJNE    @R0,#<immed>,<rel>  Compare Immediate to Indirect RAM and JNE
  416. CJNE    @R1,#<immed>,<rel>  Compare Immediate to Indirect RAM and JNE
  417.  
  418. CLR     A                   Clear Accumulator
  419. CLR     C                   Clear Carry
  420. CLR     <direct>            Clear Direct RAM
  421.  
  422. CPL     A                   Complement Accumulator
  423. TASM TABLES  Version 2.8                                      Page 9
  424.  
  425. CPL     C                   Complement Carry
  426. CPL     <direct>            Complement Direct RAM
  427.  
  428. DA      A                   Decimal Adjust Accumulator
  429. DEC     A                   Decrement Acc
  430. DEC     Rn                  Decrement Register
  431. DEC     @R0                 Decrement Indirect RAM
  432. DEC     @R1                 Decrement Indirect RAM
  433. DEC     <direct>            Decrement Direct RAM
  434.  
  435. DIV     AB                  Divide Acc by B
  436.  
  437. DJNZ    Rn,<rel>            Decrement Register and JNZ
  438. DJNZ    <direct>,<rel>      Decrement Direct RAM and JNZ
  439.  
  440. INC     A                   Increment Acc
  441. INC     Rn                  Increment Register
  442. INC     @R0                 Increment Indirect RAM
  443. INC     @R1                 Increment Indirect RAM
  444. INC     DPTR                Increment Data Pointer
  445. INC     <direct>            Increment Direct RAM
  446.  
  447. JB      <bit>,<rel>         Jump if Bit is set
  448. JBC     <bit>,<rel>         Jump if Bit is set & clear Bit
  449. JC      <rel>               Jump if Carry is set
  450. JMP     @A+DPTR             Jump indirect relative to Data Pointer
  451. JNB     <bit>,<rel>         Jump if Bit is clear
  452. JNC     <rel>               Jump if Carry is clear
  453. JNZ     <rel>               Jump if Acc is not zero
  454. JZ      <rel>               Jump if Acc is zero
  455.  
  456. LCALL   <addr16>            Long Subroutine Call
  457. LJMP    <addr16>            Long Jump
  458.  
  459. MOV     A,Rn                Move Register to Acc
  460. MOV     A,@R0               Move Indirect RAM to Acc
  461. MOV     A,@R1               Move Indirect RAM to Acc
  462. MOV     A,#<immed>          Move Immediate data to Acc
  463. MOV     A,<direct>          Move direct RAM to Acc
  464. MOV     C,<bit>             Move bit to Acc
  465. MOV     DPTR,#<immed>       Move immediate data to Data Pointer
  466. MOV     Rn,A                Move Acc to Register
  467. MOV     Rn,#<immed>         Move Immediate data to Register
  468. MOV     Rn,<direct>         Move Direct RAM to Register
  469. MOV     @R0,A               Move Acc to Indirect RAM
  470. MOV     @R1,A               Move Acc to Indirect RAM
  471. MOV     @R0,#<immed>        Move Immediate data to Indirect RAM
  472. MOV     @R1,#<immed>        Move Immediate data to Indirect RAM
  473. MOV     @R0,<direct>        Move Direct RAM to Indirect RAM
  474. MOV     @R1,<direct>        Move Direct RAM to Indirect RAM
  475. MOV     <direct>,A          Move Acc to Direct RAM
  476. MOV     <bit>,C             Move Carry to Bit
  477. MOV     <direct>,Rn         Move Register to Direct RAM
  478. MOV     <direct>,@R0        Move Indirect RAM to Direct RAM
  479. MOV     <direct>,@R1        Move Indirect RAM to Direct RAM
  480. MOV     <direct>,#<immed>   Move Immediate data to Direct RAM
  481. TASM TABLES  Version 2.8                                     Page 10
  482.  
  483. MOV     <direct>,<direct>   Move Direct RAM to Direct RAM
  484. MOVC    A,@A+DPTR           Move code byte relative to DPTR to Acc
  485. MOVC    A,@A+PC             Move code byte relative to PC to Acc
  486.  
  487. MOVX    A,@R0               Move external RAM to Acc
  488. MOVX    A,@R1               Move external RAM to Acc
  489. MOVX    A,@DPTR             Move external RAM to Acc (16 bit addr)
  490. MOVX    @R0,A               Move Acc to external RAM
  491. MOVX    @R1,A               Move Acc to external RAM
  492. MOVX    @DPTR,A             Move Acc to external RAM (16 bit addr)
  493.  
  494. MUL     AB                  Multiply Acc by B
  495.  
  496. NOP                         No operation
  497.  
  498. ORL     A,Rn                OR Register and Acc
  499. ORL     A,@R0               OR Indirect RAM and Acc
  500. ORL     A,@R1               OR Indirect RAM and Acc
  501. ORL     A,#<immed>          OR Immediate data and Acc
  502. ORL     A,<direct>          OR Direct RAM and Acc
  503. ORL     C,/<direct>         OR Complement of direct bit to Carry
  504. ORL     C,<direct>          OR direct bit to Carry
  505. ORL     <direct>,A          OR Acc to direct RAM
  506. ORL     <direct>,#<immed>   OR Immediate data and direct RAM
  507.  
  508. POP     <direct>            Pop  from Stack and put in Direct RAM
  509. PUSH    <direct>            Push from Direct RAM to Stack
  510.  
  511. RET                         Return from subroutine
  512. RETI                        Return from Interrupt
  513.  
  514. RL      A                   Rotate Acc left
  515. RLC     A                   Rotate Acc left through Carry
  516. RR      A                   Rotate Acc right
  517. RRC     A                   Rotate Acc right through Carry
  518.  
  519. SETB    C                   Set the Carry Bit
  520. SETB    <bit>               Set Direct Bit
  521.  
  522. SJMP    <rel>               Short jump
  523.  
  524. SUBB    A,Rn                Subtract Register from Acc with Borrow
  525. SUBB    A,@R0               Subtract Indirect RAM from Acc w/ Borrow
  526. SUBB    A,@R1               Subtract Indirect RAM from Acc w/ Borrow
  527. SUBB    A,#<immed>          Subtract Immediate data from Acc w/ Borrow
  528. SUBB    A,<direct>          Subtract Direct RAM from Acc w/ Borrow
  529.  
  530. SWAP    A                   Swap nibbles of Acc
  531.  
  532. XCH     A,Rn                Exchange Acc with Register
  533. XCH     A,@R0               Exchange Acc with Indirect RAM
  534. XCH     A,@R1               Exchange Acc with Indirect RAM
  535. XCH     A,<direct>          Exchange Acc with Direct RAM
  536.  
  537. XCHD    A,@R0               Exchange Digit in Acc with Indirect RAM
  538. XCHD    A,@R1               Exchange Digit in Acc with Indirect RAM
  539. TASM TABLES  Version 2.8                                     Page 11
  540.  
  541. XRL     A,Rn                Exclusive OR Register and Acc
  542. XRL     A,@R0               Exclusive OR Indirect RAM and Acc
  543. XRL     A,@R1               Exclusive OR Indirect RAM and Acc
  544. XRL     A,#<immed>          Exclusive OR Immediate data and Acc
  545. XRL     A,<direct>          Exclusive OR Direct RAM and Acc
  546. XRL     <direct>,A          Exclusive OR Acc to direct RAM
  547. XRL     <direct>,#<immed>   Exclusive OR Immediate data and direct RAM
  548.  
  549. Note  that  the above tables do not automatically define the various
  550. mnemonics that may be  used  for  addressing  the  special  function
  551. registers  of  the  8051.  The  user  may  wish  to set up a file of
  552. equates (EQU's) that can be included in the  source  file  for  this
  553. purpose.  The following illustrates some of the appropriate equates:
  554.  
  555.  
  556. P0      .equ    080H    ;Port 0
  557. SP      .equ    081H    ;Stack pointer
  558. DPL     .equ    082H
  559. DPH     .equ    083H
  560. PCON    .equ    087H
  561. TCON    .equ    088H
  562. TMOD    .equ    089H
  563. TL0     .equ    08AH
  564. TL1     .equ    08BH
  565. TH0     .equ    08CH
  566. TH1     .equ    08DH
  567. P1      .equ    090H    ;Port 1
  568. SCON    .equ    098H
  569. SBUF    .equ    099H
  570. P2      .equ    0A0H    ;Port 2
  571. IEC     .equ    0A8H
  572. P3      .equ    0B0H    ;Port 3
  573. IPC     .equ    0B8H
  574. PSW     .equ    0D0H
  575. ACC     .equ    0E0H    ;Accumulator
  576. B       .equ    0F0H    ;Secondary Accumulator
  577. ;Now some bit addresses
  578. P0.0    .equ    080H    ;Port 0 bit 0
  579. P0.1    .equ    081H    ;Port 0 bit 1
  580. P0.2    .equ    082H    ;Port 0 bit 2
  581. P0.3    .equ    083H    ;Port 0 bit 3
  582. P0.4    .equ    080H    ;Port 0 bit 4
  583. P0.5    .equ    081H    ;Port 0 bit 5
  584. P0.6    .equ    082H    ;Port 0 bit 6
  585. P0.7    .equ    083H    ;Port 0 bit 7
  586. ACC.0   .equ    0E0H    ;Acc bit 0
  587. ACC.1   .equ    0E1H    ;Acc bit 1
  588. ACC.2   .equ    0E2H    ;Acc bit 2
  589. ACC.3   .equ    0E3H    ;Acc bit 3
  590. ACC.4   .equ    0E4H    ;Acc bit 4
  591. ACC.5   .equ    0E5H    ;Acc bit 5
  592. ACC.6   .equ    0E6H    ;Acc bit 6
  593. ACC.7   .equ    0E7H    ;Acc bit 7
  594.  
  595. See  the   manufacturer's   data  sheets   for   more   information.
  596. TASM TABLES  Version 2.8                                     Page 12
  597.  
  598. 8085 INSTRUCTIONS AND ADDRESSING MODES
  599.  
  600. The following list shows the acceptable opcode mnemonics  and  their
  601. corresponding  operand  formats for the 8085  version of TASM.   The
  602. following symbols are used in the table:
  603.  
  604.         SYMBOLIC            DESCRIPTION
  605.         -----------------------------------------------
  606.         <addr>              Absolute address (16 bits)
  607.         <data>              Immediate data (8 bits)
  608.         <data16>            Immediate data (16 bits)
  609.         <reg>               Register (A,B,C,D,E,H,L)
  610.         <rp>                Register pair (B,D,H,SP)
  611.         <port>              Port address (0-255)
  612.         <int>               Interrupt level (0 - 7)
  613.  
  614. Any valid TASM expression can appear in the  place  of  any  of  the
  615. above symbolics except <reg>, <rp> and <int>.
  616.  
  617. OPCODE  OPERAND        DESCRIPTION
  618. --------------------------------------------------------------------
  619. ACI      <data>         Add immediate to A with carry
  620. ADC      <reg>          Add <reg> to A with carry
  621. ADC      M              Add indirect memory (HL) with carry
  622. ADD      <reg>          Add <reg> to A
  623. ADD      M              Add indirect memory (HL) to A
  624. ADI      <data>         Add immediate to A
  625.  
  626. ANA      <reg>          And register with A
  627. ANA      M              And indirect memory (HL) to A
  628. ANI      <data>         And immediate to A
  629.  
  630. CALL     <addr>         Call subroutine at <addr>
  631. CC       <addr>         Call subroutine if carry set
  632. CNC      <addr>         Call subroutine if carry clear
  633. CZ       <addr>         Call subroutine if zero
  634. CNZ      <addr>         Call subroutine if non zero
  635. CP       <addr>         Call subroutine if positive
  636. CM       <addr>         Call subroutine if negative
  637. CPE      <addr>         Call subroutine if even parity
  638. CPO      <addr>         Call subroutine if odd  parity
  639. CMA                     Complement A
  640. CMC                     Complemennt carry
  641. CMP      <reg>          Compare register with A
  642. CMP      M              Compare indirect memory (HL) with A
  643. CPI      <data>         Compare immediate data with A
  644.  
  645. DAA                     Decimal adjust A
  646. DAD      <rp>           Add register pair to HL
  647. DCR      <reg>          Decrement register
  648. DCR      M              Decrement indirect memory (HL)
  649. DCX      <rp>           Decrement register pair
  650.  
  651. DI                      Disable interrupts
  652. EI                      Enable interrupts
  653. HLT                     Halt
  654. TASM TABLES  Version 2.8                                     Page 13
  655.  
  656. IN       <port>         Input on port
  657. INR      <reg>          Increment register
  658. INR      M              Increment indirect memory (HL)
  659. INX      <rp>           Increment register pair
  660.  
  661. JMP      <addr>         Jump
  662. JC       <addr>         Jump if carry set
  663. JNC      <addr>         Jump if carry clear
  664. JZ       <addr>         Jump if zero
  665. JNZ      <addr>         Jump if not zero
  666. JM       <addr>         Jump if minus
  667. JP       <addr>         Jump if plus
  668. JPE      <addr>         Jump if parity even
  669. JPO      <addr>         Jump if parity odd
  670.  
  671. LDA      <addr>         Load A direct from memory
  672. LDAX     B              Load A indirect from memory using BC
  673. LDAX     D              Load A indirect from memory using DE
  674. LHLD     <addr>         Load HL direct from memory
  675. LXI      <rp>,<data16>  Load register pair with immediate data
  676.  
  677. MOV      <reg>,<reg>    Move register to register
  678. MOV      <reg>,M        Move indirect memory (HL) to register
  679. MVI      <reg>,<data>   Move immediate data to register
  680.  
  681. NOP                     No operation
  682.  
  683. ORA      <reg>          Or register with A
  684. ORA      M              Or indirect memory (HL) with A
  685. ORI      <data>         Or immediate data to A
  686. OUT      <port>         Ouput to port
  687.  
  688. PCHL                    Jump to instruction at (HL)
  689. POP      <rp>           Pop  register pair (excluding SP) from stack
  690. PUSH     <rp>           Push register pair (excluding SP) onto stack
  691. POP      PSW            Pop  PSW from stack
  692. PUSH     PSW            Pop  PSW onto stack
  693.  
  694. RAL                     Rotate A left  with carry
  695. RAR                     Rotate A right with carry
  696. RLC                     Rotate A left  with branch carry
  697. RRC                     Rotate A right with branch carry
  698.  
  699. RET                     Return from subroutine
  700. RZ                      Return if zero
  701. RNZ                     Return if non zero
  702. RC                      Return if carry set
  703. RNC                     Return if carry clear
  704. RM                      Return if minus
  705. RP                      Return if plus
  706. RPE                     Return if parity even
  707. RPO                     Return if parity odd
  708.  
  709. RIM                     Read interrupt mask
  710. RST      <int>          Restart at vector <int>
  711.  
  712. TASM TABLES  Version 2.8                                     Page 14
  713.  
  714. SBB      <reg>          Subtract <reg> from A         with borrow
  715. SBB      M              Subtract indirect memory (HL) with borrow
  716. SBI      <data>         Subtract immediate from A     with borrow
  717. SUB      <reg>          Subtract <reg> from A
  718. SUB      M              Subtract indirect memory (HL) from A
  719. SUI      <data>         Subtract immediate from A
  720.  
  721. SHLD     <addr>         Store HL
  722. SIM                     Store Interrupt mask
  723. SPHL                    Exchange SP with HL
  724.  
  725. STA      <addr>         Store A direct memory
  726. STAX     B              Store A indirect using BC
  727. STAX     D              Store A indirect using DE
  728.  
  729. STC                     Set carry
  730.  
  731. XRA      <reg>          Exclusive OR A with register
  732. XRA      M              Exclusive Or A with indirect memory (HL)
  733. XRI      <data>         Exclusive Or A with immediate data
  734. XCHG                    Exchange DE with HL
  735. XTHL                    Exchange HL with top of stack
  736.  
  737. See  the   manufacturer's   data  sheets   for   more   information.
  738. TASM TABLES  Version 2.8                                     Page 15
  739.  
  740. Z80 INSTRUCTIONS AND ADDRESSING MODES
  741.  
  742. The following list shows the acceptable opcode mnemonics  and  their
  743. corresponding   operand  formats for the Z80  version of TASM.   The
  744. following symbols are used in the table:
  745.         SYMBOLIC            DESCRIPTION
  746.         -----------------------------------------------
  747.         <addr>              Absolute address (16 bits)
  748.         <bit>               Bit address
  749.         <data>              Immediate data (8 bits)
  750.         <data16>            Immediate data (16 bits)
  751.         <disp>              Relative address
  752.         <reg>               Register (A, B, C, D, E, H, or L)
  753.         <rp>                Register pair (BC, DE, HL, or SP)
  754.         <port>              Port (0 - 255)
  755.         <cond>              Condition
  756.                                 NZ - not zero
  757.                                 Z  - zero
  758.                                 NC - not carry
  759.                                 C  - carry
  760.                                 PO - parity odd
  761.                                 PE - parity even
  762.                                 P  - positive
  763.                                 M  - minus
  764.  
  765. Any valid TASM expression can appear in the  place  of the   <addr>,
  766. <bit>, <data>, <data16>, or <disp> symbolics.
  767.  
  768. OPCODE  OPERAND         DESCRIPTION
  769. --------------------------------------------------------------------
  770. ADC  A,<data>           Add immediate with carry to accumulator
  771. ADC  A,<reg>            Add register with carry to accumulator
  772. ADC  A,(HL)             Add indirect memory with carry to accumulator
  773. ADC  A,(IX+<disp>)      Add indirect memory with carry to accumulator
  774. ADC  A,(IY+<disp>)      Add indirect memory with carry to accumulator
  775. ADC  HL,<rp>            Add register pair with carry to HL
  776.  
  777. ADD  A,<data>           Add immediate to accumulator
  778. ADD  A,<reg>            Add register to accumulator
  779. ADD  A,(HL)             Add indirect memory to accumulator
  780. ADD  A,(IX+<disp>)      Add indirect memory to accumulator
  781. ADD  A,(IY+<disp>)      Add indirect memory to accumulator
  782. ADD  HL,<rp>            Add register pair to HL
  783. ADD  IX,<rp>            Add register pair to index register
  784. ADD  IY,<rp>            Add register pair to index register
  785.  
  786. AND  <data>             And immediate with accumulator
  787. AND  <reg>              And register  with accumulator
  788. AND  (HL)               And memory with accumulator
  789. AND  (IX+<disp>)        And memory with accumulator
  790. AND  (IY+<disp>)        And memory with accumulator
  791.  
  792. BIT  <bit>,<reg>        Test <bit> in register
  793. BIT  <bit>,(HL)         Test <bit> in indirect memory
  794. BIT  <bit>,(IY+<disp>)  Test <bit> in indirect memory
  795. BIT  <bit>,(IX+<disp>)  Test <bit> in indirect memory
  796. TASM TABLES  Version 2.8                                     Page 16
  797.  
  798. CALL <addr>             Call the routine at <addr>
  799. CALL <cond>,<addr>      Call the routine if <cond> is satisfied
  800.  
  801. CCF                     Complement carry flag
  802.  
  803. CP   <data>             Compare immediate data with accumulator
  804. CP   <reg>              Compare register with accumulator
  805. CP   (HL)               Compare indirect memory with accumulator
  806. CP   (IX+<disp>)        Compare indirect memory with accumulator
  807. CP   (IY+<disp>)        Compare indirect memory with accumulator
  808. CPD                     Compare accumulator with memory and
  809.                             decrement address and byte counters
  810. CPDR                    Compare accumulator with memory and
  811.                             decrement address and byte counter,
  812.                             continue until match is found or
  813.                             byte counter is zero
  814.  
  815. CPI                     Compare accumulator with memory and
  816.                             increment address and byte counters
  817. CPIR                    Compare accumulator with memory and
  818.                             increment address and byte counter,
  819.                             continue until match is found or
  820.                             byte counter is zero
  821. CPL                     Complement the accumulator
  822. DAA                     Decimal adjust accumulator
  823. DEC  <reg>              Decrement register contents
  824. DI                      Disable interrupts
  825. DJNZ <disp>             Decrement reg B and jump relative if zero
  826. EI                      Enable interrupts
  827. EX   AF,AF'             Exchange program status and alt program stat
  828. EX   DE,HL              Exchange DE and HL contents
  829. EX   (SP),HL            Exchange contents of HL and top of stack
  830. EX   (SP),IX            Exchange contents of IX and top of stack
  831. EX   (SP),IY            Exchange contents of IY and top of stack
  832. EXX                     Exchange register pairs and alt reg pairs
  833. HALT                    Program execution stops
  834. IM   0                  Interrupt mode 0
  835. IM   1                  Interrupt mode 1
  836. IM   2                  Interrupt mode 2
  837. IN   A,<port>           Input port to accumulator
  838. INC  <reg>              Increment contents of register
  839. INC  <rp>               Increment contents of register pair
  840. INC  IX                 Increment IX
  841. INC  IY                 Increment IY
  842. INC  (HL)               Increment indirect memory
  843. INC  (IX+<disp>)        Increment indirect memory
  844. INC  (IY+<disp>)        Increment indirect memory
  845. IND                     Input to memory and decrement pointer
  846. INDR                    Input to memory and decrement pointer until
  847.                             byte counter is zero
  848. INI                     Input to memory and increment pointer
  849. INIR                    Input to memory and increment pointer until
  850.                             byte counter is zero
  851. IN   <reg>,(C)          Input to register
  852.  
  853. JP   <addr>             Jump to location
  854. TASM TABLES  Version 2.8                                     Page 17
  855.  
  856. JP   <cond>,<addr>      Jump to location if condition satisifed
  857. JP   (HL)               Jump to location pointed to by HL
  858. JP   (IX)               Jump to location pointed to by IX
  859. JP   (IY)               Jump to location pointed to by IY
  860.  
  861. JR   <disp>             Jump relative
  862. JR   C,<disp>           Jump relative if carry is set
  863. JR   NC,<disp>          Jump relative if carry bit is reset
  864. JR   NZ,<disp>          Jump relative if zero flag is reset
  865. JR   Z,<disp>           Jump relative if zero flag is set
  866.  
  867. LD   A,I                Move interrupt vector contents to accumulator
  868. LD   A,R                Move refresh reg contents to accumulator
  869. LD   A,(<addr>)         Load accumulator indirect from memory
  870. LD   A,(<rp>)           Load accumulator indirect from memory by <rp>
  871. LD   <reg>,<reg>        Load source register to destination register
  872. LD   <rp>,(<addr>)      Load register pair indirect from memory
  873. LD   IX,(<addr>)        Load IX indirect from memory
  874. LD   IY,(<addr>)        Load IY indirect from memory
  875. LD   I,A                Load interrup vector from accumulator
  876. LD   R,A                Load refresh register from accumulator
  877. LD   <reg>,<data>       Load register with immediate data
  878. LD   <rp>,<data16>      Load register pair with immediate data
  879. LD   IX,<data16>        Load  IX  with immediate data
  880. LD   IY,<data16>        Load  IY  with immediate data
  881. LD   <reg>,(HL)         Load register indirect from memory
  882. LD   <reg>,(IX+<disp>)  Load register indirect from memory
  883. LD   <reg>,(IY+<disp>)  Load register indirect from memory
  884. LD   SP,HL              Load contents of HL to stack pointer
  885. LD   SP,IX              Load contents of IX to stack pointer
  886. LD   SP,IY              Load contents of IY to stack pointer
  887. LD   (addr),A           Load contents of A to memory
  888. LD   (<addr>),HL        Load contents of HL to memory
  889. LD   (<addr>),<rp>      Load contents of register pair to memory
  890. LD   (<addr>),IX        Load contents of IX to memory
  891. LD   (<addr>),IY        Load contents of IY to memory
  892. LD   (HL),<data>        Load immediate into indirect memory
  893. LD   (IX+<disp>),<data> Load immediate into indirect memory
  894. LD   (IY+<disp>),<data> Load immediate into indirect memory
  895. LD   (HL),<reg>         Load register  into indirect memory
  896. LD   (IX+<disp>),<reg>  Load register  into indirect memory
  897. LD   (IY+<disp>),<reg>  Load register  into indirect memory
  898. LD   (<rp>),A           Load accumulator into indirect memory
  899. LDD                     Transfer data between memory and decrement
  900.                             destination and source addresses
  901. LDDR                    Transfer data between memory until byte
  902.                             counter is zero, decrement destintation
  903.                             and source addresses
  904. LDI                     Transfer data between memory and increment
  905.                             destination and source addresses
  906. LDIR                    Transfer data between memory until byte
  907.                             counter is zero, increment destination
  908.                             and source addresses
  909. NEG                     Negate contents of accumulator
  910. NOP                     No operation
  911. OR   <data>             Or immediate with accumulator
  912. TASM TABLES  Version 2.8                                     Page 18
  913.  
  914. OR   <reg>              Or register with accumulator
  915. OR   (HL)               Or indirect memory with accumulator
  916. OR   (IX+<disp>)        Or indirect memory with accumulator
  917. OR   (IY+<disp>)        Or indirect memory with accumulator
  918. OUT  (C),<reg>          Output from registor
  919. OUTD                    Output from memory, decrement address
  920. OTDR                    Output from memory, decrement address
  921.                             continue until reg B is zero
  922. OUTI                    Output from memory, increment address
  923. OTIR                    Output from memory, increment address
  924.                             continue until reg B is zero
  925. OUT  <port>,A           Output from accumulator
  926. POP  <rp>               Load register pair from top of stack
  927. POP  IX                 Load IX from top of stack
  928. POP  IY                 Load IY from top of stack
  929. PUSH <rp>               Store resister pair on top of stack
  930. PUSH IX                 Store IX on top of stack
  931. PUSH IY                 Store IY on top of stack
  932. RES  <bit>,<reg>        Reset register bit
  933. RES  <bit>,(HL)         Reset bit at indirect memory location
  934. RES  <bit>,(IX+disp)    Reset bit at indirect memory location
  935. RES  <bit>,(IY+<disp>)  Reset bit at indirect memory location
  936. RET                     Return from subroutine
  937. RET  <cond>             Return from subroutine if condition true
  938. RETI                    Return from interrupt
  939. RETN                    Return from non-maskable interrupt
  940. RL   <reg>              Rotate left through carry register contents
  941. RL   (HL)               Rotate left through carry indirect memory
  942. RL   (IX+<disp>)        Rotate left through carry indirect memory
  943. RL   (IY+<disp>)        Rotate left through carry indirect memory
  944. RLA                     Rotate left through carry accumulator
  945. RLC  <reg>              Rotate left branch  carry register contents
  946. RLC  (HL)               Rotate left branch  carry indirect memory
  947. RLC  (IX+<disp>)        Rotate left branch  carry indirect memory
  948. RLC  (IY+<disp>)        Rotate left branch  carry indirect memory
  949. RLCA                    Rotate left accumulator
  950. RLD                     Rotate one BCD digit left between the
  951.                             accumulator and memory
  952. RR   <reg>              Rotate right through carry register contents
  953. RR   (HL)               Rotate right through carry indirect memory
  954. RR   (IX+<disp>)        Rotate right through carry indirect memory
  955. RR   (IY+<disp>)        Rotate right through carry indirect memory
  956. RRA                     Rotate right through carry accumulator
  957. RRC  <reg>              Rotate right branch  carry register contents
  958. RRC  (HL)               Rotate right branch  carry indirect memory
  959. RRC  (IX+<disp>)        Rotate right branch  carry indirect memory
  960. RRC  (IY+<disp>)        Rotate right branch  carry indirect memory
  961. RRCA                    Rotate right branch  carry accumulator
  962. RRD                     Rotate one BCD digit right between the
  963.                             accumulator and memory
  964. RST                     Restart
  965. SBC  A,<data>           Subtract data            from A with borrow
  966. SBC  A,<reg>            Subtract register        from A with borrow
  967. SBC  A,(HL)             Subtract indirect memory from A with borrow
  968. SBC  A,(IX+<disp>)      Subtract indirect memory from A with borrow
  969. SBC  A,(IY+<disp>)      Subtract indirect memory from A with borrow
  970. TASM TABLES  Version 2.8                                     Page 19
  971.  
  972. SBC  HL,<rp>            Subtract register pair from HL with borrow
  973. SCF                     Set carry flag
  974. SET  <bit>,<reg>        Set register bit
  975. SET  <bit>,(HL)         Set indirect memory bit
  976. SET  <bit>,(IX+<disp>)  Set indirect memory bit
  977. SET  <bit>,(IY+<disp>)  Set indirect memory bit
  978. SLA  <reg>              Shift register left arithmetic
  979. SLA  (HL)               Shift indirect memory left arithmetic
  980. SLA  (IX+<disp>)        Shift indirect memory left arithmetic
  981. SLA  (IY+<disp>)        Shift indirect memory left arithmetic
  982. SRA  <reg>              Shift register right arithmetic
  983. SRA  (HL)               Shift indirect memory right arithmetic
  984. SRA  (IX+<disp>)        Shift indirect memory right arithmetic
  985. SRA  (IY+<disp>)        Shift indirect memory right arithmetic
  986. SRL  <reg>              Shift register right logical
  987. SRL  (HL)               Shift indirect memory right logical
  988. SRL  (IX+<disp>)        Shift indirect memory right logical
  989. SRL  (IY+<disp>)        Shift indirect memory right logical
  990. SUB  <data>             Subtract immediate from accumulator
  991. SUB  <reg>              Subtract register from accumulator
  992. SUB  (HL)               Subtract indirect memory from accumulator
  993. SUB  (IX+<disp>)        Subtract indirect memory from accumulator
  994. SUB  (IY+<disp>)        Subtract indirect memory from accumulator
  995. XOR  <data>             Exclusive or immediate with accumulator
  996. XOR  <reg>              Exclusive or register with accumulator
  997. XOR  (HL)               Exclusive or indirect memory with accumulator
  998. XOR  (IX+<disp>)        Exclusive or indirect memory with accumulator
  999. XOR  (IY+<disp>)        Exclusive or indirect memory with accumulator
  1000.  
  1001. See  the   manufacturer's   data  sheets   for   more   information.
  1002. TASM TABLES  Version 2.8                                     Page 20
  1003.  
  1004. 6805 INSTRUCTIONS AND ADDRESSING MODES
  1005.  
  1006. The following list shows the acceptable opcode mnemonics  and  their
  1007. corresponding  operand  formats for the 6805  version of TASM.   The
  1008. following symbols are used in the table:
  1009.  
  1010.         SYMBOLIC            DESCRIPTION
  1011.         -----------------------------------------------
  1012.         <addr>              Absolute address (16 bits)
  1013.         <addr8>             Absolute address (8 bits)
  1014.         <bit>               Bit address
  1015.         <data>              Immediate data (8 bits)
  1016.         <rel>               Relative address
  1017.  
  1018. Any valid TASM expression can appear in the  place  of the   <addr>,
  1019. <addr8>, <bit>, <data>, or <rel> symbolics.
  1020.  
  1021. OPCODE  OPERAND         DESCRIPTION
  1022. --------------------------------------------------------------
  1023. ADC     #<data>         Add with carry, immediate
  1024. ADC     ,X              Add with carry, indexed, no offset
  1025. ADC     <addr8>,X       Add with carry, indexed, 1 byte offset
  1026. ADC     <addr>,X        Add with carry, indexed, 2 byte offset
  1027. ADC     <addr8>         Add with carry, direct
  1028. ADC     <addr>          Add with carry, extended
  1029.  
  1030. ADD     #<data>         Add, immediate
  1031. ADD     ,X              Add, indexed, no offset
  1032. ADD     <addr8>,X       Add, indexed, 1 byte offset
  1033. ADD     <addr>,X        Add, indexed, 2 byte offset
  1034. ADD     <addr8>         Add, direct
  1035. ADD     <addr>          Add, extended
  1036.  
  1037. AND     #<data>         And, immediate
  1038. AND     ,X              And, indexed, no offset
  1039. AND     <addr8>,X       And, indexed, 1 byte offset
  1040. AND     <addr>,X        And, indexed, 2 byte offset
  1041. AND     <addr8>         And, direct
  1042. AND     <addr>          And, extended
  1043.  
  1044. ASLA                    Arithmetic Shift Left, accumulator
  1045. ASLX                    Arithmetic Shift Left, index register
  1046. ASL     <addr8>         Arithmetic Shift Left, direct
  1047. ASL     ,X              Arithmetic Shift Left, indexed, no offset
  1048. ASL     <addr8>,X       Arithmetic Shift Left, indexed, 1 byte offset
  1049.  
  1050. ASRA                    Arithmetic Shift Right, accumulator
  1051. ASRX                    Arithmetic Shift Right, index register
  1052. ASR     <addr8>         Arithmetic Shift Right, direct
  1053. ASR     ,X              Arithmetic Shift Right, indexed, no offset
  1054. ASR     <addr8>,X       Arithmetic Shift Right, indexed, 1 byte offset
  1055.  
  1056. BCC     <rel>           Branch if carry clear
  1057. BCLR    <bit>,<addr8>   Bit Clear in memory
  1058. BCS     <rel>           Branch if carry set
  1059. BEQ     <rel>           Branch if equal
  1060. TASM TABLES  Version 2.8                                     Page 21
  1061.  
  1062. BHCC    <rel>           Branch if half carry clear
  1063. BHCS    <rel>           Branch if half carry set
  1064. BHI     <rel.           Branch if higher
  1065. BHS     <rel>           Branch if higher or same
  1066. BIH     <rel>           Branch if interrupt line is high
  1067. BIL     <rel>           Branch if interrupt is low
  1068.  
  1069. BIT     #<data>         Bit test, immediate
  1070. BIT     ,X              Bit test, indexed, no offset
  1071. BIT     <addr8>,X       Bit test, indexed, 1 byte offset
  1072. BIT     <addr>,X        Bit test, indexed, 2 byte offset
  1073. BIT     <addr8>         Bit test, direct
  1074. BIT     <addr>          Bit test, extended
  1075.  
  1076. BLO     <rel>           Branch if lower
  1077. BLS     <rel>           Branch if lower or same
  1078. BMC     <rel>           Branch if interrupt mask is clear
  1079. BMI     <rel>           Branch if minus
  1080. BMS     <rel>           Branch if interuupt mask bit is set
  1081. BNE     <rel>           Branch if not equal
  1082. BPL     <rel>           Branch if plus
  1083. BRA     <rel>           Branch always
  1084. BRCLR   <bit>,<addr8>,<rel>     Branch if bit is clear
  1085. BRN     <rel>           Branch never
  1086. BRSET   <bit>,<addr8>,<rel>     Branch if bit is set
  1087. BSET    <bit>,<addr8>   Bit set in memory
  1088. BSR     <rel>           Branch to subroutine
  1089.  
  1090. CLC                     Clear carry bit
  1091. CLI                     Clear interuupt mask bit
  1092.  
  1093. CLRA                    Clear, accumulator
  1094. CLRX                    Clear, index register
  1095. CLR     <addr8>         Clear, direct
  1096. CLR     ,X              Clear, indexed, no offset
  1097. CLR     <addr8>,X       Clear, indexed, 1 byte offset
  1098.  
  1099. CMP     #<data>         Compare Acc, immediate
  1100. CMP     ,X              Compare Acc, indexed, no offset
  1101. CMP     <addr8>,X       Compare Acc, indexed, 1 byte offset
  1102. CMP     <addr>,X        Compare Acc, indexed, 2 byte offset
  1103. CMP     <addr8>         Compare Acc, direct
  1104. CMP     <addr>          Compare Acc, extended
  1105.  
  1106. COMA                    Complement, accumulator
  1107. COMX                    Complement, index register
  1108. COM     <addr8>         Complement, direct
  1109. COM     ,X              Complement, indexed, no offset
  1110. COM     <addr8>,X       Complement, indexed, 1 byte offset
  1111.  
  1112. CPX     #<data>         Compare Index, immediate
  1113. CPX     ,X              Compare Index, indexed, no offset
  1114. CPX     <addr8>,X       Compare Index, indexed, 1 byte offset
  1115. CPX     <addr>,X        Compare Index, indexed, 2 byte offset
  1116. CPX     <addr8>         Compare Index, direct
  1117. CPX     <addr>          Compare Index, extended
  1118. TASM TABLES  Version 2.8                                     Page 22
  1119.  
  1120. DECA                    Decrement, accumulator
  1121. DECX                    Decrement, index register
  1122. DEX                     Decrement, index register (alternate of DECX)
  1123. DEC     <addr8>         Decrement, direct
  1124. DEC     ,X              Decrement, indexed, no offset
  1125. DEC     <addr8>,X       Decrement, indexed, 1 byte offset
  1126.  
  1127. EOR     #<data>         Exclusive OR, immediate
  1128. EOR     ,X              Exclusive OR, indexed, no offset
  1129. EOR     <addr8>,X       Exclusive OR, indexed, 1 byte offset
  1130. EOR     <addr>,X        Exclusive OR, indexed, 2 byte offset
  1131. EOR     <addr8>         Exclusive OR, direct
  1132. EOR     <addr>          Exclusive OR, extended
  1133.  
  1134. INCA                    Increment, accumulator
  1135. INCX                    Increment, index register
  1136. INX                     Increment, index register (alternate of INCX)
  1137. INC     <addr8>         Increment, direct
  1138. INC     ,X              Increment, indexed, no offset
  1139. INC     <addr8>,X       Increment, indexed, 1 byte offset
  1140.  
  1141. JMP     ,X              Jump, indexed, no offset
  1142. JMP     <addr8>,X       Jump, indexed, 1 byte offset
  1143. JMP     <addr>,X        Jump, indexed, 2 byte offset
  1144. JMP     <addr8>         Jump, direct
  1145. JMP     <addr>          Jump, extended
  1146.  
  1147. JSR     ,X              Jump Subroutine, indexed, no offset
  1148. JSR     <addr8>,X       Jump Subroutine, indexed, 1 byte offset
  1149. JSR     <addr>,X        Jump Subroutine, indexed, 2 byte offset
  1150. JSR     <addr8>         Jump Subroutine, direct
  1151. JSR     <addr>          Jump Subroutine, extended
  1152.  
  1153. LDA     #<data>         Load Acc, immediate
  1154. LDA     ,X              Load Acc, indexed, no offset
  1155. LDA     <addr8>,X       Load Acc, indexed, 1 byte offset
  1156. LDA     <addr>,X        Load Acc, indexed, 2 byte offset
  1157. LDA     <addr8>         Load Acc, direct
  1158. LDA     <addr>          Load Acc, extended
  1159.  
  1160. LDX     #<data>         Load Index, immediate
  1161. LDX     ,X              Load Index, indexed, no offset
  1162. LDX     <addr8>,X       Load Index, indexed, 1 byte offset
  1163. LDX     <addr>,X        Load Index, indexed, 2 byte offset
  1164. LDX     <addr8>         Load Index, direct
  1165. LDX     <addr>          Load Index, extended
  1166.  
  1167. LSLA                    Logical Shift Left, accumulator
  1168. LSLX                    Logical Shift Left, index register
  1169. LSL     <addr8>         Logical Shift Left, direct
  1170. LSL     ,X              Logical Shift Left, indexed, no offset
  1171. LSL     <addr8>,X       Logical Shift Left, indexed, 1 byte offset
  1172.  
  1173. LSRA                    Logical Shift Right, accumulator
  1174. LSRX                    Logical Shift Right, index register
  1175. LSR     <addr8>         Logical Shift Right, direct
  1176. TASM TABLES  Version 2.8                                     Page 23
  1177.  
  1178. LSR     ,X              Logical Shift Right, indexed, no offset
  1179. LSR     <addr8>,X       Logical Shift Right, indexed, 1 byte offset
  1180.  
  1181. NEGA                    Negate, accumulator
  1182. NEGX                    Negate, index register
  1183. NEG     <addr8>         Negate, direct
  1184. NEG     ,X              Negate, indexed, no offset
  1185. NEG     <addr8>,X       Negate, indexed, 1 byte offset
  1186.  
  1187. NOP                     No Operation
  1188.  
  1189. ORA     #<data>         Inclusive OR Acc, immediate
  1190. ORA     ,X              Inclusive OR Acc, indexed, no offset
  1191. ORA     <addr8>,X       Inclusive OR Acc, indexed, 1 byte offset
  1192. ORA     <addr>,X        Inclusive OR Acc, indexed, 2 byte offset
  1193. ORA     <addr8>         Inclusive OR Acc, direct
  1194. ORA     <addr>          Inclusive OR Acc, extended
  1195.  
  1196. ROLA                    Rotate Left thru Carry, accumulator
  1197. ROLX                    Rotate Left thru Carry, index register
  1198. ROL     <addr8>         Rotate Left thru Carry, direct
  1199. ROL     ,X              Rotate Left thru Carry, indexed, no offset
  1200. ROL     <addr8>,X       Rotate Left thru Carry, indexed, 1 byte offset
  1201.  
  1202. RORA                    Rotate Right thru Carry, accumulator
  1203. RORX                    Rotate Right thru Carry, index register
  1204. ROR     <addr8>         Rotate Right thru Carry, direct
  1205. ROR     ,X              Rotate Right thru Carry, indexed, no offset
  1206. ROR     <addr8>,X       Rotate Right thru Carry, indexed, 1 byte offset
  1207.  
  1208. RSP                     Reset Stack Pointer
  1209. RTI                     Return from Interrupt
  1210. RTS                     Return from Subroutine
  1211.  
  1212. SBC     #<data>         Subtract with Carry, immediate
  1213. SBC     ,X              Subtract with Carry, indexed, no offset
  1214. SBC     <addr8>,X       Subtract with Carry, indexed, 1 byte offset
  1215. SBC     <addr>,X        Subtract with Carry, indexed, 2 byte offset
  1216. SBC     <addr8>         Subtract with Carry, direct
  1217. SBC     <addr>          Subtract with Carry, extended
  1218.  
  1219. SEC                     Set carry bit
  1220. SEI                     Set interrupt Mask bit
  1221.  
  1222. STA     #<data>         Store Acc, immediate
  1223. STA     ,X              Store Acc, indexed, no offset
  1224. STA     <addr8>,X       Store Acc, indexed, 1 byte offset
  1225. STA     <addr>,X        Store Acc, indexed, 2 byte offset
  1226. STA     <addr8>         Store Acc, direct
  1227. STA     <addr>          Store Acc, extended
  1228.  
  1229. STOP                    Enable IRQ, Stop Oscillator
  1230.  
  1231. STX     #<data>         Store Index, immediate
  1232. STX     ,X              Store Index, indexed, no offset
  1233. STX     <addr8>,X       Store Index, indexed, 1 byte offset
  1234. TASM TABLES  Version 2.8                                     Page 24
  1235.  
  1236. STX     <addr>,X        Store Index, indexed, 2 byte offset
  1237. STX     <addr8>         Store Index, direct
  1238. STX     <addr>          Store Index, extended
  1239.  
  1240. SUB     #<data>         Subtract, immediate
  1241. SUB     ,X              Subtract, indexed, no offset
  1242. SUB     <addr8>,X       Subtract, indexed, 1 byte offset
  1243. SUB     <addr>,X        Subtract, indexed, 2 byte offset
  1244. SUB     <addr8>         Subtract, direct
  1245. SUB     <addr>          Subtract, extended
  1246.  
  1247. SWI                     Software Interrupt
  1248.  
  1249. TAX                     Transfer Acc to Index
  1250.  
  1251. TSTA                    Test for neg or zero, accumulator
  1252. TSTX                    Test for neg or zero, index register
  1253. TST     <addr8>         Test for neg or zero, direct
  1254. TST     ,X              Test for neg or zero, indexed, no offset
  1255. TST     <addr8>,X       Test for neg or zero, indexed, 1 byte offset
  1256.  
  1257. TXA                     Transfer Index to Acc
  1258.  
  1259. WAIT                    Enable Interrupt, Stop Processor
  1260.  
  1261. See  the   manufacturer's   data  sheets   for   more   information.
  1262. TASM TABLES  Version 2.8                                     Page 25
  1263.  
  1264. TMS32010 INSTRUCTIONS AND ADDRESSING MODES
  1265.  
  1266. The following list shows the acceptable opcode mnemonics  and  their
  1267. corresponding   operand  formats for the TMS32010   version of TASM.
  1268. The following symbols are used in the table:
  1269.  
  1270.         SYMBOLIC            DESCRIPTION
  1271.         -----------------------------------------------
  1272.         <ar>                Auxiliary register (AR0, AR1)
  1273.         <arp>               Auxiliary register pointer
  1274.         <dma>               Direct memory address
  1275.         <pma>               Program memory address
  1276.         <port>              Port address (0 - 7)
  1277.         <shift>             Shift count  (0 - 15)
  1278.         <const1>            Constant (1 bit)
  1279.         <const8>            Constant (8 bit)
  1280.         <const13>           Constant (13 bit)
  1281.  
  1282. Any valid TASM expression can appear in the  place  of  any  of  the
  1283. above symbolics.
  1284.  
  1285. OPCODE   OPERAND            DESCRIPTION
  1286. --------------------------------------------------------------------
  1287. ABS                         Absolute value of ACC
  1288.  
  1289. ADD      *+,<shift>,<arp>   Add to ACC with shift
  1290. ADD      *-,<shift>,<arp>
  1291. ADD      *, <shift>,<arp>
  1292. ADD      *+,<shift>
  1293. ADD      *-,<shift>
  1294. ADD      *, <shift>
  1295. ADD      *+
  1296. ADD      *-
  1297. ADD      *
  1298. ADD      <dma>,<shift>
  1299. ADD      <dma>
  1300.  
  1301. ADDH     *+,<arp>           Add to high-order ACC bits
  1302. ADDH     *-,<arp>
  1303. ADDH     *, <arp>
  1304. ADDH     *+
  1305. ADDH     *-
  1306. ADDH     *
  1307. ADDH     <dma>
  1308.  
  1309. ADDS     *+,<arp>           Add to ACC with no sign extension
  1310. ADDS     *-,<arp>
  1311. ADDS     *, <arp>
  1312. ADDS     *+
  1313. ADDS     *-
  1314. ADDS     *
  1315. ADDS     <dma>
  1316.  
  1317. AND      *+,<arp>           AND with ACC
  1318. AND      *-,<arp>
  1319. AND      *, <arp>
  1320. TASM TABLES  Version 2.8                                     Page 26
  1321.  
  1322. AND      *+
  1323. AND      *-
  1324. AND      *
  1325. AND      <dma>
  1326.  
  1327. APAC                        Add P register to ACC
  1328.  
  1329. B        <pma>              Branch unconditionally
  1330. BANZ     <pma>              Branch on auxiliary register not zero
  1331. BGEZ     <pma>              Branch if ACC >= 0
  1332. BGZ      <pma>              Branch if ACC >  0
  1333. BIOZ     <pma>              Branch on BIO- = 0
  1334. BLEZ     <pma>              Branch if ACC <= 0
  1335. BLZ      <pma>              Branch if ACC <  0
  1336. BNZ      <pma>              Branch if ACC <> 0
  1337. BV       <pma>              Branch on overflow
  1338. BZ       <pma>              Branch if ACC =  0
  1339.  
  1340. CALA                        Call subroutine from ACC
  1341. CALL     <pma>              Call subroutine at <pma>
  1342.  
  1343. DINT                        Disable interrupt
  1344.  
  1345. DMOV     *+,<arp>           Data move in memory
  1346. DMOV     *-,<arp>
  1347. DMOV     *, <arp>
  1348. DMOV     *+
  1349. DMOV     *-
  1350. DMOV     *
  1351. DMOV     <dma>
  1352.  
  1353. EINT                        Enable Interrupt
  1354.  
  1355. IN       *+,<port> ,<arp>   Input data from port
  1356. IN       *-,<port> ,<arp>
  1357. IN       * ,<port> ,<arp>
  1358. IN       *+,<port>
  1359. IN       *-,<port>
  1360. IN       * ,<port>
  1361. IN       <dma>,<port>
  1362.  
  1363. LAC      *+,<shift>,<arp>   Load ACC with shift
  1364. LAC      *-,<shift>,<arp>
  1365. LAC      *, <shift>,<arp>
  1366. LAC      *+,<shift>
  1367. LAC      *-,<shift>
  1368. LAC      *, <shift>
  1369. LAC      *+
  1370. LAC      *-
  1371. LAC      *
  1372. LAC      <dma>,<shift>
  1373. LAC      <dma>
  1374.  
  1375. LACK     <const8>                   Load ACC with 8 bit constant
  1376.  
  1377. LAR      <ar>,*+,<arp>              Load auxiliary Register
  1378. TASM TABLES  Version 2.8                                     Page 27
  1379.  
  1380. LAR      <ar>,*-,<arp>
  1381. LAR      <ar>,*, <arp>
  1382. LAR      <ar>,*+
  1383. LAR      <ar>,*-
  1384. LAR      <ar>,*
  1385. LAR      <ar>,<dma>
  1386.  
  1387. LARK     <ar>,<const8>              Load aux register with constant
  1388. LARP     <const1>                   Load aux register pointer immed
  1389.  
  1390. LDP      *+,<arp>                   Load data memory page pointer
  1391. LDP      *-,<arp>
  1392. LDP      *, <arp>
  1393. LDP      *+
  1394. LDP      *-
  1395. LDP      *
  1396. LDP      <dma>
  1397.  
  1398. LDPK     <const1>                   Load data page pointer immediate
  1399.  
  1400. LST      *+,<arp>                   Load status from data memory
  1401. LST      *-,<arp>
  1402. LST      *, <arp>
  1403. LST      *+
  1404. LST      *-
  1405. LST      *
  1406. LST      <dma>
  1407.  
  1408. LT       *+,<arp>                   Load T register
  1409. LT       *-,<arp>
  1410. LT       *, <arp>
  1411. LT       *+
  1412. LT       *-
  1413. LT       *
  1414. LT       <dma>
  1415.  
  1416. LTA      *+,<arp>                   Load T register and accumulate
  1417. LTA      *-,<arp>                     product
  1418. LTA      *, <arp>
  1419. LTA      *+
  1420. LTA      *-
  1421. LTA      *
  1422. LTA      <dma>
  1423.  
  1424. LTD      *+,<arp>                   Load T reg, accumulate product,
  1425. LTD      *-,<arp>                     and move
  1426. LTD      *, <arp>
  1427. LTD      *+
  1428. LTD      *-
  1429. LTD      *
  1430. LTD      <dma>
  1431.  
  1432. MAR      *+,<arp>                   Modify auxiliary register
  1433. MAR      *-,<arp>
  1434. MAR      *, <arp>
  1435. MAR      *+
  1436. TASM TABLES  Version 2.8                                     Page 28
  1437.  
  1438. MAR      *-
  1439. MAR      *
  1440. MAR      <dma>
  1441.  
  1442. MPY      *+,<arp>                   Multiply
  1443. MPY      *-,<arp>
  1444. MPY      *, <arp>
  1445. MPY      *+
  1446. MPY      *-
  1447. MPY      *
  1448. MPY      <dma>
  1449.  
  1450. MPYK     <const13>                  Multiply immediate
  1451.  
  1452. NOP                                 No Operation
  1453.  
  1454. OR       *+,<arp>                   OR  with low order bits of ACC
  1455. OR       *-,<arp>
  1456. OR       *, <arp>
  1457. OR       *+
  1458. OR       *-
  1459. OR       *
  1460. OR       <dma>
  1461.  
  1462. OUT      *+,<port>,<arp>            Output data to port
  1463. OUT      *-,<port>,<arp>
  1464. OUT      *, <port>,<arp>
  1465. OUT      *+,<port>
  1466. OUT      *-,<port>
  1467. OUT      *, <port>
  1468. OUT      <dma>,<port>
  1469.  
  1470. PAC                                 Load ACC with P register
  1471. POP                                 Pop top of stack to ACC
  1472. PUSH                                Push ACC onto stack
  1473. RET                                 Return from subroutine
  1474. ROVM                                Reset overflow mode register
  1475.  
  1476. SACH     *+,<shift>,<arp>           Store ACC high with shift
  1477. SACH     *-,<shift>,<arp>             Note: shift can only be 0, 1,
  1478. SACH     *, <shift>,<arp>                   or 4
  1479. SACH     *+,<shift>
  1480. SACH     *-,<shift>
  1481. SACH     *, <shift>
  1482. SACH     *+
  1483. SACH     *-
  1484. SACH     *
  1485. SACH     <dma>,<shift>
  1486. SACH     <dma>
  1487.  
  1488. SACL     *+,<arp>                   Store ACC low
  1489. SACL     *-,<arp>
  1490. SACL     *, <arp>
  1491. SACL     *+
  1492. SACL     *-
  1493. SACL     *
  1494. TASM TABLES  Version 2.8                                     Page 29
  1495.  
  1496. SACL     <dma>
  1497.  
  1498. SAR      <ar>,*+,<arp>              Store auxiliary Register
  1499. SAR      <ar>,*-,<arp>
  1500. SAR      <ar>,*, <arp>
  1501. SAR      <ar>,*+
  1502. SAR      <ar>,*-
  1503. SAR      <ar>,*
  1504. SAR      <ar>,<dma>
  1505.  
  1506. SOVM                                Set overflow mode register
  1507. SPAC                                Subtract P register from ACC
  1508.  
  1509. SST      *+,<arp>                   Store status
  1510. SST      *-,<arp>
  1511. SST      *, <arp>
  1512. SST      *+
  1513. SST      *-
  1514. SST      *
  1515. SST      <dma>
  1516.  
  1517. SUB      *+,<shift>,<arp>           Subtract from ACC with shift
  1518. SUB      *-,<shift>,<arp>
  1519. SUB      *, <shift>,<arp>
  1520. SUB      *+,<shift>
  1521. SUB      *-,<shift>
  1522. SUB      *, <shift>
  1523. SUB      *+
  1524. SUB      *-
  1525. SUB      *
  1526. SUB      <dma>,<shift>
  1527. SUB      <dma>
  1528.  
  1529. SUBC     *+,<arp>                   Conditional subtract
  1530. SUBC     *-,<arp>
  1531. SUBC     *, <arp>
  1532. SUBC     *+
  1533. SUBC     *-
  1534. SUBC     *
  1535. SUBC     <dma>
  1536.  
  1537. SUBH     *+,<arp>                   Subtract from high-order ACC
  1538. SUBH     *-,<arp>
  1539. SUBH     *, <arp>
  1540. SUBH     *+
  1541. SUBH     *-
  1542. SUBH     *
  1543. SUBH     <dma>
  1544.  
  1545. SUBS     *+,<arp>                   Subtract from low ACC with
  1546. SUBS     *-,<arp>                     sign-extension suppressed
  1547. SUBS     *, <arp>
  1548. SUBS     *+
  1549. SUBS     *-
  1550. SUBS     *
  1551. SUBS     <dma>
  1552. TASM TABLES  Version 2.8                                     Page 30
  1553.  
  1554. TBLR     *+,<arp>                   Table Read
  1555. TBLR     *-,<arp>
  1556. TBLR     *, <arp>
  1557. TBLR     *+
  1558. TBLR     *-
  1559. TBLR     *
  1560. TBLR     <dma>
  1561.  
  1562. TBLW     *+,<arp>                   Table Write
  1563. TBLW     *-,<arp>
  1564. TBLW     *, <arp>
  1565. TBLW     *+
  1566. TBLW     *-
  1567. TBLW     *
  1568. TBLW     <dma>
  1569.  
  1570. XOR      *+,<arp>                   Exclusive OR with low bits of ACC
  1571. XOR      *-,<arp>
  1572. XOR      *, <arp>
  1573. XOR      *+
  1574. XOR      *-
  1575. XOR      *
  1576. XOR      <dma>
  1577.  
  1578. ZAC                                 Zero the ACC
  1579.  
  1580. ZALH     *+,<arp>                   Zero ACC and load high
  1581. ZALH     *-,<arp>
  1582. ZALH     *, <arp>
  1583. ZALH     *+
  1584. ZALH     *-
  1585. ZALH     *
  1586. ZALH     <dma>
  1587.  
  1588. ZALS     *+,<arp>                   Zero ACC and load low with
  1589. ZALS     *-,<arp>                     sign extension suppressed
  1590. ZALS     *, <arp>
  1591. ZALS     *+
  1592. ZALS     *-
  1593. ZALS     *
  1594. ZALS     <dma>
  1595.  
  1596. See manufacturer's data for more information.
  1597.  
  1598. TASM TABLES  Version 2.8                                     Page 31
  1599.  
  1600. TMS7000 INSTRUCTIONS AND ADDRESSING MODES
  1601.  
  1602. The following list shows the acceptable opcode mnemonics  and  their
  1603. corresponding  operand   formats  for the TMS7000  version of  TASM.
  1604. The following symbolic fields used in the table:
  1605.  
  1606.     SYMBOLIC        DESCRIPTION
  1607.     -------------------------------------------
  1608.     <iop>           Immediate data (8 bits)
  1609.     <Rn>            Register file (memory locations 0 to 127 or
  1610.                        0 to 255 depending on on-chip RAM)
  1611.     <Pn>            Peripheral file (0-255)
  1612.     <rel>           Program address (relative)
  1613.     <addr>          Program address (16 bit)
  1614.     <trap>          Trap number (0-23)
  1615.  
  1616. Any valid TASM expression can appear in the  place  of  any  of  the
  1617. above symbolics.
  1618.  
  1619. Note  that   TASM  allows   an  alternate   syntax  for   expressing
  1620. indirection.  Parenthesis can be  replaced with brackets (which  are
  1621. less ambiguous because they do not occur in expressions).  Thus, the
  1622. following are equivalent:
  1623.  
  1624.     BR      @addr1(B)
  1625.     BR      @addr1[B]
  1626.  
  1627.  
  1628. OPCODE  OPERANDS
  1629. ---------------------------------------
  1630. ADC    B,A
  1631. ADC    %<iop>,A
  1632. ADC    %<iop>,B
  1633. ADC    %<iop>,<Rn>
  1634. ADC    <Rn>,A
  1635. ADC    <Rn>,B
  1636. ADC    <Rn>,<Rn>
  1637.  
  1638. ADD    B,A
  1639. ADD    %<iop>,A
  1640. ADD    %<iop>,B
  1641. ADD    %<iop>,<Rn>
  1642. ADD    <Rn>,A
  1643. ADD    <Rn>,B
  1644. ADD    <Rn>,<Rn>
  1645.  
  1646. AND    B,A
  1647. AND    %<iop>,A
  1648. AND    %<iop>,B
  1649. AND    %<iop>,<Rn>
  1650. AND    <Rn>,A
  1651. AND    <Rn>,B
  1652. AND    <Rn>,<Rn>
  1653.  
  1654. ANDP   A,<Pn>
  1655. ANDP   B,<Pn>
  1656. TASM TABLES  Version 2.8                                     Page 32
  1657.  
  1658. ANDP   %<iop>,<Pn>
  1659.  
  1660. BTJO   B,A,<rel>
  1661. BTJO   %<iop>,A,<rel>
  1662. BTJO   %<iop>,B,<rel>
  1663. BTJO   %<iop>,<Rn>,<rel>
  1664. BTJO   <Rn>,A,<rel>
  1665. BTJO   <Rn>,B,<rel>
  1666. BTJO   <Rn>,<Rn>,<rel>
  1667.  
  1668. BTJOP  A,<Pn>,<rel>
  1669. BTJOP  B,<Pn>,<rel>
  1670. BTJOP  %<iop>,<Pn>,<rel>
  1671.  
  1672. BTJZ   B,A,<rel>
  1673. BTJZ   %<iop>,A,<rel>
  1674. BTJZ   %<iop>,B,<rel>
  1675. BTJZ   %<iop>,<Rn>,<rel>
  1676. BTJZ   <Rn>,A,<rel>
  1677. BTJZ   <Rn>,B,<rel>
  1678. BTJZ   <Rn>,<Rn>,<rel>
  1679.  
  1680. BTJZP  A,<Pn>,<rel>
  1681. BTJZP  B,<Pn>,<rel>
  1682. BTJZP  %<iop>,<Pn>,<rel>
  1683.  
  1684. BR      @<addr>(B)
  1685. BR      @<addr>[B]
  1686. BR      @<addr>
  1687. BR      *<Rn>
  1688.  
  1689. CALL    @<addr>(B)
  1690. CALL    @<addr>[B]
  1691. CALL    @<addr>
  1692. CALL    *<Rn>
  1693.  
  1694. CLR     A
  1695. CLR     B
  1696. CLR     <Rn>
  1697. CLRC
  1698.  
  1699. CMP     B,A
  1700. CMP     %<iop>,A
  1701. CMP     %<iop>,B
  1702. CMP     %<iop>,<Rn>
  1703. CMP     <Rn>,A
  1704. CMP     <Rn>,B
  1705. CMP     <Rn>,<Rn>
  1706.  
  1707. CMPA    @<addr>(B)
  1708. CMPA    @<addr>[B]
  1709. CMPA    @<addr>
  1710. CMPA    *<Rn>
  1711.  
  1712. DAC     B,A
  1713. DAC     %<iop>,A
  1714. TASM TABLES  Version 2.8                                     Page 33
  1715.  
  1716. DAC     %<iop>,B
  1717. DAC     %<iop>,<Rn>
  1718. DAC     <Rn>,A
  1719. DAC     <Rn>,B
  1720. DAC     <Rn>,<Rn>
  1721.  
  1722. DEC     A
  1723. DEC     B
  1724. DEC     <Rn>
  1725.  
  1726. DECD    A
  1727. DECD    B
  1728. DECD    <Rn>
  1729.  
  1730. DINT
  1731.  
  1732. DJNZ    A,<rel>
  1733. DJNZ    B,<rel>
  1734. DJNZ    <Rn>,<rel>
  1735.  
  1736. DSB     B,A
  1737. DSB     %<iop>,A
  1738. DSB     %<iop>,B
  1739. DSB     %<iop>,<Rn>
  1740. DSB     <Rn>,A
  1741. DSB     <Rn>,B
  1742. DSB     <Rn>,<Rn>
  1743.  
  1744. EINT
  1745. IDLE
  1746.  
  1747. INC     A
  1748. INC     B
  1749. INC     <Rn>
  1750.  
  1751. INV     A
  1752. INV     B
  1753. INV     <Rn>
  1754.  
  1755. JMP     <rel>
  1756.  
  1757. JC      <rel>
  1758. JEQ     <rel>
  1759. JGE     <rel>
  1760. JGT     <rel>
  1761. JHS     <rel>
  1762. JL      <rel>
  1763. JN      <rel>
  1764. JNC     <rel>
  1765. JNE     <rel>
  1766. JNZ     <rel>
  1767. JP      <rel>
  1768. JPZ     <rel>
  1769. JZ      <rel>
  1770.  
  1771. LDA     @<addr>(B)
  1772. TASM TABLES  Version 2.8                                     Page 34
  1773.  
  1774. LDA     @<addr>[B]
  1775. LDA     @<addr>
  1776. LDA     *<Rn>
  1777.  
  1778. LDSP
  1779.  
  1780. MOV     A,B
  1781. MOV     B,A
  1782. MOV     A,<Rn>
  1783. MOV     B,<Rn>
  1784. MOV     %<iop>,A
  1785. MOV     %<iop>,B
  1786. MOV     %<iop>,<Rn>
  1787. MOV     <Rn>,A
  1788. MOV     <Rn>,B
  1789. MOV     <Rn>,<Rn>
  1790.  
  1791. MOVD    %<iop>[B],<Rn>
  1792. MOVD    %<iop>,<Rn>
  1793. MOVD    <Rn>,<Rn>
  1794.  
  1795. MOVP    A,<Pn>
  1796. MOVP    B,<Pn>
  1797. MOVP    %<iop>,<Pn>
  1798. MOVP    <Pn>,A
  1799. MOVP    <Pn>,B
  1800.  
  1801. MPY     B,A
  1802. MPY     %<iop>,A
  1803. MPY     %<iop>,B
  1804. MPY     %<iop>,<Rn>
  1805. MPY     <Rn>,A
  1806. MPY     <Rn>,B
  1807. MPY     <Rn>,<Rn>
  1808.  
  1809. NOP
  1810.  
  1811. OR      B,A
  1812. OR      %<iop>,A
  1813. OR      %<iop>,B
  1814. OR      %<iop>,<Rn>
  1815. OR      <Rn>,A
  1816. OR      <Rn>,B
  1817. OR      <Rn>,<Rn>
  1818.  
  1819. ORP     A,<Pn>
  1820. ORP     B,<Pn>
  1821. ORP     %<iop>,<Pn>
  1822.  
  1823. POP     A
  1824. POP     B
  1825. POP     ST
  1826. POP     <Rn>
  1827. POPST
  1828.  
  1829. PUSH    A
  1830. TASM TABLES  Version 2.8                                     Page 35
  1831.  
  1832. PUSH    B
  1833. PUSH    ST
  1834. PUSH    <Rn>
  1835. PUSHST
  1836.  
  1837. RETI
  1838.  
  1839. RETS
  1840.  
  1841. RL      A
  1842. RL      B
  1843. RL      <Rn>
  1844.  
  1845. RLC     A
  1846. RLC     B
  1847. RLC     <Rn>
  1848.  
  1849. RR      A
  1850. RR      B
  1851. RR      <Rn>
  1852.  
  1853. RRC     A
  1854. RRC     B
  1855. RRC     <Rn>
  1856.  
  1857. SBB     B,A
  1858. SBB     %<iop>,A
  1859. SBB     %<iop>,B
  1860. SBB     %<iop>,<Rn>
  1861. SBB     <Rn>,A
  1862. SBB     <Rn>,B
  1863. SBB     <Rn>,<Rn>
  1864.  
  1865. SETC
  1866.  
  1867. STA     @<addr>(B)
  1868. STA     @<addr>[B]
  1869. STA     @<addr>
  1870. STA     *<Rn>
  1871.  
  1872. STSP
  1873.  
  1874. SUB     B,A
  1875. SUB     %<iop>,A
  1876. SUB     %<iop>,B
  1877. SUB     %<iop>,<Rn>
  1878. SUB     <Rn>,A
  1879. SUB     <Rn>,B
  1880. SUB     <Rn>,<Rn>
  1881.  
  1882. SWAP    A
  1883. SWAP    B
  1884. SWAP    <Rn>
  1885.  
  1886. TRAP    <trap>
  1887.  
  1888. TASM TABLES  Version 2.8                                     Page 36
  1889.  
  1890. TST     A
  1891. TSTA
  1892. TST     B
  1893. TSTB
  1894.  
  1895. XCHB    A
  1896. XCHB    <Rn>
  1897.  
  1898. XOR     B,A
  1899. XOR     %<iop>,A
  1900. XOR     %<iop>,B
  1901. XOR     %<iop>,<Rn>
  1902. XOR     <Rn>,A
  1903. XOR     <Rn>,B
  1904. XOR     <Rn>,<Rn>
  1905.  
  1906. XORP    A,<Pn>
  1907. XORP    B,<Pn>
  1908. XORP    %<iop>,<Pn>
  1909.  
  1910. TASM TABLES  Version 2.8                                     Page 37
  1911.  
  1912. BUILDING TASM FROM THE SOURCE CODE
  1913.  
  1914. TASM  can  be built using the provided 'make'  file,  assuming   the
  1915. Microsoft C compiler (version 5.0) is available.  The can be done as
  1916. follows:
  1917.  
  1918.         make tasm.mak
  1919.  
  1920.  
  1921. For UNIX, try this:
  1922.  
  1923.         %cc -DUNIX tasm.c macro.c parse.c str.c -o tasm
  1924.  
  1925. The header file tasm.h should also be available.
  1926.  
  1927. Note  that the UNIX flag is being defined on the command line.  This
  1928. causes the following things to happen:
  1929.  
  1930.         1.  Tasm.h includes somewhat different system include files
  1931.                 appropriate for the UNIX environment.
  1932.  
  1933.         2.  TASM declares a 64 Kbyte array  in  which  to  hold  the
  1934.                 assembled    opcodes    and    data  in  a  slightly
  1935.                 different way.   MS C must use the 'far' keyword for
  1936.                 such  an  array  to give it a segment  all  its  own
  1937.                 (assuming use of the small memory model).  Most UNIX
  1938.                 environments do not have need for such syntax.
  1939.  
  1940. TASM TABLES  Version 2.8                                     Page 38
  1941.  
  1942. TASM INSTRUCTION SET TABLE DEFINITION
  1943.  
  1944. The tables that control TASM's interpretation of the source file are
  1945. read from a file at run time.  The table file name is determined  by
  1946. taking  the  numeric option field specified on the TASM command line
  1947. and appending it to the string "TASM", then a  ".TAB"  extension  is
  1948. added.  Thus, if the following command line is entered:
  1949.  
  1950.         tasm -51  test.asm
  1951.  
  1952. then TASM would read the table file named "TASM51.TAB".
  1953.  
  1954.  
  1955. The following rules apply to the structure of the table file:
  1956.  
  1957.         1.  The  first  line  of  the  file  should contain a string
  1958.                 surrounded by double quotes that should identify the
  1959.                 version of the assembler  table.  This  string  will
  1960.                 appear at the top of each page in the list file.  It
  1961.                 should be limited to 24 characters.
  1962.         2.  Any line that starts with a '.' is considered a directive.
  1963.                 The following directives are available:
  1964.  
  1965.                 DIRECTIVE       MEANING
  1966.                 ----------------------------------------------------
  1967.                 MSFIRST         Generate opcodes MS byte first.
  1968.                 ALTWILD         Use '@' instead of '*' as the
  1969.                                 wild card in the table.
  1970.  
  1971.         3.  Any   line  whose  first  character  is not a '.' and is
  1972.                 not  alphabetic is considered to be a comment and is
  1973.                 discarded.
  1974.  
  1975.         4.  Any  line  that has an alphabetic character as the first
  1976.                 character is assumed to be an instruction definition
  1977.                 record  and  is  parsed  to   build   the   internal
  1978.                 representation   of   the  instruction  set  tables.
  1979.                 Eight  fields   (separated  by  white  space)    are
  1980.                 expected,  as follows:
  1981.  
  1982.                 Field Name      Description
  1983.                 --------------------------------------------
  1984.                 INSTRUCTION     Instruction Mnemonic
  1985.                 ARGS            Argument definition
  1986.                 OPCODE          Opcode value
  1987.                 NBYTES          Number of bytes
  1988.                 MODOP           Modifier operation
  1989.                 CLASS           Instruction class
  1990.                 SHIFT           Argument left shift count
  1991.                 OR              Argument bitwise OR mask
  1992.  
  1993.                 INSTRUCTION.  The  INSTRUCTION  field should contain
  1994.                 the string to be  used  as  the  mnemonic  for  this
  1995.                 instruction.  Upper case letters should be used (the
  1996.                 source statements are converted to upper case before
  1997.                 comparison).
  1998. TASM TABLES  Version 2.8                                     Page 39
  1999.  
  2000.                 ARGS.   The  ARGS  field  should  contain  a  string
  2001.                 describing  the  format  of  the operand field.  All
  2002.                 characters are taken literally except the '*'  which
  2003.                 denotes  the  presence  of  a valid TASM expression.
  2004.                 Multiple '*'s can be used,  but all but the last one
  2005.                 must  be  followed  by  a  comma.  If  a  single '*'
  2006.                 appears in the ARGS field,  then the default  action
  2007.                 of  TASM  will  be  to  determine  the  value of the
  2008.                 expression that matches the field and insert one  or
  2009.                 two  bytes  of  it into the object file depending on
  2010.                 the NBYTES field.  If multiple '*'s are  used,  then
  2011.                 special  operators  (MODOP)  must  be  used  to take
  2012.                 advantage of them (see the examples below).  An ARGS
  2013.                 field of a pair  of  double  quotes  means  that  no
  2014.                 arguments are expected.
  2015.  
  2016.  
  2017.                 OPCODE.  The OPCODE field should contain the  opcode
  2018.                 value    (two  to  six  hex   digits)   for   this
  2019.                 instruction  and  address mode.   Each pair  of  hex
  2020.                 digits  represent  a  single  byte  of  the  opcode,
  2021.                 ordered with the right most pair being placed in the
  2022.                 lowest memory location.
  2023.  
  2024.  
  2025.                 NBYTES.  The NBYTES field should specify the  number
  2026.                 of  bytes  this  instruction  is to occupy (a single
  2027.                 decimal  digit).   This number includes both  opcode
  2028.                 bytes and argument bytes, thus,  the number of bytes
  2029.                 of argument is computed by subtracting the number of
  2030.                 bytes  of  opcode  (dictated by the  length  of  the
  2031.                 OPCODE field) from NBYTES.
  2032.  
  2033.  
  2034.                 MODOP.  The MODOP field determines  if  any  special
  2035.                 operations   need   to  be  performed  on  the  code
  2036.                 generated for this  instruction.  For  example,  the
  2037.                 zero-page  addressing  mode of the 6502 is a special
  2038.                 case of the absolute addressing mode, and is handled
  2039.                 by a special MODOP code (see appendix B).  The  list
  2040.                 of operators is as follows:
  2041.  
  2042.  
  2043. TASM TABLES  Version 2.8                                     Page 40
  2044.  
  2045.                 MODOP       DESCRIPTION
  2046.                 ---------------------------------------------------
  2047.                 NOTOUCH     Do nothing to instruction or args
  2048.                 JMPPAGE     Put bits 8-10 of first arg into
  2049.                             bits 5-7 of opcode (8048 JMP)
  2050.                 ZPAGE       If arg < 256 then use zero-page (6502)
  2051.                 R1          Make arg relative to PC (single byte)
  2052.                 R2          Make arg relative to PC (two byte)
  2053.                 CREL        Combine LS bytes of first two args
  2054.                             making the second one relative to PC
  2055.                 SWAP        Swap bytes of first arg
  2056.                 COMBINE     Combine LS bytes of first two args into
  2057.                             first arg (arg1 -> LSB, arg2 ->MSB).
  2058.                 CSWAP       Combine LS bytes of first two args into
  2059.                             first arg and swap.
  2060.                 ZBIT        Z80 bit instructions.
  2061.                 MBIT        Motorola (6805) bit instructions
  2062.                 MZERO       Motorola (6805) zero page (direct)
  2063.                 3ARG        Three args, one byte each.
  2064.                 3REL        Three args, one byte each, last one
  2065.                             relative
  2066.                 T1          TMS320 instruction with one arg.  Shift
  2067.                             according to SHIFT and mask with OR and
  2068.                             OR into opcode.  If a second arg exists
  2069.                             assume it is an <arp> and OR into   LSB
  2070.                             of opcode.
  2071.                 TDMA        TMS320 instruction with first arg <dma>.
  2072.                             Second arg gets shift/and/or  treatment
  2073.                             as with T1.
  2074.                 TAR         TMS320 instruction with first arg <ar>.
  2075.                             Second arg gets shift/and/or  treatment
  2076.                             as with T1.
  2077.  
  2078.                 Note  that the reason for the combining of arguments
  2079.                 (COMBINE and CSWAP) is that TASM  assumes  that  all
  2080.                 object  bytes  to be inserted in the object file are
  2081.                 derived from a variable representing  the  value  of
  2082.                 the  first  argument (argval).  If two arguments are
  2083.                 in the  ARGS  field,  then  one  of  the  previously
  2084.                 mentioned  MODOP`s  must  be  used.  They  have  the
  2085.                 effect of combining the low bytes of the  first  two
  2086.                 arguments  into the variable (argval) from which the
  2087.                 object  code  will  be  generated.  TASM`s  argument
  2088.                 parsing   routine  can  handle  a  large  number  of
  2089.                 arguments,  but the code that generates  the  object
  2090.                 code is less capable.
  2091.  
  2092.                 CLASS.  The  CLASS  field is used to specify whether
  2093.                 this instruction is part of the standard instruction
  2094.                 set or a member of a set of  extended  instructions.
  2095.                 Bit 0 of this field should be set to denote a member
  2096.                 of  the standard instruction set.  Other bits can be
  2097.                 used as needed  to  establish  several  classes  (or
  2098.                 sets)   of  instructions  that  can  be  enabled  or
  2099.                 disabled via  the  '-x'  command  line  option  (see
  2100.                 section on 6502 INSTRUCTIONS AND ADDRESSING MODES).
  2101. TASM TABLES  Version 2.8                                     Page 41
  2102.  
  2103.                 SHIFT (optional).   The SHIFT field is used to cause
  2104.                 the  first  argument of the given instruction to  be
  2105.                 shifted left the specified number of bits.   (Except
  2106.                 T1, TDMA, TAR MODOPS as noted below).
  2107.  
  2108.                 OR  (optional).   The OR field is used to perform  a
  2109.                 bitwise  OR  with  the first argument of  the  given
  2110.                 instruction.  Specified as hex digits.  (Except  T1,
  2111.                 TDMA, TAR MODOPS as noted below).
  2112.  
  2113. Note that the SHIFT/OR fields are used somewhat differently for  T1,
  2114. TDMA,  and TAR MODOPS.  In those cases,  the SHIFT and OR fields are
  2115. used  but the OR field is really an AND mask and the result is  OR'd
  2116. with the opcode.
  2117.  
  2118. The   following  table   shows   possible    instruction  definition
  2119. records,  followed  by  possible  source statements that would match
  2120. it,    followed by the resulting object code that would be generated
  2121. (in hex):
  2122.                                           EXAMPLE         EXAMPLE
  2123. INSTRUCTION DEFINITION                    SOURCE          OBJECT
  2124. -------------------------------------------------------------------
  2125. XYZ  *      FF   3  NOTOUCH 1             xyz 1234h       FF 34 12
  2126. XYZ  *      FF   2  NOTOUCH 1             xyz 1234h       FF 34
  2127. ZYX  *      FE   3  SWAP    1             zyx 1234h       FE 12 34
  2128. ZYX  *      FE   3  R2      1             zyx $+4         FE 01 00
  2129. ABC  *,*    FD   3  COMBINE 1             abc 45h,67h     FD 45 67
  2130. ABC  *,*    FD   3  CSWAP   1             abc 45h,67h     FD 67 45
  2131. ADD  A,#*   FC   2  NOTOUCH 1             add A,#'B'      FC 42
  2132. RET  ""     FB   1  NOTOUCH 1             ret             FB
  2133. LD   IX,*   21DD 4  NOTOUCH 1             ld  IX,1234h    DD 21 34 12
  2134. LD   IX,*   21DD 4  NOTOUCH 1 1 0         ld  IX,1234h    DD 21 68 24
  2135. LD   IX,*   21DD 4  NOTOUCH 1 0 1         ld  IX,1234h    DD 21 35 12
  2136. LD   IX,*   21DD 4  NOTOUCH 1 1 1         ld  IX,1234h    DD 21 69 24
  2137. LD   IX,*   21DD 4  NOTOUCH 1 8 12        ld  IX,34h      DD 21 12 34
  2138.  
  2139. The  order  of  the  entries for various addressing modes of a given
  2140. instruction is important.  Since the wild card matches anything,  it
  2141. is  important to specify the ARGS for the addressing modes that have
  2142. the  most  qualifying  characters  first.   For   example,   if   an
  2143. instruction  had  two  addressing  modes,   one  that  accepted  any
  2144. expression,  and another that required a pound sign in front  of  an
  2145. expression,  the  pound  sign  entry  should  go first otherwise all
  2146. occurrences of the instruction would match  the  more  general  ARGS
  2147. expression   that  it  encountered  first.   The  following  entries
  2148. illustrate the proper sequencing:
  2149.  
  2150.         ADD #*  12 3 NOTOUCH 1
  2151.         ADD *   13 3 NOTOUCH 1
  2152.  
  2153.