*********************************
***** MOD Constant multiplication
************** CPC 464, 664, 6128
********** Multiply HL with value
*********************************

HLx2:add        hl,hl   ; HL=HL*2
ret

HLx3:ld d,h     ; HL=HL*2+DE
ld      e,l     ; mit DE=HL
add     hl,hl
add     hl,de
ret

HLx4:add        hl,hl   ; HL=HL*2*2
add     hl,hl
ret

HLx5:ld d,h     ; HL=HL*2*2+DE
ld      e,l     ; mit DE=HL
add     hl,hl
add     hl,hl
add     hl,de
ret

HLx6:add        hl,hl   ; HL=HL*2*2+DE
ld      d,h     ; mit DE=HL*2
ld      e,l
add     hl,hl
add     hl,de
ret

HLx7:ld d,h     ; HL=HL*2*2*2+DE+DE+DE
ld      e,l     ; mit DE=HL
add     hl,hl
add     hl,hl
add     hl,de
add     hl,de
add     hl,de
ret

HLx8:add        hl,hl   ; HL=HL*2*2*2
add     hl,hl
add     hl,hl
ret

HLx9:ld d,h     ; HL=HL*2*2*2+DE
ld      e,l     ; mit DE=HL
add     hl,hl
add     hl,hl
add     hl,hl
add     hl,de
ret

HLx10:add       hl,hl   ; HL=HL*2*2*2+DE
ld      d,h     ; mit DE=HL*2
ld      e,l
add     hl,hl
add     hl,hl
add     hl,de
ret

HLx12:add       hl,hl   ; HL=HL*2*2*2+DE
add     hl,hl   ; mit DE=HL*2*2
ld      d,h
ld      e,l
add     hl,hl
add     hl,de
ret

HLx16:add       hl,hl   ; HL=HL*2*2*2*2
add     hl,hl
add     hl,hl
add     hl,hl
ret

HLx32:add       hl,hl   ; HL=HL*2*2*2*2*2
add     hl,hl
add     hl,hl
add     hl,hl
add     hl,hl
ret

HLx64:add       hl,hl   ; HL=HL*2*2*2*2*2*2
add     hl,hl
add     hl,hl
add     hl,hl
add     hl,hl
add     hl,hl
ret

HLx128:add      hl,hl   ; HL=HL*2*2*2*2*2*2*2
add     hl,hl
add     hl,hl
add     hl,hl
add     hl,hl
add     hl,hl
add     hl,hl
ret

; Allgemeine Routine:
; HL=HL*2^Akkumulator

HLxA^2:ld       b,a     ; HL=HL*(2^B)
HLLOOP:add      hl,hl   ; mit B=A
djnz    HLLOOP
ret