PA_Save.h

00001 #ifndef _PA_Save
00002 #define _PA_Save
00003 
00004 
00005 
00006 
00007   #define REG_SRAM 0x0A000000
00008   
00026 #define PA_Save8bit(offset, value) SRAM[offset] = value
00027 
00040 #define PA_Save16bit(offset, value) {PA_Save8bit(offset, value&255); PA_Save8bit(offset + 1, value >> 8);}
00041 
00054 #define PA_Save32bit(offset, value) {PA_Save8bit(offset, value&255); PA_Save8bit(offset + 1, value >> 8); PA_Save8bit(offset + 2, value >> 16); PA_Save8bit(offset + 3, value >> 24);}
00055 
00056 
00069 extern inline s16 PA_SaveString(s32 offset, char *string) {
00070 u16 i = 0;
00071 
00072        while(string[i]) {
00073        SRAM[i + offset] = string[i];
00074        i++;
00075        }
00076    SRAM[i + offset] = string[i];
00077    return (i);
00078 }
00079 
00080 
00095 extern inline void PA_SaveData(s32 offset, void* Data, u16 NBytes) {
00096 u16 i = 0;
00097 u8 *adress = (u8*)Data;
00098        for (i = 0; i < NBytes; i++) SRAM[i + offset] = adress[i];
00099 }
00100 
00101 
00102 
00112 #define PA_Load8bit(offset) SRAM[offset]
00113 
00122 #define PA_Load16bit(offset) (SRAM[offset] + (SRAM[offset+1] << 8))
00123 
00132 #define PA_Load32bit(offset) (PA_Load8bit(offset) + (PA_Load8bit(offset + 1) << 8) + (PA_Load8bit(offset + 2) << 16) + (PA_Load8bit(offset + 3) << 24))
00133 
00134 
00146 extern inline s16 PA_LoadString(s32 offset, char *string) {
00147 s16 i = -1;
00148 
00149        do {
00150               i++;   
00151               string[i] = SRAM[i + offset];
00152        }
00153        while(string[i]);
00154        return i;
00155 }
00156 
00157 
00172 extern inline void PA_LoadData(s32 offset, void* Data, u16 NBytes) {
00173 u16 i = 0;
00174 u8 *adress = (u8*)Data;
00175 for (i = 0; i < NBytes; i++) adress[i] = SRAM[i + offset];
00176 }
00177  // end of Saves
00179 
00180 
00181 
00182 
00183 
00184 #endif
00185 
00186 

Généré le Thu Feb 9 15:38:26 2006 pour PAlib par  doxygen 1.3.9.1