2005-02-16  Eric Smith <eric@brouhaha.com>

	* proc.h proc.c (sim_get_display_update, handle_sim_cmd): Added
	CMD_GET_DISPLAY_UPDATE for GUI thread to request a display update
	from simulator thread.

2005-02-12  Eric Smith <eric@brouhaha.com>

	* csim.c (main): We have to call gtk_widget_show_all(main_window)
	before display_init(), or it can't construct GCs for the
	annunciators, and we have to call it again after display_init()
	and combining the shape mask.
	
	* csim.c display.h display.c display_gtk.h proc.h proc.c
	proc_int.h proc_classic.c proc_woodstock.c proc_nut.c
	voyager_lcd.c coconut_lcd.c: Simulator thread now uses async queue
	to ask GUI thread to update display.
	
	* g_async_queue_source.h g_async_queue_source.c: Added generic
	support for async queues that wake up a glib thread context.

2005-02-05  Eric Smith <eric@brouhaha.com>

	* proc.c proc_int.h: Use glib async message queues for commands
	from GUI task to simulator task, and replies.  Debugger support
	not yet updated.

2004-07-12  Eric Smith <eric@brouhaha.com>

	* proc_classic.c (classic_execute_instruction): Added key trace
	support.

	* proc_classic.c (classic_execute_instruction,
	classic_print_state): Moved trace mode disassembly/source printing
	into classic_print_state(), and print full state when tracing.
	Changed state PC display from straight octal to split octal to
	match listing files.

2004-07-09  Eric Smith <eric@brouhaha.com>

	* proc_woodstock.c (woodstock_execute_instruction,
	rom_selftest_done): Moved ROM selftest completion into new
	function.  If CRC error, set status 5.
	
	* proc_woodstock.c (op_clear_reg): Actually clear registers; was
	previously copying T to all regs.
	
	* proc_woodstock.c (op_clear_reg): Actually clear registers; was
	previously copying T to all regs.
	
	* proc_woodstock.c (woodstock_execute_instruction): Key trace
	should only enable or disable tracing on a normal instruction
	fetch, not a branch target or self-test fetch.  Don't trace ROM
	self-test fetches.

2004-07-08  Eric Smith <eric@brouhaha.com>

	* dis_woodstock.c: Fix branch target decode.

	* proc_woodstock.c: Add ROM selftest CRC code.
	
	* model.c: HP-34C apparently has 64 hardware RAM registers, as
	that's how many the self-test checks.
	
	* proc_woodstock.c proc_woodstock.h: Split woodstock definitions
	into proc_woodstock.h.  Replaced if_flag with inst_state to
	support the additional state 'selftest'.
	
2004-06-15  Eric Smith <eric@brouhaha.com>

	* SConstruct, */Sconscript: Made options work.  Eliminated params
	variable passed between scripts.  Better handling of Windows
	target.  General cleanup.
	
	* util.h release.c asm.c csim.c: Added string var nonpareil_release
	for use in messages.

	* debugger.c: Added missing includes. Renamed cmd_handler to cmd_t,
	and added type casts to eliminate warnings.

2004-06-13  Eric Smith <eric@brouhaha.com>

	* proc_woodstock.c:  Fix increment p instruction.

2004-05-07  Eric Smith <eric@brouhaha.com>

	* asm.c: Add command line options for object file and listing file
	to be explicitly specified, rather than generating them from the
	source filename.

	* asml.l casml.l wasml.l kmll.l: Changed naming of include files
	generated by bison (or yacc) from *y.tab.h to *y.h, for use with
	SCons.

	* SConstruct: New file, starting process of switching from make to
	SCons.

2004-05-03  Eric Smith <eric@brouhaha.com>

	* csim.c (init_annunciator): Fix annunciator bitmap and GC creation.

	* csim.c (display_update, draw_annunciator): Draw annunciators.

2004-05-02  Eric Smith <eric@brouhaha.com>

	* csim.c (init_annunciator): Create bitmaps for annunciators.
	
	* kmly.y kml.c: Allow annunciator sections to be nested in display
	section.  Fix annunciator size parsing.  Print annunciators in
	print_kml().

2004-05-01  Eric Smith <eric@brouhaha.com>

	* coconut_lcd.c: Added coconut_op_display_compensation (acts as NOP).

	* voyager_lcd.c proc_nut.h proc_nut.c dis_nut.c: Added
	voyager_op_display_blink().

