2006-11-09 Scott Dattalo * doc/gpsim.lyx: Added module documentation, macro documentation, scripting documentation, and examples documentation 2006-11-08 Scott Dattalo * doc/gpsim.lyx: Added module documentation and in particular the USART module. 2006-11-08 Borut Razem * extras/graphic_lcd/src/glcd_100X32_sed1520.cc, extras/lcd/hd44780.cc, extras/lcd/hd44780.h, extras/lcd/lcd.cc, extras/lcd/lcdgui.cc, extras/lcd/module_manager.cc: removed compiler warnings * doc/gpsim.html, doc/gpsim_svn.html: changed encoding to UTF-8 * plat/win32/gpsim.nsi: changed PRODUCT_WEB_SITE URL and PRODUCT_VERSION 2006-11-08 Scott Dattalo * src/breakpoints.cc: Fixed compiler warning. 2006-11-08 Borut Razem * plat/win32/libgpsim.def: MSVC sync * doc/gpsim_svn.html, doc/gpsim.html: doc/gpsim_cvs.html renamed to doc/gpsim_svn.html 2006-11-08 Scott Dattalo * src/processor.cc: Fixed -p command line option. (actually, there is still an issue with gpsim using the -p option to find the processor, but then naming the processor something else.) 2006-11-08 Scott Dattalo * configure.ac: 0.22.0-RC4 - release candidate 4 * doc/gpsim.html: fix broken links. * README, INSTALL: Minor documentation changes pertaining to 0.22.0 2006-11-08 J.R. Heisey * cli/cmd_macro.cc: - Made some of the macro command console output conditional on the verbose variable to clean up the console output. - Enhanced the console output of the cmd_macro::end_define(). * src/breakpoints.cc: Added call in Breakpoints::set_breakpoint() to Processor::NotifyBreakpointSet() to help with the integration of processors defined in their own dynamic library. 2006-11-07 Scott Dattalo * gui/gui_regwin.cc: EEPROM window abort bug fixed on 2006-11-04 had a flaw. Hopefully that's been fixed now. (The problem was that the fix assumed if the maxrow member of the register_sheet was 0 that there were no cells in the sheet. However, in the gtksheet widget, maxrow can be 0 if there's only 1 row!) 2006-11-07 Scott Dattalo * gui/gui_symbols.cc, gui/gui_src_asm.cc: Changed the way glib lists were deallocated. This removes a glib compile warning. 2006-11-07 Scott Dattalo * src/16bit-registers.h, src/16bit-registers.cc, src/p16x6x.h, src/p16x6x.cc, src/p16f87x.h, src/p16f8x.h, src/16bit-processors.h, src/16bit-processors.cc, src/p16f62x.h, src/p16f62x.cc, src/uart.h, src/uart.cc: - Removed USART_MODULE14 and USART_MODULE16 classes. All they were doing was declaring a 'cpu' pointer, but they weren't even using it. - All member functions of the USART_MODULE class are now non-virtual. 2006-11-06 Rob Pearce * src/stimuli.cc: Fixed the p12ce51x I2C-EE bug - it was due to a stimulus initialisation error caused by bit rot in the node summing function for the single stimulus connected case! 2006-11-06 David Barnett * modules/gpsim_modules.cc: The push_button is named as "push_button" in push_button.h, but "pushbutton" in gpsim_modules.cc. This had the effect that "module load push_button was saved into the netlist file, but "module type push_button not created" would display when loading the netlist. 2006-11-06 Scott Dattalo * doc/gpsim.html, doc/gpsim_cvs.html: Fixed links. Changed CVS references to SVN. 2006-11-05 Scott Dattalo * src/uart.cc, src/uart.h: TXIF is now only gets set if both TXEN and SPEN are set. The USART_MODULE class interface was redesigned slightly to simplify accesses to the various registers associated with the USART. * src/p16f62x.cc, src/16bit-registers.cc, src/p16f8x.cc, src/16bit-registers.h, src/p16x6x.cc, src/p16f87x.cc, src/16bit-processors.cc: - Adapted new USART_MODULE interface. * regression/usart_test/usart_pir1v1.asm, regression/usart_test/usart_pir1v2.asm: - The usart regression test noew makes sure that TXIF is not set before TXEN and SPEN are set. 2006-11-05 Scott Dattalo * src/trigger.cc, src/trace.cc, src/breakpoints.cc: Cleaned up trace printing of traced breakpoints. 2006-11-04 Borut Razem * plat/win32/libgpsim.def: MSVC sync 2006-11-04 Scott Dattalo * src/cod.cc, src/pic-processor.cc: Applied variation of patch submitted by David Barnett that prepends processor name with a 'p' if the name begins with a digit in the .cod file 2006-11-04 Scott Dattalo * gui/gui_breadboard.cc: Patch from Ralf that fixes coordinates of components selected in the breadboard. 2006-11-04 Scott Dattalo * gui/gui_regwin.cc: gpsim was aborting if eeprom window was opened while a processor without an eeprom was loaded. David Barnett reported this bug. 2006-11-04 Scott Dattalo * cli/input.cc: Typo in preprocessor ifdef. This was discovered while applying a patch from the Gentoo distro. (The patch had already independently been applied, yet the typo hadn't been noticed until this new patch had been submitted.) 2006-11-03 Scott Dattalo * src/trace.cc, src/trace.h, src/dspic/dspic-registers.cc, src/12bit-processors.cc, src/processor.cc, src/14bit-processors.cc, src/14bit-registers.cc, src/16bit-processors.cc, modules/stimuli.cc - TraceType constructors are only initialized with size (and not with type). - Trace entry allocation now gets size request from TraceType class. * src/trigger.cc, src/breakpoints.h, src/breakpoints.cc: Trigger action implementation for special breakpoints has been enhanced to take advantage of multiple trace entries. 2006-11-01 Scott Dattalo * src/trigger.cc, src/trigger.h, src/breakpoints.h, src/breakpoints.cc, src/trace.h, src/trace.cc: - Cleaned up breakpoint tracing. - Added TriggerObject::invokeAction() method to handle the default behavior of invoking a trigger object action and handling the tracing. - Moved the BreakTraceType and BreakTraceObject classes from breakpoints.cc to trigger.cc (probably should rename these?) * src/pic-processor.cc: Change the default Integer type output width to 2 characters. (At 8 characters, there were a lot of 0's.) * src/gpsim_object.cc: toString(char*,int) now returns something. 2006-11-01 Scott Dattalo * src/breakpoints.cc: Fixed core dump for breakpoint expressions that are entered improperly. 2006-11-01 Ralph Neider * modules/gpsim_modules.cc: push_buttons are now ignored when gpsim is built without the gui. 2006-11-01 Scott Dattalo * acinclude.m4: Patch from sf user iggie that fixes check for readline 5.2 2006-11-01 Borut Razem * plat/win32/libgpsim.def: MSVC sync 2006-11-01 Roy Rankin * src/pic-processor.cc: Removed p17c7xx processor family from processor list as code does not work 2006-10-31 Scott Dattalo * src/trace.h, src/trace.cc: TraceType type() now takes an argument that allows a user to select a particular subtype. * src/trigger.h, src/trigger.cc, src/breakpoints.cc, src/breakpoints.h: More breakpoint tracing changes. Execution break points are now displayed in the raw trace buffer. 2006-10-28 Scott Dattalo * src/trace.h, src/trace.cc: Raw trace dumps were cleaned up more. The cycle trace is now decoded in a fashion similar to other trace types. * src/breakpoints.cc: Began design for BreakTraceType and BreakTraceObject. 2006-10-30 Roy Rankin * src/ssp.cc : fixed improper use of type bool * regression/p12ce518/p12ce518.asm : correct error in test 2006-10-22 Borut Razem * plat/win32/gpsim.nsi: removed doc/*.html, added doc/screenshots/*, added extras\graphic_lcd\doc\* * plat/win32/libgpsim.def: MSVC sync * gui/gui.vcproj: generate config.h from config_win32.h.in * cli/cmd_log.cc, cli.socket.cc, gui/gui_menu.cc, gui/gui_scope.cc, gui/gui_src_asm.cc, modules/led.cc, modules/stimuli.cc, modules/switch.cc, src/12bit-processors.cc, src/14bit-processors.cc, src/16bit-processors.cc, src/comparator.cc, src/p16f8x.cc, src/spp.cc: fixed warning 2006-10-28 Scott Dattalo * cli/cmd_load.cc: used a different version of the toString() method in the load command 2006-10-28 Scott Dattalo * src/trace.h, src/trace.cc, src/12bit-processors.cc, src/14bit-registers.cc: - Added a CycleTraceType - Now trace type classes do not add themselves to the current trace frame whenever their decode() methods are called. 2006-10-25 Scott Dattalo * gui/gui_src_asm.cc: Source browser page ptr is not ignored when symbolic debugging is unavailable. * cli/parse.yy: Assigning a non-quoted value to one of the scope channel attributes was causing an abort. * src/pic-instructions.h, src/14bit-instructions.cc, src/pic-instructions.cc, src/16bit-instructions.h, src/16bit-instructions.cc: - Instruction class constructors now initialize all of their data memmbers. * doc/gpsim.html: Fixed some missing links. 2006-10-25 Steffen Joeris * modules/paraface.cc: Patch from Debian Etch release that enables certain Free BSD builds. 2006-10-24 Scott Dattalo * src/trace.cc: Added detailed comments on TraceFrames, TraceTypes, and TraceObjects. 2006-10-23 David Barnett * src/12bit-processors.cc: Fixed extra qualifier bug in the OptionTraceType class. 2006-10-23 Scott Dattalo * AUTHORS: Added Roy to the list :) * regression/Makefile.am: added the i2c regression tests to the distribution * configure.ac: RC2 - release candidate 2 * README.EXAMPLES: this was totally out of date and still needs to be cleaned up. * README: changed revision info, made minor changes. 2006-10-23 Scott Dattalo * src/14bit-processors.cc, src/12bit-processors.cc, src/12bit-processors.h, src/trace.h, src/trace.cc: The OPTION register now has its own trace object * doc/gpsim.lyx: Minor documentation updates * doc/gpsim.html: Placing gpsim web page under CVS control. * doc/screenshots/breadboard.png: added * doc/screenshots/registerview.png: added * doc/screenshots/scope1.png: added * doc/screenshots/scope2.png: added * doc/screenshots/source_browser.png: added 2006-10-23 Roy Rankin * src/p16x6x.h src/ioports.h src/p16x6x.cc src/p16f87x.cc src/i2c-ee.cc src/ssp.h src/pir.cc src/pir.h src/ssp.cc src/p18x.cc src/p16f8x.cc regression/run_regression.sh regression/i2c/p16f876a.asm regression/i2c/16f88.lkr regression/i2c/i2c_low.inc regression/i2c/16f876a.lkr regression/i2c/p16f88.asm regression/i2c/Makefile - Add I2C functionality 2006-10-22 Borut Razem * */.cvsignore: removed CVS leftovers * modules/stimuli.cc: trace.* replaced with get_trace().* the getter function instead of direct object access should be used in modules * plat/win32/sdcc.nsi: added examples/modules/*/README to the setup package 2006-10-19 Scott Dattalo * regression/Makefile.am: Added * configure.ac, extras/graphic_lcd/configure.ac, Makefile.am, examples/Makefile.am: Changed revision from 0.21.12-pre to 0.22.0-RC1. 2006-10-18 Scott Dattalo * src/processor.cc, src/processor.h: - insertRegister() and removeRegister() methods of the RegisterMemoryAccess class now return bool. * src/breakpoints.cc: deleted commented out code. * modules/stimuli.cc, modules/stimuli.h: Implemented the register mapping functionality. * cli/parse.yy: improved the reg() operator syntax. It used to be that only integer operands were accepted. Now, expressions are accepted. * regression/port_stim/18f452.lkr: added * regression/port_stim/Makefile: added * regression/port_stim/port_stim.stc: added * regression/port_stim/port_stim.asm: added * regression/run_regression.sh: Added a regression test for the port_stimulus module. 2006-10-17 Scott Dattalo * examples/projects/stack_test/stack_test.asm, examples/projects/stack_test/stack_test.stc, examples/projects/stack_test/Makefile, examples/projects/digital_stim/digital_stim.stc, examples/projects/digital_stim/digital_stim.asm, examples/projects/digital_stim/Makefile, examples/projects/p16f628_test/f628.asm, examples/projects/p16f628_test/Makefile, examples/projects/p16f628_test/f628.stc: - Clean up examples. * configure.ac: Removed the 12bit, 14bit, and 16bit subdirectories from the list of packaged directories. The example code there is old and needs a whole lot of work to get working. 2006-10-17 Scott Dattalo * examples/modules/Makefile.am, examples/modules/usart_test/usart_test.asm, examples/modules/mod_test/mod_test.stc, examples/modules/usart_test/Makefile: - updated examples * examples/modules/led_test/README: added * examples/modules/led_test/Makefile: added * examples/modules/logic_test/README: added * examples/modules/usart_test/README: added * examples/modules/mod_test/README: added * examples/modules/usart_test/usart.asm: removed 2006-10-17 Scott Dattalo * src/ssp.cc: Fixed uninitialized class data. 2006-10-17 Scott Dattalo * src/breakpoints.h, src/breakpoints.cc, src/processor.h, src/processor.cc, src/registers.cc, src/registers.h: Moved the register breakpoint clearing and setting functionality from the register breakpoint classes to the RegisterMemoryAccess. The purpose of this is to allow other types of register objects (besides break points) to replace registers. * modules/gpsim_modules.cc, modules/stimuli.cc, modules/stimuli.h: Added the parallel port stimulus. This stimulus is identical to a PIC port register in that it has a PORT, TRIS, and LATCH register. Users can control the state of the parallel port stimulus in one of two ways. First, there are user accessible attributes (eg port.latch can be assigned a value). Second, (and this is not completed yet) the user can embed the parallel stimulus into the register memory map. This allows the parallel stimulus to be accessed programmatically (that is from within the PIC assembly code). This allows an assembly program to directly control the simulation environment. 2006-10-17 Scott Dattalo * src/trace.cc, src/trace.h: Changed an empty trace entry from 0 to 0x3fffffff. This provides away to differentiate between an empty trace entry and an uninitialized trace type. 2006-10-17 Scott Dattalo * src/pic-ioports.h, src/pic-ioports.cc, src/16bit-processors.cc, src/16bit-processors.h: Moved the PicLatchRegister class from the 16bit-processor definitions to the pic-ioport definitions. 2006-10-16 Scott Dattalo * gui/gui_src_asm.cc: Renamed the popup menu item function 'Run here' to 'Run to here'. 2006-10-15 Scott Dattalo * gui/gui_src_asm.cc: The popup menu item function 'Move PC here' was not updating the program counter. 2006-10-15 Scott Dattalo * src/trace.h, src/trace.cc: - Added classes for tracing module events. - Fixed a couple of bugs with invalid trace objects being created. Also, invalid trace entries were causing the trace dump to be aborted. * src/16bit-instructions.cc: Removed commented out code * src/dspic/dspic-processors.cc, src/processor.h, src/pic-processor.cc, src/registers.cc, src/ioports.cc, src/processor.cc, src/14bit-registers.cc, src/registers.h: The interface to the trace buffer changed slightly. Also, registers were improperly allocating trace objects. * doc/gpsim.lyx: Added some more documentation. 2006-10-08 Scott Dattalo * modules/switch.cc, modules/switch.h: separated out the gui specific portions of the switch into another class. 2006-10-04 Scott Dattalo * modules/switch.cc: Switch resistance has successfully been reintroduced * regression/switch_test/switch_test.asm: Added a test to test the switch resistance. Note, there are no assertions set on the test because currently there is no way to query the node voltage directly. 2006-10-02 Borut Razem * gpsim.sln, cli/input.cc, cli/cli.vcproj, cli/makefile.mingw, gpsim/gpsim.vcproj, gpsim/makefile.mingw, plat/win32/gpsim.nsi: use readline 5.1. Packages are available at http://gpsim.sourceforge.net/gpsimWin32/packages/readline-5.1-20061001-src.zip, http://gpsim.sourceforge.net/gpsimWin32/packages/readline-5.1-20061001-lib.zip, http://gpsim.sourceforge.net/gpsimWin32/packages/readline-5.1-20061001-bin.zip * doc/gpsimwin32.html: readline 5.1 2006-09-29 Scott Dattalo * modules/switch.cc, modules/switch.h: Trying to reintroduce switch on resistance. * modules/gpsim_modules.cc, modules/resistor.cc, modules/resistor.h: minor clean ups * regression/switch_test/switch_test.asm: Additional comments. Tried to add a test to test switch on resistance... 2006-09-25 Borut Razem * src/sdc.vcproj, src/makefile.mingw: added pm_rd.* to the project 2006-09-21 Dave Barnett * src/pm_rd.cc, src/pm_rd.h: Support for midrange device's program memory read feature. * p16x7x.cc, src/p16x7x.h, src/pic-processor.cc, src/pic-processor.h, src/Makefile.am: Added support for the P16F73 and P16F74 * src/ssp.cc: Fixed typo in printf statement 2006-09-19 Scott Dattalo * src/pic-processor.cc, src/p16f62x.cc, src/p16f62x.h: Added the p16f624 and the p16f624a 2006-09-19 Scott Dattalo * src/pic-processor.cc, regression/p16f628/p16f628.asm: Added the p16f627a and p16f628a processors. Note that these are identical to the non-A versions. 2006-09-10 J.R. Heisey * src/ValueCollections.h: Added indexing operator to class IIndexedCollection. * src/sim_context.cc,h: Added function CSimulationContext:: GetCycleCounter(). * src/modules.cc,h : Added functions to class ModuleLibrary: GetLibraryFileHandle() and GetLibraryFunction(). * gui/gui_src_asm.cc, gui/gui_src.h: - Rescoped several functions into classes to help me keep track of their context. Especially the callbacks. - Implemented the popup menu items: Settings, Find PC, Move PC here, Run here, Breakpoint here, Profile start here, Profile stop here, and most importantly Add to Watch. - Note that the Font selection dialog doesn't seems to actually change the font. It appears to be the same with the old GUI. I haven't checked into it. - Changed the font selection dialog and the settings dialog to use the gtk_dialog_run() function. This fixed an issue when the close (upper right X) button was used the underlying window would be deallocated. This caused the window to never appear again requiring restarting gpsim. 2006-09-03 Scott Dattalo * gui/gui_scope.cc, gui/gui_scope.h: Signal name editing now works. Screen updates for signal names have been fixed. 2006-09-03 Borut Razem * doc/gpsimWin32: glib-2.12.1, gtk+-2.8.20, cairo-1.2.2 2006-08-27 Scott Dattalo * gui/gui_scope.cc, gui/gui_scope.h: - Time axis is now shown. Major and Minor tick marks and the corresponding grid lines are drawn. 2006-08-21 Scott Dattalo * gui/gui.h: KeyEvent now differentiates presses and releases. * gui/gui_src.cc: Update KeyEvent objects. * gui/gui_scope.cc, gui/gui_scope.h: Numerous enhancements: - Added support for markers - Wave pixmaps are now 1024 pixels wide. This primarily fixes a round off error in the binary search routine - Scroll thumb now adjust size based on amount of waveform plotted - Hot key functionality: z -- Zoom in Z -- Zoom out r -- pan right l -- (lowercase ell) pan left - Glitches are now plotted - High frequency events (i.e. events for which there is inadequate monitor resolution to completely show) are plotted in a different color. - Reomved the Pane widget - it was holding the waveforms and just eating up space. - Added WaveBase in anticipation of different types of waveforms. * src/bitlog.h, src/bitlog.cc: The ThreeStateLogger can now return the number of events occurring between two time intervals or between two event indices. (Used for high frequency measuring). 2006-08-08 Scott Dattalo * gui/gui_main.cc: Now scope window is updated when simulation stops. * gui/gui_src_asm.cc: Refresh gui menu when src window changes hidden state. * gui/gui_scope.cc: Redesigned scope window layout. Adding scrolling. 2006-08-06 Roy Rankin * regression/spi regression/spi/p16c62.asm regression/spi/16f88.lkr regression/spi/p18f242.asm regression/spi/16c62.lkr regression/spi/p16f88.asm regression/spi/Makefile regression/spi/18f242.lkr regression/run_regression.sh src/16bit-registers.h src/p16x6x.h src/p16x6x.cc src/p16f87x.cc src/16bit-processors.cc src/ssp.h src/14bit-tmrs.h src/ssp.cc src/ioports.cc src/14bit-tmrs.cc src/p18x.cc src/16bit-registers.cc src/p16f8x.cc src/16bit-processors.h: - Serial Peripheral Interface (SPI) 2006-07-31 Scott Dattalo * src/pic-ioports.cc: RBIF was not handled correctly when the change on interrupt was due to a write to PORTB. * regression/interrupts_14bit.asm: Add a check for the RBIF flag getting set correctly. * arc/p16x8x.cc: W was not getting added to the symbol table. 2006-07-30 Scott Dattalo * cli/cmd_log.cc: Cleaned up help description. 2006-07-30 Scott Dattalo * cli/parse.yy, cli/cmd_log.h, cli/cmd_break.cc, cli/cmd_break.h, cli/cmd_log.cc, src/gpsim_object.cc, src/value.h, src/value.cc, src/expr.h, src/expr.cc, src/trace.h, src/trace.cc, src/registers.h, src/breakpoints.h, src/breakpoints.cc, src/symbol.h, src/gpsim_object.h, src/operator.cc, src/operator.h, src/symbol.cc: - Fixed logging. The logging feature has been broken for a long time. The old code that performed logging has been mostly removed. The new logging code is similar to the breakpoint code. It utilizes TriggerActions.to perform the logging operations. - (The profiling feature is currently broken too. However, it should be possible to utilize TriggerActions for profiling). 2006-07-30 Scott Dattalo * gui/gui_scope.cc, gui/gui_scope.h: development snap - still not complete 2006-07-29 Borut Razem * cli/cli.vcproj, gpsim/gpsim.vcproj, gui/gui.vcproj, modules/modules.vcproj: added cairo dependency, clening * plat/win32/libgpsim.def: MSVC sync * src/i2c-ee.c, modules/i2c-eeprom.c: removed compiler warnings 2006-07-26 Roy Rankin * src/i2c-ee.h src/i2c-ee.cc modules/i2c-eeprom.cc modules/i2c-eeprom.h modules/gpsim_modules.cc: - Added I2C EEprom modules for 24xx024, 24xx16b, 24xx256 2006-07-24 Borut Razem * cli/makefile.mingw, cli/cli.vcproj: define HAVE_SOCKETS - sockets are enabled on WIN32 * plat/win32/libgpsim.def, src/src.vcproj: MSVC sync * doc/gpsimWin32: glib-2.10.3, gtk+-2.8.18, pango-1.12.3 2006-07-23 Scott Dattalo * cli/socket.cc: Re-enabled the socket interface. * examples/scripts/makefile: Hmm, for some reason pango is now required to build the examples. 2006-07-22 Rob Pearce * src/Makefile.am Added a2dconverter.h to the headers list, so that it's included in the tarball built by make dist 2006-07-14 Roy Rankin * src/p18x.h src/p18x.cc src/pic-instructions.cc src/pic-processor.cc src/pic-processor.h: - P18F248 now based on P18F242, P18F448 added based on P18F424 * src/p16x6x.cc: remove debug output 2006-07-12 Scott Dattalo * cli/parse.yy, cli/input.cc: Previously, the parser would abort parsing upon detection of syntax errors. Now the parser will only ignore the erroneous lines. The difference mainly applies to scripts. 2006-07-11 Scott Dattalo * gui/gui_scope.h, gui/gui_scope.cc: Added scope.zoom and scope.pan attributes that allow the image in the scope window to be panned and zoomed. * src/makefile.mingw: added the new psp.cc file. 2006-07-11 Roy Rankin * src/p16x6x.h src/p18x.h src/p16x6x.cc src/pic-ioports.h src/Makefile.am src/psp.cc src/p18x.cc src/psp.h src/pic-ioports.cc regression/psp/18f452.lkr regression/psp/16f871.lkr regression/psp/p18f452.asm regression/psp/p16f871.asm regression/psp/Makefile regression/run_regression.sh: - Add PSP functionality to 40 pin processors based on P16C64 & P18C4x2 2006-07-08 Scott Dattalo * makefile.mingw, plat/win32/make.mingw: Created a 'make depend' rule for the win32 makefiles. Here's how it works; first create the dependency file: $ make -f makefile.mingw depend This will create a file named 'mf' in each directory. Now gpsim can be built by: $ make -f mf (Note: There is a bug with make depend in the modules directory). 2006-07-08 Scott Dattalo * gui/gui_scope.cc, gui/gui_scope.h, gui/gui.h, gui/gui_src.cc: - Moved the KeyEvent class definition to gui.h. - Moved gui_scope local declarations to Scope_Window class. 2006-07-07 Scott Dattalo * gui/gui_scope.cc: Added a GtkEntry widget to hold scope signal names. Now signals can be specified either through the GtkEntry or by the command line attributes. 2006-07-06 Scott Dattalo * gui/gui_scope.cc: IOPINs can now be attached to scope channels. The attachment can only be made at the command line: gpsim> scope.ch0="porta0" Everytime the state of porta0 is changed, the event will also be sent to the scope window where it will get logged and displayed. (Note, the quotes are necessary to prevent gpsim from evaluating the pin name.) * regression/logic_test/logic_test.asm: The logic OR gates connected to porta0,porta1,porta2,portc0 are now displayed in the scope window. 2006-07-05 Scott Dattalo * src/stimuli.h, src/stimuli.cc: Added a virtual destructor to the PinMonitor class. * src/16bit-processors.h, src/16bit-processors.cc, src/pic-ioports.cc, src/processor.cc, src/gpsim_object.cc: minor changes to remove compiler warnings. * gpsim/CopyDlls.bat: This bat file copies the DLLs for the win32 builds to the gpsim/gpsim. A few more DLLs were added to the list. 2006-07-05 Scott Dattalo * plat/win32/make.mingw: Added an option to use ccache for mingw builds. Unfortunately, for this to work well the makefile dependencies also need to be implemented correctly. 2006-07-04 Roy Rankin * src/p16x6x.h src/p16x6x.cc src/p16f87x.cc src/p16f87x.h src/pir.cc src/pir.h src/comparator.h src/a2dconverter.h src/comparator.cc regression/comparator/compar_877a.asm: - Fixes involving PIR_SET 2006-07-03 Borut Razem * cli/cli.vcproj, src/src.vcproj, src/makefile.mingw, plat/uxtime.cc, plat/uxsleep.cc, plat/uxtime.h: uxtime.cc splitted to uxtime.cc and uxsleep.cc, since gettimeofday() is now declared in mingw 2006-07-01 Scott Dattalo * gui/gui_menu.cc, gui/gui_scope.cc, gui/gui_processor.cc, gui/gui_main.cc: - resurrected the scope window. - ThreeStateEventLogger logs traced states. - Implemented an efficient bisecting algorithm for mapping events states onto the plotting window. - Created attributes: scope.ch0 - scope.ch7 specify nodes that are to be monitored scope.start and scope.stop specify the range of time to be viewed. Currently, the scope window cannot display real data. Instead, it will synthesize test data. The scope.start and scope.stop attributes do work. * src/ioports.h, src/stimuli.h, src/stimuli.cc, src/ioports.cc: - Moved the SignalSink class to stimuli.h - Introduced addSink and removeSink methods to the PinMonitor class. - Removed references to 'OLD_IOPORT_DESIGN' * src/bitlog.cc, src/bitlog.h: The ThreeStateEventLogger class now has a flag to indicate when the event buffer is empty. Previously, a "bogus" time was placed at position 0, however this broke the logic that searches for events at particular times. * src/symbol.cc: Added a debug message. 2006-07-01 Scott Dattalo * cli/Makefile.am: Applied patch 1470810 which adds the readline library to list of libraries linked with the cli library. 2006-06-22 Borut Razem * extras/usart_con/*: removed from svn * makefile.mingw, plat/win32/gpsim.nsi: removed usart_con * modules/usart.cc, modules/usart.cc: added possibility to write to the console using the boolean attribute "console = true | false" * examples/modules/usart_gui/usart_gui.asm: send only '\n' for the newline, introduced putchar procedure, ... 2006-06-21 Roy Rankin * regression/usart_test/usart_pir1v1.asm, regression/usart_test/usart_pir1v2.asm: - Check PIC TX pin is high when first set to output. * src/pic-ioports.cc: Portb, allow driving state to be set even when bit is set. * src/tmr0.cc: Fix call of clear_break. 2006-06-16 Scott Dattalo * src/14bit-tmrs.h, src/14bit-tmrs.cc: TMR2 wasn't getting properly initialized when the TMR2ON bit in T2CON was getting set. * TODO: Removed the "Source Browser Search" todo item 2006-06-13 Borut Razem * CVSROOT: removed the CVS left-over * extras/usart_con/usart_con.cc: print control characters in <%02X> format * gui/gui_src_asm.cc: added strcasestr() function 2006-06-16 Scott Dattalo * TODO: Cleaned up the TODO list. * gui/gui_src_asm.cc, gui/gui_src.h: Implemented the Source Browser "Find" dialog box. When the new source browser had been re-written, this feature was ommitted. The dialog supports forward and backward searches and case sensitivity. The search history feature is not currently working (was it ever?). Also, it'd be useful to have a "search all files" feature. * gui/gui_menu.cc: Minor change to TextStyle API. 2006-06-13 Scott Dattalo * src/sim_context.cc, cli/input.cc, cli/cmd_load.cc: Rewrote code to get around a gcc 3.2.2 x86 bug regarding the mis-handling of const char * types (the ECX register was getting clobbered!). 2006-06-13 Borut Razem * src/os_dependent.c, src/modules.h, src/modules.cc: reverted cahanges for fix: [ 1488107 ] const violation in get_error_message() since dlerror() returns const char * on FreeBSD * pic_processor.h: fixed warning multiple default constructors specified * plat/win32/libgpsim.def: MSVC sync * doc/gpsimWin32.html: patched gtk+extra-2.1.1-src-20060611.zip 2006-06-12 Roy Rankin * regression/usart_test/usart_pir1v1.asm regression/usart_test/16f628.lkr regression/usart_test/usart_pir1v2.asm regression/usart_test/Makefile regression/run_regression.sh: - Improve USART regression tests * regression/usart_test/usart_test.stc regression/usart_test/usart_test.asm: removed as redundant * src/uart.cc src/uart.h: receive baud rate fix * modules/usart.cc modules/usart.h: Transmit baudrate fix, loop attribute added, receiver rewritten to remove event logger. 2006-06-10 Robert Pearce * doc/gpsim.lyx: Some hacked notes on creating new modules, and a few other tweaks 2006-06-10 Roy Rankin * src/gpsim_time.h src/stimuli.cc src/gpsim_time.cc src/processor.cc src/14bit-registers.cc: cycles_per_second changed to instruction_cps * src/cod.cc: prevent duplicate symbol messages from static .cod file by not loading constants * gui/gui_stopwatch.cc: remove magic number, Frequency format change * src/pir.cc src/pir.h: RCIF not being set by uart * src/uart.cc modules/usart.cc: fix baud rate error 2006-06-03 Scott Dattalo * src/16bit-processors.cc: The newly added config words were placed at word addresses instead of byte addresses. * src/pic-instructions.cc: Removed warning in CLRWDT instruction that said 16bit wdt timer is not implemented. * src/hexutils.cc: removed ifdef'd out code 2006-06-03 Scott Dattalo * cli/parse.yy, cli/input.cc, cli/input.h, cli/cmd_load.cc: Added an option to the load command to allow processors to be named. Eg: gpsim> load test.cod U1 # Assign U1 ref. des. to processor * src/processor.h, processor.cc, src/p16x6x.h, src/p16x6x.cc, src/p16f87x.h, src/p16f87x.cc, src/16bit-processors.h, src/16bit-processors.cc, src/pic-processor.h, src/pic-processor.cc, src/p16f62x.h, src/p16f62x.cc, src/p16x5x.h, src/p16x5x.cc, src/p16x7x.h, src/p16x7x.cc, src/12bit-processors.h, src/12bit-processors.cc, src/p12x.h, src/p12x.cc, src/p18x.h, src/p18x.cc, src/processor.h, src/processor.cc, src/p16x8x.h, src/p16x8x.cc, src/p16f8x.h, src/p16f8x.cc, src/14bit-processors.h,src/14bit-processors.cc, src/dspic/dspic-processors.cc, src/dspic/dspic-processors.h: Pic processors now can be named when instantiated. * gui/gui_menu.cc: Adhere to the new calling convention for gpsim_open. * src/hextutils.h, src/hexutils.cc, src/program_files.cc, src/program_files.h, src/sim_context.h, src/sim_context.cc, src/cod.cc: New calling convention for LoadProgramFile * src/os_dependent.cc: There appeared to be a compiler bug IsFileExtension() (a const pointer in the callee's stack space was getting modified). But, there is a built in STL function that does the same thing IsFileExtension() was doing, so that's now used. * regression/ttl/ttl377.stc: added * regression/ttl/Makefile, regression/comparator/compar_877a.stc, regression/comparator/compar_628.stc, regression/comparator/compar_873a.stc, regression/p16f84/p16f84.stc, regression/switch_test/switch_test.stc, regression/switch_test/switch_test.asm, 2006-06-03 Roy Rankin * src/stimuli.cc, src/stimuli.h: New resistor-capacitor transient voltage calculation implemented and activated, getBitChar function re-written. * modules/switch.cc, modules/switch.h, regression/switch_test/switch_test.asm: - Switch module model changed eliminating Rclosed parameter 2006-03-02 Borut Razem * extras/graphic_lcd/makefile.mingw, plat/win32/gpsim.nsi: graphic_lcd.dll renamed to libgpsim_graphicLCD.dll * extras/lcd/examples/lcd_mod.stc: libgpsim_lcd.so changed to libgpsim_lcd 2006-05-31 Scott Dattalo * src/p16x6x.h, src/16bit-processors.cc, src/14bit-registers.h, src/processor.h, src/pic-registers.h, src/pic-processor.cc, src/pic-processor.h, src/p16x8x.h, src/pic-registers.cc, src/breakpoints.cc, src/12bit-processors.h, src/14bit-processors.cc, src/14bit-processors.h: Accesses to CONFIG2H now can control the WDT. A couple of new members were added to the WDT class to support the new reading and writing. Also, some minor class clean up was also performed. 2006-05-31 Borut Razem * Implemented enhancement request [ 1496325 ] To bundle the extra modules with gpsim-win32 snapshot makefile.mingw: added targets extras, clean_extras extras/graphic_lcd/makefile.mingw, extras/lcd/makefile.mingw, extras/usart_com/makefile.mingw: introduced GPSIM_LIB_PATH, GPSIM_INCLUDE_PATH, GPSIM_DEF_PATH variables plat/win32/gpsim.nsi: added potion to install extras modules 2006-05-28 Borut Razem * src/os_dependent.c, src/modules.h, src/modules.cc, src/sim_context.cc: fixed [ 1488107 ] const violation in get_error_message() 2006-05-29 Robert Pearce * regression/resistor/resistor.asm: improved failure reporting and added tests for the output pin not being swamped * src/stimuli.cc, src/stimuli.h: Adjusted default Zth values to be more sensible (ZthWeak now > ZthPullUp). Also some debug messages on wht looks like a dodgy condition. Need to follow up. * doc/gpsim.lyx: corrected some formatting. 2006-05-28 Borut Razem * plat/win32/gpsim.nsi: removed unneeded asprintf.dll from the package, added possibility to define the SETUP_DIR from the NSIS command line * doc/gpsimWin32.html: glib-2.8.6, gtk+-2.8.17, pango-1.12.1, cairo-1.0.4 * extras/graphic_lcd/src/gpsim_modules.cc, extras/graphic_lcd/src/sed1520.cc, extras/lcd/hd44780.cc: removed unneeded inclusion of config.h * extras/graphic_lcd/makefile.mingw: added, thanks to Xiaofan Chen * extras/lcd/makefile.mingw: corrected, thanks to Xiaofan Chen * makefile.mingw: added rules doc and setup * plat/win32/fd2raw.cpp: report error messages 2006-05-28 Roy Rankin * src/gpsim_object.cc: Improve GNU demangling * modules/switch.cc, modules/switch.h, regression/switch_test/switch_test.asm: - Fix infinite regression bug. 2006-05-27 Scott Dattalo * src/ValueCollections.cc, src/ValueCollections.h, src/14bit-registers.cc: An indexed collection can now accommodate a disjoint set. * src/16bit-processors.h, src/16bit-processors.cc, src/dspic/dspic-processors.cc, src/dspic/dspic-processors.h, src/processor.h, src/processor.cc, src/pic-processor.h, src/14bit-processors.h,src/14bit-processors.cc, src/pic-processor.cc: The ProgramMemoryClass now uses the newly added "disjoint set" feature of an IndexedCollection to provide access to configuration memory. E.g. romData[0x300000] = 0x1234 will write 0x1234 to the configuration word at address 0x300000. In addition, infrastructure has been added to symbolically deal with configuration memory. E.g. gpsim> .CONFIG1H $00000027 gpsim> help .CONFIG2H $0000000f WatchDog configuration Currently the configuration memory does not control any thing. I.e., if you write to config memory, the data changes, but the processor configuration is not actually changed. * src/hexutils.cc: removed printf debugging. 2006-05-25 Scott Dattalo * modules/stimuli.h, modules/stimuli.cc: More support for file stimulus. 2006-05-25 Scott Dattalo * modules/logic.h, modules/logic.cc, modules/gpsim_modules.cc: Only use if the gui is enabled 2006-05-25 Scott Dattalo * modules/switch.h, modules/switch.cc, modules/gpsim_modules.cc: Only use gui if enabled. * modules/stimuli.h, modules/stimuli.cc: Began adding support for file stimulus. 2006-05-24 Borut Razem * modules/makefile.mingw, modules/modules.vcproj: added stimuli.* * plat/win32/libgpsim: MSVC sync 2006-05-23 Borut Razem * doc/gpsimWin32.html: CVS replaced with Subversion * src/14bit-tmrs.h, src/14bit-tmrs.cc: - PWM fixes CCP high if duty cycle 0, CCPRnH loaded on TMR2 compare, PWM starts after first TMR2 compare, PMR2::put and PR2::put rewrite * regression/ccp/pwm_877a.asm, regression/ccp/Makefile, regression/run_regression.sh: PWM regression 2006-05-21 Scott Dattalo * modules/stimuli.h, modules/stimuli.cc: New files for 'extended' stimuli. Currently only an asynchronous stimulus replacement called 'pulsegen' has been created. * modules/Makefile.am, modules/gpsim_modules.cc: Added pulsegen to the default list of modules. * regression/run_regression.sh, regression/wavegen/16f877a.lkr, regression/wavegen/Makefile, regression/wavegen/pulsegen.asm, regression/wavegen/pulsegen.stc: New regression test to test the pulsegen module. (This test is really just a copy of the ccp regression test except that the asynchronous stimulus has been replaced with a pulsegen module). * src/symbol.cc: Module symbol descriptions were not getting printed * cli/cmd_break.cc: removed bogus warning about cycle break points not getting set. 2006-05-21 Robert Pearce * src/p16f87x.h, src/p16f87x.cc: Re-worked 16F871 to be derived from 16C64 rather than 74, because that's the easiest way I could find to fix the RAM size (it had way too much) and the stray CCP2 2006-05-19 Scott Dattalo * src/expr.h, src/expr.cc: Added LiteralArray class for (better) handling array types. * cli/parse.yy, cli/scan.ll: experimenting with user-created typed symbols. * src/processor.cc: Removed bogus check that prevented users from over-writing the Rom contents. If the user wants to over write ROM then they should be allow to! 2006-05-19 Roy Rankin * src/14bit-tmrs.cc: TMR2 counts down not up, period wrong, fix 2 PWM with same duty cycle * src/p16f8x.cc: CCP1 pin determined by confguration word * src/p16x6x.cc: fix core dump for CCP2 2006-05-17 Scott Dattalo * regression/run_regression.sh: added regression test for ccp peripheral. This test only tests capture modes for the CMCON settings of 4,5,6, and 7. * regression/16f877a.lkr, regression/ccp_877a.asm, regression/ccp_877a.stc, regression/Makefile: new files for the ccp regression test. 2006-05-14 Borut Razem * src/makefile.mingw, src/vcproj: added 16f87 and 16f88 processors * modules/makefile.mingw: added i2c-eeprom * src/p12x.cc: removed unused variable * src/i2c-ee.cc: fixed warning: In member function `virtual bool I2C_EE::processCommand(unsigned int)': warning: control reaches end of non-void function; fixed MSVCcompilation * plat/win32/libgpsim.def: MSVC sync 2006-05-14 Scott Dattalo * src/value.h, src/value.cc, src/expr.cc: Expressions derived from the base gpsim types (like Integer, Float) were not getting evaluated properly. 2006-05-14 Roy Rankin * regression/a2d/p16f874a.asm, regression/a2d/p16c71.asm, regression/a2d/16f871.lkr, regression/a2d/16f874a.lkr, regression/a2d/p18f452.asm, regression/a2d/p16f88.asm, regression/a2d/p16f871.asm, regression/a2d/Makefile, regression/a2d/p16f873a.asm, regression/run_regression.sh, src/p16f87x.cc, src/p16f87x.h, src/16bit-processors.cc, src/p16f62x.cc, src/p16x7x.cc, src/p18x.cc, src/a2dconverter.cc: - tests and correction to a2d for various processors 2006-05-14 Roy Rankin * src/16bit-registers.h, src/14bit-registers.h, src/pic-processor.cc, src/Makefile.am, src/pic-processor.h, src/14bit-registers.cc, src/p16f8x.h, src/p16f8x.cc, regression/a2d/Makefile, regression/run_regression.sh, regression/a2d/16f88.lkr, regression/a2d/p16f88.asm: - Add 16f87 and 16f88 processors 2006-05-13 Scott Dattalo * src/a2dconvert.h: removed redundant class qualifiers in member function declarations. 2006-05-13 Scott Dattalo * src/processor.h, src/processor.cc, gui/gui_src_opcode.cc: Added romData[] accessor (analogous to ramData) to provide a way of querying and modifying the program memory. So now you can change program memory from the command line: gpsim> romData[address] = value Address and value can be symbols. 2006-05-12 Robert Pearce * regression/run_regression.sh, regression/txisr_test/...: Added a test for the correct behaviour of usart transmit interrupts 2006-05-11 Robert Pearce * src/p16f87x.cc: A2D converter fixes for the 16f871. 2006-05-10 Scott Dattalo * src/pir.h, src/pir.cc: Applied patch (with modifications) from Robert Pearce that adds the concept of 'writable' PIR register bits versus 'valid' ones. 2006-05-10 Scott Dattalo * src/16bit-hexdecode.cc, src/p16x6x.h, src/i2c-ee.h, src/p16x6x.cc, src/p16f87x.cc, src/16bit-processors.cc, src/i2c-ee.cc, src/eeprom.cc, src/pir.cc, src/p16f62x.cc, src/pie.cc, src/pir.h, src/p16x7x.cc, src/p18x.cc, src/value.cc, src/eeprom.h, src/16bit-registers.cc: - Redesigning PIR logic. The existing design requires numerous manuel configurations that are subject to error. The new design attempts to encapsulate the PIR configuration within the PIR classes. 2006-05-10 Scott Dattalo * modules/i2c-eeprom.h, modules/i2c-eeprom.h, Makefile.am, src/p12x.h, src/p12x.cc: Began designing a gpsim I2C module. 2006-05-08 Borut Razem * extras/usart_con.cc: sync with modules/usart.cc 2006-05-08 Roy Rankin * src/comparator.h, src/comparator.cc, src/p16f62x.cc: - rewritten so comparator processor differences in processor class * src/p16x6x.cc: portc register removed from p16f62x * src/p16f87x.cc, src/p16f87x.h: a2d added, comparator change * src/16bit-processors.cc, src/p16x7x.cc src/a2dconverter.h, src/a2dconverter.cc: code change for pending p16f88 * regression/a2d/Makefile, regression/run_regression.sh, regression/a2d/16f873a.lkr, regression/a2d/p16f873a.asm: - add a2d regression for p16f873a 2006-05-06 Scott Dattalo * src/stimuli.cc, src/stimuli.h, cli/cmd_stimulus.cc: Stimuli parameters are now initialized with Values instead of doubles. 2006-05-06 Scott Dattalo * modules/usart.h, modules/usart.cc: - Added the boolean attribute 'crlf'. If this is set true, then carriage returns and line feeds will generate new lines in the gui terminal window. 2006-05-06 Robert Pearce * modules/usart.h, modules/usart.cc: - Usart GUI now displays non-printable characters as <%02X>. - The usart module now supports a transmit FIFO. This allows transmit data to be queued while the simulation is stopped. 2006-04-30 Roy Rankin * gui/gui_src.h gui/gui_src_asm.cc: fix ungisgned - signed compile warnings * gui/gui_breadboard.cc: get trace working again * gui/Makefile.am: remove unused and incorrect defines 2006-04-29 Scott Dattalo * modules/switch.cc, modules/switch.h, regression/switch_test/switch_test.asm: Moved pin functionality from the Switch class into the Switch_Pin class. 2006-04-29 Robert Pearce * src/value.cc: Fixed Float type check error. 2006-04-29 Roy Rankin * src/gpsim_object.h src/gpsim_object.cc src/stimuli.cc src/stimuli.h gui/gui_breadboard.h gui/gui_breadboard.cc: - GUI pin rename code - rewritten and moved into IOPIN class * src/comparator.h src/comparator.cc p16f62x.cc: - Do dynamic GUI pin renaming * gui/Makefile.am: remove unused and incorrect defines * src/processor.cc: Set 4 clock cycles per instruction cycle * regression/comparator/compar_628.asm: Start by turning off comparators 2006-04-28 Borut Razem * modules/makefile.mingw, modules/modules.vcproj, plat/win32/libgpsim.def, extras/lcd/makefile.mingw, plat/win32/gpsim.nsi: WIN32 sync 2006-04-26 Scott Dattalo * modules/switch.cc, modules/switch.h, modules/gpsim_modules.cc: - Added On-resistance and Off-resistance attributes to the switch module. (They're called Ropen and Rclosed). - The switch module code now resides in the 'Switches' namespace. * modules/resistor.cc: - The resistor module now initializes itself with the gpsim default attributes (which for now are only xpos and ypos). * regression/switch_test/switch_test.asm, regression/switch_test/switch_test.stc: Moved the switch regression test configuration script into the switch_test.asm source 2006-04-24 Scott Dattalo * src/ioports.cc, src/ioports.h: Fully deprecated the IOPORT class. The old IOPORT class is still present, but conditionally disabled. * modules/logic.cc, modules/usart.cc, modules/logic.h, modules/switch.cc, src/stimuli.cc, src/stimuli.h, src/cod.cc, src/comparator.h, src/i2c-ee.cc: Removed all references to the IOPORT class. 2006-04-23 Scott Dattalo * src/gpsim_object.h, src/gpsim_object.cc: Removed TRUE and FALSE definitions. 2006-04-23 Roy Rankin * src/gpsim_object.h src/gpsim_object.cc gui/gui_breadboard.h gui/gui_breadboard.cc: Allow pin names to be changed after breadboard is started. * src/stimuli.cc: minor output format change and new debuging output 2006-04-22 Roy Rankin * modules/switch.cc modules/switch.h: fix windows regression problem 2006-04-17 J.R. Heisey * modules/gpsim_modules.cc, modules/push_button.cc, modules/resistor.cc, modules/push_button.h, modules/resistor.h, modules/encoder.cc, modules/encoder.h, modules/Makefile.am: - Removed references to the deprecated IOPORT class. - Temporarily removed the video and the parallel_port modules (I don't have a way to test them). - The push button module can now be used again. 2006-04-17 Borut Razem * config_win32.h.in: added the explanation why the warning is good: warning: `I' flag used with `%x' printf format * cli/cli.vcproj, modules.vcproj, modules/makefile.mingw, plat/win32/libgpsim.def: WIN32 sync 2006-04-16 Scott Dattalo * modules/binary_indicator.cc,h: removed from gpsim. This module did absolutely nothing. * modules/gpsim_modules.cc, modules/Makefile.am: removed references to the binary_indicator. 2006-04-16 Scott Dattalo * modules/ttl.cc: TTLbase now calls initializeAttributes(). This defines xpos and ypos attributes. * regression/ttl/ttl377.asm: xpos and ypos are initialized by the builtin script. * modules/led.cc, modules/led.h: Redesigned I/O pins to remove references to the deprecated IOPORT class. * modules/gpsim_modules.cc: Place Led classes in their own namespace. 2006-04-16 Borut Razem * config_win32.h.in: fixed bug [ 1470012 ] Breakpoints regression test crashes mingw gpsim * modules/makefile.mingw, modules/modules.vcproj: WIN32 sync 2006-04-16 Scott Dattalo * modules/gpsim_modules.cc, modules/Makefile.am, modules/ttl.cc, modules/ttl.h: Began a TTL module. Right now it contains only a '377. * regression/run_regression.sh, regression/ttl/18f452.lkr, regression/ttl/Makefile, regression/ttl/ttl377.asm: Regression test for the newly added '377 module in the ttl library. * src/modules.h, src/modules.cc, gpsim_object.cc: Modules can now be constructed with a name and a description. 2006-04-15 Scott Dattalo * regression/switch_test/switch_test.asm: corrected 'capacitance' 2006-04-15 Borut Razem * cli/cli.vcproj, cli/makefile.mingw: added define YYSTACK_USE_ALLOCA * src/a2dconverter.*: svn:keywords=Author Date Id Revision, svn:eol-style=native * src/a2dconverter.cc: corrected include path to "../config.h" * regression/switch_test/switch_test.stc: corected 'capacitance' 2006-04-15 Scott Dattalo * src/16bit-registers.h, src/16bit-processors.cc, src/16bit-registers.cc, src/16bit-processors.h, src/p18x.cc, src/a2dconverter.cc: A2D is now working (but not fully tested) for the 16bit core. * src/pir.h: Redesigned PIR base class in the first attempt in removing PIR_SET classes * src/symbol.cc, src/stimuli.cc: Fixed symbol table dump. * regression/a2d/Makefile, regression/a2d/p18f452.asm: Regression test for the 18f452 A2D converter. * modules/resistor.cc: Made 'Capacitance' attribute lower case. 2006-04-13 Scott Dattalo * gui/gui_src_asm.cc: removed debug printf * modules/resistor.cc: Added module description. * src/a2dconvert.cc: Added a verbose mode printf debug statement. * src/p16x7x.cc: P16C71 class now sets A2D converter bits. * src/symbol.cc, src/symbol.h: module_symbol can now display a module description. * regression/run_regression.sh: added A2D regression test for the p16c71. * a2d/Makefile, a2d/p16c71.asm, a2d/16c71.lkr: A2D regression test for the 16c71. 2006-04-13 Borut Razem * gui/gui_src_asm.cc: removed warnings * modules/switch.h, src/dspic/dspic-processors.h, src/operator.h: enable compilation on Fedora Core 5 (gcc 4.1.0) * regression/comparator/compar_628.stc, regression/comparator/compar_673a.stc, regression/comparator/compar_677.stc, regression/eeprom_wide/eeprom_wide.stc: changed libgpsim_modules.so with libgpsim_modules so that it runs on WIN32 * src/makefile.mingw, src/src.vcproj, plat/win32/libgpsim.def: WIN32 sync 2006-04-13 Scott Dattalo * src/Makefile.am, src/a2dconverter.h, src/a2dconverter.cc: New Files. * src/p16f87x.cc, src/p16x7x.h, src/p16x7x.cc: Removed a2d-specific stuff from p16x7x.[h,cc] and placed it into a2dconverter.[h,cc]. Also, the p16c71 doesn't have a PIR register. The INTCON class assumes that there is one. So a special (non-existant) PIR register has been created that is not instantiated in the register map, but is capable of communicating PIR-specific information with those peripherals that implement their own PIR functionality (this is currently only the P16C71 A2D module). * src/pir.h: The PIR_SET used to be a pure virtual base class. This class needs to be redesigned... * src/pir.h: Made class members private. * src/gpsim_object.h, src/gpsim_object.cc, src/value.h, src/value.cc: Moved Value descriptions into the parent gpsimObject class. The purpose of this change is to provide a uniform way in which gpsimObjects (like processors and modules) can describe themselves. * modules/resistor.cc: Added a voltage attribute to pull up resistors. Now pullup resistors can be used as general purpose voltage sources. 2006-04-11 Scott Dattalo * gui/gui_src_asm.cc: Double clicks in the source browser were causing segv's 2006-04-11 Scott Dattalo * gui/gui_src.h, gui/gui_src_asm.cc: Right-button mouse clicks now bring up a menu. Currently, not all of the menu items are supported. Furthermore, only GtkTextTag'd text responds. 2006-04-11 Roy Rankin * src/p16f87x.cc: if code read with breadboard closed, breadboard did not show processor. * src/pic-ioports.cc: fix portb does not show high inputs if register bits cleared from assembler code. * regression/rt.sh: allow multiple tests in one directory * regression/run_regression.sh: run comparator tests seperatly * src/comparator.cc: cleanup compiler warnings 2006-04-08 Scott Dattalo * cli/scan.cc: removed from SVN. This autogenerated by flex from scan.ll. 2006-04-09 Borut Razem * extras/graphic_lcd/utils/custom.png, extras/graphic_lcd/utils/fontimage.png, extras/graphic_lcd/utils/gpsim1.png, extras/graphic_lcd/utils/konqueror.png, extras/graphic_lcd/utils/konqueror16X16.png, extras/graphic_lcd/utils/konqueror3.png: mime-type image/png * src/src.vcproj, src/makefile.mingw: new files src/comparator.h src/comparator.cc * gui/gui_menu.cc, gui/gui_profile.cc, gui/gui_regwin.cc, gui/gui_src_asm.cc, gui/gui_watch.cc, modules/logic.cc, modules/resistor.cc, modules/switch.cc, modules/usart.cc, src/dspic/dspic-registers.cc, src/intcon.cc, src/ioports.cc, src/pic-instructions.cc: removed unused variables, #if 0-ed unused functions removed warnings: XXXX.h: In constructor `xxxx': XXXX.h:LLL: warning: `yyyy' will be initialized after XXXX.h:LLL: warning: `zzzz' XXXX.cc:LLL: warning: when initialized here 2006-04-08 Scott Dattalo * ChangeLog: experimental SVN checkin. 2006-04-08 Scott Dattalo * INSTALL: re-instated - somehow it got wiped out on 04-05 * ltconfig, missing, mkinstalldirs, stamp-h.in: removed from CVS. 2006-04-08 Roy Rankin * src/cod.cc src/sim_context.cc: backout Pin names changing in 2006-04-05 patch until better method can be found. * gui/gui_regwin.cc: fix core dump of ram window and ascii part of register windows not showing all characters. * src/p16f87x.cc: fix eeprom being initialized twice for most p16f87x processors. 2006-04-08 Roy Rankin * src/pic-processor.h src/pic-processor.cc src/p16f87x.h p16f87x.cc: Add support for p16f87xA which are p16f87x with 2 comparators and vref. * src/p16f62x.h src/p16f62x.cc src/Makefile.am src/pir.cc src/pir.h: new files src/comparator.h src/comparator.cc to add comparator and vref functions. * new directory regression/comparator with new files compar_628.asm compar_628.stc compar_877a.asm compar_877a.stc compar_873a.asm compar_873a.stc Makefile 16f628.lkr 16f877a.lkr 16f873.lkr for comparator regression tests. * regression/run_regression.sh: invoke comparator regression tests 2006-04-05 Roy Rankin * src/ioports.h src/ioports.cc : Fix setEnableMask() so it works when pin is already added. Stop memory leak in newDefaultControl(). * src/pic-ioports.cc: setTris() can be run multiple times. * src/p16f62x.cc src/cod.cc: Correct error in Oscillator configuration bit processing. Pins 5, 6 and 7 of port A may be I/O depending on configuration bits. Pin names changed depending on configuration bits. * src/p16x6x.cc: Bit 5 of port A is I/O for all of 16X6x family p16x63 and higher. * src/eeprom.h src/eeprom.cc src/p16f87x.cc: fix bugs in writing to EEPROM and added FLASH program writing using wide mode (p16f87x). * regression/run_regression.sh: add directory regression/eeprom_wide with files Makefile, 16f873.lkr, eedate_wide.asm and eeprom_wide.stc for regression testing of EEPROM and FLASH single byte wide read-write operations. 2006-03-30 Scott Dattalo * gui/gui_regwin.cc: In 03-27 changes, a variable initialization got commented out and caused a segv on some systems 2006-03-30 Scott Dattalo * src/14bit-registers.h, src/14bit-registers.cc: Resetting the program counter low register (PCL) was causing the cycle counter to advance by one. 2006-03-29 Scott Dattalo * gui/gui_src_asm.cc, gui/gui_src.h: Source files are now only parsed whenever they're brought into view. (The previous commit parsed the source, but only placed it into a gtk_text_view whenever the source was brought into view). * src/processor.cc: Config addresses in the .lst file were causing a segv when the list file was processed. 2006-03-28 Scott Dattalo * gui/gui_src_asm.cc, gui/gui_src.h: - If there are many source files, the notebook will now allow the tabs to be scrolled. - Source files are now only rendered whenever the page in which they reside is brought into view. (Otherwise, large projects will take a very long time to load). 2006-03-27 Scott Dattalo * gui/gui_watch.cc: - Watch window was causing segv for the case when a watched register did not have an entry in the symbol table. - Fixed a bug where the "hex" attribute was being repeatedly added to the eXdbm data base. Note this fix was only applied to non-WIN32 OSes * gui/gui_regwin.cc, gui/gui_regwin.h: The register window cells were not getting resized correctly whenever the font was changed. Also, the default font was changed to Monospace. 2006-03-24 Scott Dattalo * src/symbol.h, src/symbol.cc: Added a convenience function for searching the symbol table for strings. * src/processor.h, src/processor.cc: Change FileContext::Add method to accept only a const char *. 2006-03-24 Scott Dattalo * src/processor.h, src/processor.cc: The FileContext class now handles list files. * gui/gui_src_asm.cc, gui/gui_src.h, gui/gui_menu.cc: Breakpoints can be manipulated through the list file view of the source browser. Switching pages in the source browser now updates the margin. The preferences editor 'Margins' and 'Tabs' were combined into just 'Margins'. 2006-03-22 J.R. Heisey * cli/input.cc, gui/gui_symbols.cc: use glib's g_strndup() instead of strndup. 2006-03-22 J.R. Heisey * gui/gui_src_asm.cc: Last change cause segv in preferences editor. 2006-03-22 J.R. Heisey * src/cod.cc, src/pic-instructions.cc, src/processor.cc, src/processor.h: Fixed list file processing. Now the file context class knows if it owns a .lst file versus a .asm or .inc file. * gui/gui_src.h, gui/gui_src_asm.cc: List files are now displayed in the source browser. The program counter indicator tracks correctly. Breakpoints can not be controlled from within the list file view yet. Changed strndup calls to g_strndup. The form is a GNU extension while the latter is part of glib, but both do the same thing. This removes an OS dependency. 2006-03-21 Scott Dattalo * gui/gui_object.cc: removed debug printf * gui/gui_src_asm.cc: Added a delete_event handler for the source browser; killing the source browser window was causing gpsim to crash otherwise. The source browser name has been updated to match the old browser's name (this is mainly for registry and .gpsim settings). Added GTK_WAIT's for slower machines. Apparently gtk's event queue is getting overwhelmed while the source browser is being created. 2006-03-21 Borut Razem * src/cod.cc: fixed bug "[ 1448454 ] usart_test - ERROR: == comparison is not defined for String" by merging "assertions" and "assertions" lists to a single "directive" list 2006-03-20 Scott Dattalo * regression/breakpoints.asm: Embedded script error was causing regression test to fail. * regression/rt.sh: Minor fix to Borut's regression test enhancement; the 'tee' command was appending multiple regression tests to the same log file. Also, on Athlon 64's, the tee command was causing pipe errors for some reason. 2006-03-19 Scott Dattalo * gui/gui_menu.cc, gui/gui_src.h, gui/gui_src_asm.cc: The preferences window now configures the source browser tabs, margins, and font. 2006-03-19 Borut Razem * plat/win32/gpsim.nsi: added share and lib\gtk-2.0\2.4.0\engines to the package, use share\themes\MS-Windows\gtk-2.0\gtkrc as the default gtkrc * gpsim/regression/rt.sh: failure detection 2006-03-15 Scott Dattalo * gui/gui_src.h, gui/gui_src_asm.cc: Added .lst files to the source browser. Added the "ColorHolder" class to wrap a GdkColor that can be changed and reverted back to its original value. The colors for the source browser are now saved. Line numbers, addresses, and opcodes in the margin can be selectively enabled * gui/gui_menu.cc: Example code for src browser configuration is now rendered in a SourcePage. * gui/gui_statusbar.cc, gui/gui_main.cc, gui/gui.h, gui/gui_regwin.cc, gui/gui_break.cc, gui/gui_profile.cc: The global 'gp' has been renamed gpGuiProcessor. 2006-03-15 Alain Portal * src/p12.h: Remove redundant class scoping (causes errors with gcc-4.1) 2006-03-14 Borut Razem * src/dspic/makefile.mingw: added * plat/win32/gpsim.nsi: fixed typo 2006-03-13 Scott Dattalo * src/processor.cc: hex files were not getting loaded properly. 2006-03-12 Scott Dattalo * src/pic-ioports.cc: PIC TRIS writes were not getting traced. 2006-03-12 Borut Razem * config_win32.h.in: added #define _USE_MATH_DEFINES, so that M_PI is defined in MSVC math.h 2006-03-12 Scott Dattalo * gui/gui_src.h, gui/gui_src_asm.cc, gui/gui_menu.cc: - Gui Preferences for source browser is *almost* working now. It's possible to modify colors, but the state of the colors are not being saved in the gpsim config file. Also, the line number, address, opcode configuration is not completed. - The Source browser now utilized the text_view margin for displaying addresses and opcodes. Also, breakpoints changes the margin field text to red. (This duplicated the diamond indicator, but I plan to use that for modifying complex breakpoints). 2006-03-12 Borut Razem * plat/win32/gpsim.nsi, doc/gpsimWin32.html, plat/win32/make.mingw, cli/makefile.mingw, gpsim/makefile.mingw, gui/makefile.mingw, modules/makefile.mingw: glib-2.8.6, gtk+-2.8.13, pango-1.10.2, atk-1.10.3, cairo-1.0.2, ... 2006-03-09 Borut Razem * examples/modules/usart_gui/usart_gui.asm, examples/modules/usart_gui/usart_gui.stc: Renamed the usart RX and TX pins to RXPIN and TXPIN 2006-03-07 Scott Dattalo * src/gui_src_asm.cc: Turned off debugging. Added a gtk event queue wait. * src/gui_processor.h: The default is to now enable the new source browser. 2006-03-06 Scott Dattalo * src/stimuli.cc: The stimulus command without any options now shows more information. In particular, value stimuli (the ones that allow you to specify an array of data) are now shown. 2006-03-06 Scott Dattalo * doc/gpsim.lyx, doc/gpsim.pdf: Updated the documentation to reflect the deprecation of the X command 2006-03-06 Scott Dattalo * gui/gui_menu.cc, gui/gui_src.h, gui/gui_src_asm.cc: Moved the gtk text tag table to the source browser parent class. Added a SourceBuffer class to wrap the text buffers. With these changes, multiple source browsers will share the same text buffers. 2006-03-06 Scott Dattalo * cli/cmd_x.cc: The x command has been deprecated. 2006-03-05 Scott Dattalo * src/stimuli.h: The default Thevenin resistance for an IOPIN was too low. This caused an INPUT only pin to appear as though if it was driving! (Bug reported by Alex Holden). 2006-03-05 Borut Razem * configure.ac: removed GTK+ 1.x leftovers * plat/win32/gpsim.nsi: remove extras/graphic_lcd/* when uninstalling gpsim, added extras/usart_con * extras/usart_con/AUTHORS, extras/usart_con/autogen.sh, extras/usart_con/ChangeLog, extras/usart_con/configure.in, extras/usart_con/COPYING, extras/usart_con/INSTALL, extras/usart_con/Makefile.am, extras/usart_con/makefile.mingw, extras/usart_con/module_manager.cc, extras/usart_con/NEWS, extras/usart_con/README, extras/usart_con/usart_con.cc, extras/usart_con/usart_con.h: receive-only usart module, received characters are printed to the console 2006-03-04 Scott Dattalo * gui/gui_menu.cc, gui/gui_src.h, gui/gui_src.cc: See comment on 2006-02-27. Removed the line numbers from the source browser. Changed the current PC and breakpoint indicator. Also, now clicking on a break indicator toggles a break point. 2006-03-04 Scott Dattalo * src/modules.h, src/modules.cc, src/os_dependent.cc: Changed references from char * to const char * for error strings processing. (Alex Holden reports that on BSD dlerror returns const char * where as on linux it returns plain char *). 2006-03-04 Scott Dattalo * cli/ui_gpsim.cc: GlobalVerbosityAccessor verbose was declared twice! (Thanks to Alex Holden for pointing this out). 2006-02-27 Scott Dattalo * src/processor.cc: FileContext put_address and get_address methods were ignoring the last line of files. * gui/gui_src.h: Rewrote the source browser using the gtk+-2.X API. *** NOTE *** The older version of the source browser is still present and enabled by default. To enable the new browser, 'NEW_SOURCE_BROWSER' needs to be defined. (This can either be accomplished by ./configure or by editing gui/gui_processor.h * gui/gui.h, gui/gui_processor.h: Added new source window class to list of gui classes. * gui/gui_menu.cc: ifdef'd removed the source browser preference configuration (for now) * gui/gui_object.cc, gui/gui_object.h: set_name() now requires const char * instead of just char *. 2006-02-25 Borut Razem * src/p18x.cc: EEPROM sfr registers were not mapped on 16 bit pics 2006-02-20 Borut Razem * src/os_dependent.cc: reverted changes I made 2006-02-19, since the GPSIMPATH functionality was already implemented 2006-02-20 Scott Dattalo * src/symbol.cc: Symbol_Table::clear() crashes when the simulation engine is used as a stand alone library (Reported by David Saxtion). 2006-02-19 Borut Razem * regression/switch_test/switch_test.stc, examples/modules/usart_gui/usart_gui.stc: removed .so extension from "module library libgpsim_modules.so" so that it runs on WIN32 platform * src/modules.cc: made ModuleLibrary::MakeCanonicalName() a dummy method on WIN32 platform. Is it really needed on *nix? * src/os_dependent.cc: introduced GPSIM_MODULE_PATH environment variable on WIN32 platform to define additional directories where modules are searched. The search order for WIN32 is as follows: 1. The directory specified by library_name. 2. The current directory. 3. The system directory. 4. The 16-bit system directory. 5. The Windows directory. 6. The directory from which the application loaded followed by directories listed in GPSIM_MODULE_PATH environment variable followed by directories listed in PATH environment variable. 2006-02-17 Scott Dattalo * src/16bit-instructions.cc, src/16bit-instructions.h, src/16bit-hexdecode.cc: Fixed a few bugs with the newly added extended instructions. * src/16bit-processors.cc, src/16bit-processors.cc, src/16bit-registers.cc: added the pclatu register. * src/pic-instructions.cc: the instruction class constructor now initializes most of it's data members directly. * regression/make.regression: .cod files are now removed for the 'make clean rule' * regression/run_regression.sh, regression/p18f/18f452.lkr, p18f/Makefile, p18f/extended_instructions.asm, p18f/instructions.asm, p18f/startup.stc: Regression test for the 18f extended instructions. 2006-02-16 Borut Razem * plat/win32/libgpsim.def: MSVC sync 2006-02-14 Scott Dattalo * src/16bit-instructions.cc, src/16bit-instructions.h, src/16bit-hexdecode.cc: Added support for the extended instructions ADDFSR, ADDULNK, CALLW, MOVSF, MOVSS, SUBFSR, and SUBULNK, in the 18fxxxx family. 2006-02-13 Scott Dattalo * src/gui/gui_menu.cc: more source browser experiments. 2006-02-08 Scott Dattalo * modules/usart.cc: Renamed the usart RX and TX pins to RXPIN and TXPIN. The old names conflict with the names of constants. (This is a problem with absolute mode code.) Updated the gui to use gtk_text_view instead of the obsolete gtk_text. (note this change really needs to be made for all of gpsim's gui!) 2006-02-08 Scott Dattalo * src/dspic/dspic-instructions.cc, src/dspic/dspic-instructions.h: Support for some versions of the MOV instruction. 2006-02-05 Scott Dattalo * src/dspic/dspic-instructions.cc, src/dspic/dspic-instructions.h, src/dspic/dspic-processors.cc, src/dspic/dspic-processors.h, src/dspic/dspic-registers.cc, src/dspic/dspic-registers.h: Unified the Literal and Register Direct addressing modes. Added support for the Status register. Program counter tracing is now supported. 2006-02-04 Scott Dattalo * src/dspic/dspic-instructions.cc, src/dspic/dspic-instructions.h, src/dspic/dspic-processors.cc: Added support for the Literal, Register Direct, and Register Indirect addressing modes. 2006-02-03 Roy Rankin * src/processor.cc, src/pic-processor: The pic-processor class was over-writing the cycles_per_instruction value in the processor class * modules/switch.cc, modules/switch.h, modules/resistor.cc, regression/switch_test/switch_test.stc, regression/switch_test/switch_test.asm: Switch modules now handle analog inputs and RC loads. 2006-01-30 J.R. Heisey * src/processor.cc, src/processor.h: added methods for mapping register addresses into register indexes (for the dspic) and use this to create invalid registers. * src/registers.cc: contructors now propagate calls to parents * gui/gui_regwin.cc: a non-existent register at address 0 was crashing the register window * src/dspic/dspic-instructions.cc, src/dspic/dspic-instructions.h, src/dspic/dspic-processors.cc, src/dspic/dspic-processors.h, src/dspic/dspic-registers.cc, src/dspic/dspic-registers.h: dspic port: -- added register memory -- added W0-W15 -- invalid registers populate register space -- added Program Counter -- single stepping works. -- GOTO, RCALL and BRA instructions are now supported. 2006-01-25 Roy Rankin * gui/gui_profile.cc: fix core dump 2006-01-29 J.R. Heisey * makefile.mingw, src/makefile.mingw, gpsim/makefile.mingw, plat/win32/make.mingw: added dspic to MINGW 2006-01-27 Scott Dattalo * src/dspic/dspic-registers.cc, src/dspic/dspic-registers.cc: added to CVS - initial support of dspic family registers * src/dspic/Makefile.am: dspic-registers added * src/dspic/dspic-instructions.cc, src/dspic/dspic-instructions.h: stubbed out the entire dspic instruction set. * src/dspic/dspic-processors.cc, src/dspic/dspic-processors.h: added initialization code to allow the dspic to be instantiated. * src/hexutils.cc: fixed two buglets introduced in earlier checkin * src/pic-instructions.cc: the invalid_instruction constructor now calls the Instruction constructor. * src/processor.cc: The disassemble method can now accommodate the dspic's 24-bit opcodes. 2006-01-27 Scott Dattalo * configure.ac: changed version from 0.21.11 to 0.21.12-pre * cli/scan.ll: conditionally use YY_* macros. 2006-01-27 Scott Dattalo * Makefile.am, configure.ac, src/Makefile.am: update makefiles for dspic support. * src/dspic/Makefile.am, src/dspic/dspic-instructions.cc, src/dspic/dspic-instructions.h, src/dspic/gpsim_modules.cc, src/dspic/dspic-processors.cc, src/dspic/dspic-processors.h: Initial infrastructure for dspic port. * src/hexutils.h: New file. * src/hexutils.cc, src/program_files.cc: Hex files generated by gpasm and mpasm are really Intel hex files. The hex files generated by the gcc-pic30 tool chain also generate Intel hex files. Now gpsim supports more of the features of the Intel hex file format. * src/pic-processor.cc, src/pic-processor.h, src/processor.cc, src/processor.h: minor changes to deal with Hexfiles. * src/p16x6x.cc: TMR1L and TMR1H were named as just tmrl and tmrh 2006-01-21 Borut Razem * src/stimuli.cc: fixed bug exposed by resistor regression test, see the comment "; the following test for a core dump bug" in regression/resistor/resistor.asm * cli/cmd_module.cc: added missing paramterer to DisplayMessage() call 2006-01-20 Borut Razem * plat/win32/libgpsim.def: MSVC sync * src/gpsim_object.h: removed empty destructor from class BreakType in order to avoid gcc warning: `class BreakType' has virtual functions but non-virtual destructor * src/breakpoints.cc: changed // comments to /**/ in order to avoid gcc warning: multi-line comment * src/cod.cc: removed gcc warning: unused variable 'pCli' * src/os_dependent.cc: removed gcc warning: 'bAltPaths' defined but not used * program_files.cc: removed gcc warning: 'iReturn' might be used uninitialized in this function * src/stimuli.cc: removed gcc warning: 'pPinSymbol' might be used uninitialized in this function and warning: 'pMod' might be used uninitialized in this function * value.cc: removed gcc warning: statement has no effect * src/ValueCollection.cc: removed gcc warning: unused variable 'uUpperBound' * src/lxt_write.c: removed gcc warning: 'lt_emit_u64' defined but not used * src/modules.cc: removed gcc warning: extra tokens at end of #endif directive * plat/win32/icd.c: removed gcc warning: 'use_icd' defined but not used * gui/gui_breadbord.cc: removed warning: 'orientation' might be used uninitialized in this function warning: 'pin_x' might be used uninitialized in this function warning: 'pin_y' might be used uninitialized in this function warning: 'label_x' might be used uninitialized in this function warning: 'label_y' might be used uninitialized in this function * gui/gui_menu.cc: removed gcc warning: unused variable 'start' warning: unused variable 'end' warning: unused variable 'color' warning: unused variable 'tag' warning: unused variable 'cParray' * gui/gui_src_asm.cc: removed gcc warning: unused variable 'dragbreak' warning: unused variable 'dragstartline' warning: unused variable 'dragwidget_oldy' warning: unused variable 'dragwidget' warning: unused variable 'dragwidget_x' warning: 'gint drag_scroll_cb(void*)' defined but not used warning: 'void text_insert(SourceBrowserAsm_Window*, int, GtkStyle*, char*, int)' defined but not used * gui/gui_watch.cc: warning: unused variable 'uBitmaskForMaskedValue' 2006-01-20 Scott Dattalo * src/trigger.cc, src/breakpoints.cc: Breakpoint messages were not getting printed when execution breakpoints were hit. 2006-01-19 Scott Dattalo * cli/parse.yy, cli/cmd_break.cc, cli/cmd_break.h, src/breakpoints.cc Rewrote breakpoint parsing. gpsim recently introduced an expression option for breakpoints. As this feature was refined, it turned out that the best way to handle expressions was with a two level approach. At the high level, there is a 'break condition', e.g. 'break w MyVariable'. The condition in this case is to break if the variable 'MyVariable' is written to. At the next level, there is a qualifying expression. For example: break w MyVariable, ((PC > IntVector) && (PC * src/errors.h, src/sim_context.cc: Slight clean up to Roy's patch. 2006-01-12 Roy Rankin * src/modules.cc: remove library load failure exception throw. In Linux, a failed module library load command from the command window repeats the error message already printed. Even worse, if the failure occurs fromthe breadboard GUI "Add libs" function, gpsim crashes. * src/os_dependent.cc: Fix up error handling on library loads for Linux. Also for readability changed #ifndef _WIN32 to #ifdef _WIN32 reversing the cases. 2006-01-10 J.R. Heisey * modules/led.cc, modules/led.h: Added dynamic gui update to the led modules. 2006-01-07 Scott Dattalo * regression/resistor/resistor.asm: Tiny comment change * regression/run_regression.ch: Added the resistor regression test to the test suite. 2006-01-07 Roy Rankin * modules/resistor.cc: Pulldown resistor voltage is now set to 0 Volts. * src/stimulus.h, src/stimuli.cc: Adjusted default resistance values for stimuli to more closely match PIC I/O pins. * regression/resistor/resistor.asm: Set pulldown resistance for the pulldown resistor. 2006-01-06 Roy Rankin * src/stimuli.cc: Fixed crash regarding module pin names. * regression/resistor/Makefile: New regression test for the resistor module. * regression/resistor/resistor.asm: * regression/resistor/resistor.stc: * regression/resistor/16f873.lkr: 2006-01-02 Scott Dattalo * src/ui.h, src/ui.cc: added another method for formatting registers (though this might be removed later). * src/value.h, src/value.cc: Moved Value specific breakpoint functionality to the Value class. Fixed typo in an error message. * src/symbol.cc, src/symbol.h: Fixed a bug with clearing the symbol table. - Added breakpoint expression compilation to the register_symbol class (this was previously being handled in cli/cmd_break.cc). - The w_symbol now is printed out as a W register. * src/module.h, src/processor.h: moved the register_size and register_mask methods from the processor class to the module class. (Modules can have regsiters too!). * src/p16x7x.cc, src/p16x6x.cc, src/p16x5x.cc, src/p16f87x.cc, src/p16f62x.cc, src/16bit-processors.cc, src/14bit-processors.cc: W was not getting added to the symbol table. * src/gpsim_time.cc: stopwatch changes to conform to value class api. * src/breakpoints.cc, src/breakpoints.h: cleaned up/fixed printout of register breakpoints. Added a more generic 'set_break()' method that replaces several other specific methods (the old ones haven't been removed yet). * cli/parse.yy: certain read and write break points were not getting parsed properly. * cli/scan.ll: echo command was failing to be recognized. * cli/cmd_break.cc: moved most of the expression parsing into the simulation engine. * src/expr.h, src/expr.cc: LiteralSymbols are cast into either registers or program memory address when breaks are set on them. * src/cod.cc: pruned some dead code. * src/tmr0.cc, src/tmr0.h: TMR0 class now conforms to new break API. 2006-01-02 Scott Dattalo * configure.ac, cli/input.cc, cli/socket.cc: add configuration option to inhibit the socket interface. 2005-12-31 Borut Razem * plat/win32/gpsim.nsi: added examples/modules/usart_gui/*.* and extras/graphic_lcd/*.* to the WIN32 setup 2005-12-30 Scott Dattalo * src/value.cc, src/value.h: Clarified error message when user attempts to set or clear breakpoints on register symboles. Also, fixed error message on Integer casts to Booleans. * src/bitlog.h, src/bitlog.cc: Added dump() and dump_ASCII_art() methods to the ThreeStateEventLogger class. These are debug functions used to examine event logs. * modules/usart.cc: Utilize new event logger utilities. 2005-12-28 Scott Dattalo * regression/breakpoints, regression/breakpoints/breakpoints.asm, regression/breakpoints/Makefile, regression/breakpoints/16f873.lkr, regression/breakpoints/breakpoints.stc: Added a regression test for testing breakpoints. (Not much there yet) 2005-12-28 Scott Dattalo * cli/cmd_break.cc, src/breakpoints.cc: gpsim would crash if a break point was set on a register that did not have a symbol table entry. 2005-12-28 Roy Rankin * modules/usart.cc, modules/usart.h: Fixed bugs in mSendByte. Fixed usart attributes. Cleaned up error messages. * modules/usart.cc, modules/usart.h: Added a gui interface to the usart module. * examples/modules/usart_gui/Makefile: New * examples/modules/usart_gui/README: New * examples/modules/usart_gui/usart_gui.asm: New * examples/modules/usart_gui/usart_gui.stc: New. The usart_gui example illustrates the new Usart GUI interface. 2005-12-23 J.R. Heisey * src/symbol.cc: findRegisterSymbol dumped core if a register was being loaded from a module (and not from a processor) * src/os_dependent.cc, src/processor.cc: Relative paths were getting concatenated to absolute paths * src/16bit-processors.cc: ccp1 is now associated with portc2 2005-12-19 Scott Dattalo * src/icd.cc, src/modules.cc, src/pic-processor.cc, src/sim_context.cc, modules/paraface.cc: Re-added needed unistd.h includes that were removed on 2005-12-10. New systems may not unistd, but older ones do. 2005-12-17 Scott Dattalo * cli/input.cc: removed glib dependencies for non-gui builds 2005-12-16 Scott Dattalo * src/ioports.h, src/ioports.cc, src/pic-ioports.h, src/pic-ioports.cc: moved some of the functionality in the PicPort classes upto the generic Port classes. Also added comments. 2005-12-12 J.R. Heisey * src/16bit-instructions.h, src/breakpoints.h, src/pic-instructions.h, src/pic-instructions.cc, src/processor.h, src/processor.cc: fixed gcc errors: processor.h:150: error: using typedef-name `instruction::INSTRUCTION_TYPES' after `enum' 2005-12-10 J.R. Heisey src/registers.h: * src/expr.cc, src/ValueCollections.cc, src/ValueCollections.h: Added toString(ExprList_t*) and move some code from IndexedSymbol::toString() into it. * src/modules.cc, src/modules.h: Added functions for deleting module libraries. * 14bit-processors.cc, src/14bit-processors.h, src/p12x.h, src/16bit-processors.h, src/p16f62x.cc, src/p16x5x.cc, src/p16x5x.h, src/p16x6x.cc,src/p16x7x.cc, src/p16x8x.cc, src/p18x.cc, src/p18x.h, src/Makefile.am, src/makefile.mingw, src/src.vcproj, src/ioports.cc, src/ioports.h, src/pic-ioports.cc, src/pic-ioports.h: Moved PicPortBRegister, PicTrisRegister and PicPortRegister definitions into these files from ioports.cc and ioports.h. Added pic-ioports.cc,h to build files. This was motivated by moving undesirable code for the SWIG script language builds. * src/value.cc, src/value.h: Renamed New() to NewObject() to avoid conflict with SWIG. * src/breakpoints.h, src/interface.h, src/os_dependent.cc, src/pic-instructions.h, src/pic-processor.cc, src/pic-processor.h, src/processor.cc, src/processor.h, src/stimuli.h, src/trace.h: removed unneeded reference to the header unistd.h. 2005-12-06 Scott Dattalo * src/ioports.h, src/ioports.cc: Cleaned up the IOPORT class and deprecated some old functions. * src/stimuli.cc: use new IOPORT class functions. * modules/encoder.cc, modules/logic.h, modules/paraface.cc, modules/push_button.cc: Updated to new I/O port class api. * gui/gui_src_asm.cc: Removed printf debug 2005-12-05 Scott Dattalo * gui/gui_src_asm.cc: Source browser crashed if there was no instruction at the current PC. * regression/instructions_16bit/18f452.lkr: mchip stock linker script has a bug with hard coded interrupt routine size. 2005-12-04 Robert Pearce * src/p12.cc, src/p12.h: Added pullups to 12bit-core I/O pins 2005-12-03 Robert Pearce * src/p12.cc, src/p12.h, src/pic-processors.cc, src/pic-processors.h: Added the 10F202. 2005-12-02 Scott Dattalo * eeprom.cc, eeprom.h, i2c-ee.cc, i2c-ee.h, registers.cc, registers.h, processors.cc: Extended the RegisterCollection class to support an arbitrary array of Registers. Added CLI access to the EEPROM. Usage: eeData shows all eeprom registers. eeData[expression] shows one or several eeprom registers. * packages.cc, packages.h: Added better support for module pin placement. * gui/gui.h, gui/gui_breadboard.cc, gui/gui_breadboard.h, gui/gui_main.cc: Cleaned up package creation in preparation for a graphic LCD module. 2005-11-27 Borut Razem * plat/win32/gpsim.nsi, plat/win32/make.mingw, cli/makefile.mingw, gpsim/makefile.mingw, gui/makefile.mingw, modules/makefile.mingw, src/makefile.mingw, regression/README: MINGW sync 2005-11-22 J.R. Heisey * cli\cmd_log.cc gui\gui_regwin.cc src\init.cc src\pic-processor.cc, src\trace.cc src\trace.h: Changed references of trace_log to GetTraceLog() to decouple the global trace_log in the libgpsim.so/dll from the executable. Please do the same with any other globals you find and that I missed. src\expr.cc: Implemented dumping a range of an indexed variable using the integer range operator. (i.e. ramData[3:20] 2005-11-21 J.R. Heisey * src\symbol.cc src\symbol.h src\ValueCollections.cc src\ValueCollections.h: Fixed couple bugs and added additional support for ndexable variables. * src\value.cc src\value.h: Fixed bitmask issue with the copy constructor of Integer. Added assignment operator to Integer from const Integer&. * src\ValueCollections.cc src\ValueCollections.h again: Implemented the omitted ability to do array=value and array[range]=value. 2005-11-21 J.R. Heisey * src\12bit-processors.cc, src\breakpoints.h, cli\cmd_break.cc, cli\cmd_clear.cc, src\cmd_gpsim.h, cli\cmd_log.cc, cli\cmd_run.cc, cli\cmd_set.cc, gpsim\CopyDlls.bat, src\exports.h, src\fopen-path.h, plat\win32\gpsim.def, plat\win32\libgpsim.def, src\gpsim_interface.h, src\gpsim_time.cc src\gpsim_time.h gui\gui_menu.cc gui\gui_regwin.cc, gui\gui_src_asm.cc gui\gui_trace.cc gui\gui_watch.cc src\hexutils.cc, src\i2c-ee.cc src\icd.cc plat\win32\icd.cc src\icd.h cli\input.cc, src\interface.cc, src\interface.h, gpsim\main.cc, cli\misc.h, src\os_dependent.cc, src\pic-processor.cc, src\pic-processor.h, src\processor.h, src\program_files.cc, cli\scan.ll, src\sim_context.cc, cli\socket.cc, src\stimuli.cc, src\symbol.h, src\trace.h, src\ttoken.cc, src\ttoken.h, cli\ui_gpsim.cc, cli\cli.vcproj, gui\gui.vcproj, src\src.vcproj, gpsim\gpsim.vcproj: These changes are for building the files in the src folder as the library libgpsim.dll under Windows. There were a couple of global variables that needed to be decoupled with accessor functions for access from gpsim.exe and other modules. I found that putting global variables in the gpsim.def file didn't work. The globals needing accessor functions were realtime_mode, reatime_mode_with_gui, verbose, and use_icd. I also needed to create the NullConsole and NullUserInterface class in src. These provide IConsole and IUserInterface objects with no implementation. Now cli in gpsim.exe creates it own implementation and passes it to the function SetUserInterface(). Any other application that links to libgpsim.dll and expects test messages will need to pass there own IConsole and IUserInterface implementations. At some point I hope I (or someone) will clean up all of the cout references and use the GetUserInterface() function. Renamed macros in exports.h from GPSIM_DLL_EXPORT, GPSIM_EXT_CLASS, and GPSIM_EXPORT to added the LIB prefix reflecting the new library file. Created a new file libgpsim.def and moved all the symbols from gpsim.def into it. Emptied gpsim.def of all symbols. References to bp now call get_bp(). References to ui now call 2005-11-13 Scott Dattalo * gui/gui_menu.cc: The experimental Preferences window caused a crash if it was opened, but the source browser was not opened. 2005-11-13 Borut Razem * plat/win32/gpsim.def: MSVC sync * modules/switch.cc: added #include 2005-11-12 Scott Dattalo * cli/input.cc, cli/scan.ll: Under certain conditions, command assertions were causing the lexer to get confused. * gui/gui_menu.cc: experiment code with preferences. * src/ioports.cc, modules/encoder.cc, modules/paraface.cc, modules/push_button.cc: Calls to Stimulus_Node->update() method unnecessarily passed the current simulation time. * modules/resistor.cc, modules/resistor.h: The pullup resistor module was completely broken. * modules/switch.cc, modules/switch.h: The switch module never did work, but now it does! This is now truly a two-port device. * src/gpsim_time.cc, src/gpsim_time.h: Added methods to control the real time to simulated time mapping. * src/breakpoints.cc: Command Assertions were unnecessarily adding an extra '\n' to the end of the command string. * src/stimuli.cc, src/stimuli.h: Originally node updates would update the node state and refresh connected stimuli all within the context of a single method. Now this has been split into two methods. This was added to support the switch module. In addition, the new method 'getThevenin()' retrieves the full electrical state of a stimulus. 2005-11-09 Robert Pearce * src/pic-processor.cc, src/processor.cc: Update simulation time base when ever the processor's oscillator frequency is changed. 2005-11-08 Borut Razem * makefile.mingw: MINGW sync 2005-11-06 J.R. Heisey * src/cmd_gpsim.h: Ability to format a value using a bit mask. * cli/cmd_symbol.h: Routines to dump and set an indexed value. * cli/cmd_x.cc cli/cmd_x.h: Lets use set reg(2)=expr. * src/processor.h: Implemented new function Processor:: ConstructInvalidInstruction() function to allow derived classes to define there own Invalid instruction types. * src/expr.cc src/expr.h, src/ValueCollections.cc,h, src/symbol.cc src/symbol.h: Implemented classes to expose to the command prompt interface an indexed variable symbol type commonly refered to as arrays. * cli/scan.ll, cli/parse.yy: Implemented the parsing of indexed (array) variables in the command language. RAM, EEPROM and ROM are the first ones. (i.e. RAM[$20]) * cli/scan.ll: Implemented strings as single quotes as well as double quotes. * Fixed issue where setting a RAM value from the command prompt would not update the GUI windows. * cli/parse.yy: Allow setting a RAM using the reg() operator. (i.e. reg(3)=54) * src/value.cc src/value.h: Added extra operators for Integer and Float. Also added a bitmask for Integer to be used for display purposes. * src/registers.cc,h: Implemented RegisterCollection class. * src/sim_context.cc: In CSimulationContext::Clear() now clear the symbol table after I delete the processors in the processor list. This provents the symbol table from deleting a symbol that is actually owned by the processor. 2005-11-02 Robert Pearce * src/tmr0.cc, src/stimuli.cc: Fix TMR0 external clocking ploarity. Fixed a typo in IOPIN::getBitChar(). 2005-10-24 Scott Dattalo * src/gpsim_time.cc, src/gpsim_time.h: Fixed a nasty cycle counter bug that would erroneously clear a break point whenever two breaks were set at the same cycle. * src/interface.cc: Interface callback breakpoint now can display a message in the breakpoint list. * src/p16x6x.cc, src/p18x.cc, src/pir.cc, src/pir.h, src/14bit-tmrs.cc, src/14bit-tmrs.h, src/16bit-processors.cc: The whole "pir_set" design needs to be re-implemented. At issue is that every pic potentially has a different bit mapping for the PIR registers. The pir_set desgin attempts to accommodate this with pure VF's. Unfortunately, peripherals like the TMRL class that need to set PIR bits only can call specific methods like "set_tmr1f()". However, the TMRL class is used as a base for TMR3 too! I created a new class called "InterruptSource" that can trigger interrupts instead. 2005-10-21 Borut Razem * makefile.mingw, plat/win32/makefile.mingw, plat/win32/make.mingw, plat/win32/gpsim.nsi: building gpsim setup executable on WIN32 2005-10-20 Scott Dattalo * regression/make.regression: modified the default make target to create a .cod file * regression/tmr0_16bit/Makefile, regression/tmr0_16bit/tmr0_16bit.asm: Added tests for 16bit mode of tmr0. * regression/tmr0_16bit/delay.inc, regression/tmr0_16bit/delay.asm: Added to CVS. Made the delay routine a separate source module. Also, a DELAY macro has been created so that exactly N cycles can be delayed, where 0 < N < 65536+15. * src/16bit-processors.cc: portd and porte registers were not getting added to the symbol table. 2005-10-14 Scott Dattalo * regression/tmr0_16bit/tmr0_16bit.asm: Interrupt test assertions. 2005-10-13 Borut Razem * makefile.mingw, doc/makefile.mingw: building gpsim documentation on WIN32 2005-10-13 Scott Dattalo * gpsim/main.cc, cli/cmd_load.cc, cli/cmd_macro.cc, cli/input.cc, cli/socket.cc: command assertions were not getting processed immediately. * regression/tmr0_16bit/tmr0_16bit.asm: Started interrupt test. 2005-10-12 Borut Razem * regression/make.regression, regression/run_regression.sh, regression/*/Makefile: added possibility to define gpism path 2005-10-12 Scott Dattalo * src/16bit-registers.cc, regression/tmr0_16bit/tmr0_16bit.asm: The high byte of TMR0 was not getting updated during TMR0L reads. 2005-10-11 Scott Dattalo * src/pic-instructions.cc, src/pic-instructions.h: Added methods to the instruction class that provide acces to the source defining an instruction (this is going to be used with tracing and disassembly soon). 2005-10-11 Borut Razem * regression/usart_test/usart_test.asm, regression/logic_test/logic_test.asm, modules/makefile.mingw, gui/gui_breadbord.cc, plat/win32/gpsim.nsi: gpsim_modules.dll renamed to libgpsim_modules.dll 2005-10-09 Scott Dattalo * regression/tmr0_16bit/tmr0_16bit.asm: More tmr0 regressions testing * src/cod.cc, src/breakpoints.h, src/breakpoints.cc: Added the CommandAssertion class. These are assertions that are associated with instructions in such a way that when an instruction executes, the command assertion will issue a gpsim command line command. * gpsim/main.cc: removed a debug printf. * cli/input.cc, cmd_macro.cc, cli/ui_gpsim.cc: command assertions were getting inserted into the end of the command line input stream as opposed to interjected immediately. 2005-10-10 Scott Dattalo * gpsim/main.cc, cli/cmd_load.cc, cli/cmd_symbol.cc, src/symbol.cc, src/symbol.h: Simplified the way user defined symbols are added to the symbol table. 2005-10-09 Borut Razem * plat/win32/fd2raw.cpp, cli/input.cc: win32_set_is_readable() not needed for glib >= 2.6 * src/sim_context.cc, src/i2c_ee.cc: fixed the p12ce518 regression test problem * cli/socket.cc: g_io_channel_set_flags() not implemented on WIN32; call it only on non-WIN32 platforms or if _DEBUG 2005-10-08 Scott Dattalo * src/tmr0.cc, regression/tmr0_16bit/tmr0_16bit.asm: tmr0 clear_break was getting called recursively. The tmr0 regression test now checks psa combinations. 2005-10-08 Robert Pearce * src/p12x.cc, src/p16x5x.cc, src/p16x5x.h, src/stimuli.cc, src/tmr0.cc, src/tmr0.h: Added support for clocking TMR0 from an external source. This applies to the 12-bit core where TMR0 is a dedicated pin. 2005-10-08 Borut Razem * src/processor.cc: fixed the "processor list" problem * gpsim/makefile.mingw, gpsim/gpsim.vcproj, plat/win32/gpsim.nsi, doc/gpsimWin32.html: linking with libgtkextra-win32-2.1_dll.lib, using gtkextra-win32-2.1.dll 2005-10-07 Borut Razem * plat/win32/gpsim.nsi: Changed version to 0.24.11 2005-09-23 J.R. Heisey * cli/parse.yy: Added to string_option the ability to use a string variable. This will apply to any command that uses the string_option. I specifically added it for module library. 2005-10-03 Scott Dattalo * configure.ac: Changed version to 0.24.11 2005-10-03 Scott Dattalo * src/12bit-processors.cc, src/14bit-processors.cc, src/14bit-tmrs.cc, src/16bit-registers.cc, src/p12x.cc, src/p16f62x.cc, src/p18x.cc, src/pic-processor.cc, src/tmr0.cc: Debug cleanups. 2005-10-03 Scott Dattalo * gui/gui_menu.cc: More source browser preference configuration. * gui/gui_regwin.cc: Turned register sheet rows and columns back on. (They were off because of a bug in gtkextra, but that bug is fixed now). * src/16bit-processors.cc, src/16bit-registers.cc, src/p18x.cc, src/tmr0.cc: The create+sfr_map() method was getting called twice fof the p18f devices. T0CON was not retaining its 0xff reset value. TMR0L was reporting the wrong value while it was turned off. * regression/run_regression.sh, regression/tmr0_16bit/18f452.lkr, regression/tmr0_16bit/Makefile, regression/tmr0_16bit/tmr0_16bit.asm, regression/tmr0_16bit/tmr0_16bit.stc: Added a regression test for TMR0. 2005-10-02 Borut Razem * gui/makefile.mingw: Updates to support user defined preferences. * doc/gpsimWin32.html: Use CSS 2005-10-01 Scott Dattalo * src/processor.cc: Changed Processor::init_program_memory_at_index() so a derived processor can define its own bad_instruction type. Fixed a crashing bug in trim() when a empty was passed in. 2005-09-30 Scott Dattalo * gui/gui_menu.cc, gui/gui_src.h, gui/gui_src_asm.cc: Source browser clean up. 2005-09-29 Scott Dattalo * gui/gui_menu.cc, gui/gui_src.h, gui/gui_src_asm.cc: More preferences work; now the colors for the source browser example text can be configured (this configuration doesn't map back into the source browser yet). 2005-09-28 Scott Dattalo * src/16bit-registers.cc, src/16bit-registers.h, src/tmr0.cc, src/tmr0.h: The high byte of TMR0 for the 18F family was not updating correctly in certain circumstances (like during single stepping). Thanks to Robert Merkel for reporting this issue. 2005-09-27 Scott Dattalo * gui/gui_menu.cc: Even More work on preferences dialog window. 2005-09-26 Scott Dattalo * gui/gui_menu.cc: Even More work on preferences dialog window. 2005-09-26 Scott Dattalo * gui/gui_menu.cc: More work on preferences dialog window. 2005-09-25 Robert Pearce * src/p12x.cc, src/p12x.h, src/p16x5x.cc, src/p16x5x.h, src/pic-processor.h, src/pic-processor.cc: Added support for the 16C56 and the 10F200. 2005-09-23 Scott Dattalo * src/breakpoints.cc: Breakpoint numbers are now printed in decimal. 2005-09-23 J.R. Heisey * cli/ui_gpsim.cc: Fixed a bug were a reused string was not being cleared before being appended to. *gui/gui_symbols.cc: Added code snippet to truncate multi-line symbol values. 2005-09-21 J.R. Heisey * src/cod.cc: Added an extra test to prevent a error message from displaying when a non cod file attempted. This really should validate that the file is a cod file earlier. 2005-09-20 Scott Dattalo * gui/gui_regwin.cc: GUIRegisterList.register_size was being set improperly. 2005-09-20 J.R. Heisey * gui_processor.cc, gui_processor.h, gui_register.h, gui_regwin.cc, gui_watch.cc: Made changes in Register_Window to and other code to support EEPROM memory window in the same way we now support RAM memory window. 2005-09-19 Scott Dattalo * gui/preferences.cc, gui/preferences.h: New files to support user defined gui preferences. * gui/Makefile.am, gui/gui.h, gui/gui_main.cc, gui/gui_menu.cc, gui/gui_regwin.cc, gui/gui_watch.cc: Updates to support user defined preferences. 2005-09-17 Scott Dattalo * src/14bit-tmrs.cc, src/16bit-registers.cc, src/16bit-registers.h, src/ssp.cc, src/uart.cc, src/uart.h: - Initialized data members of many classes. Thanks to Robert Merkel for uncovering this issue. 2005-09-16 Scott Dattalo * gui/gui_watch.cc: Had to change the way ASCII is checked under windows. 2005-09-16 Scott Dattalo * gui/gui_src_asm.cc: fixed compiler warnings * gui/gui_watch.cc: Removed mask, BP, type, and b15..b0 bit columns. Added a newbit string column. * src/12bit-instructions.h, src/14bit-instructions.h, src/16bit-instructions.h, src/breakpoints.h, src/hexutils.cc, src/pic-instructions.cc, src/pic-instructions.h, src/processor.cc: Fixed disassembly output for shadowed instructions. 2005-09-16 Scott Dattalo * gui/gui.h, gui/gui_main.cc, gui/gui_regwin.cc, gui/gui_regwin.h, gui/gui_watch.cc, gui/gui_watch.h: Added color info to the watch window. Watch window columns are now adjustable. Centralized color processing. 2005-09-15 Scott Dattalo * gui/gui_main.cc, gui/gui_watch.cc, gui/gui_watch.h: The state of the watch window is now preserved from one debug session to the next. 2005-09-14 Scott Dattalo * gui/gui_src.h, gui/gui_src_asm.cc, src/breakpoints.cc, src/breakpoints.h, src/pic-instructions.cc, src/pic-instructions.h, src/processor.cc, src/trace.cc: Fixed usability issues with setting breakpoints through the source browser. The 'Drag Break' feature has been disabled since it really doesn't work too well for assertions (or at least doesn't apply). Fixed a bug that prevented toggling breaks that occur at the current PC. A new class was added to better handle the breakpoint classes. This new class, AliasedInstruction, is a base for the breakpoint class and basically will provide an API to handle aliased or replace instructions. 2005-09-11 Scott Dattalo * plat/win32/gpsim.def: updated for API changes. 2005-09-11 Scott Dattalo * src/ioports.cc, src/ioports.h, src/stimuli.cc, src/stimuli.h, src/value.cc, gui/gui_breadboard.cc, gui/gui_breadboard.h: Attributes can now be updated through the breadboard. Pin states can now be updated through the breadboard. 2005-09-10 J.R. Heisey * src/cmd_gpsim.h, cli/ui_gpsim.cc: Modified one of the FormatProgramAddress() functions in IUserInterface and CGpsimUserInterface. 2005-09-09 Scott Dattalo * src/cod.cc: delete_directory() incorrectly deleted memory. 2005-09-08 J.R. Heisey * configure.ac, plat/win32/gpsim.nsi: bump build number * gui/gui_src_asm.cc, src/value.cc: Fixed crashes when 'Add to watch' menu item is selected with no test selected or with white space selected. 2005-09-07 Scott Dattalo * cli/cmd_load.cc: null pointer fix (was causing core dump in the regression test). * module/usart.cc: added the TxBuffer attribute. * regression/usart_test/usart_test.cc: tested usart module transmitter. 2005-09-07 J.R. Heisey * cli/cmd_load.cc, cli/parse.yy: Fixed a bug in load command where you could not specify both processor and file as literal strings. 2005-09-06 J.R. Heisey * gui_processor.cc, gui_processor.h, gui_register.h, gui_regwin.cc, gui_regwin.h, gui_watch.cc, gui_main.cc: Changed Register_Window:: registers from type GUIRegister* to GUIRegisterList*. Added GUIRegisterList * m_pGUIRegisters to GUI_Processor. Now GUIRegisters are instantiated in a GUI_Processor for that other windows besides the RAM_RegisterWindow. This fixes a bug where you cannot add a register symbol to the watch window unless the RAM_RegisterWindow was opened once. * gui/gui_src_asm.cc, gui/gui_watch.cc: Removed 'Select symbol' pop up menu item since it was broken anyway. Added 'Add to watch' pop up menu item. Select symbol text in the source window, selecting 'Add to watch' will add register symbols to the Watch window. * src/symbol.cc, src/symbol.h: Added findRegisterSymbol() that accepts a const char * as a parameter. gui/gui_main.cc: Call new function GUI_Processor::SetCPU() from GUI_Interface::NewProcessor(). SetCPU() does some additional initialization. * src/value.cc, src/value.h: Added toupper(string&) function. * gui/gui_src_asm.cc: Changed to use new toupper() function due to issues between Windows and Linux. * src/operator.cc: quite some type mismatch warning messages 2005-09-03 Scott Dattalo * src/bitlog.cc, src/bitlog.h: Fixed bugs with the new ThreeStateEventLogger class. * src/uart.cc, modules/usart.h, modules/usart.cc * regression/usart_test/*: added a regression test for the usart * src/symbol.h, src/symbol.cc: attribute symbol can now be used in expressons. 2005-09-02 Borut Razem * doc/gpsimWin32.html: linking with glib-2.6.6, gtk+-2.6.9, pango-1.8.2 2005-09-02 Manuel Bouyer * src/16bit-registers.cc: PCL accesses were using program memory indexes instead of program memory addresses. * src/14bit-tmrs.cc: TMR2:current_value() would return the contents of PR2 even when configured for normal operation. * src/p18x.cc: typo in porte names. 2005-09-01 Manuel Bouyer * src/p18x.cc: Fix crash when an 18F252 is instantiated. * src/gpsim_time.cc: Disabled unnecessary debug printing * src/uart.cc: Fixed spurious uart transmit. Add io sink for Receiver. 2005-08-31 J.R. Heisey * src/processor.cc: Fixed a crashing bug when the --source=disable option is used. 2005-08-30 J.R. Heisey * cli/input.cc: Created function parse_string_only() which will parse the passed in command string with out emptying existing commands from the buffer. Modified LLStack::GetNext() and LLStack::Pop() to not remove the last LLStack object. Fixed memory leak in LLStack::Pop(). * cli/ui_gpsim.cc: Added EOL to injected abort_gpsim_now command. 2005-08-30 Scott Dattalo * src/gpsim_time.h, src/gpsim_time.cc, bitlog.cc: Made the constant 'END_OF_TIME' part of the Cycle_Counter class. This is now used to initialize members of the ThreeStateLogger class. 2005-08-30 Scott Dattalo * src/processor.h, src/processor.cc, src/pic_processor.cc: Fixed step-over feature for the 18F family. 2005-08-30 Scott Dattalo * regression/rt.sh: The new version of the regression test script was not checked in yesterday. This new version creates a simple stc file and invokes a single regression test. It then checks to see if the test was successful. * regression/simulate, regression/create_stc: Removed from CVS. 2005-08-29 J.R. Heisey * src/ioports.cc, src/ioports.h: Added PortModule::getPin(). Fixed a few compiler warnings. src/src.vcproj: Added bit.cc and bit.h. src/stimuli.cc, src/symbol.cc, src/symbol.h: Changed references of IOPORT to PortRegister. 2005-08-29 Scott Dattalo * modules/encoder.cc, modules/logic.cc, modules/paraface.cc, modules/push_button.cc, modules/switch.cc, src/i2c-ee.cc, src/p12x.cc IOPIN::update_direction method now has a refresh option. * src/ioports.h, src/ioports.cc: - Added several options to control when I/O pins refresh their state information (with respect to stimuli that is). - PicPortBRegister::get () had the wrong parameter signature and thus was not getting invoked (the parent get() method was getting invoked instead). * modules/usart.cc: updating to new iopin api. Added new code and removed a bunch dead code and generally cleaned things up - it's still not working yet though. * src/12bit-processors.cc, src/12bit-processors.h, src/p16f62x.cc: pic-processor.cc, pic-processor.h, processor.h set_config_word now returns true if the config word address is successfully set. * src/pic-processor.cc: Fixed bug with init_program_memory_at_index() - it was not setting the configuration word if the address was in configuration memory. * src/bitlog.cc: Added a 'ThreeStateEventLogger' that's analogous to the bit and byte logger. * src/intcon.cc: Turned off some debugging code. * src/registers.h: fixed typo in comment * src/stimuli.cc, src/stimuli.h: Iopin's were checking Z state before W state - this caused a W-state condition to be returned as a Z-state. In addition, the getDrivingState() was being checked as opposed to the getDrivenState(). - Added getMonitor() method. * src/uart.h, src/uart.cc: Updating to new I/O pin design. And numerous changes to clean up and fix the code - this is still not working though. 2005-08-23 Scott Dattalo * run_regression.sh, rt.sh: Redesigned the regression tests to make use of new gpsim scripting features. Also, all tests have been converted from absolute-mode to object-code mode. * digital_stim/digital_stim.asm, digital_stim/digital_stim.stc * instructions_12bit/instructions_12bit.asm * instructions_12bit/instructions_12bit.stc * instructions_14bit/instructions_14bit.asm * instructions_14bit/instructions_14bit.stc * instructions_16bit/instructions_16bit.asm * instructions_16bit/instructions_16bit.stc * interrupts_14bit/interrupts_14bit.asm * interrupts_14bit/interrupts_14bit.stc * logic_test/Makefile, logic_test/logic_test.asm, logic_test/logic_test.stc * macro_test/macro_test.asm, macro_test/macro_test.stc * node_test/node_test.asm, node_test/node_test.stc * p12ce518/p12ce518.asm, p12ce518/p12ce518.stc * p16f84/p16f84.asm, p16f84/p16f84.stc * p18f452_ports/p18f452_ports.asm, p18f452_ports/p18f452_ports.stc * register_stim/register_stim.asm, register_stim/register_stim.stc * digital_stim/16f84.lkr, digital_stim/Makefile: added * instructions_12bit/12c508.lkr, instructions_12bit/Makefile: added * instructions_14bit/16f628.lkr, instructions_14bit/Makefile: added * instructions_16bit/18f452.lkr, instructions_16bit/Makefile: added * interrupts_14bit/16f84.lkr, interrupts_14bit/Makefile: added * macro_test/16f84.lkr, macro_test/Makefile: added * node_test/16f877.lkr, node_test/Makefile: added * p12ce518/p12ce519.lkr, p12ce518/Makefile: added * p16f84/16f84.lkr, p16f84/Makefile: added * p18f452_ports/18f452.lkr, p18f452_ports/Makefile: added * register_stim/16f84.lkr, register_stim/Makefile: added 2005-08-22 Scott Dattalo * src/ioports.cc: Fixed typo in pullup in setDefaultPullupControl method. 2005-08-21 J.R. Heisey * cli/input.cc, cli/input.h, gpsim/main.cc: Added two command options. Option -E will echo commands to the console. Useful for stc debugging. This will also display all the command line parameters. Useful when another tool launches gpsim but does not display the command line. gpsim/main.cc, src/init.cc: Option '-S disable' will prevent source code from being loaded. Usefule for automated regression testing. '-S enable' will enable source code loading. See online help. * src/p16x7x.cc: Fixed an sign/unsigned warning. * src/processor.h: Test function for whether source file is open. * src/sim_context.cc, src/sim_context.h: Added new global boolean property called EnableSourceLoad. Setting it to false will prevent source code from being loaded. Purpose is when gpsim is used for automated regression testing to speed things up. * src/stimuli.cc: Fixed a crashing bug when port() operator is used with out any module explicitly entered as a parameter. * src/symbol.h, src/value.h: Added findBoolean() to Symbol_Table. * src/value.h: Added a equals operator to Boolean. 2005-08-19 J.R. Heisey * cli/input.cc: Added code to allow stc files with for Windows EOL to be read under Linux. 2005-08-18 J.R. Heisey * src/processor.cc, src/processor.h, src/registers.cc, src/symbol.cc: Added two processor boolean attributes BreakOnValidRegisterRead and BreakOnInvalidRegisterWrite. * src/breakpoints.cc, src/breakpoints.h, src/cmd_gpsim.h, plat/win32/gpsim.def, cli/input.cc, cli/ui_gpsim.cc, gpsim/main.cc: Added -e or --exit command line option that accepts a parameter onbreak. This causes gpsim to exit when the simulation halts. 2005-08-11 Scott Dattalo * src/breakpoints.cc, src/breakpoints.h: Allowed breakpoint expressions for breakpoint instructions to act like assertions. * src/cmd_manager.h, src/cod.cc, src/gpsim_interface.h, src/modules.cc, src/modules.h, cli/input.cc: Added the capability to run multiple module scripts. * cli/ui_gpsim.cc: Fixed bug guint64 formatted output. * regression/logic_test/Makefile, regression/logic_test/logic_test.asm: The new I/O port design more correctly implements I/O pins and this exposed a bug in the regression test. Also, this regression test was used to develop the multiple Module Script feature. 2005-08-11 J.R. Heisey * src/stimuli.cc, src/stimuli.h, src/symbol.cc, src/symbol.h: Quick fix of when trying to attach an input data stimuli that was broken a couple of checkins ago. 2005-08-11 Borut Razem * plat/win32/gpsim.nsi: bump build number 2005-08-11 Scott Dattalo * src/ioports.cc, src/ioports.h: Added the PeripheralSignalSource class to simplify the connection of I/O pins to peripherals. Also, added more documentation about the I/O port design. * src/p16x7x.h, src/p16x7x.cc, src/p16f87x.cc: The Analog to Digital convertor peripheral now connects to I/O pins again. Also, the A2D module was redesigned so that less of the internal implementation is exposed. * src/14bit-tmrs.h, src/14bit-tmrs.cc, src/ssp.h, src/ssp.cc, src/p16x6x.cc: Updated the peripheral connections with the new PeripheralSignalSource class. 2005-08-10 J.R. Heisey * src/stimuli.cc, src/stimuli.h, src/symbol.cc, src/symbol.h, cli/cmd_attach.cc, cli/cmd_attach.h, cli/parse.yy, cli/scan.ll, plat/win32/gpsim.def: Modified the attach command with the pin() and port() operators. Now you can use one of 4 variations of these operators to specify the module, port name and/or pin number that represents the underlying stimulus object. An example of how to use: if a pin number is defined as a program file symbol, you may use the symbol name in the port() or pin() operators. This way your STC file can be more generic and support a variety of firmware code files as long as you use the same symbol name for the pin. See the online help for more details. The pin() operator refers to package based pins. The port() operator refers to port based pins. Other stimulus may still be refered to using just the name of the stimulus. * src/attributes.cc: Changed a few global symbols so that Symbol_Table::Clear() does not remove them. * src/fopen-path.cc, src/fopen-path.h, gpsim/main.cc: Fixed -L source path command line option. Added code to support a gpsim SourcePath global string symbol that give command prompt access to the source search path. * src/ioports.h: Fixed a warning message about the destructor of PinModule not being virtual. * src/symbol.cc,h, cli/cmd_symbol.cc: Added the ability to use the '.' character as a trailing wild card in the symbol command. Example PIC. will list all symbols that begin with the letters PIC. 2005-08-04 Scott Dattalo * gui/gui_breadboard.cc, src/symbol.h, src/symbol.cc, src/stimuli.cc: Verified that template issues with gcc 3.4.X have been resolved and removed a #define that had beed added to get around this. 2005-08-06 Scott Dattalo * src/ssp.h, src/ssp.cc: Updated the SSP peripheral with the new I/O port API. * src/14bit-processors.h, src/p16f87x.cc, src/p16f87x.h, src/p16x6x.cc, src/p16x6x.h, src/p16x7x.cc, src/p16x7x.h: Updated to the new SSP API. 2005-08-04 J.R. Heisey * symbol.cc, symbol.h: Fixed the template compile problems for gcc 3.4.4 due to new bugs in gcc. I didn't see this issue using gcc 3..3.3 on linux. I only have 3.4.4 version of the compiler under cygwin. I've left the #define commented out so someone can test it under linux before removing the #ifdef's. 2005-08-04 Scott Dattalo * gui/gui_breadboard.cc, src/symbol.h, src/symbol.cc, src/stimuli.cc: Backed out some of the symbol changes made by JR because the code doesn't compile on Linux (gcc 3.4.2). At the moment, this means that stimuli and node dumps do not work. 2005-08-04 J.R. Heisey * cli/cmd_node.cc, plat/win32/gpsim.def, gui/gui_breadboard.cc, modules/resistor.cc, src/stimuli.cc, src/stimuli.h, src/symbol.cc, src/symbol.h, src/value.h: Eliminated the node_list and stimulus_list. There are now Symbol_Table functions and iterators available for node_symbol and stimulus_symbol objects which contain Stimulus_Node and stimulus objects respectively. Adjusted the way stimulus and stimulus_Node objects are named. Unnamed objects are not put into the symbol table. The respective new_name() functions will add the objects into the symbol table appropriately. Removes several references that added these objects to the symbol table. Also modified the PullupResister to name the res IO_bi_directional i/o pin to pullupname + ".pin". Now the PullupResister exists in the symbol table as a module with what ever you named it. The pin is attribute of the PullupResister module. Whew! 2005-08-04 Scott Dattalo * src/uart.cc, src/uart.h, src/p16x6x.cc, src/16bit-processors.cc, src/16bit-registers.cc, src/16bit-registers.h, src/p16f62x.cc: Add I/O source and sink connections to the usart peripheral. So now the usart is connected to I/O pins using the new I/O port design. 2005-08-02 J.R. Heisey * src/os_dependent.cc, src/processor.cc,h, src/cod.cc, plat/win32/gpsim.def: Fixed a problem where loading a program file (no STC) using the GUI resulted source code not being found even though that source was in the same folder as the program file. * gui/gui_menu.cc: Fixed the display of cycle count in cycles where %Lx was used in a sprintf instead of the platform independent project macro PRINTF_INT64_MODIFIER. 2005-08-02 Scott Dattalo * src/16bit-processors.cc, src/p18x.cc: The new I/O port register symbols were getting added to the symbol table twice. Also, the eeprom peripheral for some of the 18f devices was not getting created. 2005-08-02 J.R. Heisey src/cmd_gpsim.h * src/cod.cc: Removed an error message from PicCodProgramFileType:: open_a_file() that is handled externally. * src/registers.cc: Fixed a bug in RegisterValue::toString() not displaying enough digits. * src/value.h, src/symbol.h, src/registers.h, gui/gui_register.h: Added some conversion and equals operators. * cli/ui_gpsim.cc, src/cmd_gpsim.h: Added several string formatting routines. * plat/win32/gpsim.def: Updated for new pin I/o routines. * gui/gui_watch.cc, gui/gui_watch.h: Updated display of values to account for uninitialized bits and bit masked register symbols. 2005-08-01 Scott Dattalo * src/p16x5x.h, src/p16x5x.cc: Upgraded the P16C54 and P16C55 to the new I/O port design. * src/16bit-processors.cc, src/16bit-registers.cc, src/16bit-registers.h, src/p18x.cc, src/p18x.h: Completed converting the 16-bit core I/O ports to the new I/O redesign (note - the peripheral-to-I/O mapping still needs to be completed). * src/ioports.h, src/ioports.cc: deprecated the old PIC_IOPORT class and all of its children. 2005-08-01 Scott Dattalo * src/14bit-processors.cc, src/14bit-processors.h, src/14bit-tmrs.cc, src/14bit-tmrs.h, src/intcon.cc, src/intcon.h, src/pir.h, src/p16x6x.cc, src/p16x6x.h, src/ioports.cc, src/ioports.h, src/p16x7x.cc, src/p12x.cc: -- The intcon and pir registers were not getting set up correctly for the midrange devices. -- Added 'sinks' and 'sources' for the CCP module. * src/16bit-processors.cc, src/16bit-processors.h, src/p18x.cc, src/p18x.h: Began porting the new I/O port design to the 16bit core devices. * src/symbol.cc: Added a diagnostic message that is printed whenever a register symbol with a null cpu is added to the symbol table. * regression/run_regression.sh, regression/p18f452_ports.asm, regression/p18f452_ports.stc: -- Added new regression test to test the P18F family I/O ports. -- Redesigned the processor construction sequence. -- The P18F1220 did not have PortB pullup resistors. 2005-07-30 J.R. Heisey * src/symbol.cc, src/symbol.h: Added a list of symbols that are defined from the gpsim command line. The list and the symbol values are preserved when the symbol table is cleared due to a new processor being allocated. Removed the add() function that accepted a symbol type as a string. See comments for cmd_symbol.cc,h. * src/attributes.cc, src/sim_context.cc, src/sim_context.h: Changed or added calls to the symbol table. * cli/ui_gpsim.cc, src/cmd_gpsim.h: Added functions to render integer values to strings based on a system level defined radix. The radix will be exposed as a global attribute. There are distinct radix definitions for program addresses, RAM addresses and data values. Will expose a global attribute to define the prefix for displaying hexidecimal values. The default is '$'. * gpsim/main.cc: Added -D command line option for defining symbols and their values to be placed into the symbol table. * src/value.cc, src/value.h: Added string parsing and constructor functions for each data type. Used for the command line parsing of symbol definitions. * cli/cmd_symbol.cc,h, cli/cmd_load.cc,h, cli/parse.yy: The load command will now accept symbols as input for the filename. Combined with the symbol defines on the command line, one STC file can be used to open any program file by defining a symbol on the gpsim command line and referencing that symbol in the load commmand. * The symbol command can now be used to create a symbol from the gpsim command prompt or an STC file. The syntax is symbol =. Types include string, integer, float and boolean. * gpsim/gpsim.vcproj, gui/gui_menu.cc, gui/gui_regwin.cc: Removed the references for gtk_file_selection_get_filename_utf8(). This was added due to compile time issues with gtkextra-2.1 under Visual Studio .NET. The VS.NET build links a gtkextra static lib into the exe. Even if you can get it to compile, sometimes gpsim will crash before its main() function is entered. The use of gtkextra-2.1 under VS.NET is not recommended and I have reverted the gpsim.vcproj back to gtkextra-2.0. * src/program_files.cc: Changed error handling logic to prevent a "list file not found" error from displaying in an inappropriate situation. 2005-07-29 Scott Dattalo * src/ioports.cc, src/ioports.h, src/p12x.cc, src/p16x6x.cc, src/registers.h, src/stimuli.cc, src/stimuli.h, src/symbol.cc, src/tmr0.cc, src/tmr0.h: Introduced the concept of Multi-State logic to stimuli. 2005-07-15 J.R. Heisey * src/symbol.cc: Added check to prevent a symbol name of a null string from being added as a symbol. * src/stimuli.cc: Added a check to prevent a IOPIN name null string pointer from being added to the symbol table. * modules/resistor.cc: PullupResistor() constructor was setting its attribute before it had set its own name resulting in the attribute name not being scoped correctly. * src/breakpoints.cc, src/breakpoints.h, cli/cmd_break.cc, cli/cmd_break.h: Added code to support break expressions of the form (Reg & mask BoolOp value) where BoolOp includes <, >, <=, >= and != operators. Just need to change the print() and action() console output functions of the break classes and uncomment code in parse.yy. 2005-07-26 Scott Dattalo * src/bit.h, src/bit.cc, src/Makefile.am: Added new files to handle a 'Bit' object. This code was formerly tucked away in registers.cc. * src/stimuli.h, src/ioports.h, src/ioports.cc: Added a control object for the PinModule to handle I/O pin pullups. Also, added an option to prohibit certain stimulus updates whenever I/O pin state information changes. 2005-07-26 Scott Dattalo * src/16bit-instructions.cc, regression/instructions_16bit/instructions_16bit.asm: Fixed bug with 16bit processors Table Read (more index vs address). Thanks to Peter Onion for pointing this (and other 16bit stuff out). 2005-07-26 Scott Dattalo * src/i2c-ee.cc, src/i2c-ee.h, src/ioports.cc, src/ioports.h, src/p12x.cc, src/stimuli.cc, src/stimuli.h: Fixed 12CE51x internal eeprom peripheral. * gui/gui_menu.cc, gui/gui_regwin.cc: Removed dependency on gtk win32 port. 2005-07-25 Scott Dattalo * regression/instructions_16bit/instructions_16bit.asm: added tests for multi-word instructions. * regression/p12ce518/p12ce518.asm: debugging eeprom i2c interface * gui/gui_src_opcode.cc, src/16bit-instructions.cc, src/16bit-instructions.h: Fixed more problems with address <--> index mapping. (and there are still some issues remaing with the program memory viewer). * src/i2c-ee.cc, src/ioports.cc, src/ioports.h, src/p12x.cc, src/p12x.h: The eeprom i2c interface is broken... 2005-07-23 Borut Razem * gpsim/gpsim.vcproj, doc/gpsimWin32.html, plat/win32/gpsim.nsi: use pthreads-w32-2-7-0-release * cli/scan.ll: corrected typo 2005-07-22 Scott Dattalo * cli/cmd_disasm.cc: rnages were disassembling wrong addresses * gui/gui_src_asm.cc: cleanup * src/12bit-processors.cc, src/14bit-processors.cc, src/14bit-registers.cc, src/14bit-tmrs.cc, src/attributes.cc, src/gpsim_classes.h: Implenting new ioport design for 12bit cores. Fixed bugs with resets. * src/16bit-hexdecode.cc, src/16bit-instructions.cc, src/16bit-processors.h, src/16bit-registers.cc, src/cod.cc: 16bit processors were not getting loaded properly due to some bugs with address <-> index mapping 2005-07-21 Scott Dattalo * src/ioports.h, src/ioports.cc: classes derived from PortRegister can now specify the type of PinModule class. 2005-07-15 Scott Dattalo * src/12bit-processors.cc, src/14bit-processors.cc, src/14bit-processors.h, src/16bit-registers.cc, src/16bit-registers.h, src/intcon.h, src/ioports.cc, src/ioports.h, src/p16f62x.cc, src/p16f87x.cc, src/p16x6x.cc, src/p16x6x.h, src/p16x7x.cc, src/p16x7x.h, src/p16x8x.cc, src/p16x8x.h, src/pic-processor.cc, src/pic-processor.h, src/registers.cc, src/registers.h, src/stimuli.cc, src/stimuli.h, src/tmr0.cc, src/tmr0.h, src/uart.cc, src/uart.h: I/O Port Redesign: These files have been updated to accommodate a new I/O Port design. Currently the design applies only to the mid-range PIC family, but will be propogated to the 12 and 16 bit cores too. In summary, the I/O pins are now managed with I/O pin modules. A port register maintains an array of these modules. In the old design, the I/O pins were managed directly by the Port registers. New classes have been designed to allow multiple signal sources, signal controls, and signal sinks for I/O pins. These new objects can be added at will and thus allow the exact behavior of an I/O pin be tailored to a specific processor (and even changed dynamically). Thus a base class in the processor heirarchy can instantiate a register object, and the derived processors populate it with custom functionality. * cli/cmd_break.cc: documentation clean up * modules/usart.cc, modules/usart.h: tinkering - * regression/logic_test/Makefile, regression/logic_test/logic_test.asm: Incorporates an un-released gpasm feature of the .direct macro. This feature allows multiple strings to be passed to gpasm. * regression/p16f84/p16f84.asm: Bug fix in PORTB pullup test 2005-07-15 J.R. Heisey * gui/gui_watch.cc, gui/gui_watch.h: Fixed problem with register symbol names not displaying in the Watch window. Introduced this bug when I made the bit mask feature in register symbols. * gui/gui_regwin.cc: Fixed problem with register symbol names not displaying in the RAM window. Introduced this bug when I made the bit mask feature in register symbols. 2005-07-11 J.R. Heisey * src/breakpoints.cc, h, src/cmd_gpsim.h, src/symbol.cc, plat/win32/gpsim.def, gpsim/main.cc, cli/ui_gpsim.cc, cli/ui_gpsim.h: Made changes so that when hitting a break will display program and register address symbols. * src/breakpoint.cc: Removed calls to eval_Expression() where it is not necessary. Enhanced the break on value action text to include symbols and bit mask value. * cli/ui_gpsim.cc,h, gpsim/main.cc: Added functions that help display program and register address symbols along with the address value. * src/trigger.cc: Fixed problem in TriggerObject:: eval_Expression() that was preventing non-expression based break points to not fire. * src/symbol.cc: Added check in Symbol_Table:: findRegisterSymbol() to get register bit mask defined for the CPU when the passed in value is zero. 2005-07-10 J.R. Heisey * plat/win32/gpsim.def, src/symbol.cc, src/symbol.h: Change function name from findRegister() to findRegisterSymbol() to reflect the return type. Added new findRegisterSymbol() version that takes a single address parameter. Did some minor code optimization of the findRegister() function. Due to the introductions of register symbol bit mask, I modified findRegister() to only return symbols that are defined for all bits of the register. * src/processor.cc: Changed some entry condition checks to allow processor::disassemble to disassemble one program address. Also made some minor code optimizations. 2005-07-06 Borut Razem * src/breakpoints.cc, src/gpsim_time.cc, src/interface.cc, src/processor.src, src/trace.cc: declare dummy_bp, dummy_cycles, dummy_gi, dummy_get_active_cpu, dummy_set_active_cpu and dummy_trace as non static to compile with gcc 3.4.4 * plat/win32/gpsim.nsi: corrected version number to 0.21.8 * gpsim/gpsim.vcproj, gpsim/makefile.mingw: linking with libgtkextra-win32-2.1.lib * doc/gpsimWin32.html: linking with gtk+extra-2.1.1, glib-2.6.5, gtk+-2.6.8, pango-1.8.0, 1.9.0, fontconfig-2.2.2-20040412 * plat/win32/make.mingw: change gcc command line options mcpu with mtune to compile with gcc 3.4.4 2005-07-08 J.R. Heisey * plat/win32/gpsim.def, src/symbol.cc, src/symbol.h: Added version of Symbol_Table::findRegister() that takes a bitmask parameter. Added Symbol_Table::findConstant() for future use. Need to implement a symbol to referenced from address cross reference. * gui/gui_src_opcode.cc, src/processor.cc: Fixed issues accessing program memory arrays using address instead of an appropriate index. * gui/gui_src_opcode.cc, src/processor.cc: Fixed issues with Processor::disassemble() function not traversing over break points to find the base instruction object. 2005-07-07 J.R. Heisey * cli/cmd_break.cc, cli/cmd_break.h: Code to display address labels in break related messages. * plat/win32/gpsim.def, src/pic-instructions.cc, src/pic-instructions.h, src/processor.cc, src/processor.h, src/symbol.cc: Code to display address labels in a disassembly output. Added members to Processor class to support a page mask and offset mask that can be used to calculate absolute addresses for disassembly output for JUMP and CALL instructions. See the functions CalcJumpAbsoluteAddress() and CalcCallAbsoluteAddress(); 2005-07-06 J.R. Heisey * src/stimuli.cc, src/symbol.cc, src/symbol.h: Fixed a problem where renamed stimulus_symbol objects were getting lost. This caused a error when running the regression test digital_stim. 2005-07-06 Borut Razem * plat/win32/gpsim.nsi: NSIS 2.07 compatible 2005-07-05 J.R. Heisey * src/symbol.cc, h: The access to a derived object's name() function was broken when I made the name() function in the base class const. I've propogated the const attribute to overriden versions of name(). - Somewhere along this process on of my program variables stopped being added to the symbol table. So, I've changed the if statement that determines when a duplicate variable exists in the symbol table. - I've added a function called findProgramAddressLabel() so that a label name can be displayed where appropriate. * src/breakpoints.cc: Changed ::print() functions to output program memory labels where they could. Changed implementation to use the Console object rather than cout. * src/registers.cc: InvalidRegiser() constructor was not setting its address member variable. Now the address is included in the console warning. * src/attributes.cc: WarnModeAttribute() was not setting its value member variable. - init_attributes() added some constant attributes for reset types. 2005-07-01 Scott Dattalo * cli/scan.ll, cli/parse.yy, cli/input.cc: The recently added command line error processing change did not compile under Linux and was free a constant pointer. * gui/gui_main.cc, gpsim/main.cc: The command line prompt was always selected. 2005-07-01 J.R. Heisey * cli/scan.ll, cli/parse.yy, cli/input.cc,h: - Full command line text is displayed when a command line error occures. - Command line buffers are cleared appropriately after a command line error. 2005-06-30 Scott Dattalo * regression/logic_test/logic_test.asm, regression/logic_test/Makefile, regression/logic_test/16f873.lkr: Added a regression test for gpsim Logic Modules. 2005-06-30 J.R. Heisey * src/breakpoints.cc, src/breakpoints.h, cli/cmd_break.cc: New break point dump filtering. break r dumps register read break points. break w dumps register write break points. break e dumps execution break points. * cli/cmd_disasm.cc: Updated disassemble command on line help to reflect reality. 2005-06-30 Scott Dattalo * cli/input.cc, gpsim/main.cc, gui/gui_main.cc, src/gpsim_interface.h, src/interface.cc, src/modules.cc, src/modules.h, src/processor.cc: Added methods to the gpsim_interface class that manage the state of gui. This is done so that gui-based modules can query the gui state and conditionally build their graphical portions. * modules/led.cc, modules/logic.cc: The Logic and LED modules now will not build any graphics if the gui is not initialized. Pin names were getting added to the symbol twice. 2005-06-27 Scott Dattalo * src/stimuli.cc, src/stimuli.h: Added putState()/getState() methods and removed putDrivingState method from the stimulus class. The purpose of this is to abstract away whether a node is driving or not. The main affect is in the gui breadboard where the state of I/O pins is queried. * gui/gui_breadboard.cc, gui/gui_breadboard.h, modules/usart.cc, modules/video.cc, modules/video.h, src/14bit-tmrs.cc, src/i2c-ee.cc, src/ssp.cc, src/uart.cc: Updated calls to new stimulus class API. * modules/logic.cc, modules/logic.h: The logic gate modules had bit rotted. 2005-06-26 J.R. Heisey * plat/win32/gpsim.def, src/processor.cc, src/processor.h: New function Processor::init_program_memory_at_index() to continue the separation of PM address from PM array index. 2005-06-26 Scott Dattalo * src/trace.cc: The wrong variable was being used to index the program counter array. This caused the trace to get an invalid instruction. 2005-06-26 Scott Dattalo * INSTALL: Added notes from Bas Wijnen regarding Debian. 2005-06-25 Scott Dattalo * src/symbol.cc, regression/simulate: The new 'BITS' indicator for register symbol queries broke the regression test. Now, the BITS indicator is only displayed if only a portion of the register applies to a register symbol. 2005-06-24 J.R. Heisey * src/modules.cc: Fixed a bug in Module::get() where a derive class does not override this function, now this function will return a null string. This fixes problems when a derived class is being displayed in the GUI symbol window causing a UTF-8 warning. * src/symbol.cc: Fixed an introduced null pointer exception. 2005-06-23 J.R. Heisey * plat/win32/gpsim.def, src/symbol.cc, src/symbol.h: register_symbol::m_uMask is used to mask out bits not associated with the symbol after retrieving the value from the register. Masked bit values are right shifted such that if the 16th bit is high in the register and m_uMask = 0x80, then the symbol value returned or displayed will be one. Likewise to set the 16th bit of our example register_symbol you would set the register_symbol value to 0x01 and not 0x80. No other bits in the register are changed. It works as if this symbol is its own register. The encoding into the target register is hidden by register_symbol. The default value of m_uMask is 0xff so that no bits are masked out. An new version of Symbol_Table::add_register() may be used to add masked register_symbol objects to the symbol table. register_symbol::copy() is changed to return the correct symbol string. 2005-06-21 J.R. Heisey * cli/cmd_run.cc: Added help text saying that CTRL->C will stop a running simulation. * src/breakpoints.cc, src/processor.cc, src/processor.h, src/trace.cc, plat/win32/gpsim.def, gui/gui_profile.cc, gui/gui_src_asm.cc: There was significant ambiguity for some functions that appear to accept an simulation address but acted upon it as a ProgramMemoryAccess index. The ProgramMemoryAccess indexing operator was a prime example. I have eliminated the indexing operator and added the functions getFromAddress() and getFromIndex() to make things more explicitly clear. I have also removed put() and get() and added putToAddress() and putToIndex(). Other new functions are hasValid_opcode_at_address() and hasValid_opcode_at_index(). This mostly effected gui code so the simulation itself should have no impact. The original intent of this change was to fix bugs in the gui where double clicking on a breakpoint icon in the source window would not toggle the breakpoint. 2005-06-17 J.R. Heisey * cli/cmd_dump.cc: dump register for special registers broken when pReg->isa() and Register::SFR_REGISTER were not being used. Now we dump the registers listed in MemoryAccess::SpecialRegisters. * cli/input.cc: Implemented the ability to break running firmware using Ctrl->C key when running under Windows. It would previously exit gpsim. * gpsim/main.cc: Changed logic so the -i on the gpsim command line will not attempt to start the gui interface. * cli/cmd_break.cc, cli/cmd_clear.cc, cli/cmd_disasm.cc, cli/cmd_dump.cc, cli/cmd_frequency.cc, cli/cmd_help.cc, cli/cmd_load.cc, cli/cmd_module.cc, cli/cmd_processor.cc, cli/cmd_step.cc, cli/cmd_stimulus.cc, cli/cmd_trace.cc, cli/cmd_version.cc, cli/command.cc, cli/command.h: Implemented command abbreviations. Made abbreviations for several often used commands. 2005-06-14 J.R. Heisey gui/gui_src.h, gui/gui_src_asm.cc, gui/gui_statusbar.cc, src/processor.cc, src/processor.h, src/registers.h: Fixed some problems with the source window optimization. Fixed problem with the text search dialog not searching alternate source windows. Fixed problem with Set PC Here from an alternate window. 2005-06-13 J.R. Heisey *src/cmd_manager.cc, src/cmd_manager.h, src/modules.cc, cli/cmd_shell.cc: Fixed introduced bug where the command line interface from a library module was not accessible. A ! bang character alone lists the command line interfaces. 2005-06-13 Scott Dattalo * configure.ac: Fixed recently introduced typo. * src/attributes.cc: Cycle counter attribute now prints correctly again. * src/processor.cc, src/processor.h: fixed bug in IsAddressInRange() method, also reversed return value to match meaning of name (now returns true if the address is in range). * src/symbol.cc: Symbol table dump was not showing symbol values. * src/registers.cc: fixed warning message for when invalid registers are accessed. 2005-06-10 Scott Dattalo * src/stimuli.cc, src/stimuli.h, src/symbol.cc, src/symbol.h: Stimuli symbols were not getting added to the symbol table when their name was being changed. 2005-06-10 J.R. Heisey *src/gpsim_object.cc,h: Small change to allow name() call in a const variable context. *plat/win32/gpsim.def, src/processor.cc, src/stimuli.cc, src/symbol.cc, src/symbol.h, gui/gui_profile.cc: Changed the implementation of the Symbol_Table class to order by symbol name so that a binary search will improve lookup speed. 2005-06-10 Scott Dattalo * cli/cmd_stimulus.cc, doc/gpsim.lyx: Updated documentation. 2005-06-09 J.R. Heisey *cli/cmd_module.cc: Added extra help for module command. *gui/gui_src.h, gui/gui_src_asm.cc, plat/win32/gpsim.def, src/processor.cc,h: Changed the parsing of the source for formatted display to speed things up during file loading. Source is now cached in a form for rendering to the formatted text window. 2005-06-09 Scott Dattalo * gui/gui_main.cc, gui/gui_regwin.cc, gui/gui_src.cc, gui/gui_src_asm.cc, gui/gui_src_opcode.cc, configure.ac: Found the source of a bug that causes gpsim to hang when gtk-2.6.7 and gtkextra-2.0 are used. The problem is either with gtkextra or the interaction of it with gtk. gpsim currently has in place a stop-gap measure to prevent the problem from keeping the simulator from being unusable. 2005-06-06 J.R. Heisey *src/os_dependent.cc: The environment variable GPSIMPATH may be used to specify folders where shared libraries may be found. This is primarily for windows developers of gpsim. - Small change to prevent load_library() from displaying an error message that is not needed. *cli/cmd_node.cc: Use a reference instead of allocating a string on the local stack. *modules/modules.vcproj: Changed Visual Studio build of modules to libgpsim_modules.dll 2005-06-04 Scott Dattalo * gui/gui.h, gui/gui_menu.cc, gui/gui_object.cc, gui/gui_object.h, gui/gui_src_asm.cc, gui/gui_statusbar.cc, gui/gui_statusbar.h: -- removed the cycle counter and time view from the status bar of the register and source windows and moved them to the window that contains the buttons. -- fixed text-width bugs in the status window. -- rewrote the implementation of the gui update code. -- Created a 'TimeWidget' class and a 'TimeFormatter' class for displaying the cycle counter object. -- Added a MainWindow class (kind of empty now). -- Re-introduced a few of the GTKWAIT macros. 2005-06-04 Scott Dattalo * configure.ac, gpsim/Makefile.am: remove the explicit checks for the pthread library. 2005-06-04 Scott Dattalo * gpsim/main.cc: Allow filenames whose first character is a number. 2005-06-04 Scott Dattalo Patch from: Rob Pearce * src/cod.cc: Fixed gramatical error. * src/eeprom.cc, src/eeprom.h: Added a new state to the eeprom state machine to fix ?? * src/ioports.cc: fix to the 628 porta comparator. 2005-06-03 Scott Dattalo * gui/gui_main.cc: Added a call to g_main_iteration() to allow GTK events to get processed. (This replaces the GTKWAIT macro that was removed in the previous commit). 2005-06-02 Scott Dattalo * gui/gui_src_asm.cc, gui/gui_main.cc: Removed GTKWAIT macros. Apparently on newer versions of GTK these macros block indefinitely. On really old versions of GTK (pre 2.0) these macros were necessary. 2005-05-26 J.R. Heisey * src/breakpoints.cc,h, plat/win32/gpsim.def: added register assertions functionality. Can now assert the register value with !=, <=, >=, <, and > operators. 2005-06-01 Scott Dattalo * src/os_dependent.cc: Printed an error message if a shared library fails to open. 2005-05-26 J.R. Heisey * src/program_files.cc: Fixed crashing bug when no file types are able to open a program file. 2005-05-25 Borut Razem * plat/win32/gpsim.nsi, extras/lcd/makefile.mingw: added missing files to the WIN32 installation package in order to be able to compile the LCD modue; make LCD module mingw makefile a litle bit more flexible 2005-05-24 Scott Dattalo * src/cod.cc, src/breakpoints.cc, src/trigger.cc, regression/assertions/assertions.asm: Added support for scripts embedded in .cod files. 2005-05-24 Scott Dattalo * src/modules.h, src/modules.cc, src/processor.cc, src/breakpoints.cc, src/pic-processor.cc, src/hexutils.cc, gui/gui_src.cc, gui/gui_src_asm.cc, cli/scan.ll, src/cmd_manager.h, cli/cmd_dump.cc: -- renamed the enum's for the SIMULATION_MODE(s) (the enum 'INITIAL' collides with a macro in flex) -- added support for module scripts -- If a symbol begins with a period, then the scanner will automatically prepend the active processor name. (This is a short cut for accessing processor attributes). 2005-05-24 Borut Razem * doc/gpsimWin32.html, gpsim/gpsim.vcproj, gpsim/makefile.mingw: WIN32 with official release of gtk+extra-2.0.0 2005-05-22 Scott Dattalo * cli/cmd_break.cc, cli/cmd_break.h, cli/parse.yy, cli/scan.ll, src/breakpoints.cc, src/breakpoints.h, src/operator.cc, src/trigger.cc, src/trigger.h, src/value.cc: Added the capability of associating user defined messages with break points. Break point expressions (if present) are now displayed when the break points are displayed. * regression/assertions/Makefile, regression/assertions/assertions.asm: Use the coff.inc include file supplied with gputils and specifically the macros for assertions. 2005-05-21 Scott Dattalo * cli/cmd_break.h, cli/cmd_break.cc, cli/input.cc, cli/parse.yy, src/cod.cc, src/breakpoints.cc: Execution breakpoints were failing to propogate execute() if an attached expression evaluated false. Added support for gpasm style assertions. * cli/scan.ll: Shell command escape character ('!') was conflicting with the not operator. * regression/assertions/assertions.asm, regression/assertions/Makefile, regression/assertions/16f873.lkr: Added a regression test for gpasm assertions. 2005-05-20 Scott Dattalo * cli/scan.ll, regression/run_regression.sh, regression/macro_test/macro_test.stc: Macros can now be nested. 2005-05-20 Scott Dattalo * gui/gui_profile.cc: ifdef'd out code that a) is seldom (never?) used and b) incompatible with the latest official release of gtkextra. 2005-05-19 Scott Dattalo * src/ttoken.h, src/ttoken.cc, src/bytelog.cc, src/bytelog.h, src/pthread-wrap.h: Create a gpsim namespace and place the objects in these files in there. * cli/scan.ll: removed some printf debugging junk. 2005-05-19 Scott Dattalo * cli/scan.ll, cli/cmd_macro.cc, cli/parse.yy, cli/input.cc: A recent change in string processing broke macros. Also, began adding code to support nested macros. * regression/macro_test/macro_test.asm, regression/macro_test/macro_test.stc: Added new regression test for macros. 2005-05-18 Scott Dattalo * cli/scan.ll: Fixed end-of-line scan bug introduced on 5-16. 2005-05-16 J.R. Heisey * src/os_dependent.cc: Added debug code to allow alternate directory paths for module libraries so I can specify debug build locations for shared libraries. * src/program_files.cc: Fixed bug caused by symbol table not being cleared when Program files are loaded. * src/modules.cc: Fixed bug when a module library failed to load it was still being added to the installed library list. * configure.ac: bumped build number to 0.21.5 2005-05-16 Scott Dattalo * cli/input.cc, cli/scan.h, cli/scan.ll, cli/input.cc: command assertions where causing parse errors. 2005-05-14 Scott Dattalo * cli/cmd_processor.cc: The processor command wasn't working because of a typo in an if statement. * cli/parse.yy, cli/cmd_break.cc, cli/cmd_break.h: Added 'break #number' to allow inspection of an individual break point. Clean up some memory management. * src/breakpoints.cc: 'dump1()' wasn't checking to see if the break point number was valid. * src/os_dependent.cc: non-windows file extension comparisons were not working. * src/pic-processor.cc, src/symbol.h, src/symbol.cc, src/value.cc: val_symbols like the PIC program counter can now be parts of gpsim expressions. * src/cod.cc: hack - line number offset errof. * doc/gpsim.lyx: Updated the documentation. 2005-05-12 Scott Dattalo * gui/gui_regwin.cc, gui/gui_src_opcode.cc, gui/gui_src_asm.cc: Removed calls to GTKWAIT because they sometimes block in the newer version (2.6.7) of GTK. Thanks to Micah Carrick for pin-pointing this one. 2005-05-11 Scott Dattalo * src/sim_context.cc: The included file "direct.h" does not exist on FC3. 2005-05-10 J.R. Heisey * cli/cmd_load.cc: Updated on line help for load command. * gui/gui_src_asm.cc: Removed a call to gtk_widget_destory() in SourcePage::Close() where it was causing a crash in Windows. * cli/scan.ll: Defined literal string values to be quoted. This was done so that quoted Windows paths in the load command to accommodate colons for drive designation and backslashes for folder delimiters. * gpsim/main.cc: Added the gpsim.exe startup folder to the module/library search path. * src/sim_context.cc, src/errors.h: Added an error message to CSimulationContext:: LoadProgram(). * cli/cmd_module.cc, src/modules.cc, src/modules.h, src/os_dependent.cc, gpsim/main.cc: Added code to not load a module library that is already loaded. 2005-05-06 J.R. Heisey * gui/gui_regwin.cc: Fixed crash that occurs when RAM register count is not a multiple of 16. * plat/win32/gpsim.def: Added new function reference. * src/processor.cc: Fixed broken list command * src/sim_context.cc: Fixed broken register output on stepping that broken on previous check in. Test for open file failure. * src/program_files.h: Add new error code. 2005-05-05 J.R. Heisey * cli/cmd_break.cc, cli/cmd_disasm.cc, cli/cmd_dump.cc, cli/cmd_frequency.cc, cli/cmd_list.cc, cli/cmd_load.cc, cli/cmd_load.h, cli/cmd_log.cc, cli/cmd_processor.cc, cli/cmd_reset.cc, cli/cmd_step.cc, cli/cmd_x.cc, cli/command.cc, cli/command.h, cli/input.cc, cli/input.h, cli/parse.yy, src/cod.cc, src/cod.h, src/hexutils.cc, src/Makefile.am, src/modules.h, src/os_dependent.cc, src/pic-processor.cc, src/pic-processor.h, src/processor.cc, src/processor.h, src/program_files.cc, src/program_files.h, src/sim_context.cc, src/sim_context.h, src/src.vcproj, src/symbol.cc, src/symbol.h, config_win32.h.in, configure.ac, plat/win32/gpsim.def, gui/gui_menu.cc, gui/gui_src_asm.cc, gui/gui_statusbar.cc, gpsim/Makefile.am: - Replaced the cli and gui references to hexfiles verses cod file with program files. Gpsim will now figure out the file type and load the file. - Both the gui and cli will recoginze command files by the stc file extension. All other files are assumed to be program files. - The c, h and s load options of the load command will be accepted for backwards compatibility of existing command files but are no longer needed. - The processor command is not optional. If the program file contains the information about the processor type, gpsim will allocate the processor type based on the program file information. Using the processor command overrides this behavior. 2005-05-01 Borut Razem * plat/win32/gpsim.def: MSVC sync 2005-04-29 Scott Dattalo * HISTORY, README, INSTALL, configure.ac, gpsim.spec.in: Updates for the 0.21.4 * extras/lcd/ChangeLog, Makefile.am, configure.in: bumped the Rev of the LCD module to 0.2.4 2005-04-29 Scott Dattalo * src/breakpoints.cc: Register assertions were not halting simulation when assertion was true. 2005-04-26 Scott Dattalo * cli/Makefile.am, examples/14bit/Makefile.am: Updated so that 'make dist' would work again. * src/attributes.cc, src/init.cc: Moved attribute initialization from init.cc to attributes.cc * src/breakpoints.cc, src/symbol.cc, src/symbol.h, src/trigger.cc: Complex expressions are now fully supported. Updated the help info for the break command to reflect the new syntax (more work needed). 2005-04-26 Scott Dattalo * src/breakpoints.cc, src/breakpoints.h, cli/parse.yy, cli/cmd_break.cc, cli/cmd_break.h: continuing with complex break expressions. 2005-04-25 Scott Dattalo * src/trigger.h, src/trigger.cc, src/breakpoints.cc: Added complex expressions to the TriggerObject class. (not complete) 2005-04-23 Borut Razem * src/bitlog.cc, src/bytelog.cc, src/ttoken.cc: removed #define IN_MODULE * plat/win32/gpsim.def, modules/makefile.mingw, src/makefile.mingw, modules/modules.vcproj, src/src.vcproj: MINGW sync * gpsim/makefile.mingw: force linker to onclude BoolEventLogger class methods in gpsim.exe, so that they can be referenced by modules * src/modules.cc (get_attribute): fixed attribute name comparison * src/sim_context.h: added end of line at end of file * plat/win32/gpsim.nsi: remove pthreadVC1.dll 2005-04-22 Scott Dattalo * bitlog.cc, bitlog.h, bytelog.cc, bytelog.h, ttoken.cc, ttoken.h, pthread-wrap.h: moved these from the modules/ directory into the src/ directory. 2005-04-19 J.R. Heisey * src/breakpoints.cc, src/processor.cc, src/processor.h: Fixed corruption when clearing a Breakpoint_Instruction object. The object was not removed properly from the chain of instruction objects in the pma. 2005-04-19 Scott Dattalo * src/os_dependent.cc: Added 'errno.h' to the list of include files. (without this, os_dependent.cc wouldn't compile on FC3-64bit). 2005-04-19 Scott Dattalo * src/symbol.cc, src/symbol.h: Fixed reference to symbol table that was preventing compilation on Linux. 2005-04-19 J.R. Heisey * gui/gui_src_asm.cc, gui/gui_statusbar.cc, gui/gui_statusbar.h: Modified the statusbar so that it can handle a switch from one processor to another. * src/sim_context.cc, src/symbol.cc,h: Fixed a crash on gpsim exit. * src/os_dependent.c: added test in load_library() to the first call to sLoad() to determine whether the a failure was due to the library file not found or some other error. This needs to be completed for the linux builds. 2005-04-18 Scott Dattalo * src/stimuli.cc: Stimulus_Node destructor now removes itself from the symbol table. 2005-04-17 Scott Dattalo * src/stimuli.h, src/stimuli.cc: Added methods to control the resistance and voltage of the IO_bi_directional_pu pullup resistor. 2005-04-16 Scott Dattalo * src/symbol.cc: set methods for register symbol now initialize the "init" field in the register object. 2005-04-16 J.R. Heisey * src/value.cc,h, src/symbol.cc,h, src/processor.cc,h, src/pic-processor.cc,h, makefile.mingw, Makefile.am, cli/input.cc, cli/init.cc, gui/gui_symbols.cc, gui/gui_stack.cc, gui/gui_src_asm.cc, gui/gui_profile.cc, src/gpsim_time.cc, plat/win32/gpsim.def, src/cod.cc, cli/cmd_processor.cc, added src/sim_context.cc.h: Restructured classes in preparation for allowing a simulation context to be reset for a new processor with out having to close the program and with out memory leaks. The new class CSimulationContext, implemented as a singleton for now, owns a CProcessorList. The singelton class ProcessorContructorList is used to create processor objects. Eventually CSimulationContext may own Breakpoints, Symbol_Table and the active_cpu objects. For now. there are accessor functions to get to the global objects. CSimulationContext.set_processor() will check for a matching processor in the processor list before allocating a new processor. Processor related classes now delete the objects that they own on destruction. May not be conprehensive. set_processor() currently deletes a matching processor object rather than reinitializing it for a new simulation session. 2005-04-15 Scott Dattalo * cli/command.h, cli/input.cc, cli/parse.yy, cli/scan.ll, gpsim/main.cc: Finished support for reentrant parsing. * cli/cmd_disasm.cc: Cleaned up a buglet in printing. * src/attributes.cc, src/attributes.h, src/pic-processor.cc, src/processor.cc, src/processor.h: Added an attribute that controls the behavior of simulator when a reset is encountered. 2005-04-15 Scott Dattalo * src/cod.cc, cli/cmd_run.cc, cli/cmd_run.h, cli/input.cc, cli/input.h, cli/parse.yy, cli/scan.ll: Added initial support for .COD file assertions. -- Parser is now reentrant -- gpsim's CLI interface is now a registered interface that can be referenced and accessed by the simulation engine. * src/ioports.cc: experimental tinkering 2005-04-14 Scott Dattalo * build.xml: configure was not getting invoked. 2005-04-14 Scott Dattalo * build.xml: autoconf was not getting invoked... 2005-04-13 Scott Dattalo * build.xml: An XML script for an experimental regression tool (based on the open source projects "ant" and "CruiseControl"). 2005-04-09 Borut Razem * cli/makefile.mingw, src/makefile.mingw: MINGW sync 2005-04-08 J.R. Heisey * src/breakpoints.cc, src/cmd_manager.cc,h, gpsim/main.cc, src/processor.cc,h, cli/ui_gpsim.cc,h, src/registers.cc, cli.vcproj, gpsim.vcproj, src.vcproj: Created a IUserInterface and CGpsimUserInterface as the implementation with functions to write predefined parameterized strings to the console (or in the future a GUI popup). Modules call the C function GetUserInterface() to retrieve an instance of CGpsimUserInterface as a IUserInterface. Using IUserInterface functions is the prefered way of writing error and notification messages to the gpsim console from other modules. 2005-04-08 Scott Dattalo * cli/parse.yy, cli/cmd_break.h: Added support for a break command like: break r|w reg(N) Where N is an integer and 'reg' is the new reg operator. 2005-04-08 Scott Dattalo * cli/parse.yy, cli/scan.ll: Added a "reg()" operator that can cast integers into registers (although this is not fully implemented yet). A single quote before an identifier now acts as an 'escape' character. This allows user defined strings to collide with gpsim built in strings. (e.g. If a user has a variable named help, its contents can be examined by typing 'help at the command line). 2005-04-07 J.R. Heisey src/breakpoints.cc: Fixed a memory leak by properly removing chained BreakpointRegister objects from the Register chain when clearing a break object. When the chain is properly maintained the object may be deleted. 2005-04-07 J.R. Heisey * cli/scan.ll, cli/parse.yy, cli/cmd_break.cc,h, src/processor.cc,h, src/pic-processor.cc, operator.cc,h, src/breakpoints.cc: Changed the break command syntax. Added code to support the syntax. 2005-04-07 Scott Dattalo * cli/cmd_manager.h, cli/cmd_manager.cc, cli/cmd_gpsim.h: moved from cli/ to src/ * src/processor.cc, src/Makefile.am, src/interface.cc, src/processor.cc, gpsim/main.cc, cli/Makefile.am, cli/cmd_manager.cc, cli/cmd_module.cc, cli/cmd_shell.cc: Updated these files to use the newly relocated .h files. The reason for doing this is to fix a src/ dependency on cli/ files. When src/ depends on cli/ then any module that links against the gpsim library must also link against the cli library. * src/registers.cc: added a Bit class (currently not used though) * src/symbol.cc: attribute symbols that wrap other symbols now change the name of the wrapped symbol. This allows heirarchical names such as processor_name.attribute to appear in the symbol table. 2005-04-06 J.R. Heisey * src/processor.cc.h: Two new break message functions. 2005-04-05 J.R. Heisey * src/value.h, src/registers.cc,h, src/processor.cc.h, src/preakpoints.cc,h, plat/win32/gpsim.def: Implemented classes and functions for displaying the register address and possible value for break on read and break on write. 2005-04-05 J.R. Heisey * gpsim/main.cc, src/interface.cc, src/gpsim_interface.h, cli/cmd_manager.h: Added code to support for an external module to access the global ISimConsole object from the Interface class. 2005-04-04 J.R. Heisey * src/processor.cc,h: Added the function Processor::IsAddressInRange(). Use IsAddressInRange() in ProgramMemoryAccess::get_src_line() and ProgramMemoryAccess::operator [](unsigned int address) 2005-04-02 Scott Dattalo * src/processor.cpp: Reverted the change J.R. made on 2005-03-31 because it breaks the gui for the 18F family of PICs. We'll need to come up with another way of solving the initial PC value problem. 2005-03-31 J.R. Heisey * src/processor.cpp: Changed call ProgramCounter->get_PC() to ProgramCounter->get_value() to fix a problem where the initial position of the PC in the source was not getting set properly. Return value is used for indexing into source code line. Mostly used by the UI so should not affect behavior. 2005-03-30 J.R. Heisey * cli/cmd_dump.cc: Changed ram dump command to handle ram sizes greater than one byte. * cli/cmd_x.cc: Removed call to dump.dump(DUMP_SFRS) since previous call to dump.dump(DUMP_RAM) already dump thes sfrs too.ram halt. * Cleaned up a couple of GUI error messages. (invalid window handle, invalid value strings) 2005-03-24 J.R. Heisey * src/breakpoints.cc, src/processor.cc, h, cli/cmd_clear.cc: Fixed crash in Breakpoints::clear() that I reintroduced in my last checkin. Also Fixed the original memory leak by properly removing chained Breakpoint_Instruction objects from the instruction chain when clearing a break object. When the chain is properly maintained the object may be deleted. Perhaps this should be a temporary fix until a base class for Breakpoint_Instruction all have a replaced member. 2005-03-23 Scott Dattalo * gui/gui_src_asm.cc: changed the comment text color to 'dim gray' 2005-03-23 Scott Dattalo * src/value.cc: Fixed write to a null pointer in String::get(char *buf, int len). * src/symbol.cc: Fixed infinite loop in char *register_symbol::name (char *buf, int len). * regression/ccp/ccp.asm: added more features to the ccp regression test. 2005-03-22 J.R. Heisey * gui/gui_watch.cc: Fixed problem with register values > 127 causing pango runtime warnings 2005-03-21 J.R. Heisey * src/breakpoints.cc, src/processor.h: created a notification to Processor when breakpoints are set or cleared. Cleaned up code in breakpoints.cc. 2005-03-23 Scott Dattalo * src/16bit-instructions.cc: The NEGF instruction for the 18f family was erroneously writing the negated result to W. * regression/instructions_16bit/instructions_16bit.asm: added a regression test for the NEGF instruction. 2005-03-21 J.R. Heisey * src/processor.cc: Copy a null string to input parameter Processor::get(char *cP, int len) because not value is associate with a Processor object. Fixes trace errors from pango when the symbol window is scrolled to some symbol objects. * src/value.cc: Copy a null string to input parameter String::get(char *buf, int len) when not value string is allocated. Fixes trace errors from pango when symbol window is scrolled to some symbol objects. 2005-03-18 J.R. Heisey * cli/cmd_load.cc/h, src/cod.cc/h, cli/input.cc, cli/parse.yy: added error checking for opening cod, hex and stc files. Particularily when opened from the GUI. 2005-03-17 Scott Dattalo * src/stimuli.cc: tweaking of I/O thresholds. 2005-03-16 Scott Dattalo * cli/scan.ll, src/stimuli.h, src/stimuli.cc, src/symbol.cc, src/symbol.h: Added/enhanced methods for searching, adding, and removing symbols and stimuli. 2005-03-14 J.R. Heisey * src/modules.h, modules.cc, os_dependent.cc: Elimaticated undesired error message on failure to load a function of a module. Simplified Module_Library() constructor to use os independent api call get_library_export() 2005-03-14 Scott Dattalo * plat/win32/gpsim.def: MSVC sync. * modules/modules.vcproj: Use new pthread library. * gui/gui_register.h, gui/gui_regwin.cc: pass registerValue by value in getValueAsString() method. 2005-03-03 Borut Razem * plat/win32/gpsim.def: MSVC sync 2005-03-10 Scott Dattalo * src/stimuli.cc: Added an 'X' state to getBitChar method of the IO_open_collector class. 2005-03-09 Borut Razem * modules/makefile.mingw: pthreads upgrade 2005-03-08 Scott Dattalo * src/value.cc, gui/gui_profile.cc, gui/gui_statusbar.cc, gui/gui_trace.cc: Corrected temporary hack regarding PRINTF_INT64_MODIFIER 2005-03-08 Borut Razem * plat/win32/gpsim.nsi: removed examples\14bit\*.inc * cli/cmd_manager.h: added newline at the end of file * doc/gpsimWin32.html: atk upgraded to 1.8.0 2005-03-08 Scott Dattalo * regression/ccp/ccp.asm: improvements to ccp regression test * gui/gui_profile.cc, gui/gui_trace.cc, gui/gui_statusbar.cc, src/value.cc: Temporarily removed windows-specific macro. * src/stimulus.cc, src/stimuli.h: Cleaned up asynchronous stimuli * src/registers.h, src/ssp.cc, src/ioports.cc, src/14bit-tmrs.cc: Made the default register class access functions all go through one function to obtain a register's value. 2005-02-26 Scott Dattalo * src/processor.h, src/trace.h, src/breakpoints.h, src/symbol.h, src/gpsim_interface.h, src/gpsim_time.h: The external references demarcated by 'IN_MODULE' were not getting resolved in FC3. Since these were introduced to resolve a linking problem with WIN32 DLL's, I made the demarcation dependent on only Windows. 2005-02-25 Scott Dattalo * src/stimuli.h, src/stimuli.cc: Added methods to the IOPIN class to differentiate between a pin driving a node and one being driven by a node. * src/14bit-tmrs.cc, src/i2c-ee.cc, src/packages.cc, src/ssp.cc, src/stimuli.cc, src/stimuli.h, src/uart.cc, extras/lcd/lcd.cc, gui/gui_breadboard.cc, modules/logic.cc, modules/logic.h, modules/usart.cc, modules/video.cc, modules/video.h: Propogate IOPIN change to all consumers. 2005-02-24 Scott Dattalo * src/stimuli.h, src/stimuli.cc: Added impedance thresholds to differentiate strong, weak, and floating drivers. 2005-02-16 Scott Dattalo * src/ioports.cc: experiments in ioport redesign. 2005-02-16 Scott Dattalo * src/stimuli.h, src/stimuli.cc: Added 'getBitChar()' method to the open collector stimulus class. 2005-02-15 Scott Dattalo * src/ioports.cc, src/ioports.h: Added a 'getIO' method to the IOPIN class that will allow an individual I/O pin in a port to be accessed. * src/stimuli.h, src/stimuli.cc: Add more state information to the snode class. Also, added the 'getBitChar()' method that will return the state of the stimulus in the form of an ASCII character (e.g. 0,1,Z,W). 2005-02-11 Scott Dattalo * src/os_dependent.cc: Libraries stored in system directories were getting ignored. 2005-02-09 Scott Dattalo * src/Makefile.am: Newly added src file 'os_dependent.cc' was not part of the Makefile * cli/input.cc, src/os_dependent.cc: abstracted some os dependent changes that were recently added 2005-02-01 Scott Dattalo * src/processor.h, src/processor.cc, src/trace.cc: Added 'Debug()' method to processor class and call it whenever a register assertion occur.s 2005-01-30 Borut Razem * config_win32.h.in, configure_win32.awk: extract version, package and bugreport values from configure.ac 2005-01-26 Scott Dattalo * configure.ac: repositioned the call to the m4 macro wi_READLINE_LIB so that it would run properly. 2005-01-26 Scott Dattalo * plat/win32/gpsim.def: added more external cross references. * module/modules.vcproj: changed from pthreadVC1.lib to pthreadVC.lib. 2005-01-23 Scott Dattalo * configure.ac: Craig Franklin updated gpsim's configure files. It turns out there was a tiny bug preventing things to build a *second* time (the first time would work fine) * src/gpsim_time.h, src/gpsim_time.cc, src/init.cc: The newly added and globally instantiated StopWatch class' constructor was making calls to the globally instantiated (but not necessarily constructed) Symbol_Table class. Now, StopWatch::init() will make the calls to the symbol table. 2005-01-21 Borut Razem * plat/win32/gpsim.def, src/src.vcproj: MSVC sync * doc/gpsimWin32.html: gpsim works with flex 2.4.31 2005-01-20 Scott Dattalo * src/breakpoints.cc: Trigger actions were not printing execution breakpoint messages. * src/registers.h, src/registers.cc: Added a skip_start function to the program counter. 2005-01-19 Scott Dattalo * src/registers.cc, src/registers.h, src/gpsim_object.cc, src/gpsim_object.h, src/symbol.cc, src/symbol.h, src/value.cc, src/value.h: Added the 'toBitStr' method to gpsim_object and propopogated the change through the derived classes. Also, the register class now calls get() to obtain the value printed with toString and toBitStr instead of directly using its value object. 2005-01-17 Scott Dattalo * src/gpsim_time.h, src/gpsim_time.cc: Finished the StopWatch class. * src/value.cc, src/value.h, src/attributes.cc, src/attributes.h: Added attribute breakpoints. For attributes that can be associated with breakpoints, you can now write 'break attribute' to set a breakpoint on that attribute. * cli/Makefile.am, cli/cmd_break.cc, cli/cmd_break.h, cli/cmd_help.cc, cli/command.cc, cli/parse.yy: The 'stopwatch' command is now handled by attributes. Added the following attributes: stopwatch, stopwatch.enable, stopwatch.direction, stopwatch.rollover. The 'stopwatch' attribute supports breakpoints, so the 'break stopwatch' command will break whenever the stopwatch rolls over. 2005-01-15 Scott Dattalo * src/attributes.cc, src/attributes.h: New files to support gpsim attributes. * src/Makefile.am, src/makefile.mingw: added the new files to the make files. 2005-01-14 Scott Dattalo * gpsim/main.cc, gui/gui_main.cc: The gtk main loop is now started even if the command line option --cli is specified. This way, the GIOChannels will still operate. 2005-01-13 Scott Dattalo * cli/sockect.cc, src/value.cc: Added support for 'Socket Sinks' and 'Socket Sources'. These essentially are two ways in which a client can choose to communicate with gpsim. 2005-01-10 Scott Dattalo * cli/sockect.cc, src/protocol.cc, src/protocol.h, src/symbol.cc, src/symbol.h, src/value.cc,src/value.h: Fixed bugs associated with socket notify links. 2005-01-09 Scott Dattalo * src/ioports.cc: Began I/O port redesign. * cli/socket.cc, src/protocol.h: Added Socket callbacks. * examples/scripts/client3.cc, examples/scripts/makefile, examples/scripts/client_interface.cc, examples/scripts/client_interface.h: Added a new client script example illustrating socket callbacks. * gui/gui_main.cc: removed a printf debug statement. 2005-01-09 Borut Razem * plat/win32/gpsim.def: MSVC sync * doc/gpsimWin32.html: dependedncy on gawk, ... * cli/cli.vcproj, cli/scan.ll: make it work with flex 2.4.31 * plat/win32/gpsim.nsi, modules/makefile.mingw, modules/modules.vcproj: pthreads 2005-01-03 * gui/gui_menu.cc: use utf-8 encoded LATIN SMALL LETTER Z WITH CARON instead LATIN SMALL LETTER Z. 2005-01-07 Scott Dattalo * src/16bit-processors.cc: stop gap hack - added registers to hold the places of the analog SFR's * cli/socket.cc, src/protocol.h, src/value.cc, src/value.h: More socket improvements. 2005-01-05 Scott Dattalo * src/breakpoints.cc, src/gpsim_classes.h, src/gpsim_interface.h, src/interface.cc, src/modules.cc, src/modules.h, src/pic-processor.cc, src/protocol.cc, src/protocol.h, cli/command.cc, cli/socket.cc: Enhancements to support the socket interface. Added a run command and a reset command and made them invocable via the interface class. 2005-01-02 Scott Dattalo * gui/gui_main.cc, cli/input.cc, src/interface.cc: Added function 'gUseThreads()' and use it to run-time select the usage of threads. 2005-01-02 Borut Razem * gui/gui_break.cc, gui/dialog.cc, gui/gui_init.cc, gui/gui_menu.cc, gui/gui_processor.cc, gui/gui_src.cc, gui/gui_src_asm.cc gui/gui_src_opcode.cc: removed unneeded include gtkcombobox.h * gui/gui_breadboard.cc: fixed compiler warnings * cli/Makefile.am, gui/Makefile.am: added AM_ preffix to CFLAGS, CXXFLAGS, CPPFLAGS and YFLAGS * doc/gpsimWin32.html: gtk+ version 2.4.14, XHTML 1.0 Transitional compliant, gtk+extra-2-1.1.0-20050102 * doc/gpsim_cvs.html: changed first build instructions 2004-12-17 Scott Dattalo * gui/gui_main.cc, src/interface.cc, cli/socket.cc: removed dependencies on GTK 2.0. 2004-12-19 Borut Razem * plat/win32/gpsim.nsi: added examples/scripts/client_interface.h to installation * mingw/makefile.mingw, gpsim/gpsim.vcproj: added gthread-2.0.lib * src/src.vcproj: removed plat\win32\glist.cpp from project; CLI mode now requires linking with full glib library; added src/trigger.cc and src/trigger.h to the project * modules/modules.vcproj: pthreads to the project * gpsim.sln: removed building of modules in CLI configuration 2004-12-17 Scott Dattalo * gui/gui_main.cc, src/interface.cc: replaced pthread_* calls and declarations with the corresponding GTK ones. 2004-12-17 Scott Dattalo * gui/gui_main.cc, src/interface.cc: Added experimental code to test threading. 2004-12-16 Scott Dattalo * gui/gui_main.cc, gui/gui_menu.cc: Use the interface instead of the cpu pointer to initiate simulation. * src/Makefile.am, src/trigger.cc, src/trigger.h, src/breakpoints.cc, src/breakpoints.h: Split the trigger classes away from the breakpoint classes. * src/gpsim_interface.h, src/init.cc, src/interface.cc, src/pic-processor.cc, src/protocol.cc, src/protocol.h, src/trace.h, cli/cmd_run.cc, cli/cmd_set.cc, cli/cmd_trace.cc, cli/input.cc, cli/socket.cc: Attempted (but failed) to add a feature that would allow a socket interface to send data to the simulator while a simulation is running. It turns out that the giochannel stuff used to control the socket runs in the gui event loop. The only time the socket is handled is whenever the loop can run. However, since gpsim is a single threaded application (the gui does spawn its own private thread), the gui event loop only runs whenever the simulation gives it cpu time. Thus it's not possible for a socket to update the simulation except when the gui is being refreshed! * examples/scripts/client.cc, examples/scripts/gensquares.asm, examples/scripts/makefile, examples/scripts/client2.cc, examples/scripts/client_interface.cc, examples/scripts/client_interface.h: Added a class to encapsulate the gpsim client socket interface. Added another example to test socket updates while the simulation is running. 2004-12-16 Borut Razem * plat/win32/gpsim.def: MSVC sync * src/14bit-registers.h: declare void Status_register::put(unsigned int new_value) as virtual, not inline * gui/gui_src_opcode.cc: removed definition of unused variable pm_size in method SourceBrowserOpcode_Window::NewProcessor() * extras/lcd/makefile.mingw: added * plat/win32/gpsim.nsi: added additional files from examples\scripts to the package * cli/input.cc: function have_line() is needed also in non GUI mode * gui/profile.cc, gui/gui_statusbar.cc, gui/gui_stopwatch.cc, gui/gui_trace.cc, src/14bit-tmrs.cc, src/16bit-registers.cc, src/eeprom.cc, src/i2c-ee.cc, src/interface.cc, src/interface.h, src/ioports.cc, src/p16x7x.cc, src/pic-processor.cc, src/pic-registers.cc, src/ssp.cc, src/stimuli.cc, src/tmr0.cc, src/uart.cc: replace direct access to cycles with a getter function get_cycles() 2004-12-15 Scott Dattalo * src/init.cc, src/gpsim_time.cc: Delayed creation of the cycle counter attribute. It turns out that this attribute was created in the Cycle_Counter constructor which is called by the globally instantiated 'cycles' object. On Windows, this call happened before the symbol table was inititialized . 2004-12-14 Scott Dattalo * src/init.cc: added new function for initialization. Also added new attribute 'sim.verbosity' that will control the simulator's verbosity. Note, this duplicates the behavior of the global variable 'verbose'. However, the goal is to phase out the global variable. * cli/cmd_run.cc: the run command now examines the new verbosity attribute. * src/pic-processor.cc, src/pic-processor.h, src/processor.cc, src/processor.h: the run member function now takes a parameter that controls whether or text will be printed. * cli/socket.cc: * src/interface.h: added extern def for new init function. * gpsim/main.cc: call new initialization function * src/breakpoints.cc: removed superfluous carriage return print. * examples/scripts/README, examples/scripts/client.cc, examples/scripts/makefile: added new files to illustrate scripting. * examples/scripts/gensquares.asm: minor tweak to simplify example regression test. 2004-12-14 Scott Dattalo * cli/scan.ll, cli/socket.cc, src/protocol.cc, src/protocol.h, src/value.cc: Fixed compilation issues with FC3 on an Athlon 64. 2004-12-11 Borut Razem * src/makefile.mingw, src/src.vcproj: added protocol.cc and protocol.h * plat/win32/gpsim.def: MSVC sync 2004-12-10 Scott Dattalo * src/gpsim_time.cc: Added a "cycles" attribute for interfacing with the cycle counter class. * src/protocol.cc, src/protocol.h, src/symbol.cc, src/symbol.h, src/value.cc, src/value.h, cli/socket.cc: More improvements to the protocol stuff. 2004-12-09 Scott Dattalo * src/protocol.h, src/protocol.cc, src/Makefile.am: New files to support a communication protocol for gpsim. * cli/socket.cc: moved much of the protocol related stuff to the new files. * src/value.h, src/value.cc, src/symbol.h, src/symbol.cc: Symbols and Values can now be assigned by Packets. * src/12bit-instructions.h, src/12bit-processors.h, src/14bit-instructions.h, src/14bit-processors.h, src/14bit-tmrs.h, src/16bit-processors.h, src/16bit-tmrs.h, src/breakpoints.h, src/p12x.h, src/p16f62x.h, src/p16x5x.h, src/p16x6x.h, src/p16x8x.h, src/pic-instructions.h, src/pic-processor.h, src/processor.h, src/trace.h, src/xref.h: fixed typo in GPL disclaimer. 2004-12-07 Scott Dattalo * cli/socket.cc: More socket clean up * src/modules.cc, src/modules.h, src/processor.cc, src/processor.h, src/symbol.cc, src/symbol.h: Removed deprecated code for setting/getting attributes. Added a new member function to the module_symbol that allows a character string to assign values to a module (this doesn't do anything yet). * modules/resistor.cc, modules/resistor.h, modules/usart.cc, modules/usart.h: removed deprecated set_attribute member function. 2004-12-06 Scott Dattalo * cli/socket.cc: Experimenting with binary data. Cleaned up socket link creation. Added a generic symbol read/write socket command. 2004-12-06 Scott Dattalo * cli/socket.cc: Wrap gtk2.x calls with #defines 2004-12-02 Scott Dattalo * cli/socket.cc: More additions to SocketLinks. It's now possible to tie a socket to a gpsim attribute. This allows an external application to directly control gpsim's behavior. 2004-12-02 Scott Dattalo * src/pic-processor.h, src/pic-processor.cc, src/p16f87x.h, src/p16f87x.cc: Added the PIC 16f876 2004-12-01 Scott Dattalo * cli/socket.cc: Fixed the socket interface for issues related to gtk 2.x. Began adding the SockeLink class. This class will sit on top of the socket interface and will hide it from the clients. The clients will be able to open SocketLinks and connect directly to gpsim internal objects. 2004-12-01 Borut Razem * plat/win32/gpsim.def: MSVC sync 2004-11-30 Scott Dattalo * gpsim/gpsim.vcproj: Removed references to files resource.h and gpsim.rc. 2004-11-30 Scott Dattalo * cli/cmd_break.cc, cli/cmd_break.h, cli/cmd_help.cc, cli/cmd_help.h, cli/cmd_load.cc, cli/cmd_load.h, cli/cmd_log.cc, cli/cmd_log.h, cli/cmd_macro.cc,, cli/cmd_macro.h, cli/cmd_module.cc, cli/cmd_module.h, cli/cmd_processor.cc,, cli/cmd_processor.h, cli/cmd_symbol.cc, cli/cmd_symbol.h, cli/command.cc, cli/misc.h, cli/parse.yy, cli/scan.ll: Changed the parser token STRING to LITERAL_STRING_T. The reason for this is to allow string type attributes to be treated like numeric attributes. * src/pic-processor.cc, src/pic-processor.h, src/processor.cc, src/processor.h, src/symbol.cc, src/symbol.h, src/value.cc, src/value.h: - Enhanced the 'String' class so that 1) it uses char * instead of STL string (yes this IS an enhancement) 2) the set() and get() methods can read and write to the String class. - Changed many instances of 'char *' to 'const char *'. 2004-11-29 Scott Dattalo * src/pic-processor.cc, src/processor.cc, src/processor.h, src/trace.cc, src/value.cc, src/value.h: Change Integer, Boolean, and Float classes back to hold values of native types (as opposed to holding pointers to the native types). * modules/video.cc: changed reference to cpu->frequency to cpu->set_frequency 2004-11-29 Scott Dattalo * cli/cmd_stimulus.cc: register stim were not getting started. * regression/register_stim/register_stim.[asm|stc], regression/run_regression.sh: Added a regression test for register stimuli. 2004-11-29 Scott Dattalo * src/stimuli.h, src/stimuli.cc, src/value.cc, src/value.h: Redesigned the 'asynchronous_stimulus' to be a 'ValueStimulus'. Added a new stimulus type: AttributeStimulus. An attribute stimulus is a stimulus that can be tied directly to some attribute. For example, a register symbol is a type of attribute. So an attribute stimulus can be tied to a register symbol to create a 'register stimulus'. * cli/cmd_stimulus.cc, cli/command.cc, cli/parse.yy: Added support for attribute stimuli. 2004-11-28 Borut Razem * plat/win32/gpsim.def: MSVC sync 2004-11-24 Scott Dattalo * src/processor.cc: operator[] for FileContext was not checking negative indices. 2004-11-24 Scott Dattalo * cli/input.cc: yet another attempt to fix tab completion. * modules/binary_indicator.cc, modules/binary_indicator.h modules/bitlog.h, modules/led.h, modules/logic.cc, modules/logic.h, modules/paraface.h, modules/resistor.cc, modules/video.cc, modules/video.h: Changed IO_input to IOPIN for all pins. This is an attempt to remove a warning message regarding IO_input that is generated while building under CygWin. * modules/makefile.mingw, plat/win32/gpsim.nsi: Renamed modules.dll to a slightly more descriptive gpsim_modules.dll * src/i2c-ee.cc, src/p12.cc, src/p16f62x.cc, src/p17c75x.cc, src/stimuli.h: exchanged references to IO_input to IOPIN. 2004-11-23 Scott Dattalo * plat/win32/gpsim.def, modules/modules.vcproj: MSVC sync * modules/*.cc: removed (char *) casts in calls to new_name() * gpsim/main.cc: removed some unnecessary includes. * gpsim/gpsim.vcproj: MSVC sync * cli/input.cc: removed some debug stuff * cli/cmd_log.cc: removed unreferenced variable. 2004-11-23 Borut Razem * plat/win32/gpsim.def, modules/modules.vcproj: MSVC sync 2004-11-23 Scott Dattalo * cli/input.cc: The tab completion fix for window's now causes a crash on Linux. Sigh. Now both oses are supported (without crashes) 2004-11-23 Scott Dattalo * cli/input.cc: Fixed tab completion related window's crash * gui/gui_symbols.cc: Windows doesn't support strndup() 2004-11-22 Scott Dattalo * cli/input.cc: buffer overflow in command_generator(). * src/ioports.cc, src/pic-registers.cc, src/registers.cc, src/stimuli.cc: valgrind check - unitialized memory. * src/value.h, src/value.cc, src/interface.h, src/symbol.cc, src/symbol.h, gui/gui_profile.cc, gui/gui_regwin.cc, gui/gui_regwin.h, gui/gui_src.cc, gui/gui_src.h, gui/gui_src_asm.cc, gui/gui_stack.cc, gui/gui_symbols.cc, gui/gui_watch.cc, gui/gui_watch.h: The gui was accessing the symbol table improperly. A new Symbol_Table_Iterator class was created to abstract accesses to the symbol table. In addition, get() and set() methods were added to the symbol classes that will allow reading/writing symbol values using strings. 2004-11-19 Scott Dattalo * gui/gui_breadboard.cc, gui/gui_regwin.cc, cli/parse.yy: valgrind check - fixed some uninitialized memory. 2004-11-19 Scott Dattalo * gui/gui_breadboard.cc: Don't let modules open a closed breadboard window. 2004-11-18 Scott Dattalo * cli/input.cc: disallow TAB characters under windows since it causes a crash most of the time. * modules/bitlog.cc, modules/bytelog.cc, modules/ttoken.cc, modules/makefile.mingw: These were not getting built under windows. * plat/win32/gpsim.nsi: added pthreadVC.dll to gpsim's windows binary distribution. * doc/gpsimWin32.html: Updated documentation for pthreads. 2004-11-17 Scott Dattalo * src/processor.cc, src/value.cc, src/value.h: made Integer,Float and Boolean values get() and set() their values through just one member function. This allows derived attributes to trap reads and writes to the values. 2004-11-16 Scott Dattalo * src/value.h, src/value.cc, src/processor.h, src/processor.cc, src/pic-processor.cc, src/symbol.h, src/symbol.cc: Added 3 new attributes: SafeMode, WarnMode, and UnknownMode to control the simulator's behavior under certain simulation conditions. Attribute handling has also been enhanced. * cli/parse.yy, cli/cmd_help.cc, cli/cmd_help.h: Help command will display information about attributes. 2004-11-15 Scott Dattalo * src/ioports.h, src/ioports.cc, src/16bit-registers.cc: Beginning to redesign I/O ports. 2004-11-14 Scott Dattalo * src/i2c-ee.cc, src/ioports.cc, src/ioports.h, src/stimuli.cc, src/uart.cc: The usart has bitrotted. The relatively recent I/O pin changes broke this and probably other peripherals too. * modules/Makefile.am: added new files. * modules/pthread-wrap.h, modules/ttoken.cc, modules/ttoken.h: The token class provides co-routine support for modules. * modules/bitlog.cc, modules/bitlog.h, modules/bytelog.cc, modules/bytelog.h: Bit and Byte event loggers. bitlog was originally part of the uart module. * modules/usart.cc, modules/usart.h: removed the bit logger class and am now making an attempt to resurrect this code. 2004-11-10 Scott Dattalo * cmd/cmd_break.cc: updated the help description for 'break' * src/operator.cc, src/symbol.h, src/symbol.cc: Allow registers to be type-cast into integers. 2004-11-10 Scott Dattalo * gui/gui_breadboard.cc: * src/breakpoints.cc, src/gpsim_object.cc, src/gpsim_object.h, src/modules.cc, src/processor.cc, src/registers.cc, src/registers.h, src/symbol.cc, src/symbol.h: - More attribute enhancements - added a module load capability that uses attributes. 2004-11-08 Scott Dattalo * cli/cmd_attach.h, cli/cmd_load.cc, cli/cmd_symbol.cc, cli/cmd_symbol.h, cli/command.cc, cli/parse.yy, cli/scan.ll cli/socket.cc: More attibute updates * gui/gui_breadboard.cc, gui/gui_menu.cc, gui/gui_object.cc, gui/gui_profile.cc, gui/gui_regwin.cc, gui/gui_src_asm.cc, gui/gui_stack.cc, gui/gui_statusbar.cc, gui/gui_symbols.cc: - Removed debugging printfs. - Changed attribute handling. * src/cod.cc, src/expr.cc, src/expr.h, src/gpsim_object.cc, src/modules.cc, src/p16x8x.cc, src/pic-processor.cc, src/processor.cc src/stimuli.cc, src/stimuli.h, src/symbol.cc, src/symbol.h, src/tmr0.cc, src/value.cc, src/value.h: - Removed debugging statements - Added the attribute_symbol class. - Added more methods to the derived symbol classes to handle type casting. 2004-11-07 Borut Razem * plat/win32/gpsim.def, plat/win32/gpsim.nsi, src/makefile.mingw, src/src.vcproj: MSVC sync * doc/gpsimWin32.html: updated glib version to 2.4.7, gtk+ version to 2.4.13 2004-11-06 Scott Dattalo * cli/socket.cc, gui/gui_profile.cc, gui/gui_stack.cc, gui/gui_symbol.cc, src/symbol.cc, src/symbol.h, src/value.cc src/value.h: gpsim symbols now support more of the methods of the Value class. 2004-11-05 Scott Dattalo * cli/cmd_clear.cc, cli/cmd_disasm.cc, cli/cmd_set.cc cli/command.cc, cli/scan.ll, gui/gui_breadboard.cc, src/errors.cc src/expr.cc, src/operator.cc, src/value.cc, src/value.h: Cleaned up the Value class. 2004-11-05 Scott Dattalo * src/attribute.h, src/attribute.cc, Makefile.am: Removed attribute.* from gpsim. The class 'Value' has replaced it. 2004-11-04 Scott Dattalo * cli/cmd_break.cc, cli/cmd_log.cc, cli/cmd_symbol.cc, cli/cmd_x.cc, src/attribute.cc, src/cod.cc, src/expr.cc, src/gpsim_classes.h, src/modules.cc, src/modules.h, src/p12x.cc, src/p16f62x.cc, src/p16x5x.cc, src/p16x6x.cc, src/p16x7x.cc, src/p16x8x.cc, src/p18x.cc, src/pic-instructions.cc, src/pic-processor.cc, src/processor.h, src/symbol.cc, src/symbol.h, src/value.cc, src/value.h: - Rearranged class heirarchy so that gpsimValue derives from gpsimObject instead of Value. - Substitued the Value class for those places where the Attribute class is used. * modules/encoder.cc, modules/led.cc, modules/logic.cc, modules/push_button.cc, modules/resistor.cc, modules/switch.cc, modules/usart.cc, modules/video.cc 2004-11-04 Scott Dattalo * regression/create_stc, regression/simulate, src/expr.cc, src/symbol.cc, src/symbol.h, src/value.cc: Regression tests were failing due to recent parser changes. 2004-11-03 Scott Dattalo * cli/parse.yy, cli/scan.ll, src/14bit-registers.cc, src/16bit-instructions.cc, src/16bit-registers.cc, src/breakpoints.cc, src/breakpoints.h, src/expr.cc, src/expr.h, src/icd.cc, src/modules.cc, src/operator.cc, src/operator.h, src/p16x7x.cc, src/pic-instructions.cc, src/pic-instructions.h, src/pic-registers.cc, src/registers.cc, src/symbol.cc, src/symbol.h, src/value.cc, src/value.h: Added command line assignments. Now you can write stuff like: temp1 = temp2 << 4 where temp1 and temp2 are two registers. 2004-11-02 Scott Dattalo * src/attribute.cc, src/attribute.h, src/modules.cc, src/modules.h: cleaned up include dependencies. 2004-11-02 Scott Dattalo * src/gpsim_time.cc, src/gpsim_time.h: Fixed a bug with clearing cycle counter break points. 2004-11-01 Scott Dattalo * src/gpsim_time.cc, src/gpsim_time.h, src/breakpoints.cc, src/ioports.h, src/ioports.cc, src/stimuli.cc, src/tmr0.cc: Interrupts, tmr0 and I/O pins were all broken in some way. * regression/interrupts_14bit.asm, regression/interrupts_14bit.stc: Added regression test for the midrange devices 2004-10-29 Scott Dattalo * src/gpsim_time.cc, src/gpsim_time.h: Cycle counter debugging. 2004-10-20 Scott Dattalo * src/16bit-instructions.cc: Fixed bug in DECF instruction. * regression/instructions_16bit/instructions_16bit.asm: Added decf instruction to the regression test. 2004-10-20 Scott Dattalo * src/ioports.cc, src/ioports.h, src/stimuli.cc, src/stimuli.h: PORTB pullups updated. Added an overloaded update() member to Stimulus_Node that doesn't require time as an input (we never used it anyway). 2004-10-19 Scott Dattalo * src/stimuli.h, src/stimuli.cc, src/ioports.cc, src/i2c-ee.cc: Optimized I/O port stimulus updates. 2004-10-19 Scott Dattalo * src/stimuli.h, src/stimuli.cc: Began adding capitance modelling to stimuli. 2004-10-18 Scott Dattalo * src/gpsim_classes.h, src/registers.h: Added EXTERNAL_RESET and BOD_RESET types. 2004-10-17 Borut Razem * plat/win32/gpsim.def: MSVC sync * src/symbol.cc: fixed gpsim crash on WIN32 in remove_module() 2004-10-13 Scott Dattalo * src/cod.cc: Applied patch from Craig Franklin that adds support for reading .cod file message area. 2004-10-12 Scott Dattalo * src/gpsim_time.cc: Added diagnostic printf's * src/pic-processor.cc, src/pic-processor.h, src/processor.cc, src/processor.h: add an option to not update the gui while single stepping. 2004-10-11 Scott Dattalo * src/cod.cc, src/processor.cc: Applied, but modified, patch from Craig Franklin that brings gpsim up to date with new gputils release. 2004-10-07 Scott Dattalo * gui/gui_breadboard.cc, gui/gui_breadboard.h, gui/gui_menu.cc: Cleaned up the gui breadboard code a little by making the gui_module structure a GuiModule class. In addition, new modules are queued into the breadboard and realized only after the breadboard has been built. 2004-10-07 Scott Dattalo * gui/gui_src_opcode.cc: window was being built before cpu had been initialized. * cli/cmd_disasm.cc, src/processor.cc, src/trace.cc: Disassembling and tracing had wrong addresses for the 18F family (again...) 2004-10-06 Scott Dattalo * gui/gui_src.h, gui/gui_src_asm.cc, gui/gui_src_opcode.cc, gui/gui_statusbar.cc, src/breakpoints.cc: Fixed breakpoint icon refreshing. Also fixed Source browser window creation if either ~/gpsim is missing or the registry hasn't been initialized 2004-10-05 Scott Dattalo * gui/gui_src_asm.cc: Moved the creation of the Search Dialog window out of Build() and into its own function. Changed the behavior of the signal callbacks to conform to GTK+ 2.X 2004-10-04 Scott Dattalo * README, INSTALL: Cleaned up stale documentation. 2004-10-04 Scott Dattalo * cli/input.cc: Send an extra CR to the parser when loading a command file. Turns out that when the gui loads a file, the parser doesn't process it until another CR is seen. 2004-10-04 Scott Dattalo * gui/gui_src_asm.cc, gui/gui_regwin.cc, gui/gui_breadboard.cc: Removed some debugging printfs. * gui/gui_object.cc: With GTK+ 2.2.1 under linux, the gtk_widget_show() was losing the (x,y) position of the window. 2004-10-04 Scott Dattalo * gui/gui_breadboard.cc, gui/gui_breadboard.h: The breadboard expose events invalidated drawing areas which in turn recursively generated expose events. I'm not sure why this code worked with GTK+ 1.x 2004-10-04 Scott Dattalo * gui/gui_breadboard.cc, gui/gui.h, gui/gui_stopwatch.cc, gui/gui_object.cc, gui/gui_main.cc, gui/gui_object.h, gui/gui_profile.cc, gui/gui_regwin.cc, gui/gui_scope.cc, gui/gui_src.h, gui/gui_src_asm.cc, gui/gui_src_opcode.cc, gui/gui_stack.cc, gui/gui_stopwatch.cc, gui/gui_symbols.cc, gui/gui_trace.cc, gui/gui_watch.cc: Work in progress - trying to resolve breadboard start up issues with GTK+ 2.X . 2004-10-03 Borut Razem * config_win32.h.in, plat/win32/configure_win32.awk, cli/cli.vcproj, src/src.vcproj, plat/win32/make.mingw, makefile.mingw, cli/makefile.mingw, gpsim/makefile.mingw, gui/makefile.mingw, modules/makefile.mingw, src/makefile.mingw: added configure_win32.awk script, which takes version number from configure.in and inserts them into config_win32.h.in and generates cofig.h * plat/win32/gpsim.def: MSVC sync 2004-10-01 Scott Dattalo * src/processor.cc, src/processor.h, gui/gui.h, gui/gui_regwin.c gui/gui_asm.cc, gui/gui_src_opcode.c, plat/win32/make.mingw: Stabilizing windows port. Apparently under windows there's a problem if you issue too many gui calls to the GTK library. I found that this can be mitigated by periodically clearing out the gtk event queue. 2004-09-29 Scott Dattalo * cli/input.cc, gui/gui_menu.cc, gui/gui_src_asm.cc, src/modules.h, src/modules.cc, src/processor.cc, src/pic-processor.cc, src/pic-processor.h, src/trace.h plat/win32/gpsim.def: Clean ups to get the Windows port to compile. 2004-09-29 Scott Dattalo * gui/gui_src_asm.cc, src/pic-instructions.cc: Uninitialized variables in the instruction class were causing the source browser to place objects beyond the range allocated to the source browser. This confused GTK+ 2.x. 2004-09-28 Scott Dattalo * cli/cmd_load.cc, cmd/input.cc: Allow loading of filenames with spaces. (note, gpsim's command line interface still does not support this). 2004-09-28 Scott Dattalo * gui/gui_main.cc, gui/gui_menu.cc, gui/gui_object.cc, gui/gui_object.h, gui/gui_regwin.cc, gui/gui_src.h, gui/gui_src_asm.cc, src/gpsim_interface.h, M src/interface.cc: - Fixed a few bugs caused by upgrading to GTK+ 2.x: -- Window state was not being saved -- Register window font was fouled up -- Source browser pixel position calculations are different There are still some other bugs that need to be fixed: -- The breadboard window somehow prevents the Source browser window from opening -- Q no longer quits -- scrolling in source browser only works if the scroll pane has focus -- The register window cheats in guessing character width. 2004-09-24 Scott Dattalo * src/processor.cc: save_state() was skipping address 0. * src/registers.cc: Bit string encoding has been enhanced 2004-09-15 Scott Dattalo * gui/gui_regwin.h, gui/gui_regwin.cc: max allowable registers is 64k (used to be 4k) * gui/gui_src_asm.cc: improperly initialized instructions were causing a core dump. 2004-09-19 Borut Razem * configure.in: gpsim is configured to link with GTK+ 2.x by default. Use --enable-gtk1 for linking with GTK+ 1.x (deprecated). 2004-09-15 Scott Dattalo * gui/gui_regwin.cc, gui/gui_src_asm.cc: Fixed ranging checks. 2004-09-15 Scott Dattalo * src/processor.cc, src/processor.h, src/pic-processor.cc: getWriteTT and getReadTT used to return TraceType objects, but now they return unsigned ints. 2004-09-15 Scott Dattalo * src/processor.cc, src/trace.cc, gui/gui_src_opcode.cc: - 18f processors' addresses were off by a factor of two in disassembly operations. 2004-09-14 Borut Razem * cli/cli.cvproj, src/src.vcproj, plat/win32/gpsim.def: MSVC sync * cli/makefile.mingw, src/makefile.mingw: MinGW sync * plat/win32/gpsim.nsi: corrected revision number to 0.22.3 2004-09-14 Scott Dattalo * regression/p12ce518/p12c518.asm, regression/p12ce518/p12c518.stc, regression/p12ce518/EEdriver.asm: Added a regression test for the 12ce518. * src/stimuli.cc, src/i2c-ee.cc, src/ioports.cc, src/stimuli.h, src/14bit-registers.cc: Fixed stimuli so that the 12CE518 internal EEPROM would work. 2004-09-13 Scott Dattalo * src/i2c-ee.cc, src/i2c-ee.h, src/ioports.cc, src/p12x.cc, src/stimuli.cc, src/stimuli.h: Partially check in for work on the 12ce518 bug (internal I/O pins). 2004-09-12 Scott Dattalo * cli/Makefile.am, cli/errors.cc, cli/errors.h: * src/Makefile.am, src/errors.cc, src/errors.h: Moved errors.* from cli/ to src/ * src/expr.cc, src/operator.cc, cli/cmd_disasm.cc, cli/cmd_set.cc, cli/cmd_x.cc, cli/command.cc, cli/command.h, cli/parse.yy, cli/scan.ll: Updated the directory path for including errors.h. 2004-09-12 Borut Razem * cli/cli.cvproj, src/src.vcproj, plat/win32/gpsim.def: MSVC sync * cli/makefile.mingw, src/makefile.mingw, gpsim/makefile.mignw: MinGW sync 2004-09-11 Scott Dattalo * configure.in: Bumped the Revision up to 0.22.3 since there have been *so* many changes. * cli/expr.h, cli/expr.cc, cli/operator.cc, cli/operator.h: - moved to the src/ directory * src/expr.h, src/expr.cc: copied from the cli/ directory * src/Makefile.am, cli/Makefile.am * src/symbol.h, src/value.h, src/symbol.cc, src/value.cc: - It turns out that gpsim's symbols are essentially identical to the value objects that were recently added to support expression parsing. Since expressions need to handle symbols too, I decided to make the Value class a base class for gpsimValue. Now, much of what has been written for expressions will naturally handle many of gpsim fundamental types. * src/pic-processor.cc, src/pic-processor.h, src/eeprom.cc, src/eeprom.h, src/14bit-registers.cc: The W register, eeprom, and option register states were not saved during a processor 'save_state()' call. * src/p12x.cc: internal 12ce518 i2c module was not connected correctly. * cli/cmd_clear.cc, cli/cmd_disasm.cc, cli/cmd_frequency.cc, cli/cmd_log.h, cli/cmd_macro.cc, cli/cmd_module.h, cli/cmd_set.cc, cli/cmd_step.cc, cli/cmd_stimulus.h, cli/cmd_symbol.cc, cli/cmd_trace.cc, cli/cmd_trace.h, cli/cmd_x.cc, cli/command.cc, cli/command.h: Updated the paths to the include files that have moved 2004-09-08 Scott Dattalo * cli/cmd_x.cc, cli/expr.cc, cli/expr.h, cli/operator.cc, cli/operator.h, cli/parse.yy, cli/scan.ll: - Added command line comparison expressions. * src/pic-processor.cc, src/pic-registers.cc, src/symbol.cc, src/symbol.h, src/value.cc, src/value.h: - Added support for a generic symbol type. - Added the pic PC object to the symbol table. * regression/digital_stim/digital_stim.stc: The new expression parsing introduced a grammer conflict that requires a stimulus data list to be expressed differently. 2004-09-08 Scott Dattalo * src/14bit-registers.h, src/14bit-tmrs.h, src/breakpoints.cc, src/breakpoints.h, src/eeprom.h, src/gpsim_interface.h, src/gpsim_time.cc, src/gpsim_time.h, src/i2c-ee.h, src/p16x7x.h, src/pic-processor.cc, src/processor.cc, src/processor.h, src/ssp.h, src/stimuli.cc, src/stimuli.h, src/tmr0.h, src/trace.h, src/uart.h gui/gui_profile.cc, modules/encoder.h, modules/paraface.h modules/usart.cc: Started adding Triggers and Actions. * regression/run_regression.sh: Added the digital_stim regression test to the list of tests to run. 2004-09-07 Scott Dattalo * src/stimuli.cc, src/stimuli.h, cmd_x.cc, cmd_stimulus.cc: Digital asynchronous stimuli were not getting the proper voltage data values. Enhanced the asynchronous stimulus by making the data array an array of C++ objects instead of a type casted structured. 2004-09-06 Scott Dattalo * examples/14bit/analog_stim2.stc, examples/14bit/ap.stc, examples/14bit/async_pulse.stc, examples/14bit/async_stim2.stc, examples/14bit/dtmf.stc, examples/12bit/gpio_stim.stc: - Updated the asynchronous stimulus syntax in all of the example startup scripts 2004-09-05 Scott Dattalo * src/ioport.cc, src/stimuli.cc: Applied patch from Robert Pearce regarding I/O Pins and stimuli Fixed a couple more issues with I/O pins and contention. 2004-09-02 Borut Razem * cli/socket.cc: read complete line before procesing, support for different line endings (LF, CR-FL) * cli/cmd_macro.cc: enable compilation on VS 7.1 2004-09-02 Scott Dattalo * cli/cmd_macro.cc: Clarified the help description for the macro command. 2004-09-02 Scott Dattalo * cli/cmd_macro.cc, cli/cmd_macro.h, cli/scan.h, cli/scan.ll: Completed support for parameterized macros 2004-09-02 Scott Dattalo * cli/cmd_macro.cc, cli/cmd_macro.h, cli/input.cc, cli/parse.yy, cli/scan.ll: Added support for parameterized macros. This is not completed 2004-09-02 Borut Razem * cli/input.cc, cli/socket.cc: socket port to WIN32 * gpsim/gpsim.vcproj, cli/cli.vcproj, cli/makefile.mingw, gpsim/makefile.mingw: added cmd_macro.* and socket.cc to the project, wsock32.lib dependency 2004-09-01 Scott Dattalo * cli/parse.yy: Fixed a bug that caused old versions of bison to choke. 2004-09-01 Scott Dattalo * cli/cmd_macro.cc, cli/input.cc: Converted the LLInput struct into a class. Now, the macro command can invoke a macro and redirect it's output to the parser stream. * src/trace.cc, src/trace.h: Added the ProcessorTraceObject to the TraceObject heirarchy. Now, TraceObjects no longer store info about a processor. (Thus modules can be processor agnostic.) 2004-09-01 Scott Dattalo * src/p16x5x.cc: The 16C55 processor was only declaring a package of 18 pins (instead of 28). 2004-08-31 Scott Dattalo * cli/cmd_macro.cc, cli/cmd_macro.h: Added the 'macro' command. * cli/Makefile.am, cli/parse.yy, cli/command.cc, cli/scan.ll: Parser now calls the gpsim command cmd_macro. 2004-08-31 Scott Dattalo * cli/scan.ll, cli/parse.yy: Added language support for macro definitions. (although, macros are not yet supported). 2004-08-29 Borut Razem * plat/win32/gsim.def, cli/makefile.migw, src/makefile.migw, cli/cli.vcproj, src/src.vcproj: updated * cli/errors.h, cli/scan.ll: corrected include paths * plat/win32/gpsim.nsi: gpsom.pdf included in WIN32 setup * doc/gpsimWin32.html: gtk+ 2.4.7 2004-08-27 Scott Dattalo * src/breakpoints.cc, src/gpsim_object.cc, src/gpsim_object.h, src/modules.cc, src/modules.h, src/pic-processor.cc, gui/gui_src_asm.cc, gui/gui_statusbar.cc: The Module class was overriding functionality provided in the gpsimObject class. This caused problems for external processors (That is, processors not a part of gpsim). 2004-08-26 Scott Dattalo * src/gpsim_object.cc, src/gpsim_object.h: New files that support the gpsimObject class. This is a base class for almost all gpsim objects. * cli/viewable.cc, cli/viewable.h: Removed. The functionality that was provide by these was moved to gpsimObject. * src/Makefile.am, src/modules.h, src/registers.cc, src/registers.h, src/symbol.cc, src/value.cc, src/value.h, cli/Makefile.am, cli/cmd_x.cc, cli/command.cc, cli/command.h, cli/expr.cc, cli/expr.h, cli/parse.yy: Added the gpsimObject Meta class. Added support for symbolically viewing registers with the 'x' command. Added support for viewing a range of registers. 2004-08-26 Scott Dattalo * src/stimuli.cc, src/symbol.cc, src/symbol.h, gui/gui_profile.cc, gui/gui_stack.cc, gui/gui_symbols.cc cli/scan.ll: The symbol class is now derived from the gpsimValue class. This change allows some of the recent enhancements created for other things to be applied to symbols as well. * examples/14bit/p16c64_pwm.stc, examples/14bit/portc_stim.stc: The PWM module was crashing. I'm not sure why, but I think what actually was happening that the example stc file was just broken. 2004-08-25 Scott Dattalo * cli/cmd_trace.cc, src/14bit-registers.cc, src/trace.cc, src/trace.h: Removed a stale option to the trace command and added a new option that will allow the decode trace buffer to be saved to a file. 2004-08-25 Manuel Bouyer * src/stimuli.cc: fixed bug in finding the node voltage when 3 or more stimuli are attached to a node. 2004-08-24 Scott Dattalo * src/stimuli.cc: Attaching three or more stimuli to one node caused gpsim to hang. 2004-08-24 Manuel Bouyer * src/stimuli.cc: Fixed iopin stimulus update. 2004-08-24 Scott Dattalo * cli/cmd_attach.cc, cli/cmd_attach.h, cli/cmd_symbol.cc, cli/cmd_symbol.h, cli/expr.cc, cli/expr.h, cli/parse.yy, cli/scan.ll, src/stimuli.cc, src/stimuli.h, src/symbol.h: The attach command can now accept a list of symbols. Also, Nodes and stimuli are now added to the symbol table whenever they're constructed. 2004-08-19 Scott Dattalo * src/processor.cc: writeTT and readTT were not initialized in Processor constructor. 2004-08-18 Scott Dattalo * src/registers.cc, src/registers.h, src/symbol.cc, src/symbol.h, src/trace.cc, src/trace.h, cli/cmd_symbol.cc, cli/cmd_symbol.h, cli/expr.cc, cli/expr.h, cli/parse.yy, cli/scan.ll: More improvements to tracing. Added some more symbolic command line processing. 2004-08-16 Scott Dattalo * src/trace.cc, src/trace.h: CVS was broken. 2004-08-16 Scott Dattalo * src/intcon.cc, src/intcon.h, src/processor.h, src/trace.cc src/trace.h, src/value.h: Trace stuff *** CVS is broken at the moment but will be fixed within 3 hours of the time stamp of this change 2004-08-14 Borut Razem * plat/win32/gpsim.nsi: small changes * doc/gpsimWin32.html: documented GCC compilation 2004-08-13 Scott Dattalo * src/14bit-processors.cc, src/14bit-registers.cc, src/14bit-registers.h src/14bit-tmrs.cc, src/16bit-registers.cc, src/eeprom.cc, src/intcon.cc, src/ioports.cc, src/p16x7x.cc, src/pic-processor.cc, src/pic-registers.cc, src/pie.cc, src/pir.cc, src/processor.cc, src/processor.h, src/registers.cc, src/registers.h, src/ssp.cc, src/tmr0.cc, src/trace.cc, src/trace.h, src/uart.cc: More Tracing. 2004-08-11 Scott Dattalo * src/trace.cc, src/trace.h, src/processor.cc, src/pic-processors.cc src/value.h, src/value.cc, src/registers.h, src/registers.cc, 14bit-registers.cc: More trace stuff. 2004-08-10 Borut Razem * plat/win32/gpsim.nsi: packaging of examples, extras, ... * plat/win32/gpsim.def: updated exports * extras/lcd/lcd.cc, extras/lcd/lcdengine.cc, extras/lcd/lcdgui.cc, extras/lcd/module_manager.cc: define IN_MODULE for modules, calling accessor methods for global objects * modules/makefile.mingw, modules/modules.vcproj: removed unneeded define MODULES_EXPORTS 2004-08-09 Scott Dattalo * src/14bit-registers.cc, src/14bit-registers.h, src/14bit-tmrs.cc, src/16bit-registers.cc, src/attribute.cc, src/eeprom.cc, src/intcon.cc src/ioports.cc, src/modules.cc, src/p16x7x.cc, src/pie.cc, src/pir.cc src/registers.cc, src/ssp.cc, src/tmr0.cc, src/trace.cc, src/trace.h src/uart.cc, gui/gui_breadboard.cc, modules/led.cc, modules/paraface.cc modules/resistor.cc,modules/usart.cc: Continuing this ongoing trace experiment. 2004-08-09 Scott Dattalo * src/trace.cc, gpsim/main.cc: more experimental code * src/attribute.cc, src/attribute.h, gui/gui_breadboard.cc: Some annoying bug with attributes that I can't figure out. Problem appears when shared libraries are disabled. 2004-08-06 Scott Dattalo * src/processor.cc, src/processor.h, src/registers.h, src/trace.cc: Partial implementation of trace reconstruction. 2004-08-04 Scott Dattalo * src/14bit-registers.cc, src/16bit-processors.cc, src/16bit-registers.cc src/p12x.cc, src/p16f62x.cc, src/p16f87x.cc, src/p16x5x.cc, src/p16x6x.cc src/p16x7x.cc, src/p16x8x.cc, src/p18x.cc, src/pic-processor.cc, src/pic-processor.h, src/processor.cc, src/processor.h, src/registers.cc src/registers.h, src/tmr0.cc, src/trace.cc, src/trace.h, gui/gui_regwin.cc cli/cmd_trace.cc: Two categories of changes have been made: First, the unitialized register concept has been propogated to all of the register constructions. Second, tracing has been improved yet again. 2004-08-04 Borut Razem * plat/win32/gpsim.nsi: packaging of MinGW executables * gpsim/gpsim.vcproj: cleanup * plat/win32/make.mingw, cli/makefile.mingw, gpsim/makefile.mingw, gui/makefile.mingw, modules/makefile.mingw, src/makefile.mingw: do not define NDEBUG to enable assertions in release version 2004-08-02 Borut Razem * gui/gui_breadboard.cc, gui/gui_menu.cc, src/hexutils.cc, src/interface.cc, src/packages.cc, src/xref.cc: reverted unneeded changes * config_win32.h.in, plat/win32/fd2raw.cpp: ifdefed MSVC specifics * cli/input.cc, src/pic_processor.cc: corrected the sequence of includes 2004-08-01 Borut Razem * makefile.mingw, cli/makefile.mingw, gpsim/makefile.mingw, gui/makefile.mingw, modules/makefile.mingw, src/makefile.mingw, plat/win32/make.mingw: added mingw (cygwin -mno-cygwin) gcc WIN32 native makefiles * config_win32.h.in, gui/gui_breadboard.cc, gui/gui_menu.cc, src/hexutils.cc, cli/input.cc, src/interface.cc, src/packages.cc, src/pic_processor.cc, plat/win32/uxtime.h, src/xref.cc: changes to enable mingw (cygwin -mno-cygwin) gcc WIN32 native compilation * src/modules.cc: added initialization of widget Module class member * plat/win32/glist.cpp: corrected line formatting 2004-07-31 Borut Razem * plat/win32/gpsim.def: updated exports * acinclude.m4, src/breakpoints.cc, cli/input.cc: small cleanups 2004-07-29 Scott Dattalo * src/14bit-instructions.cc, src/16bit-instructions.cc, src/pic-instructions.cc, src/pic-registers.cc, src/trace.cc, src/trace.h: The newly rewritten trace printing code was broken. The good news is that while fixing it, I found a way to save a little simulation time by not tracing the instruction opcodes. 2004-07-29 Scott Dattalo * src/ioports.cc, src/ioports.h, src/modules.cc, src/registers.cc, src/registers.h, src/stimuli.cc, src/stimuli.h: Minor stimuli bug fixes, commenting and general cleanup. * cli/cmd_trace.cc, src/trace.cc, src/trace.h, src/trace_orb.h, src/pic-registers.cc, src/processor.cc, src/processor.h: Rewrote the trace printing code. 2004-07-24 Borut Razem * plat/win32/gpsim.def: updated exports * plat/win32/gpsim.nsi: don't cd when running gpsim * doc/gpsimWin32.html: XHTML 1.0 compliant, snapshots at a separate page 2004-07-22 Scott Dattalo * src/stimuli.cc, modules/resistor.cc, modules/resistor.h: Bug fixes to the recent I/O pin redesign 2004-07-22 Scott Dattalo * src/14bit-tmrs.cc, src/breakpoints.cc, src/breakpoints.h, src/i2c-ee.cc, src/ioports.cc, src/ioports.h, src/p16x7x.cc, src/p16x7x.h, src/packages.cc, src/pic-processor.h, src/processor.cc, src/processor.h, src/registers.cc, src/registers.h, src/ssp.cc, src/stimuli.cc, src/stimuli.h, src/uart.cc, modules/binary_indicator.cc, modules/binary_indicator.h, modules/led.cc, modules/led.h, modules/logic.cc, modules/logic.h, modules/paraface.cc, modules/paraface.h, modules/resistor.cc, modules/resistor.h, modules/usart.cc, modules/video.cc, modules/video.h: Rewrote the way stimuli are handled. Before, gpsim only used a single parameter (more or less) to represent the state of an stimulus. Now, two parameters are used. Currently, these parameters are designated as the voltage and impedance. Before, the single parameter was somewhat similar to a current. 2004-07-20 Scott Dattalo * src/stimuli.h, src/stimuli.cc: added input leakage modelling to I/O pins. 2004-07-19 Scott Dattalo * src/pic-processor.cc, src/pic-processor.h, src/pic-registers.cc, src/processor.h, src/processor.cc, gui/gui_statusbar.cc, gui/gui_stopwatch.cc, modules/usart.cc, cli/cmd_frequency.cc: Added new member functions to the Processor class to simplify handling time. 2004-07-17 Borut Razem * plat/win32/gpsim.def, src/src.vcproj, src/i2c-ee.cc: small fixes for MSVC compilation 2004-07-16 Scott Dattalo * gui/gui_statusbar.h, gui/gui_statusbar.cc: Now the status bar can accept an arbitrary of registers to display. * src/16bit-processors.cc, src/processor.h: Added BSR to the list of registers viewable in the status bar. * cli/cmd_trace.cc, cli/cmd_trace.h, cli/parse.yy, src/trace.cc: The trace raw option was broken. 2004-07-15 Scott Dattalo * cli/input.cc, cli/socket.cc, gui/gui_main.cc: The newly created gpsim socket interface now uses GLib GIOChannels instead of Pthreads. 2004-07-14 Scott Dattalo * gui_break.cc, gui_main.cc, gui_processor.cc, gui_processor.h, gui_regwin.cc gui_regwin.h, gui_src.h, gui_src_asm.cc, gui_src_opcode.cc, gui_statusbar.cc, gui_statusbar.h: Finished abstracting the gui status bar. Added a status bar to the source viewer. * 14bit-registers.cc, 14bit-registers.h, 14bit-tmrs.h, 16bit-processors.cc, Makefile.am, eeprom.h, intcon.h, ioports.cc, ioports.h, p12x.cc, p12x.h, p16f62x.cc, p16x5x.cc, p16x6x.cc, p16x8x.cc, pic-processor.cc, pic-processor.h, pic-registers.cc, pic-registers.h, pie.h, pir.h, processor.cc, processor.h, registers.h: Cleaned up some stale code. Added a MemoryAccess class and made it the base class to the RegisterMemoryAccess and ProgramMemoryAccess classes. 2004-07-14 Robert Pearce * src/i2c-ee.cc, src/i2c-ee.h, src/Makefile.am: New files that support an i2c peripheral * src/p12x.cc, src/p12x.h, src/pic-processor.h, src/pic-processor.cc: Added the 12CE518 and 12CE519 processors. * src/ioport.cc: Fixed an ambiguity in the ioport trace logic. 2004-07-13 Scott Dattalo * gui/gui_statusbar.cc: abstracting the status bar boxes. * src/pic-registers.cc: cross reference to Program Counter was broken. * src/processor.h, src/processor.cc: Added a set_PC method to the pma class 2004-07-12 Scott Dattalo * gui/gui_statusbar.cc: abstracting the status bar boxes. * examples/scripts/gensquares.asm, examples/scripts/testgensquares.py, examples/scripts/testgensquares.py: Script testing 2004-07-12 Scott Dattalo * cli/socket.cc: dinking around... * examples/scripts/testsocket.py: 2004-07-09 Scott Dattalo * cli/socket.cc: Added a very thin object layer to the socket interface * examples/scripts/testsocket.py: added to the repository. This is a simple python script that will exercise all of the commands that gpsim will accept through a socket interface. 2004-07-08 Scott Dattalo * gui/gui_main.cc, cli/socket.cc, cli/input.cc, configure.in: Added support for multithreading. * TODO: cleaned up the TODO list a little by removing some outdated items. 2004-07-08 Manuel Bouyer * src/16bit-registers.cc, src/16bit-registers.h: Added put() and update_pin_directions() methods for the PORTC16 class 2004-07-07 Scott Dattalo * cli/socket.cc: New file * cli/input.cc: init_gpsim() will now create a socket. Added a Socket class that is capable of creating a socket and accepting commands. * src/registers.h: added an option to fetch the RegisterValue object without causing a trace to be emitted. 2004-07-06 Borut Razem * gui/settings.h, gui/settings_exdbm.h, gui/settings_exdbm.cc, gui/gui.h, plat/win32/settings_reg.h, plat/win32/settings_reg.cpp, gui/gui.vcproj, gui/Makefile.am: added additional layer to hide differences between eXdbm and WIN32 registry * store settings in registy on WIN32 2004-07-03 Borut Razem * plat/win32/gpsim.ico, plat/win32/gpsim.nsi: created NSIS setup script 2004-07-02 Scott Dattalo * gpsim/input.cc, gui/gui_menu.cc: Now files are correctly loaded through the menu interface (File/Open) * cli/parse.yy, cli/scan.ll, cli/operator.cc, cli/operator.h: Added new binary operators: -,*,/,&,^,<<,>> 2004-07-02 Scott Dattalo * gpsim/main.cc: Emit warning if a user specifies both a .hex file and a .cod file at the command line. 2004-06-30 Scott Dattalo * plat/win32/gpsim.def: Added additional export definitions. * cli/cmd_clear.cc: type casting fixes. * src/breakpoints.h: added get_bp accessor function for the global bp (breakpoint) object * src/gpsim_time.h: now uses the bp accessor function. * src/processor.cc: If the listing file is not present, gpsim will not crash now... 2004-06-30 Scott Dattalo * gpsim/main.cc, cli/input.cc: Starting gpsim in cli only mode would cause a crash. 2004-06-30 Borut Razem * plat/win32/gpsim.def: small fix for MSVC compilation 2004-06-28 Scott Dattalo * cli/parse.yy, cli/misc.h, cli/cmd_symbol.cc, src/symbol.cc: Removed 'NUMBER' and 'FLOATING_NUMBER' types from the CLI parser. Now all numbers are represented by expressions. All commands that used to numbers have been converted over to use expressions. 2004-06-28 Scott Dattalo * cli/cmd_module.cc, src/modules.h, src/modules.cc, gui/gui_breadboard.cc: Module positioning now works again. 2004-06-27 Scott Dattalo * gui/gui_breadboard.cc: From Ralph, the breadboard was not using module pixmaps. * cli/cmd_module.cc, cli/cmd_module.h, cli/command.cc, cli/parse.yy: cli module command now supports expressions. 2004-06-27 Borut Razem * gpsim.sln: set project dependency - modules depends on gpsim * gpsim/gpsim.vcproj: corrected Ignore Specific Library settings * doc/gpsimWin32.html: added to CVS 2004-06-24 Scott Dattalo * cli/cmd_break.cc, cli/cmd_break.h, cli/cmd_log.cc, cli/cmd_log.h, cli/cmd_stimulus.h, cli/command.cc, cli/command.h, cli/expr.cc, cli/expr.h, cli/parse.yy,cli/scan.ll: The 'break' and 'log' commands now accept expressions 2004-06-24 Borut Razem * plat/win32/fd2raw.cpp, plat/win32/fd2raw.h: functions to set the WIN32 console to raw mode. * cli/input.cc: call functions to set WIN32 console to raw mode * gui/gui.vcproj: added fd2raw.cpp and fd2raw.h to the project * cli/cli.vcproj: added errors.cc and errors.h to the project 2004-06-23 Scott Dattalo * cli/Makefile.am, cli/cmd_attach.cc, cli/cmd_attach.h, cli/cmd_bus.cc, cli/cmd_bus.h * cli/cmd_clear.cc, cli/cmd_clear.h, cli/cmd_disasm.cc, cli/cmd_disasm.h, * cli/cmd_frequency.cc, cli/cmd_frequency.h, cli/cmd_node.cc, cli/cmd_node.h, * cli/cmd_set.cc, cli/cmd_set.h, cli/cmd_step.cc, cli/cmd_step.h, * cli/cmd_stimulus.cc, cli/cmd_stimulus.h, cli/cmd_trace.cc, cli/cmd_trace.h, * cli/cmd_x.cc, cli/command.cc, cli/command.h, cli/expr.cc, cli/expr.h, * cli/input.cc, cli/misc.h, cli/operator.cc, cli/operator.h, cli/parse.h, * cli/parse.yy, cli/scan.ll * gpsim/main.cc, gui/gui_breadboard.cc, src/processor.cc, * src/processor.h, src/stimuli.cc Rewrote the command parser and added expression parsing. * cli/errors.cc, cli/expr.cc, cli/operator.cc, cli/viewable.cc, cli/errors.h, cli/expr.h, cli/operator.h, cli/viewable.h: New files for expression parsing. 2004-06-16 Borut Razem * plat/win32/gpsim.def, gui/gui_src_asm.cc, src/symbol.cc, src/symbol.h: small fixes to enable compilation on MSVC 2004-06-15 Scott Dattalo * more pedantic fixes 2004-06-14 Scott Dattalo * more pedantic fixes (mostly in cli) 2004-06-14 Scott Dattalo * tons of pedantic fixes (and there are many more needed). 2004-06-14 Scott Dattalo * aclocal.m4, configure.in The AC_DEFINE macro was incompletely defined. * acconfig.h: removed from CVS * INSTALL: updated installation instructions for CVS checkouts * doc/gpsim_cvs.html: Added to the CVS 2004-06-12 Borut Razem * cli/viewable.cc: #warning not recognised by MSVC * eXdbm/eXdbm.vcproj, gui/gui.vcproj, modules.vcproj: new project files for GUI support * gpsim.sln, gpsim/gpsim.vcproj, cli/cli.vcproj, src/src.vcproj: GUI support * plat/win32/gpsim.def, plat/win32/modules.def: WIN32 def files for DLL modules support * plat/win32/glist.cpp: added g_win32_error_message() for --disable-gui * cli/input.c: define gpsim_rl_getc() only if defined HAVE_READLINE && defined HAVE_GUI 2004-06-09 Scott Dattalo * cli/expr.cc, cli/expr.h, cli/viewable.h, cli/viewable.cc, cli/operator.h, cli/operator.cc: New files to support parsing * cli/parse.yy, cli/scan.ll: added new parsing and lexing rules for expression parsing. * src/stimuli.cc: Manuel Boyer found and fixed a bug where the a named stimulus was ignoring its newly assigned name. 2004-06-09 Scott Dattalo * cli/parse.yy, cli/scan.ll, cli/misc.h, cli/cmd_stimulus.cc, cli/command.h Cleaned up the parser by removing the explicit YYABORT and YYACCEPT macros. Also, redesigned the parser implementation of the stimulus command. 2004-06-03 Scott Dattalo * examples/12bit/it_12bit.asm: removed * regressions/instructions_12bit/instructions_12bit.asm: added * regressions/instructions_12bit/instructions_12bit.stc: added Now the 12bit core has a regression test. 2004-06-05 Scott Dattalo * src/eeprom.cc: The eeprom memory access object was not getting initialized. * src/stimuli.cc: applied patch from Manuel Boyer. The IO_open_collector was duplicating the base class' job of setting the pin name. 2004-06-02 Scott Dattalo * cli/cmd_break.cc, src/processor.cc: 18fxxx addressing was broken. (the divide by 2 issue for the 18f addressess was not being handled correctly.) 2004-06-01 Scott Dattalo * src/value.h: Made the string &name() member function in the gpsimValue class virtual. 2004-05-31 Scott Dattalo * almost all files: Since the Register class and the Instruction class are now derived from gpsimValue, all objects that use registers and instructions have to change. These changes have been propogated through gpsim. Next, the gui will start taking advantage of the abstractness that this change introduces. * src/16bit-instructions.cc, src/14bit-instructions.h: Manuel Boyer reported two bugs with the 16bit subwf instruction. He fixed one (N-bit was ignored) with a patch and I fixed the other (OV bit was ignored). 2004-05-27 Scott Dattalo * src/value.h, src/value.cc: New files that support abstract values. * src/register.h, src/pic-instructions.h: Now all base objects that have values are derived from the new gpsimValue object. 2004-05-27 Scott Dattalo * src/breakpoints.h, src/breakpoints.cc: Execution breakpoints now support a customizable message that will be displayed when the break is encountered. 2004-05-21 Scott Dattalo * src/processor.cc, src/register.h, register.cc, gui/gui_register.h, gui/gui_regwin.c: Gui Register Window now can show unitialized register data. 2004-05-21 Scott Dattalo * src/register.h: Added new accessor member functions to the Register class to manipulate the new way register values are represented. 2004-05-20 Scott Dattalo * Tons of files... Changed the Register class' 'unsigned int value' field to an object. The get() and put() accessor functions now provide read and write access. 2004-05-20 Scott Dattalo * gui/gui_src_asm.cc: Syntax highlighting now is only applied to lines that are associated with generated code. 2004-05-16 Scott Dattalo * src/processor.h, src/processor.cc: Added mapping between program memory and source file line numbers 2004-05-16 Scott Dattalo * gui/gui_src.h, src/gui_src_asm.cc: Fixed memory leak with 'canbreak' XPM. Added 'SourcePage' class to hold information about a source browser notebook page. Corresponding info in 'SourceBrowserAsm_Window'. Added a new member to the sa_entry structure to keep track of pixmaps. 2004-05-15 Scott Dattalo * src/pic-processor: If the simulation is started from an address that has an execution break, now gpsim will ignore that break. * xpm/canbreak.xpm: New xpm that's used to indicate source lines that will accept breakpoints. * gui/gui_src.h, gui/gui_src_asm.h: Added 'canbreak' XPM to the source browser lines that can accept break points. NOTE: this code currently leaks memory! 2004-05-12 Manuel Bouyer * src/16bit-instructions.cc, src/p18x.cc, src/p18x.h, src/pic-instructions.cc, src/pic-processor.cc, src/pic-processor.h: Fix usart problems in 18x devices. * src/pir.cc, src/pir.h, src/uart.cc, src/uart.h: Fix usart bugs. (Changes were submitted as a patch and applied by Scott). 2004-05-15 Scott Dattalo * src/xref.h, xref.cc: added get_value() member function to XrefObject class * gui/gui.h, gui/gui_break.cc, gui/gui_main.cc, gui/gui_processor.cc, gui/gui_regwin.cc, gui/gui_regwin.h, gui/gui_statusbar.cc: Converted the structure labeled_entry into a class and renamed it to LabeledEntry. * gui/gui_statusbar.h: Added. 2004-05-12 Scott Dattalo * cli/scan.ll: Identifiers can now contain dashes. 2004-05-12 Scott Dattalo * src/stimuli.cc: bi-directional I/O pins were not working properly with modules. * src/processor.cc: removed debug printf stuff * src/ioports.cc: IOPORT class was using a hardcoded number of pins 2004-04-27 Borut Razem * cli/input.cc, gui/gui_main.cc: fixes to make working of CLI & GUI in parallel 2004-04-22 Borut Razem * modules/binary_indicator.cc modules/binary_indicator.h modules/encoder.cc modules/encoder.h modules/gpsim_modules.cc modules/led.cc modules/led.h modules/logic.cc modules/logic.h modules/paraface.cc modules/paraface.h modules/push_button.cc modules/push_button.h modules/resistor.cc modules/resistor.h modules/switch.cc modules/switch.h modules/usart.cc modules/usart.h modules/video.cc modules/video.h: defined IN_MODULE symbol for modules, call get_interface(), get_cycles(), get_active_cpu(), get_symbol_table(), get_trace(void) accessor methods instead direct object access 2004-04-21 Borut Razem * src/gpsim_interface.h, src/gpsim_time.h, src/processor.cc, src/symbol.cc, src/trace.cc: create instances of inline methods by taking theirs address, so that they can be accessed from dynamic loadable modules 2004-04-19 Scott Dattalo * modules/binary_indicator.cc, modules/encoder.cc, modules/gpsim_modules.cc, modules/led.cc, modules/logic.cc, modules/paraface.cc, modules/push_button.cc, modules/resistor.cc, modules/switch.cc, modules/usart.cc, modules/video.cc: Fixed ambiguous (to read, but still syntactically correct) references to "new_name". * src/breakpoints.h, src/breakpoints.cc: added a post assertion option to the register assertions. 2004-04-18 Borut Razem * src/14bit-registers.h, src/gpsim_interface.h, src/gpsim_time.h, src/processor.h, src/symbol.h, src/trace.h: introduced get_interface(), get_cycles(), get_active_cpu(), get_symbol_table(), get_trace(void) accessor methods * config_win32.h.in: defined GPSIM_MAJOR_VERSION, GPSIM_MINOR_VERSION and GPSIM_MICRO_VERSION symbols 2004-04-15 Scott Dattalo * src/14bit-tmrs.cc, src/ioports.cc, src/ioports.h: PORTC's T1OSC input can clock TMR1 on some PIC's. I've added some preliminary support for this. 2004-04-14 Scott Dattalo * gui/gui_break.cc, gui/gui_menu.cc, gui/gui_profile.cc, gui/gui_src_asm.cc, gui/gui_src_opcode.cc, gui/gui_stack.cc, src/16bit-registers.cc, src/breakpoints.cc, src/cod.cc, src/eeprom.cc, src/ioports.cc, src/ioports.h, src/pic-processor.cc, src/processor.cc, src/processor.h, src/trace.cc: Made the processor's ProgramMemoryAccess class dynamically allocated. * src/Makefile.am: ssp.h was not part of the install. 2004-04-14 Scott Dattalo * src/14bit-tmrs.cc: The TMR2 peripheral failed to properly clear its breakpoint whenever it was being turned off. *src/modules.h: string.h was not getting included. 2004-04-13 Scott Dattalo * src/breakpoints.cc, src/breakpoints.h: Redesigned breakpoints so that a) they're more object oriented and b) more easily extensible. * src/interface.cc, src/gpsim_interface.h: Removed the CyclicBreakPoint class and moved the functionality it was providing into the gpsimInterface class * src/14bit-registers.h, src/14bit-tmrs.h, modules/usart.cc, cli/cmd_set.cc, src/eeprom.h, src/gpsim_time.cc, src/gpsim_time.h, src/p16x7x.h, src/pic-processor.cc, src/processor.cc, src/processor.h, src/ssp.h, src/stimuli.cc, src/stimuli.h, src/tmr0.h, src/trace.h, src/uart.h, gui/gui_profile.cc, modules/encoder.h, modules/paraface.h,: Removed the BreakCallBack class. The functionality it was providing is now implemented by the BreakpointObject class. 2004-04-11 Borut Razem * src/interface.cc: added initialization of interface_seq_number in gpsimInterface constructor. 2004-04-07 Scott Dattalo * src/breakpoints.h, src/breakpoints: Adding assertion type breakpoints and redesigning the whole Breakpoint class. 2004-04-07 Bert Driehuis * extras/lcd/lcd.cc: reference was made to a no-longer existing API * extras/lcd/module_manager.cc: contained comments which were out of date, that hampered readability. * src/modules.cc: will not load two shared extension modules, if the first does not have an "initialize" routine. As a side effect of debugging this one, the error reporting of the dynaloader has been expanded. The trick turned out to be to clear pre-existing error conditions with a dummy call to dlerror(). An alternative implementation would call dlerror in an else clause when loading "initialize" fails, but doing it like this patch does it has the advantage of also dealing with like errors in libraries gpsim might use. For a similar situation, look up "not a typewriter" and "perror" in Google. - did not immediately fail when incomplete linking conditions exist. By changing to RTLD_NOW, a bad dynamic module will be detected at load time rather than at run time. *** this will break broken modules out there that until now appeared to have worked *** 2004-04-04 Arthur Peters * src/Makefile.am, src/ssp.cc, src/ssp.h: Added SSP support to gpsim. * src/14bit-processors.h, src/ioports.cc, src/ioports.h, src/p16f87x.cc, src/p16x6x.cc, src/p16x6x.h, src/p16x7x.cc, src/p16x8x.cc, src/pir.cc, src/14bit-processors.h, src/pir.h: Added SSP support to gpsim. 2004-04-04 Borut Razem * modules/encoder.cc, modules/gpsim_modules.cc, modules/paraface.cc, modules/push_button.cc, modules/switch.cc, modules/video.cc: modules port on WIN32 2004-04-03 Borut Razem * src/stimuli.cc: fixed warning C4715: 'IOPIN::get_iop' : not all control paths return a value: IOPIN::get_iop() returns 0 in case that iopp and iop are NULL 2004-04-01 Scott Dattalo * modules/resistor.cc, modules/resitor.h: Several member functions in the resistor classes were declared, but not defined anywhere. * src/pic-instructions.h, src/breakpoints.h, src/breakpoints.cc: adding assertions to the simulator. * src/processor.cc, src/processor.h, gui/gui_src_asm.cc: Source browser windows can now get a unique name. 2004-03-30 Scott Dattalo * numeous files throughout gpsim: The Module class now uses a string type instead of a 'char *' for the module name. Also, the gui x and y coordinate were removed from the module class (I still want to remove the 'widget' member too). * modules/usart.cc: calls to the old gpsim api were still lingering around here. * gui/gui_src_asm.cc, gui/gui_src.h, src/processor.h: more browser splitting stuff. 2004-03-29 Borut Razem * src/modules.cc: support of external modules on WIN32 2004-03-25 Scott Dattalo * gui/gui_src_asm.cc: Now we can load hex files again. 2004-03-25 Bert Driehuis * extras/lcd/lcdengine.cc, extras/lcd/lcdengine.cc, extras/lcd/lcd.h, extras/lcd/lcdgui.cc, extras/lcd/examples/lcd.asm: Added support for CGRAM in the LCD module. 2004-03-25 Scott Dattalo * src/processor.h, src/processor.cc: Added pma_context list * gui/Makefile.am: Recently added .h files are now in the Makefile * gui/gui_src.h, gui/gui_src_asm.cc: Multiple source browsers are now created based on the number of pma_contexts * gui/gui_object.h, gui/gui_src_asm.cc, gui/gui_breadboard.cc, gui/gui_main.cc, gui/gui_profile.cc, gui/gui_regwin.cc, gui/gui_scope.cc, gui/gui_src.cc, gui/gui_src_opcode.cc, gui/gui_stack.cc, gui/gui_stopwatch.cc, gui/gui_symbols.cc, gui/gui_trace.cc, gui/gui_watch.cc: The GUI_Object 'name' member has been changed from a char * to a private string and is now no longer directly accessed by the derived classes. New methods set_name() and and name() control the access. 2004-03-24 Scott Dattalo * gui/gui_src_asm.cc, gui/gui_src.h: Added BreakPointList class to handle the 3 lists of breakpoints. Removed duplicate code too. 2004-03-23 Borut Razem * src/modules.cc: gpsim on WIN32 doesn't support modules yet * gui/gui_breadboard.cc: GTK+ 2.x port 2004-03-22 Scott Dattalo * gui/gui_src.cc: Changed the event key processing from a case statement to a C++ map object. 2004-03-22 Scott Dattalo * gui/gui.h, gui/gui_breadboard.h, gui/gui_object.h, gui/gui_processor.h, * gui/gui_profile.h, gui/gui_register.h, gui/gui_regwin.h, gui/gui_scope.h, * gui/gui_src.h, gui/gui_stack.h, gui/gui_stopwatch.h, gui/gui_symbols.h, * gui/gui_trace.h, gui/gui_watch.h: Finished the gui split started on 03-16. Added support for multiple source browsers (to be used with context debugging). 2004-03-22 Chris Emerson * modules/encoder.cc, modules/encoder.h: new files: added an encoder module * modules/Makefile.am: Added the encoder to the list of files. * gpsim/main.cc: gracefully revert to cli if gtk_init fails. * src/ioports.cc: remove PORTA debug message. 2004-03-17 Scott Dattalo * gui/gui.h, gui/gui_breadboard.h, gui/gui_object.h, gui/gui_processor.h, * gui/gui_profile.h, gui/gui_register.h, gui/gui_regwin.h, gui/gui_scope.h, * gui/gui_src.h, gui/gui_stack.h, gui/gui_stopwatch.h, gui/gui_symbols.h, * gui/gui_trace.h, gui/gui_watch.h Split gui.h into a bunch of separate include files. 2004-03-16 Scott Dattalo * gui/gui_regwin.cc, gui/gui.h: abstracted the width of registers 2004-03-15 Scott Dattalo * src/modules.h, src/modules.cc: Removed the "ExternalModule" class * modules/binary_indicator.cc, modules/gpsim_modules.cc, modules/led.cc, modules/logic.cc, modules/paraface.cc, modules/push_button.cc, modules/resistor.cc, modules/switch.cc, modules/usart.cc, modules/video.cc, extras/lcd/lcd.h, extras/lcd/lcd.cc Now the modules are no longer "external". 2004-03-14 Bert Driehuis * extras/lcd/lcdengine.cc, extras/lcd/lcd.h, extras/lcd/examples/lcd.asm: Fixed the LCD modules "E" logic. 2004-03-13 Robert Pearce * src/16f87x.cc, src/16f87x.h, src/pic-processor.cc, src/pic-processor.h: Added 16f871. 2004-03-09 Scott Dattalo * src/16bit-instructions.cc, src/trace.cc: Addresses displayed for the 18F devices are now displayed properly. 2004-03-09 Scott Dattalo * src/14bit-processor.cc: PCL (low byte of program counter) was one count too large. 2004-03-09 Scott Dattalo * src/processor.cc, src/processor.h, src/pic-processor.cc, src/pic-processor.h: Moved the implementations of the disasm() and list() methods from the pic_processor class to the processor class. 2004-03-09 Scott Dattalo * src/pic-instructions.h, src/12bit-instructions.h, src/stimuli.h, src/14bit-instructions.h, src/14bit-instructions.h, src/16bit-instructions.h, src/16bit-instructions.cc: changed references of pic-processor to Processor. 2004-03-08 Scott Dattalo * modules/push_button.cc, modules/push_button.h: new module from Carlos Ghirardelli. 2004-03-04 Scott Dattalo * src/register.h, src/pic-register.h, src/pic-processor.h, src/pic-processor.cc, src/14bit-registers.cc Removed the "file_register" class. Moved the sfr_register class to register.h. 2004-03-04 Scott Dattalo * src/processor.h, src/processor.cc, src/cod.cc: Added the new meber 'Find()' to the 'Files' class. 2004-03-03 Bert Driehuis * /extras/rs232-gen/rs232.c: Now compiles under BSD 2004-03-03 Scott Dattalo * gui/gui_profile.cc, gui/gui_src_asm.cc, src/cod.cc, src/icd.cc, src/pic-processor.cc, src/processor.cc, src/processor.h Removed references to "processor_id". Changed name of _Files to Files in the Processor class. 2004-03-01 Bert Driehuis * regression/run_regression.sh, regression/simulate: Fixes to allow regression tests to run on BSD 4.9. 2004-03-01 Bert Driehuis * extras/lcd/lcd.cc: Bring the LCD module up-to-date with recent gpsim changes 2004-03-01 Bert Driehuis * acinclude.m4, cli/input.cc: Fix readline support for BSD 4.9 2004-03-02 Scott Dattalo * src/pic-processor.cc: fixed a memory allocation bug in the FileContext class; an array was one element too small. * examples/modules/led_test, examples/modules/led_test/led_mod.asm, examples/modules/led_test/led_mod.asm: Added the LED test code to CVS. * modules/gpsim_modules.cc, modules/led.cc: LED module now works. 2004-03-01 Bert Driehuis * src/icd.cc: include time.h for BSD 2004-03-01 Scott Dattalo * modules/* - Updated the (internal) modules to comply with the new gpsim interface standard * dozens of files: -- removed all references to 'pic_id' -- changed pic_processor references to Processor references 2004-02-29 Borut Razem * src/eeprom.cc: initialization of variable eestate in EECON2::EECON2(void) by calling ee_reset() 2004-02-28 Borut Razem * config_win32.h.in : strtoll defined as _strtoi64, removed definition of atoll, version number updated to 0.21.2 * gui/gui.h, gui/gui_stopwatch.cc: prevent calling Update() from Update(). The problem manifested on GTK+ 2.x on Linux and WIN32. * gui/gui_breadboard.cc, gui/gui_regwin.cc, gui/gui_src_asm.cc, gui/gui_src_opcode.cc: GTK+ 2.x port - use pango font handling * examples/14bit/pulse_measure.asm: variable upper renamed to _upper; upper is an assembler instruction operand in gpasm and mpasm 2004-02-28 Scott Dattalo * gui/gui_main.cc, gui/gui_menu.cc, gui/gui_processor.cc: Inhibit the half-baked gui_scope. 2004-02-27 Scott Dattalo * src/pic-processor.cc, src/interface.cc, src/interface.h, src/init.cc, src/icd.cc, src/cod.cc, src/breakpoints.cc, gui/gui_main.cc, gpsim/main.cc, cli/input.h, cli/input.cc, cli/cmd_x.cc, cli/cmd_run.cc, cli/cmd_dump.h, cli/cmd_dump.cc: The gpsim library, which is the code comprised of everything in the src/ subdirectory, now has no dependencies on the gui or cli code base. This makes it possible to link against just libgpsim. 2004-02-25 Scott Dattalo * gui/gui_stopwatch.cc, extras/rs232-gen/rs232-gen.c: changed all references of atoll to strtoll. bug 820326 2004-02-25 Hans-Juergen Dorn * src/16bit-registers.cc: gpsim was pushing onto the stack before decrementing the stack pointer. Also, the gpsim internally formatted address was being pushed. 2004-02-17 Scott Dattalo * gui/gui_scope.cc: expose and resizing kind of work. 2004-02-17 Scott Dattalo * gui/gui_scope.cc: taking off the rough edges. 2004-02-16 Scott Dattalo * gui/gui_scope.cc: - new file that will support a simple waveform viewer. * gui/Makefile.am: add the gui_scope.cc to the list * gui/gui_regwin.cc: Check for null pointers * gui/gui_symbols.cc: Check for null pointers * src/pic-processor.cc, src/p16x5x.h, src/p12x.h, src/p12x.cc, src/14bit-registers.h, src/14bit-registers.cc, src/14bit-processors.cc, src/12bit-processors.h, src/12bit-processors.cc Added FSR_12 - a new class for the 12-bit core. I also redesigned the way FSR and INDF interact. * src/p18x.cc - the 18f252 package pins weren't defined. 2004-02-13 Scott Dattalo * src/processor.cc, src/processor.h, src/pic-processor.cc, src/cod.cc: Support for new file context * gui/gui_src_asm.cc, gui/gui_profile.cc: Use the new file context code. 2004-02-12 Scott Dattalo * src/interface.cc, src/interface.h: Finally, the C-style interface is gone (or nearly gone). * src/processor.cc, src/processor.h, src/cod.cc Redesigning the "file_context" object. * gui/gui_watch.cc, gui/gui_profile.cc: Removed final traces of the old C-style interface. 2004-02-11 Scott Dattalo * gui/gui_symbols.cc: - changed strndup to a strcpy (plus malloc...): 2004-02-11 Scott Dattalo * gui/* changed calls to gpsim_* to the C++ interface. * src/interface.cc - removed many of the gpsim_* functions * src/stimuli.cc, cli/cmd_set.cc - changed calls to gpsim_* to the C++ interface. 2004-02-10 Scott Dattalo * src/processor.cc, src/processor.h, src/pic-processor.cc, src/pic-processor.h: Added step, run, and finish members to the ProgramMemoryAccess class * src/interface.cc, gui/gui* removed more gpsim_* functions from interface.cc 2004-02-10 Scott Dattalo * gui/gui_symbol.cc, src/symbol.h, src/symbol.cc Cleaned up symbol api. 2004-02-09 Scott Dattalo * all files! 'NULL' has been replaced with '0' throughout all of gpsim. The reason is two-fold: 1) MAC users were having trouble compiling 2) Stroustrup says NULL shouldn't be used in C++ :). 2004-02-08 Scott Dattalo * src/processor.cc, src/processor.h, gui/gui_src.cc, gui/gui_src_asm.cc, gui/gui_break.cc: Fixed 'ProgramMemoryAccess' class for the 18f devices * src/16bit-processors, src/p18x.cc: Removed some debug stuff * extras/lcd/*: Changed the LCD module from version 0.2.0 to 0.2.1 2004-02-06 Scott Dattalo * tons of files changed... Removed 'break_point' member from the Register class Changed the mechanism for checking how a break point is set on a register. * gui/gui.h, gui/gui_watch.cc, gui/gui_regwin.cc: modified GUIRegister class to adopt to changes made in the break point stuff. Also add rma member for getting access to processor registers. 2004-02-05 Scott Dattalo * src/pic-processor.h Fixed a nasty, nasty bug. The "GP_Processor" pointer in the pic_processor class was conditionally compiled. However the condition (HAVE_GUI) occurs in the include file config.h. Now the bug is that config.h was not included in all cases. Some classes were derived from pic_processor with this definition while others weren't. Syntactically, everything was okay. But the compile had the conflicting information for the size of pic_processor class. * src/* - whole bunch of other files touched while looking for this bug. 2004-02-04 Scott Dattalo * src/processor.cc Experimenting with operator [] for the ProgramMemoryAccess class. 2004-02-02 Scott Dattalo * src/intcon.*, src/processor.*, src/16bit-processor.* Fixed the weird bug that was discussed in the 2004-01-30 entry. The problem was basically invalid type casting. In the processor class heirarchy, there are about 5 or 6 levels of inheritance. Most of the time gpsim accesses a processor's details through one of the base classes. Sometimes though, an object needs access to somthing specific to a processor. In these cases, gpsim would type cast a pointer to the specific processor. The bug is that you can't safely type cast a base class object into a derived class object in C++. 2004-01-30 Scott Dattalo * almost all source files - still trying to sort out include dependencies. There's a weird bug where gcc is adding an extra 4-byte offset to pointers in some instances. I have no clue why... 2004-01-29 Scott Dattalo * almost all source files - trying to sort out include dependencies 2004-01-28 Scott Dattalo * src/pir.h moved all of the PIR*::put()'s to the PIR base class * src/intcon.h, src/intcon.cc moved inline functions that called bp and trace objects from the header file to the .cc file. * src/pir.cc new file - added so that inline functions that called bp and trace objects could be removed from the header file. * src/Makefile.am added pir.cc to the list of src files. 2004-01-26 Scott Dattalo * src/* gui/* Replaced references to 'file_register' with 'Register'. Removed many gpsim_*() calls. Renamed the program_memory_access class to ProgramMemoryAccess. Moved processor member functions associated with code breakpoints into the ProgramMemoryAccess class. 2004-01-26 Scott Dattalo * src/register.h, src/register.cc, src/pic-register.h, src/pic-processor.h, src/14bit-registers.cc cleaned up some include file dependencies. moved the program counter class. 2004-01-23 Scott Dattalo * src/trace.cc, src/trace.h: added boolean event logger * src/intcon.cc, src/16bit-*: Debugging an interrupt problem with the 16-bit core 2004-01-22 Scott Dattalo * gui/gui*.cc: converted the cross_reference_to_gui structure into the CrossReferenceToGUI class. * src/pir.h: fixed default names of the PIR registers * regression/p16f873/p16f873.asm: added 2004-01-20 Scott Dattalo * gui/gui_regwin.cc, gui/gui_src_asm.cc, gui_watch.cc: Changed gpsim_* api calls to their direct counterparts * src/interface.cc, src/interface.h: Removed obsolete API's * src/breakpoints.cc (clear_all_register): added * cli/input.cc: fixed memory leak. * doc/gpsim.lyx: updated documentation with recent CLI changes 2004-01-18 Borut Razem * configure.in: added --enable-gtk2 configure command line option for linking with GTK+ 2.x 2004-01-17 Borut Razem Update to GTK+ 2.x: * config_win32.h.in: version 0.21.1, updated #defines * cli/cmd_load.cc, cli/input.cc, cli/input.h: char * replaced with const char *, removed unneeded #include * gui/gui.h, gui/gui_breadboard.cc, gui/gui_break.cc, gui/gui_dialog.cc, gui/gui_menu.cc,gui/gui_object.cc, gui/gui_profile.cc, gui/gui_regwin.cc, gui\gui_src.cc, gui/gui_src_asm.cc, gui/gui_src_opcode.cc, gui/gui_stack.cc, gui/gui_statusbar.cc, gui/gui_stopwatch.cc, gui/gui_symbols.cc, gui/gui_trace.cc, gui/gui_watch.cc: char * replaced with const char *, GdkFont replaced with PangoFontDescription, GtkStyle replaced with GtkStyle *, #define GTK_ENABLE_BROKEN, #include replaced with #include , update for GTK+ 2.x * src/cod.cc, src/interface.cc, src/interface.h, src/modules.cc, src/modules.h, src/p16x5x.cc, src/pic-processor.cc, src/pic-processor.h, src/processor.h, src/stimuli.cc, src/stimuli.h, src/symbol.cc, src/symbol.h, src/trace.cc, src/trace.h: char * replaced with const char *, __PRETTY_FUNCTION__ replaced with __FUNCTION__ * modules/binary_indicator.cc, modules/binary_indicator.h, modules/led.cc, modules/led.h, modules/logic.cc, modules/logic.h, modules/paraface.cc, modules/paraface.h, modules/resistor.cc, modules/resistor.h, modules/switch.cc, modules/switch.h, modules/usart.cc, modules/usart.h, modules/video.cc, modules/video.h: char * replaced with const char *, 2004-01-06 Scott Dattalo * gui/gui_regwin.cc -- valgrind memcheck bug fixes * src/cod.cc * src/registers.cc 2004-01-06 Scott Dattalo * src/p16x5x.cc - patch from Rob Pearce that fixes the 16C5X tris writes. 2004-01-05 Scott Dattalo * src/14bit-tmrs.cc - tmr2 bug. PWM period was getting ANDed with 0xff. 2004-01-03 Scott Dattalo * Applied patch from Borut Razem - adds new files to Visual Studio project files. 2004-01-03 Scott Dattalo * Applied patch from Bradley McLean mailto:bradlist@bradm.net that adds support for the 18f1320. * Applied patch from Mike Durian that fixes an 18f SUB instruction. 2003-12-31 Scott Dattalo * Applied patch from Mike Durian. He's added several files to more reasonably group together portions of the simulator. In addition, he's added eeprom support to the 18f devices * src/eeprom.cc - new file to consolidate eeprom related stuff * src/intcon.cc - new file to consolidate variations in intcon registers * src/pie.cc - new file for pie register * src/intcon.h * src/pir.h * src/pic-instructions - fixed bug in 18f banking * src/16x5x.h - 16c54 register memory size was wrong * gui/gui_stopwatch.cc - added a check to make sure there's a processor * gui/gui_src*.cc - removed reference to cpu->pc->get_value() 2003-12-28 Scott Dattalo * another patch from Borut Razem: * cli/input.cc: - added function get_dir_delim(), which searches for both / and \ delimiters on WIN32 systems. - fixed bug in gpsim_read(): logic for deallocating input_buf was moved out of 'if (chars_left > 0)' block. - some code cleaning, some compiler warnings fixed * cli/input.h: - added declarations of exit_gpsim() and get_dir_delim() * gpsim/main.cc: - removed declaration of exit_gpsim(), now included in cli/input.h * src/14bit-registers.cc: - deallocation of name_str1 is already done in ~Register(). * cod.cc: - included cli/input.h for declaration of get_dir_delim() - substr() replaced with get_string(), which gets the string from .cod file. strings in .cod file are represented as: - first byte defines the string length - the string starts at the second byte. - read_src_files_from_cod(): conversion to DOS file name - open_cod_file() opens .cod file in binary mode * src/pic-instructions.cc: - initialize xref to NULL if HAVE_GUI not defined * src/processor.cc, * src/processor.h: - static pointer to the processor_list 2003-12-27 Scott Dattalo * patch from Borut Razem for Visual Studio projects 2003-11-29 Scott Dattalo * src/pic-processor.cc - rewrote the way gpsim groups together all of the processors it supports. Now the ProcessorConstructor class will allow processors to be instantiated anywhere in the code (before, they were declared in one giant array.) 2003-11-29 Scott Dattalo * src/16bit-registers.cc - Access to PLUSWx are now signed. 2003-11-28 Scott Dattalo * gui/* - More C to C++ conversions * gui/gui_menu.cc - Patch from Alex Holden to enable compilation on a MAC * src/icd.cc * INSTALL - added instructions for MAC OS 2003-11-24 Scott Dattalo * gui/* First round of struct to class conversion is now completed 2003-11-20 Scott Dattalo * src/ioports.cc - PORT B pullups were not working * regression/* - Added some more regression tests 2003-11-16 Scott Dattalo * gui/* More conversions to C++ 2003-11-15 Scott Dattalo * gui/* started converting gui struct's into C++ classes. Started with Register Window. 2003-10-26 Scott Dattalo * src/gpsim-time.cc linked-list bug fixes. 2003-10-26 Scott Dattalo * eXdbm/* applied patch from Borut Razem mailto:borut.razem@siol.net to fix an uninitialized pointer bug. 2003-10-26 Scott Dattalo * modules/* removed all references to gui if not building with the gui 2003-09-24 Scott Dattalo (patches from Steve Tell) * modules/paraface.h - Solaris patch for bogus device * src/cod.cc - Endian bug * gui/gui_processor.cc - use memset instead of bzero. 2003-09-14 Scott Dattalo * src/gpsim_time.h - changed cycle counter break point from a Singly linked list to a doubly linked list. This is in preparation for separating module time from pic processor time so that when the PIC goes to sleep, time doesn't stop. 2003-09-07 Scott Dattalo * src/p16f62x.h - duplicate declaration of intcon register 2003-09-07 Scott Dattalo * src/breakpoints.cc - this time the 'Too many cycle counter breakpoints' was fixed. BTW the problem was that 'clear_break' was not putting the cleared breakpoint back into the 'inactive' list 2003-09-07 Scott Dattalo * src/pic_processor.cc -- Fixed the "Too many cycle counter breakpoints" bug * src/interface.cc It turns out that the "realtime" stuff was * src/breakpoints.cc 1) duplicating a class declaration. 2) not clearing * src/breakpoints.h cycle counter break points. * gpsim.sln - added for win32 port. 2003-08-30 Scott Dattalo * src/p12x.cc -- The 12c5xx will reset if an I/O is toggled and the processor is sleeping. 2003-08-27 Scott Dattalo * config_win32.h.in - added 2003-08-25 Scott Dattalo * src/ioports.cc - more 16f628 Port A fixes 2003-08-19 Scott Dattalo * eXdbm/parse.c - "char" is used to store result of fgetc, but EOF doesn't fit in the default unsigned chars. * src/cod.cc - an endian issue which made symbol values come out wrong. - note these fixes came from a patch attached to an anonymous bug report 2003-08-18 Scott Dattalo * src/ioports.cc - Port A on the F62x devices was named "ioport" * src/p16f62x.cc - intcon was not declared at 0x8b (bug 566165) * regression/p16f628.asm - Added a regression test for the f68 * regression/p16f628.stc 2003-08-17 Scott Dattalo * regression/* started the regression test directory. Only two tests are performed: instruction validation for the midrange family and a simple node test. 2003-08-17 Scott Dattalo * Huge patch from Borut Razem mailto:borut.razem@siol.net that enables gpsim to be compiled with MS Visual C under Windows. 2003-06-19 Scott Dattalo * src/gpsim_time.h Multiple breaks at one Cycle were getting clobbered. * src/gpsim_time.cc * src/16bit-registers.cc Added support for TMR3 * src/pic-processor.h add pll_scale for the 18f devices. 2003-05-25 Scott Dattalo * src/breakpoints.cc program memory break points were not working. * Started formatting the Changelog properly gpsim - Gnu Pic Simulator, a simulator for Microchip's PIC microcontrollers. T. Scott Dattalo gpsim-0.21.0 * Starting with 0.21.0, Changelog will be properly formatted * Added 18f454,18455 * Added breakpoint capability on nodes * Added spi Module * Added attributes to external usart module * Ralf rewrote the Breadboard * gui is now in C++ * Added 16f627,16f628 processors * log command has been added (Command Line) * Profiling has been added (gui) * Trace viewer has been added * Added parport - parallel port loadable module * Source level debugging of C files * Added 16c55,16c62,16c63,16c72,16c73 processors * Added 18c442,18c452 processor * Added module attibutes (attribute.cc) * breadboard updates when either a tris or port is changed in the register viewer * Enhanced module interface - now LCD module works with gpsim * Patch from Rudy Moore to fix TMR0 bug * Beautified the Single Step and Trace dump outputs * Added break on stack overflow and underflow * Added break mask to wv/rv type break points. Now you can specify which bits are significant. * Added "abort_gpsim_now" command. This will unconditionally abort gpsim. * Added "--cli" command line option. Invokes gpsim in command line mode even if it has been configured to use the gui. * Program viewer can now display ASCII encode text in "dt" tables * Symbolic setting of execution breaks was not working. * C++ bugs fixed * Fixed WDT during SLEEP bug reported by Tor Fredrik Aas mailto:tfa@abn.hibu.no * USART baud rates were generated incorrectly and have been fixed. * TXIF was handled improperly (reported by Wojciech Zabolotny ) * TMR1 was incrementing even when disabled (Reported by Wojciech) * Patch from JG for Suse 7.1. * Patch from Robert Pearce to add 16C55 * Sleep now works for 12c5xx. * Config word now works for 12c5xx * GPIO can wake a sleeping 12c5xx * Added pullup/pulldown resistors to the gpsim modules (idea from SET) * Numerous patches from from (SET) Salvador mailto:salvador@inti.gov.ar * SET - added "frequency" command * SET - Added time field to the gui status bar. * Carlos Nieves Ónega - Massive patch for the 17cxx core * Carlos Nieves Ónega - Registers for 17cxx core * From Salvador Eduardo Tropea mailto:salvador@inti.gov.ar * Modified: In gpsim/main.cc put a cast in poptGetContext call, but perhaps is a fault in the version I use of popt, double check it. * Added: gtk_window_set_wmclass calls to help Enlightenment to remmember the positions of the windows. * Added: In gui/gui_main.c a couple of #undef to avoid redefinitions in eXdbm.h. Also check if that's OK for the eXdbm you are using. * Modified: Moved the INTCON register from _14bit_18pins class to child classes. That's because I needed to inherit from it and P16X6X_processor and both defines INTCON. I also think things are more clear in this way. * Fixed: A bug in the A/D routines. If you started a conversion at the same time you were enabling the A/D this conversion was aborted. To fix it I transfered new_value to value before calling start_conversion(). * Added: Partial support for 16C712 and 16C716 CPUs, they inherit from 14bits 18pins processors because they have 18 pins and also from 16x6x because they have TMR1, TMR2 and Capture/Compare facilities like in 16C63. I could check it deeply, just the A/D part. I also didn't implement the DATACCP and TRISCCP registers, I don't know how they work, but I think they control the use of some I/O pins (normal or CCP function). 28JUL00 gpsim-0.20.0 o Modules - gpsim now supports dynamically loaded modules -- module command o gui - upgraded to latest versions of gtk & gtkextra o gui - Menu items now work o gui - button bar o gui - now refreshes while simulating o gui - Stack Window has been added o BSD is now supported o numerous bug fixes 05APR00 gpsim-0.19.0 o Daniel Schudel joins gpsim development. -- Added support for the 16x5x family o Added 16f87x family o gui - Added Program Memory sheet -- Added support for program memory writes o gui - Added Breadboard window (graphical pinout) o Asynchronous mode of the usart fixed. o A/D converter enhanced o Analog Stimuli revisited. o Scripting was fixed. o cli - Once again, gpsim can be built without the gui. 03FEB00 gpsim-0.18.0 o cli - added 'processor pins' command to display the state of a pic's I/O pins o cli - added 'set' command for modifying gpsim behavior flags. set options supported: -- verbose - if set, diagnostic info will be displayed -- radix - not supported yet -- gui_update - controls the rate at which the gui is refreshed o cli - added 's' option to the dump command to display only the special function registers (and not the rest of ram). o 18cxxx: -- TBLRD & TBLWT instructions are now supported -- MULLW & MULWF instructions are now supported -- configuration word support -- tmr0 interrupt o Cycle counter - 64 bits is now fully supported o config word bug fixed o gui - added Watch window o gui - added more color coding to register window o gui - removed stagnant menu selections o gui - window state is saved between gpsim sessions -- This requires a new package `eXdbm'. o getopt is now used to process invocation options (now you can have spaces between the options and file names). o support >64k object code in .cod files o gtksheet has been removed from the distribution -- This means that you'll have to install gtk+-extra, the package that supports gtk-sheet (see INSTALL) o .cod file format bug fixes (you'll need the latest gpasm) o __config word for 18cxxx family is now supported 16NOV99 gpsim-0.17.0 o gui - Major overhaul of Register Window o gui - Symbol window added o 18Cxxx -- Interrupts are now supported -- TMR0 is implemented -- USART asynchronous mode is supported o automake is now used to create the makefiles o version numbering has changed so that 'minor releases' (which by definition are the only ones I've made) are now expressed in the middle revision instead of the last revision number. o numerous bug fixes o Cycle counter is now 64 bits. gpsim-0.0.16 o 18Cxxx core has been added o Ralf Forsberg has joined me in development. His major contributions have been in the gui code. Some of what he's done: - Wrote a new source browser with these features: -- Syntax highlighting (e.g. opcodes and comments are colored differently) -- Iconic indicators (e.g. bitmaps indicating breaks, current pc...) -- Multiple sources - Significant restructuring of the gpsim to gui interface 28JUL99 gpsim-0.0.15 o gui - asm source browser o gui - program memory browser o gui - register viewer enhancements o gui - control menu o numerous bug fixes 30JUN99 gpsim-0.0.14 o gui o numerous bug fixes 25APR99 gpsim-0.0.13 o Split the command line interface from simulator - created a `src' directory for the simulator - created a `cli' directory for the command line interface o Re-wrote the cli to use bison and flex (whew - whatabitch) o Hi-Tech C-compiler .cod files can be loaded by gpsim now. o Fixed C++ errors that egcs abhored but gcc ignored. 08MAR99 gpsim-0.0.12 o Added support for .cod files (mostly in cod.cc) o Added more symbolic debugging features o Added 'list' command for listing source files o Updated the 'load' command for loading .cod files o Repeat last command with carriage return o Added more documentation 10JAN99 gpsim-0.0.11 o Added support for the PIC16C74 o Fixed core dumps associated with the 12C50x (again, dammit) o Fundamentally changed the way registers are created. o Added a 'config' script 20DEC98 gpsim-0.0.10 o Added support for the PIC16C71 o Enhanced the asynchronous stimulus to support analog values o Added a triangle_wave stimulus (mainly for testing) o Changed the behavior of 'run' to ignore a breakpoint if there is one set at the current instruction (see below) o Added a few examples illustrating the use of analog stimuli 07DEC98 gpsim-0.0.9 o Added support for the 12c508 and 12c509 o Bug Fixes: - DC bit wasn't updated correctly in add's and sub's (if W was the destination) - stack was rolling over after 7 pushes - goto's and call's were limited to 10 bits o Added the command line option '-v' and the command version. Both echo gpsim's version. o Enhanced 'it.asm' and added 'it_12bit.asm' - two routines that exercise gpsim's ability to simulate the pic instructions. o Added a trace for skipped instructions (before you'd see skipped instructions the same as non skipped ones in the trace buffer). 16NOV98 gpsim-0.0.8 o Fixed pcl related bugs (see the new pcl_test.asm for examples) o Implemented the TMR2 peripheral o Implemented the CCP1 and CCP2 peripherals o Implemented the TMR1 peripheral o added more support for the PIC16C64 o began support for the PIC16C65 o fixed the configuration word loading that got broke in the last release 21OCT98 gpsim-0.0.7 o added new command 'processor' o added new command 'load' - Startup command files can now be loaded any time and can be nested. o added new command 'symbol' o added new command 'reset' o redesigned the pic processor base class o added new file p16x8x o added support for the PIC16CR83, PIC16CR84, PIC16F83, PIC16F84 o added new file p16x6x o added support for the PIC16C61 o began support for the PIC16C64 o Changed the command line invocation: -p now selects a processor and not a core (e.g. -p14 used to be the way gp sim liked to select a device within the midrange, 14-bit family; now you must specify the specific device you wish to simulate: -pp16c61 .) o Generally overhauled everything in anticipation of supporting the 12-bit core 30SEP98 gpsim-0.0.6 o now can asynchronously halt the execution. o Multiplexed I/O pins are now supported (better). It's possible to clock TMR0 from an external clock now o The c84 is now fully supported - though not thoroughly debugged o I fixed two nasty cycle breakpoint bugs, single-stepping during a pending interrupt, and a couple of other minor annoyances. o I've begun formal documentation, but it is not included with this release. 18SEP98 gpsim-0.0.5 o added new command 'node' o added new command 'attach' o redesigned the stimulus infrastructure. o added 'name' option to stimuli o iopins are now considered stimuli 04SEP98 gpsim-0.0.4 o added new command 'stimulus' o added new command 'echo' o redesigned the breakpoint mechanism for register breaks o added support for startup configuration files o began support for stimulus files o began support for symbols o interrupts are working 28AUG98 gpsim-0.0.3 o added support for interrupts o TMR0 and WDT are now working o added new command 'x' for examining/modifying registers o added a 'break wdt' - break on wdt timeout o now you can step over a breakpoint 17AUG98 gpsim-0.0.2 o added readline library and made the command line interface more robust o eeprom is now working 30JUL98 gpsim-0.0.1 o initial release - basic stuff