Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

realia cobol. exe returns dos16m error under windows 98

Status
Not open for further replies.

rambleon

Programmer
Mar 6, 2004
130
IL
I have a large Realia Cobol prog - 22,000 lines of code the exe file is about 650K. When I run on a DOS PC (not a dos window) or on Windows 2000 it works fine. When I try and
run on Windows 98 I get the following error:

DOS/16M ERROR: Program must be built -AUTO for DPMI

the compilation and linkage is as follows:

REALCOB BigProg
LINK /NOP BigProg,,,REALOS2+REALCOB;
REALBIND/E BigProg.exe

The Procedure Division has lots of Sections with priority numbers, don't know if or how this influences things !!

Thanks for any help

Rambleon
 
I would make sure your Windows 98 system has the extended Memory manager loaded for Dos programs. It sounds like you are trying to use the extended memory (/E on the bind) and it is possible on the Windows 98 machine extended memory has not been made available to your DOS window.

I have located an old Manual for Realia Cobol and looked up one of your link parameters "REALOS2". The book states that the REALOS2 library was developed for the OS/2 platform. You might try linking with "DOSCALLS" in place of the "REALOS2" library. I do not believe this is your problem. The /E of the bind step sets your program to execute in Dual mode which should support both Dos and OS/2 platforms.

I could not find your specific error in the manual.

Good Luck. Maybe someone else has some ideas.

etom
 
You can leave the priority numbers out, it is very old fashioned. In realia 2.0 it generated overlays for sections with the same priority. I didn't use it after that time anymore. Does it still generates OVL files?

Why don't you use the batch files to compile and link?
 
Crox Hi,

Thanks for the suggestion. I'll try taking out the priority numbers from the section headers. Do they influence the memory usage in any way or are they ignored by the compiler?
I had a puzzeling error when I tried removing the priority number from one of the sections it produced a C level error on the statment "GO 01" which I didn't understand and have never come across in Cobol and I do not have any procedure or section names "01" any ideas how this may be connected to the priority number? (if I include the priority number) there are no compilation errors).

Thanks for your help

Rambleon
 
I guess one of your priority numbers is interpreted by the compiler as a label? Search for all the "01" in your source between procedure division and the end of your source.

Perhaps you can show a piece of your source. This should not happen. Perhaps you have a labellist in your listing. Look where your compiler recognized this label...

I don't know if your compiler is really doing something with the priority. It is not smart to use it unless you know exactly what you want to accomplish and if you - of course - know exactly what your compiler is doing with it. Realia 2.0 generated overlays. If you have a smart priority setting, the amount of overhead of (re-)loading overlays can be reduced a lot. But if everything is in memory, there should not be any swapping at all....



 
Crox Hi,
I tried taking out the priority numbers and recieved the following message when compiling:

Segment > 64K object file cannot be linked

What do you mean by "If you have a smart priority setting" ?

Rambleon
 
The priority setting must be done in a way that subroutines which are executed near each other, have the same priority.

For example, if you have a level break in your program, the same levels - initial actions and ending actions of each level - should have the same priority. If you do it a different way, it will not be efficient.

You can and should look these things up in manuals of course.
 
Hi Crox

Cant find much info on priorty-numbers maybe you can suggest a site that has info.
Dont understand how if I have a whole computer room full of memory in my PC why I have to pack everything into 640 K, is
there no way of making all the memory available ?
 
yes it can. If you click on the properties of your ms-dos icon, you can find info about memory. You can create a separate icon for your application with all the memory that is available.
 
Crox
The problem is linking programs larger than 640K, without
the priority numbers I get the following error

Segment > 64K object file cannot be linked
 
Perhaps your problem is the huge amount of sourcelines in one section? The message seems to refer to the amount of allocated storage within one block. By dividing it into sections, you will get smaller blocks I guess. I have had a similar experience with an other compiler on a BTOS system, but never with CA-Realia while I have also some programs with the same size as you have. But I always use a lot of sections and that can be the reason why I didn't had trouble.

Some time ago, there was Andy Ortlof (I hope this is right spelled) whom gave great support for CA-REALIA COBOL. Perhaps you can find him somewhere on the web. Perhaps you can find something here:
You can also send the source to me. I am curious why it doesn't compile and link. I would like to se it myself.

Regards,

Crox
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top