home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / r / rompr098.zip / ROMPROC.DOC < prev    next >
Text File  |  1993-03-20  |  23KB  |  489 lines

  1.  
  2.     ┌────┐
  3.     │──═─│
  4.     │ ── │ ─────┐      ┌────┐             ROMProc Documentation File
  5.     │    │   ROMProc   │──═─│                   Version 0.98ß
  6.     │    │      └────> │ ── │          (c) Copyright 1993 - Stacy Smith
  7.     │    │             │    │
  8.     │    │             │    │
  9.    ─┴────┴─           ─┴────┴─
  10.  
  11.  
  12.                                 Courtesy of:
  13.  
  14.                         The Bloom Beacon-Picayune BBS
  15.           Node 1: (804) 525-9760 (USRobotics Courier Dual Standard)
  16.              Node 2: (804) 525-5372 (USRobotics Courier V.32bis)
  17.                              FidoNet 1:276/112
  18.                                   Intelec
  19.                              RoseNet (ID: BB-P)
  20.  
  21.                                 Stacy Smith
  22.                               Route 6 Box 189
  23.                            Forest, Virginia 24551
  24.  
  25.  
  26. ┌────────────────────┐
  27. │  1. Introduction:  │
  28. └────────────────────┘
  29.  
  30. ROMProc is a BBS download file preprocessor designed to make optimal use of
  31. CD-ROM and/or LAN BBS setups by copying the desired file(s) from the source
  32. drive into a work directory, commenting them, transferring them to the remote
  33. user with the desired protocol and cleaning up. ROMProc is different from other
  34. programs in which it performs all these functions automatically from a single
  35. program command.
  36.  
  37. By commenting files just prior to download, rather than commenting them when
  38. posted, you will save a lot of disk space and your files will always have
  39. up-to-date comments inserted. By stripping the comments from 200 megs of ZIP
  40. files on my system, I gained about 2 megs of disk space!
  41.  
  42. ROMProc was developed primarily because I didn't like the current crop of
  43. CD-ROM and server file handlers. They were either complicated to install,
  44. didn't perform as desired, were designed as doors, memory hogs, ridiculously
  45. expensive or crippled.
  46.  
  47.  
  48. ┌───────────────────────────┐
  49. │  2. Features of ROMProc:  │
  50. └───────────────────────────┘
  51.  
  52.       ∙ Handles the complete download process from a single command-line.
  53.       ∙ Functions with any protocol, including single, batch and bi-directional
  54.         protocols.
  55.       ∙ May be installed in your BBS software as a batch file or a direct
  56.         command-line.
  57.       ∙ Automatically identifies ARC, ARJ, HYP, LZH, PAK, SQZ, ZIP and ZOO
  58.         files, regardless of their file extensions (ideal for software
  59.         distribution networks, like .SDN files), allowing commenting of these
  60.         archivers that support archive comments (not all do).
  61.       ∙ Automatically identifies ARJ, LZH, PAK, SQZ and ZIP self-extracting
  62.         (SFX) archives.
  63.       ∙ Comments all files prior to downloading.
  64.       ∙ May be configured to add a BBS ad file to the archive, if you insist.
  65.       ∙ Fully multinode compatible.
  66.       ∙ Windowed full-screen interface.
  67.       ∙ Not crippled.
  68.       ∙ Returns the errorlevel of transfer protocol, making ROMProc completely
  69.         transparent to the BBS software.
  70.       ∙ Written completely in C for optimal speed, using Microsoft C/C++ 7.0.
  71.       ∙ Lifetime registration; pay ONCE and your registration number will work
  72.         on all future versions!
  73.  
  74.  
  75. ┌─────────────────────────────────────────────────────────┐
  76. │  3. Files Included in the ROMProc Distribution Archive  │
  77. └─────────────────────────────────────────────────────────┘
  78.  
  79.         ROMPROC.EXE     Fidonet NodeList Scan door program
  80.         ROMPROC.CFG     Sample configuration file
  81.         ROMPROC.DOC     This file
  82.         HISTORY.TXT     ROMProc revision history in reverse order
  83.         REGISTER.FRM    Registration form for ROMProc
  84.         COMMENT.TXT     Sample comment file for inclusion in archives
  85.         FILE_ID.DIZ     Internal description file
  86.  
  87. When you unzip the distribution archive, you should see my PKZIP authenticity
  88. verification stamp, and a '-AV' after every file in the archive:
  89.  
  90.         # SSU301    The Bloom Beacon-Picayune BBS
  91.  
  92. If there are any files missing or added, or the -AV stamp is missing, the
  93. archive has been tampered with. It would be advisable to call my BBS (listed at
  94. the top of this document) for the latest version of ROMProc.
  95.  
  96.  
  97. ┌───────────────────────────┐
  98. │  4. Program Requirements  │
  99. └───────────────────────────┘
  100.  
  101. To the best of my knowledge, ROMProc will run on most any machine capable of
  102. running a BBS package. My BBS setup is PCBoard 14.5a/10 running under DESQview
  103. on a LANtastic 4.10 network, but other sysops that I have been in contact with
  104. have successfully implemented ROMProc on a wide variety of hardware.
  105.  
  106. ROMProc requires DOS 3.x or later, as it uses DOS SHARE-compatible file reads
  107. and writes.  ROMProc's memory requirements are very small (about 80K, plus
  108. whatever memory is required to invoke the transfer protocols), therefore it can
  109. be run in very low memory situations.
  110.  
  111. ROMProc has been developed and tested using the following archiving and
  112. transfer protocols:
  113.  
  114.         ARJ 2.10 through 2.30 (by Robert Jung)
  115.         ARJ 2.39 Beta 2 (by Robert Jung)
  116.         PKZIP 1.10 (by PKWare)
  117.         PKZIP 1.93 Alpha (by PKWare)
  118.         PKZIP 2.04c/e/g (by PKWare)
  119.         SQZ 1.08.2 (by Jonas Hammarberg)
  120.         DSZ 11/06/92 (by Omen Technology)
  121.         HS/Link 1.12 (by Sam Smith)
  122.         HS/Link 1.13D6 (by Sam Smith)
  123.  
  124.  
  125. ┌───────────────────┐
  126. │  5. Registration  │
  127. └───────────────────┘
  128.  
  129. ROMProc is not free; nor is ROMProc is crippled to force registration. ROMProc
  130. is fully functional, and will always remain so. The only variation with the
  131. registered copies is no time delay and beg message.
  132.  
  133. Why register? Besides a clean conscience, you will get a registration code that
  134. will work for all future versions of ROMProc, and will remove the delay and
  135. message displayed upon closing the door.
  136.  
  137. The registration fee for your unique code is $10 for non-commercial BBSs (not
  138. too bad, eh?). The registration fee for commercial BBSs, defined if you run
  139. your BBS in the course of a commercial business or for profit, is $20. Other
  140. variations are available; refer to the file REGISTER.FRM for all registration
  141. options. Please print the file REGISTER.FRM and fill it out. You can print out
  142. the form by issuing the following command from the DOS prompt:
  143.  
  144.         TYPE REGISTER.FRM > PRN
  145.  
  146.  
  147. ┌───────────────────────────────────────┐
  148. │  6. License, Warranty and Disclaimer  │
  149. └───────────────────────────────────────┘
  150.  
  151. I'll keep this part short and sweet, and dispense with the legal-ese:
  152.  
  153.         License: You are allowed to use ROMProc for 30 days, after which you
  154.            must either register ROMProc or stop using it completely. ROMProc
  155.            registration is a license for your use of ROMProc; I retain
  156.            ownership of the software. A single registration applies to a single
  157.            BBS system, regardless of the number of computers used in the
  158.            system. If you run two or more distinct BBS systems on the same
  159.            computer(s) (with different names), you require two or more ROMProc
  160.            registrations. Refer to the registration form for the currect
  161.            pricing structure.
  162.  
  163.         Warranty: There isn't one. The only thing I'll guarantee is that
  164.            ROMProc will take up disk space, and will disappear when deleted.
  165.  
  166.         Disclaimer: I'm not responsible for anything bad that happens. ROMProc
  167.            works here, but I cannot be held responsible for it not working on
  168.            your computer or doing any damage to hardware or software.
  169.  
  170. If these aren't agreeable with you, then the best thing to do is delete ROMProc
  171. right now. I'll do my best to help any user (registered or not) that wants to
  172. use ROMProc, and I'll act on bug reports quickly, but I simply cannot and will
  173. not be responsible for anything bad, like lost data, disk crashes, or whatever
  174. else you can think of.
  175.  
  176.  
  177. ┌───────────────────┐
  178. │  7. Installation  │
  179. └───────────────────┘
  180.  
  181. GENERAL INSTALLATION:
  182. ─────────────────────
  183. Make a subdirectory on your hard drive. For the purposes of this document,
  184. we'll call it "C:\ROMPROC". Unarchive the ROMProc distribution archive into
  185. this subdirectory. You've more than likely already made it this far, if you're
  186. reading this file. <grin>
  187.  
  188. The ROMProc system opens a few files simultaneously for various reasons. I
  189. would recommend that you have a minimum of FILES=30 per node in your system
  190. CONFIG.SYS file for a single-node system, since ROMProc is run in conjunction
  191. with your BBS software.
  192.  
  193. If you are running under a network or a multitasking operating system, you
  194. should already have DOS's SHARE.EXE loaded. You must have SHARE loaded in order
  195. to take advantage of the file sharing and locking methods used by the ROMProc
  196. program to prevent data loss. (If you are running a single-node system without
  197. a multitasker, SHARE is not needed).
  198.  
  199. Edit the configuration file to suit your needs. Proper configuration will
  200. require you to refer to this section, the previous section and the section
  201. titled "Configuration", which has an in-depth explanation of each configuration
  202. parameter and its function.
  203.  
  204. Note that for the ROMProc program, you can obtain a limited program syntax
  205. screen simply by executing the program name "ROMPROC".
  206.  
  207. GENERIC INSTALLATION INTO YOUR BBS SOFTWARE:
  208. ────────────────────────────────────────────
  209. The premise behind ROMProc is that instead of invoking your transfer protocol
  210. as usual when sending files to remote, you invoke ROMProc instead. ROMProc will
  211. copy all files the remote user requested, process them and invoke the desired
  212. protocol. Note that only the sending (remote download) protocol is changed; the
  213. receiving (remote upload) procotol is not changed.
  214.  
  215. ROMProc must be run from the BBS node subdirectory; this is required to prevent
  216. conflicts when multiple copies of ROMProc are run simultaneously. At the bare
  217. minimum, three command-line parameters are required for ROMProc:
  218.  
  219.     c:\romproc\romproc -Cc:\romproc\romproc.cfg -Ffile.ext -Tz
  220.  
  221. where -C defines the full path and filename of the configuration file for
  222. ROMProc and -F is the complete path and filename of the file (or batch list
  223. file) to be sent to remote; the parameter is virtually always passed by the BBS
  224. software. Also, the required -T parameter defines to ROMProc which protocol to
  225. invoke by letter.
  226.  
  227. When run in a multinode environment, you must also pass the BBS node number
  228. (via the -N command-line switch) to prevent collisions during simultaneous
  229. downloads:
  230.  
  231.     c:\romproc\romproc -Cc:\romproc\romproc.cfg -Ffile.ext -Tz -N2
  232.  
  233. In many installations, the node number is defined in an environment variable.
  234. For example, PCBoard sysops use the environment variable PCBNODE to use in
  235. batch files for external utilities.
  236.  
  237.     c:\romproc\romproc -Cc:\romproc\romproc.cfg -Ffile.ext -Tz -N%PCBNODE%
  238.  
  239. All BBS software passes the port number and computer-to-modem speed (DTE), and
  240. most also pass modem-to-modem carrier speed (DCE). These are passed on to
  241. ROMProc via the -P, -S and -E command-line switches, respectively. BBS software
  242. that supports bi-directional protocols will also pass the upload directory for
  243. the protocol to place any unexpected uploads from remote. This is passed to
  244. ROMProc using the -U command-line switch.
  245.  
  246. Most of the switches are self-explanatory. To be safe, if youf BBS system
  247. is capable of passing a parameter, pass it on to ROMProc using the appropriate
  248. command-line switch.
  249.  
  250. PCBOARD INSTALLATION:
  251. ─────────────────────
  252. Installation in PCBoard is very easy. PCBoard uses two batch files for each
  253. protocol, named PCBR?.BAT and PCBS?.BAT, where ? is the protocol letter. The
  254. PCBR?.BAT (receive) batch files do not need to be changed for ROMProc, however,
  255. the PCBS?.BAT batch file does. Below are sample Zmodem send (and receive, for
  256. reference) batch files from my multinode system:
  257.  
  258. PCBSZ.BAT:
  259. @Echo off
  260. if exist pcberr.fil del pcberr.fil
  261. if exist pcbdsz.log del pcbdsz.log
  262. c:\romproc\romproc -cc:\romproc\romproc.cfg -n%PCBNODE% -f%3 -tz -p%1 -s%2 -e%5
  263.  
  264. PCBRZ.BAT:
  265. @Echo off
  266. if exist pcberr.fil del pcberr.fil
  267. if exist pcbdsz.log del pcbdsz.log
  268. dsz port %1 speed %2 ha cts est 0 %5 pB4096 pr1 rz %3
  269.  
  270. With the exception of the -T parameter, all of your PCBS?.BAT files should be
  271. identical; change the -T parameter to reflect the appropriate protocol letter.
  272.  
  273. If you wish full implementation of ROMProc, all protocols have to be shelled
  274. instead of using the internal Xmodem and Ymodem protocols. Fortunately, DSZ is
  275. capable of all variations of Xmodem and Ymodem as well as Zmodem. The following
  276. is a screen snapshot of my PCBPROT.DAT file from PCBSETUP:
  277.  
  278.                        Port Lock
  279.      Use Type Size MNP Open Lines             Protocol Description
  280.      ═══ ════ ════ ═══ ════ ═════ ═══════════════════════════════════════
  281.       A   I    128  N   N     N   ASCII (text files only)
  282.       X   S    128  N   N     Y   Xmodem
  283.       C   S    128  N   N     Y   Xmodem-CRC
  284.       O   S   1024  N   N     Y   1K-Xmodem
  285.       F   S   1024  Y   N     Y   1K-Xmodem/G
  286.       Y   D   1024  N   N     Y   Ymodem    [Batch]
  287.       G   D   1024  Y   N     Y   Ymodem/G  [Batch]
  288.       Z   D   1024  N   N     Y   Zmodem    [Batch]
  289.       M   D   1024  N   N     Y   Zmodem MobyTurbo  [Batch]
  290.       H   B   2048  N   N     Y   HS/Link (bi-directional)  [Batch]
  291.       N   I      0  N   N     N   None (ask each transfer)
  292.  
  293. Note the type for the Xmodem and Ymodem transfer protocols is now (S)helled or
  294. (D)SZLOG batch, instead of (I)nternal.
  295.  
  296. OTHER BBS INSTALLATION:
  297. ───────────────────────
  298.  
  299. * NOTE: As my BBS is PCBoard, I have written the PCBoard-specific instructions.
  300.         I would greatly appreciate some feedback from other BBS software users
  301.         regarding ROMProc installation specifics.
  302.  
  303. APPLICATION NOTES:
  304. ──────────────────
  305. DSZ:
  306.     In many cases, the use of DSZPORT environment variable is more desirable
  307.     than passing the COM port information. This allows easier definition of
  308.     non-standard COM ports addresses. For example, if you are using COM2 for a
  309.     BBS node, add:
  310.  
  311.             SET DSZPORT=2
  312.  
  313.     to your node batch file. If you are running a non-standard COM port, define
  314.     the base address and IRQ on the command line. For example, if COM3 (a
  315.     non-standard port for IBM PCs) is used with 3e8 is the base address and 5
  316.     is the assigned IRQ, the setting would be:
  317.  
  318.             SET DSZPORT=3e8,5
  319.  
  320.     If you elect to use the DSZPORT environment variable, it is no longer
  321.     necessary to add the "port @PORT@" parameter to the DSZ command lines for
  322.     Xmodem, Ymodem, and Zmodem transfers in the ROMProc configuration file.
  323.  
  324. HS/Link:
  325.     The HS/Link command-line should include the -NF switch to turn off
  326.     HS/Link's full-screen display, allowing it to run in ROMProc's transfer
  327.     protocol window. Otherwise, ROMProc's local display will be overwritten by
  328.     HS/Link's display.
  329.  
  330.  
  331. ┌────────────────────┐
  332. │  8. Configuration  │
  333. └────────────────────┘
  334.  
  335. The sample configuration file included in the distribution archive is heavily
  336. commented, but some additional information is provided below:
  337.  
  338. GENERAL PARAMETERS:
  339. ───────────────────
  340. REG_CODE
  341.     The registration code EXACTLY as provided to you on your registration
  342.     letter. If this is an unregistered version, comment out this line. Note
  343.     that this is case-sensitive, as the serial number, BBS name and sysop name
  344.     are all encrypted into this code.
  345.  
  346. BBS_NAME
  347.     The BBS name EXACTLY as provided to you on your registration letter. If
  348.     this is an unregistered version, comment out this lines. Note that this is
  349.     case-sensitive!
  350.  
  351. SYSOP_NAME
  352.     The sysop name EXACTLY as provided to you on your registration letter. If
  353.     this is an unregistered version, comment out this line. You get the picture
  354.     by now...
  355.  
  356. WORK_DIR
  357.     The full path for the specific subdirectory for ROMProc to store file(s) to
  358.     be downloaded. This must include the trailing backslash! If this directory
  359.     does not exist at runtime, ROMProc will attempt to create it. This can be
  360.     set to a RAM disk for greater speed, since ROMProc will detect an out of
  361.     disk space condition and allow the download to continue from the original
  362.     file.
  363.  
  364. DISK_BUFFER
  365.     The size of the disk I/O buffer you wish to allocate in bytes (valid values
  366.     are between 2048 bytes and 16384 bytes). Optimal performance is obtained
  367.     with a value that is a multiple of 2048 bytes, since this is the size of a
  368.     typical hard disk cluster. 4096 seems to be a good number for me, although
  369.     a larger size will improve performance somewhat. If you find yourself
  370.     running out of memory when executing archivers or protocols, reduce this
  371.     number to increase your available memory. If no value is specified, the
  372.     disk buffer will default to 4096 bytes.
  373.  
  374. LOCK_LINES
  375.     If you want ROMProc to preserve three lines at the top or bottom of the
  376.     local display, enter TOP or BOTTOM as desired, otherwise, enter NONE or
  377.     comment the line out.
  378.  
  379. BBS_AD_FILE
  380.     The directory path and filename for your BBS ad to be inserted into each
  381.     and every archive processed by ROMProc. Note that you must provide a path,
  382.     or it will not be copied. I STRONGLY recommend against them; BBS ads are
  383.     aggravating to other sysops, so please be considerate and use the archive
  384.     comment instead. BBS ad files are the scourge of the BBS world. This
  385.     parameter is commented out by default.
  386.  
  387. ARCHIVER DEFINITIONS:
  388. ─────────────────────
  389. Each archiver, is denoted by ARCHIVER x, where x is a sequential number. Up to
  390. 10 archivers can be executed by ROMproc. ROMProc is capable of automatically
  391. detecting ARC, ARJ, HYP, LZH, PAK, SQZ, ZIP and ZOO archives. The next 4
  392. keywords are required after the ARCHIVER statement; do not comment any of them
  393. out or insert other parameters or comments between them. I would also advise
  394. against changing the command options I have set, unless you have need to do so.
  395. Any other archiver can be added, if desired; the only requirement is that the
  396. archiver must return a DOS errorlevel so that ULP can determine if it ran
  397. properly. If you do not explicitly define the path to your archiver(s), it must
  398. in a directory included in the DOS PATH environment variable.
  399.     ARCHIVER    = denotes a new archiver definition.
  400.     ARC_EXT     = the extension for this particular archiving format.
  401.     ARC_ADD     = the command line to add files to an archive, including all
  402.                   command-line switches desired. Place the variable @ARCHIVE@
  403.                   where the filename is to be inserted in the command line and
  404.                   @FILE@ where the filespec is to be inserted.
  405.     ARC_COMMENT = the command line to comment archives, including all command-
  406.                   line switches desired. Place the variable @ARCHIVE@ where the
  407.                   filename is to be inserted in the command line.
  408.     ARC_ERR     = the errorlevel that the archiver returns upon success. This
  409.                   information should be available in the program's
  410.                   documentation.
  411.  
  412. PROTOCOL DEFINITIONS:
  413. ─────────────────────
  414. Each protocol, is denoted by PROTOCOL x, where x is the letter designating the
  415. protocol. Up to 15 protocols can be executed by ROMproc. The next keyword is
  416. required after the PROTOCOL statement; do not comment it out or insert other
  417. parameters or comments between them. I have configured most of the popular
  418. protocols, using the PCBoard default lettering scheme. If you do not explicitly
  419. define the path to your archiver(s), it must in a directory included in the DOS
  420. PATH environment variable.
  421.     PROTOCOL    = denotes a new protocol definition
  422.     PROT_SEND   = the command line to transmit the file(s) to remote, including
  423.                   all command-line switches desired. Place the following
  424.                   variables as needed for ROMProc to properly invoke the
  425.                   protocol.
  426.                   @PORT@     COM port to be used by the protocol
  427.                   @SPEED@    COM port computer-to-modem speed (DTE)
  428.                   @CARRIER@  modem-to-modem carrier speed (DCE)
  429.                   @FILE@     File (or batch list file) to be downloaded
  430.                   @UPLOAD@   path to upload directory for bi-directional
  431.                              protocols.
  432.  
  433.  
  434. ┌──────────────┐
  435. │  9. Support  │
  436. └──────────────┘
  437.  
  438. If you require support for ROMProc, I can be contacted by any of the following
  439. means:
  440.  
  441.     ∙ Fidonet netmail (node:  1:276/112)
  442.     ∙ Intelec BBS Doors conferences
  443.     ∙ RoseNet routed mail (system ID:  BB-P)
  444.     ∙ The ULP Support conference (#42) on Salt Air (PCBoard support BBS)
  445.     ∙ The Support conference (#2) on my BBS (listed at the top of this
  446.       document).
  447.  
  448.  
  449. ┌─────────────────────────────┐
  450. │  10. The Future of ROMProc  │
  451. └─────────────────────────────┘
  452.  
  453. ROMProc will be supported as long as I'm in the BBSing business (which will be
  454. quite a while...once it's in your blood, you can never shake it <g>). The
  455. ROMProc system will be continually expanding it's features, so get your
  456. comments in now! Some current plans:
  457.  
  458.       ∙ Add code enabling ROMProc to output status information to the remote
  459.         user for long batch processing on slow systems.
  460.       ∙ Any ideas from you guys? Thanks! <g>
  461.  
  462. If you have any other suggestions, contact me by U.S. snail-mail or on my BBS
  463. at the number at the top of this document.
  464.  
  465. Thanks for giving ROMProc a try!
  466.  
  467.  
  468. ┌────────────────────────────────┐
  469. │  Appendix A:  DOS Errorlevels  │
  470. └────────────────────────────────┘
  471.  
  472. The following is a list of the errorlevels than can be returned by ROMProc. The
  473. reason the successful execution errorlevel may not be zero is because ROMProc,
  474. upon error-free completion, returns the errorlevel of protocol, which makes
  475. ROMProc completely transparent to the BBS software.
  476.  
  477.         0           Successful execution (usually)
  478.         99          Help screen (executing a program with no or an
  479.                         insufficient number of arguments)
  480.         100         Could not close all open files
  481.         101         Invalid command-line parameter
  482.         102         Configuration file not found
  483.         108         Invalid configuration file format (archiver definitions)
  484.         109         Invalid configuration file format (protocol definitions)
  485.         110         Unable to allocate heap memory
  486.         112         Invalid registration code
  487.         117         Invalid node number
  488.         200         Undefined error (internal to ROMProc program)
  489.