;****************************************** ; Test file for the 6502 assembler - as6502 ; assemble as ; as6502 -nisv assmtest ; and compare output with assmtest.l ;****************************************** ;; comment treatment ;****************************************** aa = $10; ';' immediately after the '0' B = $20 space to comment subfield C = $30 tab to comment subfield DEFGHIjkl = $FFEE D =DEFGHIjkl ;****************************************** ; Number formats ;****************************************** start *= $4 ; location counter adjust .byte %0101 ; binary number .byte 022,@22 ; octal numbers - two forms .byte 22 ; decimal number .byte $22,$ff,$FF ; hex - upper/lower case .byte 'a,'b ; single ASCII characters ;****************************************** ;; ASCII character string ;****************************************** .byte "abcd\t\n",0 ; tab and new line escaped ;****************************************** ; Operation checks ;****************************************** .word aa+B ; addition .word aa-B ; subtraction .word aa*B ; multiplication .word B/aa ; division .word C%B ; modulo .word B^C ; exclusive OR .word ~C ; one's complement .word B&C ; logical AND .word aa|B ; logical OR .word D ; high byte .word * ; current location .word aa,B,C .word B*[aa+C] ; one level of parenthesis .dbyt D ; high byte-low byte word .word D/256,D%256 ;****************************************** ; Addressing Mode Check ;****************************************** *=$0100 lda =aa ; immediate addressing lda #aa ; immediate addressing, alternate lda D ; direct addessing LDA aa ; page zero addressing, aa < 256 a1 = 512 a2 = 500 lda a1-a2 ; also page zero asl A ; accumulator addressing AsL a ; accumulator addressing also brk ; implied addressing lda (aa,X) ; indirect,X addressing lda (aa),Y ; indirect,Y addressing lda aa,X ; zero page,X addressing lda D,X ; absolute,X addressing lda D,Y ; absolute,Y addressing bcc *-$10 ; relative addressing jmp (D) ; indirect addressing ldx aa,Y ; zero page,Y addressing ldx aa,y ; alternate index name .nlst ;****************************************** ; opcode check ;****************************************** adc =01 and =01 asl A bcc *+2 bcs *+2 beq *+2 bit $01 bmi *+2 bne *+2 bpl *+2 brk bvc *+2 bvs *+2 clc cld cli clv cmp =01 cpx =01 cpy =01 dec $01 dex dey eor =01 inc $01 inx iny jmp *+3 jsr *+3 lda =01 ldx =01 ldy =01 lsr A nop ora =01 pha php pla plp rol A ror A rti rts sbc =01 sec sed sei sta $01 stx $01 sty $01 tax tay tsx txa txs tya