home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / appleii / appxas.1 / assmtest.l < prev    next >
Text File  |  2020-01-01  |  13KB  |  297 lines

  1. as65c02 - version 4.1b - 11/22/84 - JHV [gvw]
  2.    1                   ;******************************************
  3.    2                   ; Test file for the 65c02 assembler - as65c02
  4.    3                   ; assemble as
  5.    4                   ;     as65c02 -nisv assmtest
  6.    5                   ; and compare output with assmtest.l
  7.    6                   ;******************************************
  8.    7                   ;                      ; comment treatment
  9.    8                   ;******************************************
  10.    9         0010      aa      =     $10      ; ';' immediately after the '0'
  11.   10         0020      B       =     $20 space to comment subfield
  12.   11         0030      C       =     $30        tab to comment subfield
  13.   12         FFEE      DEFGHIjkl =   $FFEE
  14.   13         FFEE      D       =DEFGHIjkl
  15.   14                   ;******************************************
  16.   15                   ; Number formats
  17.   16                   ;******************************************
  18.   17         0004      start   *=    $4       ; location counter adjust
  19.   18  0004   05                .byte %0101    ; binary number
  20.   19  0005   12 12 12          .byte 022,@22,^o22  ; octal numbers - three forms
  21.   20  0008   16                .byte 22       ; decimal number
  22.   21  0009   22 FF FF          .byte $22,$ff,$FF  ; hex - upper/lower case
  23.   22  000C   61 62             .byte 'a,'b    ; single ASCII characters
  24.   23                   ;******************************************
  25.   24                   ;                      ; ASCII character string
  26.   25                   ;******************************************
  27.   26  000E   61 62 63          .byte "abcd\t\n",0  ;   tab and new line escaped
  28.       0011   64 09 0A  
  29.       0014   00        
  30.   27                   ;******************************************
  31.   28                   ; Operation checks
  32.   29                   ;******************************************
  33.   30  0015   30 00             .word aa+B     ; addition
  34.   31  0017   F0 FF             .word aa-B     ; subtraction
  35.   32  0019   00 02             .word aa*B     ; multiplication
  36.   33  001B   02 00             .word B/aa     ; division
  37.   34  001D   10 00             .word C%B      ; modulo
  38.   35  001F   10 00             .word B!C      ; exclusive OR
  39.   36  0021   CF FF             .word ~C       ; one's complement
  40.   37  0023   20 00             .word B&C      ; logical AND
  41.   38  0025   30 00             .word aa|B     ; logical OR
  42.   39  0027   EE 00             .word D\       ; low byte
  43.   40  0029   FF 00             .word D^       ; high byte
  44.   41  002B   2B 00             .word *        ; current location
  45.   42  002D   10 00             .word aa,B,C
  46.       002F   20 00     
  47.       0031   30 00     
  48.   43  0033   00 08             .word B*<aa+C>  ; one level of parenthesis
  49.   44  0035   FF EE             .dbyt D        ; high byte-low byte word
  50.   45  0037   FF 00             .word D/256,D%256
  51.       0039   EE 00     
  52.   46                   ;******************************************
  53.   47                   ; Addressing Mode Check
  54.   48                   ;******************************************
  55.   49         0100              *=$0100
  56.   50  0100   A9 10             lda   =aa      ; immediate addressing
  57.   51  0102   A9 10             lda   #aa      ; immediate addressing, alternate
  58.   52  0104   AD EE FF          lda   D        ; direct addessing
  59.   53  0107   A5 10             LDA   aa       ; page zero addressing, aa < 256
  60.   54         0200      a1      =     512
  61.   55         01F4      a2      =     500
  62.   56  0109   A5 0C             lda   a1-a2    ; also page zero
  63.   57  010B   0A                asl   A        ; accumulator addressing
  64.   58  010C   0A                AsL   a        ; accumulator addressing also
  65.   59  010D   00                brk            ; implied addressing
  66.   60  010E   A1 10             lda   (aa,X)   ; indirect,X addressing
  67.   61  0110   B1 10             lda   (aa),Y   ; indirect,Y addressing
  68.   62  0112   B5 10             lda   aa,X     ; zero page,X addressing
  69.   63  0114   BD EE FF          lda   D,X      ; absolute,X addressing
  70.   64  0117   B9 EE FF          lda   D,Y      ; absolute,Y addressing
  71.   65  011A   90 EE             bcc   *-$10    ; relative addressing
  72.   66  011C   6C EE FF          jmp   (D)      ; indirect addressing
  73.   67  011F   7C F4 01          jmp   (a2,x)      ; abs indexed indirect
  74.   68  0122   72 10             adc   (aa)                ; indirect zero page
  75.   69  0124   B6 10             ldx   aa,Y     ; zero page,Y addressing
  76.   70  0126   B6 10             ldx   aa,y     ; alternate index name
  77.   72                   ;******************************************
  78.   73                   ; opcode check
  79.   74                   ;******************************************
  80.   75  0128   69 01             adc   =01
  81.   76  012A   29 01             and   =01
  82.   77  012C   32 10             and   (aa)
  83.   78  012E   0A                asl   A
  84.   79  012F   90 00             bcc   *+2
  85.   80  0131   B0 00             bcs   *+2
  86.   81  0133   F0 00             beq   *+2
  87.   82  0135   24 01             bit   $01
  88.   83  0137   3C 01 03          bit   $301,x
  89.   84  013A   34 01             bit   $01,x
  90.   85  013C   30 00             bmi   *+2
  91.   86  013E   D0 00             bne   *+2
  92.   87  0140   10 00             bpl   *+2
  93.   88  0142   80 00             bra   *+2
  94.   89  0144   00                brk
  95.   90  0145   50 00             bvc   *+2
  96.   91  0147   70 00             bvs   *+2
  97.   92  0149   18                clc
  98.   93  014A   D8                cld
  99.   94  014B   58                cli
  100.   95  014C   B8                clv
  101.   96  014D   C9 01             cmp   =01
  102.   97  014F   D2 10             cmp   (aa)
  103.   98  0151   E0 01             cpx   =01
  104.   99  0153   C0 01             cpy   =01
  105.  100  0155   3A                dea
  106.  101  0156   C6 01             dec   $01
  107.  102  0158   CA                dex
  108.  103  0159   88                dey
  109.  104  015A   49 01             eor   =01
  110.  105  015C   52 10             eor   (aa)
  111.  106  015E   1A                ina
  112.  107  015F   E6 01             inc   $01
  113.  108  0161   E8                inx
  114.  109  0162   C8                iny
  115.  110  0163   4C 66 01          jmp   *+3
  116.  111  0166   20 69 01          jsr   *+3
  117.  112  0169   A9 01             lda   =01
  118.  113  016B   B2 10             lda   (aa)
  119.  114  016D   A2 01             ldx   =01
  120.  115  016F   A0 01             ldy   =01
  121.  116  0171   4A                lsr   A
  122.  117  0172   EA                nop
  123.  118  0173   09 01             ora   =01
  124.  119  0175   12 10             ora   (aa)
  125.  120  0177   48                pha
  126.  121  0178   08                php
  127.  122  0179   DA                phx
  128.  123  017A   5A                phy
  129.  124  017B   68                pla
  130.  125  017C   28                plp
  131.  126  017D   FA                plx
  132.  127  017E   7A                ply
  133.  128  017F   2A                rol   A
  134.  129  0180   6A                ror   A
  135.  130  0181   40                rti
  136.  131  0182   60                rts
  137.  132  0183   E9 01             sbc   =01
  138.  133  0185   F2 10             sbc   (aa)
  139.  134  0187   38                sec
  140.  135  0188   F8                sed
  141.  136  0189   78                sei
  142.  137  018A   85 01             sta   $01
  143.  138  018C   92 10             sta   (aa)
  144.  139  018E   86 01             stx   $01
  145.  140  0190   84 01             sty   $01
  146.  141  0192   9C 01 03          stz   $301
  147.  142  0195   9E 01 03          stz   $301,x
  148.  143  0198   64 01             stz   $01
  149.  144  019A   74 01             stz   $01,x
  150.  145  019C   AA                tax
  151.  146  019D   A8                tay
  152.  147  019E   1C 01 03          trb   $301
  153.  148  01A1   14 01             trb   $01
  154.  149  01A3   0C 01 03          tsb   $301
  155.  150  01A6   04 01             tsb   $01
  156.  151  01A8   BA                tsx
  157.  152  01A9   8A                txa
  158.  153  01AA   9A                txs
  159.  154  01AB   98                tya
  160.  155                   .title  some     way for a listing
  161.  156                   .sbttl  check for .ifeq
  162.  157                           .ifeq 0
  163.  158  01AC   01 02 03          .byte 1,2,3,$34,@10
  164.       01AF   34 08     
  165.  159                           .endc
  166.  160                           .ifne 0
  167.  161                           .word 1234,$4354,@7777
  168.  162                           .endc
  169.  163                   ; now check nesting
  170.  164                           .ifeq 0
  171.  165  01B1   AD B1 01          lda   .
  172.  166                           .ifne 0
  173.  167                   m2      .asciz /help/
  174.  168                           .endc
  175.  169  01B4   ED EF F2  m3      nasc  <more of same>
  176.       01B7   E5 A0 EF  
  177.       01BA   E6 A0 F3  
  178.       01BD   E1 ED E5  
  179.  170                           .endc
  180.  171                           msb   ON
  181.  172  01C0   E8 E9 E7          .asciz /high order bits on /
  182.       01C3   E8 A0 EF  
  183.       01C6   F2 E4 E5  
  184.       01C9   F2 A0 E2  
  185.       01CC   E9 F4 F3  
  186.       01CF   A0 EF EE  
  187.       01D2   A0 00     
  188.  173  01D4   F3 E8 EF          nasc  <should not be affected>   1
  189.       01D7   F5 EC E4  
  190.       01DA   A0 EE EF  
  191.       01DD   F4 A0 E2  
  192.       01E0   E5 A0 E1  
  193.       01E3   E6 E6 E5  
  194.       01E6   E3 F4 E5  
  195.       01E9   E4 00     
  196.  174                           msb   off
  197.  175  01EB   68 69 67          .asciz /high order bits off/
  198.       01EE   68 20 6F  
  199.       01F1   72 64 65  
  200.       01F4   72 20 62  
  201.       01F7   69 74 73  
  202.       01FA   20 6F 66  
  203.       01FD   66 00     
  204.  176  01FF   F3 F4 E9          nasc  <still not affected>       0
  205.       0202   EC EC A0  
  206.       0205   EE EF F4  
  207.       0208   A0 E1 E6  
  208.       020B   E6 E5 E3  
  209.       020E   F4 E5 E4  
  210.  177         0213      m31     org   *+2
  211.  178  0213   35 02     m4      .word .+34
  212.  179         0217      m41     org   .+2
  213.  180  0217   00        m5      .byte 
  214.  181                   ;        now lets try some blank lines
  215.  182  0218   74 68 69          .asciz /this is ok?/
  216.       021B   73 20 69  
  217.       021E   73 20 6F  
  218.       0221   6B 3F 00  
  219.  183                   
  220.  184  0224   E8 EF F7          nasc  <how about this>
  221.       0227   A0 E1 E2  
  222.       022A   EF F5 F4  
  223.       022D   A0 F4 E8  
  224.       0230   E9 F3     
  225.  185                   
  226.  186  0232   00 0E             .byte 0,$e
  227.  187                   
  228.  188                   
  229.  189  0234   02 00             .word 2        ;how about two in a row
  230.  190                   .title  what  does the control l mean
  231.  191                   .sbttl  perhaps is the Dec 20 way of new page, anyway ignore it
  232.  192                           .ifeq 1
  233.  193                   .sbttl  Lets  check to see if we skip
  234.  194                           .asciz /this should not assemble/
  235.  195                   .sbttl  these lines
  236.  196                           .endc
  237.  197                   .sbttl  now   this is the living end
  238.  198         0013      aaaa    equ   aa+3
  239.  199         023C      aaa     equ   abc+5
  240.  200  0236   03                .byte 3
  241.  201  0237   F4 E8 E5  abc     nasc  <the end>
  242.       023A   A0 E5 EE  
  243.       023D   E4        
  244.  202  023E   FF                .byte 255
  245.  203         0100              org   $100
  246.  204  0100   31 00             .asciz /1/
  247.  205  0102   4C 18 01          jmp   d
  248.  206  0105   4C 1A 01          jmp   d+2
  249.  207  0108   AD 1A 01          lda   cba
  250.  208  010B   AD 33 02          lda   abc-4
  251.  209  010E   03                .byte 3
  252.  210  010F   B1                nasc  <1>
  253.  211  0110   B2 B2 00          nasc  <22> 1
  254.  212         011F      baaa    =     7+d         ; can you handle this
  255.  213  0113   F4 E8 F2          nasc  <three> 0
  256.       0116   E5 E5     
  257.  214  0118   A9 04     d       lda   #4
  258.  215  011A   29 09     cba     .word 2345
  259.  216         011C      bbc
  260.  217  011C   A6 01             ldx   d+3^
  261.  218  011E   AD 1A 01          lda   cba
  262.  219  0121   AD 1F 01          lda   baaa
  263.  220  0124   4C 1C 01          jmp   bbc
  264.  221  0127   A9 03             lda      #3
  265.  222  0129   A9 17     rep     lda   #23
  266.  223         00FE              org   $fe
  267.  224                           .ifeq <.\-$ff>    ;what does the loc counter say
  268.  225                           nop
  269.  226                           .endc
  270.  227                           .ifeq <.\-$fe>    ; loc ctr
  271.  228  00FE   EA                nop
  272.  229  00FF   EA                nop
  273.  230                           .endc
  274.  
  275. aa                      10:00    0010
  276. B                       20:00    0020
  277. C                       30:00    0030
  278. DEFGHIjkl               EE:FF    FFEE
  279. D                       EE:FF    FFEE
  280. start                   04:00    0004
  281. a1                      00:02    0200
  282. a2                      F4:01    01F4
  283. m2                      00:00    0000
  284. m3                      B4:01    01B4
  285. m31                     13:02    0213
  286. m4                      13:02    0213
  287. m41                     17:02    0217
  288. m5                      17:02    0217
  289. aaaa                    13:00    0013
  290. aaa                     3C:02    023C
  291. abc                     37:02    0237
  292. d                       18:01    0118
  293. cba                     1A:01    011A
  294. baaa                    1F:01    011F
  295. bbc                     1C:01    011C
  296. rep                     29:01    0129
  297.