Link to home
Start Free TrialLog in
Avatar of perryhayden
perryhayden

asked on

Clipper Summer of '87

I have a DOS program written in Cliiper summer of '87 version and am trying to get it to run on Windows 98.  I received help from gheath a few months ago and I got it running by adding SET CLIPPER=F55;V15;EO to my config.sys and adding FILESHIGH=100 and BUFFERSHIGH=20,4 to the autoexec.bat.  I just bought another machine to complete my upgrading and it won't run the clipper program.  It will compile and it will run a small program with a few files open but it will not run a program that opens several files.
Avatar of twol
twol
Flag of United States of America image

How many files will it open...the default clipper file handles is 20. If that is about where yu are failing then you need to check the two things gheath gave you before.

The F55 part of the clipper command is the max file handles that clipper will handle.

Try taking the HIGH of of files in your config.sys file

FILES=100

Then change your SET CLIPPER to

SET CLIPPER=F99;V11   (the command we used for a long time).

Another thing is that the older versions of clipper used expanded memory, I believe. Make sure in the properties of your MSDOS session that you allocate as least 2 meg of this.

(Don't mess with the memory until you try the settting changes first)
Avatar of perryhayden
perryhayden

ASKER

twol, I tried your suggestions and they did not work.  The message I get is it can't open an index.  It is the 16th file or index to be openned.  I also tried allocating the memory in the properties of the DOS session.  I set the expanded(EMS)memory to 16384 which is the max the screen allowed. It didn't work.  Any other ideas?  I can rewrite the program so that it opens and closes files as it needs them and it will run but figuring out how to open them all at once will save me a lot of time.
Specifically, what is the clipper error you get.
proc net_use line 40, open error c:\clipper\retail\spofile.dbretry? (y/N)

Spofile.dbf is the 16th file and index to open.  I tried rewriting the program so that it opens less files at the beginning and it works.  
Can you post your config.sys and autoexec for me to look at?
Try increasing FILES=120 and BUFFERS=100. It should work
My config.sys file is:
Fileshigh=100
buffershigh=20,4
Device = c:\dvdrom\oakcdrom.sys/d:gem001

Autoexec.bat:

@echo off
set path = c:\clipper
set clipper = f99;v11;EO
set lib = \clipper\lib
set obj = \clipper\obj
c:\windows\cwcdata\cwcdos.exe

I have tried all the suggestions given including changing the fileshigh and buffershigh to file=120 and buffers=100 which did not work.  
Just making sure...you don't really have spaces between clipper and = and f99 do you? It's been a while since s'87, but I think that may have been a problem.
You should definitely not have any spaces in your SET CLIPPER=f99....

Ideally the f value should be 5 greater than the filehigh value and it should be an odd number. I think your V parameter is a bit on the low side and it may be helpful to add an R parameter to allocate more memory for indexing. I suggest that you change the SET CLIPPER line to:

SET CLIPPER=F105;V24;E0;R16

I tried your suggestion of the SET CLIPPER=F105;V24;EO;R16 and I still get the same problem. It wont open the 16th file or index.  I have solved my problem by rewriting the program so it only opens what it needs as it needs it, but I would still like to figure out how to open more files at once.
Your config.sys and autoexec.bat seems okay. It might sound silly but have you reboot your machine everytime you make changes to your config.sys?

Another thing is, have you consider moving to Clipper 5.x? :-)
Yes I rebootted.  Yes I just purchased Clipper 5.x and am about to try to learn to use it when I have time.  I am not a programmer but a gift shop owner who knows enough clipper to do some things.  I was hoping to keep the Clipper summer of 87 running on windows 98.  I have solved ii for now by rewritting the program so that it only opens the files it needs as it needs them.  I wonder what problems windows 2000 will cause.
I do not think it would cause any problem using Clipper 5.x under Windows 2000. Clipper Summer 87? Hmm...

Hi,

perryhayden, try to make your config.sys imply share.exe. (Use <system disk>:\windows\command\share.exe, of course!) You have got some sharing problem I'm afraid. Remember: never use smartdrive if you have to run a Clipper application. (I don't see you using, I foreworn only.)

By the way: FILES (or FILESHIGH, egal) serves memory places for DOS file handles. Setting CLIPPER F parameter forces Clipper delimiting how many file handles may it use among of them. So giving an F parameter bigger than FILES makes no sense. Clipper executive itself uses up at least one handle (when beneath EXE there are OVL-s, or, EXE does have more than one overlay sections in it then more than one handles) so when you have a FILES value of 100 then the maximum of acceptable SET CLIPPER F values is 99. F value can be either even or odd, it does not make a difference.

