; sample program for 6809 assembler ; to show what 6809 assembler actually looks like ; ; program to add two multiple precision operands ; where did I get this from? ; nbytes EQU 8 ORG $1000 ; start at 1000H ; BCD addition subroutine bcd ldb #nbytes ldx addr ; load data address andcc #$0FE ; clear carry bit next lda nbytes-1,x ; start loop adca nbytes-1*2,x daa sta nbytes-1*3,x leax -1,x decb bne next rts ; end of subroutine ; begin main program ; (uses subroutine 'bcd') ORG $1100 ; main program at 1100H lds #$013f ; initialise SP ldx temp stx addr jsr bcd ldx #msg ; get address of string jsr print ; and print it nop loop bra loop ; loop forever ; dummy routine print print rts ; allocate data area ORG $0100 addr FDB 0 temp RMB nbytes msg FCC "multiplication done" FCB $0D,00 END