home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d5xx
/
d508
/
hcc.lha
/
HCC
/
ReadMe
< prev
next >
Wrap
Text File
|
1991-06-29
|
11KB
|
246 lines
First, the original copyright of the compiler:
/* Copyright (c) 1988,1989,1991 by Sozobon, Limited. Author: Johann Ruegg
*
* Permission is granted to anyone to use this software for any purpose
* on any computer system, and to redistribute it freely, with the
* following restrictions:
* 1) No charge may be made other than reasonable charges for reproduction.
* 2) Modified versions must be clearly marked as such.
* 3) The authors are not responsible for any harmful consequences
* of using this software, even if they result from defects in it.
*/
Then, the original copyright of the optimizer:
/* Copyright (c) 1988,1989,1991 by Sozobon, Limited. Author: Tony Andrews
*
* Permission is granted to anyone to use this software for any purpose
* on any computer system, and to redistribute it freely, with the
* following restrictions:
* 1) No charge may be made other than reasonable charges for reproduction.
* 2) Modified versions must be clearly marked as such.
* 3) The authors are not responsible for any harmful consequences
* of using this software, even if they result from defects in it.
*/
Then, my copyright:
HCC 2.0 Amiga version 1.1 and TOP 2.0 Amiga version 1.1. I declare the work
done by me as Public Domain. Detlef Wuerkner.
Contents:
---------
Compiler HCC with source, Optimizer TOP with source, Assembler A68k from Fish
#314, Linker BLink from Fish #314, C library CClib.library from Fish #399,
C header files, Startup Code HCC.o, Linker libraries HCC.lib with source
and Stubs.lib, Tool FD2Stubs with source.
Not included:
-------------
Make utility, cc frontend, and other tools. I have never seen a system()
function that returns the returncode of the called program (Execute() returns
whether or not c:Run could be loaded). If you have one (public domain, with
source), let me know.
Also not included:
------------------
The Commodore include files, Commodore linker library amiga.lib.
You will need them when writing Amiga-specific (but non-portable) programs.
Let me cite Jeff Lydiatt (Fish 314):
The include files are available from commodore for a nominal $20 fee.
Write to:
Commodore Business Machines
Software Department
1200 Wilson Drive
West Chester, PA 19380
Ask for the "AmigaDos 1.3 Native Developer Upgrade". The kit contains all
the assembler and C include files, the libraries, autodocs, readme files,
alink, and the library offsets. It comes on 3 or 4 disks - well worth the
$20.
Jeff Lydiatt.
I got the include files from Commodore Germany, Frankfurt. Thanks Commodore!
The file amiga.lib, the autodocs and some tools came also with them.
You should also try to get them from your National Commodore office.
If this is your first contact to C:
-----------------------------------
Here you will find NO manual about the language itself. You should buy a book
about C, for example, Kernighan/Ritchie, The C Programming Language. This book
is also available now in the second edition, ANSI C. This here is not an ANSI C
compiler, but the book should be useful to you at all. It is also available in
german language, I don't know which other languages are available. Of course,
if you won't spend too much money, you first could try the courses published in
several computer magazines.
If you are not familiar with C programming on the Amiga:
--------------------------------------------------------
Look for 'CManual' on Fish #337 from Anders Bjerin. Let me cite him:
'This is the complete C manual for the Amiga which describes
how to open and work with Screens, Windows, Graphics, Gadgets,
Requesters, Alerts, Menus, IDCMP, Sprites etc. The manual
consists of 11 chapters together with more than 70 fully
executable examples with source code.
The examples are written in Lattice C V5.02, but will compile
perfectly with older versions, as well as with other C
compilers.'
OK, this compiler is tested with all examples. It will NOT compile the programs
in directories 'tool' and 'filewindow' without small changes.
You also should try to get the includes and autodocs from Commodore, as
described above. Without the include files, you can't compile the 'CManual',
and many PD programs written in C make use of that files.
If you have enough money:
-------------------------
There are commercial C compilers available for the Amiga which should be, of
course, better than this one. I've not enough money, so I use HCC. This
compiler makes no function prototyping, no stack overflow checking, no array
range checking, few warnings, few meaningful error messages, etc. Although it
comes with full source, it's not easy to improve it, since the number of
comments in the source is nearly zero (for HCC. TOP is documented a little bit
better). If you already have Lattice C: I would be interested if it's possible
to link object files of Lattice and HCC together (object file format, stack
frame, register useage, etc. I heard that Aztec C uses a different object file
format.). Please let me know!
If you want to make money:
--------------------------
If you plan to write commercial or shareware programs with this compiler,
let me cite Robert W. Albrecht Jr., the author of CClib.library:
' THIS IS NOT PUBLIC DOMAIN. You can however create public domain programs
that use it, but you MUST pay a $50 license fee for Version 2.0 or above
to use it with commercial software.'
(Robert W. Albrecht allowed me to distribute CClib.library with HCC, the
actual version is 3.0.)
So, for commercial use, pay your $50 for CClib.library or use another standard
C library. For Public Domain Programs, feel free to use this compiler.
If you want to install this compiler:
-------------------------------------
See the file 'Installation' in the docs directory.
If you are confused about the many PD C Compilers for the Amiga:
----------------------------------------------------------------
Up to Fish #430, there are four main types of C Compilers available:
SmallC, PDC, DICE, and the Sozobon Compiler.
I dont want to tell you the history of the first three, but the Sozobon
Compiler has this history (and names):
Sozobon-C Atari ST version of what appears to be a full K&R freeware
(Fish 171) C-compiler, assembler and linker.
...
Amiga port should be relatively easy.
Author: Sozobon, Limited.
Zc This is a modified version of the Sozobon C compiler
(Fish 193) from disk 171. It has been modified to generate code
compatible with the A68k assembler from disk 186 and
a new frontend control program makes it easy to use
like the UNIX "cc" frontend. Version 1.01, includes
source.
Author: Johann Ruegg; Amiga work by Joe Montgomery
Zc A full K&R C compiler based on a port of the Atari ST
(Fish 314) version of the Sozobon-C compiler. Includes the C compiler
main pass written by Johann Ruegg with fixes and enhancements
by Joe Montgomery and Jeff Lydiatt, a cc front end written
by Fred Fish with enhancements by Jeff Lydiatt and Ralph
Babel, an optimizer written by Tony Andrews, an assembler
written by Brian Anderson and Charlie Gibb, a linker written
by the Software Distillery, generic include files, and a C
runtime library written by Dale Schumacher and ported by
Jeff Lydiatt. This is version 1.01, an update to disks 171
and 193.
Author: Various, see documentation.
NorthC A complete freely redistributable C environment for the
(Fish 340) Amiga based on the Sozobon Ltd C compiler, Charlie Gibb's
assembler, the Software Distillery's linker, and portions
from other sources. Steve has pulled everything together
and added some enhancements in the process. Version 1.0,
partial source only.
Author: Steve Hawtin, et. al.
NorthC ...
(Fish 353) version 1.1, an update to version 1.0 on disk 340.
Partial source only.
Author: Steve Hawtin, et. al.
NorthC ...
(Fish 384) version 1.2, an
update to version 1.1 on disk 353. Changes include extra
examples, many bug fixes, further documentation and some
improvements. The environment is supplied compressed and
unpacks to two disks. Partial source is included.
Author: Steve Hawtin, Charlie Gibbs, Sozobon Ltd, The
Software Distilary and many others.
Now what is HCC ? HCC was based on Zc from Fish 193. I improved it until it
could compile itself. Then Sozobon Ltd sent me version 1.2 of the original
Atari compiler (Yes, on the Atari there exist also different versions!).
After implementing the changes in the compiler and portating the optimizer (can
now 'registerize' variables!), the name was changed to HCC (This is the original
name of it). Then the C library used was changed from my personal dLibs hack to
CClib.library from Robert W. Albrecht. This required implementation of 32 bit
ints and modification of register usage. I could release that version, but I
didn't, since it contained some bugs I couldn't find, especially with (now 32
bit) bit fields. This bit field bugs seem to be fixed now, since the Atari
version 2.0 reached me some weeks ago from Sozobon Ltd. From Zc on Fish 314 I
implemented a few modifications done by Jeff Lydiatt. From NorthC I could not
implement anything, since... partial source only (No source of compiler) !
Special note to Jeff Lydiatt and Steve Hawtin: Feel free to implement the
changes in your compilers. Contact me if you think the number of versions should
be reduced (I think so). But I want a compiler that completely compiles itself
(without Aztec library functions), has full source code and documented changes.
If you want to improve this compiler:
-------------------------------------
Feel free! And, if you really fixed a bug or made some enhancements, don't make
this for your own, there are other Amiga users which would be pleased about.
But, to prevent Fred Fish from including yet another version of HCC in his
library every two weeks, I think it would be best if you would do this two
things:
--- Do not change the source without a little comment. There will be, of
course, different versions, for Atari and for Amiga (and UNIX and MSDOS), in the
future, and it was difficult enough for me to implement the Atari 2.0
enhancements in my Amiga version, since they were not commented. The next Atari
version will also be not commented, I think. It was also not easy to find the
differences between Zc from Fish #314 and Zc from Fish #193, since only Jeff
Lydiatt commented his changes (Thanks Jeff!). So, please, comment your changes,
even something like /* Mr. X */ would help me to find them for inclusion in the
next version of HCC.
--- Of course, you can send your improvements directly to Fred Fish. For major
enhancements, this would be the best way. But, please, send minor enhancements,
especially such of HCC and TOP itself, to me for collecting them and inclusion
in the next release of HCC to prevent too much different versions. One version
with all enhancements is better than 27 versions with less enhancements. I would
be pleased even about very little improvements, and I will mention them together
with the names of the authors. This applys, of course, also for bug reports. I
can't guarantee a personal response to each of you, since this is the first time
I release something in the PD, and I can't say how many letters will drop in.
But I'll try to do my best.
Greetings to all AMIGA freaks,
Detlef Wuerkner
Werrastrasse 7
D-6300 Giessen
GERMANY