home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d7xx / d777 / chemesthetics.lha / Chemesthetics / SrcReadMe! < prev    next >
Text File  |  1992-12-06  |  7KB  |  167 lines

  1. Hints for programmers: (updated and revised 11-Nov-92)
  2. ======================================================
  3.  
  4. 11-Nov-92:
  5. ----------
  6.  
  7. Here is how to recompile the source files:
  8.  
  9.  1) The source files should only be recompiled with the SAS/C Compiler
  10.     5.10a or higher. I use many SAS/C specific keywords and #pragmas, so
  11.     heavy work has to be done (not be me!) to adapt them for the Aztec C
  12.     Compiler. Aztec users see below...!
  13.  
  14.  2) The source files are compressed into the LHA-archive 'Source.LHA'.
  15.     If you are a programmer you will certainly know how to unpack the
  16.     archive (type 'lha' to get a quick list of commands and options), if
  17.     you are not, well, why do you need the source files anyway?
  18.  
  19.  3) Some routines are coded in my own link library called ex.lib. You
  20.     have to copy this lib into your LIB: directory.
  21.  
  22.  4) Some files are located in a special 'routine' directory called
  23.     ROUT:. You should remove the ROUT: dir specification in the lmkfile,
  24.     because these files are now located in the current directory.
  25.  
  26.  5) All #include files that come with req.library, arp.library or the
  27.     iff-routines are located in the directory 'pdomain'. You have to adapt
  28.     the -i option in the lmkfile to this directory, i.e. -ipdomain.
  29.  
  30.  6) The source of my link link library ex.lib is included in the file
  31.     exlibsrc.c. It's for documentation purposes only, you do not need it to
  32.     build Chemesthetics (you have ex.lib!). However if you are totally
  33.     unsatisfied with the lib's routines you can recompile it with these
  34.     files.
  35.  
  36.  7) The source files work with 32-bit integers.
  37.  
  38.  8) The source code for the license routines is NOT included for legal
  39.     purposes. Simply link the provided object file license.o.
  40.  
  41.  9) A lmkfile is provided for an automatic build process of Chemesthetics.
  42.     If you made all needed changes you can simply type lmk and
  43.     Chemesthetics will be recompiled.
  44.  
  45. 10) To build Chemesthetics you need A LOT OF MEMORY. 1MByte RAM WON'T BE
  46.     ENOUGH. I work with 2.3MBytes of RAM, that works fine.
  47.  
  48. 11) Optimization: All optimization (generally optimized for time) is done
  49.     by the compiler. BUT: Due to some bugs in the global optimizer 'GO',
  50.     you MUST NOT optimize eingabe.c (main input routine) and palettereq.c
  51.     (for the palette requester). The program will crash if you don't take
  52.     this warning seriously, at least it does on my system!
  53.  
  54. 12) By now three different math models are supported. Chemesthetics (uses
  55.     Motorola fast floating point routines), ChemestheticsIEEE (uses Amiga
  56.     IEEE routines, uses coprocessor if present) and ChemestheticsFPU81
  57.     (needs coprocessor to run). You have to specify the desired math model
  58.     in the lmkfile. Use the #define MATH=FFP for the normal Chemethetics
  59.     (default), MATH=IEEE for the IEEE-version and MATH=FPU81 for the
  60.     coprocssor version. Set the withfile and the compiler option
  61.     appropriately. To do this you just have to remove the comment signs (#)
  62.     from the lmkfile and set them before the previous used options.
  63.  
  64.  
  65. 23-Apr-92:
  66. ----------
  67.  
  68. Today I recieved a letter from Johan Vande Ginste from Belgium who was the
  69. first one who actually tried to recompile Chemesthetics. He notified me
  70. that my prototype file 'exlibprotos.h' was not in the distribution archive.
  71. Thanx a lot for your message, you are right. I simply forgot to include it.
  72. I changed this today.
  73.  
  74.  
  75.  
  76. Hint for Aztec C users:
  77. -----------------------
  78. All desperate Aztec users, who for some reason want to recompile the
  79. sources with their compiler can write in to me (i.e. send me a disk) and I
  80. will return the full source code (incl. the ex.lib source). Don't forget to
  81. include some stamps (or money if you're living outside of Germany) for the
  82. mailing costs back to you. Doesn't have to be exactly the right amount, but
  83. don't leave me with 10 cents to send back a disk to Antarctica. I'm a
  84. student, I don't have the big money yet (hope to change that in future,
  85. that's why I'm studying).
  86.  
  87.  
  88. Now the other interesting things:
  89. --------------------------------
  90.  
  91. By now I use the following routines outside of AmigaDOS, Intuition etc.:
  92.  
  93. ArpAlloc          arp.library
  94. CloseWindowSafely      arp.library
  95. FileRequester          req.library
  96. SimpleRequest          req.library
  97. TwoGadgetRequest      req.library
  98. SetLocation          req.library
  99. ReadLocation          req.library
  100. SetSize           req.library
  101.  
  102. Apropos FileRequester(). A very strange bug occured today (and before in
  103. other of my programs). The ReqFileRequester structure was defined
  104. statically until V2.10.
  105.   struct ReqFileRequester FileStr;
  106. Then I used the structure as follows:
  107.   FileStr.Path=Pathname;
  108.   FileRequest(&FileStr);
  109. Following the doc file and the example file to the req.library this is
  110. absolutely legal and there is obviously no bug visible. But suddenly, since
  111. V2.10 the file requester often caused GURUS (81...05.xxxxx) or just didn't
  112. work. As I said I had this problem in other programs too, so I did what I
  113. did there. I defined a pointer to the ReqFileRequester structure like:
  114. struct ReqFileRequester *FileStr; Then I allocated quite a bunch of bytes
  115. to be sure:
  116.   FileStr=(struct ReqFileRequester *)ArpAlloc(2048L);
  117. and used it this way:
  118.   FileRequester(FileStr);
  119. With this (a bit strange solution) I don't have any problem any more. If
  120. anyone knows an answer to this (maybe Colin & Bruce, the req.library's
  121. authors) please LET ME KNOW!
  122.  
  123. I do not use the req.library's palette requester because it does
  124. not have all the things a good palette requester has to have. Instead I use
  125. Jonathan Potter's paletterequest(). Thanx Jonathan, it's old, but it's
  126. still the best!
  127.  
  128.  
  129. Do not change rev.c, as it has a special format that is needed by other
  130. files.
  131.  
  132. All source files come with German comments and (partly) German names for
  133. routines and variables. If you would like to know what they mean, well, try
  134. learning German, it's a fascinating language.
  135.  
  136. The newer files are ANSI-C compatible and they are compiled with the -ca
  137. option of the compiler. The current version is a mixture of ANSI and
  138. non-ANSI files, I intend to make ALL files ANSI compatible in the future.
  139.  
  140. I intended to provide a makefile for Aztec C users and to embedd Lattice
  141. specific things in #ifdefs but I didn't have the time yet. If somebody does
  142. this, I would like to get a copy of this. If nobody does I may do it on my
  143. own somewhere in time... Let's wait'n'see!
  144.  
  145. Due to the legal notice to req.library the authors want the file req.doc to
  146. be included if req.library routines are used. I don't see the meaning in
  147. this but still I submit the file in the SOURCE.LHA archive. BUT IT IS
  148. PACKED! When extracted from the source archive you have to unpack it with
  149. PowerPacker 2.3b. On my system I have compressed all doc files because I
  150. don't want to occupy too much space with them. The compressed req.doc is
  151. directly added to SOURCE.LHA!
  152.  
  153.  
  154. Have fun!
  155.  
  156. Joerg
  157.  
  158.  
  159. P.S. None of the files may be touched, changed, deleted or distributed on
  160.      own series of Stefan Ossowski PD-Versand, Rainer Wolf PD-Versand
  161.      (OASE), Markt & Technik Verlag AG and Markt & Technik Software
  162.      Partner International GmbH (MSPI).
  163.  
  164.      Greetinx to Bernstein Softworks (Risk, Dragon Cave) for their RIGHT
  165.      attitude concerning some kind of PD distributors.
  166.  
  167.