================== Arp 'wrapper' for Manx Aztec 'C' 5.0 ==================
==========================================================================
Arp  is  Copyright  (c) 1987, 88, 89 by ARP Authors.  All Rights Reserved.
Wrapper for Manx Aztec 'C' 5.0 updated by Olaf 'Olsen' Barthel of MXM.

================================ Purpose =================================
==========================================================================
The  5.0a  update  to  the  Aztec  'C'  compiler  comes  with  the new Arp
distribution  files.   That's  fine,  you  may  think,  but:   the  linker
libraries  do not work.  Since Manx once more decided to change the format
of  the  object  files all modules have to be recompiled.  And there's the
second  'trap':   you  can't  recompile  the  libraries using the supplied
files.   Furthermore  the  original Arp distribution disk includes special
startup  code  which  allows  the creation of programs to be made resident
('pure').   Is  this  code  included with the 5.0 release?  I think you've
guessed  it  -  it  isn't.   Some  files  wouldn't  work properly (missing
INT32s), some wouldn't work at all (scdir.c).

================================ Contents ================================
==========================================================================
This  distribution  includes  37  main  files which are listed below.  The
single library glue routines are to be found in the 'glue' subdirectory.

	----------------------- 16 bit modules ---------------------------

	a16.lib         = Arp interface library (no startup code)
	arp16.lib       = Arp interface library with startup code

	arpdetach16.o   = Arp compatible detach.??? replacement
	gads16.o        = Arp replacement for _cli_parse()
	rstart16.o      = Resident module startup code (Arp only)

	----------------------- 32 bit modules ---------------------------

	a.lib           = Arp interface library (no startup code)
	arp.lib         = Arp interface library with startup code

	arpdetach.o     = Arp compatible detach.??? replacement
	gads.o          = Arp replacement for _cli_parse()
	rstart.o        = Resident module startup code (Arp only)

	----------------------- Header files -----------------------------

	arpbase.h       = Arp base main include file
	arp.h           = Arp library function pragma calls (Manx/Lattice)

	----------------------- Library modules --------------------------

	clihelp.c       = CLI Help string definition
	cliparse.c      = Standard CLI parsing module (with Arp flavour)
	clitemp.c       = CLI argument template
	exit.c          = Exit subroutine
	gads.c          = Arp compatible replacement for cliparse.c

	calloc.c        = Arp replacement for calloc
	fmalloc.c       = Arp replacement for fmalloc
	free.c          = Arp replacement for free
	lcalloc.c       = Arp replacement for lcalloc
	lmalloc.c       = Arp replacement for lmalloc
	malloc.c        = Arp replacement for malloc

	pragma.c        = File to be precompiled
	scdir.c         = Arp replacement for scdir()
	vars.c          = Arp global program variables
	wbparse.c       = Arp workbench parsing routine

	_exit.c         = Arp exit routine
	_main.c         = Arp main routine (calls your custom main())

	aztecglue.asm   = Arp library interface stubs (obsolete)
	crt0.asm        = Arp Aztec 'C' startup code
	dospkt.asm      = Arp replacement for dos_packet()
	lvo.asm         = Arp library vector offsets
	rstart.asm      = Source code for resident module startup code
	tracker.asm     = Arp item tracker source code

	----------------------- Makefiles --------------------------------

	makefile        = File needed to rebuild the 32 bit libraries
	makefile16      = File needed to rebuild the 16 bit libraries

	----------------------- Library glue files -----------------------

	glue		= Subdirectory containing 'C' glue code

================================= Usage ==================================
==========================================================================
The  Arp libraries are linked just like the standard libraries.  Note that
the  default  are 32 bit integers.  If you want to build resident programs
all  modules  have  to  be  compiled  with the -m0b switch (to disable the
creation of the .begin statement).

Examples:	CC -so Test.c
		LN Test.o -Larp -Lc

		CC -so -m0b Test.c
		LN -o Test rstart.o Test.o -Larp -lc

Note  that  it  is  not recommended to use the arpdetach.o module together
with  the rstart.o module unless you check the Arp resident list if you're
already on it (-> a resident program shouldn't do the segment split).
   Starting  with  the  v1.5  release  of  this package, the arpdetach.???
module  supports  a  new keyword:  STICKY -> do not perform segment split.
Add  #define  PARENT  in  _main.c  to  retain the address of the Shell the
program was started from.

================================= Author =================================
==========================================================================
The  files  in  this  distribution  were  put together and updated by Olaf
'Olsen' Barthel of MXM.  The author can be reached via standard mail at:

                               Olaf Barthel
                            Brabeckstrasse 35
                            D-3000 Hannover 71

                       Federal Republic of Germany

                         Or via electronic mail:

                      Z-Net:  O.BARTHEL@A-LINK-H.ZER
                      Fido:   Olaf Barthel@2:247/200

                              (best chances to contact me)

                      SubNet: olsen@veeble.uucp
                      UUCP:   olsen%veeble@horga.as.sub.org

                              (good luck!)

Torsten  Jrgeleit  contributed  ideas and code fragments for v1.5 of this
package.   He  also  discovered  substantial  errors  in  tracker.asm  and
dospkt.asm.

============== Revision history (most recent change first) ===============
==========================================================================
V1.9	Updated  both arpbase.h and arp.h to get along with dos/datetime.h,
	dos/dosasl.h  and  libraries/aslbase.h.   Added three new routines:
	ArpVFPrintf,  ArpVPrintf  and  ArpVSprintf  (with  little  effort).
	Removed  the  useless  resident??.o  files:   Arp programs are only
	reentrant  if  used  with  Arp Shell.  I recommend using my vanilla
	resident.asm code instead.

V1.8	The  tracking  routines  (GetTracker & Co.) would not work with 16
	bit  integers  (thanks  go to Torsten Jrgeleit who `smelled' it).
	This  problem  has  been  fixed.   The package has been recompiled
	using the new Aztec 5.0d compiler.

V1.7	No  spectacular  work  done,  made  the  'ord'  utility decide the
	sequence  of  modules  to  be  pulled into a library file.  Former
	versions could cause linker errors which would require you to call
	a   single  library  twice  on  the  linker  command  line.   Some
	optimizations were done here and there.

V1.6	The darn library glue files always used the wrong offsets!

V1.5	Torsten  Jrgeleit  supplied  bug  fixes and new routines, updated
	_main.c   (arpdetach??.o),   fmalloc  and  added  16  bit  library
	creation.   Olsen added resident??.o and split fmalloc into single
	files.

V1.4	Fixed missing macros in scdir.c (ARRGH!).

V1.3	Split aztecglue.asm into single files (long file still included).

V1.2	Introduced  new  variable  '__sloppy__'  set  TRUE  if DOSBase was
	initialized by startup code.

V1.1	Changes  to  vars.c,  _main.c  and  rstart.asm to support resident
	programs which don't use Arp.

V1.0	Initial update.
