The Socrates Gameboy Advance Development Engine
The SGADE is a development library for the Nintendo Gameboy
Advance. It's free for all uses and is distributed without guarantees.
For more information visit
the SGADE page.
00001 // ---------------------------------------------------------------------------- 00013 // ---------------------------------------------------------------------------- 00014 00015 #ifndef SO_SYSTEM_H 00016 #define SO_SYSTEM_H 00017 00018 #ifdef __cplusplus 00019 extern "C" { 00020 #endif 00021 00022 00023 // ---------------------------------------------------------------------------- //! @{ 00034 // ---------------------------------------------------------------------------- 00035 00036 // ---------------------------------------------------------------------------- 00037 // Typedefs 00038 // ---------------------------------------------------------------------------- 00039 00040 typedef unsigned char u8; 00041 typedef unsigned short u16; 00042 typedef unsigned long u32; 00043 00044 typedef signed char s8; 00045 typedef signed short s16; 00046 typedef signed long s32; 00047 00048 typedef signed long sofixedpoint; 00049 00050 // Only define this if we are not using C++ 00051 #ifndef __cplusplus 00052 typedef u8 bool; 00053 #endif 00054 00055 // ---------------------------------------------------------------------------- 00056 // Includes 00057 // ---------------------------------------------------------------------------- 00058 #include "SoDebug.h" 00059 00060 // ---------------------------------------------------------------------------- 00061 // Functions; 00062 // ---------------------------------------------------------------------------- 00063 00064 // ---------------------------------------------------------------------------- 00065 // Defines 00066 // ---------------------------------------------------------------------------- 00067 00068 // Only if not defined yet; 00069 #ifndef NULL 00070 #define NULL (0) 00071 #endif 00072 00073 // Only define this if we are not using C++ 00074 #ifndef __cplusplus 00075 #define true (1) 00076 #define false (0) 00077 #endif 00078 00079 // Define some hardware specifics; 00080 #define SO_GBA_CLOCKCYCLES_PER_SECOND (16*1024*1024) 00081 00082 00083 // ---------------------------------------//@{ 00098 // --------------------------------------- 00099 #define SO_BIT_0 (1) 00100 #define SO_BIT_1 (1<<1) 00101 #define SO_BIT_2 (1<<2) 00102 #define SO_BIT_3 (1<<3) 00103 #define SO_BIT_4 (1<<4) 00104 #define SO_BIT_5 (1<<5) 00105 #define SO_BIT_6 (1<<6) 00106 #define SO_BIT_7 (1<<7) 00107 #define SO_BIT_8 (1<<8) 00108 #define SO_BIT_9 (1<<9) 00109 #define SO_BIT_10 (1<<10) 00110 #define SO_BIT_11 (1<<11) 00111 #define SO_BIT_12 (1<<12) 00112 #define SO_BIT_13 (1<<13) 00113 #define SO_BIT_14 (1<<14) 00114 #define SO_BIT_15 (1<<15) 00115 #define SO_BIT_16 (1<<16) 00116 #define SO_BIT_17 (1<<17) 00117 #define SO_BIT_18 (1<<18) 00118 #define SO_BIT_19 (1<<19) 00119 #define SO_BIT_20 (1<<20) 00120 #define SO_BIT_21 (1<<21) 00121 #define SO_BIT_22 (1<<22) 00122 #define SO_BIT_23 (1<<23) 00123 #define SO_BIT_24 (1<<24) 00124 #define SO_BIT_25 (1<<25) 00125 #define SO_BIT_26 (1<<26) 00126 #define SO_BIT_27 (1<<27) 00127 #define SO_BIT_28 (1<<28) 00128 #define SO_BIT_29 (1<<29) 00129 #define SO_BIT_30 (1<<30) 00130 #define SO_BIT_31 (1<<31) 00131 00132 // --------------------------------------- 00133 00134 // ---------------------------------------//@{ 00147 // --------------------------------------- 00148 #define SO_2_BITS (SO_BIT_2 - 1) 00149 #define SO_3_BITS (SO_BIT_3 - 1) 00150 #define SO_4_BITS (SO_BIT_4 - 1) 00151 #define SO_5_BITS (SO_BIT_5 - 1) 00152 #define SO_6_BITS (SO_BIT_6 - 1) 00153 #define SO_7_BITS (SO_BIT_7 - 1) 00154 #define SO_8_BITS (SO_BIT_8 - 1) 00155 #define SO_9_BITS (SO_BIT_9 - 1) 00156 #define SO_10_BITS (SO_BIT_10 - 1) 00157 #define SO_11_BITS (SO_BIT_11 - 1) 00158 #define SO_12_BITS (SO_BIT_12 - 1) 00159 #define SO_13_BITS (SO_BIT_13 - 1) 00160 #define SO_14_BITS (SO_BIT_14 - 1) 00161 #define SO_15_BITS (SO_BIT_15 - 1) 00162 #define SO_16_BITS (SO_BIT_16 - 1) 00163 #define SO_17_BITS (SO_BIT_17 - 1) 00164 #define SO_18_BITS (SO_BIT_18 - 1) 00165 #define SO_19_BITS (SO_BIT_19 - 1) 00166 #define SO_20_BITS (SO_BIT_20 - 1) 00167 #define SO_21_BITS (SO_BIT_21 - 1) 00168 #define SO_22_BITS (SO_BIT_22 - 1) 00169 #define SO_23_BITS (SO_BIT_23 - 1) 00170 #define SO_24_BITS (SO_BIT_24 - 1) 00171 #define SO_25_BITS (SO_BIT_25 - 1) 00172 #define SO_26_BITS (SO_BIT_26 - 1) 00173 #define SO_27_BITS (SO_BIT_27 - 1) 00174 #define SO_28_BITS (SO_BIT_28 - 1) 00175 #define SO_29_BITS (SO_BIT_29 - 1) 00176 #define SO_30_BITS (SO_BIT_30 - 1) 00177 #define SO_31_BITS (SO_BIT_31 - 1) 00178 #define SO_32_BITS (SO_31_BITS | SO_BIT_31) 00179 00180 // --------------------------------------- 00181 00182 00183 // ---------------------------------------------------------------------------- 00184 // EOF 00185 // ---------------------------------------------------------------------------- 00186 00187 00189 00190 #ifdef __cplusplus 00191 } // extern "C" 00192 #endif 00193 00194 #endif