	Welcome to MiNTlibs for Lattice C.
	==================================

1	Introduction

	First of all, read the main readme file. It contains some
	important information.

	This distribution support long/short integer, argument passing
	via stack/register, base relative/absolute data access and
	68000/68030 code generation. All combinations except 030 code
	and short integer that is, as I deemed that combination
	rather pointless.

2	Installation

	This can be done by either by PRJ or by MAKE. Using the Lattice
	IDE and PRJfiles is recommended as the makefile hasn't been
	updated for years. ;-)

2.1	Assumed directory structure.

	ML\				Or where ever you place the files.
		LIB\			You MUST make this.
		INCLUDE\		The headers in mntincXX.
		STANDARD\		The source in mntlibXX.
			LATTICE\	Where you are now. ;-)

	As all operations are relative to the LATTICE directory, you
	must make the LIB directory or change the output of the project.

2.2	Change your prefrences.

	Save your default preferences as LATTICE.INF. Change the
	environment variables LIB and INCLUDE as appropriate. Save as
	MINT.INF and as HISOFTED.INF.

2.3	Crashing is natural!

	Switch on the optimizer flags and press alt-M. The computer
	will start to churn away. But after N files the output window
	will overflow and the machine will crash (supposedly fixed in 5.60).
	Just start anew and remember to switch on the optimzer!! Boy, do I
	hate this!! After M crashes all will be ready.

	Here's a tip to reduce M. Set the environment variable LC_OPT to
	"-.". This will turn off the annoying commercial messages.

	Make the companion startups for the library.

3	Using the new toy.

	These are some things to think about:

	o	The __near keyword can NOT be used with nonbase relative
		libraries.

	o	There is NO support for resident programs or CPX's.

	o	There is NO support for floating point and maths.

	o	Stack checking is NOT supported. It's for wimps anyway! ;-)
		And besides it wont work with multithreading.

	o	The function alloca is braindead. But it's not in any
		ISO standard anyway.

	o	"Stringconstants" are currently placed in the data
		segment instead of in the code segment. This eats
		valuable __MERGED data in base relative mode.

	o	As the base register (a4) is loaded from an absolute
		adress shared text execution is impossible.

3.1	Some comments about inc.i and assembly.

	This file contain some macros for easing the development of
	different library versions. Because the natural psuedoopcodes
	are already spoken for, I had to roll my own.

	CODE	=>	TEXT
	INFO	=>	DATA
	UINFO	=>	BSS

	There are also some flags that can be used for conditional
	assembly. The external (command line) name for them are different
	from the internal for historical reasons. But what did you expect
	we're talking about computers and software here. ;-)

	The external names where inherited from GCC.

	Internal:	External:	Compiler:
	_SHORT		__MSHORT__	-w
	_REGARG		__MREGARGS__	-rr
	_BASREL		__MBASE__	not -b0
	_ARC32		__M020__	-m3

4	I want to contribute fixes and improvments.

	Good for you!
	All files are distributed in Unix LF format. When read by the IDE
	the first blank line in the file will be eaten. The resulting diffs
	will be "out-of-sync". Sending such diffs to entropy will make him
	mightily angry and he will kick your ass right, left and centre. ;-)

4.1	Avoiding the wrath of entropy.

	Crlf to te rescue. Convert all *.C, *.S and *.H files to CR/LF
	format. But do NOT change the *.PRJ files. Produce the diffs
	and strip it to LF format. Look forward to be added to the
	glorious Authors file. ;-)

	When patching you have to strip the cdiff file and then add to
	keep everything consistent. Otherwise the *.PRJ files will have
	CR/CR/LF line termination.
	
=============================================================================

	have fun

		Leif.
