sgdk: sys.h Source File

sgdk

- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

sys.h
Go to the documentation of this file.

    00001
    00010 #ifndef _SYS_H_
    00011 #define _SYS_H_
    00012
    00013
    00014 #define PROCESS_PALETTE_FADING      (1 << 0)
    00015 #define PROCESS_BITMAP_TASK         (1 << 1)
    00016 #define PROCESS_DMA_TASK            (1 << 2)
    00017 #define PROCESS_XGM_TASK            (1 << 3)
    00018 #define PROCESS_VDP_SCROLL_TASK     (1 << 4)
    00019
    00020
    00021 #define ROM_ALIGN_BIT               17
    00022 #define ROM_ALIGN                   (1 << ROM_ALIGN_BIT)
    00023 #define ROM_ALIGN_MASK              (ROM_ALIGN - 1)
    00024
    00025 #define ROM_START                   0
    00026 #define ROM_END                     (((u32) &_stext) + ((u32) &_sdata))
    00027 #define ROM_SIZE                    ((ROM_END + ROM_ALIGN_MASK) & (~ROM_ALIGN_MASK))
    00028
    00029
    00030 // exist through rom_head.c
    00031 typedef struct
    00032 {
    00033     char console[16];               /* Console Name (16) */
    00034     char copyright[16];             /* Copyright Information (16) */
    00035     char title_local[48];           /* Domestic Name (48) */
    00036     char title_int[48];             /* Overseas Name (48) */
    00037     char serial[14];                /* Serial Number (2, 12) */
    00038     u16 checksum;                   /* Checksum (2) */
    00039     char IOSupport[16];             /* I/O Support (16) */
    00040     u32 rom_start;                  /* ROM Start Address (4) */
    00041     u32 rom_end;                    /* ROM End Address (4) */
    00042     u32 ram_start;                  /* Start of Backup RAM (4) */
    00043     u32 ram_end;                    /* End of Backup RAM (4) */
    00044     char sram_sig[2];               /* "RA" for save ram (2) */
    00045     u16 sram_type;                  /* 0xF820 for save ram on odd bytes (2) */
    00046     u32 sram_start;                 /* SRAM start address - normally 0x200001 (4) */
    00047     u32 sram_end;                   /* SRAM end address - start + 2*sram_size (4) */
    00048     char modem_support[12];         /* Modem Support (24) */
    00049     char notes[40];                 /* Memo (40) */
    00050     char region[16];                /* Country Support (16) */
    00051 } ROMHeader;
    00052
    00053 extern const ROMHeader rom_header;
    00054
    00055 // size of text segment --> start of initialized data (RO)
    00056 extern u32 _stext;
    00057 // size of initialized data segment
    00058 extern u32 _sdata;
    00059
    00064 typedef enum
    00065 {
    00066     IMMEDIATELY,
    00067     ON_VBLANK ,
    00068     ON_VBLANK_START
    00069 } VBlankProcessTime;
    00070
    00077 extern VoidCallback *busErrorCB;
    00084 extern VoidCallback *addressErrorCB;
    00091 extern VoidCallback *illegalInstCB;
    00098 extern VoidCallback *zeroDivideCB;
    00105 extern VoidCallback *chkInstCB;
    00112 extern VoidCallback *trapvInstCB;
    00119 extern VoidCallback *privilegeViolationCB;
    00126 extern VoidCallback *traceCB;
    00133 extern VoidCallback *line1x1xCB;
    00140 extern VoidCallback *errorExceptionCB;
    00147 extern VoidCallback *intCB;
    00148
    00149
    00157 void SYS_assertReset();
    00164 void SYS_reset();
    00171 void SYS_hardReset();
    00172
    00190 bool SYS_doVBlankProcess();
    00221 bool SYS_doVBlankProcessEx(VBlankProcessTime processTime);
    00222
    00229 u16 SYS_getInterruptMaskLevel();
    00248 void SYS_setInterruptMaskLevel(u16 value);
    00249
    00268 u16 SYS_getAndSetInterruptMaskLevel(u16 value);
    00269
    00283 void SYS_disableInts();
    00293 void SYS_enableInts();
    00294
    00310 void SYS_setVBlankCallback(VoidCallback *CB);
    00311
    00330 void SYS_setVIntCallback(VoidCallback *CB);
    00344 void SYS_setHIntCallback(VoidCallback *CB);
    00355 void SYS_setExtIntCallback(VoidCallback *CB);
    00356
    00361 u16 SYS_isInVIntCallback();
    00366 u16 SYS_isInHIntCallback();
    00371 u16 SYS_isInExtIntCallback();
    00376 u16 SYS_isInInterrupt();
    00377
    00384 bool SYS_isInVInt();
    00385
    00390 void SYS_setVIntAligned(bool value);
    00395 bool SYS_isVIntAligned();
    00396
    00403 u16 SYS_isNTSC();
    00410 u16 SYS_isPAL();
    00411
    00419 u32 SYS_getFPS();
    00427 fix32 SYS_getFPSAsFloat();
    00438 u16 SYS_getCPULoad();
    00452 void SYS_showFrameLoad(bool mean);
    00459 void SYS_hideFrameLoad();
    00460
    00461
    00467 u16 SYS_computeChecksum();
    00472 bool SYS_isChecksumOk();
    00473
    00481 void SYS_die(char *err);
    00482
    00483
    00484 #endif // _SYS_H_

All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines