/*--------------------------------------------------------------------------*/ /*══════════════════════════════════════════════════════════════════════════* █ ▄▀ █▀▀▀▀ █ ▄▀ █▀▀█ █▀▀▀█ █▀▀▀█ █▀▀▀█ █▀▀▀▄ ██▀▄ ██▀▀ ██▀ ██▀▀█ ██ █ ██▀▀█ ██▀█▀ ██ █ ▀▀ ▀ ▀▀▀▀▀ ▀▀ ▀▀▀▀▀ ▀▀▀▀▀ ▀▀ ▀ ▀▀ ▀ ▀▀▀▀ *══════════════════════════════════════════════════════════════════════════*/ #ifdef WATCOM9 #pragma library ("f:\projet\lib386\lib_sys\lb9_sys.lib"); #else #pragma library ("f:\projet\lib386\lib_sys\lib_sys.lib"); #endif #include "f:\projet\lib386\lib_sys\dll.h" extern volatile UWORD Key ; /* scan code keyboard */ #define K_ESC 1 #define K_F1 59 #define K_F2 60 #define K_F3 61 #define K_F4 62 #define K_F5 63 #define K_F6 64 #define K_F7 65 #define K_F8 66 #define K_F9 67 #define K_F10 68 #define K_F11 87 #define K_F12 88 #define K_PLUS 78 #define K_MOINS 74 #define K_BACKSPACE 14 #define K_TAB 15 #define K_NUMLOCK 69 #define K_A 16 #define K_B 48 #define K_C 46 #define K_D 32 #define K_E 18 #define K_F 33 #define K_G 34 #define K_H 35 #define K_I 23 #define K_J 36 #define K_K 37 #define K_L 38 #define K_M 39 #define K_N 49 #define K_O 24 #define K_P 25 #define K_Q 30 #define K_R 19 #define K_S 31 #define K_T 20 #define K_U 22 #define K_V 47 #define K_W 44 #define K_X 45 #define K_Y 21 #define K_Z 17 #define K_1 2 #define K_2 3 #define K_3 4 #define K_4 5 #define K_5 6 #define K_6 7 #define K_7 8 #define K_8 9 #define K_9 10 #define K_10 11 extern volatile UWORD FuncKey ; /* mask bit touches fonctions */ #define FK_F1 1 #define FK_F2 2 #define FK_F3 4 #define FK_F4 8 #define FK_F5 16 #define FK_F6 32 #define FK_F7 64 #define FK_F8 128 #define FK_F9 256 #define FK_F10 512 #define FK_F11 1024 #define FK_F12 2048 extern volatile UWORD Joy ; /* emulation cursor key */ #define J_UP 1 #define J_DOWN 2 #define J_LEFT 4 #define J_RIGHT 8 extern volatile UWORD Fire ; /* emulation touches fire */ #define F_SPACE 1 #define F_RETURN 2 #define F_CTRL 4 #define F_ALT 8 #define F_SUPPR 16 #define F_SHIFT 32 void InitKeyboard(void) ; /* init de Key Joy Fire */ void ClearKeyboard(void) ; UWORD GetAscii(void) ; /* retourne code ascii dos */ void ClearAsciiBuffer(void) ; /* vide buffer dos */ extern UWORD AsciiMode ; /* TRUE/FALSE gestion buffer keyboard */ #define A_F1 0x3B00 #define A_F2 0x3C00 #define A_F3 0x3D00 #define A_F4 0x3E00 #define A_F5 0x3F00 #define A_F6 0x4000 #define A_F7 0x4100 #define A_F8 0x4200 #define A_F9 0x4300 #define A_F10 0x4400 #define A_ESC 0x011B #define A_UP 0x4800 #define A_DOWN 0x5000 #define A_LEFT 0x4B00 #define A_RIGHT 0x4D00 #define A_HOME 0x4700 #define A_END 0x4F00 #define A_PGUP 0x4900 #define A_PGDN 0x5100 #define A_SPACE 0x3920 #define A_RETURN 0x1C0D #define A_N_PLUS 0x4E2B #define A_N_MOINS 0x4A2D #define A_BACKSPACE 0x0E08 #define A_SUPPR 0x5300 #define A_CARRE 0x29FD #define A_1 0x226 #define A_2 0x382 #define A_3 0x422 #define A_4 0x527 #define A_5 0x628 #define A_6 0x77D #define A_7 0x88A #define A_8 0x95F #define A_9 0xA87 #define A_0 0xB85 #define A_A 0x1061 #define A_B 0x3062 #define A_C 0x2e63 #define A_D 0x2064 #define A_E 0x1265 #define A_F 0x2166 #define A_G 0x2267 #define A_H 0x2368 #define A_I 0x1769 #define A_J 0x246a #define A_K 0x256b #define A_L 0x266c #define A_M 0x276d #define A_N 0x316e #define A_O 0x186f #define A_P 0x1970 #define A_Q 0x1e71 #define A_R 0x1372 #define A_S 0x1f73 #define A_T 0x1474 #define A_U 0x1675 #define A_V 0x2f76 #define A_W 0x2c77 #define A_X 0x2d78 #define A_Y 0x1579 #define A_Z 0x117a #define FALSE 0 #define TRUE 1 #define SEEK_START 0 #define SEEK_CURRENT 1 #define SEEK_END 2 #define Rnd(n) (rand()%n) #define GetRealSeg(p) ((((ULONG)(p)) >> 4) & 0xFFFF ) #define GetRealOff(p) (((ULONG)(p)) & 0xF ) /*──────────────────────────────────────────────────────────────────────────*/ /* FILES.C */ void AddExt( char *name, char *ext ) ; LONG OpenRead( char *name ) ; LONG OpenWrite( char *name ) ; LONG OpenReadWrite( char *name ) ; ULONG Read( LONG handle, void *buffer, ULONG lenread ) ; ULONG Write( LONG handle, void *buffer, ULONG lenwrite ) ; void Close( LONG handle ) ; LONG Seek( LONG handle, LONG position,LONG mode ) ; LONG Delete( char *name ) ; ULONG FileSize( char *name ) ; /*──────────────────────────────────────────────────────────────────────────*/ /* LOADSAVE.C */ ULONG Load( char *name, void *buffer ) ; ULONG Save( char *name,void *buffer, ULONG size ) ; /*──────────────────────────────────────────────────────────────────────────*/ /* MALLOC.C */ extern LONG ModeTraceMalloc ; void *DosMalloc( LONG size, ULONG *handle ) ; void DosFree( ULONG handle ) ; void *SmartMalloc( LONG lenalloc ) ; void *Malloc( LONG lenalloc ) ; void Free( void *buffer ) ; void *Mshrink( void *buffer, ULONG taille ) ; /*──────────────────────────────────────────────────────────────────────────*/ /* LOADMALL.C */ extern ULONG LoadMallocFileSize ; void *LoadMalloc( char *name ) ; /*──────────────────────────────────────────────────────────────────────────*/ /* TIMER.C */ /* extern UBYTE *BufferGlobal ; #define TimerRef (*((ULONG *)(BufferGlobal+0))) #define NbFramePerSecond (*((UWORD *)(BufferGlobal+4))) #define WaitNbTicks (*((UWORD *)(BufferGlobal+6))) #define CmptFrame (*((UWORD *)(BufferGlobal+8))) #define Cmpt_18 (*((UWORD *)(BufferGlobal+10))) */ extern volatile ULONG TimerSystem ; extern volatile ULONG TimerRef ; extern UWORD NbFramePerSecond ; extern UWORD WaitNbTicks ; extern UWORD CmptFrame ; extern UWORD Cmpt_18 ; void SetTimer( WORD divisor ) ; WORD GetTimer() ; /*──────────────────────────────────────────────────────────────────────────*/ /* DEF_FILE.C */ LONG Def_WriteString( UBYTE *deffic, UBYTE *indentificateur, UBYTE *string ) ; LONG Def_WriteValue( UBYTE *deffic, UBYTE *indentificateur, LONG value ) ; UBYTE *Def_ReadString( UBYTE *deffic, UBYTE *indentificateur ) ; LONG Def_ReadValue( UBYTE *deffic, UBYTE *indentificateur ) ; /*──────────────────────────────────────────────────────────────────────────*/ /* BUFFER_A.ASM */ void RazMem( void *pt, ULONG size ) ; void MovMem( void *pt0, void *pt1, ULONG size ) ; LONG CompBuf( void *pt0, void *pt1, ULONG size ) ; char *Itoa( LONG value ) ; /*──────────────────────────────────────────────────────────────────────────*/ /* HQ_Ressource */ extern WORD HQR_Flag ; // flag de load done par HQR_Get typedef struct { char Name[128] ; ULONG MaxSize ; ULONG FreeSize ; UWORD MaxIndex ; UWORD NbIndex ; UBYTE *Buffer ; } T_HQR_HEADER ; typedef struct { UWORD Index ; ULONG Offset ; ULONG Size ; ULONG Time ; } T_HQR_BLOC ; void *LoadMalloc_HQR( UBYTE *name, UWORD index ) ; ULONG Load_HQR( UBYTE *name, void *ptrdest, UWORD index ) ; ULONG Size_HQR( char *name, UWORD index ) ; T_HQR_HEADER *HQR_Init_Ressource( char *hqrname, ULONG maxsize, UWORD maxindex ) ; LONG HQR_Change_Ressource( T_HQR_HEADER *header, char *newhqrname ) ; void HQR_Reset_Ressource( T_HQR_HEADER *header ) ; void HQR_Free_Ressource( T_HQR_HEADER *header ) ; void *HQR_Get( T_HQR_HEADER *header, UWORD index ) ; void *HQR_GetSample( T_HQR_HEADER *header, UWORD index ) ; UWORD HQR_Del_Bloc( T_HQR_HEADER *header, WORD index ) ; UWORD HQR_Del_Bloc_Sample( T_HQR_HEADER *header, WORD index ) ; T_HQR_BLOC *HQR_GiveIndex( UWORD index, UWORD nbindex, void *ptrlist ) ; /*──────────────────────────────────────────────────────────────────────*/ /* HQ_MEM.C */ extern ULONG Size_HQM_Memory ; extern ULONG Size_HQM_Free ; LONG HQM_Init_Memory( ULONG size ) ; void HQM_Clear_Memory() ; LONG HQM_Alloc( ULONG size, void **ptr ) ; void HQM_Free_All() ; void HQM_Free( void *ptr ) ; LONG HQM_Check() ; void HQM_Shrink_Last( void *ptr, ULONG newsize ) ; /*──────────────────────────────────────────────────────────────────────*/ /* HQ_R_M.C */ LONG HQRM_Load( UBYTE *name, UWORD index, void **ptrptr ) ; /*──────────────────────────────────────────────────────────────────────*/ /* ADELINE.C */ #define INIT_SVGA 1 #define INIT_WAVE 2 #define INIT_MIDI 4 #define INIT_MIXER 8 #define INIT_VESA 16 #define INIT_MCGA 32 void InitAdelineSystem( char *name, LONG inits ) ; void ClearAdelineSystem() ; extern char PathConfigFile[] ; extern char MidiFM ;