2004-04-30  Eric Smith <eric@brouhaha.com>

	* proc_woodstock.c dis_woodstock.h dis_woodstock.c: Added
	disassemblers for Woodstock and Nut processors.
	
	* proc_woodstock.c (woodstock_reset_processor): Only set external
	flag 5 (battery OK) on Woodstock series.

2004-04-29  Eric Smith <eric@brouhaha.com>

	* csim.c: Add --shape option and SHAPE_DEFAULT define.

2004-04-14  Eric Smith <eric@brouhaha.com>

	* proc_int.h proc.c proc_classic.c proc_woodstock.c: Remove glib.h
	dependency from proc_xxx.c.
	
	* kml.h kmll.l kmly.y csim.c (draw_digit): Segment definitions
	can be "line" or "rect".

2004-04-13  Eric Smith <eric@brouhaha.com>

	* csim.c display.h kml.c kml.h kmll.l kmly.y proc.c proc.h
	proc_int.h proc_classic.c proc_woodstock.c: Major rework of
	display code.

2004-04-12  Eric Smith <eric@brouhaha.com>

	* csim.c proc.h proc_int.h proc.c: Compute instruction rate from
	model and arch info.

	* arch.h arch.c: Replaced arch name table with struct arch_info_t
	and get_arch_info().

	* model.h model.c: Added clock frequency to model_info_t.

2004-04-11  Eric Smith <eric@brouhaha.com>

	* proc_woodstock.c (op_load_constant): Fix pointer wrap.

	* proc_woodstock.c (op_dec_p, op_inc_p): Increment and decrement P
	instructions wrap at word size, rather than setting P to an
	invalid position.

2004-04-10  Eric Smith <eric@brouhaha.com>

	* proc_woodstock.c (woodstock_handle_io): If the display is
	disabled, fill the string with spaces.
	
	* proc_woodstock.c (decode_woodstock_display): Add a trailing null
	character to the string.
	
2004-04-09  Eric Smith <eric@brouhaha.com>

	* proc_woodstock.c (woodstock_parse_object_line): Handle a
	five-digit octal address as a single-digit bank and four-digit
	address.

	* proc_woodstock.c (woodstock_print_state,
	woodstock_execute_instruction): Move call to
	woodstock_disassemble() into woodstock_print_state().

	* proc_woodstock.c (woodstock_print_state): Use env->prev_pc
	rather than env->pc, since PC has already been incremented.

	* proc_woodstock.c (op_arith, op_load_constant): When printing
	warning messages about P out of range, call
	woodstock_print_state().  Don't suppress message about loading an
	out of range P value, as the HP-45 is not a Woodstock.

	* proc_woodstock.c (woodstock_disassemble): Print opcode in octal
	rather than decimal.

	* proc_woodstock.c (woodstock_handle_io): Split display decode
	into multiple functions dispatched based on platform.  Implemented
	display decode for Spice platform.

	* csim.c (main) proc.c (sim_init) proc.h proc_int.h: Added
	platform field to sim_t.
	
	* model.c: Set RAM size for Spice models for which it is known,
	and ifdef'd out the models for which it isn't.
	
	* platform.h platform.c (find_platform_by_name): Added
	find_platform_by_name().

	* proc_woodstock.c (op_circulate_a_left, init_ops): Implemented
	0520 as CIRCULATE A LEFT instruction.  This is confirmed to be
	correct for the HP-33C (Spice), so it probably is for Woodstock as
	well.
	
2004-04-08  Eric Smith <eric@brouhaha.com>

	* proc_woodstock.c (op_clear_data_regs): The CLEAR DATA REGISTERS
	instruction only clears the single selected RAM chip (16
	registers).

	* proc.c proc.h proc_int.h proc_classic.h proc_woodstock.c csim.c:
	Added debug_flags field to sim_t, and sim_set_debug_flag() and
	sim_get_debug_flag() to control them.  Added debug menu commands
	to toggle debug flags.  All conditional on HAS_DEBUGGER.

	* proc_classic.c (classic_execute_instruction) proc_woodstock.c
	(woodstock_execute_instruction) proc_int.h: When tracing, call
	disassemble function if source code is not loaded.

	* proc_classic.c proc_woodstock.c (bad_op): Print opcode of
	illegal instructions in octal rather than hexadecimal.

2004-04-07  Eric Smith <eric@brouhaha.com>

	* all files: Merged from Woodstock branch.  This changed all files.
	The package has been renamed "nonpareil".

