;
; MULUB A,B (result in HL)
; In:         AF =>   A = First number
;             BC =>   B = Second number
; Out:        HL =>       Result
; Use:        C, DE (Z80 only)
;
MULBYT: LD    C,A             ; Keep value
        LD    A,(&H2D)        ; Check MSX-version
        CP    3
        LD    A,C             ; Restore value
        JR    C,MULZ80        ; No MSX-turboR
        PUSH  BC
        CALL  &H0183
        POP   BC
        AND   A
        LD    A,C             ; Restore value
        JR    Z,MULZ80        ; Z80 mode
        MULUB A,B             ; Note: This instruction is not included in WB-ASS2!
        RET

MULZ80: LD    HL,0            ; Routine by Stefan Boer
        LD    E,A
        LD    D,0
        XOR   A
        CP    B
        RET   Z
MUL_LP: ADD   HL,DE
        DJNZ  MUL_LP
        RET
