home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_200 / 284_01 / defs.h < prev    next >
Text File  |  1989-03-12  |  1KB  |  56 lines

  1. /* defs.h - common definitions                        */
  2.  
  3. #if LITTLE_INDIAN
  4.  
  5. typedef union {
  6.     struct { WORD bc,  de,  hl,     xa;  } p;
  7.     struct { BYTE c,b, e,d, l,h, a,x; } q;
  8. } REGS;
  9.  
  10. #define Hi(x)        ( *(( BYTE * )&(x)+1) )
  11. #define Lo(x)        ( *(( BYTE * )&(x)+0) )
  12.  
  13. #endif
  14.  
  15. #if BIG_INDIAN
  16.  
  17. typedef union {
  18.     struct { WORD bc,  de,  hl,     xa; } p;
  19.     struct { BYTE b,c, d,e, h,l, x,a; } q;
  20. } REGS;
  21.  
  22. #define Hi(x)        ( *(( BYTE * )&(x)+0) )
  23. #define Lo(x)        ( *(( BYTE * )&(x)+1) )
  24.  
  25. #endif
  26.  
  27. #define RegBC(s)    ( (s).p.bc )
  28. #define RegDE(s)    ( (s).p.de )
  29. #define RegHL(s)    ( (s).p.hl )
  30. #define RegXA(s)    ( (s).p.xa )
  31. #define RegB(s)        ( (s).q.b )
  32. #define RegC(s)        ( (s).q.c )
  33. #define RegD(s)        ( (s).q.d )
  34. #define RegE(s)        ( (s).q.e )
  35. #define RegH(s)        ( (s).q.h )
  36. #define RegL(s)        ( (s).q.l )
  37. #define RegX(s)        ( (s).q.x )
  38. #define RegA(s)        ( *( BYTE * )&(s).q.a )
  39.     /* above strange cast in RegA is for a BUG of MS-C ver 3.00.0    */
  40.  
  41. #define HiR(r)        ( (r)>>8 )
  42. #define LoR(r)        ( (r)&0x0FF )
  43.  
  44. /* Main memory of 8080                            */
  45. extern BYTE Mem [ MEMSIZE ];
  46.  
  47. /* Trace flag; refered outside trace.c for speed            */
  48. extern BOOL tflag;
  49.  
  50. /* virtual I/O port mapping                        */
  51. #if INOUT
  52. extern char IoMap [ 256 ];
  53. #define CANINPUT    1
  54. #define CANOUTPUT    2
  55. #endif
  56.