1
0
mirror of synced 2026-01-31 05:53:09 +00:00

Add LTEMM and SDPP drivers for XTMax (#27)

* Add gitattributes to handle line endings.

* Import the unmodified LTEMM source.

From https://www.lo-tech.co.uk/wiki/LTEMM.EXE.

* Add DOSBox and TASM for build.

* Add build script for LTEMM.

* Modity LTEMM driver for XTMax.

* Import the unmodified SDPP source.

From https://forum.vcfed.org/index.php?threads/sd-card-to-parallel-port-driver-for-msdos-ver-1-1.42008/.

* Add Borland C++ 3.1 (Minimal) for build.

* Add build script for SDPP.

* Modify SDPP driver for XTMax.

* Commit pre-built binaries for LTEMM and SDPP.

* Reorganize the drivers into a new folder.
This commit is contained in:
Matthieu Bucchianeri
2024-11-16 16:21:49 -08:00
committed by GitHub
parent fdf154bb00
commit 693d05b755
56 changed files with 7965 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,155 @@
/* conio.h
Direct MSDOS console input/output.
Copyright (c) 1987, 1992 by Borland International
All Rights Reserved.
*/
#if !defined(__CONIO_H)
#define __CONIO_H
#if !defined(___DEFS_H)
#include <_defs.h>
#endif
#if !defined(_Windows)
#define _NOCURSOR 0
#define _SOLIDCURSOR 1
#define _NORMALCURSOR 2
struct text_info {
unsigned char winleft;
unsigned char wintop;
unsigned char winright;
unsigned char winbottom;
unsigned char attribute;
unsigned char normattr;
unsigned char currmode;
unsigned char screenheight;
unsigned char screenwidth;
unsigned char curx;
unsigned char cury;
};
enum text_modes { LASTMODE=-1, BW40=0, C40, BW80, C80, MONO=7, C4350=64 };
#if !defined(__COLORS)
#define __COLORS
enum COLORS {
BLACK, /* dark colors */
BLUE,
GREEN,
CYAN,
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY, /* light colors */
LIGHTBLUE,
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW,
WHITE
};
#endif
#define BLINK 128 /* blink bit */
extern int _Cdecl directvideo;
extern int _Cdecl _wscroll;
#endif /* !_Windows */
#ifdef __cplusplus
extern "C" {
#endif
void _Cdecl clreol( void );
void _Cdecl clrscr( void );
void _Cdecl gotoxy( int __x, int __y );
int _Cdecl wherex( void );
int _Cdecl wherey( void );
int _Cdecl getch( void );
int _Cdecl getche( void );
int _Cdecl kbhit( void );
int _Cdecl putch( int __c );
#ifndef _PORT_DEFS
unsigned char _Cdecl inportb( unsigned __portid );
unsigned _Cdecl inport ( unsigned __portid );
int _Cdecl inp( unsigned __portid );
unsigned _Cdecl inpw( unsigned __portid );
void _Cdecl outportb( unsigned __portid, unsigned char __value );
void _Cdecl outport ( unsigned __portid, unsigned __value );
int _Cdecl outp( unsigned __portid, int __value );
unsigned _Cdecl outpw( unsigned __portid, unsigned __value );
#endif /* !_PORT_DEFS */
#if !defined(_Windows)
void _Cdecl delline( void );
int _Cdecl gettext( int __left, int __top,
int __right, int __bottom,
void *__destin);
void _Cdecl gettextinfo (struct text_info *__r );
void _Cdecl highvideo( void );
void _Cdecl insline( void );
void _Cdecl lowvideo( void );
int _Cdecl movetext( int __left, int __top,
int __right, int __bottom,
int __destleft, int __desttop );
void _Cdecl normvideo( void );
int _Cdecl puttext( int __left, int __top,
int __right, int __bottom,
void *__source );
void _Cdecl textattr( int __newattr );
void _Cdecl textbackground( int __newcolor );
void _Cdecl textcolor( int __newcolor );
void _Cdecl textmode( int __newmode );
void _Cdecl window( int __left, int __top, int __right, int __bottom);
void _Cdecl _setcursortype( int __cur_t );
char * _Cdecl cgets( char *__str );
int _Cdecl cprintf( const char *__format, ... );
int _Cdecl cputs( const char *__str );
int _Cdecl cscanf( const char *__format, ... );
char * _Cdecl getpass( const char *__prompt );
int _Cdecl ungetch( int __ch );
#endif /* !_Windows */
#ifndef _PORT_DEFS
#define _PORT_DEFS
/* These are in-line functions. These prototypes just clean up
some syntax checks and code generation.
*/
unsigned char _Cdecl __inportb__ (unsigned __portid);
unsigned _Cdecl __inportw__ (unsigned __portid);
unsigned char _Cdecl __outportb__(unsigned __portid, unsigned char __value);
unsigned _Cdecl __outportw__(unsigned __portid, unsigned __value);
#define inportb(__portid) __inportb__(__portid)
#define outportb(__portid, __value) ((void) __outportb__(__portid, __value))
#define inport(__portid) __inportw__(__portid)
#define outport(__portid, __value) ((void) __outportw__(__portid, __value))
/* MSC-compatible macros for port I/O */
#define inp(__portid) __inportb__ (__portid)
#define outp(__portid, __value) __outportb__(__portid, (unsigned char)__value)
#define inpw(__portid) __inportw__ (__portid)
#define outpw(__portid, __value) __outportw__(__portid, __value)
#endif /* _PORT_DEFS */
#ifdef __cplusplus
}
#endif
#endif /* __CONIO_H */

View File

@@ -0,0 +1,520 @@
/* dos.h
Defines structs, unions, macros, and functions for dealing
with MSDOS and the Intel iAPX86 microprocessor family.
Copyright (c) 1987, 1992 by Borland International
All Rights Reserved.
*/
#ifndef __DOS_H
#define __DOS_H
#if !defined(___DEFS_H)
#include <_defs.h>
#endif
#if !defined(_RTLDLL)
extern int _Cdecl errno;
extern int _Cdecl _doserrno;
#else
#ifdef __cplusplus
extern "C" {
#endif
int far * far _Cdecl __getErrno(void);
int far * far _Cdecl __getDOSErrno(void);
#ifdef __cplusplus
}
#endif
#define errno (*__getErrno())
#define _doserrno (*__getDOSErrno())
#endif
#ifndef __DLL__
/* Variables */
extern int const _Cdecl _8087;
extern int _Cdecl _argc;
extern char **_Cdecl _argv;
extern char **_Cdecl environ;
extern unsigned _Cdecl _psp;
extern unsigned _Cdecl _heaplen;
extern unsigned char _Cdecl _osmajor;
extern unsigned char _Cdecl _osminor;
extern unsigned _Cdecl _stklen;
extern unsigned _Cdecl _fpstklen;
extern unsigned _Cdecl _version;
extern unsigned _Cdecl _osversion; /* MSC name for _version */
#endif /* __DLL__*/
#define FA_NORMAL 0x00 /* Normal file, no attributes */
#define FA_RDONLY 0x01 /* Read only attribute */
#define FA_HIDDEN 0x02 /* Hidden file */
#define FA_SYSTEM 0x04 /* System file */
#define FA_LABEL 0x08 /* Volume label */
#define FA_DIREC 0x10 /* Directory */
#define FA_ARCH 0x20 /* Archive */
/* MSC names for file attributes */
#define _A_NORMAL 0x00 /* Normal file, no attributes */
#define _A_RDONLY 0x01 /* Read only attribute */
#define _A_HIDDEN 0x02 /* Hidden file */
#define _A_SYSTEM 0x04 /* System file */
#define _A_VOLID 0x08 /* Volume label */
#define _A_SUBDIR 0x10 /* Directory */
#define _A_ARCH 0x20 /* Archive */
#define NFDS 20 /* Maximum number of fds */
struct fcb {
char fcb_drive; /* 0 = default, 1 = A, 2 = B */
char fcb_name[8]; /* File name */
char fcb_ext[3]; /* File extension */
short fcb_curblk; /* Current block number */
short fcb_recsize; /* Logical record size in bytes */
long fcb_filsize; /* File size in bytes */
short fcb_date; /* Date file was last written */
char fcb_resv[10]; /* Reserved for DOS */
char fcb_currec; /* Current record in block */
long fcb_random; /* Random record number */
};
struct xfcb {
char xfcb_flag; /* Contains 0xff to indicate xfcb */
char xfcb_resv[5];/* Reserved for DOS */
char xfcb_attr; /* Search attribute */
struct fcb xfcb_fcb; /* The standard fcb */
};
struct COUNTRY {
int co_date;
char co_curr[5];
char co_thsep[2];
char co_desep[2];
char co_dtsep[2];
char co_tmsep[2];
char co_currstyle;
char co_digits;
char co_time;
long co_case;
char co_dasep[2];
char co_fill[10];
};
#if defined(__MSC) && !defined(__cplusplus)
struct DOSERROR {
int exterror;
char class;
char action;
char locus;
};
#else
struct DOSERROR {
int de_exterror;
char de_class;
char de_action;
char de_locus;
};
#endif /* __MSC and not C++ */
struct dfree {
unsigned df_avail;
unsigned df_total;
unsigned df_bsec;
unsigned df_sclus;
};
struct diskfree_t {
unsigned total_clusters;
unsigned avail_clusters;
unsigned sectors_per_cluster;
unsigned bytes_per_sector;
};
struct fatinfo {
char fi_sclus;
char fi_fatid;
unsigned fi_nclus;
int fi_bysec;
};
struct devhdr {
long dh_next; /* Next device pointer */
short dh_attr; /* Attributes */
unsigned short dh_strat; /* Driver strategy routine */
unsigned short dh_inter; /* Driver interrupt routine */
char dh_name[8]; /* Device name */
};
struct time {
unsigned char ti_min; /* Minutes */
unsigned char ti_hour; /* Hours */
unsigned char ti_hund; /* Hundredths of seconds */
unsigned char ti_sec; /* Seconds */
};
struct dostime_t {
unsigned char hour; /* Hours */
unsigned char minute; /* Minutes */
unsigned char second; /* Seconds */
unsigned char hsecond; /* Hundredths of seconds */
};
struct date {
int da_year; /* Year - 1980 */
char da_day; /* Day of the month */
char da_mon; /* Month (1 = Jan) */
};
struct dosdate_t {
unsigned char day; /* 1-31 */
unsigned char month; /* 1-12 */
unsigned int year; /* 1980 - 2099 */
unsigned char dayofweek;/* 0 - 6 (0=Sunday) */
};
#ifndef _REG_DEFS
#define _REG_DEFS
struct WORDREGS {
unsigned int ax, bx, cx, dx, si, di, cflag, flags;
};
struct BYTEREGS {
unsigned char al, ah, bl, bh, cl, ch, dl, dh;
};
union REGS {
struct WORDREGS x;
struct BYTEREGS h;
};
struct SREGS {
unsigned int es;
unsigned int cs;
unsigned int ss;
unsigned int ds;
};
struct REGPACK {
unsigned r_ax, r_bx, r_cx, r_dx;
unsigned r_bp, r_si, r_di, r_ds, r_es, r_flags;
};
#endif /* _REG_DEFS */
typedef struct {
char ds_drive; /* do not change */
char ds_pattern [13]; /* these fields, */
char ds_reserved [7]; /* Microsoft reserved */
char ds_attrib;
short ds_time;
short ds_date;
long ds_size;
char ds_nameZ [13]; /* result of the search, asciiz */
} dosSearchInfo; /* used with DOS functions 4E, 4F */
#ifndef _FFBLK_DEF
#define _FFBLK_DEF
struct ffblk {
char ff_reserved[21];
char ff_attrib;
unsigned ff_ftime;
unsigned ff_fdate;
long ff_fsize;
char ff_name[13];
};
#endif /* _FFBLK_DEF */
/* The MSC find_t structure corresponds exactly to the ffblk structure */
struct find_t {
char reserved[21]; /* Microsoft reserved - do not change */
char attrib; /* attribute byte for matched file */
unsigned wr_time; /* time of last write to file */
unsigned wr_date; /* date of last write to file */
long size; /* size of file */
char name[13]; /* asciiz name of matched file */
};
#ifdef __MSC
#define _find_t find_t
#endif
/* axret values for _hardresume() */
#define _HARDERR_IGNORE 0 /* ignore error */
#define _HARDERR_RETRY 1 /* retry the operation */
#define _HARDERR_ABORT 2 /* abort program */
#define _HARDERR_FAIL 3 /* fail the operation */
#define SEEK_CUR 1
#define SEEK_END 2
#define SEEK_SET 0
#ifdef __cplusplus
extern "C" {
#endif
#if !defined( _Windows )
int _Cdecl absread( int __drive, int __nsects, long __lsect,
void _FAR *__buffer );
int _Cdecl abswrite( int __drive, int __nsects, long __lsect,
void _FAR *__buffer );
int _Cdecl allocmem( unsigned __size, unsigned _FAR *__segp );
#endif
int _CType _FARFUNC bdos( int __dosfun, unsigned __dosdx, unsigned __dosal );
int _CType bdosptr( int __dosfun, void _FAR *__argument,
unsigned __dosal );
struct COUNTRY _FAR *_Cdecl country( int __xcode, struct COUNTRY _FAR *__cp);
void _Cdecl ctrlbrk( int _Cdecl( *handler )( void ));
#if !defined( _Windows )
void _CType delay( unsigned __milliseconds );
#endif
void _Cdecl _FARFUNC disable( void );
int _Cdecl _FARFUNC dosexterr( struct DOSERROR _FAR *__eblkp );
long _Cdecl _FARFUNC dostounix( struct date _FAR *__d, struct time _FAR *__t );
unsigned _Cdecl _dos_allocmem( unsigned __size, unsigned _FAR *__segp );
unsigned _Cdecl _dos_close ( int __fd );
unsigned _Cdecl _dos_commit( int __fd );
unsigned _Cdecl _dos_creat( const char _FAR *__pathP, unsigned __attr,
int _FAR *__fd );
unsigned _Cdecl _dos_creatnew( const char _FAR *__pathP, unsigned __attr,
int _FAR *__fd );
unsigned _Cdecl _dos_findfirst( const char _FAR *__path,
unsigned __attrib,
struct find_t _FAR *__finfo );
unsigned _Cdecl _dos_findnext( struct find_t _FAR *__finfo );
unsigned _Cdecl _dos_freemem( unsigned __segx );
void _Cdecl _dos_getdate( struct dosdate_t _FAR *__datep );
unsigned _Cdecl _dos_getdiskfree( unsigned __drive,
struct diskfree_t _FAR *__dtable);
void _Cdecl _dos_getdrive( unsigned _FAR *__drive );
unsigned _Cdecl _dos_getfileattr( const char _FAR *__filename,
unsigned _FAR *__attrib );
unsigned _Cdecl _dos_getftime( int __fd, unsigned _FAR *__date,
unsigned _FAR *__time );
void _Cdecl _dos_gettime( struct dostime_t _FAR *__timep );
void _Cdecl _dos_keep(unsigned char __status, unsigned __size);
unsigned _Cdecl _dos_open( const char _FAR *__pathP, unsigned __oflag,
int _FAR *__fd );
unsigned _Cdecl _dos_read( int __fd, void far *__buf, unsigned __len,
unsigned _FAR *__nread );
unsigned _Cdecl _dos_setblock( unsigned __size, unsigned __segx,
unsigned _FAR *__maxp );
unsigned _Cdecl _dos_setdate( struct dosdate_t _FAR *__datep );
void _Cdecl _dos_setdrive( unsigned __drive, unsigned _FAR *__ndrives );
unsigned _Cdecl _dos_setfileattr( const char _FAR *__filename,
unsigned _FAR __attrib);
unsigned _Cdecl _dos_setftime( int __fd, unsigned __date, unsigned __time );
unsigned _Cdecl _dos_settime( struct dostime_t _FAR *__timep );
unsigned _Cdecl _dos_write( int __fd, const void far *__buf, unsigned __len,
unsigned _FAR *__nread );
void __emit__( unsigned char __byte, ...);
void _Cdecl _FARFUNC enable( void );
#if !defined( _Windows )
int _Cdecl freemem( unsigned __segx );
#endif
int _Cdecl getcbrk( void );
void _CType getdate( struct date _FAR *__datep );
void _Cdecl getdfree( unsigned char __drive,
struct dfree _FAR *__dtable );
int _Cdecl _getdrive( void );
void _Cdecl getfat( unsigned char __drive,
struct fatinfo _FAR *__dtable );
void _Cdecl getfatd( struct fatinfo _FAR *__dtable );
unsigned _Cdecl getpsp( void );
int _Cdecl getswitchar( void );
void _CType gettime( struct time _FAR *__timep );
int _Cdecl getverify( void );
#if !defined( _Windows )
#ifdef __cplusplus
void _Cdecl _harderr( void _Cdecl (far *__fptr)( unsigned __deverr,
unsigned __doserr, unsigned far *__hdr) );
#else
void _Cdecl _harderr( void _Cdecl (far *__fptr)( ) );
#endif
void _Cdecl _hardresume( int __axret );
void _Cdecl _hardretn( int __retn );
#ifdef __cplusplus
void _CType harderr( int _Cdecl( *__handler )( int __errval, int __ax,
int __bp, int __si) );
#else
void _CType harderr( int _Cdecl( *__handler )( ) );
#endif
void _CType hardresume( int __axret );
void _CType hardretn( int __retn );
#endif
#ifndef _PORT_DEFS
unsigned _Cdecl inport ( unsigned __portid );
unsigned char _Cdecl inportb( unsigned __portid );
unsigned _Cdecl inpw ( unsigned __portid );
int _Cdecl inp ( unsigned __portid );
#endif
int _Cdecl int86( int __intno,
union REGS _FAR *__inregs,
union REGS _FAR *__outregs );
int _Cdecl int86x( int __intno,
union REGS _FAR *__inregs,
union REGS _FAR *__outregs,
struct SREGS _FAR *__segregs );
int _Cdecl intdos( union REGS _FAR *__inregs,
union REGS _FAR *__outregs );
int _Cdecl intdosx( union REGS _FAR *__inregs,
union REGS _FAR *__outregs,
struct SREGS _FAR *__segregs );
void _Cdecl intr( int __intno, struct REGPACK _FAR *__preg );
#if !defined( _Windows )
void _Cdecl keep( unsigned char __status, unsigned __size );
void _Cdecl nosound( void );
#endif
#ifndef _PORT_DEFS
void _Cdecl outport ( unsigned __portid, unsigned __value );
void _Cdecl outportb( unsigned __portid, unsigned char __value );
unsigned _Cdecl outpw ( unsigned __portid, unsigned __value );
int _Cdecl outp ( unsigned __portid, int __value );
#endif
char _FAR * _Cdecl parsfnm( const char _FAR *__cmdline,
struct fcb _FAR *__fcb, int __opt );
int _Cdecl peek( unsigned __segment, unsigned __offset );
char _Cdecl peekb( unsigned __segment, unsigned __offset );
void _Cdecl poke( unsigned __segment, unsigned __offset, int __value);
void _Cdecl pokeb( unsigned __segment,
unsigned __offset, char __value );
#if !defined( _Windows )
int _Cdecl randbrd( struct fcb _FAR *__fcb, int __rcnt );
int _Cdecl randbwr( struct fcb _FAR *__fcb, int __rcnt );
#endif
void _Cdecl segread( struct SREGS _FAR *__segp );
#if !defined( _Windows )
int _Cdecl setblock( unsigned __segx, unsigned __newsize );
#endif
int _Cdecl setcbrk( int __cbrkvalue );
void _Cdecl setdate( struct date _FAR *__datep );
void _Cdecl setswitchar( char __ch );
void _Cdecl settime( struct time _FAR *__timep );
void _Cdecl setverify( int __value );
#if !defined( _Windows )
void _Cdecl sleep( unsigned __seconds );
void _Cdecl sound( unsigned __frequency );
#endif
void _Cdecl _FARFUNC unixtodos( long __time, struct date _FAR *__d,
struct time _FAR *__t );
int _CType unlink( const char _FAR *__path );
/* These are in-line functions. These prototypes just clean up
some syntax checks and code generation.
*/
void _Cdecl __cli__( void );
void _Cdecl __sti__( void );
void _Cdecl __int__( int __interruptnum );
#define disable( ) __emit__( (char )( 0xfa ) )
#define _disable( ) __emit__( (char )( 0xfa ) ) /* MSC name */
#define enable( ) __emit__( (char )( 0xfb ) )
#define _enable( ) __emit__( (char )( 0xfb ) ) /* MSC name */
#define geninterrupt( i ) __int__( i ) /* Interrupt instruction */
#ifndef _PORT_DEFS
#define _PORT_DEFS
unsigned char _Cdecl __inportb__ ( unsigned __portid );
unsigned _Cdecl __inportw__ ( unsigned __portid );
unsigned char _Cdecl __outportb__( unsigned __portid, unsigned char __value );
unsigned _Cdecl __outportw__( unsigned __portid, unsigned __value );
#define inportb(__portid) __inportb__(__portid)
#define outportb(__portid, __value) ((void) __outportb__(__portid, __value))
#define inport(__portid) __inportw__(__portid)
#define outport(__portid, __value) ((void) __outportw__(__portid, __value))
/* MSC-compatible macros for port I/O */
#define inp(__portid) __inportb__ (__portid)
#define outp(__portid, __value) __outportb__(__portid, (unsigned char)__value)
#define inpw(__portid) __inportw__ (__portid)
#define outpw(__portid, __value) __outportw__(__portid, __value)
#endif /* _PORT_DEFS */
#if !__STDC__
extern unsigned _Cdecl _ovrbuffer;
int cdecl far _OvrInitEms( unsigned __emsHandle, unsigned __emsFirst,
unsigned __emsPages );
int cdecl far _OvrInitExt( unsigned long __extStart,
unsigned long __extLength );
char far *cdecl getdta( void );
void cdecl setdta( char far *__dta );
#define MK_FP( seg,ofs )( (void _seg * )( seg ) +( void near * )( ofs ))
#define FP_SEG( fp )( (unsigned )( void _seg * )( void far * )( fp ))
#define FP_OFF( fp )( (unsigned )( fp ))
#ifdef __cplusplus
void _Cdecl _chain_intr ( void interrupt (far *__target)( ... ));
void interrupt( far * _Cdecl _dos_getvect( unsigned __interruptno ))( ... );
void interrupt( far * _CType getvect( int __interruptno ))( ... );
void _Cdecl _dos_setvect( unsigned __interruptno,
void interrupt( far *__isr )( ... ));
void _CType setvect( int __interruptno,
void interrupt( far *__isr )( ... ));
int inline _Cdecl peek( unsigned __segment, unsigned __offset )
{ return( *( (int far* )MK_FP( __segment, __offset )) ); }
char inline _Cdecl peekb( unsigned __segment, unsigned __offset )
{ return( *( (char far* )MK_FP( __segment, __offset )) ); }
void inline _Cdecl poke( unsigned __segment, unsigned __offset, int __value )
{( *( (int far* )MK_FP( __segment, __offset )) = __value ); }
void inline _Cdecl pokeb( unsigned __segment, unsigned __offset, char __value )
{( *( (char far* )MK_FP( __segment, __offset )) = __value ); }
#else
void _Cdecl _chain_intr ( void interrupt (far *__target)( ));
void interrupt( far * _Cdecl _dos_getvect( unsigned __interruptno ))( );
void interrupt( far * _CType getvect( int __interruptno ))( );
void _Cdecl _dos_setvect( unsigned __interruptno,
void interrupt( far *__isr )( ));
void _CType setvect( int __interruptno,
void interrupt( far *__isr )( ) );
#define peek( a,b )( *( (int far* )MK_FP( (a ),( b )) ))
#define peekb( a,b )( *( (char far* )MK_FP( (a ),( b )) ))
#define poke( a,b,c )( *( (int far* )MK_FP( (a ),( b )) ) =( int )( c ))
#define pokeb( a,b,c )( *( (char far* )MK_FP( (a ),( b )) ) =( char )( c ))
#endif /* __cplusplus */
#endif /* !__STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* __DOS_H */


View File

@@ -0,0 +1,91 @@
/* mem.h
Memory manipulation functions
Copyright (c) 1987, 1992 by Borland International
All Rights Reserved.
*/
#if !defined(__MEM_H)
#define __MEM_H
#if !defined(___DEFS_H)
#include <_defs.h>
#endif
#ifndef NULL
#include <_null.h>
#endif
#ifndef _STDDEF
#define _STDDEF
#ifndef _PTRDIFF_T
#define _PTRDIFF_T
#if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
typedef long ptrdiff_t;
#else
typedef int ptrdiff_t;
#endif
#endif
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
void _FAR * _FARFUNC _Cdecl memccpy(void _FAR *__dest, const void _FAR *__src,
int __c, size_t __n);
void _FAR * _FARFUNC _Cdecl memchr(const void _FAR *__s, int __c, size_t __n);
int _FARFUNC _Cdecl memcmp(const void _FAR *__s1, const void _FAR *__s2,
size_t __n);
void _FAR * _FARFUNC _Cdecl memcpy(void _FAR *__dest, const void _FAR *__src,
size_t __n);
int _FARFUNC _Cdecl memicmp(const void _FAR *__s1, const void _FAR *__s2,
size_t __n);
void _FAR * _CType _FARFUNC memmove(void _FAR *__dest, const void _FAR *__src,
size_t __n);
void _FAR * _CType _FARFUNC memset(void _FAR *__s, int __c, size_t __n);
void _FARFUNC _Cdecl movedata(unsigned __srcseg, unsigned __srcoff,
unsigned __dstseg,unsigned __dstoff, size_t __n);
void _FARFUNC _Cdecl movmem(const void _FAR *__src, void _FAR *__dest,
unsigned __length);
void _FARFUNC _Cdecl setmem(void _FAR *__dest,unsigned __length, char __value);
#if !__STDC__
void far * _FARCALL cdecl _fmemccpy(void far *__dest, const void far *__src,
int __c, size_t __n);
void far * _FARCALL cdecl _fmemchr(const void far *__s, int __c, size_t __n);
int _FARCALL cdecl _fmemcmp(const void far *__s1, const void far *__s2,
size_t __n);
void far * _FARCALL cdecl _fmemcpy(void far *__dest, const void far *__src,
size_t __n);
int _FARCALL cdecl _fmemicmp(const void far *__s1, const void far *__s2,
size_t __n);
void far * _FARCALL cdecl _fmemmove(void far *__dest, const void far *__src,
size_t __n);
void far * _FARCALL cdecl _fmemset(void far *__s, int __c, size_t __n);
void _FARCALL cdecl _fmovmem(const void far *__src, void far *__dest,
unsigned __length);
void _FARCALL cdecl _fsetmem(void far *__dest, unsigned __length,
char __value);
#endif
#if !defined(__STRING_H)
/* Intrinsic functions */
void _FAR * _Cdecl _FARFUNC __memchr__ (const void _FAR *__s, int __c, size_t __n);
int _Cdecl _FARFUNC __memcmp__(const void _FAR *__s1,
const void _FAR *__s2, size_t __n);
void _FAR * _Cdecl _FARFUNC __memcpy__(void _FAR *__dest, const void _FAR *__src,
size_t __n);
void _FAR * _CType _FARFUNC __memset__(void _FAR *__s, int __c, size_t __n);
#endif
#ifdef __cplusplus
}
#endif
#endif /* __MEM_H */

View File

@@ -0,0 +1,38 @@
/* stdarg.h
Definitions for accessing parameters in functions that accept
a variable number of arguments.
Copyright (c) 1987, 1992 by Borland International
All Rights Reserved.
*/
#ifndef __STDARG_H
#define __STDARG_H
#ifdef __VARARGS_H
#error Can't include both STDARG.H and VARARGS.H
#endif
#if !defined(___DEFS_H)
#include <_defs.h>
#endif
typedef void _FAR *va_list;
#define __size(x) ((sizeof(x)+sizeof(int)-1) & ~(sizeof(int)-1))
#if defined(__cplusplus) && !defined(__STDC__)
#define va_start(ap, parmN) (ap = ...)
#else
#define va_start(ap, parmN) ((void)((ap) = (va_list)((char _FAR *)(&parmN)+__size(parmN))))
#endif
#define va_arg(ap, type) (*(type _FAR *)(((*(char _FAR *_FAR *)&(ap))+=__size(type))-(__size(type))))
#define va_end(ap) ((void)0)
#if !__STDC__
#define _va_ptr (...)
#endif
#endif

View File

@@ -0,0 +1,248 @@
/* stdio.h
Definitions for stream input/output.
Copyright (c) 1987, 1992 by Borland International
All Rights Reserved.
*/
#ifndef __STDIO_H
#define __STDIO_H
#if !defined(___DEFS_H)
#include <_defs.h>
#endif
#if !defined(___NFILE_H)
#include <_nfile.h>
#endif
#ifndef NULL
#include <_null.h>
#endif
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
/* Definition of the file position type
*/
typedef long fpos_t;
/* Definition of the control structure for streams
*/
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char _FAR *buffer; /* Data transfer buffer */
unsigned char _FAR *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE; /* This is the FILE object */
/* Bufferisation type to be used as 3rd argument for "setvbuf" function
*/
#define _IOFBF 0
#define _IOLBF 1
#define _IONBF 2
/* "flags" bits definitions
*/
#define _F_RDWR 0x0003 /* Read/write flag */
#define _F_READ 0x0001 /* Read only file */
#define _F_WRIT 0x0002 /* Write only file */
#define _F_BUF 0x0004 /* Malloc'ed Buffer data */
#define _F_LBUF 0x0008 /* line-buffered file */
#define _F_ERR 0x0010 /* Error indicator */
#define _F_EOF 0x0020 /* EOF indicator */
#define _F_BIN 0x0040 /* Binary file indicator */
#define _F_IN 0x0080 /* Data is incoming */
#define _F_OUT 0x0100 /* Data is outgoing */
#define _F_TERM 0x0200 /* File is a terminal */
/* End-of-file constant definition
*/
#define EOF (-1) /* End of file indicator */
/* Number of files that can be open simultaneously
*/
#if __STDC__
#define FOPEN_MAX (_NFILE_ - 2) /* (_NFILE_ - stdaux & stdprn) */
#else
#define FOPEN_MAX (_NFILE_) /* Able to have 20 files */
#define SYS_OPEN (_NFILE_)
#endif
#define FILENAME_MAX 80
/* Default buffer size use by "setbuf" function
*/
#define BUFSIZ 512 /* Buffer size for stdio */
/* Size of an arry large enough to hold a temporary file name string
*/
#define L_ctermid 5 /* CON: plus null byte */
#define P_tmpdir "" /* temporary directory */
#define L_tmpnam 13 /* tmpnam buffer size */
/* Constants to be used as 3rd argument for "fseek" function
*/
#define SEEK_CUR 1
#define SEEK_END 2
#define SEEK_SET 0
/* Number of unique file names that shall be generated by "tmpnam" function
*/
#define TMP_MAX 0xFFFF
/* Standard I/O predefined streams
*/
#if !defined( _RTLDLL )
extern FILE _Cdecl _streams[];
extern unsigned _Cdecl _nfile;
#define stdin (&_streams[0])
#define stdout (&_streams[1])
#define stderr (&_streams[2])
#if !__STDC__
#define stdaux (&_streams[3])
#define stdprn (&_streams[4])
#endif
#else
#ifdef __cplusplus
extern "C" {
#endif
FILE far * far __getStream(int);
#ifdef __cplusplus
}
#endif
#define stdin __getStream(0)
#define stdout __getStream(1)
#define stderr __getStream(2)
#define stdaux __getStream(3)
#define stdprn __getStream(4)
#endif
#ifdef __cplusplus
extern "C" {
#endif
void _Cdecl clearerr(FILE _FAR *__stream);
int _Cdecl _FARFUNC fclose(FILE _FAR *__stream);
int _Cdecl _FARFUNC fflush(FILE _FAR *__stream);
int _Cdecl _FARFUNC fgetc(FILE _FAR *__stream);
int _Cdecl fgetpos(FILE _FAR *__stream, fpos_t _FAR *__pos);
char _FAR *_Cdecl _FARFUNC fgets(char _FAR *__s, int __n, FILE _FAR *__stream);
FILE _FAR *_Cdecl _FARFUNC fopen(const char _FAR *__path, const char _FAR *__mode);
int _Cdecl _FARFUNC fprintf(FILE _FAR *__stream, const char _FAR *__format, ...);
int _Cdecl _FARFUNC fputc(int __c, FILE _FAR *__stream);
int _Cdecl _FARFUNC fputs(const char _FAR *__s, FILE _FAR *__stream);
size_t _Cdecl _FARFUNC fread(void _FAR *__ptr, size_t __size, size_t __n,
FILE _FAR *__stream);
FILE _FAR *_Cdecl _FARFUNC freopen(const char _FAR *__path, const char _FAR *__mode,
FILE _FAR *__stream);
int _Cdecl _FARFUNC fscanf(FILE _FAR *__stream, const char _FAR *__format, ...);
int _Cdecl _FARFUNC fseek(FILE _FAR *__stream, long __offset, int __whence);
int _Cdecl fsetpos(FILE _FAR *__stream, const fpos_t _FAR *__pos);
long _Cdecl _FARFUNC ftell(FILE _FAR *__stream);
size_t _Cdecl _FARFUNC fwrite(const void _FAR *__ptr, size_t __size, size_t __n,
FILE _FAR *__stream);
char _FAR *_Cdecl gets(char _FAR *__s);
void _Cdecl perror(const char _FAR *__s);
int _Cdecl printf(const char _FAR *__format, ...);
int _Cdecl puts(const char _FAR *__s);
int _CType remove(const char _FAR *__path);
int _CType _FARFUNC rename(const char _FAR *__oldname,const char _FAR *__newname);
void _Cdecl _FARFUNC rewind(FILE _FAR *__stream);
int _Cdecl scanf(const char _FAR *__format, ...);
void _Cdecl setbuf(FILE _FAR *__stream, char _FAR *__buf);
int _Cdecl _FARFUNC setvbuf(FILE _FAR *__stream, char _FAR *__buf,
int __type, size_t __size);
int _Cdecl _FARFUNC sprintf(char _FAR *__buffer, const char _FAR *__format, ...);
int _Cdecl _FARFUNC sscanf(const char _FAR *__buffer,
const char _FAR *__format, ...);
char _FAR *_Cdecl _FARFUNC strerror(int __errnum);
FILE _FAR *_Cdecl _FARFUNC tmpfile(void);
char _FAR *_Cdecl _FARFUNC tmpnam(char _FAR *__s);
int _Cdecl _FARFUNC ungetc(int __c, FILE _FAR *__stream);
int _Cdecl _FARFUNC vfprintf(FILE _FAR *__stream, const char _FAR *__format,
void _FAR *__arglist);
int _Cdecl _FARFUNC vfscanf(FILE _FAR *__stream, const char _FAR *__format,
void _FAR *__arglist);
int _CType vprintf(const char _FAR *__format, void _FAR *__arglist);
int _Cdecl vscanf(const char _FAR *__format, void _FAR *__arglist);
int _Cdecl _FARFUNC vsprintf(char _FAR *__buffer, const char _FAR *__format,
void _FAR *__arglist);
int _Cdecl _FARFUNC vsscanf(const char _FAR *__buffer, const char _FAR *__format,
void _FAR *__arglist);
int _CType unlink(const char _FAR *__path);
int _Cdecl getc(FILE _FAR *__fp);
int _Cdecl getchar(void);
int _Cdecl putchar(const int __c);
int _Cdecl putc(const int __c, FILE _FAR *__fp);
int _Cdecl feof(FILE _FAR *__fp);
int _Cdecl ferror(FILE _FAR *__fp);
#if !__STDC__
int _Cdecl _FARFUNC fcloseall(void);
FILE _FAR *_Cdecl _FARFUNC fdopen(int __handle, char _FAR *__type);
int _Cdecl _FARFUNC fgetchar(void);
int _Cdecl _FARFUNC flushall(void);
int _Cdecl _FARFUNC fputchar(int __c);
FILE _FAR * _Cdecl _fsopen (const char _FAR *__path, const char _FAR *__mode,
int __shflag);
int _Cdecl getw(FILE _FAR *__stream);
int _Cdecl putw(int __w, FILE _FAR *__stream);
int _Cdecl rmtmp(void);
char _FAR * _Cdecl _FARFUNC _strerror(const char _FAR *__s);
char _FAR * _Cdecl _FARFUNC tempnam(char _FAR *__dir, char _FAR *__pfx);
#define fileno(f) ((f)->fd)
#ifdef __MSC
#define _fileno(f) fileno(f)
#endif
#endif /* !__STDC__ */
int _Cdecl _FARFUNC _fgetc(FILE _FAR *__stream); /* used by getc() macro */
int _Cdecl _FARFUNC _fputc(char __c, FILE _FAR *__stream); /* used by putc() macro */
void _Cdecl _InitEasyWin(void); /* Initialization call for Easy Windows */
#ifdef __cplusplus
}
#endif
/* The following macros provide for common functions */
#define ferror(f) ((f)->flags & _F_ERR)
#define feof(f) ((f)->flags & _F_EOF)
#define getc(f) \
((--((f)->level) >= 0) ? (unsigned char)(*(f)->curp++) : \
_fgetc (f))
#define putc(c,f) \
((++((f)->level) < 0) ? (unsigned char)(*(f)->curp++=(c)) : \
_fputc ((c),f))
#define getchar() getc(stdin)
#define putchar(c) putc((c), stdout)
#define ungetc(c,f) ungetc((c),f) /* traditionally a macro */
#endif

View File

@@ -0,0 +1,104 @@
/* _defs.h
Common definitions for pointer size and calling conventions.
Copyright (c) 1991, 1992 by Borland International
All Rights Reserved.
*/
#if !defined(___DEFS_H)
#define ___DEFS_H
#if __STDC__
# define _Cdecl
#else
# define _Cdecl cdecl
#endif
#ifndef __PAS__
# define _CType _Cdecl
#else
# define _CType pascal
#endif
#ifdef __MSC
# define _emit db
# define __far _far
# define __near _near
# define __cdecl _cdecl
# define __pascal _pascal
# define __export _export
# ifdef __SMALL__
# define _M_I86SM
# endif
# ifdef __COMPACT__
# define _M_I86CM
# endif
# ifdef __MEDIUM__
# define _M_I86MM
# endif
# ifdef __LARGE__
# define _M_I86LM
# endif
# ifndef _Windows
# define _DOS
# else
# define _WINDOWS
# endif
#endif
#if defined(__STDC__)
# define _FAR
# define _FARFUNC
# define _CLASSTYPE
#else
# if defined(_BUILDRTLDLL)
# define _FARFUNC _export
# elif defined(_RTLDLL)
# define _FARFUNC far
# else
# define _FARFUNC
# endif
# if defined(__DLL__)
# if defined(_RTLDLL) || defined(_CLASSDLL)
# define _CLASSTYPE _export
# else
# define _CLASSTYPE far
# endif
# define _FAR far
# elif defined(_RTLDLL) || defined(_CLASSDLL)
# define _CLASSTYPE huge
# define _FAR far
# else
# define _FAR
# if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
# define _CLASSTYPE near
# elif defined(__COMPACT__) || defined(__LARGE__)
# define _CLASSTYPE far
# else
# define _CLASSTYPE huge
# endif
# endif
#endif /* __STDC__ */
#if defined(_BUILDRTLDLL)
# define _FARCALL _export
#else
# define _FARCALL far
#endif
#if defined( __cplusplus )
# define _PTRDEF(name) typedef name _FAR * P##name;
# define _REFDEF(name) typedef name _FAR & R##name;
# define _REFPTRDEF(name) typedef name _FAR * _FAR & RP##name;
# define _PTRCONSTDEF(name) typedef const name _FAR * PC##name;
# define _REFCONSTDEF(name) typedef const name _FAR & RC##name;
# define _CLASSDEF(name) class _CLASSTYPE name; \
_PTRDEF(name) \
_REFDEF(name) \
_REFPTRDEF(name) \
_PTRCONSTDEF(name) \
_REFCONSTDEF(name)
#endif
#endif /* ___DEFS_H */

View File

@@ -0,0 +1,14 @@
/* _nfile.h
Maximum number of open files
Copyright (c) 1991, 1992 by Borland International
All Rights Reserved.
*/
#ifndef ___NFILE_H
#define ___NFILE_H
#define _NFILE_ 20
#endif

View File

@@ -0,0 +1,15 @@
/* _null.h
Definition of NULL.
Copyright (c) 1987, 1992 by Borland International
All Rights Reserved.
*/
#ifndef NULL
# if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
# define NULL 0
# else
# define NULL 0L
# endif
#endif

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
-LD:\LIB

Binary file not shown.

View File

@@ -0,0 +1,2 @@
-ID:\INCLUDE
-LD:\LIB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.