;
; Christian Groessler, June 2000
;
; mul40
; multiplies A by 40 and returns result in AX
; uses tmp4

        .importzp       tmp4
        .export         mul40

.proc   mul40

        ldx     #0
        stx     tmp4
        sta     loc_tmp
        asl     a
        rol     tmp4
        asl     a
        rol     tmp4            ; val * 4
        adc     loc_tmp
        bcc     L1
        inc     tmp4            ; val * 5
L1:     asl     a
        rol     tmp4            ; val * 10
        asl     a
        rol     tmp4
        asl     a
        rol     tmp4            ; val * 40
        ldx     tmp4
        rts

.endproc

        .bss
loc_tmp:.res    1
