Menu

Tree [5303db] master /
 History

HTTPS access


File Date Author Commit
 .svn 2013-05-22 fbronner fbronner [5303db] Transferring to git
 Calculator 2013-05-22 fbronner fbronner [5303db] Transferring to git
 Font 2013-05-22 fbronner fbronner [5303db] Transferring to git
 ROMS 2013-05-22 fbronner fbronner [5303db] Transferring to git
 hp-41cx.xcodeproj 2013-05-22 fbronner fbronner [5303db] Transferring to git
 Info-X_41__Upgraded_.plist 2013-05-22 fbronner fbronner [5303db] Transferring to git
 README.rtf 2013-05-22 fbronner fbronner [5303db] Transferring to git

Read Me

{\rtf1\mac\ansicpg10000\cocoartf102
{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 Helvetica-Bold;\f2\fswiss\fcharset77 Helvetica-Oblique;
\f3\fmodern\fcharset77 CourierNewPS-BoldMT;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww9020\viewh12960\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc

\f0\fs96 \cf0 X-41
\fs24 \

\fs36 An HP-41C emulator for MacOSX
\fs24 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \

\f1\b\fs28 What is it?
\f0\b0\fs24 \
\
X-41 emulates a Hewlett-Packard HP-41CV programmable calculator. The emulation is at the microprocessor level and runs the genuine HP-41 microcode, so the emulation ought to be very faithful. It should even be possible to run user-written machine code programs on it, although there isn't much support for that yet.\
\
The current version just emulates the basic calculator. The memory contents are saved between sessions, but there's no convenient way of saving or loading programs yet. Future versions may improve on this.\
\
As well as being functional, X-41 is also designed to look good! At least 50% of the appeal of HP calculators is their delicious appearance, and X-41 tries not to disappoint. Even if you don't use it for anything, it'll look really cool on your desktop.\
\
X-41 is freeware and open-source. Share and enjoy.\
\

\f1\b\fs28 System requirements
\f0\b0\fs24 \
\
MacOSX 10.2 or later. I don't know the exact memory and CPU speed requirements, but they're pretty modest. Anything capable of running MacOSX shouldn't have any trouble with it.\
\

\f1\b\fs28 Keyboard Equivalents
\f0\b0\fs24 \
\
As well as using the mouse to click on keys, all the keys also have equivalents on the Macintosh keyboard. The keys which have blue alpha markings are mapped to the corresponding keys on the Mac keyboard. In addition, the digit keys map to the Mac digit keys, and the arithmetic operations map to +, -, * and /.\
\
The remaining keys are mapped as follows:\
\pard\tx1440\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \
	
\f1\b HP Key	Mac Key
\f0\b0 \
	ON	Control-O\
	USER	Control-U\
	PRGM	Control-P\
	ALPHA	Control-A\
	Shift	Esc\
	SST	Control-S\
	ENTER	Return or Enter\
	<--	Delete\
	R/S	Control-R\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \
Note that the keyboard mapping is purely physical \'d0 pressing a particular Mac key will always activate a particular HP key, and the effect it has will depend on the current keyboard mode. For example, pressing H on the Mac keyboard will activate the SIN function in normal mode, and will enter an H in Alpha mode.\
\
Also note that the Shift keys on the Mac keyboard have nothing to do with the HP Shift key.\
\

\f1\b\fs28 Menu Commands
\f0\b0\fs24 \
\
There aren't many at the moment. Apart from the standard ones in the application menu, th ones which actually do something are:\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li400\ql\qnatural

\f1\b \cf0 Manuals
\f0\b0 \
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural

\f2\i \cf0 HP-41C Owner's Manual
\f0\i0 \
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1080\ql\qnatural
\cf0 If you have the manual installed (see below), this opens up a viewer for it. In keeping with the visual philosophy of the rest of X-41, this is a scanned copy of the genuine HP-41 manual. The viewer shows it to you with a minimum of frills, allowing you to flick back and forth through the pages by clicking near their left or right edges. One concession to the digital medium is that it provides a set of tabs, not present on the original, for quickly locating the contents, index and selected page numbers. You can also resize the viewer window to suit your screen size.\
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural

\f2\i \cf0 Folded Back\
Laid Flat
\f0\i0 \
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1080\ql\qnatural
\cf0 If you have plenty of screen space, you can display the manual Laid Flat and see two pages at once. If space is tighter, you can display it Folded Back and see one page at a time.\
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural

\f2\i \cf0 No Smoothing\
Light Smoothing\
Heavy Smoothing
\f0\i0 \
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1080\ql\qnatural
\cf0 Experiment with these settings to find out which one produces the most readable text on your display. The resolution of the scan isn't all that high, and you will probably need some smoothing to make it look nice.\
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural

\f2\i \cf0 Show Controls
\f0\i0 \
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1080\ql\qnatural
\cf0 Adds some extra controls at the bottom of the viewer window for going to the first, previous, next and last pages. You can also type in a page number to go directly to that page. However, the page number is counted linearly from the beginning of the document and may not match the page numbers listed in the contents and index.\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li400\ql\qnatural
\cf0 \

\f1\b Options
\f0\b0 \
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural

\f2\i \cf0 Show Registers
\f0\i0 \
\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1080\ql\qnatural
\cf0 This is for the adventurous. It brings up a debugging console showing the state of the NUT CPU registers and memory, and allowing the microcode to be examined and single-stepped. There are also rudimentary facilities for entering and running small machine code sequences. There isn't room to describe any of it in detail here, unfortunately.\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \

\f1\b\fs28 Installing the Manual
\f0\b0\fs24 \
\
X-41 contains a built-in document viewer for the HP-41C Owner's Manual. However, due to its large size (about 50MB), the manual file is not included with the basic X-41 application download. You will need to download the file \'d2HP41C.pdf\'d3 separately (see 
\f1\b Download
\f0\b0  below) and place it in the same folder as the X-41 application.\
\
Alternatively, you can put the manual inside the X-41 application itself. In the Finder, control-click on X-41 and select \'d2Show Package Contents\'d3. Then drag the file \'d2HP41C.pdf\'d3 into the \'d3Resources\'d3 folder inside the \'d3Contents\'d3 folder.\
\

\f1\b\fs28 Download
\f0\b0\fs24 \
\
The latest version of the X-41 application, the manual file, and the source code can be obtained from:\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc

\f3\b \cf0 http://www.cosc.canterbury.ac.nz/~greg/X-41
\f0\b0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \

\f1\b\fs28 Caveats\
\

\f0\b0\fs24 Not all of the microprocessor instructions have been implemented, only the ones actually used in the HP mainframe ROMs, as determined by briefly testing all of the documented keyboard and programming functions. There is a chance that some branches of the ROM code have not been tested and may invoke instructions that are not yet implemented. In that event, the Debugging Console will appear.\
\
If this happens to you, please tell me about it and give me a description of what you did to cause it, so I can fix it!\
\
If you play around with machine code programming of your own, you are also likely to encounter unimplemented instructions. I plan to implement all the instructions eventually, but I can't say how soon that will happen.\
\

\f1\b\fs28 Future Plans
\f0\b0\fs24 \
\
	\'a5 Saving and loading named memory images\
	\'a5 Keyboard overlays\
	\'a5 Peripheral emulation\
		\'a5 Printer\
		\'a5 Card reader\
		\'a5 Any others I can get enough information about\
	\'a5 Support for machine code programming
\f1\b\fs28 \
\
Contacting the Author
\f0\b0\fs24 \
\
Comments, suggestions and bug reports are welcome:\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc

\f3\b \cf0 greg@cosc.canterbury.ac.nz
\f0\b0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \
Have fun,\
\
Greg Ewing\
Computer Science Dept.,\
University of Canterbury,\
Christchurch,\
New Zealand\
\
}