115 lines
3.4 KiB
C
115 lines
3.4 KiB
C
/********************************************************************************
|
|
system.h: Ultra 64 MARIO Brothers include file
|
|
|
|
Copyright (c) 1996 Nintendo co., ltd. All rights reserved
|
|
|
|
January 17, 1996
|
|
********************************************************************************/
|
|
|
|
#ifndef SYSTEM_H
|
|
#define SYSTEM_H
|
|
|
|
#include "scheduler.h"
|
|
|
|
#define malloc(size) AllocHeap(systemHeap,size)
|
|
#define free(addr) FreeHeap(systemHeap,addr)
|
|
|
|
/*-------------------------------------------------------------------------------
|
|
* Length of message buffer.
|
|
*/
|
|
#define NUM_DMA_MESSAGES 1
|
|
#define NUM_PAD_MESSAGES 1
|
|
#define NUM_PIM_MESSAGES 32
|
|
#define NUM_SCD_MESSAGES 16
|
|
#define NUM_TSK_MESSAGES 16
|
|
|
|
|
|
/*-------------------------------------------------------------------------------
|
|
* Priority of system threads.
|
|
*/
|
|
#define PRIORITY_SYSTEM 100
|
|
#define PRIORITY_AUDIO 20
|
|
#define PRIORITY_GRAPHICS 10
|
|
|
|
|
|
/********************************************************************************
|
|
*
|
|
* External buffers
|
|
*
|
|
********************************************************************************/
|
|
|
|
extern uwlong bootThreadStack[BOOT_STACKSIZE64]; /* boot thread stack memory */
|
|
extern uwlong idleThreadStack[IDLE_STACKSIZE64]; /* idel thread stack memory */
|
|
extern uwlong mainThreadStack[MAIN_STACKSIZE64]; /* main thread stack memory */
|
|
extern uwlong audioThreadStack[MAIN_STACKSIZE64]; /* audio thread stack memory */
|
|
extern uwlong graphThreadStack[MAIN_STACKSIZE64]; /* graphic thread stack memory */
|
|
extern uwlong motorThreadStack[MAIN_STACKSIZE64]; /* motor thread stack memory */
|
|
|
|
extern uwlong datYieldBuffer[DAT_YIELD_SIZE64];
|
|
// extern uwlong audYieldBuffer[AUD_YIELD_SIZE64];
|
|
|
|
extern uwlong freeZoneStart;
|
|
|
|
|
|
|
|
/********************************************************************************
|
|
*
|
|
* External works
|
|
*
|
|
********************************************************************************/
|
|
|
|
extern char sysDebugFlag; /* debug flag */
|
|
extern char sysGvdActive; /* gvd active flag */
|
|
extern char sysProcessMeter; /* process meter active flag */
|
|
extern char sysDebugMessage; /* debug message active flag */
|
|
|
|
extern char sysHardwareReset; /* hardware reset flag */
|
|
extern char sysWipeCounter; /* hardware reset wipe counter */
|
|
|
|
extern ulong videoFrame; /* videl frame counter */
|
|
|
|
/*--------------------------------------------------------------------------------
|
|
* Thread message works
|
|
*/
|
|
extern OSIoMesg dmaIOMessageBuf; /* DMA I/O message buffer */
|
|
extern OSMesg dummyMessage; /* dummy message data */
|
|
|
|
extern OSMesgQueue dmaMessageQ; /* for DMA */
|
|
extern OSMesgQueue padMessageQ; /* for controller pad */
|
|
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* System function prototypes */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
extern void
|
|
SysChangeDebugMode(void);
|
|
|
|
extern void
|
|
BootProcess(void);
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* Time manager function prototypes */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
extern void
|
|
SetGraphCPUTime(int num);
|
|
|
|
extern void
|
|
SetAudioCPUTime(void);
|
|
|
|
extern void
|
|
SetGraphRCPTime(int num);
|
|
|
|
extern void
|
|
SetAudioRCPTime(void);
|
|
|
|
extern void
|
|
DisplayProcTime(void);
|
|
|
|
#endif
|