GEMLIB  0.44.0
vdiatrib.c:: ++jrb
	vst_point() binding was incorrect. (thanks scott,
	skolodzieski@vaxc.stevens-tech.edu)

common.[ch]:: ++jrb
	changed order of aes encoding from AA BB CC DD to DD CC BB AA
	easier to pull them out in a loop with a pointer this way.
	other cosmetic changes.

aesrsrc.c, aeswin.c, aesrc.c:: ++jrb
	cleanup.

mincl:: ++jrb
	common makefile

makefile.16, makefile.32, gmakefile.16, gmakefile.32:: ++jrb
	gnu makefiles for gemlib. all set up macros and include mincl.

common.c:: ++jrb
	more efficient coding of __aes__() and __vdi__() thanks to
	suggestions from Thomas Koenig (UI0T@DKAUNI2.BITNET).
	old coding #ifdef'ed with #ifdef __OLD__ everywhere.

vdi*.c:: ++jrb
	when __MSHORT__ dont copy pxyarray[] into _ptsin, just
	make _vdiparms[] point to input array, restore before
	return. -- Thanks Thomas!

vdiinq.c:: ++jrb
	many patches for incorrect coding of inq functions. Thanks to
        Michal Jaegermann <uunet!ugw.utcs.utoronto.ca!NTOMCZAK%UALTAVM.bitnet>

vdiinp.c:: ++jrb
	patches from Michal for v??_string, also merged v??_locator
	at his suggestion.

vatrib.c:: ++jrb
	patch from Michal correcting _intin[0] for vst_point();

vdiesc.c:: Jens
	Courtesy of Jens Tingleff (uunet!titan.ee.ic.ac.uk!jensting)
Thanks Jens. Jens explicitly dedicated the code to public domain,
removing his earlier copyleft restriction (via email).

vdibind.h:: Jens
	Add vdiescapes

mincl:: ++jrb
	added vdiesc targets

gemfast.h:: ++jrb
	added TCC compat defn for OBJECT

aesbind.h: frank (Frank Ridderbusch, thanks frank)
	adjust proto for rsrc-gaddr void** -> void *
	add protos for scrp_*

common.c:: frank
	vdi call for compatibility

vdibind.h: frank
	fix typo v_clswd -> vclswk
	add proto for vq_gdos

vdictrl1.c:: frank
	fix typo v_clswd -> vclswk

aescrap.c:: frank
	new file, aes scrap functions

vdiqgdos.c:: frank
	vq_gdos		GDOSp predicate

mincl::
	add targets vdiqgdos and aescrap

vdiesc.c:: Jens
	Courtesy of Jens Tingleff (uunet!titan.ee.ic.ac.uk!jensting)
Thanks Jens. Jens explicitly dedicated the code to public domain,
removing his earlier copyleft restriction (via email).

vdibind.h:: Jens
	Add vdiescapes

mincl:: ++jrb
	added vdiesc targets

gemfast.h:: ++jrb
	added TCC compat defn for OBJECT

aesbind.h: frank (Frank Ridderbusch, thanks frank)
	adjust proto for rsrc-gaddr void** -> void *
	add protos for scrp_*

common.c:: frank
	vdi call for compatibility

vdibind.h: frank
	fix typo v_clswd -> vclswk
	add proto for vq_gdos

vdictrl1.c:: frank
	fix typo v_clswd -> vclswk

aescrap.c:: frank
	new file, aes scrap functions

vdiqgdos.c:: frank
	vq_gdos		GDOSp predicate

mincl::
	add targets vdiqgdos and aescrap

aesevnt.c:: roy
	the two bytes of the long for the timer in evnt_timer and multi
        were switched around.

gemfast.h:: ++jrb
	cleanup

vdiqgdos.c:: ++jrb
	added long vq_vgdos(void), return type of gdos installed.

vdifsm.c:: ++jrb
	FSM gdos bindings. mildly edited version of code from atari.

makefile*:: ++jrb
	add vdifsm targets

------------------------------- Patchlevel 17------------------------

