home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
FORTH
/
FRASRC11.ZIP
/
FRACTSRC.DOC
< prev
next >
Wrap
Text File
|
1989-12-21
|
5KB
|
118 lines
FRACTSRC.ARC includes the complete source code for FRACTINT (.C and .ASM).
Recognizing that not everyone HAS (or even wants) an assembler, much less
either MASM 5.1 or Turbo-ASM, which are the only two assemblers that the
authors are aware of that can handle these particular files, it also contains
a complete set of .OBJ files from the assembler code,
Note that the Keepers of the Official Sets of Source Code (Bert Tyler and
Timothy Wegner) both use the Microsoft 5.1 C compiler and Microsoft 5.1
assembler, so that is the one combination of compiler/assemblers that is
pretty much guaranteed to handle FRACTINT in all of its various mutations.
Given that several of FRACTINT's co-authors now prefer (or only have!)
alternate combinations, we have re-arranged the code to (usually) handle
several popular alternatives. In particular:
Microsoft C 5.1 (and MASM 5.1):
===============================
Just run MAKEFRAC.BAT, which invokes the Microsoft MAKE utility using
the files FRACTINT.MAK and FRACTINT.LNK. Note that the assembler .OBJ files
have been included in the .ARC file, so that you don't really need MASM
unless you are going to modify one or more of them. If you ARE going to
modify one of the assembler files, note that the distributed versions rely
on some nifty features added to version 5.1 (like the '.model medium,c'
option) and will not assemble under older versions of MASM without a LOT
of work.
Quick-C:
========
We've gotten word that as of version 9.0, FRACTINT is now too big for
the interactive Quick-C environment. You apparantly have to use the
command-line variant of Quick-C these days.
Turbo-C and TASM
================
FRACTINT is SUPPOSED to be compatible with both of these products, although
this one is a constant struggle. Bert runs FRACTINT through his copy of
Turbo C/TASM just before public releases and *attempts* to test all of
the doodads we've added since the previous release. Still, there is always
the possibility that we managed to sneak a last-minute update by everybody
("but, we hardly changed anything at all!") that destroys this compatibility.
We have included two sample files (TC.MAK, TC.LNK) that compile and link
FRACTINT using the Turbo products on Bert's machine using the command
"make -ftc" (Note: for no good reason, Bert keeps his Turbo products in
a non-standard directory name ("C:\TURBO") - you will most likely have to
edit TC.MAK and TC.LNK to refer to the directories where you keep your
Turbo products).
Note that FRACTINT is simply too large for the interactive Turbo-C
environment. Sorry, but you're gonna have to use the command line option.
Where the Goodies are
=====================
It has come to our attention that people who have no interest in fractals
at all have been wandering through the FRACTINT source code just to get at
some of the neat tricks buried therein. Here are a few hints as to where
to look:
FRACTINT.C - The main routine. Nothing special here.
FRACTINT.H - General Include file. Nothing special here, either.
FRACTALS.C, - Most of the fractal-specific code. If you want to know
CALCFRAC.C how a fractal is calculated, look in here. Specific
speed-em-up support for special fractal types is in...
CALCMAND.ASM - Mandelbrot/Julia set calculations.
NEWTON.ASM - Newton calculations
TESTPT.C - "Roll-your-own" fractal routine
MPMATH_C.C, - Mark Peterson's "fast-math" support routines.
MPMATH_A.ASM, (this stuff puts some of the routines supplied by your
FPU387.ASM, favorite "C" compiler to shame!)
FPU087.ASM ...
VIDEO.ASM - Assembler code containing all of the video routines
(setting up the video, reading/writing pixels, zoom-box
code, color-cycling, graphics-to-text "help" switch,
... with help from the routines below for special adapters:
TARGA.C, - TARGA Video Routines
TARGA.H, ...
LOADMAP.C, ...
TGASUBS.C ...
FR8514A.ASM - 8514/A Routines
HGCFRA.ASM - Hercules Video Routines
DISKVID.C - "DISK'RAM" video routines
YOURVID.C - "Roll-your-own" video routines
GENERAL.ASM - General assembler code having nothing to do with fractals.
Lots of the tricky stuff is in here, and many of the "C"
routines that perform tricky functions rely on support
code buried in here. In particular, this routine has the:
CPU, FPU Detectors
Keyboard routines
Mouse routines
Expanded memory routines
32-bit scaled integer multiply and divide routines
ENCODER.C - GIF Encoder routine.
GIFVIEW.C, - GIF Decoder routines.
DECODER.C,
TGAVIEW.C, (including a TARGA-format encoder/decoder currently used
F16.C only for the "Continuous Potential" algorithm)
LINE3D.C, - 3D manipulation routines
3D.C
ROTATE.C - routines which "spin" the VGA video-DAC.
CONFIG.C - general Fractal File configuration routines.
HELP.C, - HELP support
FARMSG.ASM - HELP and various other messages (placed in this FAR
segment to free up some precious NEAR data space)
PRINTER.C - The Printer Routines