home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / CLIPPER / NFPAT5 / FTINT86.CH next >
Text File  |  1993-01-01  |  2KB  |  74 lines

  1. /*
  2.  * File......: FTINT86.CH - Header file for users of FT_INT86() function
  3.  * Author....: Ted Means
  4.  * Date......: $Date:   31 Dec 1992 21:35:46  $
  5.  * Revision..: $Revision:   1.4  $
  6.  * Log file..: $Logfile:   C:/nanfor/src/ftint86.chv  $
  7.  * 
  8.  * This is an original work by Ted Means and is placed in the
  9.  * public domain.
  10.  *
  11.  * Modification history:
  12.  * ---------------------
  13.  *
  14.  * $Log:   C:/nanfor/src/ftint86.chv  $
  15.  * 
  16.  *    Rev 1.4   31 Dec 1992 21:35:46   GLENN
  17.  * Some typos made it into the most recent version of ftint86,
  18.  * particularly within the highbyte() macro.  This has been fixed.
  19.  * 
  20.  *    Rev 1.3   01 Jul 1992 01:00:52   GLENN
  21.  * Rodgers Moore submitted some fixes to the highbyte() and lowbyte()
  22.  * macros that take negative numbers into account.  Ted Means and 
  23.  * Glenn Scott added #defines for the Flag registers.  General cleanup
  24.  * of formatting, etc.
  25.  * 
  26.  * 
  27.  *    Rev 1.2   15 Aug 1991 23:08:48   GLENN
  28.  * Forest Belt proofread/edited/cleaned up doc
  29.  * 
  30.  *    Rev 1.1   27 May 1991 13:25:18   GLENN
  31.  * Revised for new version of ft_int86() package, which is written in C
  32.  * (CINT86.C), assembler (AINT86.ASM).  
  33.  * 
  34.  *    Rev 1.0   01 Apr 1991 01:02:38   GLENN
  35.  * Nanforum Toolkit
  36.  *   
  37.  *
  38.  */
  39.  
  40. #ifndef __FTINT86_CH__
  41. #define __FTINT86_CH__
  42.  
  43. #define INT86_MAX_REGS       10
  44.  
  45. #define AX         1
  46. #define BX         2
  47. #define CX         3
  48. #define DX         4
  49. #define SI         5
  50. #define DI         6
  51. #define BP         7
  52. #define DS         8
  53. #define ES         9
  54. #define FLAGS     10
  55.  
  56. #define FLAG_CARRY     0     // Carry flag
  57. #define FLAG_PARITY    2     // Parity flag
  58. #define FLAG_AUX       4     // Auxillary flag
  59. #define FLAG_ZERO      6     // Zero flag
  60. #define FLAG_SIGN      7     // Sign flag
  61. #define FLAG_TRAP      8     // Trap flag
  62. #define FLAG_INT       9     // Interrupt flag
  63. #define FLAG_DIR      10     // Direction flag
  64. #define FLAG_OFLOW    11     // Overflow flag
  65.  
  66. #translate makehi( <X> )        => ((<X>) * 256)
  67. #translate REG_DS               => .T.
  68. #translate REG_ES               => .F.
  69. #translate highbyte( <X> )      => ( int( if( (<X>) < 0, 65536 + (<X>), (<X>) ) / 256 ) )
  70. #translate lowbyte( <X> )       => (      if( (<X>) < 0, 65536 + (<X>), (<X>) ) % 256   )
  71. #translate carrySet( <XFLAGS> ) => (ft_isbiton((<XFLAGS>), FLAG_CARRY))
  72.  
  73. #endif // __FTINT86_CH__
  74.