home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / utility / misc / master / source / xbra.h < prev   
C/C++ Source or Header  |  1990-02-17  |  780b  |  39 lines

  1. #ifndef _XBRA_H
  2. #define _XBRA_H
  3.  
  4. typedef struct __xbra    *xptr;
  5.  
  6. typedef struct __xbra
  7. {
  8.   int    xbra_magic;
  9.   int    prog_magic;
  10.   xptr    next;
  11.   short    jump;
  12.   void    (*this)();
  13. }    xbra_struct;
  14.  
  15. #define _XBRA_MAGIC    0x58425241L /* "XBRA" */
  16. #define _JMP_OPCODE    0x4EF9
  17. #define _JSR_OPCODE    0x4EB9
  18.  
  19. #define _XBRA_VEC(x)    ((void (*)()) &(x.jump))
  20.  
  21. #define _XBRA_INIT(fn)    {           \
  22.                _XBRA_MAGIC,    \
  23.                _GNUC_MAGIC,    \
  24.                (xptr) 0,       \
  25.                _JMP_OPCODE,    \
  26.                (void (*)()) fn \
  27.             }
  28.  
  29. #define _TRAP_VEC(n,x)    ((void (*)()) (((long) n << 24) | (long) &(x.jump)))
  30.  
  31. #define _TRAP_INIT(fn)    {           \
  32.                _XBRA_MAGIC,    \
  33.                _GNUC_MAGIC,    \
  34.                (xptr) 0,       \
  35.                _JSR_OPCODE,    \
  36.                (void (*)()) fn \
  37.             }
  38. #endif /* _XBRA_H */
  39.