santol@cbnewsc.ATT.COM (shawn.r.antol) (02/07/90)
Question: How do I make external clipper overlays? Preliminary: I have read the manuals on the "overlaying" and have tried many things. None seem to work. I have created a ".LNK" file that I feed into plink86 (yuck!). The .LNK file contains the commands: BEGINAREA SECTION FILE xxx.ovl INTO a,b,c SECTION FILE yyy.ovl INTO c,d,e ENDAREA I have compiled a,b,c,d,e and the .OBJ files are in the right directory. The question is: What makes xxx.ovl and yyy.ovl? Is it the compiler (I don't think so), is it plink86? Is there any way to use the MS-DOS linker instead of plink86? Help! Shawn Antol AT&T Bell Laboratories Naperville, IL, USA (708)-979-5622 att!ihlpb!santol
rreiner@yunexus.UUCP (Richard Reiner) (02/11/90)
daniel.comeau@canremote.uucp (DANIEL COMEAU) writes: >SA>Is there any way to use the MS-DOS linker instead of plink86? >Yes, if you don't required overlays. Many small applications don't >need overlays. The MS-DOS Linker is considerably faster than PLINK86. MS Link has been able to do overlays for years. It has the added advantage of keeping the overlay code in the .exe file, rather than littering your world with .ovl files. -- Richard J. Reiner rreiner@nexus.yorku.ca BITNET: rreiner@yorkvm1.bitnet (also rreiner@vm1.yorku.ca)
william.pipher@canremote.uucp (WILLIAM PIPHER) (02/11/90)
To: ALL santol@cbnewsc.ATT.COM asked recently: >Question: How do I make external clipper overlays? > BEGINAREA > SECTION FILE xxx.ovl INTO a,b,c > SECTION FILE yyy.ovl INTO c,d,e > ENDAREA I'm not sure that your syntax is correct. A while ago I wrote an application that required internal overlays for efficient memory utilization at run-time. I modified the link file so as to produce external overlays instead of internal, for your edification. I can't be sure that it is the best way to organize external overlays because it is designed to optimize for internals, but it nevertheless works. Here it is by way of example: FI D:\clipobj\cupw, d:\clipobj\wmperror MAP = d:\CLIPOBJ\cupw.map OUTPUT E:\CUPW\TEST.EXE LIB EXTEND.LIB, WMP_NET.LIB, OVERLAY.LIB BEGIN SECTION INTO OVL1 FI d:\clipobj\change SECTION INTO OVL1 FI d:\clipobj\report END BEGIN SECTION INTO OVL2 FI d:\clipobj\menus SECTION INTO OVL2 FI d:\clipobj\exit SECTION INTO OVL2 FI d:\clipobj\sign_on SECTION INTO OVL2 FI d:\clipobj\sto SECTION INTO OVL2 FI d:\clipobj\reputil SECTION INTO OVL2 FI d:\clipobj\purgshow SECTION INTO OVL2 FI d:\clipobj\show END BEGIN SECTION INTO OVL3 FI d:\clipobj\lens SECTION INTO OVL3 FI d:\clipobj\lenr SECTION INTO OVL3 FI d:\clipobj\wrap SECTION INTO OVL3 FI d:\clipobj\compare SECTION INTO OVL3 FI d:\clipobj\status SECTION INTO OVL3 FI d:\clipobj\conf END The linker creates TEST.EXE and 3 overlay files named OVL1.OVL, OVL2.OVL, OVL3.OVL. I could have called them anything I liked. Note that EXTEND.LIB and OVERLAY.LIB are linked in, but there is no call to CLIPPER.LIB. I organized the link file such that both: a) each section within any one area is the same size (consult your compiler output MEMORY.MAP) as each other section in the same area. This maximizes memory use efficiency. AND b) no one section, either directly or indirectly, ever calls another section within the SAME area. Consult your flow charts. Failure to abide by this condition will crash your program and probably your system, guaranteed. Do you really need external overlays? You do if the size of your executable file on disk is too large for easy handling i.e. larger than 360K for DD disk storage. But if the object of the overlays are to reduce run-time memory requirements only, then go with internal overlays. They run faster than the external kind, and are more reliable. The above link file is converted back to internal overlays by simply removing the "INTO OVLn" phrases from the list. >The question is: What makes xxx.ovl and yyy.ovl? Is it the compiler? No. >is it plink86? Yes. >Is there any way to use the MS-DOS linker instead of plink86? You cannot at this time produce overlaid CLIPPER applications unless you link with PLINK. Maybe the new CLIPPER, due out real soon now, will provide a faster linker. The MS-DOS linker works fine on non-overlaid CLIPPER apps. Good luck -- it took me a week or 2 to figure this stuff out the first time, maybe you'll do better! --- ~ DeLuxe 1.11a18 #3744 william.pipher@canremote.uucp
cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) (02/12/90)
In article <90021007304075@masnet.uucp> daniel.comeau@canremote.uucp (DANIEL COMEAU) writes:
$SA>Is there any way to use the MS-DOS linker instead of plink86?
$Yes, if you don't required overlays. Many small applications don't
$need overlays. The MS-DOS Linker is considerably faster than PLINK86.
And if you have Turbo C 1.0, you can use TLINK and it's several
times faster again than the DOS linker. I've found that TLINK V2.0
doesn't work reliably with Clipper, but V1.0 does.
--
Stephen M. Dunn cs4g6ag@maccs.dcss.mcmaster.ca
<std_disclaimer.h> = "\nI'm only an undergraduate!!!\n";
****************************************************************************
I Think I'm Going Bald - Caress of Steel, Rush
cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) (02/12/90)
In article <7453@yunexus.UUCP> rreiner@yunexus.UUCP (Richard Reiner) writes:
$MS Link has been able to do overlays for years. It has the added
$advantage of keeping the overlay code in the .exe file, rather than
$littering your world with .ovl files.
PLINK will also do internal overlays if you want them. However, there
may be valid reasons for not wanting them. For example, let's say your
program's .EXE is 450K and you want to distribute it on 360K disks but
don't want to have to archive it and provide an unarchiving program.
If you can split it up into a 350K executable and one or more overlays,
you can now distribute it.
--
Stephen M. Dunn cs4g6ag@maccs.dcss.mcmaster.ca
<std_disclaimer.h> = "\nI'm only an undergraduate!!!\n";
****************************************************************************
I Think I'm Going Bald - Caress of Steel, Rush
daniel.comeau@canremote.uucp (DANIEL COMEAU) (02/14/90)
RR> MS Link has been able to do overlays for years. When it comes to linking Clipper applications, the Clipper Manual states: Note: Overlays cannot be constructed with the DOS Linker. To construct overlays, use PLINK86-Plus. p.7-7 Clipper Summer '87 Manual RR> It has the added advantage of keeping the overlay code in the .exe RR> file, rather than littering your world with .ovl files. PLINK86-Plus has no problems with generating internal overlays. Daniel Comeau --- * Via Qwikmail 2.02a. ~ RNet 1.04A: Synapse BBS - Gatineau PQ - (819) 561-5268
daniel.comeau@canremote.uucp (DANIEL COMEAU) (03/14/90)
SA>The question is: What makes xxx.ovl and yyy.ovl? SA>Is it the compiler (I don't think so), is it plink86? Yes, PLINK86 (the overlay linker) makes the OVL (overlay) files. SA>Is there any way to use the MS-DOS linker instead of plink86? Yes, if you don't required overlays. Many small applications don't need overlays. The MS-DOS Linker is considerably faster than PLINK86. Dan --- * Via Qwikmail 2.02a. ~ RNet 1.04A: Synapse BBS - Gatineau PQ - (819) 561-5268