home *** CD-ROM | disk | FTP | other *** search
- #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 */
-