/*
 * doslib.h X68k XC Compiler v1.01 Copyright 1987 SHARP/Hudson
 */
#include	<class.h>

/*
 *
 */
struct PDBADR{
	UINT	env;
	UINT	exit;
	UINT	ctrlc;
	UINT	errexit;
	UINT	comline;
	UBYTE	handle[12];
	UINT	bss;
	UINT	heep;
	UINT	stack;
	UINT	usp;
	UINT	ssp;
	UWORD	sr;
	UWORD	abort_sr;
	UINT	abort_ssp;
	UINT	trap10;
	UINT	trap11;
	UINT	trap12;
	UINT	trap13;
	UINT	trap14;
	UINT	osflg;
	UBYTE	reserve[28];
	UBYTE	exe_path[68];
	UBYTE	exe_name[24];
};

struct	INPPTR{
	UBYTE	max;
	UBYTE	length;
	UBYTE	buffer[256];
};
	
/*
 *
 */


struct	COMLINE{
	UBYTE	len;
	UBYTE	buffer[255];
};
	
/*
 *
 */

struct	NAMESTBUF{
	UBYTE	flg;
	UBYTE	drive;
	UBYTE	path[65];
	UBYTE	name1[8];
	UBYTE	ext[3];
	UBYTE	name2[10];
};
	
/*
 *
 */

struct	FREEINF{
	UWORD	free;
	UWORD	max;
	UWORD	sec;
	UWORD	byte;
};
	
/*
 *
 */

struct	NAMECKBUF{
	UBYTE	drive[2];
	UBYTE	path[65];
	UBYTE	name[19];
	UBYTE	ext[5];
};
	
/*
 *
 */

struct	DPBPTR{
	UBYTE	drive;
	UBYTE	unit;
	UWORD	byte;
	UBYTE	sec;
	UBYTE	shift;
	UWORD	fatsec;
	UBYTE	fatcount;
	UBYTE	fatlen;
	UWORD	dircount;
	UWORD	datasec;
	UWORD	maxfat;
	UWORD	dirsec;
	INT	driver;
	UBYTE	id;
	UBYTE	flg;
struct	DPBPTR * next;
	UWORD	dirfat;
	UBYTE	dirbuf[64];
};


	
/*
 *
 */

struct	FILBUF{
	UBYTE	os[21];
	UBYTE	atr;
	UWORD	time;
	UWORD	date;
	UINT	filelen;
	UBYTE	name[23];
};
	
/*
 *
 */

#ifdef	FORWORD

void EXIT();
int GETCHAR();
void PUTCHAR(int);
int COMINP();
void COMOUT(int);
void PRNOUT(int);
int INPOUT(int);
int INKEY();
int GETC();
void PRINT(UBYTE *);
int GETS(struct INPPTR *);
int KEYSNS();
int KFLUSHGP();
int KFLUSHIO(int);
int KFLUSHIN();
int KFLUSHGC();
int KFLUSHGS(struct INPPTR *);
int FFLUSH();
int CHGDRV(int);
int DRVCTRL(int,int);
int CONSNS();
int PRNSNS();
int CINSNS();
int COUTSNS();
int FATCHK(UBYTE *,UWORD *);
int HENDSPMO();
int HENDSPMP(int,UBYTE *);
int HENDSPMR(int,UBYTE *);
void HENDSPMC();
int HENDSPIO();
int HENDSPIP(int,UBYTE *);
int HENDSPIR(int,UBYTE *);
int HENDSPIC(int);
int HENDSPSO();
int HENDSPSP(int,UBYTE *);
int HENDSPSR(int,UBYTE *);
void HENDSPSC();
int CURDRV();
int GETSS(struct INPPTR *);
int FGETC(int);
int FGETS(struct INPPTR *,int);
void FPUTC(int,int);
void FPUTS(UBYTE *,int);
void ALLCLOSE();
int SUPER(int);
void FNCKEYGT(int,UBYTE *);	
void FNCKEYST(int,UBYTE *);
int C_PUTC(int);
int C_PRINT(UBYTE *);
int C_COLOR(int);
int C_LOCATE(int,int);
int C_DOWN_S();
int C_UP_S();
int C_UP(int);
int C_DOWN(int);
int C_RIGHT(int);
int C_LEFT(int);
int C_CLS_ED();
int C_CLS_ST();
int C_CLS_AL();
int C_ERA_ED();
int C_ERA_ST();
int C_ERA_AL();
int C_INS(int);
int C_DEL(int);
int C_FNKMOD(int);
int C_WINDOW(int,int);
int C_WIDTH(int);
int C_CURON();
int C_CUROFF();
int K_KEYINP();
int K_KEYSNS();
int K_SFTSNS();
int K_KEYBIT(int);
void K_INSMOD(int);
int INTVCS(int, char *);
void PSPSET(struct PDBADR *);
int GETTIM2();
int SETTIM2(int);
int NAMESTS(UBYTE *,struct NAMESTBUF *);
int GETDATE();
int SETDATE(int);
int GETTIME();
int SETTIME(int);
void VERIFY(int);
int DUP0(int,int);
int VERNUM();
void KEEPPR(int,int);
int GETDPB(int,struct DPBPTR *);
int BREAKCK(int);
void DRVXCHG(int,int);
int INTVCG(int);
int DSKFRE(int,struct FREEINF *);
int NAMECK(UBYTE *,struct NAMECKBUF *);
int MKDIR(UBYTE *);
int RMDIR(UBYTE *);
int CHDIR(UBYTE *);
int CREATE(UBYTE *,int);
int OPEN(UBYTE *,int);
int CLOSE(int);
int READ(int,UBYTE *,int);
int WRITE(int,UBYTE *,int);
int DELETE(UBYTE *);
int SEEK(int,int,int);
int CHMOD(UBYTE *,int);
int IOCTRLGT(int);
int IOCTRLST(int,int);
int IOCTRLRH(int,UBYTE *,int);
int IOCTRLWH(int,UBYTE *,int);
int IOCTRLRD(int,UBYTE *,int);
int IOCTRLWD(int,UBYTE *,int);
int IOCTRLIS(int);
int IOCTRLOS(int);
int DUP(int);
int DUP2(int);
int CURDIR(int,UBYTE *);
int MALLOC(int);
int MFREE(int);
int SETBLOCK(int,int);
int LOADEXEC(UBYTE *,struct COMLINE *,UBYTE *);
int LOAD(UBYTE *,struct COMLINE *,UBYTE *);
int PATHCHK(UBYTE *,struct COMLINE *,UBYTE *);
int LOADONLY(UBYTE *,UBYTE *,UBYTE *);
int EXECONLY(int);
void EXIT2(int);
int WAIT();
int FILES(struct FILBUF *,UBYTE *,int);
int NFILES(struct FILBUF *);
int SETPDB(struct PDBADR *);
struct PDBADR * GETPDB();
int SETENV(int,UBYTE *,UBYTE *);
int GETENV(int,UBYTE *,UBYTE *);
int VERIFYG();
int MOVE(UBYTE *,UBYTE *);
int RENAME(UBYTE *,UBYTE *);
int FILEDATE(int,int);
void DISKRED(UBYTE *,int,int,int);
void DISKWRT(UBYTE *,int,int,int);

