home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
diskutil
/
tapebios
/
tapebind.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-08-06
|
2KB
|
72 lines
#ifndef _TAPEBIND_H
#define _TAPEBIND_H
#ifdef __GNUC__
#define trap_10_wwll(n, a, b, c) \
({ \
register long retvalue __asm__("d0"); \
short _a = (short)(a); \
long _b = (long) (b); \
long _c = (long) (c); \
\
__asm__ volatile \
("\
movl %4,sp@-; \
movl %3,sp@-; \
movw %2,sp@-; \
movw %1,sp@-; \
trap #10; \
addw #12,sp " \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c) /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
retvalue; \
})
#else
#ifdef __MSHORT__
extern int tapebios();
#define trap_10_wwlw(n,a,b,c) tapebios(n,a,(long)b,(long)c)
#endif
#endif
/* DEFINITIONS FOR TAPE I/O FUNCTIONS */
#define Tfunc 0x0ACE /* Tape BIOS Call for Tape function */
#define Ready 0 /* Tape Ready */
#define Read 1 /* Tape Read */
#define Write 2 /* Tape Write */
#define Rewind 3 /* Tape Rewind */
#define Load 4 /* Tape Load */
#define Unload 5 /* Tape Unload */
#define WrtFM 6 /* Write FileMark */
#define ReqSen 7 /* Request Sense */
#define ModSel 8 /* Mode Select */
#define ModSen 9 /* Mode Sense */
#define Space 10 /* Tape Space */
#define Erase 11 /* Tape Erase */
#define Inquire 12 /* Tape Inquiry */
#define Tready() trap_10_wwll(Tfunc, Ready, 0L, 0L)
#define Tread(a, b) trap_10_wwll(Tfunc, Read, a, b)
#define Twrite(a, b) trap_10_wwll(Tfunc, Write, a, b)
#define Trewind() trap_10_wwll(Tfunc, Rewind, 0L, 0L)
#define Tload(a) trap_10_wwll(Tfunc, Load, 0L, a)
#define Tunload(a) trap_10_wwll(Tfunc, Unload, 0L, a)
#define Tfmark(a) trap_10_wwll(Tfunc, WrtFM, 0L, a)
#define Trsense(a, b) trap_10_wwll(Tfunc, ReqSen, a, b)
#define Tmselect(a, b) trap_10_wwll(Tfunc, ModSel, a, b)
#define Tmsense(a, b) trap_10_wwll(Tfunc, ModSen, a, b)
#define Tspace(a) trap_10_wwll(Tfunc, Space, 0L, a)
#define Terase() trap_10_wwll(Tfunc, Erase, 0L, 0L)
#define Tinquire(a, b) trap_10_wwll(Tfunc, Inquire, a, b)
#endif /* end of _TAPEBIND_H */