home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / diskutil / gemboot / gemboot.doc < prev    next >
Text File  |  1987-07-26  |  9KB  |  197 lines

  1. Documentation of the archive GEMB1V11.ARC
  2.  
  3. Contained files:
  4.   1)  GEMBOOT.PRG   the GEM booter V1.11
  5.   2)  GEMBOOT.INF   GEMBOOT parameter file example
  6.   3)  COMMAND.TOS   a PD command shell
  7.   4)  DESKENV.TTP   environment string setter for DESKTOP
  8.   5)  GEMFRL.TOS    prints status of GEMDOS internal system memory free lists 
  9.   6)  GEMBOOT.DOC   (this file)
  10.  
  11. ##############################################
  12. # Copyright (c) of GEMBOOT.PRG, DESKENV.TTP  #
  13. #                  GEMFRL.TOS                #
  14. #                                            #
  15. # by  Konrad A. Hahn                         #        
  16. #     Karlstr.19                             #
  17. #     D-6109 Muehltal                        #
  18. #     W.-Germany                             #
  19. #                                            #
  20. # Permission of charge free copy and usage   #
  21. # only for noncommercial users               #
  22. ##############################################
  23.  
  24. GEMBOOT.PRG  V1.11
  25. ------------------
  26. GEMBOOT serves as a plaster for the old TOS problem: "the 40 folder limit".
  27. The so called "40 folder limit" is a two fold TOS bug.
  28. The system crashes are caused by GEMDOS being "out of system memory".
  29. GEMDOS has a limited system memory area of 3000 words used for memory
  30. descriptors, media descriptors, directory cache blocks, etc.
  31. Each cached directory needs 66 words of the system memory.
  32. Together with the system blocks added by AHDI.PRG this gives you a total
  33. capacity of 85 folders on your non-GEMBOOT-enhanced system (including
  34. floppies).
  35.  
  36. Even if you hold your system below this limit you will get into trouble.
  37. Tracing GEMDOS internal data I found most system memory overflows being
  38. forced by multiple duplicates of directory cache blocks.
  39. Obviously GEMDOS sometimes forgets to set a special flag in the parent
  40. directory cache block, which should indicate that subdirectories have
  41. been cached.
  42. Thus next time GEMDOS needs a file located in this directory it creates
  43. another set of subdirectory cache blocks.
  44. This happens on and on until the flag gets set (or until system crash).
  45. So the system memory gets totally trashed with useless duplicates and
  46. is overflowed finally.
  47. Since hard disks have fixed media you never get rid of these duplicates.
  48. With floppy drives you have a chance because all assigned directory cache
  49. blocks are released after a media change.
  50.  
  51. GEMBOOT protects the system by linking fresh cache blocks to the system
  52. and scanning all hard disk directories with Fsfirst()-Fsnext().
  53. Thus GEMDOS is forced to build up a complete, errorfree directory cache tree.
  54. The cache blocks created by this procedure have their "flags" set and
  55. prevent GEMDOS from generating duplicates.
  56.  
  57. The number of cache blocks initially allocated and linked to the system free
  58. lists is determined by the variable FOLDERS.
  59. Besides this GEMBOOT may add chunks of fresh cache blocks to the system
  60. during the directory scan. This "incremental add" happens each time GEMBOOT
  61. detects the cache block free list being empty.
  62. The size of the cache block chunks is determined by the variable FOLDERINC.
  63. Since the memory for each chunk is allocated seperately it costs additional
  64. system memory for the memory descriptors.
  65. The minimum free cache space reserved for new folders is determined by the
  66. variable FOLDERRES.
  67.  
  68. Furthermore GEMBOOT provides a 256 character environment buffer for DESKTOP,
  69. which may be modified by the program DESKENV.TTP.
  70. Last not least it has a build in startup batch feature which uses a standard
  71. command shell without creating a "memory hole" in front of resident programs.
  72. A ramdisk installation program can be supplied with params within our startup
  73. batch procedure.
  74.  
  75. Note:
  76. After the login phase GEMBOOT lists the number of directories found and the
  77. free cache space left. The latter count only depends on the number of system
  78. blocks in the free list. The left unpartitioned system memory is not counted.
  79. Thus you may have more space for hard disk folders, but it is better to spare
  80. this memory for memory descriptors and floppy disk folders.
  81.  
  82. ############### Installation and customization ##################
  83.  
  84. Put GEMBOOT.PRG and GEMBOOT.INF in the AUTO directory of your boot disk.
  85. If you are using the DESKTOP environment buffer (ENVBUFSIZE > 0) be sure
  86. that GEMBOOT is the last file in the AUTO exec sequence because DESKTOP
  87. is booted without leaving GEMBOOT.
  88. GEMBOOT.INF contains variable assignment lines of the form
  89. <variable>=<value><crlf>
  90. and may be modified to serve your needs.
  91.  
  92. Following variables are local to GEMBOOT V1.11:
  93. Name          Range       Default        Meaning
  94. -------------------------------------------------------------------------
  95. FOLDERS       1 : 1000    150            dir. cache blocks added to system
  96. FOLDERINC     0 : 100     20             chunk size of incremental add
  97. FOLDERRES     0 : 100     10             minimum free cache space reserved
  98. MEMBLOCKS     0 : 5000    0              mem. descriptors added to system
  99. BATCHSELECT   OFF : ON    ON             manual batch file selection
  100. BATCHFILE                 \AUTO\*.BAT    batch file search pattern
  101. BATCHSHELL                \COMMAND.TOS   batch shell
  102. SHELLSIZE     0 : MAXMEM  $82F8          shell load size (in bytes)
  103. ENVBUFSIZE    0 : 4096    256            DESKTOP env. buffer size (in bytes)
  104. SYSMEMFRL     0 : $FFFFFF $56FA          addr. of GEMDOS free list ptr array   
  105.  
  106. Assignments to variables different to the above are treated as DESKTOP
  107. environment variable definitions and are included in the DESKTOP environment
  108. string.
  109. The default 256 character environment string buffer provided for DESKTOP is
  110. initiated to "PATH=;X:\" (X = boot drive).
  111. Resizing the env. buffer by "ENVBUFSIZE=..." does also initialize the buffer
  112. to the above string. Thus your DESKTOP environment definitions must follow
  113. the "ENVBUFSIZE=..." assignment to survive the resizing.
  114. "ENVBUFSIZE=0" disables the DESKTOP environment buffer option and leads to
  115. a normal DESKTOP startup.
  116.  
  117. Be aware that each directory cache block costs 132 bytes, and each memory
  118. descriptor 18 bytes of your TPA.
  119. The allocated system blocks and the env. string buffer reside at the top
  120. of the TPA.
  121.  
  122. For the startup batch feature put COMMAND.TOS (included in the archive) into
  123. the root directory of your boot drive.
  124. You can direct GEMBOOT to use a different shell by the assignments
  125. "BATCHSHELL=<file spec.>" and "SHELLSIZE=<load size in bytes>"
  126. The used shell must be able to accept a batch file parameter.
  127. With the program GEMMEM you can find out the load size of your shell.
  128. The batch shell will be loaded at the top of the TPA, so programs staying
  129. resident may be executed without creating a "memory hole".
  130. At boot time GEMBOOT is looking for a batch file using the value string of
  131. variable BATCHFILE as a search pattern.
  132. If the value is the zero-string (BATCHFILE=<crlf>) the boot batch feature
  133. is disabled.
  134. With BATCHSELECT=OFF the first file found will be used without asking.
  135. With BATCHSELECT=ON up to 9 files found will be listed and you may select
  136. one to be executed by the shell.
  137.  
  138. Dependences:
  139. GEMBOOT uses the system variable exec_os to find the GEM startup procedure.
  140. GEMBOOT uses a GEMDOS internal pointer array at SYSMEMFRL to find the system
  141. memory free lists.
  142.  
  143.  
  144. DESKENV.TTP
  145. -----------
  146. DESKENV prints or modifies the contents of the DESKTOP environment string
  147. buffer provided by GEMBOOT with.
  148. DESKENV can't be used if the DESKTOP environment buffer option was switched
  149. off by "ENVBUFSIZE=0".
  150.  
  151. EBNF-Syntax:
  152. DESKENV [ (<variable>'='<value> | <variable>) {' ' (...)} ]
  153.  
  154. brackets:
  155. '' for terminals, <> for nonterminals, () for grouping with | as alternative
  156. separator, [] for options (0 or 1), {} for repetitions (0 or more)
  157.  
  158. If called without parameter the current environment variable assignments
  159. will be printed.
  160. Called with an assignment string as parameter (name string followed by
  161. 'equal' and a value string) DESKENV modifies or adds the variable definition
  162. to the environment string.
  163. Called with an environment variable name without following 'equal' removes
  164. the variable definition from the environment string.
  165.  
  166. Examples:
  167. "DESKENV LIBPATH=\USR\LIB\" sets the variable LIBPATH to value \USR\LIB\.
  168. "DESKENV LIBPATH" removes the variable LIBPATH.
  169.  
  170. If the value string contains white-space characters the assignment must be
  171. quoted.
  172. Example:
  173. DESKENV 'HEADER=***** Keep hands off !!! *****'
  174.  
  175. Note:
  176. DESKTOP internally sets the first character of the PATH variable to ';'.
  177. Thus the first character of your PATH value should be ';'
  178. (i.e. DESKENV PATH=;<path1>;<path2>;...) to leave the following path string
  179. intact.
  180.  
  181.  
  182. GEMFRL.TOS
  183. ----------
  184. This program finds the GEMDOS internal system memory free lists and prints
  185. the current status.
  186. If the address of the located pointer array is different to $56FA the
  187. GEMBOOT variable SYSMEMFRL must be set to the found address value.
  188. GEMDOS uses type-1 blocks for memory descriptors and type-4 blocks for
  189. directory caching.
  190.  
  191.  
  192. COMMAND.TOS
  193. -----------
  194. A PD command shell used by GEMBOOT.
  195. May be used for other purposes too.
  196. Enter '?' for a command list.
  197.