typedef struct { char *Item; char *Desc; int FuncKey; int (*func)( void ); } MenuRec; typedef struct { char Name[9]; char Ext[4]; char Attribute; unsigned int Date; unsigned int Time; unsigned long Size; int Tag; } FileStruc; typedef struct { int x; int y; int Len; int Type; char *Address; int EditFlag; int NumDecimals; } FieldStruc; typedef struct { char Name[13]; } FileNameStruc; extern unsigned char attrib; extern unsigned char A_REVERSE; extern unsigned char A_NORMAL; #define F_PTR 0 #define F_INT 1 #define F_INT0 2 #define F_CHAR 3 #define F_LNG 4 #define F_LNG0 5 #define F_DBL 6 #define F_DATE 7 #define F_BLN 8 #define F_FLT 10 #define UnsFar unsigned char far void Accept( int x, int y, char *Prompt, char *Buffer, int Length ); int AllBlanks( register char *cp ); void AtSay( int col, int row, register char *cp ); void AtSayA( int col, int row, unsigned char attrib, register char *cp ); void AtSayF( int col, int row, char *fmt, ... ); void AtSayFA( int col, int row, unsigned char attrib, char *fmt, ... ); void Beep( void ); unsigned Bit( int x ); void BlockErase( int x, int y, int xx, int yy ); void CapsLock( int flag ); void Center( int y, char *s ); void CenterA( int y, unsigned char attrib, char *s ); void CenterF( int y, char *fmt, ... ); void CenterFA( int y, unsigned char attrib, char *fmt, ... ); void ChangeBlock( int x, int y, int xx, int yy, char attrib ); int CheckPrn( void ); char *ClearBeg( register char *cp ); void ClearBuf( void ); void ClearCRLF( char *cp ); char *ClearEnd( register char *cp ); void ClearField( int x, int y, int len ); int CompareFileNames( FileNameStruc *A, FileNameStruc *B ); int CopyFile( char *src, char *dest ); UnsFar *CurrentPos( void ); void CursorOff( void ); void CursorOn( void ); void DrawBox( int x, int y, int xx, int yy ); void DrawBox1( int x, int y, int xx, int yy ); int Exists( char *filename ); void ExplodeBox( int x, int y, int xx, int yy ); void ExplodeBox1( int x, int y, int xx, int yy ); char *FileName( FileStruc *fp ); long FileSize( char *filename ); int FindDown( FieldStruc *Field, int pos, int NUMFIELDS ); int FindLeft( FieldStruc *Field, int pos, int NUMFIELDS ); int FindRight( FieldStruc *Field, int pos, int NUMFIELDS ); int FindUp( FieldStruc *Field, int pos, int NUMFIELDS ); int GComm( void ); void GCommBackground( void (*funct)( void ) ); int GCommCheck( int Key ); void GCommLink ( int key, void (*funct)( void ) ); void GCommUnlink (int key); void GetAllFields( FieldStruc *Field, int NUMFIELDS, int (*ChHnd)( int ch ), void (*Update)( void ) ); void GetCursor( int *Top, int *Bottom ); unsigned GetDate( unsigned start_date ); double GetDouble( void ); int GetField( FieldStruc *Field ); int GetFieldA( int x, int y, int len, int type, char *address ); char *GetFile( int x, int y, int xx, int yy, char *Mask, int FileAttrib, int ExtOn ); int GetInt( void ); int GetLine( char *ptr, int dsize, int start ); long GetLong( void ); int GetRec( int filehandle, void *buffer, int sizeofrec, long fileptr ); void GetScreen( char *buffer ); int GetVidMode( void ); int GetYN(char *s); void HLin( int x, int y, int xx, int yy ); void HLin1( int x, int y, int xx, int yy ); void HideCursor( void ); void HorzMenu( MenuRec *MenuPtr, int NumChoices, int x, int y, int xx, int yy ); int IsAT( void ); int IsCGA( void ); int IsEGA( void ); int IsMONO( void ); unsigned Julian( char *datestr ); void MakeBox( char *s ); long MaxRAM( void ); void NPrint( int num, char *cp ); void NPrintA( int num, int attrib, char *cp ); void NPrintF( int num, char *fmt, ... ); void NPrintFA( int num, int attrib, char *fmt, ... ); void NormalText( void ); void NumLock( int flag ); void OutChar( unsigned char c ); void OutCharA( unsigned char attrib, unsigned char c ); void PopCurpos( void ); void PopScreen( void ); void PushCurpos( void ); int PushScreen( void ); void PutCursor( int Top, int Bottom ); void PutDate( int x, int y, int format ); void PutField( FieldStruc *Field ); void PutFree( int x, int y, char *format ); int PutRec( int filehandle, void *buffer, int sizeofrec, long fileptr ); void PutScreen( char *buffer ); void PutTime( int x, int y, int format ); void RepChar( int times, unsigned char c ); void RepCharAttr( int times, unsigned char attrib, unsigned char c ); char *RevJul( unsigned date ); void ReverseText( void ); void Say( register char *cp ); void SayA( unsigned char attrib, register char *cp ); void SayF( char *fmt, ... ); void SayFA( char attrib ,char *fmt, ... ); FileStruc *ScanDir( char *Mask, int Type ); int ScanTree( char *path, char *filespec, int (*FN)(FileStruc *f, char *p) ); int ScrAttr( void ); int ScrChar( void ); UnsFar *ScrPtr( int col, int row ); void ScrollDown( int x, int y, int xx, int yy, int n ); void ScrollLock( int flag ); void ScrollMessage(char *msg); void ScrollUp( int x, int y, int xx, int yy, int n ); void SetAttrib( char attribute ); void SetVidMode( int mode ); void StrLeft( char *dest, char *src, int num ); void StrRight( char *dest, char *src, int num ); void StrRpl( char *string, int startpos, int num, char *replacestring ); void TcclibInitialize( void ); double TimeElapsed( void ); void TimerStart( void ); unsigned TodaysDate( void ); void VLin( int x, int y, int xx, int yy ); void VLin1( int x, int y, int xx, int yy ); void VertMenu( MenuRec MP[], int numchoices, int x, int y, int xx, int yy ); int WeekDay( void ); int WindowLister( int x, int y, int xx, int yy, int CharToQuitOn, int *NumItems, int NumToStartWith, int (*CharHandler)(int ch, int Index), void (*ScreenClearer)( void ), void (*DisplayLineFunction)(int Index) ); void XDrawBox( int x, int y, int xx, int yy ); void XDrawBox1( int x, int y, int xx, int yy ); char getchf( char *list, char defchar ); int posneg( int num ); int select(char *menu[], int items, int x1, int y1, int x2); char *strdel( char *string, int start, int num ); char *strins( char *string, int start, char *insstr ); char *stristr( char *string1, char *string2 ); char *strreplace(char *string, int start, int num, char *repstr ); char *strresize( char *string, int newlen ); void writevid( int x, int y, int x2, char *p, int attrib); #define BS 8 #define FORMFEED 12 #define CR 13 #define LF 10 #define ESC 27 #define HOME 327 #define END 335 #define UP 328 #define DOWN 336 #define PGUP 329 #define PGDN 337 #define LEFT 331 #define RIGHT 333 #define INS 338 #define DEL 339 #define BS 8 #define F1 315 #define F2 316 #define F3 317 #define F4 318 #define F5 319 #define F6 320 #define F7 321 #define F8 322 #define F9 323 #define F10 324 #define ALT_A 286 #define ALT_B 304 #define ALT_C 302 #define ALT_D 288 #define ALT_E 274 #define ALT_F 289 #define ALT_G 290 #define ALT_H 291 #define ALT_I 279 #define ALT_J 292 #define ALT_K 293 #define ALT_L 294 #define ALT_M 306 #define ALT_N 305 #define ALT_O 280 #define ALT_P 281 #define ALT_Q 272 #define ALT_R 275 #define ALT_S 287 #define ALT_T 276 #define ALT_U 278 #define ALT_V 303 #define ALT_W 273 #define ALT_X 301 #define ALT_Y 277 #define ALT_Z 272 #define CTL_A 1 #define CTL_B 2 #define CTL_C 3 #define CTL_D 4 #define CTL_E 5 #define CTL_F 6 #define CTL_G 7 #define CTL_H 8 #define CTL_I 9 #define CTL_J 10 #define CTL_K 11 #define CTL_L 12 #define CTL_M 13 #define CTL_N 14 #define CTL_O 15 #define CTL_P 16 #define CTL_Q 17 #define CTL_R 18 #define CTL_S 19 #define CTL_T 20 #define CTL_U 21 #define CTL_V 22 #define CTL_W 23 #define CTL_X 24 #define CTL_Y 25 #define CTL_Z 26 #define TAB 9 #define BACKTAB 271 #define SHFT_TAB 271 #define SHFT_F1 340 #define SHFT_F2 341 #define SHFT_F3 342 #define SHFT_F4 343 #define SHFT_F5 344 #define SHFT_F6 345 #define SHFT_F7 346 #define SHFT_F8 347 #define SHFT_F9 348 #define SHFT_F10 349 #define CTL_F1 350 #define CTL_F2 351 #define CTL_F3 352 #define CTL_F4 353 #define CTL_F5 354 #define CTL_F6 355 #define CTL_F7 356 #define CTL_F8 357 #define CTL_F9 358 #define CTL_F10 359 #define CTL_HOME 327 #define CTL_END 335 #define CTL_PGUP 339 #define CTL_PGDN 337 #define CTL_LEFT 372 #define CTL_RIGHT 371 #define CTL_UP 328 #define CTL_DOWN 336 #define ALT_F1 360 #define ALT_F2 361 #define ALT_F3 362 #define ALT_F4 363 #define ALT_F5 364 #define ALT_F6 365 #define ALT_F7 366 #define ALT_F8 367 #define ALT_F9 368 #define ALT_F10 369 #define ALT_1 376 #define ALT_2 377 #define ALT_3 378 #define ALT_4 379 #define ALT_5 380 #define ALT_6 381 #define ALT_7 382 #define ALT_8 383 #define ALT_9 384 #define ALT_0 385