/*========================================================================= dbg.cpp Author: PKG Created: Project: Purpose: Copyright (c) 2000 Climax Development Ltd ===========================================================================*/ /*---------------------------------------------------------------------- Includes -------- */ #include "dbg.h" #ifdef DBG_ACTIVE #ifndef __SYSTEM_VSPRINTF_H__ #include "system\vsprintf.h" #endif /* Std Lib ------- */ #include #include #include /* Data ---- */ /*---------------------------------------------------------------------- Tyepdefs && Defines ------------------- */ #ifdef __USER_charles__ #define DBG_OUTPUT_TO_DEBUGGER // Send output to the debugger console #define DBG_OUTPUT_TO_LOG // Allow logging of messages #define DBG_MAX_MESSAGE_LENGTH 256 // Max length of a message in the log #define DBG_LOG_LINES 10 // Number of lines to log #define DBG_SHOW_MESSAGE_ORIGIN // Pre-pend filename and line number to messages #define DBG_FILENAME_LENGTH 16 // This many chars of the filename are used #define DBG_DEFAULT_CHANNEL DC_CHARLES|DC_ALL_SYSTEM // Default channels to listen to #elif __USER_dave__ #define DBG_OUTPUT_TO_DEBUGGER // Send output to the debugger console #define DBG_OUTPUT_TO_LOG // Allow logging of messages #define DBG_MAX_MESSAGE_LENGTH 256 // Max length of a message in the log #define DBG_LOG_LINES 10 // Number of lines to log #define DBG_SHOW_MESSAGE_ORIGIN // Pre-pend filename and line number to messages #define DBG_FILENAME_LENGTH 16 // This many chars of the filename are used #define DBG_DEFAULT_CHANNEL DC_DAVE|DC_ALL_SYSTEM // Default channels to listen to #elif __USER_paul__ #define DBG_OUTPUT_TO_DEBUGGER // Send output to the debugger console #define DBG_OUTPUT_TO_LOG // Allow logging of messages #define DBG_MAX_MESSAGE_LENGTH 256 // Max length of a message in the log #define DBG_LOG_LINES 10 // Number of lines to log #define DBG_SHOW_MESSAGE_ORIGIN // Pre-pend filename and line number to messages #define DBG_FILENAME_LENGTH 16 // This many chars of the filename are used #define DBG_DEFAULT_CHANNEL DC_PAUL|DC_ALL_SYSTEM // Default channels to listen to #else #define DBG_OUTPUT_TO_DEBUGGER // Send output to the debugger console #define DBG_DEFAULT_CHANNEL DC_ALL // Default channels to listen to #endif /*---------------------------------------------------------------------- Structure defintions -------------------- */ /*---------------------------------------------------------------------- Function Prototypes ------------------- */ /*---------------------------------------------------------------------- Vars ---- */ static DEBUG_CHANNEL_FLAG s_activeChannelFlags=(DEBUG_CHANNEL_FLAG)(DBG_DEFAULT_CHANNEL); static int s_dbgChannelFlags=DC_NONE; static char s_dbgFilename[DBG_FILENAME_LENGTH+1]="\0"; static int s_dbgLine=0; #ifdef DBG_OUTPUT_TO_LOG static char s_logLines[DBG_LOG_LINES][DBG_MAX_MESSAGE_LENGTH]; static int s_logLineCount=0; static int s_logLinePtr=0; #endif /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ void __setActiveDbgChannels(DEBUG_CHANNEL_FLAG _channelFlags) { s_activeChannelFlags=_channelFlags; } /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ DEBUG_CHANNEL_FLAG __getActiveDbgChannels() { return s_activeChannelFlags; } /*---------------------------------------------------------------------- Function: Purpose: Used by the__DBGMSG() macro Params: Returns: ---------------------------------------------------------------------- */ void __setDbgChannels(DEBUG_CHANNEL_FLAG _channelFlags) { s_dbgChannelFlags=_channelFlags; } /*---------------------------------------------------------------------- Function: Purpose: Used by the__DBGMSG() macro Params: Returns: ---------------------------------------------------------------------- */ void __setDbgFilenameAndLine(const char *_filename,int _line) { int filenameLength; int start,len; filenameLength=strlen(_filename); if(filenameLength> 1), (256 >> 1), Text ); VSync(0); VidSwapDraw(); PrimDisplay(); while(DrawSync(1)); ClearNTag(OtPtr, MAX_OT); F.print( (512 >> 1), (256 >> 1), Text ); VSync(0); VidSwapDraw(); PrimDisplay(); while(DrawSync(1)); F.dump(); #endif PSYQpause(); } /*****************************************************************************/ void DbgPollHost() { #if !defined(__USER_ART__) #if __FILE_SYSTEM__==PC pollhost(); #endif #endif } #endif /* __VERSION_DEBUG__ */ /*=========================================================================== end */