home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / graf / fract4.zip / FRACTSRC.DOC < prev    next >
Text File  |  1989-12-21  |  5KB  |  118 lines

  1. FRACTSRC.ARC includes the complete source code for FRACTINT (.C and .ASM).
  2. Recognizing that not everyone HAS (or even wants) an assembler, much less
  3. either MASM 5.1 or Turbo-ASM, which are the only two assemblers that the
  4. authors are aware of that can handle these particular files, it also contains
  5. a complete set of .OBJ files from the assembler code,
  6.  
  7. Note that the Keepers of the Official Sets of Source Code (Bert Tyler and
  8. Timothy Wegner) both use the Microsoft 5.1 C compiler and Microsoft 5.1
  9. assembler, so that is the one combination of compiler/assemblers that is
  10. pretty much guaranteed to handle FRACTINT in all of its various mutations.
  11. Given that several of FRACTINT's co-authors now prefer (or only have!)
  12. alternate combinations, we have re-arranged the code to (usually) handle 
  13. several popular alternatives.  In particular:
  14.  
  15.  
  16. Microsoft C 5.1 (and MASM 5.1):
  17. ===============================
  18.  
  19. Just run MAKEFRAC.BAT, which invokes the Microsoft MAKE utility using
  20. the files FRACTINT.MAK and FRACTINT.LNK.  Note that the assembler .OBJ files
  21. have been included in the .ARC file, so that you don't really need MASM
  22. unless you are going to modify one or more of them.  If you ARE going to
  23. modify one of the assembler files, note that the distributed versions rely
  24. on some nifty features added to version 5.1 (like the '.model medium,c'
  25. option) and will not assemble under older versions of MASM without a LOT
  26. of work.
  27.  
  28.  
  29. Quick-C:
  30. ========
  31.  
  32. We've gotten word that as of version 9.0, FRACTINT is now too big for
  33. the interactive Quick-C environment.  You apparantly have to use the
  34. command-line variant of Quick-C these days.
  35.  
  36. Turbo-C and TASM
  37. ================
  38.  
  39. FRACTINT is SUPPOSED to be compatible with both of these products, although
  40. this one is a constant struggle.  Bert runs FRACTINT through his copy of
  41. Turbo C/TASM just before public releases and *attempts* to test all of
  42. the doodads we've added since the previous release.  Still, there is always
  43. the possibility that we managed to sneak a last-minute update by everybody
  44. ("but, we hardly changed anything at all!") that destroys this compatibility.
  45. We have included two sample files (TC.MAK, TC.LNK) that compile and link
  46. FRACTINT using the Turbo products on Bert's machine using the command
  47. "make -ftc" (Note: for no good reason, Bert keeps his Turbo products in
  48. a non-standard directory name ("C:\TURBO") - you will most likely have to
  49. edit TC.MAK and TC.LNK to refer to the directories where you keep your
  50. Turbo products).
  51.  
  52. Note that FRACTINT is simply too large for the interactive Turbo-C
  53. environment.  Sorry, but you're gonna have to use the command line option.
  54.  
  55.  
  56. Where the Goodies are
  57. =====================
  58.  
  59. It has come to our attention that people who have no interest in fractals
  60. at all have been wandering through the FRACTINT source code just to get at
  61. some of the neat tricks buried therein.  Here are a few hints as to where
  62. to look:
  63.  
  64. FRACTINT.C    - The main routine.  Nothing special here.
  65. FRACTINT.H    - General Include file.  Nothing special here, either.
  66.  
  67. FRACTALS.C,    - Most of the fractal-specific code.  If you want to know
  68. CALCFRAC.C      how a fractal is calculated, look in here.  Specific
  69.           speed-em-up support for special fractal types is in...
  70. CALCMAND.ASM    - Mandelbrot/Julia set calculations.
  71. NEWTON.ASM    - Newton calculations
  72. TESTPT.C    - "Roll-your-own" fractal routine
  73. MPMATH_C.C,    - Mark Peterson's "fast-math" support routines.
  74. MPMATH_A.ASM,      (this stuff puts some of the routines supplied by your
  75. FPU387.ASM,       favorite "C" compiler to shame!)
  76. FPU087.ASM      ...
  77.  
  78. VIDEO.ASM    - Assembler code containing all of the video routines
  79.           (setting up the video, reading/writing pixels, zoom-box
  80.           code, color-cycling, graphics-to-text "help" switch,
  81.           ... with help from the routines below for special adapters:
  82. TARGA.C,    - TARGA Video Routines
  83. TARGA.H,      ...
  84. LOADMAP.C,      ...
  85. TGASUBS.C      ...
  86. FR8514A.ASM    - 8514/A Routines
  87. HGCFRA.ASM    - Hercules Video Routines
  88. DISKVID.C    - "DISK'RAM" video routines
  89. YOURVID.C    - "Roll-your-own" video routines
  90.  
  91. GENERAL.ASM    - General assembler code having nothing to do with fractals.
  92.           Lots of the tricky stuff is in here, and many of the "C"
  93.           routines that perform tricky functions rely on support
  94.           code buried in here.  In particular, this routine has the:
  95.             CPU, FPU Detectors
  96.             Keyboard routines
  97.             Mouse routines
  98.             Expanded memory routines
  99.             32-bit scaled integer multiply and divide routines
  100.  
  101. ENCODER.C    - GIF Encoder routine.
  102. GIFVIEW.C,    - GIF Decoder routines.
  103. DECODER.C,
  104. TGAVIEW.C,      (including a TARGA-format encoder/decoder currently used
  105. F16.C          only for the "Continuous Potential" algorithm)
  106.  
  107. LINE3D.C,    - 3D manipulation routines
  108. 3D.C
  109.  
  110. ROTATE.C    - routines which "spin" the VGA video-DAC.
  111. CONFIG.C    - general Fractal File configuration routines.
  112.  
  113. HELP.C,        - HELP support
  114. FARMSG.ASM    - HELP and various other messages (placed in this FAR
  115.           segment to free up some precious NEAR data space)
  116.  
  117. PRINTER.C    - The Printer Routines
  118.