/* BTNtape include file, version 1.0 */

/* Operations supported by TapeIO */
#define TSENSE  0    /* issue sense */
#define TREAD   1    /* read blocks */
#define TWRITE  2    /* write blocks */
#define TREWIND 3    /* rewind (rezero) tape */
#define RAWCMD  4    /* send user scsi command to tape */
#define RDCAP   5    /* read capacity */
#define TFINISH 6    /* wait for last operation to finish */

/* these control how fast TapeIO returns to the caller */
#define CTLWAIT 0    /* return when operation is done */
#define CTLIMM  1    /* return immediately */

/* inline message print functions */
#define MPR0(XYZ)           sprintf(dbb,XYZ);           MonPrint();
#define MPR1(XYZ,V1)        sprintf(dbb,XYZ,V1);        MonPrint();
#define MPR2(XYZ,V1,V2)     sprintf(dbb,XYZ,V1,V2);     MonPrint();
#define MPR3(XYZ,V1,V2,V3)  sprintf(dbb,XYZ,V1,V2,V3);  MonPrint();

/* function prototypes */
void _main(void);
void   DoSense(long);
void   FreeStuff(ULONG);
ULONG  Nextnum(short);
void   MonPrint(void);
long   TapeIO(int,int,UBYTE);
void   NewTape(void);
void   returnpkt(struct DosPacket *, ULONG, ULONG);
struct DosPacket *taskwait(void);
