home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 5 / ctrom5b.zip / ctrom5b / PROGRAM / ASM / AS05_107 / TESTCASE.A05 < prev    next >
Text File  |  1994-11-02  |  23KB  |  803 lines

  1. ; <:t17,25,41,45:>
  2. ; ╔═════════════════════════════════════════════════════════════════════╗
  3. ; ║                                                                     ║
  4. ; ║   TESTCASE.A05                                                      ║
  5. ; ║                                                                     ║
  6. ; ║   Test case for 6805 assembler.                                     ║
  7. ; ║                                                                     ║
  8. ; ║   Copyright 1994, Frank A. Vorstenbosch                             ║
  9. ; ║                                                                     ║
  10. ; ╚═════════════════════════════════════════════════════════════════════╝
  11. ;
  12. ; File created 18-may-94
  13.  
  14.                 org     $f000
  15.  
  16. ; ┌─────────────────────────────────────────────────────────────────────┐
  17. ; │                                                                     │
  18. ; │   Options.                                                          │
  19. ; │                                                                     │
  20. ; └─────────────────────────────────────────────────────────────────────┘
  21.  
  22. ;   -dERRORS   check error handling
  23. ;   -n         disable optimizations
  24.  
  25.  
  26. ; ┌─────────────────────────────────────────────────────────────────────┐
  27. ; │                                                                     │
  28. ; │   Assembler pseudo instructions.                                    │
  29. ; │                                                                     │
  30. ; └─────────────────────────────────────────────────────────────────────┘
  31.  
  32. ; ───── expressions ─────────────────────────────────────────────────────
  33.  
  34.                 data
  35.                 org     4
  36.                 bss
  37.                 org     1634
  38.  
  39. TEST            equ     2+*/2
  40.                 if ERRORS
  41. TEST            equ     TEST+1
  42.                 endif
  43.  
  44. Constant8       equ     -43
  45. Constant16      equ     16383
  46. Constant32      equ     96285725
  47. AddrHigh        equ     $0203
  48.  
  49.  
  50. ANOTHER         set     3|24&8
  51. ANOTHER         set     (3|24)&8
  52. ANOTHER         set     4*(3>5)
  53. ANOTHER         set     4*!3<5
  54. ANOTHER         set     15<<4
  55. ANOTHER         set     ANOTHER+1
  56. ANOTHER         =       ANOTHER+1       ; shorthand for SET
  57.  
  58. CHAR            equ     "a"
  59. DOUBLECHAR      equ     "xy"
  60. QUADCHAR        equ     "quad"
  61.  
  62.                 if ERRORS
  63. TRIPLE          equ     "abc"
  64. TOOMUCH         equ     "abcde"
  65.                 endif
  66.  
  67.                 data
  68. AddressFour     dw      TEST
  69.                 dw      **5
  70.  
  71.                 org     $60
  72.  
  73.                 ds      14
  74. DirectByte      db      123
  75. AddrLow         db      "X"
  76.                 align   32
  77. DirectWord      dw      12345
  78.                 align   48
  79. DirectLong      dd      123456789
  80.                 align   79
  81. DirectCode      rts
  82.  
  83.                 dw      1234%12
  84.                 dw      %1010100101
  85.                 dw      (1+2)%8
  86.                 dw      1010101%%1010101
  87.  
  88.                 bss
  89. Unin_1          db      0
  90. Unin_2          dw      4256
  91. Unin_3          dd      34568957
  92.  
  93.                 code
  94.                 org     $200
  95.  
  96.                 page
  97.  
  98.                 if ERRORS
  99. 1
  100.                 equ     123
  101.                 psscht
  102.                 !
  103.                 endif
  104.  
  105. ; ───── range checking on immediate values ──────────────────────────────
  106.  
  107.                 lda     #10
  108.                 lda     #100
  109.                 if ERRORS
  110.                 lda     #1000
  111.                 lda     #10000
  112.                 lda     #100000
  113.                 lda     #1000000
  114.                 lda     #10000000
  115.                 lda     #100000000
  116.                 lda     #1000000000
  117.                 endif
  118.  
  119.                 lda     10
  120.                 lda     100
  121.                 lda     1000
  122.                 lda     10000
  123.                 if ERRORS
  124.                 lda     100000
  125.                 lda     1000000
  126.                 lda     10000000
  127.                 lda     100000000
  128.                 lda     1000000000
  129.                 endif
  130.  
  131.                 
  132.                 page    10              ; keep 10 lines togethre
  133.  
  134. ; ───── align ───────────────────────────────────────────────────────────
  135.  
  136.                 align   16
  137.                 align   32
  138.  
  139.  
  140. ; ───── code, data, org ─────────────────────────────────────────────────
  141.  
  142.                 code
  143.                 org     $300
  144.                 data
  145.                 org     $180
  146.  
  147.                 code
  148.                 ldx     #1
  149.  
  150.                 data
  151. Table           db      1,2,3
  152.  
  153.                 code
  154.                 lda     Table,x
  155.  
  156.  
  157. ; ───── db, fcb, fcc ────────────────────────────────────────────────────
  158.  
  159. Message1        db      7,"Error",13,10,0
  160.  
  161. Message2        fcb     7
  162.                 fcc     "Error"
  163.                 fcb     13,10,0
  164.  
  165.  
  166. ; ───── ds, rmb ─────────────────────────────────────────────────────────
  167.  
  168.                 ds      10
  169.                 rmb     10
  170.  
  171.  
  172. ; ───── dw, fcw, fdb ────────────────────────────────────────────────────
  173.  
  174.                 dw      23457
  175.                 fcw     13462
  176.                 fdb     6235
  177.  
  178.  
  179. ; ───── if ... else ... endif ───────────────────────────────────────────
  180.  
  181.                 if      5=6
  182.                 db      0
  183.                 if      0
  184.                 db      1
  185.                 else
  186.                 db      2
  187.                 endif
  188.                 db      3
  189.                 else
  190.                 db      4
  191.                 if      1
  192.                 db      5
  193.                 else
  194.                 db      6
  195.                 endif
  196.                 db      7
  197.                 endif
  198.  
  199.  
  200. ; ───── list, nolist ────────────────────────────────────────────────────
  201.  
  202.                 nolist
  203.                 ; comment not listed
  204.                 db      10
  205.  
  206.                 list
  207.                 ; comment is listed
  208.                 db      10
  209.  
  210.  
  211. ; ───── opt, noopt ──────────────────────────────────────────────────────
  212.  
  213.                 noopt
  214.  
  215.                 opt
  216.  
  217.  
  218. ; ───── nop ─────────────────────────────────────────────────────────────
  219.  
  220.                 nop
  221.                 nop     3
  222.                 
  223.  
  224. ; ───── struct ──────────────────────────────────────────────────────────
  225.  
  226.                 struct  ListNode
  227.                 dw      LN_Next
  228.                 dw      LN_Previous
  229.                 db      LN_Type
  230.                 end struct
  231.  
  232.  
  233. ; ───── number bases ────────────────────────────────────────────────────
  234.  
  235.                 dd      1
  236.                 dd      10
  237.                 dd      100
  238.                 dd      1000
  239.  
  240.                 dd      $1
  241.                 dd      $10
  242.                 dd      $100
  243.                 dd      $1000
  244.  
  245.                 dd      %1
  246.                 dd      %10
  247.                 dd      %100
  248.                 dd      %1000
  249.  
  250.                 dd      @1
  251.                 dd      @10
  252.                 dd      @100
  253.                 dd      @1000
  254.  
  255.                 dd      2#1
  256.                 dd      2#10
  257.                 dd      2#100
  258.                 dd      2#1000
  259.  
  260.                 dd      3#1
  261.                 dd      3#10
  262.                 dd      3#100
  263.                 dd      3#1000
  264.                 dd      3#12
  265.  
  266.                 dd      4#1
  267.                 dd      4#10
  268.                 dd      4#100
  269.                 dd      4#1000
  270.                 dd      4#123
  271.  
  272.                 dd      5#1
  273.                 dd      5#10
  274.                 dd      5#100
  275.                 dd      5#1000
  276.                 dd      5#1234
  277.  
  278.                 dd      6#1
  279.                 dd      6#10
  280.                 dd      6#100
  281.                 dd      6#1000
  282.                 dd      6#2345
  283.  
  284.                 dd      7#1
  285.                 dd      7#10
  286.                 dd      7#100
  287.                 dd      7#1000
  288.                 dd      7#3456
  289.  
  290.                 dd      8#1
  291.                 dd      8#10
  292.                 dd      8#100
  293.                 dd      8#1000
  294.                 dd      8#4567
  295.  
  296.                 dd      9#1
  297.                 dd      9#10
  298.                 dd      9#100
  299.                 dd      9#1000
  300.                 dd      9#5678
  301.  
  302.                 dd      10#1
  303.                 dd      10#10
  304.                 dd      10#100
  305.                 dd      10#1000
  306.                 dd      10#6789
  307.  
  308.                 dd      11#1
  309.                 dd      11#10
  310.                 dd      11#100
  311.                 dd      11#1000
  312.                 dd      11#789a
  313.  
  314.                 dd      12#1
  315.                 dd      12#10
  316.                 dd      12#100
  317.                 dd      12#1000
  318.                 dd      12#89ab
  319.  
  320.                 dd      13#1
  321.                 dd      13#10
  322.                 dd      13#100
  323.                 dd      13#1000
  324.                 dd      13#9abc
  325.  
  326.                 dd      14#1
  327.                 dd      14#10
  328.                 dd      14#100
  329.                 dd      14#1000
  330.                 dd      14#abcd
  331.  
  332.                 dd      15#1
  333.                 dd      15#10
  334.                 dd      15#100
  335.                 dd      15#1000
  336.                 dd      15#bcde
  337.  
  338.                 dd      16#1
  339.                 dd      16#10
  340.                 dd      16#100
  341.                 dd      16#1000
  342.                 dd      16#cdef
  343.  
  344.                 dd      17#1
  345.                 dd      17#10
  346.                 dd      17#100
  347.                 dd      17#1000
  348.                 dd      17#defg
  349.  
  350.                 dd      18#1
  351.                 dd      18#10
  352.                 dd      18#100
  353.                 dd      18#1000
  354.                 dd      18#efgh
  355.  
  356.                 dd      19#1
  357.                 dd      19#10
  358.                 dd      19#100
  359.                 dd      19#1000
  360.                 dd      19#fghi
  361.  
  362.                 dd      20#1
  363.                 dd      20#10
  364.                 dd      20#100
  365.                 dd      20#1000
  366.                 dd      20#ghij
  367.  
  368.                 dd      21#1
  369.                 dd      21#10
  370.                 dd      21#100
  371.                 dd      21#1000
  372.                 dd      21#hijk
  373.  
  374.                 dd      22#1
  375.                 dd      22#10
  376.                 dd      22#100
  377.                 dd      22#1000
  378.                 dd      22#ijkl
  379.  
  380.                 dd      23#1
  381.                 dd      23#10
  382.                 dd      23#100
  383.                 dd      23#1000
  384.                 dd      23#jklm
  385.  
  386.                 dd      24#1
  387.                 dd      24#10
  388.                 dd      24#100
  389.                 dd      24#1000
  390.                 dd      24#klmn
  391.  
  392.                 dd      25#1
  393.                 dd      25#10
  394.                 dd      25#100
  395.                 dd      25#1000
  396.                 dd      25#lmno
  397.  
  398.                 dd      26#1
  399.                 dd      26#10
  400.                 dd      26#100
  401.                 dd      26#1000
  402.                 dd      26#mnop
  403.  
  404.                 dd      27#1
  405.                 dd      27#10
  406.                 dd      27#100
  407.                 dd      27#1000
  408.                 dd      27#nopq
  409.  
  410.                 dd      28#1
  411.                 dd      28#10
  412.                 dd      28#100
  413.                 dd      28#1000
  414.                 dd      28#opqr
  415.  
  416.                 dd      29#1
  417.                 dd      29#10
  418.                 dd      29#100
  419.                 dd      29#1000
  420.                 dd      29#pqrs
  421.  
  422.                 dd      30#1
  423.                 dd      30#10
  424.                 dd      30#100
  425.                 dd      30#1000
  426.                 dd      30#qrst
  427.  
  428.                 dd      31#1
  429.                 dd      31#10
  430.                 dd      31#100
  431.                 dd      31#1000
  432.                 dd      31#rstu
  433.  
  434.                 dd      32#1
  435.                 dd      32#10
  436.                 dd      32#100
  437.                 dd      32#1000
  438.                 dd      32#stuv
  439.  
  440.                 dd      33#1
  441.                 dd      33#10
  442.                 dd      33#100
  443.                 dd      33#1000
  444.                 dd      33#tuvw
  445.  
  446.                 dd      34#1
  447.                 dd      34#10
  448.                 dd      34#100
  449.                 dd      34#1000
  450.                 dd      34#uvwx
  451.  
  452.                 dd      35#1
  453.                 dd      35#10
  454.                 dd      35#100
  455.                 dd      35#1000
  456.                 dd      35#vwxy
  457.  
  458.                 dd      36#1
  459.                 dd      36#10
  460.                 dd      36#100
  461.                 dd      36#1000
  462.                 dd      36#wxyz
  463.  
  464.                 if ERRORS
  465.                 dd      37#1
  466.                 dd      37#10
  467.                 dd      37#100
  468.                 dd      37#1000
  469.  
  470.                 dd      1#1
  471.                 dd      1#10
  472.                 dd      1#100
  473.                 dd      1#1000
  474.  
  475.                 dd      0#1
  476.                 dd      0#10
  477.                 dd      0#100
  478.                 dd      0#1000
  479.                 endif
  480.  
  481.  
  482. ; ───── garbage in inactive if-clause ───────────────────────────────────
  483.                 
  484.                 if 0
  485.  !"#$%&'()*+,-./
  486. 0123456789:;<=>?
  487. @ABCDEFGHIJKLMNO
  488. PQRSTUVWXYZ[\]^_
  489. `abcdefghijklmno
  490. pqrstuvwxyz{|}~
  491. ÇüéâäàåçêëèïîìÄÅ
  492. ÉæÆôöòûùÿÖÜ¢£¥₧ƒ
  493. áíóúñѪº¿⌐¬½¼¡«»
  494. ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐
  495. └┴┬├─┼╞╟╚╔╩╦╠═╬╧
  496. ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀
  497. αßΓπΣσµτΦΘΩδ∞φε∩
  498. ≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ 
  499.                 endif
  500.  
  501.  
  502. ; ╔═════════════════════════════════════════════════════════════════════╗
  503. ; ║                                                                     ║
  504. ; ║   Instructions.                                                     ║
  505. ; ║                                                                     ║
  506. ; ╚═════════════════════════════════════════════════════════════════════╝
  507.  
  508. ; ┌─────────────────────────────────────────────────────────────────────┐
  509. ; │                                                                     │
  510. ; │   Implied-operand instructions.                                     │
  511. ; │                                                                     │
  512. ; └─────────────────────────────────────────────────────────────────────┘
  513.  
  514. Start           clc
  515.                 cli
  516.                 mul
  517.                 nop
  518.                 rsp
  519.                 rti
  520.                 rts
  521.                 sec
  522.                 sei
  523.                 stop
  524.                 swi
  525.                 tax
  526.                 txa
  527.                 wait
  528.  
  529.  
  530. ; ┌─────────────────────────────────────────────────────────────────────┐
  531. ; │                                                                     │
  532. ; │   One-operand instructions.                                         │
  533. ; │                                                                     │
  534. ; └─────────────────────────────────────────────────────────────────────┘
  535.  
  536.                 asl     AddrLow                 ; lsl is alternate mnemonic
  537.                 asl     10,x
  538.                 asl     ,x
  539.                 asla
  540.                 aslx
  541.  
  542.                 asr     AddrLow
  543.                 asr     10,x
  544.                 asr     ,x
  545.                 asra
  546.                 asrx
  547.                 
  548.                 clr     AddrLow
  549.                 clr     10,x
  550.                 clr     ,x
  551.                 clra
  552.                 clrx
  553.                 
  554.                 com     AddrLow
  555.                 com     10,x
  556.                 com     ,x
  557.                 coma
  558.                 comx
  559.                 
  560.                 dec     AddrLow
  561.                 dec     10,x
  562.                 dec     ,x
  563.                 deca
  564.                 decx
  565.                 
  566.                 inc     AddrLow
  567.                 inc     10,x
  568.                 inc     ,x
  569.                 inca
  570.                 incx
  571.                 
  572.                 lsr     AddrLow
  573.                 lsr     10,x
  574.                 lsr     ,x
  575.                 lsra
  576.                 lsrx
  577.                 
  578.                 neg     AddrLow
  579.                 neg     10,x
  580.                 neg     ,x
  581.                 nega
  582.                 negx
  583.                 
  584.                 rol     AddrLow
  585.                 rol     10,x
  586.                 rol     ,x
  587.                 rola
  588.                 rolx
  589.                 
  590.                 ror     AddrLow
  591.                 ror     10,x
  592.                 ror     ,x
  593.                 rora
  594.                 rorx
  595.  
  596.                 tst     AddrLow
  597.                 tst     10,x
  598.                 tst     ,x
  599.                 tsta
  600.                 tstx
  601.  
  602.  
  603. ; ┌─────────────────────────────────────────────────────────────────────┐
  604. ; │                                                                     │
  605. ; │   Two-operand instructions.                                         │
  606. ; │                                                                     │
  607. ; └─────────────────────────────────────────────────────────────────────┘
  608.  
  609.                 adc     #123
  610.                 adc     AddrLow
  611.                 adc     AddrHigh
  612.                 adc     -10,x
  613.                 adc     10,x
  614.                 adc     ,x
  615.  
  616.                 add     #123
  617.                 add     AddrLow
  618.                 add     AddrHigh
  619.                 add     -10,x
  620.                 add     10,x
  621.                 add     ,x
  622.  
  623.                 and     #123
  624.                 and     AddrLow
  625.                 and     AddrHigh
  626.                 and     -10,x
  627.                 and     10,x
  628.                 and     ,x
  629.  
  630.                 bit     #123
  631.                 bit     AddrLow
  632.                 bit     AddrHigh
  633.                 bit     -10,x
  634.                 bit     10,x
  635.                 bit     ,x
  636.  
  637.                 cmp     #123
  638.                 cmp     AddrLow
  639.                 cmp     AddrHigh
  640.                 cmp     -10,x
  641.                 cmp     10,x
  642.                 cmp     ,x
  643.  
  644.                 cmpx    #123                    ; cpx is alternate spelling for cmpx
  645.                 cmpx    AddrLow
  646.                 cmpx    AddrHigh
  647.                 cmpx    -10,x
  648.                 cmpx    10,x
  649.                 cmpx    ,x
  650.  
  651.                 eor     #123
  652.                 eor     AddrLow
  653.                 eor     AddrHigh
  654.                 eor     -10,x
  655.                 eor     10,x
  656.                 eor     ,x
  657.  
  658.                 lda     #123
  659.                 lda     AddrLow
  660.                 lda     AddrHigh
  661.                 lda     -10,x
  662.                 lda     10,x
  663.                 lda     ,x
  664.  
  665.                 ldx     #123
  666.                 ldx     AddrLow
  667.                 ldx     AddrHigh
  668.                 ldx     -10,x
  669.                 ldx     10,x
  670.                 ldx     ,x
  671.  
  672.                 ora     #123
  673.                 ora     AddrLow
  674.                 ora     AddrHigh
  675.                 ora     -10,x
  676.                 ora     10,x
  677.                 ora     ,x
  678.                 
  679.                 sbc     #123
  680.                 sbc     AddrLow
  681.                 sbc     AddrHigh
  682.                 sbc     -10,x
  683.                 sbc     10,x
  684.                 sbc     ,x
  685.                 
  686. *               sta     #123
  687.                 sta     AddrLow
  688.                 sta     AddrHigh
  689.                 sta     -10,x
  690.                 sta     10,x
  691.                 sta     ,x
  692.  
  693. *               stx     #123
  694.                 stx     AddrLow
  695.                 stx     AddrHigh
  696.                 stx     -10,x
  697.                 stx     10,x
  698.                 stx     ,x
  699.  
  700.                 sub     #123
  701.                 sub     AddrLow
  702.                 sub     AddrHigh
  703.                 sub     -10,x
  704.                 sub     10,x
  705.                 sub     ,x
  706.  
  707.  
  708. ; ┌─────────────────────────────────────────────────────────────────────┐
  709. ; │                                                                     │
  710. ; │   Branch and jump instructions.                                     │
  711. ; │                                                                     │
  712. ; └─────────────────────────────────────────────────────────────────────┘
  713.  
  714. NearBranch      bcc     NearBranch
  715.                 bcs     NearBranch
  716.                 beq     NearBranch
  717.                 bhcc    NearBranch
  718.                 bhcs    NearBranch
  719.                 bhi     NearBranch
  720.                 bhs     NearBranch
  721.                 bih     NearBranch
  722.                 bil     NearBranch
  723.                 blo     NearBranch
  724.                 bls     NearBranch
  725.                 bmc     NearBranch
  726.                 bmi     NearBranch
  727.                 bms     NearBranch
  728.                 bne     NearBranch
  729.                 bpl     NearBranch
  730.                 bra     NearBranch
  731.                 brn     NearBranch
  732.                 bsr     NearBranch
  733.  
  734. *               jmp     #123
  735.                 jmp     AddrLow
  736.                 jmp     AddrHigh
  737.                 jmp     -10,x
  738.                 jmp     10,x
  739.                 jmp     ,x
  740.  
  741. *               jsr     #123
  742.                 jsr     AddrLow
  743.                 jsr     AddrHigh
  744.                 jsr     -10,x
  745.                 jsr     10,x
  746.                 jsr     ,x
  747.  
  748.  
  749. ; ┌─────────────────────────────────────────────────────────────────────┐
  750. ; │                                                                     │
  751. ; │   Bit manipulation instructions.                                    │
  752. ; │                                                                     │
  753. ; └─────────────────────────────────────────────────────────────────────┘
  754.  
  755.                 bclr    #0,AddrLow
  756.                 bclr    0,AddrLow
  757.                 bclr    #1,AddrLow
  758.                 bclr    1,AddrLow
  759.                 bclr    #2,AddrLow
  760.                 bclr    2,AddrLow
  761.                 bclr    #3,AddrLow
  762.                 bclr    3,AddrLow
  763.                 bclr    #4,AddrLow
  764.                 bclr    4,AddrLow
  765.                 bclr    #5,AddrLow
  766.                 bclr    #6,AddrLow
  767.                 bclr    #7,AddrLow
  768.  
  769.                 bset    #0,AddrLow
  770.                 bset    0,AddrLow
  771.                 bset    #1,AddrLow
  772.                 bset    #2,AddrLow
  773.                 bset    #3,AddrLow
  774.                 bset    #4,AddrLow
  775.                 bset    #5,AddrLow
  776.                 bset    #6,AddrLow
  777.                 bset    #7,AddrLow
  778.  
  779. NearBrClr       brclr   #0,AddrLow,NearBrClr
  780.                 brclr   #1,AddrLow,NearBrClr
  781.                 brclr   #2,AddrLow,NearBrClr
  782.                 brclr   2,AddrLow,NearBrClr
  783.                 brclr   #3,AddrLow,NearBrClr
  784.                 brclr   #4,AddrLow,NearBrClr
  785.                 brclr   #5,AddrLow,NearBrClr
  786.                 brclr   #6,AddrLow,NearBrClr
  787.                 brclr   #7,AddrLow,NearBrClr
  788.  
  789. NearBrSet       brset   #0,AddrLow,NearBrSet
  790.                 brset   #1,AddrLow,NearBrSet
  791.                 brset   #2,AddrLow,NearBrSet
  792.                 brset   #3,AddrLow,NearBrSet
  793.                 brset   #4,AddrLow,NearBrSet
  794.                 brset   #5,AddrLow,NearBrSet
  795.                 brset   #6,AddrLow,NearBrSet
  796.                 brset   #7,AddrLow,NearBrSet
  797.                 brset   7,AddrLow,NearBrSet
  798.  
  799.  
  800.                 end     Start
  801. ; ───── EOF ─────────────────────────────────────────────────────────────
  802.  
  803.