home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / at-inc-bin.lha / os-include / exec / types.i < prev   
Text File  |  1993-10-15  |  4KB  |  169 lines

  1.     IFND    EXEC_TYPES_I
  2. EXEC_TYPES_I    SET    1
  3. **
  4. **    $VER: types.i 39.1 (24.2.93)
  5. **    Includes Release 40.15
  6. **
  7. **    Data storage macros.  Must be included before any other Amiga include.
  8. **
  9. **    (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. **
  12.  
  13.  
  14. INCLUDE_VERSION    EQU 40    ;Version of the include files in use. (Do not
  15.             ;use this label for OpenLibrary() calls!)
  16.  
  17.  
  18. EXTERN_LIB  MACRO
  19.         XREF    _LVO\1
  20.         ENDM
  21.  
  22. **
  23. ** Structure Building Macros
  24. **
  25. STRUCTURE   MACRO        ; structure name, initial offset
  26. \1        EQU     0
  27. SOFFSET     SET     \2
  28.         ENDM
  29.  
  30. FPTR        MACRO        ; function pointer (32 bits - all bits valid)
  31. \1        EQU     SOFFSET
  32. SOFFSET     SET     SOFFSET+4
  33.         ENDM
  34.  
  35. BOOL        MACRO        ; boolean (16 bits)
  36. \1        EQU     SOFFSET
  37. SOFFSET     SET     SOFFSET+2
  38.         ENDM
  39.  
  40. BYTE        MACRO        ; byte (8 bits)
  41. \1        EQU     SOFFSET
  42. SOFFSET     SET     SOFFSET+1
  43.         ENDM
  44.  
  45. UBYTE        MACRO        ; unsigned byte (8 bits)
  46. \1        EQU     SOFFSET
  47. SOFFSET     SET     SOFFSET+1
  48.         ENDM
  49.  
  50. WORD        MACRO        ; word (16 bits)
  51. \1        EQU     SOFFSET
  52. SOFFSET     SET     SOFFSET+2
  53.         ENDM
  54.  
  55. UWORD        MACRO        ; unsigned word (16 bits)
  56. \1        EQU     SOFFSET
  57. SOFFSET     SET     SOFFSET+2
  58.         ENDM
  59.  
  60. SHORT        MACRO        ; obsolete - use WORD
  61. \1        EQU     SOFFSET
  62. SOFFSET     SET     SOFFSET+2
  63.         ENDM
  64.  
  65. USHORT        MACRO        ; obsolete - use UWORD
  66. \1        EQU     SOFFSET
  67. SOFFSET     SET     SOFFSET+2
  68.         ENDM
  69.  
  70. LONG        MACRO        ; long (32 bits)
  71. \1        EQU     SOFFSET
  72. SOFFSET     SET     SOFFSET+4
  73.         ENDM
  74.  
  75. ULONG        MACRO        ; unsigned long (32 bits)
  76. \1        EQU     SOFFSET
  77. SOFFSET     SET     SOFFSET+4
  78.         ENDM
  79.  
  80. FLOAT        MACRO        ; C float (32 bits)
  81. \1        EQU     SOFFSET
  82. SOFFSET     SET     SOFFSET+4
  83.         ENDM
  84.  
  85. DOUBLE        MACRO        ; C double (64 bits)
  86. \1        EQU        SOFFSET
  87. SOFFSET        SET        SOFFSET+8
  88.         ENDM
  89.  
  90. APTR        MACRO        ; untyped pointer (32 bits - all bits valid)
  91. \1        EQU     SOFFSET
  92. SOFFSET     SET     SOFFSET+4
  93.         ENDM
  94.  
  95. CPTR        MACRO        ; obsolete
  96. \1        EQU     SOFFSET
  97. SOFFSET     SET     SOFFSET+4
  98.         ENDM
  99.  
  100. RPTR        MACRO        ; unsigned relative pointer (16 bits)
  101. \1        EQU     SOFFSET
  102. SOFFSET     SET     SOFFSET+2
  103.         ENDM
  104.  
  105. LABEL        MACRO        ; Define a label without bumping the offset
  106. \1        EQU     SOFFSET
  107.         ENDM
  108.  
  109. STRUCT        MACRO        ; Define a sub-structure
  110. \1        EQU     SOFFSET
  111. SOFFSET     SET     SOFFSET+\2
  112.         ENDM
  113.  
  114. ALIGNWORD   MACRO        ; Align structure offset to nearest word
  115. SOFFSET     SET     (SOFFSET+1)&$fffffffe
  116.         ENDM
  117.  
  118. ALIGNLONG   MACRO        ; Align structure offset to nearest longword
  119. SOFFSET     SET     (SOFFSET+3)&$fffffffc
  120.         ENDM
  121.  
  122. **
  123. ** Enumerated variables.  Use ENUM to set a base number, and EITEM to assign
  124. ** incrementing values.  ENUM can be used to set a new base at any time.
  125. **
  126. ENUM        MACRO   ;[new base]
  127.         IFC     '\1',''
  128. EOFFSET        SET        0        ; Default to zero
  129.         ENDC
  130.         IFNC    '\1',''
  131. EOFFSET        SET     \1
  132.         ENDC
  133.         ENDM
  134.  
  135. EITEM        MACRO   ;label
  136. \1        EQU     EOFFSET
  137. EOFFSET     SET     EOFFSET+1
  138.         ENDM
  139.  
  140. **
  141. **  Bit Definition Macro
  142. **
  143. **  Given:
  144. **    BITDEF    MEM,CLEAR,16
  145. **
  146. **  Yields:
  147. **    MEMB_CLEAR  EQU 16            ; Bit number
  148. **    MEMF_CLEAR  EQU 1<<16            ; Bit mask
  149. **
  150.  
  151. BITDEF        MACRO   ; prefix,&name,&bitnum
  152.         BITDEF0 \1,\2,B_,\3
  153. \@BITDEF    SET     1<<\3
  154.         BITDEF0 \1,\2,F_,\@BITDEF
  155.         ENDM
  156.  
  157. BITDEF0     MACRO   ; prefix,&name,&type,&value
  158. \1\3\2        EQU     \4
  159.         ENDM
  160.  
  161. **
  162. ** LIBRARY_VERSION is now obsolete.  Please use LIBRARY_MINIMUM or code
  163. ** the specific minimum library version you require.
  164. **        LIBRARY_VERSION EQU    36
  165. **
  166. LIBRARY_MINIMUM    EQU 33    ;Lowest version supported by Commodore-Amiga
  167.  
  168.     ENDC    ; EXEC_TYPES_I
  169.