Sun Jun 18 16:32:32 1989  Alex  (alex at nerwin)

	* I vow never to look at this code again.

	* constant.c [lookup_kernel_address] - we now use parseifile to
	create a table of kernel symbols from /etc/lddrv/unix.sym, and
	the algorith is been modified to:
	    1) lookup the address as a kernel symbol
	    2) lookup the address as a special symbol (kspecial.h)
	    3) If still not found, and the address appears to be a kernal
	    address, print it as an offset from the next lower symbol.
	    Otherwise, print the value as a number.

	* prin.c - fix paddr() to correctly lookup addresses in the global
	symbol table.

	* main.c - add the global option flag print_addresses, set by the
	-A switch.

	* prin.c - make plabs(), text(), pdata() and pbss() print out
	the address of each object if print_address is set.

	* iset.c - fix the jumptable code in ppea() to tab over accordingly
	for each jump table entry. We don't print the addresses here, because
	this code is all relative, but at least everything lines up right.

	* conv.c and constant.c - user programs are allowed to map the
	addresses 0x300000 to 0x380000 as read only text area that is
	external to the objet file. We fix this by converting all symbols
	that fall into this area into global constants. Unfortunately, the
	kernel code is allowed to write to this area and will sometimes
	map the driver text area into this space. THe fix is to convert 
	the in_shlib test to (in_shlib || (kernel && in_file_space))

	* unc.h - created the macros address_in_textarea(),
	address_in_dataarea(), address_in_bssarea and address_is_valid ()
	to make things cleaner.

	* all - moved global variables and function defs to unc.h.

	* removed large copyright notice from the top of each file and
	added #include "copyright.h" to unc.h. Its my understanding that
	the copyright s invalid anyway, so this is really here for 
	historical reasons.

Wed Jan 18 00:45:24 1989  Alex  (alex at nerwin)

	* constant.c [lookp_address ()] - change to return a value for any
	legal shlib address (0x300000 -> 0x380000), instead of the first &
	last symbols.

	* kernal.h - fill this file with interesting addresses.

	* alloc.c [mkdref ()] allow for addresses to point to objects of
	length 0.

Tue Jan 17 11:14:21 1989  Alex  (alex at nerwin)

	* main.c [doopts ()] - added two globals, kernal and dup_error,
	which are turned on with -k and -D respectively, to turn on kernal
	symbol lookup and DUP??? symbol names (and errors).

	* robj.c [dosymb ()] - added a test for dup_error in the case of
	duplicate symbols. If dup_error is not set, duplicate symbols are
	simply ignores.

Mon Jan 16 23:53:26 1989  Alex  (alex at nerwin)

	* constant.c [replaces syms.c] - instead of syms.c, generate
	shlib.h in the same manner. include this file, along with kernal.h
	into constants.c which contains the lookup code. lookup_address ()
	looks up an address in he shared library symbols (shlib.h) and
	returns a symbol and option offset in a single string. 
	lookup_kernal_address () is simular but does not calculate an
	offset, retunring 0 if the address is not found.

	* iset.c - many small changes
	[prea ()] - output a '&' before a constant hex address.
	[pmovc ()] - format MOVEC as MOV
	[pcs2 ()] - movm becomes mov.m, ouput a '%' before dest register name.

Sun Jan 15 22:37:48 1989  Alex  (alex at nerwin)

	* syms.c [lookup_address()] - this now returns either:
		 a) a symbol name
		 b) a symbol name + an offset as a single string ("%s+0x%x")
		 c) (char *) 0 if the given address is greater then the larest
		 known symbol value.


Mon Jan  9 00:08:25 1989  Alex  (alex at nerwin)

	* parseifile.c [new file] - generate a file containing a sorted,
	initialized array of shared library symbols that can be loaded
	into the disassembler.
	
	* syms.c [new file] - generated by parseifile.

	* iset.c [paddr()] - try to resolve unknown hex addresses by 
	first looking them up in the initialized array with
	lookup_address(). If this doesn't work, try to generate a label
	for the address with mkdlab(). At this point we are only printing
	absolute address that don't exist in the text or data areas, and
	arn't referenced in /lib/shlib.ifile.

	* prin.c [pdata(), pbss()] - teach the print routines about 0
	length objects. We handle these by searhingthrough memory to find
	the next object, and using the difference as the size of the
	current one.

	* prin.c [ptext()] - add a _start symbol to the beginning of the
	text area. Don't verify the entry point, though.

