home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / UPCHECK / PCBCK12D.ZIP / PCBCHECK.DOC < prev    next >
Text File  |  1994-01-29  |  30KB  |  581 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                        PCBCheck Advanced Upload Checker
  7.                               v.1.2  Jan 29, 1994
  8.                                     Jim Dahl
  9.  
  10.  
  11.  
  12. ┌────────────────────────────┐
  13. │ 1.  Mission and conception │
  14. └────────────────────────────┘
  15.  
  16.   I created PCBCheck (mainly for in-house use) when I was first exposed to
  17. the difficulty in setting up other PCBoard upload checkers.  Creating a
  18. SETUP.CNF file and putting 50 seperate pieces of information on different
  19. lines in certain formats is not a nice way to set up a program!  In fact,
  20. any program other than a BBS utility, would fail miserably if it required
  21. such an intricate setup.  BBS utilities do not need to be so complicated to
  22. setup!
  23.   Comments are very welcomed and bug reports are PROMPTLY addressed!  I will
  24. make and upload to you a special version of PCBCheck between releases if
  25. necessary to get your system running!
  26.  
  27. ┌────────────────────────────┐
  28. │ 2.  Features               │
  29. └────────────────────────────┘
  30.  
  31.   As mentioned above, I believe the main feature of the program is its
  32. easy-to-use SETUP program!  I also think PCBCheck has kind of a cool,
  33. modern PCBoard 15.0 look that others lack.  Specific functions are:
  34.  
  35.     *  Archive support is through PCC (archive information) files,
  36.          NOT internal code, so new archivers can be added with a simple
  37.          100 byte file!  (I would tell you how to make your own, but I
  38.          may just change it, and I don't want to be responsible!  Should
  39.          you ever need new PCC's, just send me the archiver and I'll make
  40.          it!)
  41.     *  Easy-to-use SETUP program which dynamically adjusts its menus
  42.          based on your system setup, selected options, installed
  43.          archivers, etc...  No wasted menu space, asks only those questions
  44.          which affect you!  It even sets up your PCBTEST.BAT file for you!
  45.     *  PCBCheck features advanced output (in graphics mode) which dynamically
  46.          alters itself based on the type of upload, tests to be performed,
  47.          etc...  A few examples:  When testing a GIF, a slot for resolution
  48.          appears in the space normally used by the 'testing embedded
  49.          archives' slot; when PCBCheck replaces the description with the
  50.          FILE_ID.DIZ the change is reflected on the line of the description
  51.          displayed on the screen, etc....  There will never be prompts which
  52.          are irrelevant to the current upload displayed.
  53.     *  Integrated GIF integrity checking and resolution reporting (no more
  54.          third party utilities!  Though of course, you don't have the FULL
  55.          flexibility of third party utilities, so anything can be disabled
  56.          at your convenience!)
  57.     *  Flexible virus scanning (you specify your favorite third-party
  58.          virus scanning utility, give SETUP the information about it, and
  59.          PCBCheck can use it!  F-Prot is supported by default with
  60.          no real knowledge required)
  61.     *  Hack report checking.  PCBCheck can currently read hack report IDX
  62.          and test uploads against the list of hacks, trojans, and pirated
  63.          software.  (Note- I haven't seen a new hack report since Sept.,
  64.          not sure what's up.  But it's still quite useful even with just
  65.          the indices through September!)
  66.     *  Reason for failure is noted in the archive description, before the
  67.          failed upload is moved to the private upload directory.  The
  68.          reason is noted on its own line, so you should easily be able to
  69.          remove the line after reading it and deciding for yourself whether
  70.          you want to keep or kill the file.  It's all right there, easy to
  71.          read from PCBFiler!
  72.     *  PCBCHECK.LOG error log file is maintained so the sysop can track
  73.          errors, not only in PCBCheck itself, but in the programs it spawns,
  74.          such as virus scanners or archivers.
  75.  
  76.   Of course, it does all the usual stuff, date checking, integrity checking,
  77. embedded archives, etc...
  78.  
  79. ┌────────────────────────────┐
  80. │ 3.  Installation           │
  81. └────────────────────────────┘
  82.  
  83.   PCBCheck should be installed in it's own directory, preferably close to
  84. the root directory.  DOS places limits on command and parameter lengths, and
  85. PCBCheck can often come dangerously close to those limits while executing
  86. complex archive/dearchive commands!  Putting PCBCheck in a directory
  87. directly off the root directory gives it more room to play with by
  88. shortening the paths to PCBCheck data files.
  89.  
  90.   The installation directory should not contain any files named HACK????.IDX,
  91. except for actual hack reports, as PCBCheck will attempt to read them as
  92. hack reports and probably crash.
  93.  
  94.   When PCBoard wants an upload checked, it calls PCBTEST.BAT in its home
  95. directory.  SETUP will modify PCBTEST.BAT for you if it detects that
  96. PCBTEST.BAT does not already run PCBCHECK and you tell it that it is
  97. allowed to modify PCBTEST.BAT.  Note that you may need to add a special
  98. parameter yourself.  The command line for PCBCheck reads:
  99.  
  100.   X:\<your-path>\PCBCHECK.EXE %1 %2 %3 [port]
  101.  
  102.   The optional parameter [port] (which SETUP leaves out by default) allows
  103. you to specify an address for PCBCheck to use for serial output.  The default
  104. (nothing specified) is for PCBCheck to read PCBoard's PCBOARD.DAT to
  105. determine the COM port number, and then the COM port number is converted to
  106. its standard address.  Particularly if you use COM3 or COM4 the address may
  107. not be the default.
  108.  
  109.   Please configure your PCBoard setup to give over as much memory as possible
  110. during any shell (not just doors, since this technically isn't a door).
  111. In System Setup, under Configuration Options, then Configuration Switches,
  112. set "swap during SHELL" to yes to free up more memory (at the cost of
  113. slightly slower swapping).  Please read the section special memory
  114. considerations, particularly if you have had any mysterious ill-behavior
  115. from PCBCheck.
  116.  
  117.   Change directories to the PCBCheck directory you created earlier and run
  118. SETUP.  This document explains the various features of SETUP later.
  119.  
  120.   I strongly recommend all PCBCheck users have SHARE installed (most BBS
  121. computers already should).  Also, adding PCBCheck to the path seems to help
  122. some users.
  123.  
  124. ┌────────────────────────────┐
  125. │ 4.  Setup                  │
  126. └────────────────────────────┘
  127.  
  128.   4.1 Archive support
  129.  
  130.   The archive support page includes three fields and an information box.
  131. The first field is a simple yes/no question whether or not you want to
  132. accept uploads in that format.  SETUP creates an archive support page for
  133. each PCC file it finds, so you may choose any combination of archivers for
  134. which you have PCC files.
  135.  
  136.   The second and third fields are user-specific parameters you want passed
  137. the archiver.  These fields should be blank for all people and all archivers,
  138. but are included just in case (i.e. PKZip 2.04c had DPMI problems, so some
  139. users may have needed to specify -) to disable DPMI).  DO NOT put the
  140. parameters for archiving/dearchiving, etc... in these fields, that
  141. information is in the PCC file.  These fields are for hardware-specific
  142. parameters which are required to make the archiver/dearchiver do ANYTHING on
  143. your machine.
  144.  
  145.   The information box scans the path for the archiver/dearchiver and reports
  146. the presence of each.  If the archiver and dearchiver use the same executable
  147. it notes that as well.  If SETUP reports that your archiver or dearchiver are
  148. NOT in the path, and you have specified that you wish to support that format,
  149. you put them in the path!
  150.  
  151.   4.2  Non-archive support
  152.  
  153.   The non-archive support screen allows you to enter the extensions of
  154. acceptable non-archives.  You do not need to fill all or any of the fields,
  155. though you cannot specify more than ten acceptable non-archive extensions.
  156.  
  157.   Special files which have internal PCBCheck support, such as GIF files, must
  158. still be specified here to clear the detection phase of PCBCheck!  Self-
  159. extracting archives in the form of EXE files are the only exceptions.  They
  160. are considered archives, so if the archiver support is enabled on the
  161. appropriate page and self-extracting support is enabled on the miscellaneous
  162. page, PCBCheck will accept self-extracting archives as EXEs.  If you specify
  163. EXE here, you will be telling PCBCheck to accept all executables.
  164.  
  165.   4.3  Miscellaneous pages
  166.  
  167.   Note that not all fields will appear in all situations.  For example, if
  168. you have specified that you don't want to scan for viruses, SETUP will not
  169. bother to ask you what virus checker you want to use, etc.....
  170.  
  171.     4.3.1  Minimum age of uploads
  172.  
  173.   You can use this field to specify a minimum age for uploads.  The age
  174. should be entered as an integer (no decimals!) between 0 and 99.  The
  175. integer represents the maximum number of 'months old' that you want
  176. accepted.  PCBCheck will base the age on the newest file in the archive.
  177. If you do not wish to have age checking, specify 0 and PCBCheck will accept
  178. any archive, no matter how old (note that SETUP replaces 0 with a blank
  179. field).
  180.  
  181.     4.3.2  Allow self-extracting uploads
  182.  
  183.   This parameter tells PCBCheck that if an EXE file is uploaded, and EXEs
  184. are not specified as allowable non-archives, to check if the EXE is really
  185. a self-extracting archive.  You must specify an archive type as acceptable
  186. in the archive pages for PCBCheck to allow self-extracting archives in that
  187. format.
  188.  
  189.     4.3.3  Replace comment
  190.  
  191.   Answer this question (yes/no) if you want PCBCheck to replace the archive
  192. comment.  (Many archivers allow a 'comment' to be inserted into the archive,
  193. then usually display the comment while dearchiving).  Specifying 'yes'
  194. creates another field, 'File with which to replace comment'.
  195.  
  196.     4.3.4  File with which to replace comment
  197.  
  198.   Enter a filename of the file you wish to use to replace the comment.
  199. WARNING!  Archivers allow different lengths of comments.  Attempting to
  200. insert a comment which is too large will have unpredictable results
  201. (dependent on the archiver, really, I guess).  Note that if you leave this
  202. field blank or as its default, setup will insert 'NUL'.  That means to
  203. replace the comment with nothing, or to clear the comment (which is what
  204. I recommend).  You must create the file yourself in the PCBCheck directory.
  205.  
  206.     4.3.5  Enable virus scanning
  207.  
  208.   Answer this question (yes/no) to tell PCBCheck whether or not it should
  209. scan the upload for viruses.  Specifying 'yes' creates three new virus
  210. information fields.  (The defaults for all 'virus scanning' fields work
  211. with McAfee's SCAN).
  212.  
  213.     4.3.6  Filename of virus scanner
  214.  
  215.   Fill this field with the name of the executable of the virus scanner you
  216. want PCBCheck to use.  The virus scanner need not be in the PCBCheck
  217. directory, only in the path.  (Do not add a path name in this field!)  SETUP
  218. will not warn you if the virus scanner does not exist in the path, so you
  219. must make sure it does!
  220.   I have changed my recommendation since PCBCheck originated.  I now
  221. recommend F-Prot as the best virus scanner to use with PCBCheck.  It has
  222. low memory requirements and it has a command-line option to suppress all
  223. output.  ** Note Memory Considerations below for more information on the
  224. memory problems with such checkers as McAfee's SCAN.
  225.  
  226.     4.3.7  Error level which indicates virus infection
  227.  
  228.   Enter an integer which corresponds to the errorlevel the virus scanner
  229. will return if it finds a virus.
  230.  
  231.     4.3.8  Special parameters to virus checker
  232.  
  233.   Unlike with archive support, PCBCheck does not know the behavior of any
  234. virus checking software (except, of course, for the defaults, which are
  235. configured for F-PROT).  Therefore, you must enter any necessary
  236. parameters in this field (except for the filename, which PCBCheck will
  237. supply).  Suggested parameters include:  don't scan memory, don't scan the
  238. boot sector.  DO NOT disable local output, unless you want to stare at a
  239. very boring empty screen during virus scanning.
  240.  
  241.     4.3.9  Add number of files to description
  242.  
  243.   Answer this question (yes/no) to indicate whether or not you want PCBCheck
  244. to add a line to the description which reports the number of files in the
  245. archive.  (I've always thought this was a stupid/useless feature, but
  246. everyone else does it, and it's easy to implement, so I included it).
  247. Note- this applies only to archives!
  248.  
  249.     4.3.10  Add date to description
  250.  
  251.   Answer this question (yes/no) to indicate whether or not you want PCBCheck
  252. to add a line to the description which reports the newest file date in the
  253. archive.  (Note that if you specify 'yes' to 'Add number of files to
  254. description' as well as this, they will be put on the same line).
  255. Note- this applies only to archives!
  256.  
  257.     4.3.11  Add GIF resolution to description
  258.  
  259.   Answer this question (yes/no) to indicate) whether or not you want PCBCheck
  260. to add a line to the description which reports the resolution of GIF files.
  261. (If GIFs are not specified as acceptable non-archive uploads, this field has
  262. no effect, since the GIF will be 'failed').
  263.  
  264.     4.3.12  Add file to archive
  265.  
  266.   No one has any good reason for using this feature.  Not only is it
  267. obnoxious to insert BBS ads into all incoming archives, it also violates
  268. the integrity, or authenticity verification codes for many author-
  269. distributed archives.  It is included, of course, for completeness.
  270. Answering 'Y' to this creates a new field, which file do you want to add.
  271.  
  272.     4.3.13  Name of file to add to archive
  273.  
  274.   This is where you specify the file you wish to add to the archive, if
  275. you specified you would like to.  The file should be in the PCBCheck
  276. directory, as that's the only place it will look for it.
  277.  
  278.     4.3.14  Check for keywords in description
  279.  
  280.   If you respond 'Y' to this, PCBCheck will scan the file (a short sample
  281. is included) KEYWORDS.PCB for words and check for the presence of them in
  282. the description.  If any of the words are found anywhere in the description
  283. (or the FILE_ID if it replaced the description), the file will fail.  Note
  284. that you should follow the format prescribed in the sample, enclosing
  285. words in quotes (so spaces can be discerned).  Also, please make sure to
  286. enter words correctly (i.e. with spaces on either side, otherwise if
  287. PCBCheck is set to reject 'SHIT' for example, it will reject 'MATSUSHITA' or
  288. other similiar situations.  A better way to do it is to specify that
  289. PCBCheck should reject ' SHIT '.
  290.  
  291.     4.3.15  Compare upload name to Hack Report
  292.  
  293.   If you specify 'Y', PCBCheck will scan the PCBCheck directory for
  294. HACK????.IDX files and read in the hack reports.  If any of the hack reports
  295. diagnose the file as a potential trojan, pirated software, etc... it will
  296. reject the file and note the reason for rejection in the description.  Note
  297. that the hack report provides only warnings, not confirmations.  If the
  298. hack report fails a file, you should examine the hack report for more
  299. information, and then test the file yourself to see if it really is
  300. commercial software, a trojan, a hack, etc...  Because the hack report
  301. relies only on names, false alarms are quite possible!
  302.   The best place to obtain new copies of the hack report is off the SimTel
  303. site on Internet, or its mirrors (i.e. OAK.OAKLAND.EDU).  There are also
  304. alternate distribution methods listed in the hack report documentation.  A
  305. sample hack report is included with PCBCheck.
  306.  
  307.     4.3.16  Path for work directory
  308.  
  309.   This feature was not originally included in PCBCheck due to some
  310. complications and restrictions (I wanted to keep things as simple as
  311. possible).  Due to popular demand, however, I have included it.
  312.   First, the directory named should not already exist (if it does, it will
  313. be destroyed).  The named directory should be a subdirectory of an existing
  314. directory, or PCBCheck will not be able to create it.  SETUP will not allow
  315. the directory name to contain more than five characters because the last
  316. three are reserved for node definitions.  Please bear that in mind when
  317. planning a directory name.  Note that since the directory should not already
  318. exist and should be a subdirectory of an existing directory, the root
  319. directory (or a RAM disk or otherwise) cannot be the work directory!  Failure
  320. to strictly follow these guidelines may result in massive data loss or other
  321. unpredictable behavior!  Please do not change the work directory unless you
  322. need to, and please be careful!
  323.   DO NOT put the work directory on a RAM disk, rather specify a RAM disk
  324. letter in the RAM disk field, then the 'work directory' will be used as a
  325. backup should the RAM disk not have enough space!
  326.  
  327.     4.3.17  RAM Disk drive letter
  328.  
  329.   If you have an empty (please, empty) RAM disk you'd like PCBCheck to use
  330. as temporary storage (to speed up operation, I suppose), specify it's drive
  331. letter here.  Note that PCBCheck will always attempt to decompress the
  332. archive to the RAM disk first, regardless of size.  Should the dearchive
  333. process fail (for any reason), PCBCheck will then try the 'work directory',
  334. thereby allowing archives which are too large to fit on the RAM disk to
  335. be processed (assuming enough hard drive space is free!)
  336.  
  337.     4.3.18  GIF minimum resolution 
  338.  
  339.   You only need complete these three (3) fields if you have specified GIFs
  340. as an acceptable non-archive, and you want to impose minimum resolution
  341. requirements.  If you leave them blank or as 0x0x0, all GIFs will be
  342. accepted.  The three fields, in order, are x-width, y-height, and colors.
  343. Note that as minimums, all three are considered for each comparison, so
  344. every GIF must meet all three minimum requirements to pass.
  345.  
  346. ┌────────────────────────────────────────┐
  347. │ 5.  Conference specific configurations │
  348. └────────────────────────────────────────┘
  349.  
  350.   PCBCheck now has the ability to have different configurations for
  351. different conferences.  (I realise you may not want to try the same
  352. checking on archives in your Apple conference is in a regular conference,
  353. or may want to insert a different comment, etc...)  Unfortunately, this
  354. was a very difficult feature to integrate with setup (I couldn't figure
  355. out any way, actually), so the only way to do it is by hand (suggestions
  356. are always welcome for improvements).  SETUP creates PCBCHECK.CFG, the
  357. configuration file for the main board.  Renaming it PCBCHECK.001 makes
  358. it a configuration file for conference 1 (.002 for 2, etc....)  So,
  359. if I run a ten conference system, and want a special configuration for
  360. conference 3, I would first run setup, enter the values for conference 3,
  361. then rename PCBCHECK.CFG PCBCHECK.003.  I would then run SETUP again,
  362. entering the values I wanted used everywhere else, and SETUP would save
  363. it as PCBCHECK.CFG (which is fine).  If there is not a specific configuration
  364. file for a conference, PCBCheck uses PCBCHECK.CFG.  PCBCHECK.CFG is always
  365. used for the main board.
  366.  
  367. ┌────────────────────────────────────┐
  368. │ 6.  Multinode/Multitasking, etc... │
  369. └────────────────────────────────────┘
  370.  
  371.   Well, this is just about the same as running any other program on a
  372. multinode system.  It does open all files in share mode, and does construct
  373. the 'temp directory' name based on the current node, so there should be no
  374. conflict.  Unfortunately, I don't personally have a multinode system, so
  375. haven't really been able to test this.  I assume I will end up improving
  376. multinode ability (should there be any problems) when I rewrite the comm.
  377. routines.
  378.   This should work just fine under multitasking OS's or shells.  I
  379. developed it and tested it exclusively on OS/2 2.1, so I *know* it works
  380. there.  I've also run it under Windows for the BBS.  I can't think of any
  381. reason it wouldn't work with DesqView then, except of course that it
  382. doesn't give up timeslices (but really, when I'm writing a DOS program I
  383. don't feel that it's my responsibility to give up timeslices, I think the
  384. multitasking OS which multitasks DOS programs should do that!)
  385.  
  386. ┌────────────┐
  387. │ 7.  Errors │
  388. └────────────┘
  389.  
  390.   Should PCBCheck itself fail in some way, it will automatically pass the
  391. file and report to the user the error code number.  It will also create a
  392. file named PCBCHECK.LOG in the PCBCHECK directory which will note the error.
  393. Many of the potential errors are actual internal program errors which you
  394. can do nothing about (other than report to me), but a few are under your
  395. control.  Here's a general rundown:
  396.  
  397.   -11    Can't open the file to test
  398.   -12    Can't read from the (already open) file to test
  399.   -14    Cannot open the FILE_ID.DIZ from the archive
  400.   -15    Cannot open description file (as passed by PCBoard) for write
  401.   -16    Cannot open description file (as passed by PCBoard) for write
  402.   -17    Cannot write to (already open) description file
  403.   -18    Cannot open/write to description file
  404.   -19    Cannot open/read PCBCHECK.CFG (created by setup)
  405.   -20    Cannot open/read a PCC file
  406.   -21    Dearchive not successful!
  407.   -22    Internal processing error, bad news!
  408.   -23    Error reading PCC file
  409.   -25    Can't find archiver/dearchiver in path!
  410.   -26    Command is too long
  411.   -27    Cannot open/read description file
  412.   -28    Cannot open/read from keys file
  413.   -35    Non-zero error code returned by external process
  414.  
  415.   Obviously, most of them deal with file access problems, which could be
  416. related to access priveleges or something similiar on your system.  The most
  417. likely user-addressable problems are -25 (can't find dearchiver/archiver in
  418. path) and -26 (command too long).  The proper way to deal with a -26 is, as
  419. described earlier, relocate the PCBCheck directory as close to the root as
  420. possible to make the commands shorter.  Make sure that all designated
  421. acceptable archivers are in the path to fix a -25.  Please report any other
  422. error number (or even any of these, if you can't fix it) to me.
  423.  
  424.   PCBCHECK.LOG, should PCBCheck need to create it, is a wealth of information
  425. for error-solving.  In addition to noting internal program errors (in
  426. addition to the time/date/file on which the error occurred) it also notes
  427. non-zero error levels as returned by archivers or virus scanning programs.
  428. This allows you to catch errors such as SCAN running out of memory, which
  429. otherwise be undetectable!  Should an external process return a non-zero
  430. error code, in addition to being noted as error -35, the PCBCHECK.LOG file
  431. will also record the error code returned by the process, so you can refer
  432. to its documentation.
  433.  
  434.  
  435. ┌─────────────────┐
  436. │ 8.  Legal Stuff │
  437. └─────────────────┘
  438.  
  439. This program, its look, feel, and its related documentation are copyrighted.
  440. You may not reverse engineer, decompile, or disassemble the program.  You
  441. may not modify or translate the program or documentation without the written
  442. consent of Jim Dahl.
  443.  
  444. This program is provided "as is" without any warranties (or conditions),
  445. express or implied with respect to the program, including the implied
  446. warranties (or conditions) of merchantability and fitness for a
  447. particular purpose.  The entire risk arising out of use or performance of
  448. the program and documentation remains with you.
  449.  
  450. Some jurisdictions do not allow the exclusion of implied warranties, so the
  451. above may not apply to you.
  452.  
  453. In no event will Jim Dahl be liable for any lost profits, lost savings,
  454. incidental or indirect damages or other economic consequential damages,
  455. even if Jim Dahl has been advised of the possibility of such damages.  In
  456. addition, Jim Dahl will be not be liable for any damages claimed by you
  457. based on any third party claim.
  458.  
  459. Some jurisdictions do not allow the exclusion or limitation of
  460. consequential or incidental damages, so the above may not apply to you.
  461.  
  462. ┌─────────────────────────────┐
  463. │ 9.   Memory Considerations  │
  464. └─────────────────────────────┘
  465.  
  466.   When you consider what PCBCheck does, you realize that at times there
  467. are up to three programs running at any one time, and each of them demands
  468. it be running in conventional memory.  (PCBoard, PCBCheck, and a virus
  469. scanner or archiver/dearchiver may be running).  PCBoard 15.x (in its latest
  470. incarnation as of this writing) consumes a whopping 248.3k when it shells
  471. to a program, such as PCBCheck, which leaves (assuming a base of 600k) only
  472. 351.7k for the other two programs!  Of course, your base free memory before
  473. running PCBoard may be much lower than 600k.  PCBCheck does it's part by
  474. swapping itself to XMS/EMS/disk, reducing it's kernel in active memory to
  475. a mere 1.7K (it's not getting any smaller).  Unfortunately, some programs,
  476. such as McAfee's virus scanner, require more conventional memory than this
  477. leaves (McAfee's SCAN requires 380k).
  478.  
  479.   Since obviously PCBCheck cannot reduce it's memory requirements any
  480. further, it is up to you to setup PCBoard so it swaps more of itself out
  481. before shelling to PCBTEST.BAT to free up more memory.  Another option is
  482. to use low-memory programs.  I personally recommend F-PROT as a virus
  483. scanner (it is free, and has lower memory requirements).
  484.  
  485.   Note- if a program such as SCAN runs out of memory, it will not crash
  486. PCBCheck, rather it will cause PCBCheck to always report files as 'clean',
  487. thereby possibly allowing viruses to slip through!  If an archiver runs
  488. out of memory, it will fail the upload.  All errorlevels, for virus scanning
  489. and archiving/dearchiving, are noted in the PCBCheck log file, so you should
  490. be able to catch "out of memory" errors by referring to the log regularly
  491. (or if there are problems).
  492.  
  493.   If you get "Out of Memory" return codes from shelled applications,
  494. In System Setup, under Configuration Options, then Configuration Switches,
  495. set "swap during SHELL" to yes to free up more memory (at the cost of
  496. slightly slower swapping).
  497.  
  498. ┌────────────────────────────┐
  499. │ 10. Registration/Shareware │
  500. └────────────────────────────┘
  501.  
  502.   As I'm sure most Sysops know, shareware is not a type of program but a
  503. distribution method.  If you continue to use my product you are obligated,
  504. morally and legally, to pay me for it.  Therefore, I don't disable any cool 
  505. features, or even make promises of neat new features or extra utility or 
  506. maintenance programs if you register.  I want to give you the full program 
  507. so you know what you're really dealing with, and if you don't think it's 
  508. worth paying for (which is fine with me) I expect you to quit using it.  Note
  509. that the amount of work I put into PCBCheck is directly proportional to
  510. registrations received.  When I receive registrations, I can justify putting
  511. large amounts of time into new, advanced features.  Think of your
  512. registration as funding future releases.
  513.   One registration does, of course, entitle you to use all future releases.
  514.   The main advantage of registering PCBCheck (in addition to encouraging
  515. me to keep improving it) is that you will receive instructions on how to
  516. make PCBCheck display 'REGISTERED' in place of 'UNREGISTERED', or display
  517. your BBS name in place of 'UNREGISTERED'.
  518.   Registration is currently set at $15 (very reasonable, I think,
  519. considering the time that went into this!
  520.   You can register either by filling out the REGISTER.DOC and mailing it to
  521. the given address, or you can register by credit card by calling City Lites
  522. BBS (701) 775-1143, joining conference 2 (PCBCheck support) and running
  523. the 'registration' door or typing 'REGISTER' from the prompt.
  524.  
  525. ┌────────────────────────────────────────────────────────┐
  526. │ 11.  Where to complain / how to compliment the author  │
  527. └────────────────────────────────────────────────────────┘ 
  528.   
  529.   I can be reached at:
  530.  
  531.  
  532.     City Lites BBS  (701) 775-1143 (four high-speed lines)
  533.                     
  534.                     City Lites has an official PCBCheck support conference
  535.                     (join conference 2) where I will announce current work
  536.                     and field questions.  As I am NOT a sysop at this board,
  537.                     please do not mail the sysop.
  538.     
  539.     Legal Eagle BBS (218) 773-6011 (home of PCBCheck)
  540.                     
  541.                     Legal Eagle is where I will continue to alpha test
  542.                     PCBCheck, and will continue to provide support.  Also,
  543.                     I can field mail addressed to 'SYSOP' on this board.
  544.                     (note join conference 5)
  545.  
  546.     Internet        dahl@cs.UND.NoDak.edu
  547.     
  548.     AOL             I have an account JamesDahl, not sure how long I'll keep
  549.                     it though, so you're better off using InterNet mail
  550.     
  551.     I also have an account on Software Creations if you ever call there,
  552.     though I'm not on it very often....
  553.  
  554. I intend to officially support PCBCheck from the Legal Eagle and City Lites,
  555. the latest beta versions should always be available from both as well as 
  556. support information including bugs fixed in the beta, known problems, etc...
  557. Note that beta versions can only be obtained from these boards, and should
  558. not be distributed elsewhere, though they are open to anyone.  The support
  559. structure isn't fully in place yet, though I expect it to be soon!
  560.  
  561.   And of course, write to me at:
  562.  
  563.     Jim Dahl
  564.     RE: PCBCheck              
  565.     2236 Springbrook Ct.
  566.     Grand Forks, ND 58201
  567.  
  568. -----------------------------------------------------------------------------
  569.  
  570. New versions can always be obtained from Salt Air, from the above BBS's,
  571. or if you are on FidoNet, they will now be available via FREQ (1:14/644 is
  572. City Lites node number) as PCBCHECK.
  573.  
  574. Registrations (currently $15) taken at:
  575.  
  576.         Jim Dahl                             City Lites BBS
  577.         RE: PCBCheck               -or-      (701) 775-1143
  578.         2236 Springbrook Ct.                 join PCBCheck support (2)
  579.         Grand Forks, ND 58201                type 'REGISTER'
  580.  
  581.