
			    DICE SOURCE CODE RELEASE README

    (c)Copyright 1992-1997 Obvious Implementations Corp.  Redistribution and
       use is allowed under the terms of the DICE-LICENSE FILE,
       DICE-LICENSE.TXT.

    Well, here it is.  The source to DICE.  I really meant to release this a
    lot sooner.  I plead laziness :-)  Note that I haven't touched my Amiga
    for quite a while, and the library support may very well be lacking.
    Support up to the amiga 3.0 includes / library is included, but the
    amiga includes themselves are not included because I am not sure what
    the disposition of commodore's copyright is.

    DICE is a 68000 compiler.  It was written as an Amiga C compiler, but it
    can really be used as a generic 68000 C compiler.  Even though I haven't
    touched an Amiga for a while, I still use DICE on my FreeBSD box to 
    compile 68000 projects.

    DICE will compile on an Amiga, linux, or FreeBSD machine.  Most of the
    utilities will generate the correct 68000 byte ordering even when compiled
    on an Intel box.  It will generate Amiga binaries and utilities are 
    included to generate ROMable code.   All DICE features work and the
    relocateable and small-data models are incredibly powerful when used in
    an embedded environment.

    My email address and web pages

	dillon@backplane.com
	http://www.backplane.com/
	http://www.obviously.com/

    I am willing to maintain the source tree, at least for a little while.
    Bug fixes should be emailed to me.

(I)  MISSING FILES

    There is some confusion as to whether the Amiga includes can be 
    distributed.  Before commodore went belly-up, they did make the .FD
    files free, so I am including the fd/ and clib/ subdirectories for
    the 1.3, 2.0. and 3.0 includes but I am not including any of the
    commodore structural includes (exec/, intuition/, etc...)

    If you have the amiga includes, the 1.3 includes should be placed in
    include/amiga13, the 2.0 placed in include/amiga20, and so on.

    What this means is that you CAN generate an 'amiga.lib' and pragmas
    from the .fd files, but the structural includes aren't available unless
    you already have them.

    The amiga includes are only required if you are compiling the
    compiler on the Amiga or compiling for an Amiga target.  These 
    includes are not required if you use DICE to compile embedded 68000 code.

(II) COMPILING DICE UNDER UNIX FOR CROSS-COMPILING

    NOTE: floating point constants are not supported because they require
    the Amiga FP library.  However, you can generate all amiga libraries
    except those routines which employe FP constants from your 

    (0) Setup environment

	setenv DCCOPTS -3.0 -//
	setenv DINCLUDE /home/dice/include/

	(assuming this is where you unpack the distribution)

	If your UNIX box uses intel byte ordering, the makefiles are setup
	ok.  If it doesn't, you have to remove the -DINTELBYTEORDER option
	from suplib/Makefile and src/*/Makefile.  Sorry!  This option must
	be specified correctly for the DICE compiler on a UNIX box to produce
	machine-independant (68000 byte-ordered) output files.

	Most people run UNIX on Intel platforms (e.g. FreeBSD).  If so you
	do not have to modify the Makefiles... you leave -DINTELBYTEORDER in.

    (1) Make the suplemental library for UNIX.
	
	cd suplib
	make
	make install
	make clean
	cd ..

    (2) make the compiler and utilities

	NOTE: the main compiler does not support FP constants when compiled
	under UNIX.

	cd src
	make
	make install
	make clean
	cd ..

	NOTE: if using csh/tcsh, you should 'rehash' after installing the
	binaries and also make sure that your $path includes the location
	of these binaries.


    (3) AMIGA SPECIFIC AMIGAxxx.LIB EQUIVALENTS

	These libraries are provided precompiled in the distribution and may
	also be regenerated.

	You can create amigaxxx.lib equivalents.  The auto library is used
	to automatically open those system libraries used by the code.

	cd lib
	dmake -f DMakefile.unix amiga13
	dmake -f DMakefile.unix amiga20
	dmake -f DMakefile.unix auto

    (4) ROM LIBRARY, AMIGA LIBRARIES

	These libraries are provided precompiled in the distribution and may
	also be regenerated.

	You can create a machine-independant ROM library

	cd lib
	dmake -f DMakefile.unix rom

    (5) AMIGA SUPPORT LIBRARIES

	These libraries are provided precompiled in the distribution and may
	also be regenerated.

	DICE includes stdio, string, and other Amiga-specific support 
	libraries.   If you have the amiga includes installed, you can compile
	these libraries simply with:

	cd lib
	dmake -f DMakefile.unix all

(III) COMPILING DICE UNDER THE AMIGA

    Yes you can do it.  Unfortunately, I haven't run the compile myself for
    a long time so you will probably have to mess around with the various
    DMakefile's.  The DMakefile's for the compiler & utilities look something
    like:  src/dc1/DC1.DICE.  You compile by cd'ing into src/dc1 and then
    doing a 'DMakefile -f DC1.DICE'.  You will have to setup a compilation
    environment, though, and since I don't have an Amiga handy I can't give
    you exact instructions.

    To compile DICE on the Amiga you need DICE.  This shouldn't be a problem,
    I include full amiga compiler binaries.  I do not include the
    commodore-specific Amiga includes, however... you need to get those
    separately.

(IV) DIRECTORIES

    abin	amiga binaries
    dlib	amiga/68000 support libraries

    ubin	unix binaries
    ulib	unix support libraries

    src		primary utility and compiler source
    lib		amiga/68000 support library source
    suplib	unix support library source

    include	header files for amiga/68000 libraries, including
		selected portions of the 1.3, 2.0, and 3.0 includes
		(the clib and fd directories only), and the DICE
		ANSI library.

    config	Various amiga-related DMakefile's for compiling
		DICE (included as-is)

    doc		Library and compiler documentation
		(included as-is)


    installer	Bunches of installation scripts.  Included AS-IS.

    master	Random junk (used to be the disk template that I used
		to make floppies).  Removed duplicate information that
		already exists in other directories.


						-Matt

