etkerr.h

来自「its creates virtual multi tasking i DOS」· C头文件 代码 · 共 103 行

H
103
字号
/*******************************************************
 *                                                     *
 *  Program : EasyTask            Language : C++       *
 *                                                     *
 *  Modified : 20 nov 2003                             *
 *                                                     *
 *  Copyright (c) 1988,2003, ORITECH    V 5.1          *
 *  All rights reserved.                               *
 *                                                     *
 *******************************************************
 *  You may not give away or cell or copy any part of  *
 *  the source code.                                   *
 *******************************************************
 *                                                     *
 *  ETKERR.H       multitasking functions              *
 *                                                     *
 *******************************************************/


#if !defined(etkerr_h)   // Sentry, use file only if it's not already included.
#define etkerr_h

#if defined(_DOS16) or defined(_WIN386)
  #define _setvect _dos_setvect
  #define _getvect _dos_getvect
#else // *** WIN & DPMI ***
  #define _setvect _dpmi_setvect
  #define _getvect _dpmi_getvect
#endif

typedef struct t_TETGlo
{
  PMultiTask parenttask;
  PMultiTask currenttask;
  PMultiTask NextTask;
  word appdseg;  // save data segment application 
  PMultiTask destroyTask;
  //
  word language;  
  long user_id;
  PFunc memalloc;
  PFunc memrelease;
  PETmem appMemRec;
  //
  long timerDemo;
  //
  uint varlocLen;
  pvoid exitSave;
  dword tickCnt;
  dword tickCntLast;
  long TaskQuantityCnt;  // emul ptr
  BOOL lockTaskFlag; 
  BOOL stk_cpy;
}TETGlo;

typedef TETGlo *PETGlo;


/////////////////////////////////////////////
// interrupt functions

#if !defined(_WIN32) 

typedef struct t_WaitIrqRecord
{
  word inUse;
  word inIrq;
  #ifdef _BORLANDC
    void __interrupt( __far *vector)(__CPPARGS);
  #else
    void (__interrupt __far *vector)();  
  #endif
  PIrqCallFunc onIrq;
  word irqDSeg;
  PETGlo glo;
  BOOL immed;
}WaitIrqRecord;

#endif

// end interrupt functions
/////////////////////////////////////////////

extern PETGlo glo; 

#define std_user_id 3782462L

void *AppGetMem(PETGlo glo, uint size);
void  AppFreeMem(PETGlo glo, pvoid p, uint size);

void TestProtect();
void AlertLicence(); 
void AlertStack();

extern unsigned long delayDemo;
extern BOOL badProtect;
extern BOOL badLicence;


#endif   // etkerr_h sentry.


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?