home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol140 / m6805.lib < prev    next >
Encoding:
Text File  |  1984-04-29  |  6.5 KB  |  585 lines

  1. ;;    This Macro library provides Motorola MC6805 opcodes.
  2. ;;    It requires Digital Research's MAC assembler, patched
  3. ;;    to suppress all 8080 opcode menmeonics.  (XMAC.COM)
  4. ;;
  5. ;;    6805 Menmonics supported are not exactly as specified
  6. ;;    by Motorola.  This arises from parameter specification
  7. ;;    rules under the MAC assembler.  Many of the ideas used
  8. ;;    here have been taken from the Digital Research supplied
  9. ;;    macro library for Z-80 instruction extensions, Z80.LIB
  10. ;;
  11. ;;    Due to the requirements of MAC under forward reference
  12. ;;    conditions (undefined on first pass), all such forward
  13. ;;    references are forced to the appropriate long form.
  14. ;;
  15. ;;    This library must be invoked by  "MACLIB  M6805"
  16. ;;
  17. ;;        Register with Memory operation class
  18. ;;
  19. ;;    LDAI    nn        Specific Menmonic, immediate value
  20. ;;    LDA    nn        Direct address, 0 page
  21. ;;    LDA    nnnn        Extended address, all of memory
  22. ;;    LDA    ,X        Index Register pointer, in 0 page
  23. ;;    LDA    nn,X        Index+8 bit unsigned offset
  24. ;;    LDA    nnnn,X        Index+16 bit unsigned offset
  25. ;;
  26. ;;        Modify A,X, or memory (8 bit address) class
  27. ;;
  28. ;;    INCA            Specific Menmonic, register A
  29. ;;    INCX            Specific Menmonic, register X
  30. ;;    INC    nn        Direct address, 0 page
  31. ;;    INC    ,X        Index Register pointer, in 0 page
  32. ;;    INC    nn,X        Index+8 bit unsigned offset
  33. ;;
  34. ;;        Relative Branch instruction class
  35. ;;
  36. ;;    BRA    label        Op, 8 bit signed offset to label
  37. ;;
  38. ;;        Bit test & Relative Branch instruction class
  39. ;;
  40. ;;    BRSET    b,nn,label    Op, Direct 0 page add, 8 bit signed offs.
  41. ;;
  42. ;;        Individual bit set & clear instruction class
  43. ;;
  44. ;;    BSET    b,nn        Opcode + bitnumber*2, Direct 0 page address
  45. ;;
  46. ;;        Control Instruction class
  47. ;;
  48. ;;    TAX            Specific Menmonic for each instruction
  49.  
  50.  
  51. FCB    MACRO    ?N
  52.     DB ?N
  53.     ENDM
  54.  
  55. FDB    MACRO    ?N
  56.      ?LN SET LOW ?N
  57.      ?HN SET HIGH ?N
  58.      DB ?HN,?LN
  59.     ENDM
  60.  
  61. ?ARM    MACRO    ?N,?X
  62.     IF NUL ?X
  63.      IF NUL ?N
  64.       ?AC SET 0F0H
  65. 'Address is missing'
  66.      ELSE
  67.       IF ?N LT 256
  68.        ?AC SET 0B0H
  69.       ELSE
  70.        ?AC SET 0C0H
  71.       ENDIF
  72.      ENDIF
  73.     ELSE
  74.      IF NOT NUL ?N
  75.       IF ?N LT 256
  76.        ?AC SET 0E0H
  77.       ELSE
  78.        ?AC SET 0D0H
  79.       ENDIF
  80.      ELSE
  81.       ?AC SET 0F0H
  82.      ENDIF
  83.     ENDIF
  84.     ENDM
  85.  
  86. ?SIZ    MACRO    ?OP,?N
  87.     IF NOT NUL ?N
  88.      IF ?N LT 256
  89.       DB ?OP,?N
  90.      ELSE
  91.       ?LN SET LOW ?N
  92.       ?HN SET HIGH ?N
  93.       DB ?OP,?HN,?LN
  94.      ENDIF
  95.     ELSE
  96.      DB ?OP
  97.     ENDIF
  98.     ENDM
  99.  
  100.  
  101.  
  102. LDAI    MACRO    ?N
  103.     DB    0A6H,?N
  104.     ENDM
  105. LDA    MACRO    ?N,?X
  106.     ?ARM ?N,?X
  107.     ?SIZ 06H+?AC,?N
  108.     ENDM
  109.  
  110. LDXI    MACRO    ?N
  111.     DB    0AEH,?N
  112.     ENDM
  113. LDX    MACRO    ?N,?X
  114.     ?ARM ?N,?X
  115.     ?SIZ 0EH+?AC,?N
  116.     ENDM
  117.  
  118. STA    MACRO    ?N,?X
  119.     ?ARM ?N,?X
  120.     ?SIZ 07H+?AC,?N
  121.     ENDM
  122.  
  123. STX    MACRO    ?N,?X
  124.     ?ARM ?N,?X
  125.     ?SIZ 0FH+?AC,?N
  126.     ENDM
  127.  
  128. ADDI    MACRO    ?N
  129.     DB    0ABH,?N
  130.     ENDM
  131. ADD    MACRO    ?N,?X
  132.     ?ARM ?N,?X
  133.     ?SIZ 0BH+?AC,?N
  134.     ENDM
  135.  
  136. ADCI    MACRO    ?N
  137.     DB    0A9H,?N
  138.     ENDM
  139. ADC    MACRO    ?N,?X
  140.     ?ARM ?N,?X
  141.     ?SIZ 09H+?AC,?N
  142.     ENDM
  143.  
  144. SUBI    MACRO    ?N
  145.     DB    0A0H,?N
  146.     ENDM
  147. SUB    MACRO    ?N,?X
  148.     ?ARM ?N,?X
  149.     ?SIZ 00H+?AC,?N
  150.     ENDM
  151.  
  152. SBCI    MACRO    ?N
  153.     DB    0A2H,?N
  154.     ENDM
  155. SBC    MACRO    ?N,?X
  156.     ?ARM ?N,?X
  157.     ?SIZ 02H+?AC,?N
  158.     ENDM
  159.  
  160.  
  161. ANAI    MACRO    ?N
  162.     DB    0A4H,?N
  163.     ENDM
  164. ANA    MACRO    ?N,?X
  165.     ?ARM ?N,?X
  166.     ?SIZ 04H+?AC,?N
  167.     ENDM
  168.  
  169. ORAI    MACRO    ?N
  170.     DB    0AAH,?N
  171.     ENDM
  172. ORA    MACRO    ?N,?X
  173.     ?ARM ?N,?X
  174.     ?SIZ 0AH+?AC,?N
  175.     ENDM
  176.  
  177. EORI    MACRO    ?N
  178.     DB    0A8H,?N
  179.     ENDM
  180. EOR    MACRO    ?N,?X
  181.     ?ARM ?N,?X
  182.     ?SIZ 08H+?AC,?N
  183.     ENDM
  184.  
  185. CMPI    MACRO    ?N
  186.     DB    0A1H,?N
  187.     ENDM
  188. CMP    MACRO    ?N,?X
  189.     ?ARM ?N,?X
  190.     ?SIZ 01H+?AC,?N
  191.     ENDM
  192.  
  193. CPXI    MACRO    ?N
  194.     DB    0A3H,?N
  195.     ENDM
  196. CPX    MACRO    ?N,?X
  197.     ?ARM ?N,?X
  198.     ?SIZ 03H+?AC,?N
  199.     ENDM
  200.  
  201. BITI    MACRO    ?N
  202.     DB    0A5H,?N
  203.     ENDM
  204. BIT    MACRO    ?N,?X
  205.     ?ARM ?N,?X
  206.     ?SIZ 05H+?AC,?N
  207.     ENDM
  208.  
  209.  
  210.  
  211. JMP    MACRO    ?N,?X
  212.     ?ARM ?N,?X
  213.     ?SIZ 0CH+?AC,?N
  214.     ENDM
  215.  
  216. JSR    MACRO    ?N,?X
  217.     ?ARM ?N,?X
  218.     ?SIZ 0DH+?AC,?N
  219.     ENDM
  220.  
  221.  
  222.  
  223. ?AS    MACRO    ?N,?X
  224.     IF NUL ?N
  225.      IF NUL ?X
  226. 'Address is missing'
  227.      ENDIF
  228.      ?AC SET 70H
  229.     ELSE
  230.      IF NUL ?X
  231.       IF ?N GE 256
  232. 'Direct address out of 8 bit range'
  233.       ENDIF
  234.       ?AC SET 30H
  235.      ELSE
  236.       IF ?N GE 256
  237. 'Offset value out of 8 bit range'
  238.       ENDIF
  239.       ?AC SET 60H
  240.      ENDIF
  241.     ENDIF
  242.     ENDM
  243.  
  244. ?SIS    MACRO ?OP,?N
  245.     IF NOT NUL ?N
  246.      DB ?OP,?N
  247.     ELSE
  248.      DB ?OP
  249.     ENDIF
  250.     ENDM
  251.  
  252.  
  253.  
  254. INCA    MACRO
  255.     DB    4CH
  256.     ENDM
  257. INCX    MACRO
  258.     DB    5CH
  259.     ENDM
  260. INC    MACRO    ?N,?X
  261.     ?AS ?N,?X
  262.     ?SIS 0CH+?AC,?N
  263.     ENDM
  264.  
  265. DECA    MACRO
  266.     DB    4AH
  267.     ENDM
  268. DECX    MACRO
  269.     DB    5AH
  270.     ENDM
  271. DEC    MACRO    ?N,?X
  272.     ?AS ?N,?X
  273.     ?SIS 0AH+?AC,?N
  274.     ENDM
  275.  
  276. CLRA    MACRO
  277.     DB    4FH
  278.     ENDM
  279. CLRX    MACRO
  280.     DB    5FH
  281.     ENDM
  282. CLR    MACRO    ?N,?X
  283.     ?AS ?N,?X
  284.     ?SIS 0FH+?AC,?N
  285.     ENDM
  286.  
  287. COMA    MACRO
  288.     DB    43H
  289.     ENDM
  290. COMX    MACRO
  291.     DB    53H
  292.     ENDM
  293. COM    MACRO    ?N,?X
  294.     ?AS ?N,?X
  295.     ?SIS 03H+?AC,?N
  296.     ENDM
  297.  
  298. NEGA    MACRO
  299.     DB    40H
  300.     ENDM
  301. NEGX    MACRO
  302.     DB    50H
  303.     ENDM
  304. NEG    MACRO    ?N,?X
  305.     ?AS ?N,?X
  306.     ?SIS 00H+?AC,?N
  307.     ENDM
  308.  
  309. ROLA    MACRO
  310.     DB    49H
  311.     ENDM
  312. ROLX    MACRO
  313.     DB    59H
  314.     ENDM
  315. ROL    MACRO    ?N,?X
  316.     ?AS ?N,?X
  317.     ?SIS 09H+?AC,?N
  318.     ENDM
  319.  
  320. RORA    MACRO
  321.     DB    46H
  322.     ENDM
  323. RORX    MACRO
  324.     DB    56H
  325.     ENDM
  326. ROR    MACRO    ?N,?X
  327.     ?AS ?N,?X
  328.     ?SIS 06H+?AC,?N
  329.     ENDM
  330.  
  331. LSLA    MACRO
  332.     DB    48H
  333.     ENDM
  334. LSLX    MACRO
  335.     DB    58H
  336.     ENDM
  337. LSL    MACRO    ?N,?X
  338.     ?AS ?N,?X
  339.     ?SIS 08H+?AC,?N
  340.     ENDM
  341.  
  342. LSRA    MACRO
  343.     DB    44H
  344.     ENDM
  345. LSRX    MACRO
  346.     DB    54H
  347.     ENDM
  348. LSR    MACRO    ?N,?X
  349.     ?AS ?N,?X
  350.     ?SIS 04H+?AC,?N
  351.     ENDM
  352.  
  353. ASLA    MACRO
  354.     DB    48H
  355.     ENDM
  356. ASLX    MACRO
  357.     DB    58H
  358.     ENDM
  359. ASL    MACRO    ?N,?X
  360.     ?AS ?N,?X
  361.     ?SIS 08H+?AC,?N
  362.     ENDM
  363.  
  364. ASRA    MACRO
  365.     DB    47H
  366.     ENDM
  367. ASRX    MACRO
  368.     DB    57H
  369.     ENDM
  370. ASR    MACRO    ?N,?X
  371.     ?AS ?N,?X
  372.     ?SIS 07H+?AC,?N
  373.     ENDM
  374.  
  375. TSTA    MACRO
  376.     DB    4DH
  377.     ENDM
  378. TSTX    MACRO
  379.     DB    5DH
  380.     ENDM
  381. TST    MACRO    ?N,?X
  382.     ?AS ?N,?X
  383.     ?SIS 0DH+?AC,?N
  384.     ENDM
  385.  
  386.  
  387.  
  388.  
  389. ?BR    MACRO    ?L
  390.     ?BO SET ?L-$-2
  391.     IF (?BO GT 7FH) AND (?BO LT 0FF80H)
  392. 'Relative Branch out of range'
  393.     ENDIF
  394.     ENDM
  395.  
  396.  
  397.  
  398. BHI    MACRO    ?L
  399.     ?BR ?L
  400.     DB    22H,?BO
  401.     ENDM
  402.  
  403. BLS    MACRO    ?L
  404.     ?BR ?L
  405.     DB    23H,?BO
  406.     ENDM
  407.  
  408. BCC    MACRO    ?L
  409.     ?BR ?L
  410.     DB    24H,?BO
  411.     ENDM
  412.  
  413. BHS    MACRO    ?L
  414.     ?BR ?L
  415.     DB    24H,?BO
  416.     ENDM
  417.  
  418. BCS    MACRO    ?L
  419.     ?BR ?L
  420.     DB    25H,?BO
  421.     ENDM
  422.  
  423. BLO    MACRO    ?L
  424.     ?BR ?L
  425.     DB    25H,?BO
  426.     ENDM
  427.  
  428. BNE    MACRO    ?L
  429.     ?BR ?L
  430.     DB    26H,?BO
  431.     ENDM
  432.  
  433. BEQ    MACRO    ?L
  434.     ?BR ?L
  435.     DB    27H,?BO
  436.     ENDM
  437.  
  438. BHCC    MACRO    ?L
  439.     ?BR ?L
  440.     DB    28H,?BO
  441.     ENDM
  442.  
  443. BHCS    MACRO    ?L
  444.     ?BR ?L
  445.     DB    29H,?BO
  446.     ENDM
  447.  
  448. BPL    MACRO    ?L
  449.     ?BR ?L
  450.     DB    2AH,?BO
  451.     ENDM
  452.  
  453. BMI    MACRO    ?L
  454.     ?BR ?L
  455.     DB    2BH,?BO
  456.     ENDM
  457.  
  458. BMC    MACRO    ?L
  459.     ?BR ?L
  460.     DB    2CH,?BO
  461.     ENDM
  462.  
  463. BMS    MACRO    ?L
  464.     ?BR ?L
  465.     DB    2DH,?BO
  466.     ENDM
  467.  
  468. BIL    MACRO    ?L
  469.     ?BR ?L
  470.     DB    2EH,?BO
  471.     ENDM
  472.  
  473. BIH    MACRO    ?L
  474.     ?BR ?L
  475.     DB    2FH,?BO
  476.     ENDM
  477.  
  478.  
  479. BRA    MACRO    ?L
  480.     ?BR ?L
  481.     DB    20H,?BO
  482.     ENDM
  483.  
  484. BRN    MACRO    ?L
  485.     ?BR ?L
  486.     DB    21H,?BO
  487.     ENDM
  488.  
  489. BSR    MACRO    ?L
  490.     ?BR ?L
  491.     DB    0ADH,?BO
  492.     ENDM
  493.  
  494. ?BIT    MACRO    ?BN,?DA
  495.     IF ?DA LT 256
  496.      ?DAO SET ?DA
  497.     ELSE
  498.      ?DAO SET 0
  499. 'Bit operation address out of range (0-255)'
  500.     ENDIF
  501.     IF ?BN LE 7
  502.      ?BNO SET ?BN
  503.     ELSE
  504.      ?BNO SET 0
  505. 'Bit number out of range (0-7)'
  506.     ENDIF
  507.     ENDM
  508.  
  509.  
  510. BRSET    MACRO    ?BN,?DA,?L
  511.     ?BR ?L-1
  512.     ?BIT ?BN,?DA
  513.     DB    00+2*?BNO,?DAO,?BO
  514.     ENDM
  515.  
  516. BRCLR    MACRO    ?BN,?DA,?L
  517.     ?BR ?L-1
  518.     ?BIT ?BN,?DA
  519.     DB    01+2*?BNO,?DAO,?BO
  520.     ENDM
  521.  
  522. BSET    MACRO    ?BN,?DA
  523.     ?BIT ?BN,?DA
  524.     DB    10H+2*?BNO,?DAO
  525.     ENDM
  526.  
  527. BCLR    MACRO    ?BN,?DA
  528.     ?BIT ?BN,?DA
  529.     DB    11H+2*?BNO,?DAO
  530.     ENDM
  531.  
  532.  
  533. TAX    MACRO
  534.     DB    97H
  535.     ENDM
  536.  
  537. TXA    MACRO
  538.     DB    9FH
  539.     ENDM
  540.  
  541. SEC    MACRO
  542.     DB    99H
  543.     ENDM
  544.  
  545. CLC    MACRO
  546.     DB    98H
  547.     ENDM
  548.  
  549. SEI    MACRO
  550.     DB    9BH
  551.     ENDM
  552.  
  553. CLI    MACRO
  554.     DB    9AH
  555.     ENDM
  556.  
  557. SWI    MACRO
  558.     DB    83H
  559.     ENDM
  560.  
  561. RTS    MACRO
  562.     DB    81H
  563.     ENDM
  564.  
  565. RTI    MACRO
  566.     DB    80H
  567.     ENDM
  568.  
  569. RSP    MACRO
  570.     DB    9CH
  571.     ENDM
  572.  
  573. NOP    MACRO
  574.     DB    9DH
  575.     ENDM
  576.  
  577. STOP    MACRO
  578.     DB    8EH
  579.     ENDM
  580.  
  581. WAIT    MACRO
  582.     DB    8FH
  583.     ENDM
  584.  
  585.