/* */
/* */
/* */
-/* (C) 2009, Ullrich von Bassewitz */
+/* (C) 2009-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/*****************************************************************************/
-/* Code */
+/* Code */
/*****************************************************************************/
-extern unsigned __fastcall__ cc65_sin (unsigned x);
+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 */
+
+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_umul16x8r32 (unsigned lhs, unsigned char rhs);
+/* Multiplicate an unsigned 16 bit by an unsigned 8 bit number yielding a 24
+** bit unsigned result that is extended to 32 bits for easier handling from C.
+*/
+
+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.
- */
+** is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
+*/
-extern unsigned __fastcall__ cc65_cos (unsigned x);
+int __fastcall__ cc65_cos (unsigned x);
/* Return the cosine 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.
- */
+** is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
+*/
+
+unsigned char doesclrscrafterexit (void);
+/* Indicates whether the screen automatically be cleared after program
+** termination.
+*/