Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: $Revision: 1.6.2.16 $; site ima.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!gatech!seismo!harvard!bbnccv!ima!johnl From: johnl@ima.UUCP Newsgroups: net.micro Subject: Re: Re: 386 Family Products (8086 sucks Message-ID: <97800015@ima.UUCP> Date: Tue, 10-Dec-85 16:14:00 EST Article-I.D.: ima.97800015 Posted: Tue Dec 10 16:14:00 1985 Date-Received: Fri, 13-Dec-85 07:30:19 EST References: <133@daisy.UUCP> Lines: 38 Nf-ID: #R:daisy:-13300:ima:97800015:000:2051 Nf-From: ima!johnl Dec 10 16:14:00 1985 /* Written 2:16 pm Dec 8, 1985 by brad@looking in ima:net.micro */ > In article <97800013@ima.UUCP> johnl@ima.UUCP writes: > >Oh, stop it. It's just not true that existing compilers can hide the > >808x's segmentation. I have just spent the last year and a half writing a > I'll correct you, because you are wrong. ... > > You appear (correct *me* if I'm wrong) to be confusing "dealing with > segmentation" with "writing good C programs." > > Now I will tell you that we did have lots of segment headaches later, > but that was only because of a conscious decision to switch to a > "hybrid" model using the Microsoft C compiler. We did this because we > required the program to run on a 256K IBM-PC. If we had been content > to run on a 320K machine, there would have been no troubles. No, I'm right, but I think we actually agree. Our program is a lot bigger than yours -- it's over 400K of code, mostly medium model but about 10% large model. The problems I'm concerned about are not debugging problems, but algorithmic problems. You have to use a hybrid model to make the program fit (and we overlay that) and you have to write lots of extra code to deal with mixed models. If your objects are bigger than 64K, then you have to decide whether to use huge model code which is huge and slow, or large model code which needs fiddling to deal with large objects. Then we had to write even more code to deal with the Lotus/Intel bank switching scheme which, after all, is only needed because of the addressing complications. There is simply a lot of code in our program that is there solely because of the segmented architecture. I suspect that if we redid it for a 386, the total size would be smaller because even though some of the instructions would be bigger, the ones that do the segment munging wouldn't be there at all. Sure, if your program fits into your computer compiled huge model and runs fast enough for you, segmentation is no problem. For the rest of us, it is a royal pain. John Levine, ima!johnl