1 ;
--------------------------------------------------------------------------
4 ; Copyright
(C
) 2000, Michael Hope
5 ; Copyright
(C
) 2021-2022, Sebastian
'basxto' Riedel
(sdcc@basxto.de
)
6 ; Copyright
(c
) 2021, Philipp Klaus Krause
8 ; This library is free software; you can redistribute it
and/or modify it
9 ; under the terms of the GNU General Public License as published by the
10 ; Free Software Foundation; either version
2, or (at your option
) any
13 ; This library is distributed in the hope that it will
be useful
,
14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ; MERCHANTABILITY
or FITNESS FOR
A PARTICULAR PURPOSE. See the
16 ; GNU General Public License for more details.
18 ; You should have received
a copy of the GNU General Public License
19 ; along with this library; see the file COPYING. If
not, write to the
20 ; Free Software Foundation
, 51 Franklin Street
, Fifth Floor
, Boston
,
23 ; As
a special exception
, if you link this library with other files
,
24 ; some of which are compiled with SDCC
, to produce an executable
,
25 ; this library does
not by itself cause the resulting executable to
26 ;
be covered by the GNU General Public License. This exception does
27 ;
not however invalidate any other reasons why the executable file
28 ; might
be covered by the GNU General Public License.
29 ;
--------------------------------------------------------------------------
31 ;; Originally from GBDK by Pascal Felber.
41 ; operands with different sign
61 ; Sign-extend before going in.
74 ;;
16-bit multiplication
81 ;;
BC = less significant word of product
83 ;; Register used
: AF
,BC,DE
,HL
85 ;; Let the smaller number loop
97 ;; Optimise for the case when this side has
8 bits of data
or
98 ;; less. This is often the case with support address calls.
105 ;; Taken from z88dk
, which originally borrowed from the
128 ;; Version that uses an
8bit multiplicand
136 ;;
BC = less significant word of product
138 ;; Register used
: AF
,BC,DE
,HL