PAlib: PA_Save.h Source File

Main Page | Modules | File List | Globals | Search for

# 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