vdifsm.c:: michal
	bindings that actually work (as opposed to ataris !)
	thanks michal

vdibind.h:: michal
	diffs for fsm bindings

vdiqgdos.c:: ++jrb
	vq_gdos(): should say "return retvalue"
       (even though the value is in d0).

 *********************** RENAME *******************
	rename PatchLevel.h to PatchLev.h
 **************************************************

ident.c:: ++jrb
	new file for ident(1) to identify library and Patchlevel

mincl:: ++jrb
	add target for ident.o

vdibind.h:: michal
	add conditional #include<stddef.h> for size_t

test/fsm:: ++jrb
	fix up sample FSM-fontform application for gcc.

aesrc.c:: michal
	use <macros.h> for min/max
	fix up rc_intersect for gcc
	add grect_to_array. note: this coding returns &pxy_array[0], a
	very useful value to have for vdi calls, that take a  pxy_array
	address as an arguement.

aesforms.c:: Thomas Koenig <uunet!CUNYVM.CUNY.EDU!UI0T%DKAUNI2.BITNET>
	add missing bindings for form_keybd() and form_button().
	thanks thomas!

aesbind.h::
	add the protos

vdiesc1.c:: Thomas
	more vdi esc bindings. this should pretty much complete the set.
	thanks thomas.

vdibind.h::
	add protos from vdiesc1.c

mincl::
	add target for vdiesc1.o

aescrp.c:: Thomas
	scrp_clear()
	  - aes function code should be 82 not 81
	  - it is not present in gem versions < 2

aesbind.h::
	#if 0 out bindings for scrp_clear()

*akefil*:: ++jrb
	bring them in sync with new scheme in lib
------------------------------- Patchlevel 18------------------------

common.c, common.h:: Michal
	- change sizes of different "params" arrays increasing some
	(_ptsin, _intin) to allow them fit better into TT world
	and decreasing others to actual sizes used
	- overlap vdi and aes parameter arrays to reuse memory
	- change  VDI_CONTRL_ENCODE macro to allow for new limits;
	(see comments in common.h where other coding is required)
	for sizes which can be accomodated by VDI_CONTRL_ENCODE
	- modify __vdi__() to reflect changes in VDI_CONTRL_ENCODE
	- add clearing of high bytes in __aes__() since they can
	be clobbered now by VDI calls

vdiinp.c:: Michal
	- change coding of vsm(vrq)_string to allow for negative
	length, as in DRI specifications, and switch locally roles of
	_intin and _intout to allow for strings up to 255 characters.

vdiatrib.c,vdiinp.c,vdiinq.c:: Michal
	- replace definitions of alias labels with ones using
	.stabs directive

general:: Michal
	- modify source in many places in order to produce
	a tighter resulting machine code
	- split logically with #define's all source files into
	one-function modules for purposes of a compilation and
	archive creation; modify mincl accordingly (for compilation
	like before use -D__DEF_ALL__ in your Makefile)

vdigdp.c vdiinq.c::  Markus Nick <uunet!mz.maus.de!Markus_Nick>
 	handle char code > 127. make sure they are not sign extended
 	while copying into intin, by cast'ing to (unsigned char), in
 	v_gtext() and v_justified() and vqt_extent(). thanks Markus.

------------------------------- Patchlevel 19------------------------

vdibind.h, mincl, vdifsm.c:: ++jrb
	sync with ataris new release of fsmgdos

vdibind.h, vdibez.c:: ++jrb
	new file. bindings for bezier curves.

vdibind.h vdiqgdos.c:: ++jrb
	vq_vgdos(): return unsigned long. fix proto and inline def in
	vdibind.h too

vdifsm.c, vdibind.h:: michal
	michal corrected and added missing bindings. Thnaks very
	much.

vdibez.c, vdibind.h, mincl:: michal
	michal corrected almost the whole file.

vdictrl1.c:: markus nick
	fix to v_opnvwk() bindings. was'mt passing old value of handle.
	thanks markus.

 MUCH THANKS to Michal Jaegermann who has been very carefully
