home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
mac
/
1000
/
CCE_1024.ZIP
/
CCE_1024
/
SOZLIB07.LZH
/
SOZDISTR
/
INCLUDE
/
XBRA.H
< prev
next >
Wrap
C/C++ Source or Header
|
1994-03-26
|
867b
|
48 lines
/*
* you have to define a long constant
* _MY_MAGIC "MAGI"
* to identify your program
*
*/
#ifndef _XBRA_H
#define _XBRA_H
typedef void (*xptr)();
typedef struct _Xbra
{
long xbra_magic;
long my_magic;
xptr next;
short jump;
void (*this) ();
} XBRA_STRUCT;
#define _XBRA_MAGIC 0x58425241L /* "XBRA" */
//#define _MY_MAGIC 0x00000000
#define _JMP_OPCODE 0x4EF9
#define _JSR_OPCODE 0x4EB9
#define _XBRA_VEC(x) ( (void (*)()) &(x.jump) )
#define _XBRA_INIT(fn) { \
_XBRA_MAGIC, \
_MY_MAGIC, \
(xptr) 0, \
_JMP_OPCODE, \
(void (*)()) fn \
}
#define _TRAP_VEC(n,x) ((void (*) ()) (((long) n << 24) | (long) &(x.jump)))
#define _TRAP_INIT(fn) { \
_XBRA_MAGIC, \
_MY_MAGIC, \
(xptr) 0, \
_JSR_OPCODE, \
(void (*)()) fn \
}
#endif /* _XBRA_H */