[comp.os.minix] Turbo C and Minix

doug@marque.UUCP (harris) (06/30/87)

Having just received my Borland Turbo C (the T shirt is swell:-),
having had the Minix diskettes for some time, and having received
and installed the Unix "tar" tape of Minix from PH last week, my
cup overfloweth.  Planning to use Andy's Minix book in the fall
for an intro graduate course in Operating Systems (having just
completed one out of Bach this summer on SysV internals) I'm
wondering how to go on a compilation system for me and for the
class.  Among the options are: get the Amsterdam compiler,
modify Chris Terman's 8086 cross compiler from PC/IP, go with
Microsoft 4.0 used on PCs, or go with Turbo C.  Are there any
experiences of folks (please, absolutely no "my C is better than
your C" stuff) using any of these that they will share? Any email
responses will be  compiled and reposted (guess "compiled" could
be misunderstood :--).  In particular has anyone used Turbo C
yet for the purpose?  It certainly sounds useable after 30
minutes with the manuals provided (does anything sound unuseable
from its manuals - yes, I know, Unix).

myxm@beta.UUCP (Mike Mitchell) (06/30/87)

In article <1716@marque.UUCP>, doug@marque.UUCP (harris) writes:
> Having just received my Borland Turbo C (the T shirt is swell:-),
> be misunderstood :--).  In particular has anyone used Turbo C

The answer is yes, however, I am still having problems getting the 
kernel to link. I have successfully used the Turbo C to create and
maintain a Minix library of tiny/small memory model routines. When
I compile something using the tiny memory model, everything seems
to work fine. I am still having problems figuring out what the deal
is with the small memory model (separate I&D). But, from what I can
tell, the Turbo C compiler generates code which is much much smaller
than that from the Minix C compiler and a little smaller than the
code from the PC/IX C compiler.

Personally, I like the speed. I can compile something on an AT using
Microsoft C and on an XT with Turbo C--the funny thing is that they
both finish about the same time!

If you decide to persue the idea of Turbo C in a development environment,
please keep me informed! I am interested.

Mike Mitchell
myxm@lanl.arpa
{backbone sites}!cmcl2!lanl!myxm

ddl@husc6.UUCP (Dan Lanciani) (07/01/87)

In article <7035@beta.UUCP>, myxm@beta.UUCP (Mike Mitchell) writes:
> The answer is yes, however, I am still having problems getting the 
> kernel to link. I have successfully used the Turbo C to create and
> maintain a Minix library of tiny/small memory model routines. When
> I compile something using the tiny memory model, everything seems
> to work fine. I am still having problems figuring out what the deal
> is with the small memory model (separate I&D).

	The problem with the small (or any non-tiny) model is that
all the helper functions in the C library are invoked with non-relocatable,
FAR calls.  The tiny model substitutes a push of CS followed by a NEAR
call to the same routine.  One way around this is to generate .ASM files
and run an editor script to change all the FAR calls either to the push
CS/NEAR call sequence or simply to a NEAR call.  In the latter case it
will be necessary to edit the helper functions to use NEAR retruns.
	Now, the really interesting thing is that there appears to be
NO difference between small and tiny model other than those
NEAR/FAR calls.  The actual control of segment grouping happens in the
startup file.  This means you can compile for tiny model and still
generate split I&D programs at link time.  (Aren't segments wonderful :-)
I used this method and an appropriately hacked startup file to compile
my (non-MINIX) split I&D kernel (normally compiled with MSC) and it
worked fine.  The code was a few K bigger than the MSC version, incidentally.

					Dan Lanciani
					ddl@harvard.*

aiv@euraiv1.UUCP (Eelco van Asperen) (07/02/87)

In article <7035@beta.UUCP>, myxm@beta.UUCP (Mike Mitchell) writes:
> In article <1716@marque.UUCP>, doug@marque.UUCP (harris) writes:
> > Having just received my Borland Turbo C (the T shirt is swell:-),
> > be misunderstood :--).  In particular has anyone used Turbo C
> 
> The answer is yes, however, I am still having problems getting the 
> kernel to link. I have successfully used the Turbo C to create and
> maintain a Minix library of tiny/small memory model routines. When
> I compile something using the tiny memory model, everything seems
> to work fine. I am still having problems figuring out what the deal
> is with the small memory model (separate I&D). But, from what I can
> tell, the Turbo C compiler generates code which is much much smaller
> than that from the Minix C compiler and a little smaller than the
> code from the PC/IX C compiler.

