home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / clipper / clbbs115.arj / CLBBS115.TXT
Encoding:
Text File  |  1991-12-03  |  62.3 KB  |  1,346 lines

  1.  
  2.  
  3.          ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  4.        ░░▒▒▒░▐▐▐▐▒░▐▐▐▐▒▒▒▒░▐▐▐▐▒▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒▒░▐▐▐▐▒▒▒
  5.        ░░▒▒░▐▐░░▐▐▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐░░▐▐▒░▐▐░░▐▐▒░▐▐░░▐▐░▐▐░░▐▐▒▒
  6.        ░░▒░▐▐▒▒░░▒▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐▒░▐▐▒░▐▐▒░▐▐▒░▐▐▒░▐▐░▐▐▐▒▒▒▒▒
  7.        ░░▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐▐▐▐▒▒░▐▐▐▐▐▒▒░▐▐▐▐▐▒▒░▐▐▐▒▒▒▒
  8.        ░░▒░▐▐▒▒▒▒▒▒░▐▐▒▒░▐▒▒░▐▐▒▒▒▒░▐▐░░▒▒▒░▐▐░░▐▐▒░▐▐░░▐▐▒▒▒░▐▐▐▒▒
  9.        ░░▒░░▐▐▒▒▐▐▒░▐▐▒░▐▐▒▒░▐▐▒▒▒▒░▐▐▒▒▒▒▒░▐▐▒░▐▐▒░▐▐▒░▐▐░▐▐░░▐▐▒▒
  10.        ░░▒▒░░▐▐▐▐▒░▐▐▐▐▐▐▐▒░▐▐▐▐▒▒░▐▐▐▐▒▒▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒▒░▐▐▐▐▒▒▒
  11.        ░░▒▒▒░░░░▒▒░░░░░░░▒▒░░░░▒▒▒░░░░▒▒▒▒░░░░░░▒▒░░░░░░▒▒▒░░░░▒▒▒▒
  12.        ░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  13.          ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  14.  
  15.    Volume 1, Number 15                                    3 December 1991
  16.  
  17.                   (c) Daniel Doçekal, All Rights Reserved
  18.  
  19.       The BBS Clipper magazine, published WEEKLY, every FRIDAY
  20.  
  21.       Some of the material used comes from scanning CLIPPER echoes
  22.       which are carried in various BBS throughout the World.
  23.       These Echoes are very often the source of the most often asked
  24.       Questions and Answers about Clipper.
  25.  
  26.       Other material, which is fully signed or abbreviated is the
  27.       copyright of the appropriate persons.
  28.  
  29.       The publisher is not responsible for other authors submissions....
  30.       Published material is not necessarily the opinion of the publisher.
  31.  
  32.       Redaction:
  33.          Publisher...................................Daniel Docekal
  34.          Chief editor ...............................Daniel Docekal
  35.          Language editor .................................Dave Wall
  36.  
  37.  
  38.  
  39.                                Table of Contents
  40.  
  41.  1. ARTICLES  ..............................................................  1
  42.     5.0 FOCUS: Linking tips for saving time - PLL's  .......................  1
  43.     4DOS 4.0, final version what MS DOS 5.0 should be  .....................  4
  44.  2. SOFTWARE  ..............................................................  8
  45.     QEMM 6.0 and troubles coming with STEALTH options  .....................  8
  46.  3. Q&A  ................................................................... 15
  47.     Q&A: Hard drive is slower under Desqview that without  ................. 15
  48.     Q&A: Exception 13 with Lantastic and Desqiew/QEMM  ..................... 15
  49.     Q&A: Desqview is hanging when used PrtScr  ............................. 15
  50.     Q&A: Getting additional RAM for Desqview  .............................. 15
  51.     Q&A: Desqview is slowing or stopping when used Communication program  .. 16
  52.  4. ANOMALIES  ............................................................. 17
  53.     ANOMALIES reports and commets  ......................................... 17
  54.     REPLACE and BEGIN SEQUENCE anomaly  .................................... 17
  55.     SELECT misunderstanding rather than bug  ............................... 18
  56.     TBDEMO.PRG file bug  ................................................... 19
  57.  5. CLIPPER NET  ........................................................... 20
  58.     Index of described files in Clipper BBS Magazine  ...................... 20
  59.     ClipperNet - PAT2-4.ARJ  ............................................... 21
  60.  CLIPBBS 1-15       Table of Contents (...)         3 Dec 1991
  61.  
  62.  
  63.     ClipperNet - SNAP50.ARJ  ............................................... 21
  64.     ClipperNet - SHOWANSI.ARJ  ............................................. 22
  65.     ClipperNet - ZIP2BAR.ARJ  .............................................. 22
  66.     ClipperNet - CLIPFPCX.ARJ  ............................................. 22
  67.     ClipperNet - SEGUE.ARJ  ................................................ 23
  68.  6. CLIPBBS  ............................................................... 24
  69.     CLIPBBS distribution  .................................................. 24
  70.     CLIPBBS, how to write an article!!!  ................................... 26
  71.  
  72.                                    - - - - -
  73.  CLIPBBS 1-15                   Page 1                    3 Dec 1991
  74.  
  75.  
  76.  ==============================================================================
  77.                                     ARTICLES
  78.  ==============================================================================
  79.  
  80.  
  81.              5.0 FOCUS: Linking tips for saving time - PLL's
  82.                             by Roger Donnay
  83.  
  84.  
  85.  You know, I really enjoy writing articles about linking.  Only a year
  86.  ago, if I had written this article, it probably wouldn't received as much
  87.  as a glance, but now with the new popularity of third-party linkers, the
  88.  Clipper community has found a new area of interest.  Sure, linking technology
  89.  may not be as exciting as OOPS or code-blocks, but may I suggest that if
  90.  you aren't keeping up with the latest in linking techniques, you may find
  91.  yourself wasting valuable time or valuable memory.
  92.  
  93.  This article will show you how you can use Pre-Linked Libraries to save
  94.  time linking with Clipper-5.0.
  95.  
  96.  
  97.  WHAT ARE PRE-LINKED LIBRARIES?
  98.  
  99.  Prelink-libraries (now commonly referred to as PLL's) were first
  100.  introduced to the Clipper community in 1988 in the generic version of
  101.  RTLINK which was a linking system for all languages.
  102.  
  103.  Pre-linked libraries are .PLL files which are built from object files and
  104.  libraries into and .EXEcutable format.   The only step remaining is the
  105.  "fixing-up" of any references made by the code in the pre-linked library
  106.  to those in the rest of the application.  Unlike an .EXEcutable program,
  107.  a pre-linked library cannot be run from dos, but instead is used in
  108.  conjunction with another .EXEcutable program.
  109.  
  110.  RTLINK developed their .PLL (prelinked-library) system with the intent of
  111.  saving disk-space for applications which use common routines.  For example,
  112.  every Summer 87 Clipper application links in about 150k of code from the
  113.  CLIPPER.LIB library into the .EXE program.  If you have 10 Clipper .EXE
  114.  programs, then this code redundancy will use up 1.5megs of disk space.
  115.  RTLINK allows you to build a .PLL file which pre-links this "common" code.
  116.  The .PLL file is then referenced when you create the .EXE program with all
  117.  the "unique" code.  When you run your .EXE program the pre-linked .PLL file
  118.  will be "fixed-up" to the rest of your application code each time you
  119.  startup your program.
  120.  
  121.  The only disadvantage I have found with .PLL files is that they cannot
  122.  contain static reloadable overlays, so PLLs will not allow the overlaying
  123.  of the Clipper library modules.  See my article entitled "5.0 FOCUS:
  124.  Memory Management, Overlay Reloading #1" for more information about this
  125.  RTLINK feature.
  126.  
  127.  
  128.  USING PLL's TO SPEED-UP LINKING
  129.  
  130.  You may be wondering how I could write about "Speed-Linking" and not
  131.  mention "Incremental Linking" - the technology that was developed
  132.  CLIPBBS 1-15                   Page 2                    3 Dec 1991
  133.  
  134.  
  135.  specifically for this purpose.  Well, the incremental linking feature
  136.  of RTLINK is definately NOT one of it's strong points.  Warplink, Blinker
  137.  and dCLIP are superior in this area, but that discussion is for another
  138.  article.  The objective of this article is to focus on how to be more
  139.  productive with RTLINK - the linker that comes with Clipper-5.0.
  140.  
  141.  The Clipper-5.0 distribution includes a BASE50.LNK script file to create a
  142.  BASE50.PLL file which contains about 277k of code from the Clipper libraries
  143.  which is common to most Clipper applications.  When creating applications
  144.  with RTLINK/CLIPPER-5.0 the command /PLL:BASE50 can be inserted into your
  145.  .LNK response file, thereby telling RTLINK to use the BASE50.PLL file with
  146.  with .EXE file containing the custom application code.   You must be sure
  147.  to distribute the BASE50.PLL file with your application.
  148.  
  149.  How do PLL's speed up linking?  Well, once the base code has been
  150.  "pre-linked" into BASE50.PLL, then only the "application" code needs to be
  151.  linked when it is changed.  For example, linking a "hello world" test
  152.  program will take about 10 seconds on a 386 machine as compared to
  153.  30 seconds on the same machine without BASE50.PLL.  Since "hello world" is
  154.  not a practical Clipper application, I thought that a small program which
  155.  uses a database, index, and a few GETs would be a better method of
  156.  demonstrating this feature.   A regular "full-link" of my test program
  157.  took exactly 60 seconds without using a BASE50.PLL.  The same test program
  158.  linked with BASE50.PLL took only 20 seconds, thereby saving 40 seconds
  159.  each time I made changes to the program - a two-thirds savings.
  160.  
  161.  
  162.  USING FULLBASE.PLL FOR EVEN FASTER LINKING
  163.  
  164.  I consider my time very valuable, so I am always looking for new ways to
  165.  save time.  I discovered during linking that BASE50.PLL doesn't include
  166.  all the code in the Clipper libraries, so while linking some test code
  167.  the libraries had to be accessed to link in code which was not in the
  168.  base PLL, for example - the supporting code for TBROWSE when using the
  169.  DBEDIT() function.  This took extra unnecessary time, so I decided to
  170.  create a base PLL ( I named it FULLBASE.PLL ) which includes every bit of
  171.  code in all 4 Clipper 5.0 libraries.  Now, when linking test applications
  172.  using FULLBASE.PLL, the libraries are not used at all during linking,
  173.  thereby saving an additional 10 seconds.  The same application test code
  174.  that linked in 60 seconds with NO PLL and 20 seconds with BASE50.PLL,
  175.  now links in only 10 seconds with FULLBASE.PLL.
  176.  
  177.  
  178.  Here is the FULLBASE.LNK script file for creating FULLBASE.PLL:
  179.  
  180.  # FULLBASE.LNK
  181.  
  182.  prelink
  183.  output FULLBASE
  184.  verbose
  185.  
  186.  LIB \CLIPPER5\LIB\extend
  187.  LIB \CLIPPER5\LIB\clipper
  188.  LIB \CLIPPER5\LIB\terminal
  189.  LIB \CLIPPER5\LIB\dbfntx
  190.  
  191.  CLIPBBS 1-15                   Page 3                    3 Dec 1991
  192.  
  193.  
  194.  refer _main
  195.  refer _VOPS, _VMACRO, _VDB, _VDBF, _VDBFNTX
  196.  refer _VTERM, _VPICT, _VGETSYS
  197.  refer _VDBG
  198.  
  199.  refer __MSAVE,__MRELEASE,__SETCENTU,MEMORY,FIELDBLOCK,__INPUT
  200.  refer __SETFUNCT,__ATPROMPT,__DOJOINLI,__DBCONTIN,__DBCREATE
  201.  refer __DBCOPY,__DBJOIN,__DBSORT,__DBTOTAL,__DBUPDATE,__FLEDIT
  202.  refer __DBLIST,_SDFINIT,_VSDF,__DBAPPSDF,_DLMINIT,_VDELIM,__DBAPPDEL
  203.  refer __DIR,__COPYFILE,__TYPEFILE,__FRMLOAD,__REPORTFO,__LBLLOAD
  204.  refer __LABELFOR
  205.  
  206.  refer  achoice,acopy,adel,adir,afields,afill,ains
  207.  refer  ascan,asort,bin2i,bin2l,bin2w
  208.  refer  curdir,dbedit,dbfilter,descend,diskspace,doserror
  209.  refer  dbrelation,dbrselect,readinsert,setcancel,readexit
  210.  refer  errorlevel,fclose,fcreate,ferror,fopen,fread,freadstr
  211.  refer  fseek,fwrite,gete,hardcr,header,i2bin,isalpha
  212.  refer  indexext,indexord,islower,isupper,isprinter
  213.  refer  l2bin,lupdate,memoedit,memoline,memoread,memotran
  214.  refer  memowrit,mlcount,mlpos,neterr,nextkey,left
  215.  refer  rat,savescreen,scroll,recsize
  216.  refer  setcolor,setprc,soundex,strtran,stuff,tone
  217.  
  218.  refer  aclone,aeval,array,asize,dbcreate,dbeval
  219.  refer  dbstruct,directory,errorblock,ferase
  220.  refer  frename,isdigit,maxcol,maxrow,padl,padc,padr,qout,qqout
  221.  refer  readmodal,setcursor,setkey,beginpaint,endpaint
  222.  refer  getnew,tbrowsenew,tbrowsedb,browse,setmode,setblink,fieldput
  223.  refer  fieldget,dbf,getenv,version,__get,__wait
  224.  
  225.  ------------------------------------------------------------------------------
  226.  CLIPBBS 1-15                   Page 4                    3 Dec 1991
  227.  
  228.  
  229.                 4DOS 4.0, final version what MS DOS 5.0 should be
  230.  
  231.  4DOS 4.0 released just few days ago is something what is exactly missed in MS
  232.  DOS 5.0 version. This final replacement of COMMAND.COM is something
  233.  recommended for EVERYBODY at EVERY place where is used something unclever
  234.  called COMMAND.COM.
  235.  
  236.  First, for them who doesn't know what 4DOS is will follow short introduction
  237.  to name of 4DOS.
  238.  
  239.  4DOS is absolutely unbelievable replacement of COMMAND.COM. In previous
  240.  version it was offering great way of using computer memory with saving
  241.  several KBs with comparation to command.com, extended BATCH language with
  242.  possibilities to write complete programs including processing of
  243.  environmental variables as strings and also numeric values, command line
  244.  editor with complete history, command aliases, pushing keys into keyboard
  245.  buffer, integrated help, complete compatibility with standard DOS versions
  246.  including all external commands which are coming with different DOS versions,
  247.  extend file descriptions included in DIR command of MS DOS, extension into CD
  248.  command allowing to maintain Directory Stack (that's real great), multiple
  249.  command per one line. Extended wilcards, global command for working through
  250.  directories, selection command to apply any program on several files.
  251.  
  252.  For them who know NDOS replacement of COMMAND.COM coming from Symantec with
  253.  Norton Utilities is needed to say that NDOS is just another version of
  254.  previous 4DOS.....
  255.  
  256.  It's hard to continue because it is so much things. Actually, i had not idea
  257.  to write article about old 4DOS, but wanted to write about NEWS in new
  258.  release of 4DOS. But my final recommendation which i will present NOW:
  259.  
  260.     ╔════════════════════════════════════════════════════════════╗
  261.     ║TAKE IMMEDIATELY 4DOS and IF NOTHING ELSE, ONLY TRY IT. IT'S║
  262.     ║SOMETHING INCREDIBLE AND REALLY NEEDED. IT'S SAVING MEMORY, ║
  263.     ║TIME, DISK, PROGRAMS, PATIENCE...                           ║
  264.     ╚════════════════════════════════════════════════════════════╝
  265.  
  266.  OK, finally, for all of you who know old version, or are just interested
  267.  in what 4DOS 4.0 has as special features, see.
  268.  
  269.    Old way handling of replace of COMMAND.COM with 2different files, one
  270.    loader and second main replacement (machine dependent for 8088 and
  271.    others) is now replaced with just one 4DOS.COM file.
  272.  
  273.    Very good idea of setting startup options for 4DOS.COM in special
  274.    text file called 4DOS.INI is creating good example how to setup
  275.    options of COMMAND.COM replacement. Easy, readable.
  276.  
  277.    Elimination of KEYSTACK.SYS and change into KSTACK.COM was very good
  278.    step because it's saving problems caused by malfunction of .SYS version
  279.    because of loading another keyboard drivers AFTER needed .SYS driver. Now
  280.    can be KSTACK loaded as LAST in many keyboard interrupt hooking programs
  281.    and can work properly.
  282.  
  283.    As DOS 5.0 command.com can 4DOS load it's resident portions into UMB
  284.    blocks with compatibility to DOS 5.0 UMB created and ALSO (what is not
  285.  CLIPBBS 1-15                   Page 5                    3 Dec 1991
  286.  
  287.  
  288.    true for DOS 5.0) working without ANY problems with QRAM (QEMM is working
  289.    of course for both the same).
  290.  
  291.    Secondary shell has also special section of settings in 4DOS.INI file
  292.    which is allowing to use different 'command.com' settings for second
  293.    copies of 4DOS.COM.
  294.  
  295.    BBS operation is supported by nice /F switch for ignoring Fatal errors in
  296.    DOS whose normally reguiring user intervence for "Abort, Retry, Ignoer".
  297.  
  298.    Improvement of searching speed of PATH.
  299.  
  300.    Memory requirement for SECOND copy of shell is ONLY 1.7K, primary shell
  301.    requires just 3KB of your memory (compare it with COMMAND.COM).
  302.  
  303.    DIR command can be colorized with using of special COLORDIR command. It
  304.    can be nice for higlihting of important or interesting files.
  305.  
  306.    Extended (again) wild card using. Not only just *a*.* (all files with "a"
  307.    character inside of name), but just  *.txt;*.doc (all *.txt and all *.doc
  308.    files), also new is [ac-e]*.txt (all .txt files which are starting with
  309.    "a", "c", "d" or "e".
  310.  
  311.    Starting of shell is first invoking 4START file, ending of copy of shell
  312.    is invoking 4EXIT batch file. It's allowing to do some tasks for this
  313.    job.
  314.  
  315.    Executable extensions (4DOS is allowing to tell, that let say extension
  316.    .WP file when written on keyboard [as DOCUMENT.WP <ENTER>] should be used
  317.    as WP file.WP) are now allowing to use wild cards (as
  318.    .WP?=C:\WP51\WP.EXE)
  319.  
  320.    Command grouping known from OS/2 is noe also part of 4DOS.
  321.  
  322.    Microsoft's command processor based message processing scheme is
  323.    supported in 4DOS,therefore all "Extended error xxx" messages are
  324.    expanded into real error messages.
  325.  
  326.    Command line history is now allowing to be viewed in popup WINDOW.
  327.  
  328.    New feature called "automatic directory change" is elimination need
  329.    of CD command (CD \DANIEL can be just used as DANIEL\)
  330.  
  331.    New HELP program and contents are supporting fact of existence of DOS
  332.    5.0, help is command sensitive.
  333.  
  334.    Many new variable functions about memory, disk and MENUING, decimal
  335.    places extension into numeric variables (YES, DOS which is directly
  336.    supporting numeric with decimal places).
  337.  
  338.    Improvement of SPEED of executing of .BAT files
  339.  
  340.    ATTRIB command has new switch allowing execute this command in
  341.    subdirectories of current directory also.
  342.  
  343.    COPY, MOVE and DEL command are expanded for executing in subdirectories,
  344.  CLIPBBS 1-15                   Page 6                    3 Dec 1991
  345.  
  346.  
  347.    do nothing (for testing), acting on Hidden or Read Only files.
  348.  
  349.    Support of \\server\directory descriptions in DIR commands. DIR also
  350.    supports DOS 5.0 switches and adding some new.
  351.  
  352.    Access of MASTER environment when changing environmental variables
  353.    (including powerfull EDITOR of environmental variables).
  354.  
  355.    Direct support of DOS 5.0 load capabilities with new LH and LOADHIGH
  356.    commands.
  357.  
  358.    New REBOOT command for cold or warm boot with optional verification.
  359.  
  360.    Three available timers for use as stop watch or measurement.
  361.  
  362.    Displaying of true name of file called TRUENAME is accesing expanding
  363.    file name to full form service in DOS.
  364.  
  365.    Possibility to install new internal DOS command via new programming
  366.    interface.
  367.  
  368.    Improved ANSI detection is reducing some older problems, NDOS.INI
  369.    file parameter is allowing to force ON that ANSI is installed if is not
  370.    correctly recognized.
  371.  
  372.    4DOS is more compatible with DR-DOS, Novell Netware compatibility
  373.    is now improved and not causing any problems with swapping.
  374.  
  375.    Windows 3.x is detected and 4DOS is configured according them.
  376.  
  377.    4DOS.COM is possible to COMPRESS with PKLITE or any other .EXE/.COM
  378.    compressor and it will work...
  379.  
  380.  That was a list of direct news. It's quite a lot, isn't?
  381.  
  382.  For some better knowing of 4DOS now i will do scan through supplied manuel
  383.  (900KBs of ASCII text) for some interesting things and will pickup them out.
  384.  
  385.      When 4DOS is used with loading of everything HIGH, then
  386.      final use of conventional memory is just only 256 bytes....
  387.  
  388.      .BTM files which are new version of .BAT are 5 to 10 times faster than
  389.      usual .BAT files in any DOS version.
  390.  
  391.      4DOS includes over 80 commands, many of them are unique to 4DOS and
  392.      are not in any existing DOS. All of them are included in ONLINE help
  393.      with set of very good examples about use.
  394.  
  395.      Complete using of EMS, XMS memory for swapping and loading high or
  396.      left from common memory parts of 4DOS including environment, resident
  397.      portion of DOS, overlays. This is saving great parts of memory. All
  398.      possible also as DOS swapping.
  399.  
  400.      Direct command function keys enhacement to access command queue,
  401.      file names (like writing FIL and pressing appropriate function key
  402.      and get immediate first file matching needs, second press will get
  403.  CLIPBBS 1-15                   Page 7                    3 Dec 1991
  404.  
  405.  
  406.      next file from directory matching needs).
  407.  
  408.      Definable keys with assigned complete commands or 'batch' commands.
  409.  
  410.      Internal timer is allowing to watch execution time of commands or
  411.      complete programs.
  412.  
  413.      4DOS log file is allowing to log ALL commands executed by 4DOS with
  414.      command for writing user mesages into log.
  415.  
  416.  (somewhere next, continuing)...
  417.  
  418.  ------------------------------------------------------------------------------
  419.  CLIPBBS 1-15                   Page 8                    3 Dec 1991
  420.  
  421.  
  422.  ==============================================================================
  423.                                     SOFTWARE
  424.  ==============================================================================
  425.  
  426.  
  427.               QEMM 6.0 and troubles coming with STEALTH options
  428.  
  429.       This document discusses how to diagnose and cure problems
  430.  occasioned by the use of the Stealth feature of QEMM-386, version 6.
  431.  All users should review the readq.me file that comes with QEMM-386,
  432.  version 6 for additional information.
  433.  
  434.  FIRST STEP
  435.       The first step is to ascertain whether Stealth is involved with the
  436.  problem.  Remove the Stealth parameter (ST:M or ST:F) from the QEMM-386
  437.  line of the config.sys.  Reboot the computer and try to duplicate the
  438.  problem.  If the problem still happens then Stealth is not causing the
  439.  problem and you must address the problem by the means explained in the
  440.  troubleshooting section of the QEMM-386 manual.
  441.  
  442.  SECTION 1
  443.  
  444.      SECOND STEP
  445.           If Stealth is involved in the problem restore the Stealth
  446.      parameter (ST:M) and add XST=F000.  Reboot the computer.  If this
  447.      works, go to the third step;  if this does not work, go to Section
  448.      Two. On this step the QEMM-386 line of the config.sys should look
  449.      something like:
  450.  
  451.            device=c:\qemm\qemm386.sys ram st:m xst=f000
  452.  
  453.      THIRD STEP
  454.           If XST=F000 solves your problem replace it with X=F000-FFFF,
  455.      reboot and try again.  The QEMM-386 line of the config.sys should
  456.      look something like:
  457.  
  458.            device=c:\qemm\qemm386.sys ram st:m x=f000-ffff
  459.  
  460.           If this works, add the parameter FSTC to the qemm line, thusly:
  461.  
  462.            device=c:\qemm\qemm386.sys ram st:m x=f000-ffff fstc
  463.  
  464.      and reboot.  If this works continue;  if this does not work (and
  465.      FSTC may not work in all circumstances) then remove the FSTC
  466.      parameter and reboot with the previous QEMM-386 line.  See the
  467.      section about FSTC below for an explanation of FSTC.
  468.           In either case, enter Manifest and look at the QEMM-
  469.      386/Analysis screen.  Look at the last line:  It should look
  470.      something like this:
  471.  
  472.                      Fn00 IIII IIII IIII IIOO
  473.  
  474.      The portions of the address space with the O in them are being
  475.      accessed directly.  Some program or piece of hardware is trying to
  476.      read the contents of the ROM here directly, not merely access them
  477.      through interrupts.  This portion of the address space must be
  478.  CLIPBBS 1-15                   Page 9                    3 Dec 1991
  479.  
  480.  
  481.      allowed to be accessed directly.  This is done by excluding QEMM-386
  482.      from mapping this area.  In this case the target region is FE00-
  483.      FFFF.  The appropriate Exclude is X=FE00-FEFF. The correct QEMM-
  484.      386.SYS line of the config.sys is:
  485.  
  486.           device=c:\qemm\qemm386.sys ram st:m x=fe00-ffff
  487.  
  488.      This Exclude allows Stealth to do its job and costs you only 8K of
  489.      high address space.
  490.  
  491.      FOURTH STEP
  492.           If XST=F000 solves your problem while X=F000-FFFF does not then
  493.      you should try using ST:F instead of ST:M.  You may get more high
  494.      ram with ST:F than with ST:M XST=F000.
  495.  
  496.  SECTION TWO
  497.  
  498.       This section is only for users with video ROM.  Hercules-compatible
  499.  monochrome and CGA systems do not have video ROM and thus this section
  500.  does not apply.  Some machines have their video ROM elsewhere, usually
  501.  E000-E7FF.  Such users should use E000 (or wherever their video ROM
  502.  begins) instead of C000.
  503.  
  504.      FIFTH STEP
  505.           If XST=F000 does not solve your problem then try XST=C000. The
  506.      QEMM-386 line of the config.sys should look like:
  507.  
  508.           device=c:\qemm\qemm386.sys ram st:m xst=c000
  509.  
  510.      If XST=C000 does not work, go to Section Three.  If XST=C000 does
  511.      work, go to the next step.
  512.  
  513.      SIXTH STEP
  514.           If XST=C000 solves the problem then try placing the page frame
  515.      at C000.  Do this only if the entire C segment is available to put
  516.      the page frame in.  The QEMM-386 line of the config.sys should look
  517.      like:
  518.  
  519.           device=c:\qemm\qemm386.sys ram st:m fr=c000
  520.  
  521.      If this works then this may be acceptable solution.  All the address
  522.      space in which high ram can be created is being used in this
  523.      configuration.  If this step does not work or, if you cannot put the
  524.      page frame at C000, go to the seventh step.
  525.  
  526.      SEVENTH STEP
  527.           If XST=C000 solves the problem but you do not want to (or
  528.      cannot) put the page frame at C000 then try the parameter
  529.      FASTINT10:N, where "N" tells QEMM-386 to allow the video ROM's own
  530.      code to be used.  By default QEMM-386 replaces some of the video
  531.      ROM's code with its own video code.  This parameter tells QEMM to
  532.      use the ROM's code.  The QEMM-386 line of the config.sys should look
  533.      like:
  534.  
  535.           device=c:\qemm\qemm386.sys ram st:m fastint10:n
  536.  
  537.  CLIPBBS 1-15                   Page 10                   3 Dec 1991
  538.  
  539.  
  540.      If this works then all ROMs are being Stealthed.  You may choose to
  541.      try the eighth step as an alternative though.  If this does not
  542.      work, go to the next step.  There is a further discussion of
  543.      FASTINT10 below.
  544.  
  545.      EIGHTH STEP
  546.           If XST=C000 solves the problem but FR=C000 or FASTINT10:N does
  547.      not (or you cannot put the page frame at C000 or do not want to use
  548.      FASTINT10:N) then replace XST=C000 with X=C000-C7FF.  The QEMM-386
  549.      line of the config.sys should look like:
  550.  
  551.           device=c:\qemm\qemm386.sys ram st:m x=c000-c7ff
  552.  
  553.      If this works, add the parameter FSTC to the QEMM-386 line, thusly:
  554.  
  555.           device=c:\qemm\qemm386.sys ram st:m x=c000-c7ff fstc
  556.  
  557.      and reboot.  If this works continue;  if this does not work (and
  558.      FSTC may not work in all circumstances) then remove the FSTC
  559.      parameter and reboot with the previous QEMM-386 line.  See the
  560.      section about FSTC below for an explanation.
  561.           In either case, enter Manifest, go to the QEMM-386/Analysis
  562.      screen, and look at the Cn00 line.  It should look something like
  563.      this:
  564.  
  565.                         Cn00 OIII IIII OOOO OOOO
  566.  
  567.      This indicates that the first 4K region of the C segment, in the
  568.      video ROM, is being accessed directly.  This portion of the address
  569.      space must be Excluded when QEMM-386 is Stealthing.  The appropriate
  570.      QEMM-386 line in the config.sys is:
  571.  
  572.           device=c:\qemm\qemm386.sys ram st:m x=c000-c0ff
  573.  
  574.  SECTION THREE
  575.  
  576.       NINTH STEP
  577.            On some machines there are other ROMs that can be Stealthed;
  578.      often these are disk ROMs.  The same procedure:  trying XST=??00,
  579.      then replacing it with the appropriate Exclude of the old kind
  580.      (X=??00-!!FF) to see if the problem is related to Stealthing or just
  581.      not having some portion of the ROM's address space directly
  582.      accessible, can be used.  The trick of making the page frame begin
  583.      at the beginning of the disk ROM may also work here as well.  If
  584.      XST=??00 solves your problem, try replacing it with FR=??00,
  585.      presuming that there is a 64K portion of the address space free
  586.      beginning at ??00 and that ?? is a multiple of 16.  If some portion
  587.      of the address space must be Excluded for Stealth to work you should
  588.      check Analysis with the FSTC and X=??00-!!FF parameters on the QEMM
  589.      line.
  590.  
  591.      TENTH STEP
  592.            Use XST=F000, XST=C000, XST=??00, and simultaneously for all
  593.      ROMs being Stealthed.  Then replace the XSTs one by one with the
  594.      appropriate regular Exclude (X=F000-FFFF, X=C000-C7FF, X=??00-
  595.      !!FF...), look at the QEMM-386/Analysis screen of Manifest and
  596.  CLIPBBS 1-15                   Page 11                   3 Dec 1991
  597.  
  598.  
  599.      discover what portions of the address space need to be directly
  600.      available.
  601.  
  602.      ELEVENTH STEP
  603.           If ST:M does not work try ST:F instead.  If ST:F does not work
  604.      you should try ST:F XST=C000 (and XST=??00) for other Stealthed ROMs
  605.      other than the one(s) overlain by the page frame.
  606.  
  607.      TWELFTH STEP
  608.           If none of these steps solve the problem please pin down
  609.      exactly what program is failing (and at what point), and file a
  610.      report with Quarterdeck.
  611.  
  612.  INTERESTING QUESTIONS
  613.  
  614.  WHAT IS FASTINT10:N?
  615.       QEMM-386, when Stealthing a video ROM, replaces some of the video
  616.  ROM's code with replacement code written by Quarterdeck.  This
  617.  replacement code is suitable for most video cards.  The FASTINT10:N
  618.  (which may be abbreviated F10:N) parameter tells QEMM-386 not to use its
  619.  own replacement code but the literal code of the video ROM.  This in no
  620.  way limits the amount of high RAM Stealth creates and may be acceptable
  621.  solution for those users who need it.  It should only be necessary on
  622.  unusual video cards.  If placing the page frame at the beginning of the
  623.  video card's ROM works or if a small regular Exclude also solves the
  624.  problem you may choose to use this solution instead.
  625.  
  626.  WHAT IS FSTC?
  627.       The purpose of the FSTC parameter is to make the Analysis procedure
  628.  accurate.  Some system and video ROMs may not function properly with the
  629.  FSTC parameter.  If this is the case on your system you will have to
  630.  perform the Analysis procedure without the FSTC parameter. However, you
  631.  should be aware in this case that some of the Exclude statements that
  632.  Analysis prompts you to use may not be necessary.  You can try reducing
  633.  these Excludes on a trial-and-error basis if you wish.
  634.       When QEMM-386 Stealths a ROM certain tables may have to be stored
  635.  by QEMM-386 in its own data area.  This uses a few kilobytes of high
  636.  RAM.  When a ROM is being Stealthed but the address in which the ROM
  637.  resides is Excluded (as with X=C000-C7FF) then QEMM-386 cleverly figures
  638.  out that it does not need to make copies of these tables in its own data
  639.  area so it saves this memory by not making copies of the tables.  This
  640.  means that when you do Exclude the portion(s) of the ROM where these
  641.  tables are stored the ROM will be accessed directly though it would not
  642.  be if it were not Excluded.  This will cause Analysis to report that a
  643.  portion of the address space is OK when Excluded even though it would
  644.  not be accessed directly were it not Excluded.
  645.       FSTC (FORCESTEALTHTABLECOPY) forces QEMM-386 to make copies of
  646.  these tables so that inappropriate Excludes are not recommended for the
  647.  above reason.  FSTC should only be used when you are testing a portion
  648.  of a ROMs address space for direct access by Excluding the whole ROM.
  649.  It is not an appropriate parameter for a final configuration.
  650.  
  651.  WHAT ARE ADVANCED DISK FEATURES?
  652.       The BIOS has a set of function calls intended for use by
  653.  multitasking programs.  These are Int 15, functions 90 and 91.  The
  654.  system ROM or disk ROM may issue the Int 15, fn 90 call while it is
  655.  CLIPBBS 1-15                   Page 12                   3 Dec 1991
  656.  
  657.  
  658.  waiting for the disk controller to read or write a sector, allowing
  659.  other programs to execute during this wait.  When the sector is
  660.  ready, the disk interrupt handler issues an Int 15, Fn 91, signaling
  661.  the multitasking program that the disk information is ready to be
  662.  processed by the system or disk ROM.  Some disk caches hook this call to
  663.  allow your system to go ahead and execute your current program while the
  664.  system or disk ROM is waiting for its requested sector.  Whereas these
  665.  caches preserve the stack and register state for the BIOS and the
  666.  application when doing this pseudo-multitasking, they do not preserve
  667.  the mapping of the page frame.  Therefore, if the BIOS uses the page
  668.  frame itself (as does Stealth), this could generate conflicts and system
  669.  failures.  Since no known disk cache does the proper page frame
  670.  preservation, QEMM automatically suppresses INT 15, function 90 calls
  671.  from the BIOS, effectively disabling advanced disk features.  Caches
  672.  that save and restore the page frame when using advanced disk features
  673.  can use a programming interface to QEMM-386 to reenable advanced disk
  674.  features.
  675.       You may defeat QEMM-386's defeating of this feature with the
  676.  VIRTUALHDIRQ:N (VHI:N) parameter on the QEMM-386 line of the config.sys.
  677.  If your cache has these "Advanced Features" and does not save and
  678.  restore the page frame you will crash or corrupt data on the cached
  679.  drive(s).
  680.  
  681.  WHAT IF I LOAD A DRIVER THAT USES ROM BEFORE QEMM-386?
  682.       If you want to load a device driver before QEMM-386 and it uses a
  683.  ROM then QEMM-386 can still Stealth this ROM if you load the driver
  684.  HOOKROM.SYS before this driver.  Here is an example:
  685.  
  686.       device=c:\qemm\hookrom.sys
  687.       device=c:\????????.sys
  688.       device=c:\qemm\qemm386.sys ram st:m
  689.  
  690.  WHY DOES MY SYSTEM SETUP NO LONGER COME UP WITH ST:M?
  691.       On machines with a built-in system setup program in the BIOS ROM
  692.  that can be popped up at any time Stealth may make this feature
  693.  inaccessible after you have booted.  This is because the setup program
  694.  accesses the ROM directly.  In order for it to work after QEMM-386 has
  695.  been loaded you must Exclude the portion of the address space where it
  696.  is stored.  On most machines this is in F000-F7FF or thereabouts.  You
  697.  may decide that it is better to use the system setup only on boot and be
  698.  able to use this portion of the address space for high RAM when you are
  699.  running.  This is the way many systems are these days and you must
  700.  reboot to implement the changes anyway so you may consider this a fair
  701.  trade.
  702.       Machines with a setup program that loads as a regular program may
  703.  not present this problem.
  704.  
  705.  WHAT IS GOING ON?
  706.       With ST:M Stealth is moving out of the address space all ROMs
  707.  accessed by means of interrupts (you can see what interrupts are being
  708.  handled by what ROMs in the First Meg/Interrupts screen of Manifest when
  709.  you are not Stealthing.)  When these interrupts are asserted, QEMM-386
  710.  puts the ROM code that services the interrupt into the page frame. With
  711.  ST:F Stealth is allowing the page frame to share the address space used
  712.  by the ROM, making the underlying ROM code available in the page frame
  713.  when an interrupt pointing into the ROM is asserted.
  714.  CLIPBBS 1-15                   Page 13                   3 Dec 1991
  715.  
  716.  
  717.  HOW CAN IT FAIL?
  718.        The Stealth technology relies on the practice of using the code in
  719.  ROMs only by means of interrupts.  With the exceptions listed below when
  720.  the code in a ROM is accessed directly the program or hardware using
  721.  this code (or information) will find high RAM there instead with ST:M
  722.  and will malfunction.  Although this is not common it does happen.
  723.  Sometimes programs look for identification information:  For video cards
  724.  this usually happens in the bottom 4K; for system BIOSes this usually
  725.  happens in FE00-FEFF.  Most users for whom Stealth fails can recover
  726.  almost all the high RAM Stealth can create with small Excludes of this
  727.  kind.
  728.       Exceptions:
  729.  
  730.      1) QEMM-386 does not map High RAM into the last 64 bytes of the
  731.      system BIOS ROM because they are commonly accessed directly.
  732.      Accesses here do not cause Stealth a problem.
  733.  
  734.      2)  When a ROM accesses itself directly then it should work IF the page
  735.      frame begins at this ROM's beginning address.  There are some video cards
  736.      and disk controllers that fail because the video ROM (disk ROM) does not
  737.      tolerate relocation.  The ready cure for this symptom is to put the page
  738.      frame at C000 (or whatever is the beginning of the appropriate video or
  739.      disk ROM) so that when an interrupt that points into the video ROM (disk
  740.      ROM) is asserted, and QEMM restores the contents of the video ROM (disk
  741.      ROM) into the page frame, the ROM code can access itself where it expects
  742.      to find itself; this is the purpose of step 6 of this method.
  743.  
  744.      3) Direct accesses of one ROM to another work with ST:F.
  745.  
  746.  Disk caches that write directly to and read directly from the page frame
  747.  cause Stealth to fail unless the DISKBUFFRAME=?? (DBF=??) is used.
  748.  
  749.  Stealth relies on there being interrupts pointing into a ROM in order to
  750.  make it a target for Stealthing.  If there is a ROM in the address space
  751.  that QEMM-386 cannot detect as being used then it will not be Stealthed.
  752.  This may happen for some disk ROMs and for devices that use the ROM only
  753.  upon initialization.  If there is a ROM without an interrupt pointing
  754.  into it it is a suspect for being unused.  You should use the Analysis
  755.  feature of QEMM-386 to discover if this ROM is being used at all.  If it
  756.  is not then the address space it occupies may be reclaimed with an
  757.  INCLUDE.
  758.  
  759.  SUMMARY
  760.       The Stealth technology has been exhaustively tested but the wide
  761.  variety of software and hardware in the PC world has surprises in it for
  762.  every program.  The actual Stealthing of interrupts is very successful.
  763.  The most common failure is due to programs (or other ROMs) trying to
  764.  access a portion of the ROM directly, rather than by means of interrupt.
  765.   For this to work the target region of this access must be in the
  766.  address space at the time of access. This can be achieved by an
  767.  appropriate exclude of the old kind, usually at a cost of only 4K or 8K
  768.  of the additional high RAM Stealth is creating; see steps 3 through 11
  769.  for a procedure to figure these Excludes out.  If the video ROM or
  770.  adaptor ROM is the target ROM of a problem then placing the page frame
  771.  over the video ROM or adaptor ROM may work; see step 6.  The "Advanced
  772.  disk features" that some disk caches use are incompatible with Stealth.
  773.  CLIPBBS 1-15                   Page 14                   3 Dec 1991
  774.  
  775.  
  776.  QEMM-386 disables these by default whenever possible if Stealth is used.
  777.  Some disk caches write directly to the page frame. Such caches should be
  778.  told to use extended memory or the DISKBUFFRAME=?? (DBF=??) should be
  779.  used with QEMM-386; see step 2.  If you have a problem intractable by
  780.  any of these means Quarterdeck would like to hear about it.
  781.  
  782.  This technical note may be copied and distributed freely as long as it
  783.  is distributed in its entirety and it is not distributed for profit.
  784.          Copyright (C) 1991 by Quarterdeck Office Systems
  785.  
  786.  ------------------------------------------------------------------------------
  787.  CLIPBBS 1-15                   Page 15                   3 Dec 1991
  788.  
  789.  
  790.  ==============================================================================
  791.                                       Q&A
  792.  ==============================================================================
  793.  
  794.  
  795.  PROBLEM:   Hard-drive transfer rate much slower within DesqView.
  796.  
  797.  SYMPTOMS:  Transfer rates for hard disk drives are much slower when using
  798.             DesqView than when running without DesqView.  Benchmarks may show
  799.             as much as a 6:1 difference.
  800.  
  801.  SOLUTION:  The solution to this problem can usually be found in DesqView
  802.             Advanced Setup.  If you are not running on a network, set DOS
  803.             BUFFER for EMS to "0".  This should increase your transfer rate
  804.             substantially.  If this does not work, try to increase the number
  805.             until you notice an improvement.
  806.  
  807.  ------------------------------------------------------------------------------
  808.  
  809.  
  810.  PROBLEM:   Exception 13 errors when using DesqView and LANtastic.
  811.  
  812.  SYMPTOMS:  Exception 12 and Exception 13 error messages occur when running
  813.             DesqView under LANtastic.  You may also get a string space corrupt
  814.             error message.
  815.  
  816.  SOLUTION:  Check the setting of DOS Buffers for EMS in DesqView Advanced
  817.             Setup.  This must NOT be set to 0 since you are running on a
  818.             network.  The default is 2.
  819.  
  820.  ------------------------------------------------------------------------------
  821.  
  822.  
  823.  PROBLEM:   When I do a print screen in DesqView 2.26, my computer hangs.
  824.  
  825.  SYMPTOMS:  Pressing the print screen key while using DesqView 2.26, part of
  826.             the screen will print and then the computer hangs up.  Even CTRL-
  827.             ALT-DEL will not reset the machine.
  828.  
  829.  SOLUTION:  DesqView 2.26 uses a different method to do a printscreen.  There
  830.             is a patch available to change back to the old way of doing it.
  831.             Patch your program and the problem will go away.
  832.  
  833.             NOTE 1:  It was not necessary to patch DesqView 2.31 on my system.
  834.                      Perhaps Quarterdeck returned to the old way of handling a
  835.                      printscreen.
  836.  
  837.  ------------------------------------------------------------------------------
  838.  
  839.  
  840.  PROBLEM:   I can't seem to get enough high ram to load all the things I want
  841.             to load high.
  842.  
  843.  SYMPTOMS:  Insufficient high ram available to load applications.
  844.  
  845.  SOLUTION:  If you have a color system (EGA/VGA) and never use monochrome, use
  846.  CLIPBBS 1-15                   Page 16                   3 Dec 1991
  847.  
  848.  
  849.             the I=B000-B7FF switch on QEMM to include the monochrome video
  850.             area.  This will gain you 32K of high ram.
  851.  
  852.             NOTE 1:  If you have a monochrome system and never use color, you
  853.                      may use the I=B800-BFFF switch on QEMM to include the
  854.                      color video area.  This too will gain you 32K of high ram.
  855.  
  856.             NOTE 2:  Newer versions of QEMM are better at automatically
  857.                      including these unused video areas.
  858.  
  859.  ------------------------------------------------------------------------------
  860.  
  861.  
  862.  PROBLEM:   Other DesqView windows operations grind to a halt when using a
  863.             communications program in the foreground.
  864.  
  865.  SYMPTOMS:  Severe performance degradation when using a communications program
  866.             in another window.
  867.  
  868.  SOLUTION:  Use Tame on your communications program to make it release the
  869.             clock-ticks it doesn't need.  It made about 400 cps difference on
  870.             my system.
  871.  
  872.             NOTE 1:  Tame 2.30 has its defaults set differently than 2.20.
  873.                      This means that you may have to fine tune it to work
  874.                      correctly.
  875.  
  876.  ------------------------------------------------------------------------------
  877.  CLIPBBS 1-15                   Page 17                   3 Dec 1991
  878.  
  879.  
  880.  ==============================================================================
  881.                                    ANOMALIES
  882.  ==============================================================================
  883.  
  884.  
  885.                       ANOMALIES and their comments
  886.  
  887.  This part of Clipper BBS Magazine is dedicated to all discovered 
  888.  anomalies and comments about them in Clipper products. Because 
  889.  Nantucket is still unable to give own bug and anomalies reports (as 
  890.  actually did in past with Summer 87 version) is very handy to have 
  891.  results of many investigations done on many user places. I'm also
  892.  doing my own investigatings, because i'm always very good when someting 
  893.  has hidden problems. Everything what i buy will first show all problems 
  894.  and then all normal things. This amazing part of my live is sometime 
  895.  making me crazy, but for testing of programs it's great <grin>.
  896.  
  897.  Daniel
  898.  
  899.  
  900.  
  901.  ------------------------------------------------------------------------------
  902.  
  903.  
  904.                      REPLACE and BEGIN SEQUENCE anomaly
  905.  
  906.  It's hard to decide WHAT is going wrong in case of coincidence of
  907.  using BEGIN SEQUENCE for trapping errors of replacing Field values in
  908.  database. What's the problem?
  909.  
  910.  Try to set up BEGIN SEQUENCE trapper of error when NOT LOCKED record
  911.  is used for replacing any field in this record. Sample is here:
  912.  (originally submitted by someone in Fidonet Clipper echo)
  913.  
  914.      DoError()
  915.  
  916.      Function Doerror
  917.          local errobj
  918.          ErrorBlock( {|e| MyError(e)} )  // or Break(e) if you like
  919.          use test shared                 // test1 is Char 10 long
  920.          BEGIN SEQUENCE
  921.              // This line causes odd error behaviour as described
  922.              TEST->test1 := 'changeme'   // replace in unlocked record, eg 38
  923.              ? 'This line is then executed as if the replace worked!'
  924.              ? 'However, this line is not. '
  925.              // Control proceeds to the RECOVER clause
  926.              // BUT with NO error object passed!
  927.  
  928.          RECOVER USING errobj
  929.              ? 'Errobj type is "'+valtype(errobj)+'"'  // "U"
  930.              if valtype(errobj) = 'O'
  931.                  ? 'Recovered from ',errobj:description
  932.                  ?
  933.              else
  934.                  ? "How did we get here without an error object?"
  935.                  ?
  936.  CLIPBBS 1-15                   Page 18                   3 Dec 1991
  937.  
  938.  
  939.              endif
  940.  
  941.          END SEQUENCE
  942.          ? "Execution proceeds normally"
  943.          ? "And finally returns"
  944.      return (NIL)
  945.  
  946.      static func MyError(e)
  947.          break e
  948.      return (e)
  949.  
  950.  Have to say, that i was trying MANY changes to see if something is not going
  951.  wrong. But it's just wrong in Clipper. In case that replacement of field
  952.  in TEST is changed for example to line "? 10/0", then correctly is trapped
  953.  error "Division by zero" without any problems.
  954.  
  955.  What is main problem?
  956.      1)  MyError() is called with correct set of variable e
  957.          to correct information
  958.      2)  Break (e) is executed, but _NOT_ into RECOVER statement
  959.          it's continuing in line AFTER replace statement (:=)
  960.      3)  ONE line after is executed and _THEN_ is execution
  961.          going to RECOVER USING
  962.      4)  BUT (another anomaly) errobj which has to be set to correct
  963.          value (equivalent to _e_ from point 1] ) is UNDEFINED at ALL
  964.  
  965.  What to say for end? Thank you Nantucket for _GOOD_ beta testing...
  966.  
  967.  Cheers
  968.  Daniel
  969.  
  970.  ------------------------------------------------------------------------------
  971.  
  972.  
  973.                      SELECT misunderstanding rather than bug
  974.  
  975.  Problem:
  976.  
  977.      USE TEST NEW
  978.      ?SELECT('TEST')         && returns 1, expected 1
  979.      ?SELECT('ABC')          && retunrs 0, expected 0
  980.      ?SELECT('F:ABC')        && returns 6, expected 0
  981.  
  982.  Answer:
  983.  
  984.      Well, it's mostly misunderstanding between way how something should
  985.      work. NANTUCKET as usual is leaving something not done and latest
  986.      SELEC() is returning 6 because of "A"=1 "B"=2 "C"=3 "D"=4 "E"=5 and
  987.      "F"=6. (Aliases coming from dBASE times).
  988.  
  989.      SELECT() has not in any case parameters as FILE DESCRIPTION, therefore
  990.      case of 'F:ABC' is wrong at all when looking to valid argument, but and
  991.      but, NAN can expect things like this and test correctly everything <GRIN>.
  992.  
  993.  Daniel
  994.  
  995.  ------------------------------------------------------------------------------
  996.  CLIPBBS 1-15                   Page 19                   3 Dec 1991
  997.  
  998.  
  999.                                  TBDEMO.PRG file bug
  1000.  
  1001.  There is a bug in the 'tbdemo.prg' file that comes with Clipper 5.01 which
  1002.  affect operations that involve appending new records. I discovered the bug
  1003.  when I tried to redefine the K_INS (insert) key to go to the bottom
  1004.  of the file and append a new record. To fix the bug, replace all instances
  1005.  of '(b)' with '(browse)' in the code fragment below:
  1006.  
  1007.      --------------START of NANTUCKET TBDEMO.PRG----------------
  1008.      #define TURN_ON_APPEND_MODE(b)      (b:cargo := .T.)
  1009.      #define TURN_OFF_APPEND_MODE(b)     (b:cargo := .F.)
  1010.      #define IS_APPEND_MODE(b)           (b:cargo)
  1011.      -----------------------END---------------------------------
  1012.  
  1013.  ------------------------------------------------------------------------------
  1014.  CLIPBBS 1-15                   Page 20                   3 Dec 1991
  1015.  
  1016.  
  1017.  ==============================================================================
  1018.                                   CLIPPER NET
  1019.  ==============================================================================
  1020.  
  1021.  
  1022.  
  1023.  Following is COMPLETE list of all published file descriptions in Clipper
  1024.  BBS magazine in previous numbers. Purpose of this index list is to allow
  1025.  anybody find needed file descriptions in growing number of described files.
  1026.  Short description after name will give first possible close image about
  1027.  file. Number enclosed in "[]" will mean number of Clipper BBS magazine.
  1028.  
  1029.  ┌─────────────┬────┬────────────────────────────────────────────────┬──────┐
  1030.  │FileName     │Src │Description                                     │Where │
  1031.  ├─────────────┼────┼────────────────────────────────────────────────┼──────┤
  1032.  │ACCESS.ARJ   │Cln │Source of speed testing program                 │[1-06]│
  1033.  │ACH2TB.ARJ   │Cln │Convert ACHOICE to TBROWSE                      │[1-05]│
  1034.  │ACHOO2.ARJ   │Cln │Replacement of ACHOICE with GET possibilites    │[1-06]│
  1035.  │ADHOC302.ARJ │Cln │Summer 87 inteligent report program             │[1-04]│
  1036.  │ASCPOS.ARJ   │Cln │replacement of ASC(substr(cString,nPosition,1)) │[1-11]│
  1037.  │CALC14.ARJ   │Cln │PoPup Calculator                                │[1-08]│
  1038.  │CL5103.ARJ   │Cln │Report of 5.01 anomaly number 3                 │[1-04]│
  1039.  │CL5REP6.ARJ  │Cln │5.01 replacement of REPORT command              │[1-04]│
  1040.  │CLIP110.ARJ  │Cln │Clipper Documentor program                      │[1-05]│
  1041.  │CLIPLINK.ARJ │Cbs │Complete text of R.Donnay about linkers         │[1-04]│
  1042.  │CLIPSQL.ARJ  │Cln │Demo of complete SQL library for CLipper        │[1-05]│
  1043.  │CLIPWARN.AJ  │Cln │Semaphore for convert WARNING: into ERRORLEVEL  │[1-11]│
  1044.  │CLPFON.ARJ   │Cln │Set of fonts for EXPAND.LIB from author         │[1-03]│
  1045.  │COND.ARJ     │Cln │Builder of conditional indexes like SUBNTX      │[1-03]│
  1046.  │DBSCN2.ARJ   │Cln │Screen designer generator                       │[1-05]│
  1047.  │DIAL.CLN     │Cln │Dialer with using of FOPEN()                    │[1-07]│
  1048.  │DOC111.ARJ   │Cln │Documentor, newer version                       │[1-08]│
  1049.  │ENDADD.ARJ   │Cln │replacement of incrementing last char of string │[1-11]│
  1050.  │GETKEY.ARJ   │Cln │Input oriented library, wordprocessing          │[1-12]│
  1051.  │GSR151.ARJ   │Cln │Global Search and replace for programmers       │[1-07]│
  1052.  │HGLASS.ZIP   │Cln │Hour glass for indication of index progression  │[1-04]│
  1053.  │INDXSL.ARJ   │Cln │User Fields selection builder for index generate│[1-03]│
  1054.  │IOBASYS9.ARJ │Cln │Demo of S87 library and calling Clipper from C  │[1-03]│
  1055.  │IS.ARJ       │Cln │Several c sources of ISxxxx functions           │[1-11]│
  1056.  │JG2.ARJ      │Cln │Jumping between GET statements in READ          │[1-08]│
  1057.  │KF_LOKUP.ARJ │Cln │Set of program for database relations           │[1-07]│
  1058.  │LUTLIB.ARJ   │Cln │Another Clipper library                         │[1-08]│
  1059.  │MK30.ARJ     │Cln │Mouse library demo version                      │[1-03]│
  1060.  │MOVEGETS.ARJ │Cln │GETSYS change for moving between gets via VALID │[1-03]│
  1061.  │NFDESC2.ARJ  │Cln │NanForum library description list               │[1-06]│
  1062.  │NFLIB2.ARJ   │Cln │NanForum library main file                      │[1-06]│
  1063.  │NFSRC2.ARJ   │Cln │NanForum library Source files                   │[1-06]│
  1064.  │NOTATION.ARJ │Cln │Complete text of article about hungarian notat. │[1-04]│
  1065.  │OCLIP.ARJ    │Cln │Object extension, real (not #define/command)    │[1-12]│
  1066.  │OOPSCL5.ARJ  │Cln │Another version of pseudo objects               │[1-07]│
  1067.  │PACKUP.ARJ   │Cln │ASM source of PACK/UNPACK replacement SCRSAVE.. │[1-04]│
  1068.  │PARTIDX3.ARJ │Cln │Partial indexing                                │[1-12]│
  1069.  │PAT1.ARJ     │Cln │CIX NanForum Libraryy PATCH                     │[1-07]│
  1070.  │POPUPCAL.ARJ │Cln │Popup calender                                  │[1-05]│
  1071.  │POWER10.ARJ  │Cln │French library                                  │[1-07]│
  1072.  │PRINTSUP.AJR │Cln │Low level BIOS routines for printing            │[1-11]│
  1073.  CLIPBBS 1-15                   Page 21                   3 Dec 1991
  1074.  
  1075.  
  1076.  │QS20F.ARJ    │Cln │Screen designer, demo, looks very good          │[1-11]│
  1077.  │READPW.ARJ   │Cln │GETSYS change for password invisible reader     │[1-03]│
  1078.  │SCANCODE.ARJ │Cln │Database with scan codes                        │[1-07]│
  1079.  │SCRSAVE.ARJ  │Cln │Screen AntiBurning utility (inactivity snake)   │[1-05]│
  1080.  │SHELP50A.ARJ │Cln │SuperHelp for Clipper                           │[1-07]│
  1081.  │SNAP497.ARJ  │Cln │Beta version of SNAP, partially compatible to 5 │[1-12]│
  1082.  │SOUND.ARJ    │Cln │Multiple TONE() used as one SOUND function      │[1-06]│
  1083.  │STATUS.ARJ   │Cln │Timer interrupt hooked status indicator         │[1-12]│
  1084.  │SYMBOL.ARJ   │Cln │Dumper of symbol tables of Summer87 .EXE        │[1-03]│
  1085.  │TBUNIQUE.ARJ │Cln │Browsing unique without unique index            │[1-12]│
  1086.  │TBWHL4.ARJ   │Cln │WHILE browsing using TBROWSE, well commented    │[1-06]│
  1087.  │TICKER.ARJ   │Cln │Real Time Clock, interrupt driven on screen     │[1-12]│
  1088.  │VSIX711.ARJ  │Cln │Vernon Six Clipper utilities and library        │[1-05]│
  1089.  │VSIX800.ARJ  │Cln │Vernon's library, lot of functions              │[1-12]│
  1090.  │WIPEV11.EXE  │Cln │VERY good screen manipulation library           │[1-11]│
  1091.  └─────────────┴────┴────────────────────────────────────────────────┴──────┘
  1092.  
  1093.  Src can be:
  1094.      Cln     File is accesible on ClipperNet
  1095.      Cbs     File is accesible in HQ BBS of CLipper BBS Magazine
  1096.  
  1097.  
  1098.  ------------------------------------------------------------------------------
  1099.  
  1100.  
  1101.                             ClipperNet - PAT2-4.ARJ
  1102.  
  1103.  File Name:      PAT2-4.ARJ
  1104.  Other Names:
  1105.  
  1106.  File Size:      6,432 bytes
  1107.  File Contents:
  1108.                  PEGS.PRG           8910
  1109.                  PEGS.OBJ           4604
  1110.                  PAT4.DOC           1217
  1111.  
  1112.  FT_PEGS() function fix for not calling err_msg() with too long message.
  1113.  
  1114.  ------------------------------------------------------------------------------
  1115.  
  1116.  
  1117.                             ClipperNet - SNAP50.ARJ
  1118.  
  1119.  File Name:      SNAP50.ARJ
  1120.  Other Names:
  1121.  
  1122.  File Size:      276,876 bytes
  1123.  File Contents:
  1124.                  SNAP.HLP          56578         ARTFUL.KEY         4049
  1125.                  SNAP.MSG          28774         BREEZE.KEY         1127
  1126.                  SNAP.OVR         301326         CLIPPER.KEY        1427
  1127.                  SNAPPRT.SNP        1900         CLIPPER5.KEY       1233
  1128.                  STRALEY.KEY        6409         CLIPTOOL.KEY       5305
  1129.                  SWASYNC.KEY        1565         CLIRMA.KEY         1999
  1130.                  VENDOR.DOC         1954         DB2WORDS.SNP       1039
  1131.                  BLINKER.KEY        3782         DB3WORDS.SNP       6543
  1132.  CLIPBBS 1-15                   Page 22                   3 Dec 1991
  1133.  
  1134.  
  1135.                  CFTS102.KEY        4343         DB4WORDS.SNP       4639
  1136.                  FLEXFILE.KEY       4270         DGE.KEY            4159
  1137.                  ESCAPE.KEY         3915         PERSONAL.KEY         49
  1138.                  FOXPRO.KEY         2253         PROCLIP.KEY        6136
  1139.                  FUNCKY.KEY         8025         QSILVER.KEY        3075
  1140.                  GETIT.KEY          3756         RETTIG.KEY         4258
  1141.                  GRUMP.KEY          3954         SMARTMEM.KEY       1151
  1142.                  NETLIB.KEY         5240         SNAP.DOC         179622
  1143.                                                  SNAP.EXE         107360
  1144.  
  1145.  Another version of SNAP. Snap is great documentor program for dBASE
  1146.  compatible languages. It works like a charm for dBASE, FOXBase, Clipper
  1147.  Summer. This is first version which is more compatible with Clipper 5.01,
  1148.  but still it's only little, therefore NO ONE from my projects can be
  1149.  documented with this program. Problem mostly is, that SNAP is not yet using
  1150.  all new things coming in Clipper 5.01.
  1151.  
  1152.  ------------------------------------------------------------------------------
  1153.  
  1154.  
  1155.                             ClipperNet - SHOWANSI.ARJ
  1156.  
  1157.  File Name:      SHOWANSI.ARJ
  1158.  Other Names:
  1159.  
  1160.  File Size:      1788 bytes
  1161.  File Contents:
  1162.                  SHOWANSI.PRG      20316
  1163.  
  1164.  Function with text as parameter. Result is, that all ANSI codes used in
  1165.  text are correctly displayed WITHOUT ANSI.SYS loaded and only with using of
  1166.  standard Clipper I/O functions.
  1167.  
  1168.  ------------------------------------------------------------------------------
  1169.  
  1170.  
  1171.                             ClipperNet - ZIP2BAR.ARJ
  1172.  
  1173.  File Name:      ZIP2BAR.ARJ
  1174.  Other Names:
  1175.  
  1176.  File Size:      1,171 bytes
  1177.  File Contents:
  1178.                  BARCODE.PRG       11113
  1179.  
  1180.  Function for printing BarCode (USPS) on EPSON printer. Probably written
  1181.  for Clipper Summer 87.
  1182.  
  1183.  ------------------------------------------------------------------------------
  1184.  
  1185.  
  1186.                             ClipperNet - CLIPFPCX.ARJ
  1187.  
  1188.  File Name:      CLIPFPCX.ARJ
  1189.  Other Names:
  1190.  
  1191.  CLIPBBS 1-15                   Page 23                   3 Dec 1991
  1192.  
  1193.  
  1194.  File Size:      35,149 bytes
  1195.  File Contents:
  1196.                  BART.PCX          39366
  1197.                  CLFPCX.DOC         3890
  1198.                  CLFPCX50.LIB       4096
  1199.                  CLFPCX50.PRG       2786
  1200.                  CLFPCX87.LIB       4096
  1201.                  CLFPCX87.PRG       2761
  1202.                  MINDSCAP.PCX       4777
  1203.                  MJTITLE.PCX       25963
  1204.                  PCX50.PRG          1253
  1205.                  PCX87.PRG          1256
  1206.  
  1207.  Clipper Summer and 5.01 functions for displaying PCX files one EGA/VGA
  1208.  screens. It's VERY fast displayer with use for small (around 50KB) big PCX
  1209.  files.
  1210.  
  1211.  ------------------------------------------------------------------------------
  1212.  
  1213.  
  1214.                             ClipperNet - SEGUE.ARJ
  1215.  
  1216.  File Name:      SEGUE.ARJ
  1217.  Other Names:
  1218.  
  1219.  File Size:      402,410 bytes
  1220.  File Contents:
  1221.                  SEGUE_NC.EXE     539648         BD.OVL            20480
  1222.                  NBANNER.PRG        1241         FL.OVL             7168
  1223.                  PR_SUP_N.DOC       1086         MG.OVL             4096
  1224.                  SUPVRLST.EXE     278528         DR.OVL            19456
  1225.                  CT_DEMO.PRG        5082         CT.OVL             5120
  1226.                  BD_DEMO.PRG       16835         NPRINTER.PRG       1512
  1227.                  SEG_TECH.TXT       2402         NCLASS.PRG         1423
  1228.                  DEMO.DBF            220         NCOPIES.PRG        1480
  1229.                  SUPVRLST.LNK         94         NSPLLPT.PRG        1336
  1230.                  SUPVRLST.PRG       1977         NSPLFRM.PRG        1346
  1231.                  SEG_SUBS.LST      14664         NSPLQUE.PRG        1577
  1232.                  README.1ST          792         NSPLSRV.PRG        1945
  1233.                  SS_DEMO.PRG        2606         NSPLTABS.PRG       1279
  1234.                  WE.OVL             5120         NSPLTMO.PRG        1373
  1235.                  CTSUP.OVL          3072         NSPOOL.PRG         1640
  1236.                  FS.OVL            25600         TT.OVL             3072
  1237.                  PR.OVL             9216         SZ.OVL            11264
  1238.                                                  BDSUP.OVL          9216
  1239.  
  1240.  Demo version of Novell Netware Clipper interface library. I hadn't time to
  1241.  test it, but it seems like good one. Only one is coming to my mind, 530K
  1242.  big .EXE file distributed as demo... it's too much. maybe BASE50.PLL can
  1243.  solve this..
  1244.  
  1245.  ------------------------------------------------------------------------------
  1246.  CLIPBBS 1-15                   Page 24                   3 Dec 1991
  1247.  
  1248.  
  1249.  ==============================================================================
  1250.                                     CLIPBBS
  1251.  ==============================================================================
  1252.  
  1253.  
  1254.                               CLIPBBS Distribution
  1255.  
  1256.    CLIPBBS is special magazine about CLIPPER and CLIPPERing (or about
  1257.    another related problems and xBASE languages). This magazine is for
  1258.    free and articles aren't honored. Nobody can make a profit from the
  1259.    distribution of this magazine.
  1260.  
  1261.    CLIPBBS can be freely downloaded and uploaded to any BBS or any other
  1262.    public system without changes of original contents or number of files
  1263.    in original archive (kind of archive can be changed, but we are sup-
  1264.    porting ARJ archive because is best and smallest).
  1265.  
  1266.    If you are interested in CLIPBBS and would like to become a DISTRIBUTION
  1267.    site, contact publisher on 2:285/608@fidonet or 27:1331/4412@signet
  1268.    or just call to 31-10-4157141 (BBS, working 18:00->08:00, top is V32b) or
  1269.    voice to 31-10-4843870 in both cases asking for DANIEL (Docekal).
  1270.  
  1271.    Distribution sites:
  1272.  
  1273.    Clipper BBS Home system  │
  1274.    ─────────────────────────┘
  1275.        NETCONSULT BBS, SYSOP Daniel Docekal, phone 31-10-4157141
  1276.        Daily 18:00 till 08:00 (GMT+1), sat+sun whole day
  1277.        Modem speed 1200, 2400, 9600, 12000, 14400 (V32b)
  1278.  
  1279.    United Kingdom   │
  1280.    ─────────────────┘
  1281.        Welsh Wizard, SYSOP Dave Wall, phone 44-656-79477
  1282.        Daily whole day, modem speed HST
  1283.  
  1284.    United States of America  │
  1285.    ──────────────────────────┘
  1286.       The Southern Clipper, SYSOP Jerry Pults, phone 1-405-789-2078
  1287.        Daily whole day, modem speed HST
  1288.  
  1289.        The New Way BBS, SYSOP Tom Held, phone, 1-602-459-2412
  1290.        Daily 24hours, 1:309/1@Fidonet, 8:902/6@RBBS-Net
  1291.  
  1292.    Canada    │
  1293.    ──────────┘
  1294.        SYSOP Gordon Kennet, phone 1-604-599-4451 
  1295.        Daily 24houts, 2400bps V42b, 1:153/931@fidonet
  1296.  
  1297.    WORLDWIDE   │
  1298.    ────────────┘
  1299.    
  1300.        Clipper File Distrubution Network (ClipperNet, area CL-DOC)
  1301.        Various systems around whole world
  1302.  
  1303.        Programmers Distribution Network (PDN, area PDNDBASE)
  1304.        Various systems around whole world
  1305.  CLIPBBS 1-15                   Page 25                   3 Dec 1991
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  ------------------------------------------------------------------------------
  1311.  CLIPBBS 1-15                   Page 26                   3 Dec 1991
  1312.  
  1313.  
  1314.                       How to write articles in CLIPBBS?
  1315.    
  1316.    
  1317.    Submission of articles to CLIPBBS is really easy:
  1318.      Maximum of 78 characters per line, as long or as short as you like
  1319.      ASCII text.
  1320.      Choose from the list of extension which most describes your text, or
  1321.      just name it .ART as ARTicle and send it to publisher or to any
  1322.      distribution site via modem to BBS or with mailer as file attach.
  1323.      Article will come automatically appear in the next free issue.
  1324.    
  1325.    Extensions are:
  1326.    
  1327.            Articles (anything)             .ART
  1328.            Software                        .SOF
  1329.            News                            .NEW
  1330.            Question and Answers            .Q&A
  1331.            ANOMALIES and their comments    .ANO
  1332.            Letters to editors              .LET
  1333.            Advertisement                   .ADV
  1334.            Wanted                          .WAN
  1335.            Comments                        .CMS
  1336.            DUMP from conferences           .DMP
  1337.            Clipper Net                     .CLN
  1338.            
  1339.    That's all at the moment, there will probably be changes later, as the
  1340.    magazine evolves. If you have any ideas for a new section of CLIPBBS,
  1341.    please tell us, or just write an article about it.
  1342.    
  1343.    Daniel, publisher
  1344.  
  1345.  ------------------------------------------------------------------------------
  1346.