From 7b2440363630fc413f7d6540c9c47f521aa6c912 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Sun, 17 Jan 2016 04:15:52 -0500 Subject: add missing header from previous commit --- bigfloat.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 bigfloat.h diff --git a/bigfloat.h b/bigfloat.h new file mode 100644 index 0000000..bcfcfd1 --- /dev/null +++ b/bigfloat.h @@ -0,0 +1,33 @@ +/* bignum implementation for Atari OS floating point ROM. + Only FP constants and the bignum/bugnump data types need + be defined here. See bignum.h for API. */ + +#define bignum(x) char x[6] +#define bignump char * + +/****** constants ******/ +/* zero */ +#define BIG_0 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } + +/* TODO: calculate bank interest differently: this bignum + implementation is floating point, but I might swap it out + for an int-based one! */ +/* 1.005 (bank interest) */ +#define BIG_1_005 { 0x40, 0x01, 0x00, 0x50, 0x00, 0x00 } + +/* bignum 100, used for score calculations in final_stats() */ +#define BIG_100 { 0x41, 0x01, 0x00, 0x00, 0x00, 0x00 } + +/* one thousand, one million, one hundred million */ +#define BIG_1K { 0x41, 0x10, 0x00, 0x00, 0x00, 0x00 } +#define BIG_1M { 0x43, 0x01, 0x00, 0x00, 0x00, 0x00 } +#define BIG_100M { 0x44, 0x01, 0x00, 0x00, 0x00, 0x00 } + +/* 10 million, one billion, one trillion */ +#define BIG_10M { 0x43, 0x10, 0x00, 0x00, 0x00, 0x00 } +#define BIG_1B { 0x44, 0x10, 0x00, 0x00, 0x00, 0x00 } +#define BIG_1T { 0x46, 0x01, 0x00, 0x00, 0x00, 0x00 } + +/* max value for a ulong, 2**32-1 */ +#define BIG_MAX_ULONG { 0x44, 0x42, 0x94, 0x96, 0x72, 0x95 } + -- cgit v1.2.3