correcting and baby sitting these bindings. He has made very
significant contributions, and lively discussions and comments.

------------------------------- Patchlevel 20------------------------

vsin_mode, vq_color:: andreas
 these functions return useful things (source: ATARI ST Profibuch, Sybex).

gemfast.h, aesbind.h, vdibind.h:: andreas
  fix protos, and some types.

------------------------------- Patchlevel 21------------------------

vdibind.h:: ++jrb
	change all formal parameters named new to new_p (g++ complains
	(thinking its a new operator)).

vdiatrib.c, vdibind.h:: marcus nick
	the return type of vst_height should have been int, not void.

------------------------------- Patchlevel 22------------------------

vdibez.c:: ++jrb
	dont define ALTERNATE. Makes us incompat with PureC and others.

mincl:: ++jrb
	make all v_bez_in/off and v_bez_con for the lib and let the user
	use whichever forms they prefer.

------------------------------- Patchlevel 23------------------------

*.h:: ++jrb
	part of the common MiNT/tos lib headers adjustments.

------------------------------- Patchlevel 24------------------------

ident.c:: ++jrb
	new file, giving ident(1) string. crt0 externs the symbols
	to ensure that these idents get pulled into the executable
	while linking. then doing an ident(1) on the executable
	yields versions of everything that is linked in.

mincl:: ++jrb
	add target for above.

------------------------------- Patchlevel 25------------------------
gemfast.h:: ++jrb
	sync with mntlib 25
------------------------------- Patchlevel 26------------------------

gemfast.h:: ++jrb
	add new types for popup menus (falcon aes)
	dont declare _addrin/_addrout for gcc, because they are # defines
	in our case, not real arrays. (see common.h)

aesmenu:: ++jrb
	new bindings for popup/scroll menus (falcon aes)
        menu_popup() menu_attach() menu_istart() menu_settings()

aesbind.h:: ++jrb
	add protos for new bindings.

mincl:: ++jrb
	add targets for  new menu_*() fns

vdibez.c:: ++jrb
	bring stuff in sync with the bez docs in SpeedoGdos. no new
        functions. just more info about the old ones, and some of the
	bindings have  contrl[2|4] set to specific values (and the
	docs dont say why!).

vdiinq.c:: ++jrb
	updated the comment at the top about vqt_name() since its
	official now in the SpeedoGDOS docs.

vdifsm.c:: ++jrb
	v_killoutline() doesnt exist any more
	v_getoutline() is totally changed
	vst_error() -- make it 16/32 bit clean.
	vqt_advance32() -- new fn
	vst_setsize32() -- new fn
        vst_arbpt32() -- new fn
	v_ftext_offset() -- new fn
	vst_charmap() -- new fn
	vst_kern() -- new fn
	vqt_fontheader() -- new fn
	vqt_trackkern() -- new fn
	vqt_pairkern() -- new fn
	v_getbitmap_info() -- totally new

mincl, vdibind.h:: ++jrb
	adjust for above changes.

------------------------------- Patchlevel 27 -------------------------------

gemfast.h:: andreas
	ICONBLK does not have the field ib_resvd. i dont
	 know introduced that, but it is definitly wrong, and loses
	on RSC files (sizeof(ICONBLK) == 34).

vdiesc1.c:: andreas
	all functions with subcode > 31 must be coded "by hand".

vdibez.c/vdiesc1.c: andreas
	opcode of v_bez_qual conflicts with v_write_meta
	(the other conflicts are reasonable). I dont have the
	official documentation, so no patch included.

	well i looked up all the docs i have. this seems to be ok because
	the two will be distinguished by intin[0]. in the case of v_bez_qual()
	intin[0] = 32. in the case of v_write_meta(), intin[0] has to be
	something other than [0-100], so we should be fine. ++jrb

------------------------------- Patchlevel 28 -------------------------------

vdifsm.c:: Leif: pvt1-117@nada.kth.se

	vst_error takes the address of a variable in mode==1 that lives longer
	beyond the call. therefore we must install the address that is passed
	to vst_error() and not use the int matching temp. this also implies
	that the pointer must be to a 16 bit entity, therefore i changed
	the interface to be a short *.

