home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cpm / programming / HiTech_C / z80v309.lzh / HITECH.H < prev    next >
Text File  |  1993-10-26  |  2KB  |  69 lines

  1. /*sTANDARD TYPES FOR hi-tech sOFTWARE CODE
  2.  
  3. tHESE TYPES MAY NEED TO BE TUNED FOR DIFFERENT
  4.  
  5. MACHINES/COMPILERS. nOTES WITH EACH ONE INDICATE ASSUMPTIONS
  6.  
  7. THAT SHOULD BE MAINTAINED FOR EACH TYPE.
  8.  
  9.  */
  10.  
  11.  
  12.  
  13.  
  14.  
  15. /*
  16.  
  17. tURN ansi ON IF THE COMPILER SUPPORTS FUNCTION PROTOTYPES AND
  18.  
  19. HAS THE ansi HEADER FILES
  20.  
  21. <STDLIB.H>
  22.  
  23. <STRING.H>
  24.  
  25.  */
  26.  
  27.  
  28.  
  29. #IFhi_tech_c
  30.  
  31. #DEFINEansi1
  32.  
  33. #ENDIFhi_tech_c
  34.  
  35.  
  36.  
  37. /*SHORTHAND TYPES */
  38.  
  39.  
  40.  
  41. #DEFINEUCHARUNSIGNED CHAR
  42.  
  43. #DEFINEULONGUNSIGNED LONG
  44.  
  45. #DEFINEUSHORTUNSIGNED SHORT
  46.  
  47.  
  48.  
  49. /* USEFUL, TUNEABLE TYPES. cHANGE ONLY IF:
  50.  
  51.  
  52.  
  53. 1) COMPILER DOES NOT SUPPORT TYPE, E.G. UNSIGNED CHAR.
  54.  
  55. 2) COMPILER GENERATES BAD CODE FOR A PARTICULAR TYPE.
  56.  
  57. 3) A LARGER TYPE WOULD GENERATE FASTER CODE, E.G. BYTE COUNTERS
  58.  
  59.    ON THE 65816 ARE INEFFICIENT CODE-WISE.
  60.  
  61.  */
  62.  
  63.  
  64.  
  65. #DEFINEboolUNSIGNED CHAR/* BOOLEAN VARIABLE. aNY INTEGRAL TYPE
  66.  
  67.    WILL DO. */
  68.  
  69. #DEFINEfastCHAR/* FAST, SMALL COUNTER. mUST PERMIT
  70.  
  71.    VALUES -128 TO 127 BUT MAY BE LARGER. */
  72.  
  73. #DEFINEufastUNSIGNED CHAR/* FAST, SMALL UNSIGNED COUNTER. mUST
  74.  
  75.    PERMIT VALUES 0-255 AT LEAST */
  76.  
  77. #DEFINEbyteUNSIGNED CHAR/* SIZEOF(byte) MUST == 1 */
  78.  
  79. #DEFINEint_16SHORT/* SIGNED, >= 16 BITS */
  80.  
  81. #DEFINEuint_16UNSIGNED SHORT/* UNSIGNED, >= 16 BITS */
  82.  
  83. #DEFINEint_32LONG/* SIGNED, >= 32 BITS */
  84.  
  85. #DEFINEuint_32UNSIGNED LONG/* UNSIGNED, >= 32 BITS */
  86.  
  87.  
  88.  
  89.  
  90.  
  91. /*rEGISTER VARIABLE SELECTORS; reg1 IS FOR THINGS THAT MUST GO
  92.  
  93. IN REGISTERS AT ALL COSTS, reg2 FOR THINGS THAT SHOULD, reg3 FOR
  94.  
  95. THINGS THAT COULD GO IN REGISTERS IF THERE ARE ANY LEFT OVER.
  96.  
  97. oRDERING OF DECLARATIONS WILL OF COURSE COME INTO IT TOO.
  98.  
  99.  */
  100.  
  101.  
  102.  
  103. #IFZ80/* ONLY HAS ONE REGISTER VARIABLE */
  104.  
  105. #DEFINEreg1REGISTER
  106.  
  107. #DEFINEreg2AUTO
  108.  
  109. #DEFINEreg3AUTO
  110.  
  111. #ENDIFZ80
  112.  
  113.  
  114.  
  115. #IFI8086/* ONLY HAS TWO REGISTER VARIABLE */
  116.  
  117. #DEFINEreg1REGISTER
  118.  
  119. #DEFINEreg2REGISTER
  120.  
  121. #DEFINEreg3AUTO
  122.  
  123. #ENDIFI8086
  124.  
  125.  
  126.  
  127. #IFI8096 {$7c}{$7c} M68K/* LOTS OF REGISTERS! */
  128.  
  129. #DEFINEreg1REGISTER
  130.  
  131. #DEFINEreg2REGISTER
  132.  
  133. #DEFINEreg3REGISTER
  134.  
  135. #ENDIFI8096 {$7c}{$7c} M68K
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.