From a08b7d4dafbcb7e91d587a791ae1298839182e18 Mon Sep 17 00:00:00 2001 From: uz Date: Thu, 5 Nov 2009 17:12:18 +0000 Subject: [PATCH] Added prototypes for more mul/div functions. Some of the don't currently exist. git-svn-id: svn://svn.cc65.org/cc65/trunk@4444 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- include/cc65.h | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/include/cc65.h b/include/cc65.h index 0e04cb39d..8c743121d 100644 --- a/include/cc65.h +++ b/include/cc65.h @@ -44,18 +44,32 @@ -unsigned __fastcall__ cc65_umul8x8r16 (unsigned char lhs, unsigned char rhs); -/* Multiplicate two unsigned 8 bit to yield an unsigned 16 bit result */ +long __fastcall__ cc65_idiv32by16r16 (long rhs, int lhs); +/* Divide a 32 bit signed value by a 16 bit signed value yielding a 16 + * bit result and a 16 bit remainder. The former is returned in the lower 16 + * bit of the result, the latter in the upper. If you don't need the + * remainder, just assign (or cast) to an int. + */ + +unsigned long __fastcall__ cc65_udiv32by16r16 (unsigned long rhs, unsigned lhs); +/* Divide a 32 bit unsigned value by a 16 bit unsigned value yielding a 16 + * bit result and a 16 bit remainder. The former is returned in the lower 16 + * bit of the result, the latter in the upper. If you don't need the + * remainder, just assign (or cast) to an unsigned. + */ int __fastcall__ cc65_imul8x8r16 (signed char lhs, signed char rhs); /* Multiplicate two signed 8 bit to yield an signed 16 bit result */ -unsigned long __fastcall__ cc65_umul16x16r32 (unsigned lhs, unsigned rhs); -/* Multiplicate two unsigned 16 bit to yield an unsigned 32 bit result */ - long __fastcall__ cc65_imul16x16r32 (int lhs, int rhs); /* Multiplicate two signed 16 bit to yield a signed 32 bit result */ +unsigned __fastcall__ cc65_umul8x8r16 (unsigned char lhs, unsigned char rhs); +/* Multiplicate two unsigned 8 bit to yield an unsigned 16 bit result */ + +unsigned long __fastcall__ cc65_umul16x16r32 (unsigned lhs, unsigned rhs); +/* Multiplicate two unsigned 16 bit to yield an unsigned 32 bit result */ + int __fastcall__ cc65_sin (unsigned x); /* Return the sine of the argument, which must be in range 0..360. The result * is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00. -- 2.39.5