vdiesc1.c:vm_filename() :: Erling Henanger (erlingh@pvv.unit.no)
	The code for finding the length of the filename string was wrong.
	It compares two pointers to short, which yields twice as much as the
	difference between two pointers to char...


------------------------------- Patchlevel 29 -------------------------------

aesbind.h, aesevnt.c:: Stefan Steyer (dc4i@br0.hrz.th-darmstadt.de)
	The problem is, that if you compile without -mshort, the '16 bit halfs'
	are passed as 32 bit values through the stack. If you define __OLD_WAY__
	you push 64 bit, and if not, only 32 bit. Every parameter you pushed
	to the stack before is not where it should be. 

	soln: #define evnt_multi when __OLD_WAY and have it push one long on
	the stack, which __evnt_multi will pick up.

	make __evnt_multi synonymous with event_multi in aesevnt.c.

------------------------------- Patchlevel 30 -------------------------------

pure_c.prj:: Christer Gustavsson (d2cg@dtek.chalmers.se) cg
	Created project file for Pure C.
	
common.c:: cg
	Modified to be compilable with Pure C.
	
vdiatrib.c:: cg
	Modified for Pure C.
	
vdibez.c:: cg
	Modified for Pure C.

vdiinp.c:: cg
	Modified for Pure C.

vdiinq.c:: cg
	Modified for Pure C.

xgemdosc.s/xgemdosc.h:: cg
	Pure C version of vdi/aes traps.

compiler.h:: cg
	Since gemlib now is ported to Pure C compiler.h had to be changed
	to enable the prototypes that differ from Pure C's own gemlib.
	
gemfast.h::	cg
	Missing structs and definitions included.

aesappl.c::	cg
	appl_getinfo added.
	appl_search added.
	
aesbind.h:: cg
	Missing (new) prototypes added.
	
aesobj.c:: cg
	objc_sysvar added.
	
mincl:: cg
	Modified to include new calls.

aesrsrc.c:: cg
	rsrc_rcfix added.

------------------------------- Patchlevel 31 -------------------------------
gemfast.h:: cg
	Now supports color icons.
	3d-object defines added.
	AES global array defines added.
	OBJC_COLORWORD added.
	TEDINFO struct altered to include font id and font size.
	Defines for different font types added.
	New (correct) version of MN_SET. To get the old version define
	OLD_MNSET.
	Mode definitions for menu_tnormal added.
	Mode definitions for shel_get added.
	Return value definitions for v_updwk added.
	Mode definitions for v_bez added.
	Mode definitions for v_bit_image added.
	Mode definitions for v_justified added.
	Mode definitions for vq_color added.
	vq_gdos return value definitions moved from vdibind.h to gemfast.h.
	Mode definitions for vqin_mode added.
	Mode definitions for vqt_cachesize added.
	Return value definitions for vqt_devinfo added.
	Return value definitions for vqt_name added.
	Mode definitions for vsf_interior added.
	Mode definitions for vsf_perimeter added.
	Mode defnitions for vsl_ends added.
	Mode definitions for vsl_type added.
	Mode definitions for vsm_type added.
	Mode definitions for vst_charmap added.
	Mode definitions for vst_effects added.
	Mode definitions for vst_error added.
	Return value definitions for vst_error added.
	Mode definitions for vst_kern added.
	Mode definitins for vst_scratch added.

aesbind.h:: cg
	Bug in the __OLD_WAY__ binding of evnt_multi() fixed.

------------------------------- Patchlevel 32 -------------------------------

aeswin.c:: cg
	Change of in wind_get() to work with WF_DCOLOR and WF_COLOR.

aesappl.c:: cg
	Bug in appl_search() fixed.

gemfast.h:: cg
	Added _AESrshdr (_global[7-8]), an undocumented variable pointing to
	the header of a loaded resource file.

------------------------------- Patchlevel 33 -------------------------------