2004-04-04  Eric Smith <eric@brouhaha.com>

	* asm.h asm.c arch.h arch.c casmy.y wasmy.y csim.c Makefile: Added
	architecture and platform definitions.  Move model table from csim
	into arch.  Use architecture-specific listing file format.
	
	* asm.h: Added prototypes for yylex() and yyerror() to eliminate
	warnings.

	* asm.c (err_vprintf): Only output messages to listing file during
	pass 2.

	* asm.c (format_listing): Use return value from sprintf() to avoid
	unnecessary use of strlen().

	* wasml.l wasmy.y: Many fixes to Woodstock assembler; now HP-25
	source code assembles with no reported errors and object code
	matches listing.
	
	* asm.h asm.c casmy.y wasmy.y: Added a global symbol table for
	symbols starting with a '$'.
	
	* symtab.h symtab.c asm.h asm.c: Cleaned up typedefs, and use separate
	structs/typedefs for symbol table and symbol.

2004-04-03  Eric Smith <eric@brouhaha.com>

	* wasml.l wasmy.y Makefile: Started development of Woodstock
	assembler "wasm".

2004-04-02  Eric Smith <eric@brouhaha.com>

	* asm.h asm.c: Renamed from casm.h and casm.c.
	
	* casml.l casm.h casm.c: Moved keyword() and yywrap() into casm.c.

2004-03-24  Eric Smith <eric@brouhaha.com>

	* csim.c (main): Remove printf()s introduced to debug last change.

2004-03-23  Eric Smith <eric@brouhaha.com>

	* csim.c (add_switch, add_key, main) kml.h kmly.y: Use background
	section of KML to use only a portion of the supplied image as the
	window background.

2004-02-24  Eric Smith <eric@brouhaha.com>

	* debugger.c: Crude implementation of go, halt, step commands.

	* proc.c (sim_stop): sim_stop() was completely broken.
	
	* debugger.c debugger.h csim.c: Added command-line debugger
	infrastructure.
	
	* proc.c proc.h csim.c: Replaced "struct sim_handle_t" with
	typedef'd sim_t.

2004-02-20  Eric Smith <eric@brouhaha.com>

	* csim.c (main): Added "--noshape" option to suppress use of shape
	extension, forcing use of a normal window.

	* csim.c (usage): Include release, copyright, and URL in usage
	message.

2004-02-19  Eric Smith <eric@brouhaha.com>

	* csim.c (draw_digit, display_expose_event_callback) kml.c
	(free_kml, range_check_char) kmly.y kmll.l kml.h: Allow KML file
	much more control over seven segment display.

2004-02-16  Eric Smith <eric@brouhaha.com>

	* util.c (fatal) util.h casm.c (usage) csim.c (usage): Add usage()
	functions to main programs, to be called from fatal().  Moved
	declaration of progname into util.
	
	* csim.c (main, setup_color): Use image background, display
	foreground and background colors from KML file.  Split --kmldump
	option from --kmldebug.

	* csim.c (main) kmly.y kml.c (free_kml) kml.h: Allow KML to
	specify background color for window, useful with transparent
	images when not in shape mode.
	
2004-02-15  Eric Smith <eric@brouhaha.com>

	* Release 0.22.
	
2004-02-14  Eric Smith <eric@brouhaha.com>

	* csim.c (main, on_key_event): Fix keyboard event handling so ENTER
	key works.
	
2004-02-13  Eric Smith <eric@brouhaha.com>

	* csim.c kml.h kml.c kmly.y: Added keyboard support.
	
	* csim.c (main, on_move_window, create_menus): When there are no
	window decorations (using transparency/shape support), allow
	window to be dragged by left-click anywhere other than active
	keys, and popup the menus on right-click.

2004-02-06  Eric Smith <eric@brouhaha.com>
	* kml.h kmll.l kmly.y: Added kml include file support.

2004-01-21  Eric Smith <eric@brouhaha.com>

	* csim.c (main) kml.h kml.c kmll.l kmly.y hp45.kml: Added
	transparency/shape support.
	
2004-01-19  Eric Smith <eric@brouhaha.com>

	* casml.l kmll.l: Removed OLD_FLEX conditional; now Flex 2.4.2
	or later is required.
	
	* proc.c (sim_thread_func): Try harder to maintain nominal rate
	of microinstructions per second.
	
	* csim.c proc.h proc.c: Eliminate use of globals in proc.c.
	sim_init() now returns a struct sim_handle_t *, which is used as
	an argument to all the public functions and most of the private
	ones.
	
	* proc.h proc.c: Made sim_state private to proc.c.

	* csim.c (main): Don't segfault on unrecognized model.

	* casml.l casmy.y: Added set flag instruction, used in HP-65.
	
