/* 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 }