Another point of view: I don't know cwcdos. Have you tried without it? (Use Windows' native DOS, I mean.)

At least: I don't know your crosspiler with which you made your Windows executive. It could happen, however, that this engine reserves Clipper's ancient demand for Expanded Memory. Windows by self does not support EMM. When you need EMM in an application you have to run an EMM driver from with config.sys file. Try it, too!

Please, report whether it succeded or not!

Much luck!

Charles
Perry,

Sorry for Bad News, but Clipper Summer '87 only allows 15 Index per .dbf files.

This is why your application fails on the 16th index.

You have two basic choices, reduce the numbers of indexs, or take the plunge for Clipper 5.x

If you doubt me, read the manual (or Norton Guide) file for the SET INDEX command.

Sorry i could give give better news..

cheers

gerard
To csabay "Charles"  I am afraid I don't know enough to be uble to understand your comments or know what to do.  I have tried restarting the machine in DOS and running the program with the same result.  I don't know how the use the share.exe I don't know how to use the emm driver in the config.sys


to GerardKeating.  The program as written opens at the beginning 12 different dbf files each with 3 or 4 indexes.  It does not have one file with over 15 indexes.  The program as written runs fine on a DOS 5 machine and have for years.  It even runs on one of my Windows 98 machines and not on the other.
OK, perryhayden,

I try to explain. You have to insert into your autoexec.bat file a line like
C:\WINDOWS\COMMAND\SHARE.EXE
(Instead of C: there can stay any of other system drives, of course.) There is an equivalent form for using it by config.sys, that seems like
INSTALL=C:\WINDOWS\COMMAND\SHARE.EXE
SHARE has got two options, they are /F and /L. They refer to the size of memory space allocated to store file sharing information and the number of the files being able to be locked at the same time. SHARE defaults them to 2048 and 20, respectively. These values satisfy at the most cases, you can, however, increase them. You can write in your autoexec.bat e.g.:
C:\WINDOWS\COMMAND\SHARE.EXE /F:4096 /L:40

That was SHARE.

There are a lot of EMM drivers at hand. The most common among them is EMM386.EXE which is shipped with DOS. (With Win98's native DOS, too.) In a regular case you find it in your C:\WINDOWS directory. To gain EMM support you have to insert into your config.sys the following two lines:
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\WINDOWS\EMM386.EXE
Attention! These line do not have an autoexec.bat equivalent.

It is not the most important thing but I suggest you to insert these lines at the TOP of your config.sys file. Try it and give a reference, please!

Charles
Charles
Still getting same error message. This is my autoexec and config files now.  I have made some many changes recently, I not sure if I have things right.
Autoexec.bat
REM [Header]
@ECHO OFF
SET PATH =C:\CLIPPER
SET CLIPPER=F55;V15;EO
SET LIB=\CLIPPER\LIB
SET OBJ = \CLIPPER\OBJ
REM [DVD-ROM Drive]
REM c:\windows\command\mscdex /d:gem001
REM [Miscellaneous]
REM [Display]
REM [Sound, MIDI, or Video Capture Card]
REM [Mouse]
c:\windows\cwcdata\cwcdos.exe

Config.sys
REM [Header]
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\WINDOWS\EMM386.EXE
c:\windows\command\share.exe/F:4096/L:40
 FILESHIGH=99
 BUFFERSHIGH=20,4
REM [DVD-ROM Drive]
Device=C:\Dvdrom\oakcdrom.sys /d:gem001
REM [Miscellaneous]
REM [SCSI Controllers]
REM [Display]
REM [Sound, MIDI, or Video Capture Card]
REM [Mouse]
REM ------------------

Perry,

You said your system has "12 different dbf files each with 3 or 4 indexes."

That's almost 50 files handles (once for each dbf and index file). Does any of your dbf files have memo fields, a dbf file with memos, requires TWO files handles.

"SET CLIPPER=F55;V15;EO"

The above line in your autoexec limits you to 55 handles, you sound like you are very close to this limit.

What is the total number of dbf files and index files used my your system.

Type changing the above line to

SET CLIPPER=F250;V15;EO

and (in config.sys)

FilesHigh=255

Adjusted points to 400
Tried it. didn't work.  It don't think that is the problem because it won't open the 15th file and index not the 55th.
ASKER CERTIFIED SOLUTION
Avatar of GerardKeating
GerardKeating

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Bingo, it worked
perryhayden,

your problem is solved. That was the most important thing. So it is quite not necessary to correct your config.sys but for sake of exactness I repeat my previous statement: SHARE's config.sys form starts with INSTALL=. A bare call never works in the config.sys.

Charles
Thanks Charles.  I learned a lot from everyone's suggestions and comments.
Perry