mulchar.s (1925B)
1;-------------------------------------------------------------------------- 2; mulchar.s 3; 4; Copyright (c) 2017-2021, Philipp Klaus Krause 5; 6; This library is free software; you can redistribute it and/or modify it 7; under the terms of the GNU General Public License as published by the 8; Free Software Foundation; either version 2, or (at your option) any 9; later version. 10; 11; This library is distributed in the hope that it will be useful, 12; but WITHOUT ANY WARRANTY; without even the implied warranty of 13; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14; GNU General Public License for more details. 15; 16; You should have received a copy of the GNU General Public License 17; along with this library; see the file COPYING. If not, write to the 18; Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, 19; MA 02110-1301, USA. 20; 21; As a special exception, if you link this library with other files, 22; some of which are compiled with SDCC, to produce an executable, 23; this library does not by itself cause the resulting executable to 24; be covered by the GNU General Public License. This exception does 25; not however invalidate any other reasons why the executable file 26; might be covered by the GNU General Public License. 27;-------------------------------------------------------------------------- 28 29.area _CODE 30 31; unsigned char x unsigned char multiplication is done by code generation. 32 33.globl __mulsuchar 34.globl __muluschar 35.globl __mulschar 36 37; operands have different sign 38 39__muluschar: 40 ld e, a 41 ld c, l 42 ld b, #0 43 44 jr signexte 45 46__mulsuchar: 47 ld c, a 48 ld b, #0 49 ld e, l 50 51 jr signexte 52 53__mulschar: 54 ld e, l 55 ld c, a 56 57 ;; Need to sign extend before going in. 58 rla 59 sbc a, a 60 ld b, a 61signexte: 62 ld a, e 63 rla 64 sbc a, a 65 ld d, a 66 67 jp __mul16 68