*.c:: cf
	AES and VDI uses different control arrays called
		aes_global, aes_control, aes_intin, ees_intout, aes_addrin, aes_addrout
	and
		vdi_intin, vdi_intout, vdi_ptsin, vdi_ptsout, vdi_control
	The old arrays (_intin, _intout, _ptsin, _ptsout, _contrl, _global)
	doesn't exists any longer!
		
appl.c:: cf
	Add appl_yield() and appl_bvset().

form.c:: cf
	Add form_popup().

gemfast.h:: cf
	Some bugfixes (WM_BOTTOMED, CH_EXIT, ICONBLK)
	AESPB and VDIPB defined.

shel.c:: cf
	Bug in shel_envrn() fixed.

wind.c:: cf
	Add wind_set_str() for 'int-size independent' window string setting.

mt_*:: cf
	Add a thread-save AES lib.

------------------------------- Patchlevel 34 -------------------------------

gemfast.h:: cf
	Add extended object flags (FLAG12 - 15) and state (STATE08 - 15)

appl.c:: cf
mt_appl.c::
	Add appl_control() (N.AES)
	
shel.c:: cf
mt_shell.c
	Add shel_help() (N.AES)

wind.c:: cf
mt_wind.c
	Some usefull extension: wind_get_grect(), wind_set_grect(), 
	wind_calc_grect(), wind_create_grect() wind_open_grect()

gemfast.h:: cf
	Remove compatibility define __TCC_COMPAT__.
	Rename U_OB_SPEC to OBSPEC
	Add some constants for VDI
	Rename vst_effects-constants from xx to TXT_xx

------------------------------- Patchlevel 35 -------------------------------

gemfast.h
	Increased VDI arrays 
	Definition of STATE15 was wrong

aesrc.c
	Add array_to_grect()

aesbind.h
	Remove __OLD_BIND__ for evnt_multi()

magxbind.h
magxfnts.c	
magxform.c
magxfslx.c
magxpdlg.c
	A new lib which contains the MagiC-only AES calls

mt_*
	Removed from gemlib because I don't have mind to support a lib that 
	anybody needs. Or is there someone who need it??

gemfast.h
	Change type and rename a component of AESPB and VDIPB
	Rename _aes/_vdiparms to aes/vdi_parms

Makefile
	Split into Makefile, Makefile.gem and Makefile.magx

aesbind.h
aesshel.c
	Add shel_rdef() and shel_wdef()	(MagiC, N.AES)

------------------------------- Patchlevel 36 -------------------------------

aesappl.c
	Wrong binding at appl_search()

magxpdlg.c
	pdlg_save_default_settings() added

gemfast.h
	Remove ALT_MFDB
	Remove ORECT, VRECT and Rect

----------------
	Restructured the whole lib:

	- Remove the AES/VDI_CONTROL_ENCODE because this method don't work
	  for in/out counters higher than 255!
	- Add new trap-functions aes(AESPB *pb) and vdi(VDIPB *pb)
	- Clean-up the whole VDI part of the lib.
	- Add full NVDI support (versions 2, 3, 4 and 5)
	- Split the lib into two parts:
		gem.olb   the core AES/VDI functions, supported by TOS, MultiTOS 
				  and N.AES.
		gemx.olb  all extensions of NVDI, FSM/Speedo-GDOS, MagiC, WDIALOG
	- Create new headers, one for each lib: gem.h and xgem.h
	  Don't panic - there is a backward-compatibility for aesbind.h/ 
	  vdibind.h/gemfast.h :-)
	
------------------------------- Patchlevel 37 -------------------------------

x_fnts.c
	Misc wrong bindings fixed.

v_inquire.c
	Wrong binding for vq_color() fixed.

gem.h
	OLD_MNSET removed
	struct bfobspec renamed to BFOBSPEC
	struct Mouse renamed to MOUSE

------------------------------- Patchlevel 38 -------------------------------

gem.h
	Add the extended object types of MagiC

gem.h
v_attrib.c
	vql_attribute() renamed to vql_attributes()