home *** CD-ROM | disk | FTP | other *** search
/ synchro.net / synchro.net.tar / synchro.net / modem.madness / SMMNETML / QNODE202.ZIP / QNODE.DOC < prev    next >
Encoding:
Text File  |  1993-09-12  |  56.8 KB  |  1,280 lines

  1.     ############
  2.   ################
  3.  ###            ###
  4.  ###            ###
  5. ###              ###  ##    ##  #####  ######  #######
  6. ###              ###  ###   ## ##   ## ##   ## ##
  7. ###              ###  ####  ## ##   ## ##   ## ##
  8. ###              ###  ## ## ## ##   ## ##   ## #####
  9. ###              ###  ##  #### ##   ## ##   ## ##
  10. ###           ## ###  ##   ### ##   ## ##   ## ##
  11. ###           ## ###  ##    ##  #####  ######  #######
  12. ###           ## ###
  13. ###           ######       ##  ##  ###      ###   ### 
  14. ####           ####        ##  ## ## ##    ## ## ## ##
  15.  ###            ####        ####    ##     ## ## ## ##
  16.   ###################       ####   ##      ## ## ## ##
  17.     ############   ##        ##   ##### ##  ###   ###
  18.  
  19.                              Table of Contents
  20.  
  21. Part 1 - QNode
  22.        1.1 - Introduction
  23.        1.2 - Program Usage
  24.        1.3 - Error Levels
  25.        1.4 - Point Nets
  26.        1.5 - Multiple Networks
  27.  
  28. Part 2 - QDiff
  29.        2.1 - Introduction
  30.        2.2 - Program Usage
  31.        2.3 - Error Levels
  32.  
  33. Part 3 - QIDX
  34.        3.1 - Introduction
  35.        3.2 - Program Usage
  36.        3.3 - Error Levels
  37.  
  38. Part 4 - Configuration File
  39.        4.1 - Introduction
  40.        4.2 - Configuration File Commands
  41.  
  42. Part 5 - DPMI
  43.  
  44. Part 6 - Common Questions
  45.  
  46.                               Part 1 - QNode
  47.  
  48. 1.1 - Introduction
  49.  
  50.     QNode was originally designed to be a fast version 6 nodelist compiler 
  51.     which could handle my MNP modem properly, seeing as no other nodelist 
  52.     compiler was really able to do the job.
  53.  
  54.     When version 7 nodelists came out, and I found out just how slow the 
  55.     indexing system was, I determined that QNode really needed an update to 
  56.     handle the v7 nodelist.
  57.  
  58.     You are free to use QNode without paying me money, although I would
  59.     certainly appreciate people who do send money.
  60.  
  61.     QNode is also a copyrighted program, therefore you are not allowed to 
  62.     distribute any modified, or incomplete copies of the QNode distribution 
  63.     archive. You can re-archive this if you really feel like it, but that 
  64.     is really unfair to the people who download this, since it comes with 
  65.     my authenticity signature on it, and if people get that, at least they 
  66.     know that it is an original archive.
  67.  
  68.     To get the latest version of QNode, simply request the magic name of 
  69.     QNODE from 1:140/26.  This is probably going to net you a pre-release 
  70.     copy however.  The most recent release version will probably be 
  71.     available in the SDS-SOFTDIST area.
  72.  
  73.     If you want a version which uses DPMI, then request the magic name of 
  74.     QNODX.  If you have problems running the DPMI version of QNode under 
  75.     Windows version 3.00, then you can file request "OSDPMI.ZIP", which is 
  76.     a utility for changing which executable type a file is.  By default, 
  77.     QNode is set to be compatible with OS/2 and Windows 3.1.
  78.  
  79.     If you want an OS/2 version, request the magic name of QNOS2.
  80.  
  81.     Something that started with QNode 1.40 is that even numbered versions 
  82.     will be true release versions, while odd-numbered versions will be the 
  83.     pre-release versions.
  84.  
  85.     If you have any questions or problems relating to QNode, please be sure 
  86.     to let me know.  You can either netmail be (James West) at 1:140/26, or 
  87.     you can snail-mail be at:
  88.  
  89.        James West
  90.        854 Steeves Ave.
  91.        Saskatoon  SK  S7L-5N1
  92.        Canada
  93.  
  94. 1.2 - Program Usage
  95.  
  96.     QNode will use the file 'QNODE.CFG', or the first command line 
  97.     parameter as it's parameter file, and will always search and find the 
  98.     latest 'NODELIST.###' file (time-stamps are used, so end of year wrap 
  99.     isn't a problem.) and compile it into one of these sets of files:
  100.  
  101.        VERSION6        - NODELIST.DAT, NODELIST.IDX
  102.        VERSION7        - NODEX.DAT
  103.        VERSION7, INDEX - NODEX.NDX
  104.        USERLIST        - FIDOUSER.LST
  105.        USERLIST, INDEX - SYSOP.NDX
  106.  
  107.     You will only be allowed to create the version 7 index files and the 
  108.     FIDOUSER.LST file as well as the indexes on an EMS, DPMI, or OS/2 systems.
  109.  
  110.     Once QNode has read it's configuration file(s), and found a nodelist to 
  111.     compile, it will start processing the nodelist.  While compiling, you 
  112.     will notice that a status line is kept on the screen showing the most 
  113.     recent Zone, Region, Net, and Hub.  Hubs will only be shown for nets 
  114.     which are being included in the final nodelist.  If a net is not to be 
  115.     included in the final nodelist, you will see the word 'EXCLUDE' after 
  116.     the line, and QNode will enter an extremely fast 'overdrive' mode to 
  117.     get to the next network.
  118.  
  119. 1.3 - ERRORLEVELS
  120.  
  121.     The errorlevels which can be returned by QNODE are:
  122.  
  123.            0 = Nodelist compiled fine.
  124.            1 = No Nodelist found.
  125.            2 = Cannot open configuration file.
  126.            3 = Cannot open nodelist.
  127.            4 = Errors exist in the configuration file.
  128.            5 = Invalid binary nodelist.
  129.            6 = EMS allocation error.
  130.            7 = CRC error in nodelist(s).
  131.  
  132. 1.4 - POINTNETS
  133.  
  134.     Pointnets can be done in a couple of different ways, depending upon 
  135.     your system settings.  You can either create 'fake-net' point listings, 
  136.     or you can create a special 'point-control' file.
  137.  
  138.     In version 6 mode, you are only allowed to create a 'fake-net', but in 
  139.     version 7 mode, you can do either (or both for that matter.)
  140.  
  141.     A 'fake-net' is a dummy network which is not in the distribution 
  142.     nodelist, which lists your points as 'virtual' network addresses.  
  143.     These dummy network number start at 30000, and go up from there.  You 
  144.     should apply to your Zone Co-Ordinator for an official point-net 
  145.     number, but for testing purposes, you can pretty much choose a random 
  146.     number between 30000 and 32767.
  147.  
  148.     Each node within this fake-net is actually a point, where the node 
  149.     number from the fake-net is the point number of the node.  For example, 
  150.     if I used the fake-net number of 32000, then the points for 140/26.1, 
  151.     140/26.2, 140/26.3, ... would be listed in the nodelist as 32000/1, 
  152.     32000/2, 32000/3, ... .  It is the responsibility of your mail packer 
  153.     to handle these fake-net numbers.  (QMail, and Opus 1.70+ will handle 
  154.     fake-nets in this fashion.)
  155.  
  156.     A sample of a fake-net follows below:
  157.  
  158.     ---cut here---
  159.     Host,33000,The_North_Village,City,James_West,1-306-384-0836,2400,MNP
  160.     ,1,My_First_Point,City,Sysop_Name,1-306-555-1212,1200
  161.     ,2,My_Second_Point,City,Sysop_Name,1-306-555-1212,9600,HST,V32,V32b
  162.     ---cut here---
  163.  
  164.     This fake-net must be 'IMPORT'ed somewhere within the nodelist.  You 
  165.     can import it anywhere you like, but normally it should be imported 
  166.     after your own network, region, or zone.
  167.  
  168.     To import after your own network, you would use the configuration file 
  169.     command: 'IMPORT 1:140 POINT.LST'.  To import after your own region, 
  170.     you would use the command: 'IMPORT 1:17 POINT.LST'.  To import after 
  171.     your own zone, you would use the command: 'IMPORT 1: POINT.LST'.
  172.  
  173.     A 'point-control' file is one file which contains listings for all 
  174.     points that you will have access to.  It's fairly similar to the 'fake- 
  175.     net' file, but instead of having a dummy network for each node, the 
  176.     points are attached to the node itself.  As of QNode version 2.00, you 
  177.     are allowed to have as many point control files as you want.
  178.  
  179.     To use a point-control file, you should use the 'POINTS' command to 
  180.     include the file which you list all of your points in.  For example: 
  181.     'POINTS POINT.LST'.  In the point-control file, everything after the 
  182.     bosses node number is ignored, so you can use that as any sort of 
  183.     comment that you like.  (The actual information for the boss node is 
  184.     taken from the nodelist.)
  185.  
  186.     A sample of a point-control file follows:
  187.  
  188.     --- cut here ---
  189.     Boss,1:140/26,The_North_Village
  190.     ,1,AB_Data_Sales,City,Sysop,1-306-555-1212,1200
  191.     ,2,Another_Point,City,Somebody,1-306-555-1212,9600,HST,V32,V32b
  192.     Boss,1:140/200,Another_Boss_Node
  193.     ,1,His_First_Point,City,Sysop_Name,1-306-555-1212,1200
  194.     Pvt,2,His_Private_Point,City,Sysop,-Unpublished-,2400
  195.     --- cut here ---
  196.  
  197. 1.5 - MULTIPLE NETWORKS
  198.  
  199.     QNode also supports the compilation of many different input nodelists 
  200.     into one big output file.  This is used for the inclusion of other 
  201.     networks (like SIGnet for example.)
  202.  
  203.     The configuration file command which enables this is the 'NODELIST' 
  204.     command, which instructs QNode on which nodelists that it is supposed 
  205.     to compile.
  206.  
  207.     To compile a joint Fidonet, Signet system you would use the two 
  208.     commands: 'NODELIST NODELIST' and 'NODELIST SIGNODES'.
  209.  
  210.     WARNING:  If you use a 'NODELIST' command in your configuration file, 
  211.     then the default fidonet nodelist will NOT be included.  You must 
  212.     explicitly include the 'NODELIST NODELIST' statement if you still wish 
  213.     to include the fidonet nodelist.
  214.  
  215.                                 Part 2 - QDIFF
  216.  
  217. 2.1 - Introduction
  218.  
  219.     QDiff is a companion program to QNode, which applies NODEDIFF files to 
  220.     nodelists, and will generated an updated nodelist.  QDiff can apply an 
  221.     almost unlimited number of nodediffs simultaneously.  For example, if 
  222.     you have NODELIST.101, NODEDIFF.108, NODEDIFF.115, NODEDIFF.122, and 
  223.     NODEDIFF.129 after running QDiff, you will be left with NODELIST.129.
  224.     Note:  The actual limit will be determined by the number of file 
  225.     handles that QDiff is able to open simultaneously.  Since it doesn't 
  226.     bother to expand it's handle table, the true limit would be around a 
  227.     dozen nodediffs.
  228.  
  229. 2.2  - Program Usage
  230.  
  231.     QDiff has some pretty simple usage for most people:  Just run it 
  232.     without any parameters.  It's all automatic.  The only thing you have 
  233.     to do is make sure that the nodelist and nodediff files are in the 
  234.     directory that you are in when you run QDiff.
  235.  
  236.     QDiff first searches through your NODELIST files to locate the one with 
  237.     the most recent time stamp, and then it will go through your NODEDIFF 
  238.     files trying to find ones which are more recent.  If it does not find 
  239.     any, then it will search for any archived NODEDIFF files to see whether 
  240.     any of them exist.  (Current archivers which are recognized are: ARC, 
  241.     ZIP, and LHA, based upon the first letter of the extension.)
  242.  
  243.     You are NOT allowed to 'mix-and-match' archived and un-archived 
  244.     nodediffs.  You must supply one sort or the other to get a proper 
  245.     output file.
  246.  
  247.     === DOS/DPMI ===
  248.  
  249.     If given an archived nodediff, QDiff will extract it immediately using 
  250.     one of the following archive programs:
  251.  
  252.        for NODEDIFF.A##:
  253.                PKUNPAK, PKXARC, ARCE, PAK
  254.        for NODEDIFF.Z##:
  255.                PKUNZIP, PAK
  256.        for NODEDIFF.L##:
  257.                LHA, LHARC
  258.  
  259.     === OS/2 ===
  260.  
  261.     If given an archived nodediff, QDiff will determine the archive type, 
  262.     using the ARCHIVE.CFG file, and then run the extractor listed in that 
  263.     file.  Please keep the ARCHIVE.CFG file either in your path, or in your 
  264.     nodelist directory.  Subsequent programs written by me will also use 
  265.     this file.
  266.  
  267.     ===
  268.  
  269.     QDiff requires LOTS of disk space while running.  It must create an 
  270.     entirely new nodelist on disk before it can delete the old one.  This 
  271.     new nodelist will be created in a file named 'QDIFF$.TMP', which will 
  272.     be renamed to the correct name if the nodelist is compiled 
  273.     successfully.
  274.  
  275.     To use QDiff with multiple networks, you must use some command line 
  276.     parameters.  For each network that you wish to compile, you should put 
  277.     the name of the nodelist, a comma, and the name of the nodediff file.  
  278.     You can do more than one network at a time, but it's suggested that you 
  279.     just do one network at once.  To cause QDiff to look for a SIGnet 
  280.     nodelist/diff combination for instance, you would use the command: 
  281.     'QDIFF SIGNODES,SIGDIFF'
  282.  
  283.     Other parameters that are supported by QDiff are as follows:
  284.  
  285. /D  Deletes all NODEDIFF files when completed.  This will not delete 
  286.     archived nodediff files.  If a CRC error is detected during compile, 
  287.     the nodediff files will still be deleted.
  288. /N  Deletes the old nodelist.
  289. /Z  Instructs QDiff to place an EOF mark at the end of the new nodelist.
  290.     This is not required for either QDiff or QNode, but some utilities 
  291.     seem to expect it I guess.
  292. /C  Instructs QDiff that if it ever encounters a CR without an accompanying 
  293.     linefeed, that it will then remove the offending CR.  This will cause 
  294.     the CRC to be incorrect, but some external nodelist utilities do not 
  295.     like CR to be considered part of a single line.
  296. /P  Instructs QDiff to run some sort of command based upon the new nodelist 
  297.     or nodediff files.  This command can include the following percent 
  298.     directives:
  299.        %1 - Last 1 character of the julian date of the new nodelist.
  300.        %2 - Last 2 characters of the julian date of the new nodelist.
  301.        %3 - The full julian date of the new nodelist.
  302.        %D - The file name (without numbers) of the NODEDIFF file.
  303.        %N - The file name (without numbers) of the NODELIST file.
  304.     The %D and %N parameters both include a trailing period.
  305.     To include spaces in the command (as most commands require), you would 
  306.     have to encase the parameter in quotation marks.  Some sample commands 
  307.     follow:
  308.        /P:"pkpak -otc a nodelist.a%2 nodelist.%3"
  309.        /P:"pkzip -a nodelist.z%2 nodelist.%3"
  310.        /P:"lha a %nl%2 %n%3"
  311.     NOTE:  Within a batch file, you must use two percent signs.
  312.  
  313. /BINARY  Instructs QDiff to create a binary nodelist.
  314.     *************************************
  315.     *** WARNING: THIS IS IRREVERSIBLE ***
  316.     *************************************
  317.     If you decide to use this command, make sure that you have access to a 
  318.     real nodelist somewhere.  If your nodelist somehow gets corrupted, it 
  319.     will be completed unusable.
  320.  
  321.     The benefit of using the /BINARY switch is that the nodelist will take 
  322.     up approximately HALF the disk space on your local drive.  This binary 
  323.     nodelist is completely against FTSC, and therefore you should not make 
  324.     the binary nodelist available for download.  The only purpose for this 
  325.     command is for people who are running in extremely low disk space 
  326.     situations.
  327.  
  328.     Once you have used the /BINARY switch once, it is unnecessary to 
  329.     specify it again, since QDiff will automatically create a binary 
  330.     nodelist if it gets a binary nodelist as an input file.  Therefore if 
  331.     you wish to keep certain nodelists in ascii, and certain nodelists in 
  332.     binary, all that you need to do is manually convert the respective 
  333.     nodelists to binary, and then QDiff will automatically keep those 
  334.     nodelists in binary while leaving the other nodelists in ascii.
  335.  
  336.     De-Activated Stuff:
  337.        1: The Nodelist CRC can not be checked.
  338.        2: Lower-Case anything.
  339.        3: The EXPORT command is dead.
  340.        4: QDiff will take longer.  (QNode might actually be quicker.)
  341.  
  342. 2.3 - Error Levels
  343.  
  344.     The errorlevels which can be returned by QDIFF are:
  345.  
  346.        0 = NODEDIFF applied normally
  347.        1 = NODELIST does not require updating
  348.        2 = Cannot find nodediff
  349.        3 = Cannot find nodelist
  350.        4 = Cannot find extraction program
  351.        5 = NODEDIFF not found after running extraction program
  352.        6 = Extraction program reported an errorlevel other than 0
  353.        7 = Disk error during writing, probably disk full
  354.        8 = CRC error in new nodelist
  355.        9 = Invalid binary file version
  356.  
  357.                                  Part 3 - QIDX
  358.  
  359. 3.1 - Introduction
  360.  
  361.     QIDX is a simple program which was written to generate the nodelist 
  362.     indexes without having to compile the nodelist.  It is also used when 
  363.     somebody wishes to generate the FIDOUSER.LST file as well as the 
  364.     version 7 indexes.
  365.  
  366.     The ability to build the user index was just thrown in.
  367.  
  368. 3.2 - Program Usage
  369.  
  370.     To run QIDX, simply type 'QIDX' followed by the list of parameters for 
  371.     the indexes to be built.  These parameters are:
  372.  
  373. /N  Generates the node number index.  You may specify /N:filename to change 
  374.     the name of the index.  (This defaults to NODEX.NDX)
  375. /S  Generates the sysop index.  You may specify /S:filename to change the 
  376.     name of the index.  (This defaults to SYSOP.NDX)
  377.     
  378. /U  Generates the user file index.  You may specify /U:filename to change 
  379.     the name of the index.  (This defaults to USER.NDX)
  380.     NOTE:  USER.DAT must be in the current directory for /U to work.
  381.  
  382.     If you use a large portion, or all, of the nodelist, then you may wish 
  383.     to have QIDX build the node number and sysop indexes separately.  If 
  384.     you build both at once, then QIDX must divide memory in half for each 
  385.     index.  If building only one, then it can use all of memory.
  386.  
  387.     To have QIDX compile a different nodelist data file than NODEX.DAT, you 
  388.     can simply specify the nodelist filename on the command line.
  389.  
  390.     To compile SIGX.DAT into SIGX.NDX and SIGSYSOP.NDX, you would use the 
  391.     command line:
  392.  
  393.     QIDX SIGX.DAT /N:SIGX.NDX /S:SIGSYSOP.NDX
  394.  
  395. 3.3 - Errorlevels
  396.  
  397.     0 = Everythings fine.
  398.     1 = Could not open either the nodelist, or the userlist data file.
  399.     2 = Bad parameter specified on command line.
  400.  
  401.                           Part 4 - Configuration File
  402.  
  403. 4.1 - Introduction
  404.  
  405.     The QNode configuration file is a free-format text file, which consists 
  406.     of a keyword followed by optional parameters.  The file is totally case 
  407.     in-sensitive, although some keywords may not be.  To place a comment 
  408.     within the file, preceded the comment by a semi-colon (;).
  409.     WARNING:  Do not place a comment on a password line.
  410.  
  411. 4.2 - Configuration File Commands
  412.  
  413.     NOTE:  Any parameter which starts with 'USES' may be enabled by 
  414.     preceding the statement with 'USES' and disabled by preceding the 
  415.     statement with '!USES'.
  416.  
  417.     Another note: To enable certain items while compiling in DPMI mode 
  418.     only, precede the command with 'DPMI ' in the control file. To enable 
  419.     a line while you aren't running DPMI, precede the command with 'REAL '.
  420.     Okay, I made this one for my own testing, but I saw no reason to take 
  421.     it out.
  422.  
  423.     *** STUFF ABOUT YOUR SYSTEM ***
  424. ADDR #:#/#.# {#:#/#.#} ; SUPERCEDES 'ZONE, NET, NODE'
  425.     This sets YOUR network node number.  Additional addresses may be 
  426.     specified, but the first address listed is the default. You are also 
  427.     allowed to place multiple ADDR lines in your configuration file, but 
  428.     each subsequent one will totally replace the previous ones. This can 
  429.     however be used to reduce typing by setting default zone/net numbers.
  430.  
  431.     WARNING: If you use multiple ADDR lines, be absolutely sure that the 
  432.     last ADDR line in the file is the real one, with all addresses, and the 
  433.     first address being your 'normal' address.
  434.  
  435. AKA #:#/#.# {#:#/#.#} ; ENHANCES 'ADDR'
  436.     This can be used to set additional addresses without reseting the prior
  437.     addresses.  This can be used to keep your ADDR line shorter.  You can
  438.     have up to 20 addresses.
  439.  
  440. COUNTRY #
  441.     This sets your countries telephone direct dial code.  In Canada and the 
  442.     United States, this is '1'.
  443.  
  444. NODELIST filename{ #{ node-data{ sysop-data}}}
  445.     This is to be used to enable multiple, or non-standard nodelist 
  446.     generation.  If no nodelist lines are specified, it will default to: 
  447.     'NODELIST'.  You may have as many of these lines as you like.  The 
  448.     optional number specifies a 'zone override'. If this number is non-zero 
  449.     then the first zone will be taken to be the number you specify, instead 
  450.     of the zone listed.  Additional zones will be incremented by one. The 
  451.     zone override is only valid for the nodelist that it is listed for. An 
  452.     example for a fidonet + signet system follows:
  453.        NODELIST NODELIST
  454.        NODELIST SIGNODES
  455.     The node-data and sysop-data files are used in v7 mode to compile that 
  456.     nodelist to an entirely different set of data files.  If these options 
  457.     are never specified, they will default to: NODEX and SYSOP.
  458.  
  459.     WARNING:  Do not use file extensions on these commands.
  460.  
  461.     Whenever an entry is encountered with a file specified, the current 
  462.     file will be closed, and the new file(s) will be created.  The data- 
  463.     file overides are only supported in VERSION7 mode.
  464.  
  465.     Do *NOT* specify the same file names on a later line.  This will only 
  466.     erase the previous files.  To compile multiple entries into the same 
  467.     file, group all nodelists whose data should go into the same file 
  468.     together, and then specify the filename only for the first entry.
  469.  
  470.     As a weird example, suppose you want to have NODELIST and SIGNODES  
  471.     compiled together into NODEX.DAT, NODEX.NDX, and SYSOP.NDX, but you 
  472.     need SIGNODES to be compiled into SIGX.DAT, SIGX.NDX, and SIGSYSOP.NDX 
  473.     as well.  The proper usage would be:
  474.  
  475.        NODELIST NODELIST
  476.        NODELIST SIGNODES
  477.        NODELIST SIGNODES 0 SIGX SIGSYSOP
  478.  
  479. USES USERLIST ; SUPERCEDES 'USERLIST'
  480.     This is an automatic keyword, which will select the userlist that can 
  481.     be generated, and generate it.  If you are in VERSION7 mode, you get
  482.     V7USERS, otherwise you get FIDOUSER.
  483.  
  484. USES V7USERS
  485.     This is a version specific replacement to USES USERLIST.
  486.  
  487. USES FIDOUSER [limit] ; SUPERCEDES 'USERLIST' IN VERSION6 MODE.
  488.     This requests that the file 'FIDOUSER.LST' be generated.  This file can 
  489.     only be generated if you either do not generate the version 7 index 
  490.     files, or if you have a LOT of EMS available.  (See the "USES EMS" 
  491.     parameter.)  The limit is the maximum amount of base-memory remaining 
  492.     before the userlist will be swapped to disk.  It defaults to 4096.
  493.  
  494. USES ALLUSERS ; SUPERCEDES 'ALLUSERS'
  495.     This requests that all user names be placed in FIDOUSER.LST, whether 
  496.     you have them in your nodelist or not.  This is normally used for the 
  497.     ONEZONE or REGULAR style of nodelists.  Since inter-zone mail is 
  498.     normally gate-routed, you do not require the actual node in your 
  499.     nodelist to send mail to people.
  500.  
  501. USES BRIEF
  502.     This asks for status lines to only be printed for every region, instead 
  503.     of for every net/host.
  504.  
  505. USES HUBS ; SUPERCEDES 'HUBS'
  506.     This asks for hub nodes in nets other than your own to be given mail 
  507.     command of all private nodes underneath them. Normally, mail command is 
  508.     given to the host, unless it is in your own net.
  509.  
  510. USES DIRECTPOINT
  511.     This asks for points to be treated like nodes.  If you turn this on, then 
  512.     private point will get it's bosses password, otherwise a private point 
  513.     will have no password in it.
  514.  
  515. USES EMS [size] ; IGNORED IN DPMI VERSION
  516.     This asks for EMS memory to be used for indexes and version 7 buffers. 
  517.     This will default to on, so the only use for this command is so that 
  518.     you can use '!USES EMS' to disable this setting.  The default for this 
  519.     command is to allocate 2048.
  520.  
  521.     NOTE:  EMS Indexing is noticably slower than using conventional memory.  
  522.     I would only suggest using this if you want to generate FIDOUSER.LST, 
  523.     or if you are compiling most of the nodelist.
  524.     
  525.     NOTE:  The index does NOT need to fit within it's EMS boundaries.  Index 
  526.     segments will be swapped to disk on an LRU algorithm if you fill the EMS 
  527.     boundary.
  528.     
  529.     NOTE:  As I've noticed running under MS-Windows, EMS requests can be 
  530.     denied for allocation even if there's still plenty of EMS remaining.  I 
  531.     can only determine that MS-Windows is trying to prevent applications from 
  532.     hogging the whole system.  Thus I had to lower my default allocation from 
  533.     2048 downto 1600 or so.  If you try larger amounts under MS-Windows, and 
  534.     possibly OS/2 as well, you may see a warning message telling you to lower 
  535.     your EMS allocation, or to remove it altogether.
  536.  
  537. ALLOCATE INPUT #
  538.     This sets the memory allocation for input files. (Like NODELIST.###)
  539.  
  540. ALLOCATE OUTPUT #
  541.     This sets the memory allocation for output files. (Like NODEX.DAT)
  542.  
  543. ALLOCATE TEXT #
  544.     This sets the memory allocation to be used for auxilliary text files 
  545.     used in the IMPORT, EXPORT, and FORMAT commands.  The default value for 
  546.     this is 32768.  The maximum value is either 65528, or half of remaining 
  547.     memory (whichever comes first.), but will always get at least 128 
  548.     bytes.
  549.  
  550. KEEP FIRSTUSER
  551.     This tells QNode to keep the first user entry specificed during 
  552.     nodelist compile.  This was the default in QNode <1.41
  553.  
  554. KEEP LASTUSER
  555.     This tells QNode to keep the last copy of a user entry that it 
  556.     encounters during nodelist compile.  This is the default in QNode>=1.41
  557.  
  558. KEEP ALLUSERS ; SUPERCEDES 'DUPLICATE'
  559.     This allows duplicate entries in a VERSION7 sysop index.  OPUS doesn't 
  560.     do anything with the dupes however.
  561.  
  562. MAXBAUD #[|#] {[FLAG #[|#]] ...}
  563.     This sets the maximum baud rate which will be placed in the compiled 
  564.     nodelist.  Any entries above that value will be reduced to that value.  
  565.     Notice the optional second number after the pipe symbol.  This second 
  566.     number if the modem type to be used.  This sets the PREDIAL# to be used 
  567.     for Opus 1.70+, or the ModemTrans to be used for BinkleyTerm.
  568.  
  569.     The set of flags after the baud rate specify baud rate or dial prefix 
  570.     extensions.  Any node whose entries contains the flag listed will be 
  571.     changed to the specified baud rate (and optional modem type).  Unlike 
  572.     every other portion of QNode, the flags work on a LAST MATCH rule.  In 
  573.     case of multiple matches, the last one will have precedence.  You are 
  574.     allowed to have up to 20 flags specified.
  575.  
  576.     An example for a 2400 baud, MNP 5 modem is:
  577.        MAXBAUD 2400|1  HST 9600|0  MNP 9600|0  V42 9600|0
  578.     Where ModemType 0 is a standard MNP dial, and ModemType 1 disables the 
  579.     MNP for the dial.
  580.  
  581.     And example for an HST w/V32bis is:
  582.        MAXBAUD 9600|0  HST 9600|1  V32 9600|1  V32B 9600|2
  583.     Where ModemType 0 is a standard dial, ModemType 1 dials the older HST 
  584.     modems in HST mode, and ModemType 2 dials the newer V32bis modems with 
  585.     V32bis enabled.  This would enable Janus for higher speeds.  If you 
  586.     don't have Janus, you may wish to dial V32B in HST mode as well.
  587.  
  588. FLAGBAUD FLAG #[|#] {...}
  589.     This adds more flag modifications to the MAXBAUD statement, without
  590.     changing the default baud rate and modem type.
  591.  
  592.     *** NODELIST GENERATION COMMANDS ***
  593. COMPILE MYZONES ; Supercedes 'ONEZONE'
  594. COMPILE ONEZONE
  595.     Asks for only nodes in your zone(s). (ie: ZONE:*/*)
  596.  
  597. COMPILE STANDARD ; Supercedes 'REGULAR'
  598. COMPILE REGULAR
  599.     Asks for only your zone(s), plus hub nodes from other zones.  (ie: 
  600.     ZONE:*/* + *:*/0)
  601.  
  602. COMPILE EVERYTHING ; Supercedes 'ALLZONES'
  603. COMPILE ALLZONES
  604.     Asks for a complete nodelist (ie: *:*/*)
  605.  
  606. COMPILE NOTHING ; Supercedes 'NOZONES'
  607. COMPILE NOZONES
  608.     Asks for NO nodes whatsoever to be included
  609.  
  610. USES VERSION6
  611.     Asks for a version 6 nodelist
  612.  
  613. USES VERSION7
  614.     Asks for a version 7 nodelist (DEFAULT)
  615.  
  616. USES INDEX
  617.     This is an automatic command, which selects the current nodelist index
  618.     to be generated.  In VERSION7 mode, you get a V7INDEX.
  619.  
  620. USES V7INDEX
  621.     This is a version specific replacement to USES INDEX.
  622.  
  623.     It asks for version 7 indexes to be created.  NOTE:  You may wish to 
  624.     use QIDX instead of this to generate indexes.  Either to give more 
  625.     memory for index creation, or to generate the FIDOUSER.LST file.
  626.  
  627.     ANOTHER WARNING: When generating a VERSION7 data file, you MUST create 
  628.     indexes by one method or another.  You must either specify the USES 
  629.     INDEX, or use QIDX to build the indexes.
  630.  
  631.     *** NODELIST GENERATION MODIFIERS ***
  632. ADD {[nodeid] ...}
  633. DELETE {[nodeid] ...}
  634.     These two functions are used to change the list generated by the quick 
  635.     output list types.  The [nodeid] statements may be any of these style 
  636.     of numbers:
  637.  
  638.        ZONE:         Asks for the entire zone
  639.        ZONE:REGION   Asks for the entire region
  640.        ZONE:NET      Asks for the entire net
  641.        REGION        Asks for a region in your own zone
  642.        NET           Asks for a net in your own zone
  643.        -ZONE:        Asks for admin node for the zone
  644.        ZONE:-REGION  Asks for admin nodes from specified region
  645.  
  646.     These commands are processed in the order they are encountered.  You 
  647.     may have as many add and delete lines as you like, in any order.  In 
  648.     cases of multiple matches, the first applicable match will rule.
  649.  
  650.     If you reference nodes in any zone, then the zone admin nodes will be 
  651.     automatically added into the final output list.
  652.  
  653.     If you ask for the admin nodes for a specific region, then the 
  654.     independant nodes will be referenced as well.
  655.  
  656.     For example, to add only region 17, and all admin nodes for Zone 1, I 
  657.     use (with a second ADD line to add all other nets that I ever do 
  658.     netmail with.)
  659.  
  660.        NOZONES
  661.        ADD -1: -10 -11 -12 -13 -14 -15 -16 17 -18 -19
  662.  
  663. POINTS filename
  664.     This will include the specified file as the point-control file.  This 
  665.     keyword is only active while generating a version 7 nodelist.  See the 
  666.     section on pointnets for an example of this file.  You may have 
  667.     multiple point control files.
  668.  
  669. INCLUDE filename
  670.     This will include the specified file into the QNODE.CFG parsing pass.  
  671.     I personally use this to include my dial and cost tables, which are 
  672.     used by every nodelist processor.
  673.  
  674. EXPORT nodeid filename
  675.     This will export, a raw portion of the nodelist into a specified file.  
  676.     Normally used to get a list of the nodes in your own net.  See 
  677.     ADD/DELETE for nodeid values.  This works for all nodes, whether they 
  678.     are in your nodelist or not.
  679.     This can also be used to send an abbreviated nodelist to someone else.
  680.     WARNING: This command is unavailable if you are using the binary 
  681.     nodelist format.
  682.  
  683. IMPORT nodeid filename
  684.     This will import a raw style portion of a nodelist into the generated 
  685.     nodelist once the value specified by nodeid has passed.  (Therefore if 
  686.     you import with your own net, you add nodes to the end of your net.)  
  687.     The nodeid values are described in ADD/DELETE.
  688.  
  689.     For example, to add the 'fake-net' 31000 to the end of your zone, you 
  690.     would use the command: "IMPORT 1: POINT.LST".  To add it to the end of 
  691.     your region, you would use the command: "IMPORT 17 POINT.LST".
  692.  
  693.     To add additional nodes to a network, you can use the import command to 
  694.     import after a network, with the import file not having any zone, 
  695.     region, or host commands in it.
  696.  
  697.     NOTE:  Any networks created through import files should be explicitly 
  698.     included in the output file using the 'ADD' keyword.  This is not 
  699.     always necessary, but there are occasions when it is.
  700.  
  701. REPLACE nodeid filename
  702.     This will replace the nodeid that you specify with the file that you 
  703.     specify.  You can replace a net, region, zone, or the admin portions of 
  704.     a region or zone.  It's usage is exactly like IMPORT.  It will only 
  705.     work within 'ADD'ed sections of the nodelist.
  706.  
  707. FORMAT nodeid filename
  708.     This works just like the EXPORT command, except it makes a nice looking 
  709.     print-out, and it will only work with nodes which have been included in 
  710.     the output nodelist.
  711.  
  712.     *** BULK NODE MODIFICATIONS ***
  713.  
  714. DEFAULT FEE DOMESTIC fee
  715.     This sets the default fee for domestic calls (within your own country 
  716.     code)  This will normally default to '65535', which basically means 
  717.     that the fee will equal the cost.
  718.  
  719. DEFAULT FEE INTERNATIONAL fee
  720.     This sets the default fee for international calls (outside your own
  721.     country code)  This will normally default to '65535', which basically
  722.     means that the fee will equal the cost.
  723.  
  724. DEFAULT COST DOMESTIC cost [fee]
  725.     This sets the default cost for domestic calls (within your own country 
  726.     code)  This will normally default to 0.
  727.  
  728. DEFAULT COST INTERNATIONAL cost [fee]
  729.     This sets the default cost for international calls (outside your own 
  730.     country code)  This will normally default to 0.
  731.  
  732. DEFAULT DIAL DOMESTIC [predial][/postdial]
  733.     This sets the default dial substitution for domestic calls (within your 
  734.     own country code)  This dial substitution may contain a '/' in it to 
  735.     separate the prefix addition and the suffix addition.  (For example, an 
  736.     entry of '555-1212W/!' would place the entry '555-1212W' in front of 
  737.     the phone number, and would place an exclamation point at the end.  In 
  738.     most countries, this entry should be left blank.
  739.  
  740. DEFAULT DIAL INTERNATIONAL [predial][/postdial]
  741.     This sets the default dial substitution for international calls 
  742.     (outside your own country code)  In Canada and the US, this is '011-' 
  743.     Other countries international direct dial codes will vary.  This 
  744.     follows the same rules as the default domestic dial string.
  745.  
  746. TYPE SCRIPT modem-type fromdial todial
  747.     This will perform a dial substitution on a node, if the modem-type 
  748.     matches the number that you specify.  The dial substitution will be 
  749.     done if there isn't a specific script for the node.  This command will 
  750.     be executed before a global script command will.
  751.  
  752. TYPE COST modem-type newcost [newfee]
  753.     This sets the default cost and/or fee for a modem of that particular 
  754.     modem-type.  The modem-type is a number from 0-255.  The fee is 
  755.     optional, and if not specified, will default to the same as the cost.  
  756.     This command will be applied after all other cost processing, and will 
  757.     only be applied if it is not a free call.  If a specific 'CALLCOST' 
  758.     statement is given, then the TYPE COST table will not be checked.
  759.  
  760. SCRIPT minbaud maxbaud cost fromdial todial
  761.     This is one form of the script command, which I invented to handle my 
  762.     2400 baud/MNP 5 modem.  In this case, every node which has a baud rate 
  763.     between (or equal to) the minbaud and the maxbaud, with a cost equal to 
  764.     the cost, will have the listed dial substitution done to it.  (If the 
  765.     start of the phone number doesn't match the fromdial, that node is not 
  766.     changed.)
  767.  
  768.     On my system, when I used VERSION6, I used:
  769.        SCRIPT 300 2400 0 1- "NOMNP1.SCR"   ; Local Calls
  770.        SCRIPT 300 2400 25 1- "NOMNP2.SCR"  ; No Areacode calls
  771.        SCRIPT 300 2400 50 1- "NOMNP3.SCR"  ; Long Distance calls
  772.  
  773.     VERSION7 nodelist users would probably want to use the ModemType 
  774.     settings.  (See MAXBAUD)
  775.  
  776.     *** DIAL/COST TABLES ***
  777.     NOTE:  If you define the 'DEFAULT COST' and 'DEFAULT DIAL' parameters, 
  778.     then these commands do not need to have any parameters after them.  (In 
  779.     fact they don't need any parameters even if you don't specify the 
  780.     lines.)  For those wondering, I split these off to support the 'DEFAULT 
  781.     FEE' parameter.  The others were added for completeness, as well as 
  782.     readability.
  783.  
  784.     In the dial table, there are two parameters after the dial keyword. the 
  785.     first is the modifications to local calls (ones within your own country 
  786.     code), and the second is the modifications to the international direct 
  787.     dial phone numbers (ones with any other country code.)  Each of these 
  788.     entries consists of what to put before the phone number, as well as 
  789.     what to put after the phone number.  To seperate the two, use a slash 
  790.     (/).  For no change to the phone number, use a slash by itself. You 
  791.     should use the keyword 'End' to terminate the dial and cost tables.
  792.  
  793.     The dial table will replace every phone number that starts with the 
  794.     first sequence with the second sequence.  This is for local or regional 
  795.     calls where you aren't allowed to dial the entire phone number.
  796.  
  797.     NOTE: Both the dial table and cost table are on a 'first match' system.  
  798.     Therefore, you should put the entries in in the order of longest to 
  799.     shortest.
  800.  
  801.     An example follows:
  802.  
  803.        DIAL    /    011-
  804.        ; Adds 011- to international calls, no change to domestic calls
  805.     
  806.        ; The following set up local calls from Saskatoon, SK
  807.          1-306-242- 242-
  808.          1-306-244- 244-
  809.          1-306-373- 373-
  810.          1-306-374- 374-
  811.          1-306-382- 382-
  812.          1-306-384- 384-
  813.          1-306-652- 652-
  814.          1-306-654- 654-
  815.          1-306-664- 664-
  816.          1-306-665- 665-
  817.          1-306-931- 931-
  818.          1-306-933- 933-
  819.          1-306-934- 934-
  820.          1-306-955- 955-
  821.          1-306-966- 966-
  822.          1-306-978- 978-
  823.          1-306-329- 329-
  824.          1-306- 1-          ;area code strip for Saskatchewan calls
  825.        END
  826.     
  827.     The COST statement at the head of the table can take two arguments, 
  828.     which are the default costs in pennies to apply to domestic and 
  829.     international calls, respectively.
  830.  
  831.     Each entry in the cost table consists of a partial phone number 
  832.     followed by a cost in pennies for sending a message to any node whose 
  833.     phone number begins with that string.  As with the dialing table, the 
  834.     first matching entry is the one that is used.  The cost table is used 
  835.     before the dial table is used, so you should always use the fully 
  836.     expanded phone numbers, instead of the simplified phone numbers which 
  837.     the dial table would generate
  838.  
  839.     You may append an additional entry to the end of each line, being the 
  840.     fee charged to the user for sending messages to nodes within that phone 
  841.     prefix.
  842.  
  843.     An example follows:
  844.  
  845.        COST 50 250
  846.        ; This gives a default cost of 50 cents to domestic calls, and
  847.        ; $2.50 to international calls.
  848.  
  849.        ; The following numbers are free from Saskatoon, SK
  850.          1-306-242- 00
  851.          1-306-244- 00
  852.          1-306-373- 00
  853.          1-306-374- 00
  854.          1-306-382- 00
  855.          1-306-384- 00
  856.          1-306-652- 00
  857.          1-306-654- 00
  858.          1-306-664- 00
  859.          1-306-665- 00
  860.          1-306-931- 00
  861.          1-306-933- 00
  862.          1-306-934- 00
  863.          1-306-955- 00
  864.          1-306-966- 00
  865.          1-306-978- 00
  866.          1-306-329- 00
  867.          1-306-585- 25 22 ; One of Reginas prefixes (short distance)
  868.          1-306- 25 ; short distance calls, cheaper rates
  869.          1-800- 00
  870.          1-900- 50
  871.        END
  872.  
  873.     As a memory saving gesture, The 'DIALCOST' table has also been added.  
  874.     It is a combination of the DIAL and COST tables.  (However you may 
  875.     still use the DIAL and COST tables, and even use them in conjunction 
  876.     with the DIALCOST table.  If you use duplicate tables, then the 
  877.     DIALCOST table will be applied first, then the DIAL or COST table.  The 
  878.     DIAL or COST table will be checked, even if there was a matching entry 
  879.     in the DIALCOST table.
  880.  
  881.     The DIALCOST table has a header with four values, these values being:  
  882.     The default domestic cost for messages, the default international cost 
  883.     for messages, the default domestic dial substitution, and the default 
  884.     international dial substitution.
  885.  
  886.     Every entry in the DIALCOST table has 3 mandatory parameters, plus a 
  887.     fourth optional parameter.  The parameters, in order are: The partial 
  888.     phone number for the dial substitution and cost to take effect on, the 
  889.     replacement dial string to be used, the cost of the message to be sent, 
  890.     and the fourth optional parameter is the fee charged to the user for a 
  891.     message to be sent to that node.
  892.  
  893.     An example follows:
  894.  
  895.        DIALCOST 50 250 / 011-
  896.     
  897.        ; The following set up local calls from Saskatoon, SK
  898.          1-306-242-   242- 00
  899.          1-306-244-   244- 00
  900.          1-306-373-   373- 00
  901.          1-306-374-   374- 00
  902.          1-306-382-   382- 00
  903.          1-306-384-   384- 00
  904.          1-306-652-   652- 00
  905.          1-306-654-   654- 00
  906.          1-306-664-   664- 00
  907.          1-306-665-   665- 00
  908.          1-306-931-   931- 00
  909.          1-306-933-   933- 00
  910.          1-306-934-   934- 00
  911.          1-306-955-   955- 00
  912.          1-306-966-   966- 00
  913.          1-306-978-   978- 00
  914.          1-306-329-   329- 00
  915.          1-306-585- 1-585- 25 22 ; Regina, known cost call.
  916.          1-306-     1-     25
  917.          1-800-     1-800- 00
  918.          1-900-     1-900- 50
  919.        END
  920.  
  921.     *** INDIVIDUAL NODE MODIFICATIONS ***
  922.  
  923. BAUD [zone:][net/]node baudrate[|modemtype]
  924.     Sets the specified nodes baudrate to whatever you specify.  The modem 
  925.     type flag can be set at the same time, by separating it from the 
  926.     baudrate with a pipe symbol.
  927.  
  928.        BAUD 1:140/26 9600|0
  929.  
  930. FLAGS [zone:][net/]node flaglist
  931.     Adds the specified flags to the node. (Normally 'CM').  You can also 
  932.     add the flags: '9', 'A', 'B', 'D', 'E', 'F' which will assigned the 
  933.     user defined flags in the nodelist.  ('F' is bit 15).  In case you're 
  934.     wondering why I skipped 'C', that flag specifies a point, and it 
  935.     wouldn't be a good idea to let somebody set that flag on their own.
  936.        FLAGS 140/26 CM
  937.  
  938. PHONE [zone:][net/]node phonenumber
  939.     Sets the specified nodes phone number (Unless the node number is 
  940.     unlisted, you may want to see if you can use the SCRIPT command 
  941.     instead, which doesn't have to be changed if the person ever changes 
  942.     their phone number.)
  943.  
  944.        PHONE 1:140/26 1-306-384-0836
  945.  
  946. CALLCOST [zone:][net/]node cost [fee]
  947.     Sets the charge to the user for a message to be sent to the listed 
  948.     node.  WARNING: Using this on nodes may cause the nodes to be 
  949.     unacceptable in the bulk SCRIPT statements. If the node has more than 
  950.     one node number, then you should probably use a specific COST statement.
  951.  
  952.     The first item 'cost' is used for nodelist processing, the second 
  953.     entry, or 'fee' is charged to the user for a message to be sent to that 
  954.     node.  If you do not list the fee, then it will default to the same 
  955.     value as the cost.
  956.  
  957.        CALLCOST 26 1
  958.  
  959. PASSWORD [zone:][net/]node password
  960.     Sets the specified nodes password. The password can be absolutely 
  961.     anything.  Leading and trailing spaces and tabs will be removed, but 
  962.     everything from that point on is part of the password.  Therefore, do 
  963.     NOT place a comment on this line.
  964.  
  965.        PASSWORD 1:140/26 PASSWORD
  966.  
  967. SCRIPT [zone:]net/node fromdial todial
  968.     This is the second form of the script command.  Please note that the 
  969.     net number IS required, even if it's your own net. (I use the '/' to 
  970.     determine the difference between the two script lines.)
  971.  
  972.        SCRIPT 140/88 1- "VORTEX.SCR"  ; Needs a special script.
  973.  
  974.                                   Part 5 - DPMI
  975.  
  976.     DPMI is the dos protected mode interface.  It's available on '286 or 
  977.     higher computers with 2 Megs of ram or greater.  Aside from enabling 
  978.     80286 instructions in the source code, the DPMI mode programs give 
  979.     QNode a LOT more memory to work with, depending on what you have 
  980.     available.  On the standard DPMI system, QNode will never need to swap 
  981.     to disk for it's indexing.  (Or if it does, it will do it much later, 
  982.     and have much more memory to use its LRU swapping on.)
  983.  
  984.     NOTE: You may not wish to use the DPMI version of QDiff. Depending upon 
  985.     the command that you run through the /P: directive, the commands may be 
  986.     incompatible with the DPMI manager.  Please read the section below for 
  987.     more information.
  988.  
  989.     This is the Borland documentation on their RTM.EXE program, which is 
  990.     used to do the DPMI stuff. This document, plus the files:
  991.       RTM.EXE, RTMRES.EXE, DPMI16BI.OVL, DPMIINST.EXE, DPMILOAD.EXE
  992.     are all copyrighted by Borland.
  993.  
  994.     ================================================================
  995.     Running a DOS Protected-Mode Program
  996.     ================================================================
  997.  
  998.     When you run a DOS protected-mode application, you must ensure that 
  999.     DPMI16BI.OVL (the DPMI server), RTM.EXE (the run-time manager), and any 
  1000.     DLLs used by the application are present in the current directory, the 
  1001.     same directory as the application, or on the DOS path.
  1002.  
  1003.  
  1004.     Protected Mode and Memory
  1005.     -------------------------
  1006.  
  1007.     A DOS protected-mode program uses DPMI (DOS Protected Mode Interface) 
  1008.     to run in protected mode which gives the application access to all your 
  1009.     computer's memory. With the exceptions outlined below, the DOS 
  1010.     protected-mode technology is completely transparent and no extra steps 
  1011.     are necessary in order to run a protected-mode application.
  1012.  
  1013.  
  1014.     DPMIINST
  1015.  
  1016.     One such exception might be when you run a protected-mode program for 
  1017.     the very first time on a 286-based system. The protected mode 
  1018.     technology uses an internal database which contains various machine 
  1019.     characteristics to determine how to enable protected mode operation on 
  1020.     your system, and configures itself accordingly. If you have a computer 
  1021.     with an older 80286 microprocessor, your system might not be 
  1022.     recognized. You'll see this message when you try to run a protected- 
  1023.     mode application:
  1024.  
  1025.      Machine not in database (RUN DPMIINST)
  1026.  
  1027.     If you get this message, simply run the DPMIINST program by typing 
  1028.     DPMIINST at the DOS prompt and following the program's instructions.
  1029.  
  1030.     DPMIINST runs your machine through a series of tests to determine the 
  1031.     best way of enabling protected mode, and automatically configures 
  1032.     accordingly. Once you have run DPMIINST, you won't have to run it again.
  1033.  
  1034.     Some memory managers, device drivers, and memory-resident (TSR) 
  1035.     programs can interfere with DPMIINST's ability to analyze your system. 
  1036.     If DPMIINST fails, try temporarily disabling or removing these 
  1037.     programs. That gives DPMIINST the unrestricted access it needs to 
  1038.     determine the best way to enter protected mode.
  1039.  
  1040.     Note that running DPMIINST.EXE will never be required on any system 
  1041.     running HIMEM (or equivalent) or on any system based on an 80386 (or 
  1042.     later) processor.
  1043.  
  1044.  
  1045.     DPMIMEM
  1046.  
  1047.     By default, the DPMI interface allocates all available extended memory 
  1048.     for its own use. If you don't want all of the available memory to be 
  1049.     taken by the DPMI kernel, you can set a DOS environment variable to 
  1050.     specify the maximum amount of memory to use. This variable can be 
  1051.     entered directly at the DOS prompt or inserted in your AUTOEXEC.BAT 
  1052.     file, using this syntax:
  1053.  
  1054.     SET DPMIMEM=MAXMEM nnnn
  1055.  
  1056.     where nnnn is the amount of memory in kilobytes.
  1057.  
  1058.     For example, if you have a system with 4MB and want the DPMI kernel to 
  1059.     use only 2MB of it, leaving the other 2MB alone, the DPMIMEM variable 
  1060.     would be set as follows:
  1061.  
  1062.     SET DPMIMEM=MAXMEM 2048
  1063.  
  1064.     Some memory managers, like QEMM or 386^Max, allow allocating the same 
  1065.     area of memory as either extended or expanded and many older 
  1066.     applications can use only expanded memmory (EMS). By using the DPMIMEM 
  1067.     DOS environment variable to limit the amount of extended memory used by 
  1068.     the DPMI server, your system will still have expanded memory available 
  1069.     for use by older applications.
  1070.  
  1071.  
  1072.     RTMRES
  1073.  
  1074.     RTMRES preloads the protected-mode system. Preloading the DPMI server 
  1075.     lets you load a protected-mode program slightly faster. RTMRES will 
  1076.     start a program if you specify a program name as a parameter. If no 
  1077.     parameter is specified, RTMRES will run a DOS shell. Type EXIT to close 
  1078.     the shell.
  1079.  
  1080.     RTMRES is especially useful if you start, exit, and start a protected- 
  1081.     mode program frequently. Normally, every time you run a protected-mode 
  1082.     application, the DPMI server is loaded. If you've run RTMRES 
  1083.     previously, the server is already present, and the protected-mode 
  1084.     application loads faster.
  1085.  
  1086.  
  1087.     EXTENDED MEMORY
  1088.  
  1089.     A protected-mode application interacts with the DPMI server through 
  1090.     Borland's run-time manager (RTM.EXE). By default, a protected-mode 
  1091.     application uses all the extended memory reserved by the DPMI kernel.
  1092.  
  1093.  
  1094.     ================================================================
  1095.     Running A DOS Protected-Mode Program from Windows
  1096.     ================================================================
  1097.  
  1098.     A DOS protected-mode program will run in Windows in 386 enhanced mode. 
  1099.     To configure the amount of memory available to the application, create 
  1100.     a Windows PIF file. To learn more about PIF files, see your Microsoft 
  1101.     Windows User's Guide.
  1102.  
  1103.  
  1104.     Running Your Program in Windows Standard Mode
  1105.     ---------------------------------------------
  1106.  
  1107.     In order to run a protected-mode program from Windows standard-mode, 
  1108.     you must set the DPMIMEM DOS environment variable and run RTMRES (both 
  1109.     are described above) before running Windows. Make sure your DPMIMEM 
  1110.     setting leaves enough physical memory for Windows to operate.
  1111.  
  1112.     Note that once you've run RTMRES, you won't be able to run Windows in 
  1113.     386 enhanced mode until you exit the RTMRES shell (by typing EXIT at a 
  1114.     DOS prompt).
  1115.  
  1116.  
  1117.     Running from a Windows DOS Prompt
  1118.     ---------------------------------
  1119.  
  1120.     To run a DOS protected-mode application from a Windows DOS prompt, you 
  1121.     must first modify the DOSPRMPT.PIF file found in your Windows directory 
  1122.     so that the protected-mode program will be able to use extended memory.
  1123.  
  1124.     Using the Windows PIF editor, open the DOSPRMPT.PIF file, and indicate 
  1125.     the amount of extended memory you want the protected-mode program to 
  1126.     use. If you are unsure how to use the PIF editor, see your Microsoft 
  1127.     Windows User's Guide.
  1128.  
  1129.  
  1130.     ================================================================
  1131.     Controlling the Amount of Memory the Run-Time Manager Uses
  1132.     ================================================================
  1133.  
  1134.     The run-time manager attempts to free as much conventional memory as 
  1135.     possible (by moving moveable memory blocks into extended memory, for 
  1136.     example) before starting an application. No attempt is made to release 
  1137.     extended memory, however. Therefore, if you are going to run other 
  1138.     protected-mode applications that don't use the run-time manager 
  1139.     (Paradox 4.0, for example), use the RTM DOS environment variable to 
  1140.     control the run-time manager's allocation of memory.
  1141.  
  1142.     Use the DOS command line to add the RTM environment variable to your 
  1143.     system's DOS environment. Here is the syntax:
  1144.  
  1145.     SET RTM=[option nnnn]
  1146.  
  1147.     The following table lists the options you can use. nnnn can be a 
  1148.     decimal number or a hex number in the form of xAB54 or xab54.
  1149.  
  1150.      Option          Description
  1151.      -------------------------------------------------------------
  1152.      EXTLEAVE nnnn   Always leave at least nnnn kilobytes of
  1153.                      extended memory available. The default value
  1154.                      is 640K.
  1155.  
  1156.      EXTMAX nnnn     Don't allocate more than nnnn kilobytes of
  1157.                      extended memory. The default value is 4
  1158.                      gigabytes. In Windows, the default value is
  1159.                      one-half the available memory.
  1160.  
  1161.      EXTMIN nnnn     If fewer than nnnn kilobytes are available
  1162.                      after applying EXTMAX and EXTLEAVE limits,
  1163.                      terminate with an Out of Memory message. The
  1164.                      default value is zero.
  1165.  
  1166.      REALLEAVE nnnn  Always leave at least nnnn paragraphs of real
  1167.                      memory available. The default value is 64K or
  1168.                      4096 paragraphs.
  1169.  
  1170.      REALMAX nnnn    Don't allocate more than nnnn paragraphs of
  1171.                      real memory. The default value is 1 megabyte
  1172.                      or 65,535 paragraphs.
  1173.  
  1174.      REALMIN nnnn   If fewer than nnnn paragraphs are available
  1175.                     after applying REALMAX and REALLEAVE, terminate
  1176.                     with an Out of Memory message. The default
  1177.                     value is zero.
  1178.  
  1179.     The following DOS command limits RTM to 2M bytes of extended memory, 
  1180.     and ensures that 128K bytes of real memory are left unallocated:
  1181.  
  1182.      SET RTM=EXTMAX 2048 REALLEAVE 8192
  1183.  
  1184.  
  1185.     ================================================================
  1186.     Important Note for Borland C++ and Paradox 4.0 Users
  1187.     ================================================================
  1188.  
  1189.     The DPMILOAD.EXE and DPMI16BI.OVL files provided in this package 
  1190.     replace the older ones that came with Paradox 4.0 and BC++ 3.0 or 
  1191.     later. Delete or rename the older versions and make sure the newer ones 
  1192.     are on your DOS path (both Paradox and BC will search the path and find 
  1193.     the newer versions).
  1194.  
  1195.     If you plan to shell out from Paradox or BC++ to run another protected- 
  1196.     mode application, first limit the amount of extended memory used by 
  1197.     Paradox or BC++. For Paradox, use its /extk command-line parameter; and 
  1198.     for BC++, use its /x command-line parameter. Refer to the Paradox or 
  1199.     BC++ documentation for more information on the use of command-line 
  1200.     options.
  1201.  
  1202.                       *    *    *    *    *
  1203.  
  1204.                            Part 6 - Common Questions
  1205.  
  1206.     Well okay, I made some of 'em up, but you get the idea.
  1207.  
  1208. Q:  I have to type an awful lot of the same zone number in a multiple 
  1209.     nodelist situation.  How can I reduce all these zone numbers?
  1210. A:  Easy.  Just put a bunch of ADDR lines all through the configuration 
  1211.     file.  The first number specified on an ADDR line will set the default 
  1212.     zone and net for you.  When doing this however, it is important to make 
  1213.     sure that you set the ADDR line correctly at the end of the file.
  1214.  
  1215. Q:  In V7 mode, can I still generate the FIDOUSER.LST file?
  1216. A:  You bet.  You must specify the VERSION7 and USERLIST keywords in
  1217.     your config file, but you can't specify the INDEX keyword.  You must
  1218.     use QIDX to build the indexes.  If you have lots of EMS, look at USES 
  1219.     EMS.
  1220.  
  1221. Q:  In V7 mode, how can I configure my 2400 baud MNP modem to work with the
  1222.     modem type byte?
  1223. A:  A good MAXBAUD line that you could use would be:
  1224.     MAXBAUD 2400 MNP 9600|1 HST 9600|1 V32 9600|1 V32B 9600|1
  1225.     Where modem type 0 is a standard non-MNP dial command, and modem type
  1226.     1 is an MNP dial command.  (Note that the baud rate is locked at 9600
  1227.     for MNP connects.)
  1228.  
  1229. Q:  In V7 mode, how can I configure my HST-DS to work with older HST's?
  1230. A:  A good MAXBAUD line that you could use would be:
  1231.     MAXBAUD 9600 MNP 9600|1 HST 9600|1 V32 9600|1 V32B 9600|2
  1232.     Where modem type 0 is a no-correction dial command, modem type 1 is
  1233.     a simple MNP or older HST type dial command (you may wish to split those
  1234.     two into separate dial strings as well.), and modem type 2 is the
  1235.     super-enhanced dial command for other V32bis modems.
  1236.  
  1237. Q:  When generating a FIDOUSER.LST file, it runs out of memory, and says
  1238.     extending on disk.  It then takes a lot longer to compile.  Is there
  1239.     any way to speed it up?
  1240. A:  Sorta.  You can either reduce the memory overhead of the nodelist buffers
  1241.     (using the BUFFERS keyword.), or you can use a smaller section of the
  1242.     nodelist, or both.
  1243.  
  1244. Q:  In V7 mode, when generating the indexes, after a certain point, the drive
  1245.     light starts to flash a lot more rapidly than previously, what's going on
  1246.     and can I speed it up?
  1247. A:  The V7 index files have just hit the memory limit, and they have to be
  1248.     swapped to disk now.  You can reduce the memory overhead of the nodelist
  1249.     buffers (using the BUFFERS keyword.), you can use a smaller section of the
  1250.     nodelist, or you can use the QIDX program to build the indexes instead.
  1251.     (QIDX can still swap to disk, but it will have more memory than QNODE.)
  1252.  
  1253. Q:  How can I send somebody part of the nodelist, instead of the whole thing?
  1254. A:  You can use some constructive QNode and batch file techniques to export
  1255.     the proper things.  I'd suggest making a sub-directory to contain the
  1256.     temporary files, deleting all files in the sub-directory before compiling
  1257.     the nodelist with QNode (use the batch command
  1258.     "FOR %F IN (DIR\*.*) DO DEL %F", which doesn't ask for Y/N)
  1259.     And then run QNode with the following type of export directives:
  1260.        EXPORT -1: ADMIN.1
  1261.        EXPORT 1:-17 ADMIN.17
  1262.        EXPORT 1:140 NET.140
  1263.     NOTE: You may wish to export the entire region, or even the entire zone
  1264.     instead.  Just remember that you REQUIRE zone and region administration
  1265.     nodes in any abbreviated nodelist.
  1266.     And then execute this command after QNode: "COPY/A DIR\*.* SMALLNDE.001"
  1267.     Your batch file would look like this then:
  1268.        ---cut here---
  1269.        FOR %%F IN (TEMP\*.*) DO DEL %%F
  1270.        QNODE
  1271.        COPY/A TEMP\*.* SMALLNDE.001
  1272.        ---cut here---
  1273.  
  1274. Q:  How can I make QNode put zone numbers for all zones in the FIDOUSER.LST 
  1275.     file?
  1276. A:  Easy.  Just change your final 'ADDR' line to contain a dummy address as 
  1277.     the first address, followed by all of your regular addresses.  Any 
  1278.     nodes with a zone number other the the zone of the first address will 
  1279.     have their zone number placed in the FIDOUSER.LST file.
  1280.