home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / bootutil / pinhed21 / pinhead.txt < prev   
Text File  |  1992-01-26  |  22KB  |  494 lines

  1.  
  2.                             PINHEAD
  3.                             -------
  4.  
  5.                           Version 2.1
  6.                 Shareware by Charles F. Johnson
  7.  
  8.       Copyright © 1989,90,92 Little Green Footballs Software
  9.                       All Rights Reserved.
  10.  
  11.              Release Date: Sunday, January 26, 1992
  12.  
  13.  
  14. Introduction
  15. ------------
  16.  
  17.      PinHead is a *very* tiny program (it uses less than 1K when
  18. installed!) that should be run from your AUTO folder.  PinHead will
  19. drastically reduce the amount of time it takes to boot your computer,
  20. especially if you have several AUTO programs and desk accessories
  21. installed.  Every program that runs after PinHead will load into the
  22. computer faster than you ever thought possible!  And this speedup is not
  23. only evident at bootup time; programs will load much faster even when
  24. they are run from the GEM desktop or a shell such as CodeHead Software's
  25. HotWire.  PinHead gives you a lot of bang for your memory buck!
  26.  
  27.      PinHead 2.1 works with all ROM versions of TOS.  There is no speed
  28. improvement in version 2.1 over earlier versions; the only new feature
  29. is compatibility with all versions of TOS. 
  30.  
  31.      Even though versions of TOS equal to or later than 1.4 contain a
  32. built-in "fastload" feature, I decided to make PinHead support these TOS
  33. versions as well, because in some cases PinHead's fastload is more
  34. compatible with improperly written ST applications.  (Two very popular
  35. programs that don't work correctly with the TOS fastload, but do work
  36. with PinHead, are ARC.TTP [the original version] and the GFA Basic 2.x
  37. Interpreter.  Desk accessories may also work better with PinHead,
  38. because of its default memory clear feature.)
  39.  
  40.  
  41. If You've Already Read This Document
  42. ------------------------------------
  43.  
  44.      ...then skip ahead to the section at the end titled "New Stuff." 
  45. Here you will find the revision history of PinHead, with any new
  46. features (hopefully) clearly described.
  47.  
  48.      If you haven't read this document before, please take a few minutes
  49. to read it through.  Your enjoyment of PinHead will be much increased if
  50. you do; there's information here that will help you through the most
  51. common trouble spots, to the fastest ST bootup you've ever seen.  Yow!
  52.  
  53.  
  54. Yet Another Shareware Plea
  55. --------------------------
  56.  
  57.      The first three versions of PinHead (1.0, 1.1/1.1a, and 1.2) were
  58. released as freeware.  However the response to PinHead on the major
  59. networks has been so enormous that I've found myself spending more and
  60. more time answering questions, looking for solutions, working on the
  61. code and the documentation, etc.
  62.  
  63.      Therefore, starting with PinHead 1.3, PinHead and the accompanying
  64. documentation are now being distributed as shareware...which means that
  65. if you use and enjoy the program, you're expected to pay a small
  66. registration fee.  (After you've used it a few times I suspect you may
  67. find it difficult to do without!)  I'm asking only $15 for PinHead. 
  68. Please pay the registration fee if you end up using PinHead regularly;
  69. if there's no shareware response to PinHead, I'll be unable to keep
  70. enhancing and supporting the program. 
  71.  
  72.      If you decide to continue using PinHead, please send a check or
  73. money order for $15.00 to:
  74.  
  75.      Charles F. Johnson
  76.      P.O. Box 1250
  77.      Pacific Palisades, CA 90272
  78.  
  79. and indicate on your check that this is a registration payment for
  80. PinHead.  This will enable me to enter your name properly in my
  81. shareware data base. 
  82.  
  83.      If you have a specific question to ask about PinHead, the best way
  84. is to contact me through one of the following online services:
  85.  
  86.      GEnie:  C.F.JOHNSON
  87.      CIS:    76004,2232
  88.      Delphi: CFJ
  89.  
  90.  
  91. Installation
  92. ------------
  93.  
  94.      For best results, PinHead should be as close to the beginning of
  95. your AUTO folder programs as possible.  If you already have an AUTO
  96. folder with several programs in it, you can use CodeHead Software's
  97. "AUTO Organizer" (one of the programs on our 'CodeHead Utilities' disk)
  98. to make sure PinHead runs before most of the other AUTO programs.  If
  99. you don't yet own a copy of CodeHead Utilities, you should make a backup
  100. copy of your AUTO folder, delete the original folder on your bootup
  101. disk, create a new folder named AUTO, and copy all the programs back, in
  102. the order in which you want them to run. 
  103.  
  104.      If you have a hard disk driver in your AUTO folder, it should run
  105. before PinHead.  If you use the public domain program FATSPEED (which
  106. speeds up the directory search routines in GEMDOS, and is not needed in
  107. TOS versions after 1.0), this too should run before PinHead in the AUTO
  108. folder.  Why?  Well, FATSPEED insists on being the very first thing in
  109. the trap #1 vector; and PinHead also needs to intercept this vector. 
  110.  
  111.      But every other program designed for AUTO folder usage can run
  112. after PinHead...which is just the way you want it.  When you boot up
  113. with PinHead active, your AUTO folder programs and accessories will just
  114. FLY across the screen, especially if you have a hard disk. 
  115.  
  116.      When PinHead first runs, it tries to read a file called PINHEAD.DAT
  117. in the root directory of the boot drive.  See below in the section
  118. titled "Configuring PinHead" for details on how to "custom tailor"
  119. PinHead for each program you run, to get the most compatible system
  120. possible. 
  121.  
  122.  
  123. Disabling PinHead for One Program
  124. ---------------------------------
  125.  
  126.      It should be a very rare occurrence to find a program that needs to
  127. have PinHead disabled in order to run.  However, if a certain program
  128. does act strangely or crashes with PinHead active, you can turn off the
  129. "fastload" feature before running that program, with a special "hot key"
  130. sequence.  To disable PinHead, hold down the Alternate, Left Shift, and
  131. Control keys while you type '0' (zero) on the numeric keypad, before
  132. running the program.  This will disable PinHead, but only for the very
  133. next program you run.  After quitting that program, PinHead will be
  134. active again. 
  135.  
  136.  
  137. Turning PinHead On and Off
  138. --------------------------
  139.  
  140.      PinHead also lets you turn it "on" and "off." This is different
  141. from the disabling method explained above; when you turn PinHead off, it
  142. will be disabled until you turn it back on, not just for the very next
  143. program that runs.  To turn PinHead off, hold down the Alternate, Left
  144. Shift, and Control keys and type '-' (minus) on the numeric keypad.  To
  145. turn PinHead on, hold Alternate, SHift, and Control, and type '+' (plus)
  146. on the keypad. 
  147.  
  148.      This feature is in PinHead in case you find yourself running
  149. several programs in a row that don't work properly when PinHead is
  150. active.  In that case, it will be easier to just turn PinHead off for
  151. the duration, and re-enable it when you're through with the <ahem>
  152. "problem" programs.  See "Configuring PinHead" below for a way to
  153. automatically tell PinHead when to disable itself. 
  154.  
  155.  
  156. Configuring PinHead (the PINHEAD.DAT file)
  157. ------------------------------------------
  158.  
  159.      Since it's hard sometimes to remember when you're supposed to
  160. disable PinHead to run a certain program, and a system crash seems like
  161. a rather harsh penalty to pay for a moment of forgetfulness, PinHead has
  162. a configuration option which lets you tell it to automatically disable
  163. itself when certain programs are run.  You can also tell PinHead to
  164. clear a little bit of extra memory for certain programs; this enables
  165. "problem" programs to be fastloaded. 
  166.  
  167.      As mentioned above, you can create a special "configuration file"
  168. which will be read when PinHead is first run.  This file should be
  169. called PINHEAD.DAT, and kept in the root directory of your boot disk. 
  170. PINHEAD.DAT is a standard ASCII text file which can be created and
  171. edited with just about any ST word processor or text editor (as long as
  172. your editor has an option to 'Save as ASCII').  This file contains
  173. information about programs that need "special treatment" in order to
  174. live harmoniously in the same system with PinHead. 
  175.  
  176.      The PINHEAD.DAT file must follow some simple rules of organization
  177. to be properly used by PinHead.  All lines should be flush with the left
  178. screen margin...do not insert spaces from the left.  The first line of
  179. the file should contain the letters 'PH13', followed by Return.  This is
  180. the special identifier that tells PinHead this is a valid PINHEAD.DAT
  181. file. 
  182.  
  183.      PLEASE NOTE:  The 'PH13' identifier should be used even though you
  184. may not be running PinHead 1.3.  It has nothing to do with the current
  185. version number of PinHead itself; it simply signifies that this feature
  186. was added in version 1.3.
  187.  
  188.      On the lines following the identifier, you can list each program or
  189. desk accessory that needs to be specially treated.  All filenames should
  190. be in upper case, with no path information -- only the name of the file
  191. itself.  PinHead allows you to list up to 32 programs in the PINHEAD.DAT
  192. file. 
  193.  
  194.      If a line contains only a program filename, followed by a Return,
  195. PinHead assumes this to mean that it should deactivate itself during the
  196. loading of that program.  This frees you from having to remember to
  197. disable PinHead manually.
  198.  
  199.      If a line contains a program filename followed by one or more
  200. spaces, followed by a number, PinHead assumes this number to be the
  201. number of kilobytes of "extra" memory it should clear when that program
  202. runs.  (One "K" or kilobyte is 1024 bytes.)  By experimenting with
  203. different sizes of "extra" memory, you should be able to "fastload" many
  204. programs that would otherwise be incompatible with PinHead.  (The same
  205. programs that are incompatible with TOS 1.4's fastload feature.)  For
  206. example, the GFA Basic Interpreter apparently needs only 8K of "extra"
  207. memory cleared when it runs in order to be fastloaded like any other
  208. program.  (See "How PinHead Works" for more details about clearing this
  209. extra memory.)
  210.  
  211.      Here's a sample PINHEAD.DAT file:
  212.  
  213.  
  214. PH13           <---------------\
  215. GFABASIC.PRG 8  <------\        \
  216. USCRIPT.PRG   <---\     \        \
  217. ARC.TTP 16  <--    \     \        \
  218. TURBOST.ACC    |    \     \   Mandatory "identifier" (must be 1st line).
  219.                |     \     \
  220.         ^      |      \  Clear 8K of extra memory when GFABASIC.PRG runs.
  221.         |      \       \
  222.         |       \    Disable PinHead when USCRIPT.PRG runs.
  223.         \        \
  224.          \     Clear 16K of extra memory when ARC.TTP runs.
  225.           \
  226.         Disable PinHead when the Turbo ST desk accessory loads.
  227.  
  228.      Please note that unless a program's name is listed in the
  229. PINHEAD.DAT file with a number after it, versions 1.4 and higher of
  230. PinHead will not clear any "extra" memory at all when the program runs. 
  231. This differs from PinHead 1.2 -- version 1.2 would always clear an
  232. arbitrary 16K of extra memory for all programs. 
  233.  
  234.  
  235. How PinHead Works
  236. -----------------
  237.  
  238.      PinHead is based on a public domain program called NULLFILL,
  239. originally written by Leo de Wit, and circulated on the Bitnet system. 
  240. When it appeared on GEnie, I got curious about it and took a look.  The
  241. original program worked only with TOS 1.0, which didn't do me much good
  242. since I have a Mega ST4 with TOS 1.2.  I added compatibility with TOS
  243. 1.2 and 1.4 (which turned out to involve a bit more than just changing a
  244. few addresses!), and had it check to see which version of the ROMs it
  245. was running under.  I also added a "hot key disable" feature, optimized
  246. the code to work almost twice as fast, reduced its memory usage by quite
  247. a bit, and made it compatible with the popular FATSPEED program (the
  248. original stopped working if FATSPEED was installed).  Then I found a way
  249. to make it even more compatible with certain programs (programs like
  250. Microsoft Write, the GFA Basic Interpreter, and ARC.TTP) than the new
  251. "fastload" feature in TOS 1.4.  Leo, if you see this, I hope you don't
  252. mind what I've done with your idea!
  253.  
  254.      So how does it work? Ordinarily, when TOS runs a program all free
  255. memory (from the beginning of the program to the end of the TPA, or
  256. Transient Program Area) is cleared.  PinHead sits and watches for that
  257. memory clearing routine to occur, and when it does, substitutes a much
  258. faster clearing routine.  In addition to being faster, the PinHead
  259. routine only clears one (usually small) part of the program's memory
  260. area (the BSS) instead of clearing all memory in the computer.  This
  261. means that programs start up much faster.  (This is the exact same
  262. method that TOS 1.4 uses to implement its fastload feature.)
  263.  
  264.      But a few programs don't get along with TOS 1.4's fastload method;
  265. these "problem" programs expect all memory to be clear (set to zeros)
  266. when they run.  (The ST documentation does not guarantee that anything
  267. except a program's BSS area will be clear when it runs, but some
  268. programmers have made that assumption in their code.)  To get around this
  269. problem, PinHead allows you to specify (in the PINHEAD.DAT file) an
  270. amount of "extra" memory to clear beyond a program's BSS; this extra
  271. clearing is usually imperceptible unless you specify a very large
  272. amount, yet it enables PinHead to work properly with many applications
  273. that fail when used with TOS 1.4's fastload technique. 
  274.  
  275.      If you do come across a program that won't work properly when
  276. PinHead is active, you can either disable PinHead manually before
  277. running it, or add its name to your PINHEAD.DAT file to disable PinHead
  278. automatically when that program runs.  (See "Disabling PinHead,"
  279. "Turning PinHead On and Off," and "Configuring PinHead" above.)
  280.  
  281.  
  282.  
  283.                            *************
  284.                            *           *
  285.                            * NEW STUFF *
  286.                            *           *
  287.                            *************
  288.  
  289.  
  290. *************************** PINHEAD 1.4 ********************************
  291.  
  292.  
  293. PinHead Now Fastloads Itself!
  294. -----------------------------
  295.  
  296.      Version 1.4 of PinHead uses an undocumented feature of TOS 1.0 and
  297. 1.2 to "fastload" itself.  This means that the speedup starts one
  298. program sooner in your AUTO folder, since the PinHead program file does
  299. not cause memory to be cleared when it runs.
  300.  
  301.      (NOTE: Normally, the use of this undocumented feature would result
  302. in the PinHead program file being left "open" by the system.  PinHead
  303. 1.4 uses a special technique to avoid this bug in TOS, and you will have
  304. no trouble deleting, renaming, or copying the PinHead program file after
  305. it runs.)
  306.  
  307.  
  308. New "Wildcard" Configuration Option
  309. -----------------------------------
  310.  
  311.      Starting in PinHead 1.4, you can now specify a default amount of
  312. "extra" memory to be cleared automatically for every program _not_
  313. listed in the PINHEAD.DAT file.  This way, if you have a problem with
  314. PinHead, you don't have to go laboriously searching through your AUTO
  315. folder and accessories to find the one that's crashing -- just list a
  316. default amount of extra memory in the PINHEAD.DAT file.
  317.  
  318.      To do this, just create a PINHEAD.DAT file that looks like:
  319.  
  320.  
  321. PH13
  322. *.* 16
  323.  
  324.  
  325.      In this example, we're telling PinHead to clear 16K of extra memory
  326. whenever any program runs.  The wildcard specifier "*.*" is used to mean
  327. "all files/programs".  This should be followed by a space, then the
  328. amount of K (kilobytes) you wish to clear beyond the program's BSS.  If
  329. there are other program names listed in the PINHEAD.DAT file, either
  330. before or after the "*.* 16" line, they will be processed according to
  331. the rules explained in the section titled "Configuring PinHead" above.
  332.  
  333.  
  334. *************************** PINHEAD 1.5 ********************************
  335.  
  336.  
  337. Now Compatible with TOS 1.6 (STe TOS)
  338. -------------------------------------
  339.  
  340.      PinHead 1.5 is compatible with the new version of TOS being shipped
  341. in the STe computers.  No other changes were made from version 1.4.
  342.  
  343.  
  344. *************************** PINHEAD 1.6 ********************************
  345.  
  346.  
  347. Now REALLY compatible with TOS 1.6
  348. ----------------------------------
  349.  
  350.      Well, I was wrong.  Version 1.5 of PinHead didn't work with the
  351. version of TOS 1.6 that's in the STes currently being sold in Canada and
  352. Europe.  PinHead 1.6 does.  (The STes Atari gives to developers have
  353. a version of TOS that says it's "1.6"...but it's not the same TOS 1.6
  354. that's in the existing machines.  PinHead 1.5 did work with that TOS.)
  355.  
  356.  
  357. *************************** PINHEAD 1.7 ********************************
  358.  
  359.  
  360. Better Compatibility With Ramdisk Programs and DC Desktop
  361. ---------------------------------------------------------
  362.  
  363.      PinHead 1.7 now uses a different method (suggested by Mike
  364. Vederman; thanks, Mike) to accomplish a certain task, that results in
  365. better compatibility with some ramdisk programs, the Shadow background
  366. transfer accessory, and DC Desktop.
  367.  
  368.  
  369. PinHead Now Follows the 'XBRA' Protocol
  370. ---------------------------------------
  371.  
  372.      A new version of Atari's POOLFIX program (which is needed to patch
  373. a bug in TOS 1.4 and 1.6) has recently appeared; the new program is
  374. called POOLFIX4.  A user in Germany apparently disassembled the latest
  375. POOLFIX (POOLFIX3 - the one that worked) and added XBRA compatibility so
  376. that it would not have to be the very first thing in your AUTO folder. 
  377. (Atari has given their permission for this program to be posted on the
  378. info services and distributed.)
  379.  
  380.      The catch is that in order for this to work, every program that
  381. runs before POOLFIX4 must _also_ follow the XBRA protocol, and not many
  382. do.  Well, now PinHead is one of the few.  PinHead 1.7 can be installed
  383. in your AUTO folder so that it runs before POOLFIX4...so now you can
  384. squeeze every last ounce of speed out of your bootup.
  385.  
  386.  
  387. PinHead 1.7 Is Also Compatible With the 68030
  388. ---------------------------------------------
  389.  
  390.      PinHead 1.7 is now compatible with the 68010/020/030/040 family of
  391. microprocessors, so when the 68030 upgrade boards start hitting the
  392. market, PinHead will be ready for them.
  393.  
  394.  
  395. *************************** PINHEAD 1.8 ********************************
  396.  
  397.  
  398. Even More Compatibility!
  399. ------------------------
  400.  
  401.      PinHead 1.8 is primarily a "bug fix" version.  There was a small
  402. problem with the code suggested by Mike Vederman for DC Desktop
  403. compatibility (see above; sorry, Mike), such that PinHead could cause
  404. some programs to crash under certain conditions.  This problem has been
  405. repaired, and as a result this version should be sturdier than ever.
  406.  
  407.  
  408. Default Memory Clearing
  409. -----------------------
  410.  
  411.      PinHead 1.8 now clears an extra 32K of memory beyond the BSS area
  412. of all programs, as a default.  Through experimentation and reports from
  413. users, this seems to solve most (if not all) of the problems with
  414. programs that expect to find all memory clear when they run; and the
  415. clearing of 32K happens so fast that it is indistinguishable to mere
  416. human senses.
  417.  
  418.      If you don't want PinHead to clear even this much extra memory,
  419. create a PINHEAD.DAT file (please see above for a full explanation of
  420. the PINHEAD.DAT file) that looks like this:
  421.  
  422. PH13
  423. *.* 0
  424.  
  425.  
  426. *************************** PINHEAD 2.0 ********************************
  427.  
  428.  
  429. The Closer You Get, the Better That PinHead Looks!
  430. --------------------------------------------------
  431.  
  432.      Version 2.0 of PinHead is now compatible with all versions of TOS
  433. greater than 1.2.  This includes the TOS installed in TTs and Mega STes.
  434. And that's about the only real difference in version 2.0!
  435.  
  436.  
  437. OK, So I Lied...
  438. ----------------
  439.  
  440.      There's one other small difference.  In PinHead 2.0, I've removed
  441. the "hot key" on/off features.  The reason?  Actually, there are three
  442. reasons: 1) the code to perform those "hot key" functions seems to give
  443. MIDI programs fits, 2) to reduce overhead in the time-critical
  444. MIDI/Keyboard interrupt, and 3) the feature just didn't seem all that
  445. useful any more; it's better to add the name of any problem program to
  446. the PINHEAD.DAT file, as described above, and besides, this latest
  447. version of PinHead is so compatible that there really are very few
  448. problem programs!
  449.  
  450.  
  451. Special Thanks...
  452. -----------------
  453.  
  454.      ...go to John Eidsvoog for discovering a new method to accomplish
  455. one of PinHead's nasty, dirty tricks.  This new method is what lets
  456. PinHead 2.0 work on TOS 2.xx and greater. 
  457.  
  458.  
  459.  
  460. *************************** PINHEAD 2.1 ********************************
  461.  
  462.  
  463. A PinHead Full of Trouble...
  464. ----------------------------
  465.  
  466.      Seems a lot of people didn't understand that Pinhead 2.0 was only
  467. supposed to be used with TOS 1.4 or later, and that they should keep
  468. using PinHead 1.8 if they had an earlier version.  Therefore, to prevent
  469. any more confusion -- here's PinHead 2.1, now fully compatible with all
  470. known versions of TOS, and with a new technique that should remain
  471. compatible into the foreseeable future. 
  472.  
  473.      PinHead 2.1 is also lacking the hot key on/off feature of earlier
  474. versions, so people with TOS 1.0 or 1.2 who run MIDI software should be
  475. able to use this version with no trouble.
  476.  
  477.  
  478.  
  479. *****************************************************************************
  480. *                                                                           *
  481. *  PINHEAD.PRG and PINHEAD.TXT are                                          *
  482. *  © 1989,90,92 Charles F. Johnson & Little Green Footballs Software.       *
  483. *  All Rights Reserved.                                                     *
  484. *                                                                           *
  485. *  PINHEAD 2.1 MAY BE FREELY DISTRIBUTED AS LONG AS BOTH THE PROGRAM        *
  486. *  FILE AND THIS DOCUMENTATION ARE INCLUDED, AND AS LONG AS NEITHER         *
  487. *  FILE IS ALTERED IN ANY WAY WHATSOEVER.  NO PART OF THIS PROGRAM OR       *
  488. *  ITS ACCOMPANYING DOCUMENTATION MAY BE REPRINTED OR USED FOR              *
  489. *  COMMERCIAL PURPOSES WITHOUT THE EXPRESS WRITTEN CONSENT OF THE           *
  490. *  PROGRAM'S AUTHOR.                                                        *
  491. *                                                                           *
  492. *****************************************************************************
  493.  
  494.