[comp.binaries.ibm.pc.d] C compilers - why not TURBO C?

MARWK@levels.sait.edu.au (11/15/89)

In article <1199@utkcs2.cs.utk.edu>, wozniak@utkux1.utk.edu (Bryon Lape) writes:
> 	Yes, but I cannot remember the names of the companies.  C
> compilers that create 386 code are aroung $400+.
> 
> 	Turbo C is a joke and Quick C 2.00 is slow.
> 
> 
> -bryon-


Why is TURBO C a joke?

It is ANSI, has a large number of warning messages, is fast at compiling,
has a superior environment, and I like its debugging facility.

I use TURBO C to to produce code and download it to the VAX (under VMS)
and the ENCORE (under MACH).

Please tell me what I am missing and I may change.

Ray

jhallen@wpi.wpi.edu (Joseph H Allen) (11/15/89)

In article <2764@levels.sait.edu.au> MARWK@levels.sait.edu.au writes:
>In article <1199@utkcs2.cs.utk.edu>, wozniak@utkux1.utk.edu (Bryon Lape) writes:
>> 	Yes, but I cannot remember the names of the companies.  C
>> compilers that create 386 code are aroung $400+.
>> 
>> 	Turbo C is a joke and Quick C 2.00 is slow.
>> 
>> 
>> -bryon-

>Why is TURBO C a joke?

I might agree about QUICK C.  The last time I used it, the editor was
incredibly slow, it required a mouse and I got "INTERNAL ERROR 0001 PLEASE
CALL MICROSOFT SUPPORT" when I tried to compile somthing. (that was a long
time ago though)

But, why is TC it a joke?  The code TC makes isn't terribly great, but I use
it anyway because: 

- It's fast

- It supports tiny model (.COM files)

- Its non-ANSI extensions ease IBM PC/MS-DOS programming:

	/* far memory read for small & tiny models */

	int farread(int fd,char far *buffer,unsigned size)
	{
	unsigned oldds=_DS;
	_BX=fd;
	_CX=size;
	_DX=FP_OFF(buffer);
	_DS=FP_SEG(buffer);
	_AH=0x3f;
	geninterrupt(0x21);		/* This actually makes an 'int 021h'
					   I.E., it's not a function. */
	_DS=oldds;
	__emit__(0x73,0x02,0x19,0xc0);	/* AX=-1 if carry set */
	return _AX;
	}

  Because of these extensions, it's the only compiler I know of that can make
  TSRs without resorting to assembly language.  Device drivers can be made
  by making a simple replacement for the startup code.

- Although its editor is a bit primitive, I generally like its environment.
  In particular, the project file feature is quite handy.  Makefiles are a big
  pain compared to:

	it.c (it.h)
	this.c
	foo.lib
	asmpart.obj

- CS.LIB has only about 3k of helper code (for structures, longs and huge
  pointers).  This is nice since you can make 200 byte C programs if you
  use your own startup code.  (Borland should document this better though)

- It has a nice debugger

- The next error/previous error support is better than that of any stand alone
  editor

TC isn't perfect though.  In particular I'd like it a lot better if:
	- its generated code was better
	- it had a _FLAGS pseudo-variable (even if accessing it overwrites
	  another register)
	- its editor had multiple windows
	- its editor let you use left and right arrow to cross lines
	- its project file would call an assembler (of my choice)

I've also used these compilers:

Zortech:  Makes nice code, but I wish it had an assembly output option.  It
          has a real make utility compared to microsoft and borland.  I use it
	  with tcc when I need to use make.  It would probably be faster than
	  tc if it was memory resident and not in two parts.

Mircosoft's Big compiler:  The code it makes is nice (I like that it uses
			   8088s loop statements).  But it compiles very slow.

Quick C: Maybe you can correct me on this, but I think this compiler is a
         joke.  It only uses medium model in the integrated environment?  Its
	 libraries are different from the Big compilers?  All this may have
         changed since version 1.1

hammer@wsucsa.uucp (Tim .D. Hammer) (11/19/89)

In article <2764@levels.sait.edu.au>, MARWK@levels.sait.edu.au writes:
> 
> I use TURBO C to to produce code and download it to the VAX (under VMS)
> and the ENCORE (under MACH).
> 
> Please tell me what I am missing and I may change.
> 
> Ray

Download to the VAX???  You are most definitely missing the ease of using
VMS. Using the LSE editor on the VAX is a dream, if you haven't tried it,
you should.

I like Turbo C as well and since most C coding that I do is for the PC
platform I use it.  However, I prefer the opposite approach!

-------------------------------------------------------------------------------
Tim .D. Hammer                         BITNET: TDHAMMER@TWSUVAX
Teaching/Research Assistant            UUCP: uunet!ncrlnk!ncrwic!wsucsa!hammer
Computer Science Dept.
Wichita State University               TalkNET: (316)689-3156
Wichita, Ks.  67208-1595

#include <std.disclaimer>
#define VIEWS_and_OPINIONS  MY_OWN  /* no one else would admit to them */
-------------------------------------------------------------------------------
"A little learning is a dangerous thing." Alexander Pope

bright@Data-IO.COM (Walter Bright) (11/23/89)

In article <5620@wpi.wpi.edu> jhallen@wpi.wpi.edu (Joseph H Allen) writes:
<Zortech:  Makes nice code, but I wish it had an assembly output option.

 It does. Run OBJTOASM on the OBJ file generated by the compiler.