#include "stdafx.h" #include "intrinsics.h" #define BLOCKSIZE (512) // 16MB sounds good for now // TODO make something reasonable float PWROFTEN(int arg) { float result = 1; int i; for (i=0;im_type) { case CHAR1: sprintf_s(buffer1,256,"%c",val->ch); break; case CHARPTR1: sprintf_s(buffer1,256,"%s",val->str); break; case DOUBLE1: sprintf_s(buffer1,256,"%lf",val->d); break; case FLOAT1: sprintf_s(buffer1,256,"%f",val->f); break; case INT1: sprintf_s(buffer1,256,"%d",val->i); break; case SIZE1: sprintf_s(buffer1,256,"%s"," "); break; default: break; } strcat_s(buffer2,256,buffer1); i++; } SYSCOMM::OutputDebugString(buffer2); va_end(vl); } void _WRITELN(int uid, size_t sz,...) { char buffer1[256]; char buffer2[256]; const debug_param *val; unsigned int i; va_list vl; va_start(vl,sz); i=0; memset(buffer1,0,256); memset(buffer2,0,256); while(im_type) { case CHAR1: sprintf_s(buffer1,256,"%c",val->ch); break; case CHARPTR1: sprintf_s(buffer1,256,"%s",val->str); break; case DOUBLE1: sprintf_s(buffer1,256,"%lf",val->d); break; case FLOAT1: sprintf_s(buffer1,256,"%f",val->f); break; case INT1: sprintf_s(buffer1,256,"%d",val->i); break; case SIZE1: sprintf_s(buffer1,256,"%s"," "); break; default: break; } strcat_s(buffer2,256,buffer1); i++; } strcat_s(buffer2,256,"\n"); SYSCOMM::OutputDebugString(buffer2); va_end(vl); } void SYSCOMM::LAUNCH_CONSOLE() { #ifdef HAS_CONSOLE AllocConsole(); SetConsoleCtrlHandler(ConsoleHandler,TRUE); #endif } BOOL WINAPI SYSCOMM::ConsoleHandler(DWORD dwEvent) { #if 0 Beep(262,300); #endif if (dwEvent==CTRL_CLOSE_EVENT) return true; else return false; } void SYSCOMM::OutputDebugString (const char *str) { WPARAM w; LPARAM l; CWinApp *pApp; pApp = AfxGetApp(); // CMainFrame *pMain = (CMainFrame*)pApp->m_pMainWnd; #if 0 // TODO - put in a system for various debug levels // like typedef enum { NONE, LACONIC, MEDIUM, VERBOSE, } // debug_level; if (m_debug==false) return; #endif w = (WPARAM) _strdup(str); l = 0; #ifdef HAS_CONSOLE DWORD dwWritten; HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); WriteFile(hOut,(LPVOID)str,(DWORD)strlen(str),&dwWritten,NULL); #endif // if (pMain!=NULL) // { // pMain->PostMessage(WM_RECIEVE_DEBUG_DATA,w,l); // } // else delete (char*)w; // Sleep(1); } int SYSCOMM::CLOSE(FILE *f,bool) { ASSERT(0); return 0; } void SYSCOMM::READ(int id, char &a) { a = ' '; } void SYSCOMM::OPENNEW(struct _iobuf *,char *) { } bool SYSCOMM::IORESULT(void) { return true; } void SYSCOMM::OPENOLD(struct _iobuf *,char *) { } int SYSCOMM::UNITWRITE (int UNITNUMBER, char *ARRAY, int LENGTH, int BLOCK, DWORD MODE) { int result = -1; switch (UNITNUMBER) { case 3: // Terminal if (MODE==0) { WRITELN(OUTPUT,ARRAY); } result = 0; default: break; } return result; } int SYSCOMM::BLOCKREAD(FILE* file, char *buf, int blocks, int offset) { int result; memset(buf,0,BLOCKSIZE); result = -1; return result; } int SYSCOMM::BLOCKWRITE(FILE* file, const char *buf, int blocks, int offset) { int result = -1; return result; }