home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-11-26 | 65.4 KB | 1,455 lines |
-
-
- ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ░░▒▒▒░▐▐▐▐▒░▐▐▐▐▒▒▒▒░▐▐▐▐▒▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒▒░▐▐▐▐▒▒▒
- ░░▒▒░▐▐░░▐▐▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐░░▐▐▒░▐▐░░▐▐▒░▐▐░░▐▐░▐▐░░▐▐▒▒
- ░░▒░▐▐▒▒░░▒▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐▒░▐▐▒░▐▐▒░▐▐▒░▐▐▒░▐▐░▐▐▐▒▒▒▒▒
- ░░▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐▐▐▐▒▒░▐▐▐▐▐▒▒░▐▐▐▐▐▒▒░▐▐▐▒▒▒▒
- ░░▒░▐▐▒▒▒▒▒▒░▐▐▒▒░▐▒▒░▐▐▒▒▒▒░▐▐░░▒▒▒░▐▐░░▐▐▒░▐▐░░▐▐▒▒▒░▐▐▐▒▒
- ░░▒░░▐▐▒▒▐▐▒░▐▐▒░▐▐▒▒░▐▐▒▒▒▒░▐▐▒▒▒▒▒░▐▐▒░▐▐▒░▐▐▒░▐▐░▐▐░░▐▐▒▒
- ░░▒▒░░▐▐▐▐▒░▐▐▐▐▐▐▐▒░▐▐▐▐▒▒░▐▐▐▐▒▒▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒▒░▐▐▐▐▒▒▒
- ░░▒▒▒░░░░▒▒░░░░░░░▒▒░░░░▒▒▒░░░░▒▒▒▒░░░░░░▒▒░░░░░░▒▒▒░░░░▒▒▒▒
- ░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
-
- Volume 1, Number 14 26 November 1991
-
- (c) Daniel Doçekal, All Rights Reserved
-
- The BBS Clipper magazine, published WEEKLY, every FRIDAY
-
- Some of the material used comes from scanning CLIPPER echoes
- which are carried in various BBS throughout the World.
- These Echoes are very often the source of the most often asked
- Questions and Answers about Clipper.
-
- Other material, which is fully signed or abbreviated is the
- copyright of the appropriate persons.
-
- The publisher is not responsible for other authors submissions....
- Published material is not necessarily the opinion of the publisher.
-
- Redaction:
- Publisher...................................Daniel Docekal
- Chief editor ...............................Daniel Docekal
- Language editor .................................Dave Wall
-
-
-
- Table of Contents
-
- 1. EDITORIAL ............................................................. 1
- Second decade editorial ............................................... 1
- 2. ARTICLES .............................................................. 3
- 5.0 FOCUS: Memory Management, Overlay Reloading #1 .................... 3
- 3. SOFTWARE .............................................................. 7
- PATCH of OPTIMIZE coming with QEMM 6.0 ................................ 7
- QEMM 6.0 and troubles coming with STEALTH options ..................... 9
- 4. Q&A ................................................................... 16
- Q&A: Desqview and CACHE programs are NOT working properly together .... 16
- Q&A: Desqview and high speed communication programs ................... 16
- Q&A: File corruptions under Desqview .................................. 16
- Q&A: Hangs of system after floppy access in Desqview .................. 17
- Q&A: Desqview is repeatedly hanging ................................... 17
- 5. ANOMALIES ............................................................. 18
- ANOMALIES reports and commets ......................................... 18
- MISC Miscellaneous clarification/anomalies ............... 18
- DBCREATE() is killing existing ALIAS .................................. 18
- KEYBOARD anomaly ...................................................... 19
- 6. CLIPPER NET ........................................................... 20
- CLIPBBS 1-14 Table of Contents (...) 26 Nov 1991
-
-
- Index of described files in Clipper BBS Magazine ...................... 20
- ClipperNet - PAT2-3.ARJ ............................................... 21
- ClipperNet - CLIPPLUS.ZIP ............................................. 21
- ClipperNet - MSWIN.ARJ ................................................ 22
- ClipperNet - POSTPRNT.ARJ ............................................. 22
- ClipperNet - SHADO.ARJ ................................................ 22
- ClipperNet - BUTTON.ARJ ............................................... 23
- ClipperNet - DTF102.ARJ ............................................... 23
- ClipperNet - HOTKEY.ARJ ............................................... 23
- 7. CLIPBBS ............................................................... 25
- CLIPBBS distribution .................................................. 25
- CLIPBBS, how to write an article!!! ................................... 26
-
- - - - - -
- CLIPBBS 1-14 Page 1 26 Nov 1991
-
-
- ==============================================================================
- EDITORIAL
- ==============================================================================
-
-
- Second decade editorial
-
-
- Hello again. Today i had really nice day, morning appointment with dentist
- left me with toally 'wooden' mouth. Injection of something is very nice to
- not feel paing, but then noone want to speek anymore <grin>. Actually, i'm
- glad for this injection, otherwise it will follow practice from my post--
- socialistic country Czechoslovakia. Just wondering, it has nothing to do
- with ClipperBBS, but how may look dentist in your country? Czechoslovakian
- dentist is:
-
- 1) never using any injection of somethign to keep out of pain when making
- holes
- 2) never giving you hand and telling you "Hello" and then "Good Bye"..
- 3) using seal of metal color which will after one year go to be totally
- black (what a surprise, dentist here in The Netherlands is using seal
- which has similar color as mine tooth)
- 4) making from small hole in tooth something like toilet hole <grin>
- 5) forbiding you to eat at least for four hours, otherwise your seal
- will be lost (suprising again, i could eat and drink immediately)
- 6) making next appointment somewhere after few months before it is
- totally busy....
- 7) never promising that something will be beter (here in Holland it
- seems like that repaired tooth is really repaired)
- 8) sometime not repairing correct tooth, mostly is just one left
- or one right from wrong one.
-
- And now, what you country? Not, stop. Let's take a look to something
- different. Can we not see any similarity with above and Nantucker/Clipper?
- Do you think NOT? I will show you. Nantucket is:
-
- 1) Never using any way of solid help to keep your pain with Internal errors
- out of your mind...
-
- 2) Will only get money, give Clipper and then chance to receive any
- material from them is somewhere around zero
-
- 3) release Clipper 5.0 which looks nice, but after using is absolutely
- out of possibilites to use :-)
-
- 4) (difficult, this point) filling your disk with millions of norton guides,
- error reports, internal error reports, fixes and tricks and never giving
- any paper...
-
- 5) answering to your question with nice sentence "it is known problem, you
- have to wait to next version or make some workarounds, but we don't know
- which, way few days (will become weeks) and we will maybe know", or any
- different view, forbiding you forever to include your Clipper between
- normal programming languages and to cooperate directly from "C" to
- Clipper...
-
- CLIPBBS 1-14 Page 2 26 Nov 1991
-
-
- 6) don't know if is totally busy, but time hole between Clipper 5.0 and
- Clipper 5.01 was unbelievably long
-
- 7) Never promising anything because of points 1->6
-
- 8) not so much listening to problems and giving tips and fixes about
- something different that was needed and trying to tell, that for example
- INCREMENTAL linking is working, never mind than must receive thousands
- of complains about /INC not working...
-
- And now, WARNING please, maybe in your country are difference practices, but
- from here (The Netherlands) it seems like is written <grin>.
-
- Seriously now, it's up to you if it's fitting as was written, this
- editorial is just result of one vist on Dentist. Second visit is coming
- soon (next thursday :-) <grin>), because my tooths are really very bad
- now, because of :
-
- 1) i was VERY afraid to go to dentist (because of point 1 till 8)
- 2) repairment was very bad (because of point 1 till 8)
-
- Cheers
- Daniel
-
- ------------------------------------------------------------------------------
- CLIPBBS 1-14 Page 3 26 Nov 1991
-
-
- ==============================================================================
- ARTICLES
- ==============================================================================
-
-
- 5.0 FOCUS: Memory Management, Overlay Reloading #1
- by Roger Donnay
-
-
- As a long-time user of RTLINK, I feel compelled to share with you some
- insights on how to get much more from this great linker than can be
- derived from the Clipper documentation. My particular area of interest
- is linking technology - Why? Because I learned long ago that time
- invested in learning the "art" of linking will pay dividends equal or
- greater than those derived from learning new programming techniques.
-
- Let me give you an example of what I mean. Let's say you are running
- into a memory wall in your application and you simply must find a way
- to remove 40k from your root .EXE. I can only guess what you are
- thinking now: "Wait a minute, what wall is he talking about? I thought
- that 5.0's VMM system and dynamic overlaying system were designed to
- make Clipper work in virtually any DOS memory environment." It is true
- that 5.0 has memory management features built-in which far surpass those
- in Summer 87, but that doesn't mean you will never run out of memory.
- What it does mean is that you now have many more options available for the
- management of memory, but even under 5.0, MEMORY STILL MUST BE MANAGED,
- and you, the 5.0 programmer, have just been promoted to manager.
-
- Getting back to our example - The task is to manufacture 40k of memory
- in an existing application. I have been faced with this task many
- times. I could probably give you a list of a hundred changes you could
- make to your code to get back this 40k of memory - but I'd much rather
- show you one or two changes you can make to your link file. The first
- of such proposed changes utilizes the RELOAD feature of RTLINK.
-
- This article is the first in a series designed to help you manage
- memory under Clipper 5.0. Some of what I will cover is already
- documented in the 5.0 manual, but most of it is not.
-
-
- RELOADABLE OVERLAYS
-
- Overlay Reloading is a very important "undocumented" feature of the RTLINK
- linker supplied with Clipper-5.0. I have been RELOADING objects from the
- Summer 87 Clipper libraries for years, so when I received my copy of
- Clipper-5.0, the first thing I attempted to do was to overlay some of the
- larger C/ASM modules in the Clipper libraries using the RELOAD command in
- my linker script file. The Nantucket development team had the foresight
- to insure that their C and ASM compiler assigned a UNIQUE name to each
- Clipper C/ASM object in the Clipper libraries, thus allowing, you, the
- Clipper programmer to use both the "undocumented" RELOAD command and
- MODULE command in your .LNK script files.
-
- So what are "Reloadable Overlays"? These are a form of STATIC overlay
- in which segments of code are placed into overlay sections that occupy
- the same memory space at runtime, however the "calling module" is
- CLIPBBS 1-14 Page 4 26 Nov 1991
-
-
- automatically "reloaded" into memory when returning from the
- "called module".
-
- Reloadable overlay segments usually look like this in your link file:
-
- RELOAD FAR 200
- # area 1
- BEGINAREA
- SECTION FILE A
- SECTION FILE B
- SECTION FILE C
- ENDAREA
-
- # area 2
- BEGINAREA
- SECTION FILE D
- SECTION FILE E
- SECTION FILE F
- ENDAREA
-
- I supposed you are now thinking: "What a waste of time. I happen to know
- that RTLINK automatically overlays all Clipper code - this guy has been
- sniffing glue again." Well, you are half right. RTLINK does use an
- automatic overlaying system called "dynamic pages" for all code which
- has been compiled by the Clipper-compiler, but it does not automatically
- overlay code written in C or ASM, and this is the predominant class of
- code in the Clipper libraries. Not all Clipper applications are
- going to need to use these reloadable static overlays, but if your
- application relies heavily on third-party libraries written in C/ASM
- or you use DBEDIT(), MEMOEDIT(), TBROWSE(), Report Forms, or other
- large modules from the Clipper libraries, then it is recommended that
- you learn this technique.
-
- The main advantage of "reloadable overlays" over conventional "static
- overlays" is that you are never in danger of "lockup" in the event that
- a procedure or function in FILE A calls a function or procedure in FILE B
- because FILE A will be reloaded into memory on return from FILE B. If
- you graduated from Summer 87 and used PLINK86's static overlaying system,
- you know exactly what I am talking about. If you use the RELOAD command
- with RTLINK, and assign a large enough value to the RELOAD stack, you
- will never again experience call stack corruption and computer lock-up.
- Make sure when you use the RELOAD command that you always use it as
- follows:
-
- RELOAD FAR <stack size>
-
- where the <stack size> is the amount of memory in hex bytes to use for
- saving addresses. My experience is that most applications will run just
- fine with a stack size of 200. If your application does recursive
- nesting, however, you may need to increase the stack size. Recursive
- nesting is described as follows: Procedure A calls Procedure B which
- calls Procedure A which calls Procedure B, etc, etc, etc. Each time
- a procedure is called, its return address is "pushed" onto the stack, and
- each time you return to the calling procedure the address is "popped"
- from the stack. In the above example, if this recursive condition were
- allowed to continue for a large number of iterations, the stack would be
- CLIPBBS 1-14 Page 5 26 Nov 1991
-
-
- overrun and the program may crash.
-
- Although your application will not crash using RELOAD, it may slow down
- a bit if overlay segments are not structured properly, because each time
- an overlay is reloaded the application must go to disk. In the above
- example if a function in FILE A repetitively calls a function in FILE B
- then your application will be very "disk intensive" and will run slowly.
- If a function in FILE A repetitively calls a function in FILE D there will
- be no slowing at all because both modules will remain in memory.
-
- Overlay management of C/ASM code with "reloadable overlays" is less
- time-consuming and more reliable than simple conventional "static
- overlays" and provides an additional advantage of allowing more modules
- to be overlayed, thereby saving additional memory usage. Overlay managers
- which provide "RELOAD" commands usually limit the automatic reloading to
- either "NEAR" or "FAR" calls. The Clipper-compiler mixes both near and
- far calls therefore Clipper-compiled code cannot be overlayed in this
- manner. Even if you include a Clipper-compiled object in a static
- overlay it will automatically be converted to a "dynamic" overlay by
- RTLINK/5.0 and the command will be ignored.
-
-
- PLACING CLIPPER LIBRARY MODULES INTO RELOADABLE OVERLAYS
-
- Refer to the below script file for an example of how to use Static
- reloadable overlays to reduce memory usage in your Clipper-5.0
- applications. This link file creates an overlay area for overlaying the
- larger modules in the Clipper libraries which are not likely to call each
- other recursively, therefore you will probably notice very little
- difference in speed performance yet you will get up to 40K more memory
- overhead depending on how much of the Clipper libraries your application
- uses.
-
- You may get a "warning" message during link time if your application does
- not call one of the modules referenced in an overlay area. In the event
- this happens, simply remove that module from the link file. For example,
- if you are not using any TBROWSE objects or DBEDIT() remove the following
- line:
-
- SECTION MODULE D:\S89\EDIT\TBROWSE.C
-
-
- # Example of using RELOADABLE overlays with the
- # Clipper-5.0 version of RTLINK
-
- FI <my files>
- LIB <my libs>
- LIB \CLIPPER5\LIB\extend
- LIB \CLIPPER5\LIB\clipper
- LIB \CLIPPER5\LIB\terminal
- LIB \CLIPPER5\LIB\dbfntx
- OUTPUT <my .EXE>
- VERBOSE
-
- # Add this portion to your existing .LNK script file
- RELOAD FAR 200
- CLIPBBS 1-14 Page 6 26 Nov 1991
-
-
- BEGINAREA
- SECTION MODULE D:\S89\EDIT\MEMOEDIT.C
- MODULE D:\S89\MEMO\MEMOTRAN.C
- SECTION MODULE D:\S89\MEMO\MEMOREAD.C
- MODULE D:\S89\MEMO\MEMOWRIT.C
- MODULE D:\S89\MEMO\MEMOLINE.C
- MODULE D:\S89\MEMO\MLCOUNT.C
- MODULE D:\S89\MEMO\MLPOS.C
- SECTION MODULE D:\S89\EDIT\TBROWSE.C
- SECTION MODULE D:\S89\EDIT\ACHOICE.C
- MODULE D:\S89\ARRAY\ASCAN.C
- MODULE D:\S89\ARRAY\ASORT.C
- MODULE D:\S89\ARRAY\ARRAY.C
- MODULE D:\S89\ARRAY\DIRECTRY.C
- SECTION MODULE D:\S89\DBCMD\DBSTRUCT.C
- MODULE D:\S89\DBCMD\DBCREATE.C
- MODULE D:\S89\DBCMD\JOINLIST.C
- MODULE D:\S89\DBF\SORTOF.C
- SECTION MODULE D:\S89\TERM\GETHELP.C
- ENDAREA
-
- Another important undocumented feature of RTLINK is the MODULE command.
-
- The MODULE command is very useful in that it allows RTLINK to place
- "modules" from libraries into overlays. When a compiler creates an
- .OBJect file it also assigns a "module" name for the linker. The Clipper
- compiler assigns the same name as the .OBJ file, however many compilers
- will assign the name of the SOURCE file as the module name including
- drive letters and directories. You can organize your projects by
- placing all your C/ASM objects in libraries with a library manager such
- as LIB.EXE or PLIB86.EXE then by using the SECTION MODULE <module>
- command in your link file you can place any module into any overlay area.
-
- Example:
-
- LIB mylib
- BEGINAREA
- SECTION MODULE myfileA,myfileB
- SECTION MODULE myfileC
- SECTION MODULE myfileD
- ENDAREA
-
- The MODULE <module> command in RTLINK requires that the <module> exists
- in one of the declared libraries and that the name is "unique" to that
- module otherwise the command will be ignored and the module will be
- linked into the root memory area. This is not a problem with Clipper-5.0
- because the modules are given unique, but very long names.
-
- In my next article, I will show you how to use the RELOAD and MODULE
- commands to overlay C/ASM code from popular third-party libraries such
- as FUNCKY, PROCLIP, dGE, and FLIPPER.
-
- ------------------------------------------------------------------------------
- CLIPBBS 1-14 Page 7 26 Nov 1991
-
-
- ==============================================================================
- SOFTWARE
- ==============================================================================
-
-
- PATCH of OPTIMIZE coming with QEMM 6.0
-
- Subject: Patching Optimize 2.0 to resolve problems where, under some
- circumstances, Optimize will forget during its final phase that it required
- the Squeeze feature.
-
- Background: Many TSRs and device drivers take up more memory when they
- initialize than they require when they are resident. Optimize's Squeeze
- feature allows such programs, when they do not use EMS, to load partially
- into the page frame provided that they shrink down to a size that won't leave
- part of the program in the page frame. Under QEMM-386, the Squeeze feature
- can also make temporary use of ROM areas for loading high, provided that
- the ROM is not used while the program is initializing.
-
- Under some circumstances when Optimize 2.0 reaches the "ideal" result - that
- is, nothing in conventional memory and nothing in the largest high RAM region
- - and it required Squeeze to reach this result, Optimize will forget during
- its final phase that it required Squeeze. There is no workaround other than
- running Optimize with the /NOSQF and /NOSQT parameters to disable Squeeze.
- The problem should, however, not occur very often. The symptom of this
- problem is that a program that is supposed to be loaded into high memory
- evokes the LOADHI message "Not enough room to load <program> high. Loading
- low:" on the final phase of OPTIMIZE.
-
- This patch, which resolves the above problem, only works on Optimize version
- 2.00, which has a date of 8/23/91 or 8/28/91 and comes with either QEMM-386
- V6.00 or DESQview-386 V2.40. Earlier and later versions of Optimize do not
- exhibit this problem and do not require this patch.
-
- ***************************************************
- 1) Change to your QEMM directory.
-
- 2) Copy the original OPTIMIZE.COM file so that if you make a
- mistake you will be able to restore from a good copy. Type
-
- COPY OPTIMIZE.COM OPTIMIZE.OLD
-
- at the DOS prompt.
-
- 3) In order for DEBUG to process Optimize correctly, you need to
- rename it. At the DOS prompt, type
-
- REN OPTIMIZE.COM X
-
- 4) Now, load the file called X into DEBUG by typing
-
- DEBUG X
-
- at the DOS prompt. Make sure that DEBUG is in your path or that
- you precede DEBUG with the path where DOS can find it. If all
- works out, you should see a hyphen (-) for a prompt. This is the DEBUG
- CLIPBBS 1-14 Page 8 26 Nov 1991
-
-
- prompt.
-
- 5) Now make sure that the registers in the microprocessor are in
- the correct state by typing R at the DEBUG prompt. You should
- get something like this:
-
- AX=0000 BX=0001 CX=15C5 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
- DS=xxxx ES=xxxx SS=xxxx CS=xxxx IP=0100 NV UP EI PL NZ NA PO NC
- xxxx:0100 4D DEC BP
-
- Make sure that BX is equal to 0001 and that CX is equal to 15C5.
- If BX and CX are not equal to these values, then you should not
- continue with the patch. Type
-
- Q
-
- at the DEBUG prompt to quit out of DEBUG if BX is not 0001 and CX is not
- 15C5.
-
-
- 6) If the BX and CX values are correct, type
-
- S CS:100 FFFF e8 e9 e3 72 05
-
- at the DEBUG prompt. This will return a number with the form of xxxx:5C45.
- If the number that returns does not have a 5C45 after the colon, DO
- NOT APPLY THIS PATCH. If the wrong number returns, type
-
- Q
-
- at the DEBUG prompt to quit out of DEBUG.
-
-
-
- 7) If the number that returns is xxxx:5C45, type
-
- E 5C48
-
- DEBUG should respond with
-
- xxxx:5C48 72.
-
- 8) Now type
-
- EB
-
- at the DEBUG prompt and hit the Enter key. This will make the only change
- that you need to make in the file.
-
- 9) Now save your work by typing
-
- W
-
- at the DEBUG prompt. It should say
-
- Writing 115C5 bytes
- CLIPBBS 1-14 Page 9 26 Nov 1991
-
-
- or
- Writing 15C5 bytes
-
- depending on the version of DOS you are using.
-
- 10) Now you can quit DEBUG by typing
-
- Q
-
- at the DEBUG prompt. This will drop you back to the DOS prompt.
-
- 11) Rename X back to OPTIMIZE.COM by typing
-
- REN X OPTIMIZE.COM
-
- at the DOS prompt.
-
- You should be able to run Optimize successfully now.
-
- --------------------------------------------------
-
- If Optimize fails after you perform this patch, you can recover
- your backup of Optimize by typing
-
- COPY OPTIMIZE.OLD OPTIMIZE.COM
-
- at the DOS prompt.
-
- You may then wish to try the above procedure again, in case a mistake was
- made.
-
-
- * * * E N D O F F I L E * * *
-
- ------------------------------------------------------------------------------
-
-
- QEMM 6.0 and troubles coming with STEALTH options
-
- This document discusses how to diagnose and cure problems
- occasioned by the use of the Stealth feature of QEMM-386, version 6.
- All users should review the readq.me file that comes with QEMM-386,
- version 6 for additional information.
-
- FIRST STEP
- The first step is to ascertain whether Stealth is involved with the
- problem. Remove the Stealth parameter (ST:M or ST:F) from the QEMM-386
- line of the config.sys. Reboot the computer and try to duplicate the
- problem. If the problem still happens then Stealth is not causing the
- problem and you must address the problem by the means explained in the
- troubleshooting section of the QEMM-386 manual.
-
- SECTION 1
-
- SECOND STEP
- If Stealth is involved in the problem restore the Stealth
- CLIPBBS 1-14 Page 10 26 Nov 1991
-
-
- parameter (ST:M) and add XST=F000. Reboot the computer. If this
- works, go to the third step; if this does not work, go to Section
- Two. On this step the QEMM-386 line of the config.sys should look
- something like:
-
- device=c:\qemm\qemm386.sys ram st:m xst=f000
-
- THIRD STEP
- If XST=F000 solves your problem replace it with X=F000-FFFF,
- reboot and try again. The QEMM-386 line of the config.sys should
- look something like:
-
- device=c:\qemm\qemm386.sys ram st:m x=f000-ffff
-
- If this works, add the parameter FSTC to the qemm line, thusly:
-
- device=c:\qemm\qemm386.sys ram st:m x=f000-ffff fstc
-
- and reboot. If this works continue; if this does not work (and
- FSTC may not work in all circumstances) then remove the FSTC
- parameter and reboot with the previous QEMM-386 line. See the
- section about FSTC below for an explanation of FSTC.
- In either case, enter Manifest and look at the QEMM-
- 386/Analysis screen. Look at the last line: It should look
- something like this:
-
- Fn00 IIII IIII IIII IIOO
-
- The portions of the address space with the O in them are being
- accessed directly. Some program or piece of hardware is trying to
- read the contents of the ROM here directly, not merely access them
- through interrupts. This portion of the address space must be
- allowed to be accessed directly. This is done by excluding QEMM-386
- from mapping this area. In this case the target region is FE00-
- FFFF. The appropriate Exclude is X=FE00-FEFF. The correct QEMM-
- 386.SYS line of the config.sys is:
-
- device=c:\qemm\qemm386.sys ram st:m x=fe00-ffff
-
- This Exclude allows Stealth to do its job and costs you only 8K of
- high address space.
-
- FOURTH STEP
- If XST=F000 solves your problem while X=F000-FFFF does not then
- you should try using ST:F instead of ST:M. You may get more high
- ram with ST:F than with ST:M XST=F000.
-
- SECTION TWO
-
- This section is only for users with video ROM. Hercules-compatible
- monochrome and CGA systems do not have video ROM and thus this section
- does not apply. Some machines have their video ROM elsewhere, usually
- E000-E7FF. Such users should use E000 (or wherever their video ROM
- begins) instead of C000.
-
- FIFTH STEP
- CLIPBBS 1-14 Page 11 26 Nov 1991
-
-
- If XST=F000 does not solve your problem then try XST=C000. The
- QEMM-386 line of the config.sys should look like:
-
- device=c:\qemm\qemm386.sys ram st:m xst=c000
-
- If XST=C000 does not work, go to Section Three. If XST=C000 does
- work, go to the next step.
-
- SIXTH STEP
- If XST=C000 solves the problem then try placing the page frame
- at C000. Do this only if the entire C segment is available to put
- the page frame in. The QEMM-386 line of the config.sys should look
- like:
-
- device=c:\qemm\qemm386.sys ram st:m fr=c000
-
- If this works then this may be acceptable solution. All the address
- space in which high ram can be created is being used in this
- configuration. If this step does not work or, if you cannot put the
- page frame at C000, go to the seventh step.
-
- SEVENTH STEP
- If XST=C000 solves the problem but you do not want to (or
- cannot) put the page frame at C000 then try the parameter
- FASTINT10:N, where "N" tells QEMM-386 to allow the video ROM's own
- code to be used. By default QEMM-386 replaces some of the video
- ROM's code with its own video code. This parameter tells QEMM to
- use the ROM's code. The QEMM-386 line of the config.sys should look
- like:
-
- device=c:\qemm\qemm386.sys ram st:m fastint10:n
-
- If this works then all ROMs are being Stealthed. You may choose to
- try the eighth step as an alternative though. If this does not
- work, go to the next step. There is a further discussion of
- FASTINT10 below.
-
- EIGHTH STEP
- If XST=C000 solves the problem but FR=C000 or FASTINT10:N does
- not (or you cannot put the page frame at C000 or do not want to use
- FASTINT10:N) then replace XST=C000 with X=C000-C7FF. The QEMM-386
- line of the config.sys should look like:
-
- device=c:\qemm\qemm386.sys ram st:m x=c000-c7ff
-
- If this works, add the parameter FSTC to the QEMM-386 line, thusly:
-
- device=c:\qemm\qemm386.sys ram st:m x=c000-c7ff fstc
-
- and reboot. If this works continue; if this does not work (and
- FSTC may not work in all circumstances) then remove the FSTC
- parameter and reboot with the previous QEMM-386 line. See the
- section about FSTC below for an explanation.
- In either case, enter Manifest, go to the QEMM-386/Analysis
- screen, and look at the Cn00 line. It should look something like
- this:
- CLIPBBS 1-14 Page 12 26 Nov 1991
-
-
- Cn00 OIII IIII OOOO OOOO
-
- This indicates that the first 4K region of the C segment, in the
- video ROM, is being accessed directly. This portion of the address
- space must be Excluded when QEMM-386 is Stealthing. The appropriate
- QEMM-386 line in the config.sys is:
-
- device=c:\qemm\qemm386.sys ram st:m x=c000-c0ff
-
- SECTION THREE
-
- NINTH STEP
- On some machines there are other ROMs that can be Stealthed;
- often these are disk ROMs. The same procedure: trying XST=??00,
- then replacing it with the appropriate Exclude of the old kind
- (X=??00-!!FF) to see if the problem is related to Stealthing or just
- not having some portion of the ROM's address space directly
- accessible, can be used. The trick of making the page frame begin
- at the beginning of the disk ROM may also work here as well. If
- XST=??00 solves your problem, try replacing it with FR=??00,
- presuming that there is a 64K portion of the address space free
- beginning at ??00 and that ?? is a multiple of 16. If some portion
- of the address space must be Excluded for Stealth to work you should
- check Analysis with the FSTC and X=??00-!!FF parameters on the QEMM
- line.
-
- TENTH STEP
- Use XST=F000, XST=C000, XST=??00, and simultaneously for all
- ROMs being Stealthed. Then replace the XSTs one by one with the
- appropriate regular Exclude (X=F000-FFFF, X=C000-C7FF, X=??00-
- !!FF...), look at the QEMM-386/Analysis screen of Manifest and
- discover what portions of the address space need to be directly
- available.
-
- ELEVENTH STEP
- If ST:M does not work try ST:F instead. If ST:F does not work
- you should try ST:F XST=C000 (and XST=??00) for other Stealthed ROMs
- other than the one(s) overlain by the page frame.
-
- TWELFTH STEP
- If none of these steps solve the problem please pin down
- exactly what program is failing (and at what point), and file a
- report with Quarterdeck.
-
- INTERESTING QUESTIONS
-
- WHAT IS FASTINT10:N?
- QEMM-386, when Stealthing a video ROM, replaces some of the video
- ROM's code with replacement code written by Quarterdeck. This
- replacement code is suitable for most video cards. The FASTINT10:N
- (which may be abbreviated F10:N) parameter tells QEMM-386 not to use its
- own replacement code but the literal code of the video ROM. This in no
- way limits the amount of high RAM Stealth creates and may be acceptable
- solution for those users who need it. It should only be necessary on
- unusual video cards. If placing the page frame at the beginning of the
- video card's ROM works or if a small regular Exclude also solves the
- CLIPBBS 1-14 Page 13 26 Nov 1991
-
-
- problem you may choose to use this solution instead.
-
- WHAT IS FSTC?
- The purpose of the FSTC parameter is to make the Analysis procedure
- accurate. Some system and video ROMs may not function properly with the
- FSTC parameter. If this is the case on your system you will have to
- perform the Analysis procedure without the FSTC parameter. However, you
- should be aware in this case that some of the Exclude statements that
- Analysis prompts you to use may not be necessary. You can try reducing
- these Excludes on a trial-and-error basis if you wish.
- When QEMM-386 Stealths a ROM certain tables may have to be stored
- by QEMM-386 in its own data area. This uses a few kilobytes of high
- RAM. When a ROM is being Stealthed but the address in which the ROM
- resides is Excluded (as with X=C000-C7FF) then QEMM-386 cleverly figures
- out that it does not need to make copies of these tables in its own data
- area so it saves this memory by not making copies of the tables. This
- means that when you do Exclude the portion(s) of the ROM where these
- tables are stored the ROM will be accessed directly though it would not
- be if it were not Excluded. This will cause Analysis to report that a
- portion of the address space is OK when Excluded even though it would
- not be accessed directly were it not Excluded.
- FSTC (FORCESTEALTHTABLECOPY) forces QEMM-386 to make copies of
- these tables so that inappropriate Excludes are not recommended for the
- above reason. FSTC should only be used when you are testing a portion
- of a ROMs address space for direct access by Excluding the whole ROM.
- It is not an appropriate parameter for a final configuration.
-
- WHAT ARE ADVANCED DISK FEATURES?
- The BIOS has a set of function calls intended for use by
- multitasking programs. These are Int 15, functions 90 and 91. The
- system ROM or disk ROM may issue the Int 15, fn 90 call while it is
- waiting for the disk controller to read or write a sector, allowing
- other programs to execute during this wait. When the sector is
- ready, the disk interrupt handler issues an Int 15, Fn 91, signaling
- the multitasking program that the disk information is ready to be
- processed by the system or disk ROM. Some disk caches hook this call to
- allow your system to go ahead and execute your current program while the
- system or disk ROM is waiting for its requested sector. Whereas these
- caches preserve the stack and register state for the BIOS and the
- application when doing this pseudo-multitasking, they do not preserve
- the mapping of the page frame. Therefore, if the BIOS uses the page
- frame itself (as does Stealth), this could generate conflicts and system
- failures. Since no known disk cache does the proper page frame
- preservation, QEMM automatically suppresses INT 15, function 90 calls
- from the BIOS, effectively disabling advanced disk features. Caches
- that save and restore the page frame when using advanced disk features
- can use a programming interface to QEMM-386 to reenable advanced disk
- features.
- You may defeat QEMM-386's defeating of this feature with the
- VIRTUALHDIRQ:N (VHI:N) parameter on the QEMM-386 line of the config.sys.
- If your cache has these "Advanced Features" and does not save and
- restore the page frame you will crash or corrupt data on the cached
- drive(s).
-
- WHAT IF I LOAD A DRIVER THAT USES ROM BEFORE QEMM-386?
- If you want to load a device driver before QEMM-386 and it uses a
- CLIPBBS 1-14 Page 14 26 Nov 1991
-
-
- ROM then QEMM-386 can still Stealth this ROM if you load the driver
- HOOKROM.SYS before this driver. Here is an example:
-
- device=c:\qemm\hookrom.sys
- device=c:\????????.sys
- device=c:\qemm\qemm386.sys ram st:m
-
- WHY DOES MY SYSTEM SETUP NO LONGER COME UP WITH ST:M?
- On machines with a built-in system setup program in the BIOS ROM
- that can be popped up at any time Stealth may make this feature
- inaccessible after you have booted. This is because the setup program
- accesses the ROM directly. In order for it to work after QEMM-386 has
- been loaded you must Exclude the portion of the address space where it
- is stored. On most machines this is in F000-F7FF or thereabouts. You
- may decide that it is better to use the system setup only on boot and be
- able to use this portion of the address space for high RAM when you are
- running. This is the way many systems are these days and you must
- reboot to implement the changes anyway so you may consider this a fair
- trade.
- Machines with a setup program that loads as a regular program may
- not present this problem.
-
- WHAT IS GOING ON?
- With ST:M Stealth is moving out of the address space all ROMs
- accessed by means of interrupts (you can see what interrupts are being
- handled by what ROMs in the First Meg/Interrupts screen of Manifest when
- you are not Stealthing.) When these interrupts are asserted, QEMM-386
- puts the ROM code that services the interrupt into the page frame. With
- ST:F Stealth is allowing the page frame to share the address space used
- by the ROM, making the underlying ROM code available in the page frame
- when an interrupt pointing into the ROM is asserted.
-
- HOW CAN IT FAIL?
- The Stealth technology relies on the practice of using the code in
- ROMs only by means of interrupts. With the exceptions listed below when
- the code in a ROM is accessed directly the program or hardware using
- this code (or information) will find high RAM there instead with ST:M
- and will malfunction. Although this is not common it does happen.
- Sometimes programs look for identification information: For video cards
- this usually happens in the bottom 4K; for system BIOSes this usually
- happens in FE00-FEFF. Most users for whom Stealth fails can recover
- almost all the high RAM Stealth can create with small Excludes of this
- kind.
- Exceptions:
-
- 1) QEMM-386 does not map High RAM into the last 64 bytes of the
- system BIOS ROM because they are commonly accessed directly.
- Accesses here do not cause Stealth a problem.
-
- 2) When a ROM accesses itself directly then it should work IF the page
- frame begins at this ROM's beginning address. There are some video cards
- and disk controllers that fail because the video ROM (disk ROM) does not
- tolerate relocation. The ready cure for this symptom is to put the page
- frame at C000 (or whatever is the beginning of the appropriate video or
- disk ROM) so that when an interrupt that points into the video ROM (disk
- ROM) is asserted, and QEMM restores the contents of the video ROM (disk
- CLIPBBS 1-14 Page 15 26 Nov 1991
-
-
- ROM) into the page frame, the ROM code can access itself where it expects
- to find itself; this is the purpose of step 6 of this method.
-
- 3) Direct accesses of one ROM to another work with ST:F.
-
- Disk caches that write directly to and read directly from the page frame
- cause Stealth to fail unless the DISKBUFFRAME=?? (DBF=??) is used.
-
- Stealth relies on there being interrupts pointing into a ROM in order to
- make it a target for Stealthing. If there is a ROM in the address space
- that QEMM-386 cannot detect as being used then it will not be Stealthed.
- This may happen for some disk ROMs and for devices that use the ROM only
- upon initialization. If there is a ROM without an interrupt pointing
- into it it is a suspect for being unused. You should use the Analysis
- feature of QEMM-386 to discover if this ROM is being used at all. If it
- is not then the address space it occupies may be reclaimed with an
- INCLUDE.
-
- SUMMARY
- The Stealth technology has been exhaustively tested but the wide
- variety of software and hardware in the PC world has surprises in it for
- every program. The actual Stealthing of interrupts is very successful.
- The most common failure is due to programs (or other ROMs) trying to
- access a portion of the ROM directly, rather than by means of interrupt.
- For this to work the target region of this access must be in the
- address space at the time of access. This can be achieved by an
- appropriate exclude of the old kind, usually at a cost of only 4K or 8K
- of the additional high RAM Stealth is creating; see steps 3 through 11
- for a procedure to figure these Excludes out. If the video ROM or
- adaptor ROM is the target ROM of a problem then placing the page frame
- over the video ROM or adaptor ROM may work; see step 6. The "Advanced
- disk features" that some disk caches use are incompatible with Stealth.
- QEMM-386 disables these by default whenever possible if Stealth is used.
- Some disk caches write directly to the page frame. Such caches should be
- told to use extended memory or the DISKBUFFRAME=?? (DBF=??) should be
- used with QEMM-386; see step 2. If you have a problem intractable by
- any of these means Quarterdeck would like to hear about it.
-
-
- ------------------------------------------------------------------------------
- CLIPBBS 1-14 Page 16 26 Nov 1991
-
-
- ==============================================================================
- Q&A
- ==============================================================================
-
-
- PROBLEM: I can't get a caching program to work properly with DesqView.
-
- SYMPTOMS: After loading PC-Cache version 6, the cache does not work if you
- enter DesqView directly. If you use manifest to look at First Meg
- Programs, PC-CACHE is not listed.
-
- SOLUTION: I was not able to get PC-Cache version 6 to work correctly on my
- system. Either switch back to version 5.5 or get a shareware copy
- of ADCACHE. ADCACHE was written with QEMM, 386-to-the-max, and
- DesqView in mind. It is fast, small, and compatible.
-
- NOTE 1: I have also used Super PC-Kwik with success. It is larger
- than ADCACHE, but it is somewhat faster.
-
- NOTE 2: Central Point has released a new version of PC-Cache.
- This file is available on The Bertha BBS as PCTOL6UD.ZIP.
- I have not tried the new version because I had previously
- switched to Super PC-Kwik.
-
- NOTE 3: The current version of PC-Cache is 6.04. To find out what
- version you have, look at the time stamp of the file.
-
- ------------------------------------------------------------------------------
-
-
- PROBLEM: System hangs when using high speed communications within DesqView.
-
- SYMPTOMS: When running high speed (>9600 baud) communications, the system
- will hang intermittently.
-
- SOLUTION: Switch to buffered (16550) serial ports. On my system, I was able
- to move to 19200 baud with no hangs by switching to the buffered
- ports. You may also try setting "Optimize Communications" to Y in
- the DesqView Setup area. Be cautious with this setting as it can
- cause some problems as well. It is also helpful to upgrade to
- DesqView 2.26 as there is better support for high speed
- communications.
-
- NOTE 1: I have now gone to 38400 baud on my system using the X00
- FOSSIL driver. Things seem to be operating smoothly.
-
- NOTE 2: Please note that not all 16550 chips are created equal.
- The preferred chip is a National Semiconductor NS16550AFN.
- This is a 40-pin dip. Be wary of Western Digital WD16C550
- chips which reportedly have FIFO problems with low-speed
- communications (2400 baud or less).
-
- ------------------------------------------------------------------------------
-
-
- PROBLEM: System hangs and file corruption occur when running under DesqView.
- CLIPBBS 1-14 Page 17 26 Nov 1991
-
-
- SYMPTOMS: Intermittent system hangs when operating with DesqView. Sometimes
- files will be corrupted. Usually unable to reproduce the problem
- consistently.
-
- SOLUTION: Check your interrupts! Interrupt conflicts can cause all sorts of
- strange problems. I still see people recommend using IRQ2 on an AT
- class machine. IRQ2 is a cascaded interrupt for IRQ8 through IRQ15
- and cannot be used. A lot of us upgraded from an XT and are used
- to setting our systems up to use IRQ2. I moved my bus mouse card
- from an XT to an AT and had all sorts of problems until I changed
- the interrupt from IRQ2 to something that was not being used.
-
- ------------------------------------------------------------------------------
-
-
- PROBLEM: System hangs after doing floppy access.
-
- SYMPTOMS: The system will lock up after doing floppy access. This is not
- consistent, but usually occurs after writing to the floppy. Floppy
- reads do not seem to be a problem.
-
- SOLUTION: I noticed this problem with some regularity on my system. I got to
- the point where I realized that the hang was only occurring after a
- write to the floppy. Reads did not appear to trigger the hang. I
- was using PCTools 6.0 to move files from the floppy to the hard
- drive. After a file is copied, it is deleted from the floppy in
- order to complete the move. During this process, a hang would
- sometimes occur. This could be exacerbated by ejecting the floppy
- prematurely to cause an error. My system would hang in the middle
- of this error message.
-
- The solution to this problem was to be found in the command line
- for my cache. I use Super PC-Kwik. I had set up the cache to
- ignore drives A and B with the /-A and /-B switches. But when I
- looked at the parameters for the cache I realized that diskette
- writes were still enabled (/D+). I changed the command line to
- disable diskette writes (/D-) and the problem has not occurred
- since. It is unclear whether this is a problem on other caches.
-
- ------------------------------------------------------------------------------
-
-
- PROBLEM: Repeated system hangs when using DesqView.
-
- SYMPTOMS: System will hang intermittently and with no warning.
-
- SOLUTION: Check the setting of "Manage Printer Contention" in the DesqView
- Setup area. Numerous hangs are caused by having this set to "Y".
- Set it to "N". You must make sure not to have two applications
- printing at the same time.
-
- NOTE 1: The solution that I use for this problem is to use a
- buffer on the printer. Mine is 512K. That way I can
- print and the buffer takes all the data. Then I can close
- the window and print something else from another
- application immediately.
-
- ------------------------------------------------------------------------------
- CLIPBBS 1-14 Page 18 26 Nov 1991
-
-
- ==============================================================================
- ANOMALIES
- ==============================================================================
-
-
- ANOMALIES and their comments
-
- This part of Clipper BBS Magazine is dedicated to all discovered
- anomalies and comments about them in Clipper products. Because
- Nantucket is still unable to give own bug and anomalies reports (as
- actually did in past with Summer 87 version) is very handy to have
- results of many investigations done on many user places. I'm also
- doing my own investigatings, because i'm always very good when someting
- has hidden problems. Everything what i buy will first show all problems
- and then all normal things. This amazing part of my live is sometime
- making me crazy, but for testing of programs it's great <grin>.
-
- Daniel
-
-
-
- ------------------------------------------------------------------------------
-
-
- MISC Miscellaneous clarification/anomalies.
-
- 2) MEMVARBLOCK() (NG Function Description)
- MEMVARBLOCK() cannot be used to create set-get blocks for LOCAL
- or STATIC variables.
-
- ------ COMMENT -------
-
- MEMVARBLOCK() cannot be really used for LOCAL or STATIC, because THEY
- CANNOT EXIST ON RUNTIME LIKE a _NAME_. Names are exist ONLY from
- PRIVATEs, PUBLICs and from Functions. STATIC or LOCAL are just Memory
- Address and NOT a NAME (SYMBOL). It's very often mistake of beginners
- in Clipper that they are mixuping a terms. This is also enough
- documented in coming .NGuides for Clipper!
-
- .DD.
-
- ------------------------------------------------------------------------------
-
-
- DBCREATE() is killing existing ALIAS
-
-
- DBCREATE() is killing existing alias in case when database created with
- this function has the same name as existing alias. IT's ONLY killing of
- ALIAS, because database stays opened and can be accessed by number of
- area, but not by ALIAS.
-
- Test program:
-
- SELECT 6
- USE ( "\ncom\a\qbase.dbf" ) ALIAS QUEUE
- CLIPBBS 1-14 Page 19 26 Nov 1991
-
-
- ? QUEUE->PRIORITIES
- SELECT 2
- dbcreate( "QUEUE.dbf", { {"FELD1","C",18,0} } )
- ? ""
- ? QUEUE->PRIORITIES
-
- Second "? QUEUE->PRIORITIES" is giving error because alias QUEUE doesn't
- exist longer. CLD is showing opened database, but all QUEUE-> aliased
- operation are UNDEFINED.
-
- ------------------------------------------------------------------------------
-
-
- KEYBOARD anomaly
-
-
- String passed to keyboard and contains ";" character is transfered correctly
- with exception of ";" character which is transfered to CR (ENTER).
-
- Easily it can be demonstrated by using:
-
- KEYBOARD "Hello;boys"
- Memoedit of some string.....
-
- .DD.
-
- ------------------------------------------------------------------------------
- CLIPBBS 1-14 Page 20 26 Nov 1991
-
-
- ==============================================================================
- CLIPPER NET
- ==============================================================================
-
-
-
- Following is COMPLETE list of all published file descriptions in Clipper
- BBS magazine in previous numbers. Purpose of this index list is to allow
- anybody find needed file descriptions in growing number of described files.
- Short description after name will give first possible close image about
- file. Number enclosed in "[]" will mean number of Clipper BBS magazine.
-
- ┌─────────────┬────┬────────────────────────────────────────────────┬──────┐
- │FileName │Src │Description │Where │
- ├─────────────┼────┼────────────────────────────────────────────────┼──────┤
- │ACCESS.ARJ │Cln │Source of speed testing program │[1-06]│
- │ACH2TB.ARJ │Cln │Convert ACHOICE to TBROWSE │[1-05]│
- │ACHOO2.ARJ │Cln │Replacement of ACHOICE with GET possibilites │[1-06]│
- │ADHOC302.ARJ │Cln │Summer 87 inteligent report program │[1-04]│
- │ASCPOS.ARJ │Cln │replacement of ASC(substr(cString,nPosition,1)) │[1-11]│
- │CALC14.ARJ │Cln │PoPup Calculator │[1-08]│
- │CL5103.ARJ │Cln │Report of 5.01 anomaly number 3 │[1-04]│
- │CL5REP6.ARJ │Cln │5.01 replacement of REPORT command │[1-04]│
- │CLIP110.ARJ │Cln │Clipper Documentor program │[1-05]│
- │CLIPLINK.ARJ │Cbs │Complete text of R.Donnay about linkers │[1-04]│
- │CLIPSQL.ARJ │Cln │Demo of complete SQL library for CLipper │[1-05]│
- │CLIPWARN.AJ │Cln │Semaphore for convert WARNING: into ERRORLEVEL │[1-11]│
- │CLPFON.ARJ │Cln │Set of fonts for EXPAND.LIB from author │[1-03]│
- │COND.ARJ │Cln │Builder of conditional indexes like SUBNTX │[1-03]│
- │DBSCN2.ARJ │Cln │Screen designer generator │[1-05]│
- │DIAL.CLN │Cln │Dialer with using of FOPEN() │[1-07]│
- │DOC111.ARJ │Cln │Documentor, newer version │[1-08]│
- │ENDADD.ARJ │Cln │replacement of incrementing last char of string │[1-11]│
- │GETKEY.ARJ │Cln │Input oriented library, wordprocessing │[1-12]│
- │GSR151.ARJ │Cln │Global Search and replace for programmers │[1-07]│
- │HGLASS.ZIP │Cln │Hour glass for indication of index progression │[1-04]│
- │INDXSL.ARJ │Cln │User Fields selection builder for index generate│[1-03]│
- │IOBASYS9.ARJ │Cln │Demo of S87 library and calling Clipper from C │[1-03]│
- │IS.ARJ │Cln │Several c sources of ISxxxx functions │[1-11]│
- │JG2.ARJ │Cln │Jumping between GET statements in READ │[1-08]│
- │KF_LOKUP.ARJ │Cln │Set of program for database relations │[1-07]│
- │LUTLIB.ARJ │Cln │Another Clipper library │[1-08]│
- │MK30.ARJ │Cln │Mouse library demo version │[1-03]│
- │MOVEGETS.ARJ │Cln │GETSYS change for moving between gets via VALID │[1-03]│
- │NFDESC2.ARJ │Cln │NanForum library description list │[1-06]│
- │NFLIB2.ARJ │Cln │NanForum library main file │[1-06]│
- │NFSRC2.ARJ │Cln │NanForum library Source files │[1-06]│
- │NOTATION.ARJ │Cln │Complete text of article about hungarian notat. │[1-04]│
- │OCLIP.ARJ │Cln │Object extension, real (not #define/command) │[1-12]│
- │OOPSCL5.ARJ │Cln │Another version of pseudo objects │[1-07]│
- │PACKUP.ARJ │Cln │ASM source of PACK/UNPACK replacement SCRSAVE.. │[1-04]│
- │PARTIDX3.ARJ │Cln │Partial indexing │[1-12]│
- │PAT1.ARJ │Cln │CIX NanForum Libraryy PATCH │[1-07]│
- │POPUPCAL.ARJ │Cln │Popup calender │[1-05]│
- │POWER10.ARJ │Cln │French library │[1-07]│
- │PRINTSUP.AJR │Cln │Low level BIOS routines for printing │[1-11]│
- CLIPBBS 1-14 Page 21 26 Nov 1991
-
-
- │QS20F.ARJ │Cln │Screen designer, demo, looks very good │[1-11]│
- │READPW.ARJ │Cln │GETSYS change for password invisible reader │[1-03]│
- │SCANCODE.ARJ │Cln │Database with scan codes │[1-07]│
- │SCRSAVE.ARJ │Cln │Screen AntiBurning utility (inactivity snake) │[1-05]│
- │SHELP50A.ARJ │Cln │SuperHelp for Clipper │[1-07]│
- │SNAP497.ARJ │Cln │Beta version of SNAP, partially compatible to 5 │[1-12]│
- │SOUND.ARJ │Cln │Multiple TONE() used as one SOUND function │[1-06]│
- │STATUS.ARJ │Cln │Timer interrupt hooked status indicator │[1-12]│
- │SYMBOL.ARJ │Cln │Dumper of symbol tables of Summer87 .EXE │[1-03]│
- │TBUNIQUE.ARJ │Cln │Browsing unique without unique index │[1-12]│
- │TBWHL4.ARJ │Cln │WHILE browsing using TBROWSE, well commented │[1-06]│
- │TICKER.ARJ │Cln │Real Time Clock, interrupt driven on screen │[1-12]│
- │VSIX711.ARJ │Cln │Vernon Six Clipper utilities and library │[1-05]│
- │VSIX800.ARJ │Cln │Vernon's library, lot of functions │[1-12]│
- │WIPEV11.EXE │Cln │VERY good screen manipulation library │[1-11]│
- └─────────────┴────┴────────────────────────────────────────────────┴──────┘
-
- Src can be:
- Cln File is accesible on ClipperNet
- Cbs File is accesible in HQ BBS of CLipper BBS Magazine
-
-
- ------------------------------------------------------------------------------
-
-
- ClipperNet - CLPFON.ARJ
-
- File Name: PAT2-3.ARJ
- Other Names:
-
- File Size: 8,973 bytes
- File Contents:
- PAT3.DOC 1808
- TBWHILE.PRG 16129
- TBWHILE.OBJ 3438
-
- Patch for NanForum Library number THREE, this time it's improvement of
- TBWHILE, Tbrowsing with While function.
-
- ------------------------------------------------------------------------------
-
-
- ClipperNet - CLIPPLUS.ZIP
-
- File Name: CLIPPLUS.ZIP
- Other Names:
-
- File Size: 106,223 bytes
- File Contents:
- README.1ST 2994 STACK.PRG 1162
- CLIPEXTN.NG 190244 QUEUE.PRG 1426
- CLIPEXTN.LIB 29777 TEMPTURE.PRG 3148
- CLASSDEF.CH 919 TBROWSE.PRG 2444
- CLIP_USR.CH 4540 Z_DIGIT.PRG 762
- CLIP_DEV.CH 4927 Z_ODOMET.PRG 3743
- DIGIT.PRG 1092 Z_MENU.PRG 5152
- CLIPBBS 1-14 Page 22 26 Nov 1991
-
-
- ODOMETER.PRG 802 Z_MENUO.PRG 777
- MENU.PRG 4374 Z_STACK.PRG 1293
- INHERIT.PRG 4050 Z_QUEUE.PRG 1232
- MINHERIT.PRG 1997 Z_TBROWS.PRG 8761
- TITLMSTR.DBF 997
-
- Clipper 5.0 (NO really not 5.01) version of Clipper/++ extension. This one
- is another object extension of Clipper with some unique features. I'm
- really wondering which one from all of is better, or more standard or has
- future. Getting tires of many versions of object extensions (which are
- TOTALLY different in ways of use at all!) i'm thinking about wait till
- Nantucket will give up normalized and stabile Objects for Clipper.
-
- ------------------------------------------------------------------------------
-
-
- ClipperNet - MSWIN.ARJ
-
- File Name: MSWIN.ARJ
- Other Names:
-
- File Size: 3,297 bytes
- File Contents:
- MSWINDOW.LST 4235
- MSWINDOW.OBJ 191
- MSWINDOW.ASM 1989
- WTEST.PRG 69
- MSWINDOW.DOC 436
-
- Function for Clipper 5.0 and Summer87 for returning current state of
- Microsoft Windows (also of course detect if program is working under
- Windows or in DOS session).
-
- ------------------------------------------------------------------------------
-
-
- ClipperNet - POSTPRNT.ARJ
-
- File Name: POSTPRNT.ARJ
- Other Names:
-
- File Size: 3,022 bytes
- File Contents:
- POSTPRNT.DOC 1155
- POSTPRNT.OBJ 4302
-
- Likable PostScript (tm) emulation function. It will send ASCII text file
- into PS printer with possibility to set some parameters as Font, sizes...
-
- ------------------------------------------------------------------------------
-
-
- ClipperNet - SHADO.ARJ
-
- File Name: SHADO.ARJ
- Other Names:
- CLIPBBS 1-14 Page 23 26 Nov 1991
-
-
- File Size: 1,779 bytes
- File Contents:
- SHADOW.OBJ 989
- SHADOW.TXT 886
- DEMO.PRG 962
-
- Another from millions of SHADOW functions. As usual they are creating
- a shadow on screen which is used for making shadow of windows and boxes.
-
- ------------------------------------------------------------------------------
-
-
- ClipperNet - BUTTON.ARJ
-
- File Name: BUTTON.ARJ
- Other Names:
-
- File Size: 3,118 bytes
- File Contents:
- PE.PRG 2918
- PE.CH 2129
- TEST.RMK 156
- TEST.PRG 534
- README.TXT 889
-
- Enhacement of get system for allowing to have sime @GET in form of button.
- On the moment when @GET with button is activated, then it will just change
- between 'on' and 'of' values.
-
- ------------------------------------------------------------------------------
-
-
- ClipperNet - CLPFON.ARJ
-
- File Name: DTF102.ARJ
- Other Names:
-
- File Size: 11,181 bytes
- File Contents:
- DEMO.BAT 57
- DTF.DOC 10891
- DTF.LIB 8719
- DTFDEMO.PRG 8171
- PHONE.DBF 326
- SYSOP.1ST 809
- PHONE.DTF 199
- README.1ST 481
-
- Fully functional version of .DBT files replacement. It's very nice to have
- this i guess, because it can save much of disk space, because DTF is
- replacing .DBT files with ofn .DTF files which are MUCH smaller, FASTER and
- effective for using.
-
- ------------------------------------------------------------------------------
-
-
- CLIPBBS 1-14 Page 24 26 Nov 1991
-
-
- ClipperNet - HOTKEY.ARJ
-
- File Name: HOTKEY.ARJ
- Other Names:
-
- File Size: 1,708 bytes
- File Contents:
- MAKEHOTS.PRG 2669
-
- Small program for trying to make unique hot key letter for every array
- element.
-
- ------------------------------------------------------------------------------
- CLIPBBS 1-14 Page 25 26 Nov 1991
-
-
- ==============================================================================
- CLIPBBS
- ==============================================================================
-
-
- CLIPBBS Distribution
-
- CLIPBBS is special magazine about CLIPPER and CLIPPERing (or about
- another related problems and xBASE languages). This magazine is for
- free and articles aren't honored. Nobody can make a profit from the
- distribution of this magazine.
-
- CLIPBBS can be freely downloaded and uploaded to any BBS or any other
- public system without changes of original contents or number of files
- in original archive (kind of archive can be changed, but we are sup-
- porting ARJ archive because is best and smallest).
-
- If you are interested in CLIPBBS and would like to become a DISTRIBUTION
- site, contact publisher on 2:285/608@fidonet or 27:1331/4412@signet
- or just call to 31-10-4157141 (BBS, working 18:00->08:00, top is V32b) or
- voice to 31-10-4843870 in both cases asking for DANIEL (Docekal).
-
- Distribution sites:
-
- Clipper BBS Home system
- NETCONSULT BBS, SYSOP Daniel Docekal, phone 31-10-4157141
- Daily 18:00 till 08:00 (GMT+1), sat+sun whole day
- Modem speed 1200, 2400, 9600, 12000, 14400 (V32b)
-
- United Kingdom
- Welsh Wizard, SYSOP Dave Wall, phone 44-656-79477
- Daily whole day, modem speed HST
-
- United States of America
- The Southern Clipper, SYSOP Jerry Pults, phone 1-405-789-2078
- Daily whole day, modem speed HST
-
- Clipper File Distrubution Network (ClipperNet, area CL-DOC))
- Various systems around whole world
-
- Programmers Distribution Network (PDN, area PDNDBASE)
- Various systems around whole world
-
- ------------------------------------------------------------------------------
- CLIPBBS 1-14 Page 26 26 Nov 1991
-
-
- How to write articles in CLIPBBS?
-
-
- Submission of articles to CLIPBBS is really easy:
- Maximum of 78 characters per line, as long or as short as you like
- ASCII text.
- Choose from the list of extension which most describes your text, or
- just name it .ART as ARTicle and send it to publisher or to any
- distribution site via modem to BBS or with mailer as file attach.
- Article will come automatically appear in the next free issue.
-
- Extensions are:
-
- Articles (anything) .ART
- Software .SOF
- News .NEW
- Question and Answers .Q&A
- ANOMALIES and their comments .ANO
- Letters to editors .LET
- Advertisement .ADV
- Wanted .WAN
- Comments .CMS
- DUMP from conferences .DMP
- Clipper Net .CLN
-
- That's all at the moment, there will probably be changes later, as the
- magazine evolves. If you have any ideas for a new section of CLIPBBS,
- please tell us, or just write an article about it.
-
- Daniel, publisher
-
- ------------------------------------------------------------------------------
-