2004-01-18  Eric Smith <eric@brouhaha.com>

	* csim.c: Added model table, used to get RAM size.
	
	* proc.h proc.c (op_c_to_addr, op_c_to_data, op_data_to_c,
	sim_init, sim_read_ram, sim_write_ram): Moved ram and max_ram into
	sim_env.  Determine how many digits to use for address based on
	max_ram.
	
	* proc.h proc.c: Added external flag support.
	
	* kml.h kml.c csim.c: Added --kmldebug option.
	
	* csim.c kml.h kml.c kmll.l kmly.y: Added switch support.
	
	* kmll.l: Litaral "0" was treated as octal but not converted
	correctly.

2004-01-17  Eric Smith <eric@brouhaha.com>

	* csim.c (help_about): Include release number in About dialog.
	
	* hp80.asm: Corrected typo in "go to" in ROM 1 that caused
	multiply to fail.  Corrected typos in ROM 3 and ROM 6.
	
	* kmll.l: Allow hexadecimal constants (leading "0x").
	
2004-01-16  Eric Smith <eric@brouhaha.com>

	* util.h util.c (alloc, newstrn): New functions.
	
	* kmll.l: Added default rule for "." (error).
	
	* kmll.l: Removed redefinition of YY_INPUT.
	
	* kmll.l kmly.y: Added DISPLAY and KEYCODE tokens.
	* kmly.y: Added KEYCODE statement.
	
	* kmly.y: Added "kml" start rule, and reordered for clarity.
	
	* proc.c (sim_read_listing_file): Fix "duplicate listing line"
	error message.  Ifdef'd out "read %d words".
	
	* proc.c (init_ops): Rearranged to match the instruction type
	tables given in the patents.
	
	* Makefile hp80.asm csim.c: Added HP-80.

2004-01-15  Eric Smith <eric@brouhaha.com>

	* csim.c: Added debug menu.
	
	* proc.c: Replaced JIFFY definition with UINST_PER_SEC and
	UINST_PER_JIFFY, and compute JIFFY_PER_SEC and JIFFY_USEC from
	those.
	
	* proc.h proc.c: Added sim_env.key_flag back to avoid overrun
	problems.

	* kml.h kml.c kmll.l kmly.y: Added KML file parser.
	
2004-01-15  Eric Smith <eric@brouhaha.com>

	* Release 0.15.
	
2004-01-15  Eric Smith <eric@brouhaha.com>

	* csim.c: Added menu bar and "About" dialog.

	* proc.c: Initialize sim_env.key_buf to -1 to prevent first button
	press lossage.
	
2004-01-14  Eric Smith <eric@brouhaha.com>
	
	* csim.c: Use GTK+ 2.x toolkit.
	* xio .h xio.c: Deleted.
	
	* proc.c proc.h: Moved CPU simulation into separate source file,
	and run in separate thread.
	
	* util.c util.h: Collected functions from elsewhere.

	* casm.h casml.l: Eliminate warnings.
	
2004-01-12  Eric Smith <eric@brouhaha.com>

	* hp35.asm: Replaced octal branch targets with labels.  Copied
	labels from HP-45 source code.  Added "then" where needed.
	
2003-06-02  Peter Monta

	* hp35.asm: Dissassembled code extracted by peeling chips

2003-05-30  Eric Smith  <eric@brouhaha.com>

	* hp45.asm: Removed "unsure" comments since Peter Monta checked
	all object code against listings using OCR.

	* hp55.asm: Rearranged comments.

2003-05-30  Peter Monta

	* hp55.asm: Corrected typos

	* xio.c: HP-35 and HP-55 keyboard support

2003-05-29  Eric Smith  <eric@brouhaha.com>

	* Makefile: Changed names of intermediate targets generated by
	bison and flex: instead of using the old yacc and lex default
	filenames, use filenames derived from the source file base names.
	Default location of X11 stuff is in /usr/X11R6.
	Added automatic dependency generation.

	* hp45.asm: Corrected typo found by Peter Monta.

	* ChangeLog: Renamed from CHANGELOG and reformatted entries as per
	conventions.

1995-03-23  Eric Smith <eric@telebit.com>

	* Reluctantly changed the names of source files from
	casm.l and casm.y to casml.l and casmy.y.  It seems that many
	systems have stupid default make rules that would try to build
	casm.c from casm.l or casm.y if the latter are newer.  Previously
	I had a line ".SUFFIXES:" in the Makefile to prevent the default
	rules from being used, but this only works with GNU make or BSD
	make.

	* CHANGELOG: Created this CHANGELOG file and added it to MISC in
	the Makefile.

