Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!news.cs.indiana.edu!ux1.cso.uiuc.edu!milo.mcs.anl.gov!sirius.mcs.anl.gov!winans From: winans@sirius.mcs.anl.gov (John Winans) Newsgroups: comp.os.coherent Subject: Re: Coherent Small Model Limitation (a long talk on small models) Keywords: coherent Message-ID: <1991Apr12.192128.6715@mcs.anl.gov> Date: 12 Apr 91 19:21:28 GMT References: Sender: news@mcs.anl.gov Organization: Argonne National Laboratory, Chicago, Illinois Lines: 50 Nntp-Posting-Host: sirius.mcs.anl.gov In article cafl@lindy.stanford.edu (Carol Farlow Lerche) writes: >Could someone on this group post whether the small model limit is in the >Coherent C compiler or in the operating system? If the former, has anyone >tried to convert DOS .OBJ or .EXE files to whatever the native form under >Coherent is? Or are compatible forms used? The whole memory model thing is more a culture than a restriction imposed by the compiler or the OS. But since the OS is in charge of maintaining the culture, I guess we could 'blame' the OS for it. They are not compatible. But what you probably really wanna know is by how much. And on that one I can only guess, but since I have written a few simple OS's, I would put a few $$$s on that they are using considerably different calling conventions when entering the kernel. In fact it would probaby faster to just re-write an application from scratch than to try to convert something even as simple-looking as XTREE than to try to convert it's binary or object file. This problem of dealing with foreign object files is the subject of the Inetl interface spec that is being outlined (or is now finished... I am not sure) as I type this. When finished, it will descripe linkage conventions in such a way that any OS can run any other OS's programs. I personally wish them luck on it. It will not be easy to account for EVERY nuance of EVERY OS that they wish to cover. So, the general answer is NO. But, if you wrote a chunk of code that used no OS services (rather difficult if you wish it to do anything.. like I/O or even terminate properly for that matter) It is just going to be 80286 code and as such would 'run' under Coherent. But you would have to write a program to translate the .OBJ (or whatever) into an a.out format. So in that case, the answer would be yes. (But keep in mind that you would not be able to use any of the standard lib code that came with the DOS compiler! And that means no access to stuff you probably take for granted in DOS like video ram access and com ports etc...) For these, you would probably have to write 'cap' routines to interface with Coherent's libs. Quite similar to the sort of stuff you have to write to deal with calling functions in foreign languages. This type of coding problem is usually too much trouble and causes time to be removed from one's life expectancy. ESPECIALLY if you are trying to convert a program for which you have no source!!! It is challenging, but perhaps the largest pain in the #&@%ing @$$ you will ever wanna deal with. Ofcourse I HAVE been wrong before, your mileage may very :) --John -- ! John Winans Advanced Computing Research Facility ! ! winans@mcs.anl.gov Argonne National Laboratory, Illinois ! ! ! !"The large print giveth, and the small print taketh away"-- Tom Waits !