home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / util / boot / FastExec25.lha / FastExec / FastExec.doc < prev    next >
Encoding:
Text File  |  1997-01-18  |  10.0 KB  |  357 lines

  1. $VER: FastExec.doc 2.5 (18.1.97)
  2.  
  3.  
  4.  
  5.  
  6.  
  7. ============================================================
  8.                       January 18, 1997
  9.  
  10.                      Torbjörn Andersson
  11.                           presents
  12.                         FastExec 2.4
  13.  
  14.                        Public Domain
  15. ============================================================
  16.  
  17.  
  18.  
  19.  
  20.  
  21. 1. Contents
  22. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  23. Contents ................................................. 1
  24. Introduction ............................................. 2
  25. Requirements ............................................. 3
  26. Installation ............................................. 4
  27. Usage .................................................... 5
  28. Comments ................................................. 6
  29. History .................................................. 7
  30. Credits .................................................. 8
  31. Author ................................................... 9
  32.  
  33.  
  34.  
  35.  
  36.  
  37. 2. Introduction
  38. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  39. Most things automatically utilize the fast memory in my
  40. Amiga, but not exec.library, the heaviest used library of
  41. the AmigaOS, nor expansion.library. They remain in the slow
  42. chip memory. Since that is a waste of both time and chip
  43. memory, I made FastExec.
  44.  
  45. FastExec will install a resident tag with the priority of
  46. expansion.library plus one. After Exec is initialized upon
  47. reboot, FastExec's tag will be run. First it will set the
  48. cache if it was specified on the command line. (Enabling it
  49. this early speeds up the booting on my machine with about
  50. 0.3 seconds. :-) Then it patches AddMemList() in
  51. exec.library. If specified it will finally add
  52. non-autoconfig memory. Else we leave the control back to
  53. the system.
  54.  
  55. When someone calls AddMemList(), the patch uses the original
  56. function to add the memory to the system's list. Then it
  57. tries allocate fast memory and move exec.library to it.
  58.  
  59. This should work better than FastExec 1.x. I changed the
  60. way FastExec works after I got my hands on FastExec (!) by
  61. Harry Sintonen, my method is identical to his one.
  62.  
  63. Expansion.library can still be moved to fast memory if you
  64. really want to. AddLibrary() will then be patched to
  65. achieve this, similarly to the AddMemList()-patch.
  66.  
  67. The AddMemList()-patch optionally also relocates the small
  68. chip memory list header to fast memory, speeding up memory
  69. allocations a little, and the same with memory for the
  70. interrupt servers.
  71.  
  72. More as an experiment, some often used functions in Exec can
  73. be patched. The AddMemList()-patch takes care of this too.
  74.  
  75. Under kickstart 1.2/1.3, MakeLibrary() is automatically
  76. patched so library bases will be longword aligned.
  77.  
  78.  
  79.  
  80.  
  81.  
  82. 3. Requirements
  83. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  84. FastExec requires true fast memory.
  85.  
  86.  
  87.  
  88.  
  89.  
  90. 4. Installation
  91. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  92. Edit Startup-Sequence to start FastExec early. Try putting it
  93. first, even before SetPatch, if it doesn't work when started
  94. later.
  95.  
  96. If you use the REBOOT parameter, FastExec will reboot the
  97. machine and move exec.library to fast memory.
  98.  
  99.  
  100.  
  101.  
  102.  
  103. 5. Usage
  104. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  105. Usage: FastExec [SYSINFO] [REBOOT] [PATCH] [FASTSSP]
  106.                 [FASTVBR] [FASTEXP] [FASTMEM] [FASTINT]
  107.                 [CACHE 0xhhhhhhhh]
  108.                 [ADDMEM <base size attr pri> ...]
  109.  
  110. Any value can be written in both normal and hexadecimal
  111. form. Write "0x" in front for hex.
  112.  
  113. The options has no effect if FastExec already is resident.
  114.  
  115. SYSINFO
  116. ¯¯¯¯¯¯¯
  117. Shows various system information.
  118.  
  119. REBOOT
  120. ¯¯¯¯¯¯
  121. Installs resident tag and reboots. Otherwise only the tag
  122. will be installed and no reboot will be performed.
  123.  
  124. NOEXEC
  125. ¯¯¯¯¯¯
  126. Won't try to move exec.library to fast memory, in case it
  127. don't work and you would like to use the other options.
  128.  
  129. PCMCIA
  130. ¯¯¯¯¯¯
  131. Try this if you have only a PCMCIA memory card.
  132.  
  133. LOCAL
  134. ¯¯¯¯¯
  135. Fast memory will be added with the flag MEMF_LOCAL. This way
  136. the RAD-disk will use fast memory.
  137.  
  138. PATCH
  139. ¯¯¯¯¯
  140. (Ignored under kickstart 1.2/1.3.)
  141.  
  142. For fun I optimized some functions in exec.library. With
  143. this option the lowest level of interrupt handling will be
  144. patched, together with the following functions:
  145.  
  146. · Supervisor()
  147. · ExitIntr()
  148. · Schedule()
  149. · Switch()
  150. · Dispatch()
  151. · Exception()
  152. · Forbid()
  153. · Cause()
  154. · Wait()
  155. · PutMsg()
  156. · ReplyMsg()
  157.  
  158. I did some speed tests with multitasking not disabled, and I
  159. must admit that you usually *don't* notice any difference
  160. with this patch. But when I also had a program in the
  161. background that simply did a busy loop, then there was a big
  162. speed increase of upto 100%.
  163.  
  164. The patches are mostly simple assembler optimizations. I
  165. have used and/or-instructions (sometimes other ones) instead
  166. of bset/bclr/btst where possible. ExecBase is embedded in
  167. move-instructions instead of reading ExecBase from location
  168. $4, which can be useful if you have AGA chipset and/or use
  169. Enforcer. Other optimizations are not much to say about.
  170.  
  171. I have just made optimizations without actually knowing
  172. exactly what all the functions do, so beware. :) There are
  173. two versions of the Switch()-function, I haven't tested the
  174. one used if you have an FPU.
  175.  
  176. FASTSSP
  177. ¯¯¯¯¯¯¯
  178. Relocates the supervisor stack to fast memory.
  179.  
  180. FASTVBR
  181. ¯¯¯¯¯¯¯
  182. Relocates the vector base register to fast memory.
  183.  
  184. The 68000 processor has no VBR. (Output from SYSINFO will
  185. always say that it is zero).
  186.  
  187. FASTEXP
  188. ¯¯¯¯¯¯¯
  189. Relocates expansion.library to fast memory.
  190.  
  191. FASTMEM
  192. ¯¯¯¯¯¯¯
  193. Relocates memory list headers to fast memory.
  194.  
  195. FASTINT
  196. ¯¯¯¯¯¯¯
  197. Relocates memory for interrupt servers to fast memory.
  198.  
  199. CACHE
  200. ¯¯¯¯¯
  201. Calls CacheControl() with the supplied parameter. Below are
  202. useful values as defined in exec.i. Logically "or" these
  203. together. Note that 68000 and 68010 has no cache. 68020
  204. has instruction cache only. From what I can tell
  205. 'WriteAllocate' should always be set (68030), although I
  206. don't know exactly why and what it does.
  207.  
  208. CACRF_EnableI       = 0x00000001 (Enable instruction cache)
  209. CACRF_IBE           = 0x00000010 (Enable instruction burst)
  210. CACRF_EnableD       = 0x00000100 (Enable data cache)
  211. CACRF_DBE           = 0x00001000 (Enable data burst)
  212. CACRF_WriteAllocate = 0x00002000
  213. CACRF_CopyBack      = 0x80000000
  214.  
  215. ADDMEM
  216. ¯¯¯¯¯¯
  217. Adds memory to the system's memory list. Can be useful if
  218. you have non-autoconfig memory. Use "5" for attributes if
  219. you don't know what else to use.
  220.  
  221. I'll take my memory as an example. This is the info I get
  222. about it from FastExec with the SYSINFO parameter:
  223.  
  224. MEMORY HEADERS:
  225. Address   Name                 Lower     Upper     Type   Pri
  226. $08000000 DKB1240_Memory       $08000020 $08800000 $0005   10
  227.  
  228. If it was configured manually and I wanted FastExec to do it
  229. from now on, I would write:
  230.  
  231. FastExec ADDMEM 0x08000000 0x00800000 5 10
  232.  
  233.  
  234.  
  235.  
  236.  
  237. 6. Comments
  238. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  239. FastExec stays resident in memory, but after a reset it can
  240. happen that the fast memory is not located at its place.
  241. Then the system won't find ExecBase with its information
  242. about resident things in memory. FastExec and for example
  243. the RAD-disk can't survive a reboot then. I guess this
  244. depends on the memory board one have.
  245.  
  246.  
  247.  
  248.  
  249.  
  250. 7. History
  251. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  252. 1.0 (26.11.95)
  253. · First release.
  254.  
  255. 1.1 (14.1.96)
  256. · lib_NegSize under KS 1.3 is now set to correct value and
  257.   not 0.
  258. · Doesn't set the memory attribute flags
  259.   MEMF_LOCAL/MEMF_24BITDMA under KS 1.3.
  260. · The name string "expansion ram" is used for the fast
  261.   memory under KS 1.3, instead of "Fast Memory".
  262. · The priority that the fast memory has will not be changed,
  263.   it was always set to 10 before.
  264. · Could get wrong idea of where the kickstart was located,
  265.   some checking together with alternative methods makes it
  266.   safer now.
  267. · If kickstart version is 2.0 or higher, FastExec will
  268.   search through the kickstart for everything it needs from
  269.   it. If FastExec will work doesn't depend on the exact
  270.   kickstart version, but more on how it is built. If there
  271.   aren't too big differences, FastExec should now work with
  272.   any kickstart version.
  273. · Changed some output from the SYSINFO argument, and
  274.   documented that the argument exists. :)
  275. · BOARDADDR handles more than one address.
  276.  
  277. 2.0 (21.4.96)
  278. · Rewrote the main code, should work better out there.
  279. · Can relocate a few extra things to fast memory, relocating
  280.   expansion.library is optional.
  281. · Added patches for much used functions in exec.
  282. · Can set caches very early on bootup.
  283. · Can add non-autoconfig memory.
  284. · SYSINFO shows all libraries, and in what type of memory it
  285.   is located.
  286. · FastExec is now freeware.
  287.  
  288. 2.1 (25.8.96)
  289. · Fixed SYSINFO output of FPU.
  290. · When I changed mouse, FastExec always disabled the fast
  291.   memory. I guess I could have fixed that, but I removed
  292.   the option instead.
  293. · Doesn't free the old chip memory header under
  294.   kickstart 1.2/1.3, as it is misaligned (FASTMEM option
  295.   caused FreeTwice-alert).
  296. · Fixed bug with FASTINT under kickstart 1.2/1.3.
  297. · Added NOFASTEXEC option.
  298.  
  299. 2.2 (29.8.96)
  300. · Added LOCAL option.
  301.  
  302. 2.3 (11.9.96)
  303. · Rename NOFASTEXEC option NOEXEC.
  304. · Added PCMCIA option.
  305. · AddLibrary()-patch restores old function after
  306.   expansion.library has been moved.
  307.  
  308. 2.4 (9.11.96)
  309. · Gives some errors if installing fails.
  310. · Restores old AddMemList()-function after the first memory
  311.   of type MEMF_FAST has been added.
  312.  
  313. 2.5 (18.1.97)
  314. · Made FastExec public domain, and included the source code
  315.   in the archive. This is probably the last release of
  316.   FastExec from me.
  317.  
  318.  
  319.  
  320.  
  321.  
  322. 8. Credits
  323. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  324. Thanks to:
  325. · All who registered when FastExec was shareware.
  326. · All who have helped me in my more or less successful
  327.   attempts in fixing problems.
  328. · Amiga Shopper for politely asking before putting FastExec
  329.   on their coverdisks and even sending me a copy of the
  330.   magazine.
  331.  
  332.  
  333.  
  334.  
  335.  
  336. 9. Author
  337. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  338. FastExec was made by Torbjörn A. Andersson.
  339.  
  340. Email:
  341. d95ta@efd.lth.se
  342.  
  343. Home page:
  344. http://www.efd.lth.se/~d95ta
  345.  
  346. Home address:
  347. Torbjörn Andersson
  348. Knöppletorp 4379
  349. S-380 31 LÄCKEBY
  350. SWEDEN
  351.  
  352.  
  353.  
  354.  
  355.  
  356.                                           I love you - AMIGA
  357.