Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!gsm001!mailgsm From: gsm@mailgsm.mendelson.com (Geoffrey S. Mendelson) Newsgroups: comp.os.coherent Subject: Re: Re: Coherent Small Model Limitation Message-ID: <21660117@mailgsm.mendelson.com> Date: 28 Apr 91 01:09:01 GMT Sender: news@mailgsm.mendelson.com (GNEWS Version 1.01b2 news poster.) Organization: GNEWS Development Center -- Philadelphia, Pa. Lines: 74 lipka@lip.hanse.de (Michael Lipka) asks: > >Most work in porting software to Coherent has to do with the small >memory model limitation of the Coherent's c-compiler. When I bought >the OS I thought I could solve that problem getting gcc running,- no >chance with 16 bit pointers. > >But I'v heard of i286 XEN*X-sites that use gcc. There may be a >chance to cross-compile gcc (as far as I heard the limitation is only >with the compiler, not the assembler) on such a machine. Has anybody >thought about this or is working on it? I have talked to the people at Mark Williams about this. The major problem is that the 808x,80186, and the 80286 all use 64k program segments. When Coherent was written, this was the way you did things. The compiler can only generate 64k segments. The linker can only generate 64k segments, and the kernal is designed to support 64k segments. As part of the 386 coherent project the compiler and linker were "fixed" to allow bigger (size not stated) segments. Either the 386 no longer has segments, or there is no longer the silly 64k limitation. I believe that a program on the 386 can be as long as there are bits to address it.(32?) Having a 386 compiler, linker and kernal does not mean that you have a saleable product. There are still too many unwanted and to few wanted features. I expect that 386 coherent will hit the streets next year, but that is only a guess. The idea of porting the 386 coherent compiler to 286 coherent has been discussed many times at Mark Williams. It seems that every time someone comes up with an easy way to do it (short of re-writing the Kernal), there is some hunk of code that can't work with that method. So it seems that we are stuck with the 128k (64k per segment) limit. If you want the unlimited program size of UNIX, I'm afraid you are going to have to buy unix. I don't know anything about Xenix, but I have a 386 system running ESIX unix across the room from my coherent system. Not only was it far more expensive, (386sx-16, 4meg ram 2x60m hard disks; bought at last summer's prices), plus the cost of ESIX (about $700), there is a large amount of system adminstration needed to keep a unix box running. Coherent is simple and easy by comparison. I'd rather live with the 64k segment limit. As a side note, I find that I have almost no trouble porting code that I wrote under Coherent to unix. There are some minor differences though. It's more like an early unix, an early BSD, and the developer's own ideas of an operating system thrown in a big pot and mixed slightly. I find the two following books to be a great help when programing for Coherent, I only resort to the man pages, or the manual if these fail me. UNIX Programmer's Quick Reference. By John Valley Que Corporation ISBN 0-88022-535-1 $7.95 us C The pocket Reference. By Herbert Schildt Osbone McGraw-Hill ISBN 0-07-881321-2 $5.95 ------ Geoffrey S. Mendelson geoffrey@mendelson.com (215) 242-8712