home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 September / Simtel20_Sept92.cdr / msdos / sysutl / sysgn132.arc / SYSGEN.DOC < prev    next >
Text File  |  1989-12-11  |  15KB  |  371 lines

  1.     ------------------------------------------------------------------------
  2.  
  3.     Sysgen V1.32 - Roger Link 12/11/89
  4.  
  5.     ------------------------------------------------------------------------
  6.  
  7.     The Link sysgen program is a utility to help configure and maintain
  8.     MS-DOS configurations files.  Through the use of a sysgen configuration
  9.     file, the program can generate files such as AUTOEXEC.BAT and
  10.     CONFIG.SYS for different system needs.  This can be very useful if you
  11.     are constantly tampering with your autoexec.bat and config.sys because
  12.     one program wants this or that, and "this or that" interferes with
  13.     everything else in the system.  Some programs want extended memory,
  14.     others want expanded.  Some things (like LAN programs) have large
  15.     device drivers, or some device drivers refuse to coexist with another.
  16.     With this program, you can change system configuration files by simply
  17.     issuing a command (with a value indicating the number of the system
  18.     desired), and rebooting the computer.  Sysgen also has a simple menu
  19.     system to prompt the user for the sysgen value to determine which
  20.     system to build.  Sysgen allows for up to nine different systems to be
  21.     stored in a single configuration file (Multiple configuration files are
  22.     allowed.).  A utility is included to read your current autoexec.bat and
  23.     config.sys into a configuration file ready for sysgen.
  24.  
  25.     The sysgen configuration file is a line oriented file, read from left
  26.     to right.  The primary use of each line is determined by the first
  27.     character in the line.  The two most important "commands" are the "F"
  28.     and the "-".  The "F" file command determines where the following data
  29.     lines will be output.  The "-" indicates a data line.  The nine
  30.     characters following either of these commands determine which of the
  31.     nine system(s) will use that line.  For example:
  32.  
  33.            -12     8 Path C:\;C:\system;
  34.  
  35.      This "-" data line would only be used with a sysgen value of 1,2 & 8.
  36.  
  37.     Another example shows how the path can be changed for each system:
  38.  
  39.            -1        Path C:\sys\dos;C:\Fred;
  40.            - 2       Path C:\sys\dos;C:\Andy;
  41.            -  3      Path C:\sys\dos;C:\Allen;
  42.  
  43.     The actual characters used in columns 2-10 aren't important, just
  44.     their position.  In the above example the "1", "2", "3" would have
  45.     worked just as well if they had been "X"'s.  The sysgen program checks
  46.     each position for a space/no space test.  I use numbers since they are
  47.     equal to the sysgen value.
  48.  
  49.     A more complete sysgen configuration file follows:
  50.  
  51.            F123456789C:\autoexec.bat
  52.            -1        Path C:\sys\dos;C:\Fred;
  53.            - 2       Path C:\sys\dos;C:\Andy;
  54.            -  3      Path C:\sys\dos;C:\Allen;
  55.            -123      Chkdsk /f
  56.            - 2       cd \Kermit
  57.            - 2       Kermit
  58.            F123456789C:\config.sys
  59.            -12       device = C:\sys\dos\ansi.sys
  60.            -  3      device = C:\sys\public\sansi.sys
  61.            -123456789files=20
  62.            -123456789buffers=20
  63.  
  64.     This example shows the use of the "F" file command.  The "F" command
  65.     names the output file to put the following data lines in.  For example
  66.     if sysgen was run with the above configuration file, the following
  67.     output files (autoexec.bat & config.sys) would be produced depending on
  68.     the sysgen value input to the sysgen program.
  69.  
  70.     Sysgen Value = 1
  71.  
  72.         C:\autoexec.bat would contain
  73.            Path C:\sys\dos;C:\Fred;
  74.            Chkdsk /f
  75.  
  76.         C:\config.sys would contain
  77.            device = C:\sys\dos\ansi.sys
  78.            files=20
  79.            buffers=20
  80.  
  81.  
  82.     Sysgen Value = 2
  83.  
  84.         C:\autoexec.bat would contain
  85.            Path C:\sys\dos;C:\Andy;
  86.            Chkdsk /f
  87.            cd \Kermit
  88.            Kermit
  89.  
  90.         C:\config.sys would contain
  91.            device = C:\sys\dos\ansi.sys
  92.            files=20
  93.            buffers=20
  94.  
  95.     Sysgen Value = 3
  96.  
  97.         C:\autoexec.bat would contain
  98.            Path C:\sys\dos;C:\Allen;
  99.            Chkdsk /f
  100.  
  101.         C:\config.sys would contain
  102.            device = C:\sys\dos\sansi.sys
  103.            files=20
  104.            buffers=20
  105.  
  106.     The "E" echo primary command will conditionally echo the data portion
  107.     of the line to the user while sysgen is interpreting the configuration
  108.     file.  Columns 2-9 determine which sysgen value(s) will trigger this
  109.     line to be echoed as sysgen builds the output files:
  110.  
  111.           E1        ** Disk Cache System Sysgen **
  112.           E 2       ** Turbo Debug Sysgen **
  113.           E  3      ** EasyNet System Sysgen **
  114.  
  115.  
  116.     The "." primary command is a meta command, with column 2 determining the
  117.     function of the line.  There are two (oh boy!!) functions.  A ";" is a
  118.     comment line with no sysgen action, and a "E" is a unconditional echo
  119.     to the user.
  120.  
  121.           .;********************************************************
  122.           .;*
  123.           .;* SYSTEM.CFG for Gem 20mhz '386
  124.           .;*
  125.           .;*   RAL - 12/08/89
  126.           .;*
  127.           .;********************************************************
  128.           .E SYSTEM.CFG - RAL - 12/08/89
  129.           .;23456789
  130.  
  131.     When the above is interpreted by sysgen, the only visible response will
  132.     be a echo to the user of the "SYSTEM.CFG - RAL - 12/08/89" message.
  133.  
  134.     Here is a quick command summary:
  135.  
  136.     F1        C:\autoexec.bat            - "F"  File select line
  137.  
  138.     -1        Path c:\                   - "-"  Data line
  139.  
  140.     V1        ** Variable line **        - "V"  Variable line
  141.  
  142.     E1        ++ Conditional Echo ++     - "E"  Conditional echo
  143.  
  144.     .;* This is a comment line           - ".;" Comment line
  145.  
  146.     .E $$ Unconditional Echo $           - ".E" Unconditional echo
  147.  
  148.  
  149.     ------------------------------------------------------------------------
  150.  
  151.     The sysgen command has the following syntax:
  152.  
  153.       SYSGEN [-Ffilename.type] [-Q] [-?] [?] [#]
  154.  
  155.        - Square brackets "[ ]" indicate an option
  156.        - filename.type is the configuration file to use
  157.        - # is the sysgen value in the range 0-9
  158.        - ALL OPTIONS MUST have spaces proceeding and preceding that option
  159.  
  160.  
  161.     A "sysgen" with no parameters will enter "query" mode, and ask the user
  162.     for a sysgen value.  Sysgen will search the sysgen.cfg (When used with
  163.     no parameters, sysgen will default to sysgen.cfg.) configuration file
  164.     for all "V" variable lines to make up a menu for the user.  Columns
  165.     2-10 indicate what sysgen value(s) this "V" line is intended for, and
  166.     what menu select number(s) to show with the line.  When the user
  167.     replies to the prompt, he can only enter sysgen values that a "V"
  168.     variable has selected as available.  Sysgen will automatically add a
  169.     menu line for the "0"/"No system" sysgen value (and allow a zero input
  170.     to select it!!).  Here is a example configuration file, and the menus
  171.     that will be produced:
  172.  
  173.       SYSGEN.CFG file:
  174.           V1        ** Fred's System **
  175.           V 2       ** Andy's System **
  176.           V  3      ** Allen's System **
  177.           V   4     --- Autocad System ---
  178.  
  179.  
  180.       Sysgen menu produced:
  181.           0  ** NO autoexec.bat / NO config.sys
  182.           1  ** Fred's System **
  183.           2  ** Andy's System **
  184.           3  ** Allen's System **
  185.           4  --- Autocad System ---
  186.  
  187.             Enter number of system desired ->
  188.  
  189.  
  190.     No error checking is done on the variable "V" lines. It is
  191.     possible to have more than one sysgen value per "V" line as:
  192.  
  193.       SYSGEN.CFG file:
  194.           V12       ** Multiple V's per line **
  195.  
  196.       Sysgen menu produced:
  197.           0  ** NO autoexec.bat / NO config.sys
  198.           1 2 ** Multiple V's per line **
  199.  
  200.             Enter number of system desired ->
  201.  
  202.  
  203.     It is also permissible to have a variable "V" line with no sysgen
  204.     value.  This will output as a "comment" line in the menu area.  If a
  205.     sysgen configuration file other than the default sysgen.cfg is desired
  206.     in the query mode, use the -Ffilename.type option.  Replace
  207.     filename.type with the desired config file.  There is NO SPACE between
  208.     -F and the first letter of the file name!!!  If no sysgen values
  209.     (values 0-9) are found on the command line, sysgen will enter query
  210.     mode.  If you want to force query mode, add a "-Q" on the sysgen
  211.     command line.
  212.  
  213.     For a single page sysgen help screen use either the "-?" or "?" on the
  214.     command line.
  215.  
  216.            sysgen ?   or   sysgen -?
  217.  
  218.     If a sysgen value is found on the command line, sysgen will use that as
  219.     the sysgen value.  A sysgen value equal to 0, indicates NO SYSTEM,
  220.     which means \AUTOEXEC.BAT and \CONFIG.SYS will be ** ERASED ** after
  221.     user approval.  No other files will be modified/erased.  If the sysgen
  222.     value is in the range 1-9, sysgen will read and interpret the selected
  223.     config file.  No error checking is done to guarantee that this sysgen
  224.     value matches ANY lines in the configuration file.
  225.  
  226.     Options can be entered and combined in any order that the user desires.
  227.     The help command options have precedence over all other options, with
  228.     the query option following.  The options are scanned from left to right
  229.     (with validity checking for each).  Options that are repeated on the
  230.     command line will take the value/action of the last scanned option.
  231.     Here are a few examples:
  232.  
  233.        sysgen -fconfig5.cfg -q -?       ---> Enter help mode
  234.        sysgen 1 -q                      ---> Enter query mode
  235.        sysgen -fconfig5.cfg 1 2 3 4     ---> Use config file "config5.cfg"
  236.                                                with a sysgen value of 4.
  237.  
  238.     ------------------------------------------------------------------------
  239.  
  240.     MakeCFG has been included to help you to create a configuration file
  241.     for your system.  MakeCFG has the following syntax:
  242.  
  243.        MAKECFG filename.type
  244.  
  245.     Filename.type is the output file that MakeCFG will create.  Since
  246.     sysgen defaults to the file "sysgen.cfg", this command would be:
  247.  
  248.        MAKECFG sysgen.cfg
  249.  
  250.     This file will be the merged contents of the current drives
  251.     \autoexec.bat and \config.sys with appended sysgen command information
  252.     on each line.  After these two files have been merged, the program will
  253.     query the user to see if any more files are to merged into the output
  254.     configuration file.  After running MakeCFG edit the configuration file
  255.     with your favorite text editor, and modify the file as needed.
  256.  
  257.     ------------------------------------------------------------------------
  258.  
  259.     Sysgen and MakeCFG where both written in Turbo Pascal 5.5.  The
  260.     programs should compile under Turbo Pascal 4.0 with no problems, and,
  261.     if need be, under 3.0 with some work.  (Of course neither of these has
  262.     been tested!!)  The programs don't use any clever algorithms or fancy
  263.     code.  They are written in a straight forward fashion.  There are
  264.     probably a few minor bugs that I haven't spotted!
  265.  
  266.     This program and source code are placed in the public domain.  Use it
  267.     as you see fit.  There are no guarantees that it will do anything good
  268.     for you (but it sure works for me!!!)  Please don't claim that you
  269.     wrote it, or attempt to make a fortune (ha! ha!) off of it.  I should
  270.     mention that this program is not a original idea of mine.  I saw a
  271.     similar program written by a friend/fellow hacker, Phil Benchoff.  But
  272.     of course I didn't really like the way his worked, so I wasted plenty
  273.     of time, and wrote my own!!  Thanx Phil!!!!  Any bugs/problems
  274.     /suggestions can be sent to me using any of the following addresses:
  275.  
  276.     BitNet address:
  277.          LinkR@VTVM1
  278.  
  279.     Mad Bit Twiddler (MBT) Bulletin board in Blacksburg, Va.: (703-552-8767)
  280.          LinkR
  281.  
  282.     US Mail:
  283.          Roger Link
  284.          RT 2 Box 409
  285.          Newport Va., 24128
  286.  
  287.  
  288.     Here is a copy of my sysgen.cfg for my home system:
  289.  
  290. .;********************************************************
  291. .;*
  292. .;* SYSTEM.CFG for Gem 20mhz '386
  293. .;*
  294. .;*   RAL - 12/08/89
  295. .;*
  296. .;********************************************************
  297. .E SYSTEM.CFG - RAL - 12/08/89
  298. .;23456789
  299. E1        ** Disk Cache System Sysgen **
  300. E 2       ** Turbo Debug Sysgen **
  301. E  3      ** EasyNet System Sysgen **
  302. E   4     ** Small System Sysgen **
  303. V1        ** Disk Cache System Sysgen **
  304. V 2       ** Turbo Debug Sysgen **
  305. V  3      ** EasyNet System Sysgen **
  306. V   4     ** Small System Sysgen **
  307. F123456789C:\autoexec.bat
  308. -123456789@echo off
  309. -123456789rem ********************************************
  310. -123456789rem * DO NOT EDIT THIS FILE. IT IS GENERATED
  311. -123456789rem * BY MACHINE. SEE \SYS\SYSGEN\SYSGEN.CFG
  312. -123456789rem *               RAL 12/08/89
  313. -123456789rem ********************************************
  314. -123456789Prompt $e[36m$P$e[32m$G
  315. -123456789echo off
  316. -1234     c:\sys\public\vpt /L
  317. -1        c:\sys\dell\cache.sys /a+ /s:640 /-a /-b
  318. -1234     path c:\sys\dos;c:\sys\public;c:\kermit;c:\kedit;c:\ws4;c:\lang\pal\cupl;c:\lang\tasm;c\lang\td;
  319. -1234     \Sys\Public\ced -F\sys\public\ced.cfg
  320. -1234     \Sys\dos\Chkdsk c:/f
  321. -1234     \Sys\dos\Chkdsk d:/f
  322. -1234     \Sys\dos\Chkdsk e:/f
  323. -1234     \sys\norton\ncc /fastkey
  324. -1        c:\sys\qemm\qemm
  325. -  3      cd \easynet
  326. -  3      netstart /r
  327. -  3      cd \
  328. -1234     c:\sys\norton\tm start /C4/L/N
  329. -123456789mode com2:9600,n,8,1
  330. -1        ECHO ** Disk Cache System Ready **
  331. - 2       ECHO ** Turbo Debug System **
  332. -  3      ECHO ** EasyNet System Ready **
  333. -   4     ECHO ** Small System Ready **
  334. .;*
  335. .;*
  336. .;* CONFIG.SYS stuff
  337. .;*
  338. .;*
  339. .;23456789
  340. F123456789c:\config.sys
  341. -1234     SHELL=C:\COMMAND.COM /P
  342. -1234     device=c:\Sys\sys\nnansi.sys
  343. -1234     DEVICE=C:\Sys\sys\LTMOUSE.SYS 1
  344. -1        device=c:\sys\qemm\qemm.sys
  345. - 2       device=c:\lang\td\tdh386.sys
  346. -  3      device=c:\easynet\netdrive.sys
  347. -1234     BUFFERS=20
  348. -1234     FILES=20
  349. -1234     BREAK=ON
  350. .;*
  351. .;*
  352. .;* CED stuff
  353. .;*
  354. .;*
  355. .;23456789
  356. F123456789C:\sys\public\ced.cfg
  357. -123456789rem ********************************************
  358. -123456789rem * DO NOT EDIT THIS FILE. IT IS GENERATED
  359. -123456789rem * BY MACHINE. SEE \SYS\SYSGEN\SYSGEN.CFG
  360. -123456789rem *               RAL 12/08/89
  361. -123456789rem ********************************************
  362. -123456789chainch &
  363. -123456789syn turbo3 c:\lang\pascal\tp3\turbo
  364. -123456789syn turbo c:\lang\pascal\\tp55\turbo
  365. -123456789syn make  c:\lang\ndmake\make %1 %2 %3 %4
  366. -123456789syn eprom1 c:\etc\eprom\eprom1
  367. -123456789syn hexbin c:\etc\eprom\hexbin
  368. -123456789syn kedit c:\kedit\kedit
  369. -123456789syn x     c:\kedit\kedit
  370. -123456789pcall kedit
  371.