gnupic: gpsim-0.21.4
Subject:
gpsim-0.21.4
From:
Scott Dattalo ####@####.####
Date:
30 Apr 2005 01:18:56 +0100
Message-Id: <4272CED3.7010907@dattalo.com>
I've created tarballs and RPM's for gpsim-0.21.4:
http://www.dattalo.com/gnupic/gpsim.html
http://www.dattalo.com/gnupic/gpsim-0.21.4.tar.gz
In addition, I created RPM's for gtk+extra too. So if you install these
in the order shown, you'll have both gtk+extra and gpsim installed.
http://www.dattalo.com/gnupic/gtk+extra2-1.1.0-1.i386.rpm
http://www.dattalo.com/gnupic/gtk+extra2-devel-1.1.0-1.i386.rpm
http://www.dattalo.com/gnupic/gpsim-devel-0.21.4-1.i386.rpm
http://www.dattalo.com/gnupic/gpsim-0.21.4-1.i386.rpm
Changes:
--------
Even though gpsim development may've appear to have slowed, there have
over 80 changes this year:
http://cvs.sourceforge.net/viewcvs.py/gpsim/ChangeLog?rev=1.373&view=log
Most of the changes have been made to gpsim's infrastructure and won't
be readily apparent. For example, it's now possible to reload a
simulation without having to exit gpsim. Poor memory handling made this
impossible before. Other mundane changes like class restructuring have also
Some of the more significant new features include:
- Expressions and breakpoints
You can now type expressions at gpsim's command line. This feature has
been around for quit a while, but a recent enhancement has been the
addition of breakpoint expressions. You can now associate an expression
with a breakpoint. For example, suppose you have two variables v1 and
v2. It's possible to do something like:
gpsim> break w v1 (v2>42 && v2 <50)
This first part is the normal write breakpoint that gpsim has always
supported. However, the expression at the end is an addition condition
that must be satisfied before the break occurs. In this particular
instance, if v2 has to be in a certain range while write to v2 occurs,
then gpsim will halt.
Along these lines, gpsim's "rv" and "wv" options have been deprecated.
You used to could write:
gpsim> break wv temp1 0x0f 0x04
This meant to break if (temp&0x0f) == 0x04 during a write. Well, if
that's what it means, then why not just write it:
gpsim> break w temp1 & 0x0f == 0x04
- Attributes
gpsim now has better support for "attributes". Attributes are things
that modules and processor expose to the user. They're basically symbols
that control the simulator's behavior. For example, the x/y position of
the processor in the breadboard are two attributes: processor_name.xpos
and processor_name.ypos. So if you want you can type:
gpsim> processor # get the name of the current processor
p16f873
gpsim> p16f873.xpos
PositionAttribute: p16f873.xpos = 120.0000000000000
gpsim> p16f873.xpos = 160.0
And this moves this processor to the right 40 units.
Attributes can also be tied into the help command. For example, the
command line has access to the stopwatch via the attribute 'stopwatch'.
gpsim> help stopwatch
stopwatch = 16283 = 0x00003F9B
A timer for monitoring and controlling the simulation.
The units are in simulation cycles.
stopwatch.rollover - specifies rollover value.
stopwatch.direction - specifies count direction.
stopwatch.enable - enables counting if true.
- Sockets
The socket interface now can be tied to attributes. I really don't have
good examples for this yet, but I have written code that complete
controls the simulator via a socket. It's possible to attach the socket
interface to an attribute in such a way that whenever the simulator
accesses the attribute, the data is supplied via the socket.
- escape character: single quote '
If you happen to have a variable whose name collides with a gpsim built
in command, it's now possible to view it from the command line. For
example, suppose you have a variable named "break". To view it type:
gpsim> 'break
break [0x34] = 0xa7 = 0b10100111
- Windows
gpsim plays much more nicely with Windows. Thanks go to Borut Razem and
JR. Heisey for their contributions in this area.
----
Like I said, this is just a summary. If you have any questions, please
feel free to ask.
Scott