-; This multiplication routine is similar to the one
-; from Rodnay Zaks, "Programming the Z80".
-
-__muluchar_rrx_s::
- ld hl, #2+1
- add hl, sp
- ld e, (hl)
- dec hl
- ld h, (hl)
- ld l, #0
- ld d, l
- ld b, #8
-muluchar_rrx_s_loop:
- add hl, hl
- jr nc, muluchar_rrx_s_noadd
- add hl, de
-muluchar_rrx_s_noadd:
- djnz muluchar_rrx_s_loop
- ret
-
-; operands have different sign
-
-__mulsuchar_rrx_s::
- ld hl,#2+1
- add hl,sp
-
- ld e,(hl)
- dec hl
- ld c,(hl)
- ld b, #0
- jr signexte
-
-__muluschar_rrx_s::
- ld hl,#2+1
- add hl,sp
-
- ld c,(hl)
- ld b, #0
- dec hl
- ld e,(hl)
- jr signexte
-
-;; Originally from GBDK by Pascal Felber.
-
-__mulschar_rrx_s::
- ld hl,#2+1
- add hl,sp
-
- ld e,(hl)
- dec hl
- ld l,(hl)
-
- ;; Fall through
-__mulschar_rrx_hds::
- ;; Need to sign extend before going in.
- ld c,l
-
- ld a,l
- rla
- sbc a,a
- ld b,a
-signexte:
- ld a,e
- rla
- sbc a,a
- ld d,a
-
- jr .mul16
-