Ain't the net a wonderfull thing; this is the problem I solved late
last night (this morning really). It turns out that Turbo C uses
FAR CALLS (!) for the long-integer routines in the library when you
compile for the Small-model; if you however use the Tiny-model (that
uses the same library, only with a different startup-file), then Turbo C
uses NEAR CALLS as it should. So: compile with the Tiny model (-mt for
tcc) and don't worry about the total size.

As you can imagine, this took a while to find out; only when I was
about to give up, I compiled a test program with the -S option and studied
the resulting assembler-code et voila !

If enough people are interested, we could compile a set of diff's for
use with Turbo C and post them; let's count the votes....

[praise ast...]

Eelco van Asperen
Unix Systems Manager

-----------------------------------------+-------------------------------------
Erasmus University Rotterdam             |uucp:mcvax!{eurifb,olnl1}!euraiv1!aiv 
Fac. of Economics, Computer Science Dept.|earn:asperen@hroeur5
PO.box  1738 / 3000 DR  Rotterdam        |       
T H E    N E T H E R L A N D S           |(this space intentionally left blank)
-----------------------------------------+-------------------------------------

pre1@sphinx.uchicago.edu (Grant Prellwitz) (07/05/87)

In article <568@euraiv1.UUCP> aiv@euraiv1.UUCP (Eelco van Asperen) writes:
>
>If enough people are interested, we could compile a set of diff's for
>use with Turbo C and post them; let's count the votes....
...
>Eelco van Asperen
>Unix Systems Manager
>
>-----------------------------------------+-------------------------------------
>Erasmus University Rotterdam             |uucp:mcvax!{eurifb,olnl1}!euraiv1!aiv 
>Fac. of Economics, Computer Science Dept.|earn:asperen@hroeur5
>PO.box  1738 / 3000 DR  Rotterdam        |       
>T H E    N E T H E R L A N D S           |(this space intentionally left blank)
>-----------------------------------------+-------------------------------------

Please count this as a vote for posting the diff's for Turbo C.  I just 
received Turbo C Friday, the same day I ordered the actual software for Minix.
(I ordered the Book back in February, again in April, and again in June.  Still
haven't gotten it :-(.  

Following up on a number from ast, I eventually got to the right number to 
order MINIX.  The number is
                                     1-800-223-1360 (in the USA)
The number ast gave me was (210) 767-5937.  They eventually referred me to
the number above.  The apparent trick to getting the software quickly is to 
spend the extra $6 to get it shipped 2-day air.  The advantage is not in the 
shipping time, but in the fact that this bypasses their entire ordering scheme
and gets things handled immediately.  Another interesting fact is that mail 
orders receive the least attention.  All this information came from the lady
taking my order, I will be able to confirm it (or deny it) when I actually
receive my little package.  She also said that the stuff has been in stock 
since March.  

		Grant

-- 
=====================Grant Prellwitz==========================
!ihnp4!gargoyle!sphinx!pre1          pre1@sphinx.UChicago.UUCP 
76474,2121 (CIS)                                    pre1 (BIX)  
The DOCTOR didn't need a funny line, why do I?

sbanner1@uvicctr.UUCP (07/06/87)

In article <568@euraiv1.UUCP> aiv@euraiv1.UUCP (Eelco van Asperen) writes:
>
>If enough people are interested, we could compile a set of diff's for
>use with Turbo C and post them; let's count the votes....
>

  One vote here...

                      S. John Banner

...!uw-beaver!uvicctr!sol!sbanner1
...!ubc-vision!uvicctr!sol!sbanner1
ccsjb@uvvm
sbanner1@sol.UVIC.CDN

ESC1332%ESOC.BITNET@wiscvm.wisc.edu (K.Keyte) (07/14/87)

Do we need a vote for interested parties re. Turbo C & Minix. I think it'll
get enough interest immediately to warrant being put in an archive. It'll
also save mail traffic in the long-run.

Karl