Read Me(Canola) Read Me(Canola)
DESCRIPTION
The canola(1) command is used emulate a Canon Canola 1614P, a program-
mable desktop calculator from 1972. It had 14 floating point memories,
and 240 instructions of program. A few still survive today in working
condition.
DEPENDENCIES
The following libraries are required to build the Canola project:
g++ You will need a C++ compiler. The GNU C++ compiler is what the
author uses.
groff The documentation is formatted using GNU Groff.
Boost Library
This is used for several useful C++ classes and templates.
This is usually called "libboost-dev" or similar on package
based systems.
libexplain
This is used for all error reporting, when operating system
errors occur. This is usually called "libexplain-dev" or simi-
lar on package based systems.
Gtkmm-3.0
The C++ binding of the Gnome-3 widget library is used. Note
that this library tends to have numerous dependencies. This is
usually called "libgtkmm-3.0-dev" or similar on package based
systems.
libjpg This is used to read the JPEG images that are used to build the
various custom button and widgets. This is usually called
"libjpg62-dev" or similar on package based systems.
libpng This is used to read the PNG images that are used to build the
various custom button and widgets. This is usually called
"libpng12-dev" or similar on package based systems.
sharutils
This provides the uudecode(1) command, used to turn .uue source
files into binary files during the build.
BUILDING
This is traditional open source software, and the usual build method
applies. After fetching the tarball, do the following:
$ tar xzf canola-0.8.D001.tar.gz
$ cd canola-0.8.D001
$ ./configure --prefix=/usr
$ make
$
The software includes a test suite:
$ make sure
Passed all tests.
$
If you wish to install the software, only one more command is required:
$ make install
$
All done. See the canola(1) man page for more how to use it.
COPYRIGHT
canola version 0.8
Copyright (C) 2011, 2012 Peter Miller
The canola program comes with ABSOLUTELY NO WARRANTY; this is free
software and you are welcome to redistribute it under certain condi-
tions; for details see the LICENSE file in the source tarball.
AUTHOR
Peter Miller E-Mail: pmiller@opensource.org.au
/\/\* WWW: http://miller.emu.id.au/pmiller/
RELEASE NOTES
This section details the various features and bug fixes of the various
releases.
Version 0.8 (2012-May-20)
* The emulator now implements more of the conditions described on page
21 of the 1614P Instruction Manual, concerning how and when floating
truncation takes place, and what is displayed for overflow.
* The emulator now as an Edit->Preferences dialog box, for changing
some aspects of how the emulator is presented.
Version 0.7 (2012-Jan-10)
* Antonio Arias <antonio.arias99999@gmail.com> discovered that the
Makefile.in file was missing all of the entries needed to install the
PNG files needed by the GUI. This has been fixed.
Version 0.6 (2012-Jan-09)
* Antonio Arias <antonio.arias99999@gmail.com> discovered that one too
many "gui" path components were added when searching for .png files
for the custom widgets.
* A bug has been fixed in the management of transparency of the card
reader window. The use of Gtk::Window::set_opacity was wrong, it
makes the whole window, including the contents, transparent.
Instead, the window needs to (a) have an RGBA visual, and (b) set the
background to transparent.
Version 0.5 (2012-Jan-07)
* The canola(1) program now includes a card reader animation, with an
overlayed undecorated window. If a compositing window manager is
used, it will be transparent as well.
* The dot down the left hand side of the program listing has been
removed, because the real Canola 1614P doesn't print one.
* The canola(1) command is now able to save the data memories as an
assembler program file. This can be useful when producing cards sets
of constants, as seen in the GF series of cards in the Program Card
Package.
* The canola(1) command now has a more faithful replicas of the Power
Button, the Program Selector Switch Program Mode Switch, and the
Rounding Switch.
* The canola-card-scanner(1) command is now able to look for the rows
and columns of holes by itself, making it more able to cope with
slight differences with image scanner DPI settings and alignment.
* The address field in the Debugger pane can now be modified by the
user. This is helpful when debugging jumps.
* The canola-asm(5) man page now has details of each opcode.
* The Program Card Package (included with each 1614P) is now complete,
the final MS-18 to MS-25 subroutines have been added.
Version 0.4 (2011-Dec-30)
* There is now a PDF of the Canola project's Reference Manual on the
web site.
* The Program Card Package now includes MS-7 a**n, MS-8 a**x, MS-9
10**x, MS-10 log10(x), MS-11 exp(x), MS-12 ln(x), MS-13 sinh(x),
MS-14 cosh(x), MS-15 tanh(x), MS-16 asinh(x), and MS-17 acosh(x).
* The Program Card Package is now available on the web site, as example
software, linked from the Documentation page.
* The canola-card-scanner(1) program now also understands JPEG image
files, in addition to the PNG files it understood previously.
* Hans Dorn <hans.dorn@gmail.com> reports that the START keys is
ignored in LRN mode, and now the emulator conforms.
* Hans Dorn <hans.dorn@gmail.com> reports that the $710..$715 opcodes
cause an overflow and display 9999999999999999, and now the emulator
conforms.
Version 0.3 (2011-Dec-24)
* The Test Run Program still does not perform correctly, so there are
still some instruction set subtleties that have yet to be discovered
and addressed. There are many new questions in the questions.html
file on the web site.
* The MS-3 to MS-6 card sets are now included, in addition to MS-1 and
MS-2 previously.
* Thanks to scans provided by Markus Brenner <hyperion2@utanet.at>, the
Statistics ST-1 to ST-4 card sets are now included.
* A bug has been fixed in the handling of the EJ instruction. It was
not correctly detecting whether or not the user had entered data.
* Thanks to scans provided by Markus Brenner <hyperion2@utanet.at>, the
Group Function GF-1 to GF-4 card sets are now included.
* The program load and program save dialog boxes now start from the
current directory, rather than the Recently Used list.
* The emulator now include support for using the [UJ] key when in [OPE]
mode, to cause execution to start immediately from the indicated flag
jump.
* Chris Baird <cjb@brushtail.apana.org.au> contributed his prime number
program, and his quadratic equation solver.
* The error dialog is no longer modal. If more than one error happens
before you can click "OK" then all of them will accummulate in the
secondary text area.
* Hans Dorn <hans.dorn@gmail.com> discovered that the real 1614P isn't
very fussy about the key following RM3~ (et al). It simply uses the
lower 4 bits of whatever key you press.
* Markus Brenner <hyperion2@utanet.at> responded to the "Questions"
page on the web site with answers to many of the questions, and those
answers have been incorporated.
* The file menu entry Program Card System now throws up a dialog if you
don't have it in LRN mode. You can still choose OPE, but the default
is LRN.
* Chris Baird <cjb@brushtail.apana.org.au> discovered some build prob-
lems with the latest version of libpng, as they phased out some long-
deprecated struct accesses.
* There is a new canola-card-printer(1) program for drawing Canon
Canola 1614P card images. It can draw them as PDF, PNG or SVG. It
can draw the classic "blue" cards, or the blank green ones, etc.
Version 0.2 (2011-Nov-27)
* The state machine controlling the calculator's arithmetic and opera-
tor precedence has been extensively tested and improved.
* A unit test for MS-1 (sin) has been added, and another bug in it has
been foxed.
* There is a new debugger pane. It displays the register values, the
memory values, and when a program is executing, it shows the source
code with the nect opcode to execute highlighted.
* The test suite has been supplemented with examples from the 1614P
Calculator Instruction Manual.
* The [K] key (constant mode) is now implemented, for both multiplica-
tion and division.
* A bug in the SM<n> opcodes has been fixed, they were storing into the
wrong location.
* The Program Print key on the printer is now permitted in Program Mode
OPE.
Version 0.1 (2011-Oct-27)
* Program Mode Switch now supported for all modes.
* Retro widgets now implemented for all keyboard buttons.
* Most opcodes are now implemented, including jumps and subroutines.
Some opcodes still have subtle problems.
Version 0.0 (2011-Oct-01)
Reference Manual Canola Read Me(Canola)