home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / BBS / NETMAIL / XRS45AT3.ZIP / NEWIN450.DOC < prev    next >
Encoding:
Text File  |  1991-08-01  |  37.5 KB  |  624 lines

  1. Changes from XRS v 4.50S (Release 2) -=> v 4.50 "FidoCon'91" release:
  2.  
  3. 1) ARJ format mailbags are supported.  Extension used is ".JXR".  PKZip.EXE
  4.  (if found on the PATH) is still the default - you must specify archiver you
  5.  wish to use other than PKZip with the "PACKER ARJ" parameter, for example.
  6.  (note that leaving the '.EXE' extension off the packer statement no longer
  7.  causes a problem, either)  Note that for backwards-compatibility, this XRS
  8.  version still uses only PKZip, LHA or PKArc to pack response mailbags (if
  9.  you have ARJ selected, it will use PKZip instead for this one function).
  10.  
  11. 2) LHA file creation problem fixed.
  12.  
  13. 3) True 4D is used in *.PKT header if the program finds a "4D_PACK.XRS" file.
  14.  
  15. 4) XRS stores "???_ONLY.XRS" with a mailbag (as well as "4D_PACK.XRS").
  16.  
  17. 5) XRS computes the exact amount of memory to swap out to LIM/EMS or disk if
  18.  you enable swapping, rather than fudging the "FarCoreLeft()" amount by 16k.
  19.  In most cases, this should cause the swapped file or LIM/EMS size to be one
  20.  block (or 16k) smaller.
  21.  
  22. 6) Messages which are replies to message numbers from 32768 up to 65535 are
  23.  displayed correctly in the "Create/Edit/Delete" list.
  24.  
  25. 7) Netmail message headers that are modified with <F3> no longer cause an
  26.  incorrect " * Forwarded privately in response..." to be inserted.
  27.  
  28. 8) Netmail address "grabbing" from echomail messages is improved and more
  29.  likely to have the correct address as the default if you reply privately.
  30.  
  31. 9) XCS tearline problem fixed.
  32.  
  33. 10) XRS remembers the name of the last imported file (using the<ALT_F4> hot
  34.  key in the internal editor).
  35.  
  36. 11) XRS puts the version number, etc. into the file named "$$ACTIVE.XRS".
  37.  
  38. 12) "Bundler" works correctly even if you are not reading QWK format mail.
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46. Fixed in 4.50S (Release 2 or ASP "Shareware" version):
  47.  
  48. 1) "Compress Mailbag" is selected, the mailbag is no longer compressed
  49.  *and* deleted (only compressed).
  50.  
  51. 2) If a subject you quote is too long to fit into the new subject field
  52.  (more than 25 characters in "QWK" mode or 70 characters in native mode)
  53.  it is clipped to fit.  This previously caused a "Portal Error" message.
  54.  
  55. 3) The last block of LIM/EMS memory used by the HX routines to preload
  56.  the summary information (assuming you have LIM/EMS and didn't exclude
  57.  using it) is not nuked on shell to DOS or calling an external program.
  58.  This is done by "locking" 16k blocks of LIM/EMS memory (only one at a
  59.  time) so other parts of the program that use LIM/EMS (like "Swap" or
  60.  caching, or some external programs) don't destroy the contents of the
  61.  LIM/EMS page-frame by failing to save and restore the "context" when
  62.  they access (or rather change) it.  Note that if you use a tiny page
  63.  frame for LIM/EMS (i.e. 16k or 32k instead of the normal 64k frame),
  64.  you can lock out swapping or make other LIM/EMS access extemely slow
  65.  since XRS will sometimes lock a 16k block until it is through with it.
  66.  (but in general, only building the <J>ump list, "virtual paging" of
  67.  very large lists and during external program calls or "Swap to DOS"
  68.  force locking a block, and therefore this happens only for a second
  69.  or two in most when these functions are being used.)
  70.  
  71. 4) New "CONFIG.XRS" parameter 'Soft Fonts' causes XRS to not adjust the
  72.  screen geometry when you return from a DOS shell or swap/shell.  This
  73.  must be used with "SET XRS=X" to be effective.  Normally, XRS restores
  74.  the video mode which was in effect when you shelled out - with soft
  75.  fonts, this could be problamatic - with hardware fonts, it is not.
  76.  
  77. 5) Putting ^aPID: ("hidden") kludges into message is the default instead
  78.  of putting XRS version information on the tear line.  XCS version (if
  79.  XCS or QWK mail being read) *is* displayed on the tear line - whether
  80.  or not pids are turned on.  You can put "No Pids" into CONFIG.XRS to
  81.  defeat this, but I would prefer that you not, and that programs not
  82.  change the tear or pid lines after they are created - this should never
  83.  occur!  The very reason they are there is to identify the originating
  84.  program that injects the mail into the system, and altering them is a
  85.  total defeat of that intent.  Several "QWK" style mail readers have
  86.  given ORE ("Offline Reader Editor") programs a "bad name" on Fidonet,
  87.  since they do not properly alter their behaivior to accomodate the new
  88.  environment (which XRS does).  XRS 4.50 release 2 also only puts a BBS
  89.  type in the address field of the Origin line.
  90.  
  91. 6) A new text document named "OPTIMIZE.XRS" is included in this release.
  92.  It details the best things to 'tweek' depending upon how much and which
  93.  type(s) of memory you have, disk speed, etc.  All of these are done by
  94.  changing and/or adding parameters to the CONFIG.XRS file.
  95.  
  96. 7) If a "Bundler" is suppied, XRS uses it instead of XRS2REP.EXE if you
  97.  are reading a .QWK format mailbag.  Previously, XRS wouldn't use either
  98.  (it would use the internal "XRS_Pack" routines).
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106. Changes from XRS v 4.10 -=> v 4.50 Release
  107.  
  108.  
  109. [This version contains 107 changes/updates/fixes condensed below:]
  110.  
  111.  
  112. 1) Support for .QWK format mailbags is integrated into the program by
  113.  calling portions of Rudi Kusters' "XCS" (eXpress Conversion System).
  114.  Picking a .QWK format mail bundle will cause XRS to first unpack it,
  115.  then call QWK2XRS to convert the bundle to an XRS mailbag.  Upon exit,
  116.  XRS will call the "Bundler xxxx" program, or "XRS2REP.EXE" if none is
  117.  specified.  (These two programs are part of Rudi's XCS version 1.00 or
  118.  later.  XCS also includes programs to transport to and from VAX/VMS
  119.  Mail, FidoNet *.PKT mail packets, archived messages, etc.)  XRS does
  120.  not assume .QWK format mail bundles are the same 'flavor' packer you
  121.  have for your .?XR format (XRS mailbags), or assumes "Zip" if you have
  122.  QWK mail only.  Instead, it 'smells' them to determine unpacker.  For
  123.  .QWK format mail, XRS limits the subject field to 25 characters, and
  124.  adjusts the on-screen box.  Note that this window scrolls if you put
  125.  more characters in than fit in the window - the length of the prompt
  126.  is dependant upon which native language you use (so in some cases it
  127.  may not scroll at all).  XRS recognizes "PCRelay:" as an origin line.
  128.  (the current version of XCS at XRS 4.50 release time was "XCS100.ZIP")
  129.  
  130. 2) The file input and output filters have been changed.  Basically, I've
  131.  decided to leave it up to the SysOps and users to decide what is proper
  132.  in mail depending upon their network, etc.  Because it is possible to
  133.  compromise FidoNet security and/or deliberately send naught things (the
  134.  ANSI sequences starting with <ESC> could reprogram your keyboard for
  135.  you), there are still a very few limitations (filters) as follows:
  136.    On the input side, <TAB> characters are expanded to spaces (dependant
  137.  upon the setting of the "Tab x" setting - default is 8), <NULL>, <ESC>
  138.  and <EOF> characters are stripped, and <CR><LF> pairs are translated to
  139.  <CR> only so they display correctly on-screen. (this filter is the one
  140.  used when you "Import" a file either with <ALT_F4> when in the internal
  141.  editor, and in response to the "Insert from another file?" prompt.
  142.    On the output side (writing messages from the internal or external
  143.  editors), <CR> characters are translated back to <CR><LF> pairs so the
  144.  file will print correctly if you wish, <NULL>, <ESC> & <EOF> characters
  145.  are stripped.
  146.    Note that the internal "CopyMailToPkt()" function (for FidoNet export
  147.  to *.PKT file format) converts <CR><LF> pairs back to <CR>, but does
  148.  not strip <LF> unless it is preceeded by <CR>, and also strips <NULL>,
  149.  <ESC>, <EOF> and <DEL> (0xff).  If you use an external mail converting
  150.  packer (such as Rudi Kusters' XRS2REP.EXE .QWK format packer program),
  151.  different rules may apply according to the currently prevailing rules
  152.  and regulations of the other nets.
  153.    Actually, it is physically impossible to enter an <ESC> or <NULL> in
  154.  any message using my internal editor, since <NULL> signals the end of
  155.  the editor buffer, and an <ESC> character would not place in escape in
  156.  the message, but rather pop up the "Save Message?" selection window.
  157.    Before anyone takes off on a snit about eliminating <ESC> (because it
  158.  is "required" for ANSI color sequences), two things: as I noted, those
  159.  same sequences could be used by a malicious person to reprogam your own
  160.  keyboard very easily, so <Enter> produced "Echo Y | Del *.*" or even
  161.  worse, "Echo Y | Format c:" or something like that.  Also, there are
  162.  several different methods including the one already implemented by Mark
  163.  Herring in QMail², for example (which do not require using an <ESC> and
  164.  cannot be used to wreak havoc on other users).  If there are enough
  165.  people that want it, I will consider putting an "ANSI_Art" routine into
  166.  future versions of XRS, although they are truly a waste of bandwidth!
  167.    In doing this, I also found the bug that caused formerly "illegal" (in
  168.  FidoNet) characters to import as the beta 'ß' symbol and also a bug that
  169.  made portions of lines after "illegal" symbols to disappear when you had
  170.  them in quotes, and fixed both.
  171.  
  172. 3) Complete and full-functional "threading" is available.  If you put the
  173.  new "Threading" parameter in your CONFIG.XRS file, the plus and minus keys
  174.  become thread following if (and only if) a thread exists and it is in the
  175.  mailbag, instead of duplicating "Next" and "Back" respectively.  If there
  176.  is a previous or next message in a thread and the message is in the open
  177.  mailbag, the "<" or ">" next to "Thread" in the header will be replaced by
  178.  a flashing "<<" or ">>" and if you have threading turned on the plus and/or
  179.  minus keys are redefined to read the previous and/or next message in the
  180.  thread as applicable (if there is only a back-thread, "+" still reads the
  181.  next message, and vice-versa).  The change is indicated by "bottom-line"
  182.  help screens as the menu-bar is scrolled.  The blinking double chevron
  183.  pointing in either direction indicates whether the threaded message is in
  184.  the mailbag or not - whether the plus and minus keys have their threading
  185.  function turned on is completely independent.  Threading works by creating
  186.  a doubly-linked list from the single "ReferTo" previous message thread
  187.  pointer in each MAIL?IDX.XRS record which is 'cleansed' of messages not in
  188.  the mailbag, cross-links or circular links are removed and then everything
  189.  left is reverse linked to provide forward pointers.  If this information
  190.  is inaccurate or missing, threading will provide poor results at best - if
  191.  any.  Note that some previous versions of XRS had zeroed out the "ReferTo"
  192.  field when saving progress because no valid pointers were found - these
  193.  old mailbags will not thread properly (XRS now saves only valid pointers,
  194.  discarding any to messages outside the range of messages in the mailbag).
  195.  Another thing you should note: Threading _completely_ ignores any of the
  196.  "filters", like "New Only" or "To You" and displays the threaded message.
  197.  Since the "previous" thread link is saved as part of MAILxIDX.XRS, each
  198.  mailbag only has to be 'cleansed' and doubly linked once (this is why the
  199.  total link count = used link count each time thereafter).  <F4> hot-keyed
  200.  configuration changing threading on-the-fly is instantaneous - if you see
  201.  an inactive (non-blinking) thread, and want to follow it, simply turn on
  202.  threading from the <F4> menu and the thread link will become active (and
  203.  you can turn it off similarly, as well - when you toggle that option, any
  204.  onscreen chevrons will either begin to blink indicating they are "hot" or
  205.  quit blinking, indicating they are available but inactive.  Of course, it
  206.  is easiest just to leave threading on all the time and use the <Enter> or
  207.  "<N>ext" and "<B>ack" for normal reading and "+"/"-" for threaded reads.
  208.  Messages which are read following threads and 'backed out of' are marked
  209.  read and not redisplayed later in the mailbag.  (once menubar is built,
  210.  the "help" descriptions will not change if you toggle threading.)  To
  211.  facilitate 'true theading', the plus and minus keys can be locked out
  212.  when there is no thread to follow, allowing easier thread following.
  213.  Put "Thread Only" in CONFIG.XRS to activate this function.  Thread only
  214.  implies "Threading".  The <F4> configuration "Threading" option is a
  215.  'tri-state' button, alternating between "Threading Off", "Threading On"
  216.  and "Thread Only".  For each line in the "<J>ump" list that has active
  217.  back or next thread pointers, chevrons to the left and/or right are shown
  218.  in front of "Re:".  If you use "Page Mode" viewing, and the "N = Next..."
  219.  is displayed in between pages, "+" and "-" skip to the previous and next
  220.  message without regard to the "threading" mode being used.  "<H>ome" is
  221.  added to the menubar if a previous thread is active, so you can return to
  222.  the 'top' of a thread instantly and proceed to read the next topic.
  223.  
  224. 4) Mailbags may have an unlimited number of messages, however you *must*
  225.  have LIM/EMS memory if you want to preload the summary and have mailbags
  226.  with more than 2000 messages!  The number of messages in an area is not
  227.  limited.  (Preloading the summary file for 5000 messages requires 13
  228.  32k blocks of LIM/EMS, for example.)  Using indirection this version
  229.  defines, allocates and loads the tables at run-time, taking less memory
  230.  than previous versions to load (by more than 20k), but expanding the heap
  231.  as is needed to accomodate larger mailbags.  Actually, mailbag size is
  232.  limited only by disk space and available RAM.  You must have enough free
  233.  "low" RAM to load the MAIL?IDX.XRS file plus 16% (see above - XRS now
  234.  build doubly-linked threaded topic lists) - 14 bytes per message in the
  235.  mailbag.  The max is probably somewhere around 30,000 realistically...
  236.  NOTE!! Having more than 1200 messages requires you to either A) turn off
  237.  "Preload Summary", B) use an overlayed version of the program, C) have
  238.  the required amount of LIM/EMS to preload the summary index or D) have a
  239.  386 or 486 machine with memory manager leaving 600k or more free RAM when
  240.  starting XRS.  XRS has no limit on the number of messages in an area,
  241.  however more than 1000 messages per area will create an extremely large
  242.  "<J>ump" list which requires a correspondingly larger amount of free RAM.
  243.  MS/DOS 5.0 with DOS=HIGH or DR/DOS 5 will help considerably!  Using the
  244.  "VidRam" program that comes with QEMM also adds 64k "low RAM" that DOS
  245.  can see.  (but see below - it is possible to "virtualize" jump lists to
  246.  force them to use a fixed amount of memory, "paging" elements in and out
  247.  of the list as you scroll thru it)  With more than 1600 messages, unless
  248.  you turn "Preload Summary" off, you probably need some combination of or
  249.  "all the above".  XRS uses a "Heap Expander" routine to store portions of
  250.  dynamically allocated RAM in LIM/EMS memory if there is any available,
  251.  otherwise the memory from the DOS far heap (lower 640k) is used.  "Preload
  252.  Summary" uses from one to 32 blocks - 64k max each, eliminating all of the
  253.  summary from a mailbag from the far heap (storing it in blocks of LIM/EMS
  254.  instead).  Even if you don't have LIM/EMS memory this version is much more
  255.  efficient with the dynamically allocated RAM due to optimization of the
  256.  heap routines with a 'best fit' algorithm (20 to 30% less memory is
  257.  required to store the summary).  A nice side-effect of this is that if the
  258.  "Preload Summary" is stored in LIM/EMS - that formerly 32K to 160K of RAM
  259.  is not swapped out using the <F10> shell to DOS hotkey.  Also, another
  260.  side-effect: preloading summary takes about half as much time.
  261.  "SET HX=/NOEMM" disables the "Heap Extender" routines from even trying to
  262.  use LIM/EMS memory.  "No EMS" in the CONFIG.XRS file forces "SET HX=/NOEMM"
  263.  also. (you don't have to do both to totally disable LIM/EMS access, but you
  264.  can only disable HX if you want, but using "SET").  After "Preload Summary",
  265.  if any LIM/EMS memory was used, the amount is shown along with "low RAM"
  266.  in the memory allocation usage message.
  267.  
  268. 5) XRS supports up to 1024 conference areas selected from 65535.
  269.  
  270. 6) XRS virtualizes the "<J>ump" list if more than 500 messages would be
  271.  in the list.  Any number of messages can be displayed since I virtually
  272.  page list elements in and out (in 50-message units) as you scroll around
  273.  the list.  Note that this makes the initial "huge" lists pop-up much
  274.  quicker, and the paging does not noticably slow the list scrolling, so
  275.  the net effect is that everything is faster handling the larger lists
  276.  instead of slower.  In order to be most flexible, you can specify the
  277.  threshold for virtualization of the list (which defaults to 500) to any
  278.  number in the range 100 up to 3000.  XRS builds any "<J>ump" list with
  279.  fewer entries normally, but builds a virtual list for larger lists.  If
  280.  you run under DesqView, setting this to a low number will allow you to
  281.  read 5000+ message mailbags in as little as 300k.  If you have plenty of
  282.  free RAM, increasing it may provide better performance on large lists.
  283.  Each time scrolling the virtual list causes paging, XRS will swap out
  284.  up to 20% of the list (under normal circumstances that would be 100
  285.  messages) so having a very small number will give good response and use
  286.  little memory but require more frequent disk accesses, while using a
  287.  large number will eat more free RAM, but provide generally smoother
  288.  operation and less frequent disk accesses.  To set the threshold for
  289.  "<J>ump" list virtualization, use "Virtualize xxxx" in your CONFIG.XRS
  290.  where 'xxxx' can be anything within the range 100 to 3000 - anything
  291.  outside that range will be adjusted.  Of course, if you have "Preload
  292.  Summary" on, disk accesses are not required in either case (since the
  293.  entire list is either in LIM/EMS or "low" memory).  <CTRL_PAGEUP> and
  294.  <CTRL_PAGEDOWN> take you to the current (not virtual) list top element
  295.  and bottom element respectively (you still have to use PAGEUP/PAGEDOWN
  296.  or UP/DOWN arrows to get into any other virtual segment of the list).
  297.  Also, "VirtualJump xxx" allows you to adjust the default number of list
  298.  elements which are deleted from one end of the list and an equivalent
  299.  number appended to the other end of the list.  The default is 50 or
  300.  the number of lines per page, whichever is less.  Adjusting these two
  301.  parameters allows you a full range of virtual list control - under DV
  302.  you could limit "Virtualize 100", "Virtualimit 38" (assuming 25-lines)
  303.  and make it run in minimal (less than 12k) dynamic RAM as opposed to
  304.  the former unlimited amount proportional to the entire list size.  You
  305.  can also minimize virtual "waits" by increasing the "Virtualize xxxx"
  306.  as high as you can if you normally read mailbags larger than 1000 or
  307.  more messages, and adjusting "VirtualJump xxx" can either quicken the
  308.  response (larger size) minimizing waits, but longer waits each time,
  309.  or slow it down somewhat by requiring smaller, more frequent paging.
  310.  The default settings I use are best for 'normal' users, the optimal
  311.  settings for your computer depend upon many things - processor power
  312.  and hard disk access time, mostly.  You may have to adjust these to
  313.  find your "prefered" settings.  Note that the up and down arrows on
  314.  the scroll bars blink if they are 'virtual' links and not physically
  315.  in the current list, but function the same in all cases.  Also note
  316.  that using "PAGEUP or PAGEDOWN" you can jump into a virtual segment
  317.  even though the arrow is not blinking (since jumping a page would put
  318.  you outside the current physical list).  Now that you're all lost, I
  319.  suggest you just try it, it all comes naturally, just like before,
  320.  except you will see "Please Wait" during virtual paging of the list.
  321.  Successive <PAGEUP>, <PAGEDOWN>, or up/down arrows with the mouse will
  322.  continuously page in new elements of the virtual list until you reach
  323.  either end.  I think the number of message when the "To You" filter is
  324.  on (which would require more code to implement) is normally going to
  325.  be low even if you have a very large mailbag, so if the "ToYou" filter
  326.  is on, no virtualization is done (to keep the code-overhead down).  If
  327.  you build a huge mailbag with mostly/only messages "to you", XRS will
  328.  take 10k RAM per 100 messages to display lists of "To You" elements
  329.  (although simply turning off the "To You" filter from the <F4> config
  330.  menu forces XRS to virtualize the list anyway!).  Since virtualizing
  331.  the list requires more frequent access to the SUMMARYx.XRS file (or the
  332.  data preloaded in LIM/EMS or "low" RAM), and very large lists are now
  333.  possible, by default I automatically bisect the list 16 ways and record
  334.  either the offset into SUMMARYx.XRS or the HeapXtender handle and HX
  335.  offsets.  This allows very fast paging of new items into the list.  If
  336.  XRS detects more than 1000 messages, it will increase the number of
  337.  list pointers by 16 every 1000 messages, up to 128 total, so that no new
  338.  insertion point is ever more than 63 messages from the closest pointer
  339.  (unless you have a mailbag with more than 8000 messages!).
  340.  
  341. 7) I no longer use a "COUNTRY=xx"-dependent routine to get a spelled-out
  342.  month for the date string in messages, since depending upon which code
  343.  page you use, and which country code you used, you could get either your
  344.  own (i.e. native language spelled months) or garbage before.  You should
  345.  always get consistent dates in message headers  (and they should always
  346.  be the English "short" three-letter spelling of the month), but all of
  347.  the on-screen clocks should still use the 'local' format.
  348.  
  349. 8) If XRS finds the "$$ACTIVE.XRS" semaphore file at startup (which is
  350.  normally an indication that the program is already running), it will let
  351.  you bypass that check and start anyway by answering "Y" to the "Continue
  352.  Anyway? (y/N)" prompt - the default is "N".
  353.  
  354. 9) If you hit <ESC> when the message reading menubar is displayed, you
  355.  go back to the main menu instead of proceeding to the next message.
  356.  This eliminates the need for the "<E>xit" option, which gives a little
  357.  more room on the menubar for foreign language versions.
  358.  
  359. 10) If the "Read Only New" filter is turned off when you exit, XRS will
  360.  assume you have read all messages and offer to compress and/or delete
  361.  the current mailbag (or leave it alone).  If you compress it, you may
  362.  optionally select a different name for the output file.  You may pick
  363.  the default action for the above using a new CONFIG.XRS parameter
  364.  "EmptyBag x" where 'x' = the hot-key for any of the four menu selections
  365.  (in English they are "<C>ompress Mailbag", "<D>elete Mailbag", "<R>epack
  366.  AND Delete" and "<L>eave it Alone" - so C, D, R & L are valid).  If you
  367.  don't preselect one, the default is "Leave it Alone".  If you use a
  368.  non-English binary FNLS file ("Foreign Native Language Support - it is
  369.  named XRS$ALL.DTA just like the English version shipped with XRS), those
  370.  options will be different, depending upon which four "hot-key" options
  371.  are on your native language's menu.  By default, mailbags which are
  372.  recompressed go to the "InDir xxxxxx" subdirectory (where they started)
  373.  or if none exists, into the current subdirectory.  If you want to use a
  374.  different "holding area" for read mailbags, use "SaveBagPath xxxxxx" where
  375.  'xxxxx' is a subdirectory.  XRS automatically fiddles with the output
  376.  filename if the one it comes up with using "BAG_ID.XRS" and the packer
  377.  already exists, so you do not end up with more than one mailbag inside one
  378.  archive or accidentally overwrite an old one.  The "Packer xxxx" is used,
  379.  and if none is specified, PKZip is used.  Note that mailbags which were
  380.  originally QWK format are stored in .ZXR format.  The routine I used will
  381.  allow you to store over 100 mailbags for each BBS before you have to move
  382.  and/or delete some - be careful!  (this could easily eat up all of your
  383.  available disk space in a hurry...)  If you "Compress" or "Repack/Delete"
  384.  a mailbag that has not been fully read, even if you have a "SaveBagPath
  385.  xxxx" defined in your CONFIG.XRS parameter file, it will go back into the
  386.  "Indir xxxx" path instead.  This way you can still put them away partially
  387.  unread, open a new mailbag and read, then go back to them, while XRS will
  388.  still store completely read mailbags elsewhere (without you having to move
  389.  the file(s) around if you use "SaveBagPath xxxx").  You can force this
  390.  option to be displayed by using "Always".  If there are remaining unread
  391.  messages, a warning banner and a different "Bottom Line Help" is displayed.
  392.  Also, if you have unread messages on exit and the "Compress/Repack&Delete/
  393.  Delete/Leave" menu is displayed, the default is always "Leave" mailbag.
  394.  If the user sets "Emptybag x" to an invalid value, an error message is
  395.  displayed.  XRS will now notice that and chose the "Leave" option as the
  396.  default.  Note that as always, XRS will automatically adjust to a foreign-
  397.  language binary overlay and use the letters which correspond to that native
  398.  language's menu hot-key selections.  If you use a non-English overlay, your
  399.  parameters must specify valid keys for your native language instead!
  400.  
  401. 11) The <F2> screen is now the "Status" screen.  It now contains several
  402.  new bits of information, including NDP (math coprocessor), etc.  Since
  403.  noone knew what "RelativeSpeed" meant (it was based on PC/XT = 10 units),
  404.  I changed it to "RelativePower xx.x" where 'xx.x' is the power relative to
  405.  a 4.77MHz 8088 processor.  The status window no longer displays a random
  406.  string in front of "286?" if it cannot identify your processor.  (every CPU
  407.  that was "out of range" of the normal detection routines has been a 286.)
  408.  XRS 'knows' when QEMM/386 memory manager is in use and displays QEMM
  409.  instead of YES for "VM86" mode in the <F2> status window if it is found.
  410.  
  411. 12) XRS names all the LIM/EMS handles it uses so you can tell how each
  412.  piece is being used (includes overlay cache, HeapXtender and swapping).
  413.  You can see LIM/EMS handles with "Mem/d" (DOS 4.0+) or MFT, etc.  Names
  414.  are "XRSCACHE" for overlayed versions if you have 96k LIM/EMS memory at
  415.  run-time, "XRS$HXxx" where 'xx' = '00'..'31' for LIM/EMS handles used by
  416.  the HX routines, and "XRS$SWAP" for the swapfile for shell to DOS, etc.
  417.  
  418. 13) XRS saves and restores the video mode no matter what it is when you
  419.  start, even if you tell it not to adjust the video mode.  It also resets
  420.  that mode upon return from external program calls, since it is possible
  421.  that they have changed the lines-per-screen size.  The only potential
  422.  screwup is that if you drop to DOS and do something that changes your
  423.  *hardware* font, without changing the video mode, then XRS has no way of
  424.  knowing you have changed lines-per-screen (therefore, if you do that,
  425.  the only way you can 'fix' it is to return to DOS and reload the correct
  426.  hardware font).  This should eliminate certain combinations of external
  427.  programs which are not "screen-smart" from messing up the display (it
  428.  usually shows up as random "junk" characters (with random attributes)
  429.  in the bottom few lines of the screen.
  430.  
  431. 14) You can have XRS automatically sort the <J>ump lists by subject with
  432.  a new CONFIG.XRS parameter "Sort Subjects".  This takes slightly longer
  433.  than displaying the list unsorted, of course.  Used in conjunction with
  434.  the new threading support, this allows <J>ump lists to be sorted by
  435.  thread or 'topic' as well.  This can also be turned on and off from the
  436.  <F4> hot-keyed configuration window, allowing you to only sort the list
  437.  when needed.  Several hot-keys were changed (in the English overlay,
  438.  anyway) to allow using the first character of each message (as hot-key).
  439.  
  440. 15) XRS does "relative jumps" on the BATxMAIL.XRS file rather than seeks
  441.  from the beginning of the file.  I compute the difference from current
  442.  file pointer to where I want to go and do a relative jump (seek).  This
  443.  speeds displays of headers during <J>ump by a factor of two, and even
  444.  more dramatically speeds things up if you have the new "Sort Subjects"
  445.  parameter in effect.  This also makes threaded reads and reads inside
  446.  areas or "to you" filters much faster, since each time the file pointer
  447.  is moved the average distance moved is smaller (typically much smaller).
  448.  
  449. 16) "Hide Search" is only effective for "AutoTag/Search" modes.  You can
  450.  easily take your pick during manual searches.  "N)onstop" in the <F8>
  451.  search/mark/tag routine is now "H)ide", which does the same thing as
  452.  before, except output isn't shown on the screen.  This allows you to
  453.  hide non-automatic searches if you wish, as well.
  454.  
  455. 17) "Page View" mode colors work exactly as the list view mode, and it is
  456.  79 characters wide with no blank space down the left side, allowing one
  457.  more character to show (which formerly got whacked on rare occasions).
  458.  The scrollbar arrows work differently - mousing them once moves one line
  459.  but holding down the button repeats at a rapid rate, the 'arrows' are
  460.  'pointers' instead, to remind you it works differently.  The action of
  461.  the "Up", "Down", "PgUp" and "PgDown" keys and mouse up/down arrows are
  462.  similar to Vern Buerg's "LIST.COM" program.  You can vary the scrolling
  463.  rate when using the mouse (held down) to anywhere from 1 to 20 lines per
  464.  second (the default is 6/sec. which works well) by using a CONFIG.XRS
  465.  parameter "SkipRate xx" where 'xx' = 1 to 20.  ("No Mark" in CONFIG.XRS
  466.  file is obsolete due to this change!)
  467.  
  468. 18) You can have a file of up to 256 random tag lines which are used if
  469.  there is no conference-specific origin line specified in "XRS.ORG" or
  470.  the "(bagid).ORG" file.  (and assuming there is no XORIGIN.XRS 'lock')
  471.  The format is simply lines of up to 60 bytes in a text file.  If the
  472.  text is too long to fit, it is truncated.  The filename "RANDOM.XRS"
  473.  is searched for on the PATH if it is not found in the current directory.
  474.  ('bagid' above = the mailbag name)
  475.  
  476. 19) XRS no longer deletes "ACCESSx.XRS" when deleting old mailbags, so
  477.  you can still send 'private' messages in appropriate conferences.
  478.  
  479. 20) The <F6> summary window only shows the information preceeding the
  480.  list of messages selected instead of the whole file (up to 65500 bytes).
  481.  This allows the window to pop-up in much less RAM, and much faster if
  482.  you have a large mailbag.  In order to see the entire list of messages,
  483.  use <J>ump during "All Read Chronological".  I also find the 'marker' in
  484.  SUMMARYx.XRS only once at the beginning of the program and thereafter
  485.  seek directly to that location for <J>ump lists when preload summary is
  486.  not being used (which makes jumping without preload quite a bit faster).
  487.  
  488. 21) Overlayed versions now come in two pieces - the "stub" RESP_*.EXE
  489.  plus a matching RESP_*.OVL file.  The resulting two separate files are
  490.  20k smaller than the old combined into one *.EXE file method, since
  491.  the very nature of RTLink+ allows the "stub" to be PKLite'd even though
  492.  it is part of an overlayed program.  This also opens up the possibility
  493.  of putting only the *.OVL file onto a RAM disk, or maybe placing the two
  494.  files on separate floppy disks, etc.  The *.OVL file must be in either
  495.  the same directory you run XRS from or available on your PATH (under DOS
  496.  3.0+ it could be in the same sub-directory as the corresponding *.EXE).
  497.  Because it is be possible to accidentally find the wrong corresponding
  498.  RESP_*.OVL file, the RESP_*.EXE stub does a check to insure that the two
  499.  are synchronized, and refuses to operate if it finds a "bad" overlay.
  500.  It will display the exact name of the *.OVL file in the error message
  501.  (you should delete the older *.OVL file and make sure XRS can find the
  502.  new one, or use a newer *.EXE file depending upon which is older).  The
  503.  overlayed versions require DOS 3.0 or higher for this to function.  One
  504.  minor side-effect is you cannot rename the RESP_OVL or RESP_RTL files.
  505.  
  506. 22) If you take out some "automatch" items from your CONFIG.XRS while you
  507.  have a mailbag open, XRS 'remembers' that each message which was marked
  508.  before is marked, but it no longer can find and color-cascade the items.
  509.  XRS no longer 'skips out' forgetting to update the time in this case.
  510.  
  511. 23) You can no longer pop-up the <F4> hot-keyed configuration window once
  512.  you have entered the "exit procedure" (on the way out of the program).
  513.  
  514. 24) The lookahead during "Optimize View" should be more accurate (it used
  515.  to sometimes miscount how XRS would display a message, resulting in not
  516.  putting a message in scroll mode or possibly cutting off the last line).
  517.  
  518. 25) The "Quotometer" doesn't get confused it you exit from a message with
  519.  the cursor at the end of the text buffer after cutting out quoted text.
  520.  
  521. 26) If an empty "RESPONSE.XRS" files exists at exit, it is deleted.
  522.  
  523. 27) XRS will look for both "XRSCOLOR.BIN", "XRS.ORG" and "XRS.KEY" on the
  524.  PATH if they are not found in the current sub-directory.
  525.  
  526. 28) Spurious bum addresses are not picked up - only "good" looking ones.
  527.  (this is for netmail replies - XRS always tries to find the address in
  528.  the message you are replying to, and occasionally made poor choices)
  529.  
  530. 29) XRS uses up to four initials when quoting a message.  (this also
  531.  means XRS needs to look forward 7 characters instead of 5 to tell if
  532.  each line has already been quoted)
  533.  
  534. 30) Things inside <> near the beginning of a line no longer throw XRS
  535.  off. (making it think it is a previously quoted line when it is not)
  536.  
  537. 31) If "No Alt Keys" is specified, <SHIFT_F5> simulates a <DEL> key.
  538.  This was on <SHIFT_F3> (by mistake) before.  <SHIFT_F3> is the pop up
  539.  window with registration information whether you have "No Alt Keys"
  540.  or not (registered users do not normally see this screen at all).
  541.  
  542. 32) Since .QWK style conferences usually end up with shorter braglines,
  543.  the maximum size was increased to 60 characters (although usually only
  544.  55 or so will fit).
  545.  
  546. 33) I include separate Windows 3.0 <tm> .PIF files, one - RESPONSE.PIF is
  547.  for non-386 mode use, and RESPONSE.386 (which should be renamed *.PIF)
  548.  is for 386 "Enhanced" mode.  Both allow 100k XMS memory to be used, so
  549.  if you are using an overlayed version, you can run with "cached" overlay
  550.  segments while using less "low" memory.  I also include XR.DVP, a sample
  551.  Desqview setup file - note that both of these *MUST* be inspected to see
  552.  if they need adjusting for your environment (including the RESP*.EXE you
  553.  use, if it is not RESPONSE.EXE!).
  554.  
  555. 34) If you hit <ESC> for any of the "To/Subject/Address/Crash/Private"
  556.  prompts you return to the next message if you are viewing messages or
  557.  to the menu if you are creating a new message in "Create/Delete/Edit".
  558.  
  559. 35) The mouse cursor doesn't get disabled "early" in certain situations.
  560.  
  561. 36) XRS no longer depends on the messages numbers being in ascending
  562.  sequence throughout the entire mailbag, so <J>ump works correctly if
  563.  you have a mailbag from a BBS type which allows duplicate numbers in
  564.  different conferences or if the messages are not sorted sequentially.
  565.  
  566. 37) Changing (setting and resetting) the "Private" bit with <F3> on
  567.  echomail areas (which allow them) works correctly.
  568.  
  569. 38) Adjusting colors (via the <ALT_F7> hot-key) is no longer fatal on
  570.  8088 or 8086 CPU chips.  I had some "'286" code hooked in there...
  571.  
  572. 39) XRS uses "LHA.EXE" instead of "LHARC.EXE".  If you use .LZH files and
  573.  don't have a copy of the new LHA (formerly "LHARC"), you should get it!
  574.  The new version gives better compression and better performance.  (the
  575.  current version is LHA210.EXE)
  576.  
  577. 40) The overlay structure was hand-optimized again to further balance the
  578.  size and mimimize intra-overlay calls.  This version still requires only
  579.  96k of LIM/EMS (or XMS 2.0 extended) RAM to run at 100% the speed of the
  580.  non-overlayed version (while using 80k less "low" memory).  The overlay
  581.  caching works with less (or none), but swapping to disk will occur more
  582.  often (increasing as the LIM/EMS or XMS available memory size decreases).
  583.  This only affects RESP_OVL.EXE and RESP_RTL.EXE (the overlayed versions).
  584.  
  585. 41) Matching of conference names is exact for *.ORG files.  (before, if a
  586.  conference name matched the first portion of a tag line, it was used even
  587.  if the whole name in the tag line was longer.
  588.  
  589. 42) Internal changes to XRS require update to XCS version 0.47 since any
  590.  earlier versions don't know how to handle mailbags with > 200 areas or
  591.  more than 995 messages.  Because of this, XRS 4.11 refuses to work with
  592.  a mailbag created by any earlier versions.
  593.  
  594. 43) Handling of "out-of-memory" during display of the "<J>ump" list is
  595.  improved.  Memory is correctly deallocated if you do not have enough RAM
  596.  to display it and things should continue normally.
  597.  
  598. 44) Exporting of "TAGged" messages is repaired.
  599.  
  600. 45) XRS 'knows' about User Requests and automatically forces messages
  601.  addressed to "XRS" into the LOCAL (Group #0) area marked as private.
  602.  For information about User Requests (automatic file downloads and the
  603.  ability to turn message areas on and off).  These are currently only
  604.  supported by XRSDoor 1.44 or later. (RemoteAccess/Quick/SuperBBS door)
  605.  Note that messages addressed to XRS have 'locked' attributes and can
  606.  only be edited or deleted (the header cannot be modified).  See the
  607.  separate file "REQUESTS.DOC" for detailed information on UserRequests!
  608.  
  609. 46) Mailbags with non-standard characters in the last position of the
  610.  file extension are found (i.e. "EBAYXCH1.ZX0" or "EBAYXCH1.QW0", etc).
  611.  
  612. 47) "Force New" forces the "AutoMatch" and/or "AutoTag" parameters to be
  613.  run but does not pop-up the summary/index window.  (mistakenly listed
  614.  as "Force Auto" in the previous version's documentation - my fault!)
  615.  
  616. 48) Exporting a message in "Quoted" format no longer sets the Reply flag.
  617.  
  618. 49) "VerifyInsert()" displays itself on the same line as the other prompts
  619.  during message header entry (i.e. subject, to name, etc).
  620.  
  621. and last, but not least:
  622.  
  623. 50) Message display is faster in this version than 4.10! (more assembler)
  624.