#else
void EXIT();
int GETCHAR();
void PUTCHAR();
int COMINP();
void COMOUT();
void PRNOUT();
int INPOUT();
int INKEY();
int GETC();
void PRINT();
int GETS();
int KEYSNS();
int KFLUSHGP();
int KFLUSHIO();
int KFLUSHIN();
int KFLUSHGC();
int KFLUSHGS();
int FFLUSH();
int CHGDRV();
int DRVCTRL();
int CONSNS();
int PRNSNS();
int CINSNS();
int COUTSNS();
int FATCHK();
int HENDSPMO();
int HENDSPMP();
int HENDSPMR();
void HENDSPMC();
int HENDSPIO();
int HENDSPIP();
int HENDSPIR();
int HENDSPIC();
int HENDSPSO();
int HENDSPSP();
int HENDSPSR();
void HENDSPSC();
int CURDRV();
int GETSS();
int FGETC();
int FGETS();
void FPUTC();
void FPUTS();
void ALLCLOSE();
int SUPER();
int FNCKEYGT();	
void FNCKEYST();
int C_PUTC();
int C_PRINT();
int C_COLOR();
int C_LOCATE();
int C_DOWN_S();
int C_UP_S();
int C_UP();
int C_DOWN();
int C_RIGHT();
int C_LEFT();
int C_CLS_ED();
int C_CLS_ST();
int C_CLS_AL();
int C_ERA_ED();
int C_ERA_ST();
int C_ERA_AL();
int C_INS();
int C_DEL();
int C_FNKMOD();
int C_WINDOW();
int C_WIDTH();
int C_CURON();
int C_CUROFF();
int K_KEYINP();
int K_KEYSNS();
int K_SFTSNS();
int K_KEYBIT();
void K_INSMOD();
int INTVCS();
void PSPSET();
int GETTIM2();
int SETTIM2();
int NAMESTS();
int GETDATE();
int SETDATE();
int GETTIME();
int SETTIME();
void VERIFY();
int DUP0();
int VERNUM();
void KEEPPR();
int GETDPB();
int BREAKCK();
void DRVXCHG();
int INTVCG();
int DSKFRE();
int NAMECK();
int MKDIR();
int RMDIR();
int CHDIR();
int CREATE();
int OPEN();
int CLOSE();
int READ();
int WRITE();
int DELETE();
int SEEK();
int CHMOD();
int IOCTRLGT();
int IOCTRLST();
int IOCTRLRH();
int IOCTRLWH();
int IOCTRLRD();
int IOCTRLWD();
int IOCTRLIS();
int IOCTRLOS();
int DUP();
int DUP2();
int CURDIR();
int MALLOC();
int MFREE();
int SETBLOCK();
int LOADEXEC();
int LOAD();
int PATHCHK();
int LOADONLY();
int EXECONLY();
void EXIT2();
int WAIT();
int FILES();
int NFILES();
int SETPDB();
struct PDBADR * GETPDB();
int SETENV();
int GETENV();
int VERIFYG();
int MOVE();
int RENAME();
int FILEDATE();
void DISKRED();
void DISKWRT();

#endif
