import of sources from latest release found on Sourceforge
Signed-off-by: Gwenhael Le Moine <gwenhael.le.moine@gmail.com>
This commit is contained in:
parent
1d6eefbede
commit
e59ca61c98
200 changed files with 27588 additions and 0 deletions
4
AUTHORS
Normal file
4
AUTHORS
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
Eddie C. Dost -- Original Author
|
||||||
|
|
||||||
|
G. Allen Morris III -- Maintainer
|
40
ChangeLog
Normal file
40
ChangeLog
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
2011-08-08 "G. Allen Morris III" <gam3@gam3.net> release 0.6.4
|
||||||
|
* Default to throttling speed only when key-pressed
|
||||||
|
* Add throttle switch for speed emulation
|
||||||
|
* Fix buffer overflow bug
|
||||||
|
* release keys on loss of focus
|
||||||
|
* typo in access_time adjust
|
||||||
|
|
||||||
|
2010-02-01 "G. Allen Morris III" <gam3@gam3.net> release 0.6.3
|
||||||
|
* made updates to x48.spec
|
||||||
|
* put debian directory in dist file
|
||||||
|
* install X48 app data in correct place
|
||||||
|
using pkg-config appdefaultdir xt
|
||||||
|
* removed more debugging messages
|
||||||
|
* added 'netbook' look for small/short screens
|
||||||
|
use +netbook on the command line
|
||||||
|
|
||||||
|
2010-01-30 "G. Allen Morris III" <gam3@gam3.net> release 0.6.2
|
||||||
|
* remove setlocal code that was causing a bug.
|
||||||
|
* removed some debugging code.
|
||||||
|
|
||||||
|
2009-06-31 "G. Allen Morris III" <gam3@gam3.net> release 0.6.1
|
||||||
|
* Fix to XShm to solve the 'LCD' Scramble problem.
|
||||||
|
|
||||||
|
2006-04-20 "G. Allen Morris III" <gam3@gam3.net>
|
||||||
|
* Added simple paste feature
|
||||||
|
* Repaired debugger non-readline input
|
||||||
|
* Changed from building with Imakefile to using GNU autoconfig
|
||||||
|
|
||||||
|
2005-03-20 "G. Allen Morris III" <gam3@gam3.net>
|
||||||
|
* added equal key for + and Meta Keys for Alpha
|
||||||
|
* applied a different fix for the arrow repeat key bug
|
||||||
|
* fixed a bug in the timer one logic. The cursor now flashes on input.
|
||||||
|
|
||||||
|
2005-03-20 "G. Allen Morris III" <gam3@gam3.net>
|
||||||
|
* added patch [000390] time.h compile bug
|
||||||
|
* added patch [000391] Arrow key repeat patch
|
||||||
|
* added ChangeLog file
|
||||||
|
|
||||||
|
2005-03-18 "G. Allen Morris III" <gam3@gam3.net>
|
||||||
|
* starting from x48 0.4.0.
|
9
INSTALL
Normal file
9
INSTALL
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
You will only need readline support if you are planning to use the
|
||||||
|
x48 debugger. So ignore
|
||||||
|
|
||||||
|
With ReadLine sup. in Debuger? no
|
||||||
|
|
||||||
|
unless you want readline support in the x48 debugger.
|
||||||
|
|
||||||
|
|
75
MANIFEST
Normal file
75
MANIFEST
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
README
|
||||||
|
Imakefile
|
||||||
|
config.h
|
||||||
|
MANIFEST
|
||||||
|
ChangeLog
|
||||||
|
utils/Imakefile
|
||||||
|
utils/ad2c
|
||||||
|
utils/makeversion
|
||||||
|
src/Imakefile
|
||||||
|
src/X48.ad
|
||||||
|
src/actions.c
|
||||||
|
src/debugger.c
|
||||||
|
src/device.c
|
||||||
|
src/disasm.c
|
||||||
|
src/emulate.c
|
||||||
|
src/init.c
|
||||||
|
src/lcd.c
|
||||||
|
src/main.c
|
||||||
|
src/memory.c
|
||||||
|
src/options.c
|
||||||
|
src/register.c
|
||||||
|
src/resources.c
|
||||||
|
src/rpl.c
|
||||||
|
src/serial.c
|
||||||
|
src/timer.c
|
||||||
|
src/x48_x11.c
|
||||||
|
src/dump2rom.c
|
||||||
|
src/checkrom.c
|
||||||
|
src/annunc.h
|
||||||
|
src/append.h
|
||||||
|
src/buttons.h
|
||||||
|
src/constants.h
|
||||||
|
src/debugger.h
|
||||||
|
src/defaults.h
|
||||||
|
src/device.h
|
||||||
|
src/disasm.h
|
||||||
|
src/global.h
|
||||||
|
src/hp.h
|
||||||
|
src/hp48.h
|
||||||
|
src/hp48_emu.h
|
||||||
|
src/hp48char.h
|
||||||
|
src/icon.h
|
||||||
|
src/options.h
|
||||||
|
src/resources.h
|
||||||
|
src/rpl.h
|
||||||
|
src/small.h
|
||||||
|
src/timer.h
|
||||||
|
src/version.h
|
||||||
|
src/x48.man
|
||||||
|
src/x48_x11.h
|
||||||
|
romdump/Imakefile
|
||||||
|
romdump/ROMDump
|
||||||
|
romdump/README
|
||||||
|
romdump/ReadRom.s
|
||||||
|
romdump/Dump
|
||||||
|
doc/Imakefile
|
||||||
|
doc/ChangeLog
|
||||||
|
doc/COPYING
|
||||||
|
doc/INSTALLING
|
||||||
|
doc/TODO
|
||||||
|
doc/CARDS.doc
|
||||||
|
doc/ROMDump.doc
|
||||||
|
rpm/x48.spec.in
|
||||||
|
rpm/x48.spec
|
||||||
|
debian/README.Debian
|
||||||
|
debian/changelog
|
||||||
|
debian/compat
|
||||||
|
debian/control
|
||||||
|
debian/copyright
|
||||||
|
debian/dirs
|
||||||
|
debian/docs
|
||||||
|
debian/menu
|
||||||
|
debian/quit
|
||||||
|
debian/rules
|
||||||
|
debian/watch
|
17
Makefile.am
Normal file
17
Makefile.am
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = dejagnu
|
||||||
|
|
||||||
|
SUBDIRS = src romdump
|
||||||
|
|
||||||
|
EXTRA_DIST=rpm/x48.spec \
|
||||||
|
debian/changelog debian/compat debian/control debian/copyright \
|
||||||
|
debian/dirs debian/docs debian/menu debian/README.Debian debian/rules
|
||||||
|
|
||||||
|
X48 : src/X48.ad
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
appdefault_DATA = X48
|
||||||
|
|
||||||
|
DISTCHECK_CONFIGURE_FLAGS = --with-appdefaultdir='$${datadir}/X11/app-defaults'
|
||||||
|
|
1
NEWS
Normal file
1
NEWS
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
356
README
Normal file
356
README
Normal file
|
@ -0,0 +1,356 @@
|
||||||
|
x48 -- HP48 CPU emulator
|
||||||
|
========================
|
||||||
|
|
||||||
|
This is x48, an HP48 CPU emulator. This is Version 0.6.1
|
||||||
|
|
||||||
|
if the 'LCD' is scrambled, you might try running x48 in one of the 3 ways below
|
||||||
|
to see if that will solve the problem.
|
||||||
|
|
||||||
|
1. run 'x48 +shm'
|
||||||
|
2. put 'x48*useXShm: False' in you .Xdefaults file (man xrdb)
|
||||||
|
3. run './configure --disable-shm' to build x48 without the Shared memory extention.
|
||||||
|
|
||||||
|
If it does please leave a bug report at https://developer.berlios.de/bugs/?group_id=3335
|
||||||
|
|
||||||
|
======
|
||||||
|
|
||||||
|
for version 0.4.0
|
||||||
|
|
||||||
|
What's new:
|
||||||
|
|
||||||
|
- Implemented CONFIG/UNCNFG more exactly.
|
||||||
|
|
||||||
|
- Added support for different RAM or ROM cards.
|
||||||
|
|
||||||
|
- Added G/GX support (lost of changes)
|
||||||
|
new colors, new labels, ...
|
||||||
|
|
||||||
|
- Rewrote ROMDump for both S/SX and G/GX. Lots faster now.
|
||||||
|
Thanks go to Robert Tiismus <robert@Sneezy.net.ut.ee>
|
||||||
|
|
||||||
|
- Corrected handling of Display and Menu images, fixed number
|
||||||
|
of lines in init_display(), to avoid XShmError on virgin
|
||||||
|
startup
|
||||||
|
|
||||||
|
- Catch SIGPIPE and save state, so everything is saved, when
|
||||||
|
x48 gets terminated by xkill or the window manager
|
||||||
|
|
||||||
|
|
||||||
|
NOTE (from EM48 README by Paul Fox)
|
||||||
|
===================================
|
||||||
|
|
||||||
|
This emulator is capable of providing a faithful replication of the
|
||||||
|
HP48. In order to do so, it requires a copy of the ROM software
|
||||||
|
from YOUR calculator. In order to avoid breaking copyright laws,
|
||||||
|
and upsetting HP, you MUST BE THE PROUD OWNER OF AN HP48 before
|
||||||
|
running this program. Of course you can run this program without a
|
||||||
|
copy of the ROM software in order to write trivial machine code
|
||||||
|
programs but you will not be able to access any of the calculator
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
Instructions on how to download a copy of the ROM are provided
|
||||||
|
later in this document.
|
||||||
|
|
||||||
|
|
||||||
|
CREDITS
|
||||||
|
=======
|
||||||
|
|
||||||
|
|
||||||
|
I would like to thank Robert Tiismus <robert@Sneezy.net.ut.ee>
|
||||||
|
for his help with ROMDump for the G/GX. The ROMDump utility gained
|
||||||
|
a lot of speed and works for both S/SX and G/GX now.
|
||||||
|
|
||||||
|
|
||||||
|
I used SADHP to disassemble parts of the 48's ROM and some other
|
||||||
|
programs to test x48, also I very closely looked at SADHP while
|
||||||
|
writing code for RPL debugging. So here go sincere thanks:
|
||||||
|
|
||||||
|
-- Jan Brittenson <bson@ai.mit.edu>
|
||||||
|
-- Mika Heiskanen <mheiskan@vipunen.hut.fi>
|
||||||
|
|
||||||
|
Latest version of SADHP is available from
|
||||||
|
wuarchive.wust.edu:/systems/hp/hp48Uploads/
|
||||||
|
Get it to look deeper into your HP48.
|
||||||
|
|
||||||
|
|
||||||
|
I would like to thank Lutz Vieweg <lkv@mania.robin.de> for his
|
||||||
|
outstanding bug reports. Must be the crazyness of porting gcc to
|
||||||
|
the 48, and of writing code in assembler, that digs out all the
|
||||||
|
bugs in x48. Go on like this Lutz.
|
||||||
|
|
||||||
|
|
||||||
|
I must thank Joe Ervin for his article on keyboard handling.
|
||||||
|
|
||||||
|
|
||||||
|
I also must thank Paul Fox, Author of EM48, for his work on his
|
||||||
|
emulator, the source code was a great help for solving some problems,
|
||||||
|
specially the memory bank switching. Thanks Paul.
|
||||||
|
|
||||||
|
|
||||||
|
I would also like to thank Alonzo Gariepy for his contribution to
|
||||||
|
the world on how the HP28/HP48 works.
|
||||||
|
|
||||||
|
|
||||||
|
I would sincerely like to ask HP about giving me a 48 GX, so the world
|
||||||
|
could receive more complete x48, also I could use some ROM cards, like
|
||||||
|
the EQ-LIB to implement an easy use of these. Well, I credited HP in
|
||||||
|
the last releases, but now x48 really gets running and I still haven't
|
||||||
|
heard a word from them...
|
||||||
|
Just remember, x48 comes under the terms and conditions of the GPL.
|
||||||
|
|
||||||
|
|
||||||
|
HACKERS PLEA
|
||||||
|
============
|
||||||
|
|
||||||
|
I will continue to work on this product and support it where I have
|
||||||
|
the time, and would therefore appreciate any patches or bug fixes,
|
||||||
|
etc which any of you make so that I can keep control of the software.
|
||||||
|
|
||||||
|
Information in the form of loose english, context diffs, or
|
||||||
|
suggestions are welcome so that we can all make this product a
|
||||||
|
little better.
|
||||||
|
|
||||||
|
|
||||||
|
INSTALLATION
|
||||||
|
============
|
||||||
|
|
||||||
|
I improved handling of differences in Solaris, SunOS, HP/UX, and Linux.
|
||||||
|
Things are not perfect, anyway.
|
||||||
|
|
||||||
|
To configure some things for the Makefiles, edit 'config.h' in the
|
||||||
|
directory 'x48-0.4.0'. There you can set the compiler, flags to
|
||||||
|
pass to the compiler, and some other stuff.
|
||||||
|
|
||||||
|
To build the emulator do the following in the directory 'x48-0.4.0':
|
||||||
|
|
||||||
|
1. xmkmf
|
||||||
|
2. make
|
||||||
|
|
||||||
|
This should give you the programs 'x48', 'dump2rom', 'checkrom', and
|
||||||
|
'mkcard' in the directory 'x48-0.4.0/bin'.
|
||||||
|
|
||||||
|
To get the serial line working, you should set up your .Xdefaults for
|
||||||
|
x48. The resources concerning the serial line are:
|
||||||
|
|
||||||
|
x48*useSerial: True
|
||||||
|
x48*serialLine: /dev/ttyS0 ; your serial device here, this
|
||||||
|
; looks good for Linux.
|
||||||
|
|
||||||
|
Run 'x48 -help' for a list of command line options.
|
||||||
|
|
||||||
|
Look at 'x48-0.4.0/src/X48.ad' for the whole set of Xresources the
|
||||||
|
program uses.
|
||||||
|
|
||||||
|
|
||||||
|
HOW TO DOWNLOAD A COPY OF THE ROM
|
||||||
|
=================================
|
||||||
|
|
||||||
|
The emulator works by executing an image of the HP48s ROM. In order
|
||||||
|
to run the emulator you must have a version of your ROM on the system.
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
* This includes the HIDDEN ROM. Please don't use DUMP programs, that *
|
||||||
|
* don't dump the HIDDEN ROM. The emulator won't run. *
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
To get a memory dump you need to do the following:
|
||||||
|
|
||||||
|
|
||||||
|
- Download the file 'romdump/ROMDump' to your HP.
|
||||||
|
|
||||||
|
- To capture a complete ROM, start kermit on your computer, set the
|
||||||
|
line so it fits your HP, set the speed to 9600 baud and type
|
||||||
|
'log session', then 'connect'.
|
||||||
|
|
||||||
|
- On a HP48 S/SX type '#0h #7FFFFh ROMDump',
|
||||||
|
on a HP48 G/GX type '#0h #FFFFFh ROMDump'.
|
||||||
|
This will take about 15 minutes on the S/SX, 30 minutes on the G/GX.
|
||||||
|
|
||||||
|
- When done, type the kermit-Escape (usually CTRL-\) followed
|
||||||
|
by 'C' on your Computer. Say 'quit' to the kermit.
|
||||||
|
|
||||||
|
Your ROM should now be in the file 'session.log'.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Now you have a file containing lines like
|
||||||
|
|
||||||
|
#00000:2369B108DADF1008
|
||||||
|
...
|
||||||
|
|
||||||
|
This has to be converted to a binary ROM for x48.
|
||||||
|
|
||||||
|
Run the command: `dump2rom session.log`
|
||||||
|
This will convert your dump into a rom file readable by the emulator
|
||||||
|
called 'rom.dump'.
|
||||||
|
|
||||||
|
CHECK the file with the program 'checkrom'.
|
||||||
|
Type: `checkrom rom.dump`. It should say:
|
||||||
|
|
||||||
|
ROM Version is HP48-A
|
||||||
|
ROM CRC reads 0xcb76 (for Rev. A, will be different for other ROMs)
|
||||||
|
IROM OK: ROM CRC test passed.
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
ROM Version is HP48-R
|
||||||
|
ROM CRC 1 reads 0xdfed (for Rev. R, will be different for other ROMs)
|
||||||
|
ROM CRC 2 reads 0xf0b1 ( --- " --- )
|
||||||
|
IROM OK: ROM CRC test passed.
|
||||||
|
|
||||||
|
If the test failed, something went wrong transfering the ROM. Don't
|
||||||
|
start thinking about the size or the nibbles in 'rom.dump'. That's
|
||||||
|
all correct. Do the Transfer again.
|
||||||
|
|
||||||
|
If you know how to do it, you could of course only transfer the
|
||||||
|
'broken' part of the dump, using e.g. '#60000h #60080h ROMDump'
|
||||||
|
and fix these lines in 'session.log'.
|
||||||
|
|
||||||
|
|
||||||
|
USING THE EMULATOR
|
||||||
|
==================
|
||||||
|
|
||||||
|
Go into the directory, where your ROM dump resides and type 'x48', or
|
||||||
|
type 'x48 -rom <filename>', where <filename> is the file containing your
|
||||||
|
ROM dump.
|
||||||
|
|
||||||
|
On the first start the emulator will read the ROM dump.
|
||||||
|
It will start running at the addr 00000. This will result in the
|
||||||
|
question 'Try to recover memory?' Answer 'NO'.
|
||||||
|
|
||||||
|
To use the emulator, click your mouse at the buttons
|
||||||
|
on the emulator. You have to press the button down long enough, so
|
||||||
|
the HP-48 will considder it a keypress. Well, this should work.
|
||||||
|
|
||||||
|
To do something like ON-E, or ON-A-F, one would use the middle mouse
|
||||||
|
button to press ON, then the middle mouse button to press A. These
|
||||||
|
keys should stay depressed. Now use the left mouse button to press F.
|
||||||
|
This should release all three keys and yield the desired results.
|
||||||
|
|
||||||
|
You can check your ROM dump by pressing ON-E. This enters the selftest
|
||||||
|
of the HP-48. If it says IROM OK after some time, your ROM CRC has
|
||||||
|
been calculated correctly.
|
||||||
|
|
||||||
|
The SX emulator has 32K RAM and two 128K RAM cards, both read/write.
|
||||||
|
To access all memory you have to do: 1 MERGE 2 MERGE
|
||||||
|
The GX emulator has 128K RAM and no RAM cards, yet.
|
||||||
|
To access all memory you have to do: 1 MERGE 2 MERGE
|
||||||
|
|
||||||
|
When you hit the 'quit' button of the window frame (under ol(v)wm),
|
||||||
|
the emulator saves its state, RAM, ROM, and the ports to files in
|
||||||
|
the directory '$HOME/.hp48/', so the next time it is started, all
|
||||||
|
your stuff should be still there.
|
||||||
|
|
||||||
|
If the emulator gets messed up, or crashes, enter the debugger
|
||||||
|
by typing CTRL-C in the shell you started x48. At the prompt type
|
||||||
|
`reset`, confirm with `y`. Then type `cont`.
|
||||||
|
|
||||||
|
If this does not help, enter the debugger again, and type
|
||||||
|
`exit`, confirm with `y`. This will NOT save the stuff, so the next
|
||||||
|
time you use x48, it should be in the same state as on the last run.
|
||||||
|
|
||||||
|
Another way to achive this, is to send SIGTERM or SIGKILL to x48.
|
||||||
|
|
||||||
|
|
||||||
|
USING RAM CARDS
|
||||||
|
===============
|
||||||
|
|
||||||
|
To get a RAM card, use the program 'mkcard' to build the card, and
|
||||||
|
copy the resulting file to $HOME/.hp48/port1 or $HOME/.hp48/port2.
|
||||||
|
On the next start of the emulator, the card should be detected and
|
||||||
|
usable. (Maybe you have to turn it off, and on again...)
|
||||||
|
|
||||||
|
|
||||||
|
KEYBOARD SUPPORT
|
||||||
|
================
|
||||||
|
|
||||||
|
I have added simple keyboard support:
|
||||||
|
|
||||||
|
The keys 'A' - 'Z', '0' - '9', '+', '-', '*', '/', 'RETURN', '.', 'SPACE',
|
||||||
|
'DELETE', and 'BACKSPACE' are mapped to the according keys on the HP-48's
|
||||||
|
keyboard. The SHIFT keys give you the Orange and Blue shifts. 'ALT' gives
|
||||||
|
you the `alpha' key, and 'ESC' the `ON' key.
|
||||||
|
The keys 'F1' - 'F2' also access the menu labels on the HP. The cursor keys
|
||||||
|
give you the HP-48 keys 'K', 'P', 'Q', and 'R'.
|
||||||
|
|
||||||
|
Note that the key 'A' doesn't give you the letter "A" on the HP, but the
|
||||||
|
button in Row 1, Column 1 on the HP keyboard. The function executed depends
|
||||||
|
on the Shift State of the HP.
|
||||||
|
|
||||||
|
To do something like 'ON-A-F', press and hold `ESC', then press and hold
|
||||||
|
`A', then press `F' and release all buttons.
|
||||||
|
|
||||||
|
|
||||||
|
TALKING TO THE OUTSIDE WORLD
|
||||||
|
============================
|
||||||
|
|
||||||
|
The emulator shows one line similar to:
|
||||||
|
|
||||||
|
wire:/dev/ttyp2 IR:/dev/ttyS0
|
||||||
|
|
||||||
|
right below it's display.
|
||||||
|
|
||||||
|
If you have a backup off your real HP-48 on your computer, you
|
||||||
|
could restore it using kermit:
|
||||||
|
|
||||||
|
On the emulator enter the IO menu, hit SETUP, configure to
|
||||||
|
wire, binary, 9600, none, 1, 3.
|
||||||
|
|
||||||
|
'wire' is the local computer connection, 'IR' talks to the serial
|
||||||
|
line of your computer. This is strange, but the other way around
|
||||||
|
it does not work, yet.
|
||||||
|
|
||||||
|
Go to the IO menu again. Hit SERVER. The emulator says:
|
||||||
|
Awaiting Server Command
|
||||||
|
|
||||||
|
On your computer take an unused xterm, go to the directory where
|
||||||
|
you keep your backups, and start kermit. Configure the line:
|
||||||
|
|
||||||
|
type 'set line /dev/ttyp2' <---- use the number from the line
|
||||||
|
below the display !!!
|
||||||
|
|
||||||
|
This should be the pseudo terminal connected to your emulator.
|
||||||
|
|
||||||
|
At the kermit prompt type: 'send backup18.08.1994', or however your
|
||||||
|
backup was called. There should be communication going.
|
||||||
|
|
||||||
|
After the transfer you should have a VAR 'backup18.08.1994'. Hit
|
||||||
|
the menu key for it. It says BackupHOMEDIR. Type RESTORE. That's
|
||||||
|
all.
|
||||||
|
|
||||||
|
|
||||||
|
Talking to the serial line, to e.g. another real HP-48 works the
|
||||||
|
same, just configure the IO to IR.
|
||||||
|
|
||||||
|
!!! Note that the communcication speed is 2400 Baud here,
|
||||||
|
because the emulator, or better the HP48, thinks he is
|
||||||
|
doing IR transfer.
|
||||||
|
|
||||||
|
|
||||||
|
KNOWN BUGS
|
||||||
|
==========
|
||||||
|
|
||||||
|
Very slow, especially the GX compared to a real GX.
|
||||||
|
|
||||||
|
Lots of guesses in the devices section of the emulator. I could realy
|
||||||
|
use the 'SATURN HARDWARE SPECIFICATION' from HP. If anyone has access
|
||||||
|
to it, send a copy, or tell me where to get it.
|
||||||
|
|
||||||
|
Documentation is missing. There should be a file 'x48.texinfo' to
|
||||||
|
describe the various options and flags of x48.
|
||||||
|
|
||||||
|
|
||||||
|
ACCESS TO THE AUTHOR
|
||||||
|
====================
|
||||||
|
|
||||||
|
Please send any bug reports, context-diffs or suggestions to
|
||||||
|
|
||||||
|
ecd@dressler.de
|
||||||
|
|
||||||
|
Eddie C. Dost
|
||||||
|
61, Rue de la Chapelle
|
||||||
|
4850 Moresnet-Chapelle
|
||||||
|
Belgium
|
||||||
|
|
||||||
|
Have Fun.
|
9
autogen.sh
Executable file
9
autogen.sh
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
set -x
|
||||||
|
aclocal
|
||||||
|
#libtoolize --force --copy
|
||||||
|
autoheader
|
||||||
|
automake --add-missing --copy -Wno-portability
|
||||||
|
autoconf
|
||||||
|
|
139
configure.ac
Normal file
139
configure.ac
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
|
||||||
|
m4_include([version.m4])
|
||||||
|
AC_INIT([x48],[VERSION_NUMBER],[x48-bugs@gam3.net])
|
||||||
|
|
||||||
|
AC_COPYRIGHT([Copyright (c) 2006-2010 G. Allen Morris III])
|
||||||
|
AC_CANONICAL_TARGET
|
||||||
|
|
||||||
|
AC_PREREQ(2.59)
|
||||||
|
|
||||||
|
AC_CONFIG_SRCDIR([config.h.in])
|
||||||
|
AC_CONFIG_HEADER([config.h])
|
||||||
|
|
||||||
|
# Checks for programs.
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_LN_S
|
||||||
|
AC_PROG_CPP
|
||||||
|
|
||||||
|
AC_PATH_XTRA
|
||||||
|
if test x"$no_x" = xyes ; then
|
||||||
|
AC_MSG_ERROR([X development libraries not found])
|
||||||
|
fi
|
||||||
|
X_LIBS="$X_LIBS -lX11"
|
||||||
|
AC_SUBST(X_LIBS)
|
||||||
|
|
||||||
|
PKG_PROG_PKG_CONFIG([0.20])
|
||||||
|
|
||||||
|
# ********* readline library
|
||||||
|
AC_ARG_ENABLE(readline,
|
||||||
|
[ --disable-readline disable readline support],
|
||||||
|
[ if test x"$enableval" = xyes; then
|
||||||
|
with_readline="yes, check"
|
||||||
|
else
|
||||||
|
with_readline="no"
|
||||||
|
problem_readline=": Explicitly disabled"
|
||||||
|
fi ],
|
||||||
|
[ with_readline="not specified, check" ]
|
||||||
|
)
|
||||||
|
|
||||||
|
AH_TEMPLATE([HAVE_READLINE],[Define if Readline is used.])
|
||||||
|
if test x"$with_readline" != xno; then
|
||||||
|
AC_CHECK_LIB(readline, readline,
|
||||||
|
with_readline=yes;
|
||||||
|
LIBS="$LIBS -lreadline";
|
||||||
|
AC_DEFINE(HAVE_READLINE),
|
||||||
|
with_readline=no;
|
||||||
|
problem_readline=": Can't detect readline library.",
|
||||||
|
[])
|
||||||
|
AC_CHECK_LIB(history, add_history)
|
||||||
|
AC_CHECK_HEADERS([readline/readline.h])
|
||||||
|
AC_CHECK_HEADERS([readline/history.h])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ********* MIT Shared Memory Extension
|
||||||
|
AC_ARG_ENABLE(shm,
|
||||||
|
[ --disable-shm disable MIT Shared Memory Extension],
|
||||||
|
[ if test x"$enableval" = xyes; then
|
||||||
|
with_shm="yes, check"
|
||||||
|
else
|
||||||
|
with_shm="no"
|
||||||
|
problem_shm=": Explicitly disabled"
|
||||||
|
fi ],
|
||||||
|
[ with_shm="not specified, check" ]
|
||||||
|
)
|
||||||
|
|
||||||
|
AH_TEMPLATE([HAVE_XSHM],[Define if MIT Shared Memory extension is used.])
|
||||||
|
if test x"$with_shm" != xno; then
|
||||||
|
AC_CHECK_HEADER(X11/extensions/XShm.h, [
|
||||||
|
AC_CHECK_LIB(Xext, XShmQueryExtension,
|
||||||
|
with_shm=yes; AC_DEFINE(HAVE_XSHM),
|
||||||
|
with_shm=no;
|
||||||
|
problem_shm=": Can't detect MIT Shared Memory ext.",
|
||||||
|
[$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
|
||||||
|
],problem_shm=": Can't detect MIT Shared Memory headers.",[#include <X11/Xlib.h>])
|
||||||
|
fi
|
||||||
|
if test x"$with_shm" = xyes ; then
|
||||||
|
X_LIBS="$X_LIBS -lXext"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checks for libraries.
|
||||||
|
AC_CHECK_LIB([GL], [XCloseDisplay])
|
||||||
|
|
||||||
|
# Checks for header files.
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_HEADERS([fcntl.h memory.h stdlib.h string.h sys/ioctl.h sys/time.h termios.h unistd.h stdint.h])
|
||||||
|
|
||||||
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_C_CONST
|
||||||
|
AC_C_INLINE
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
AC_HEADER_TIME
|
||||||
|
AC_STRUCT_TM
|
||||||
|
|
||||||
|
AC_DEFINE([VERSION_MAJOR], _VERSION_MAJOR, [The major version number])
|
||||||
|
AC_DEFINE([VERSION_MINOR], _VERSION_MINOR, [The minor version number])
|
||||||
|
AC_DEFINE([PATCHLEVEL], _PATCHLEVEL, [The patch level])
|
||||||
|
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([COMPILE_TIME], "`date`", [Date program was compiled])
|
||||||
|
AC_DEFINE([COMPILE_BY], ["G. Allen Morris III"], [Name of person that compiled this program])
|
||||||
|
AC_DEFINE([COMPILE_VERSION], [0], [description])
|
||||||
|
|
||||||
|
# Checks for library functions.
|
||||||
|
AC_PROG_GCC_TRADITIONAL
|
||||||
|
AC_FUNC_MALLOC
|
||||||
|
AC_FUNC_SELECT_ARGTYPES
|
||||||
|
AC_FUNC_STAT
|
||||||
|
AC_CHECK_FUNCS([bzero gethostname gettimeofday memset mkdir select strdup strrchr uname])
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(APPDEFS, xt)
|
||||||
|
AC_ARG_WITH([appdefaultdir],
|
||||||
|
[AC_HELP_STRING([--with-appdefaultdir=DIR],
|
||||||
|
[Xt app-defaults directory (default: from pkg-config)])],
|
||||||
|
[appdefaultdir="$withval"],
|
||||||
|
[appdefaultdir=`$PKG_CONFIG --variable=appdefaultdir xt`])
|
||||||
|
AC_SUBST(appdefaultdir)
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([Makefile
|
||||||
|
romdump/Makefile
|
||||||
|
src/x48.man
|
||||||
|
rpm/x48.spec
|
||||||
|
src/Makefile])
|
||||||
|
AC_OUTPUT
|
||||||
|
|
||||||
|
echo "
|
||||||
|
X48 Configuration:
|
||||||
|
|
||||||
|
Version: $VERSION$VERSIONINFO
|
||||||
|
|
||||||
|
Executables: $bindir
|
||||||
|
Man pages: $mandir
|
||||||
|
|
||||||
|
With ReadLine sup. in Debuger? $with_readline$problem_readline
|
||||||
|
With Shared memory for XImage? $with_shm$problem_shm
|
||||||
|
|
||||||
|
# See INSTALL for the description of what this may mean."
|
||||||
|
|
9
debian/README.Debian
vendored
Normal file
9
debian/README.Debian
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
x48 for Debian
|
||||||
|
--------------
|
||||||
|
|
||||||
|
This program requires you to create a .hp48 directory in your home
|
||||||
|
directory, and put a rom dump into that directory.
|
||||||
|
|
||||||
|
Rom dumps are available from http://developer.berlios.de/projects/x48/
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net>, Wed, 5 Jan 2005 14:54:21 -0500
|
66
debian/changelog
vendored
Normal file
66
debian/changelog
vendored
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
x48 (0.6.4) unstable; urgency=low
|
||||||
|
|
||||||
|
* Default to throttling speed only when key-pressed
|
||||||
|
* Add throttle switch for speed emulation
|
||||||
|
* Fix buffer overflow bug
|
||||||
|
* release keys on loss of focus
|
||||||
|
* typo in access_time adjust
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net> Tue, 09 Aug 2011 22:43:23 -0700
|
||||||
|
|
||||||
|
x48 (0.6.3) unstable; urgency=low
|
||||||
|
|
||||||
|
* update to x48.spec
|
||||||
|
* put debian directory in dist file
|
||||||
|
* install X48 app data in correct place
|
||||||
|
using pkg-config appdefaultdir xt
|
||||||
|
* removed more debugging messages
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net> Sat, 30 Jan 2010 18:16:00 -0500
|
||||||
|
|
||||||
|
x48 (0.6.2) unstable; urgency=low
|
||||||
|
* Remove some Local code that was causing bug 016244, 016778
|
||||||
|
* Removed some debugging code
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net> Sat, 30 Jan 2010 10:15:43 -0500
|
||||||
|
|
||||||
|
x48 (0.6.1) unstable; urgency=low
|
||||||
|
|
||||||
|
* Cleaned up the configure.ac file
|
||||||
|
it now fails if X is missing and includes X11 and Xext in X_LIBS
|
||||||
|
* Applied patch for bug ID 015996 (berlios) this should solve the
|
||||||
|
scrambled 'LCD' problem.
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net> Fri, 31 Jul 2009 22:32:55 -0400
|
||||||
|
|
||||||
|
x48 (0.6.0) unstable; urgency=low
|
||||||
|
|
||||||
|
* Added simple paste feature
|
||||||
|
* Repaired debugger non-readline input
|
||||||
|
* Changed from building with Imakefile to using GNU autoconfig
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net> Thu, 20 Apr 2006 08:09:01 -0400
|
||||||
|
|
||||||
|
x48 (0.4.3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Imporved mouse and refresh
|
||||||
|
|
||||||
|
* Unix98 PTY (Preferred)
|
||||||
|
|
||||||
|
* Fix to clock
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net> Fri, 22 Apr 2005 13:00:14 -0400
|
||||||
|
|
||||||
|
x48 (0.4.2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Cursor Flashing
|
||||||
|
* Auto repeat on movement and del keys.
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net> Fri, 22 Apr 2005 13:00:14 -0400
|
||||||
|
|
||||||
|
x48 (0.4.0) unstable; urgency=low
|
||||||
|
|
||||||
|
* Initial Release.
|
||||||
|
|
||||||
|
-- G. Allen Morris III <gam3@gam3.net> Wed, 5 Jan 2005 14:54:21 -0500
|
||||||
|
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
5
|
13
debian/control
vendored
Normal file
13
debian/control
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Source: x48
|
||||||
|
Section: x11
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: G. Allen Morris III <gam3@gam3.net>
|
||||||
|
Build-Depends: debhelper (>= 5.0.0), libx11-dev, libxext-dev, pkg-config, libxt-dev, autoconf
|
||||||
|
Standards-Version: 3.8.2
|
||||||
|
|
||||||
|
Package: x48
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||||
|
Description: a HP48 calculator emulator
|
||||||
|
This is an emulator of the HP 48 SX and GX calculator.
|
||||||
|
You will need a ROM dump to use it.
|
27
debian/copyright
vendored
Normal file
27
debian/copyright
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
This package was debianized by G. Allen Morris III <gam3@gam3.net> on
|
||||||
|
Wed, 5 Jan 2005 14:54:21 -0500.
|
||||||
|
|
||||||
|
It was downloaded from http://developer.berlios.de/projects/x48/
|
||||||
|
|
||||||
|
Copyright: 1994 Eddie C. Dost <ecd@dressler.de>
|
||||||
|
|
||||||
|
Upstream Author: Eddie C. Dost <ecd@dressler.de>
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
This software is Copyright (C) 1994 Eddie C. Dost <ecd@dressler.de>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License Version 2, found on Debian systems
|
||||||
|
in the file /usr/share/common-licenses/GPL .
|
||||||
|
|
1
debian/dirs
vendored
Normal file
1
debian/dirs
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
usr/bin
|
1
debian/docs
vendored
Normal file
1
debian/docs
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
README
|
2
debian/menu
vendored
Normal file
2
debian/menu
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
?package(x48):needs="X11|text|vc|wm" section="Apps/Math"\
|
||||||
|
title="x48" command="/usr/bin/x48"
|
89
debian/rules
vendored
Executable file
89
debian/rules
vendored
Executable file
|
@ -0,0 +1,89 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
# -*- makefile -*-
|
||||||
|
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
CFLAGS = -Wall -g
|
||||||
|
|
||||||
|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||||
|
CFLAGS += -O0
|
||||||
|
else
|
||||||
|
CFLAGS += -O2
|
||||||
|
endif
|
||||||
|
|
||||||
|
configure: configure-stamp
|
||||||
|
configure-stamp:
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
autoreconf
|
||||||
|
./configure --prefix=/usr
|
||||||
|
|
||||||
|
touch configure-stamp
|
||||||
|
|
||||||
|
|
||||||
|
build: build-stamp
|
||||||
|
|
||||||
|
build-stamp: configure-stamp
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
$(MAKE)
|
||||||
|
|
||||||
|
touch build-stamp
|
||||||
|
|
||||||
|
clean:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
rm -f build-stamp configure-stamp
|
||||||
|
|
||||||
|
# Add here commands to clean up after the build process.
|
||||||
|
[ ! -f Makefile ] || $(MAKE) distclean
|
||||||
|
|
||||||
|
dh_clean
|
||||||
|
|
||||||
|
install: build
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_clean -k
|
||||||
|
dh_installdirs
|
||||||
|
|
||||||
|
# Add here commands to install the package into debian/x48.
|
||||||
|
$(MAKE) install DESTDIR=$(CURDIR)/debian/x48
|
||||||
|
|
||||||
|
|
||||||
|
# Build architecture-independent files here.
|
||||||
|
binary-indep: build install
|
||||||
|
# We have nothing to do by default.
|
||||||
|
|
||||||
|
# Build architecture-dependent files here.
|
||||||
|
binary-arch: build install
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_installchangelogs
|
||||||
|
dh_installdocs
|
||||||
|
dh_installexamples
|
||||||
|
# dh_install
|
||||||
|
# dh_installmenu
|
||||||
|
# dh_installdebconf
|
||||||
|
# dh_installlogrotate
|
||||||
|
# dh_installemacsen
|
||||||
|
# dh_installpam
|
||||||
|
# dh_installmime
|
||||||
|
# dh_installinit
|
||||||
|
# dh_installcron
|
||||||
|
# dh_installinfo
|
||||||
|
dh_installman
|
||||||
|
dh_link
|
||||||
|
dh_strip
|
||||||
|
dh_compress
|
||||||
|
dh_fixperms
|
||||||
|
# dh_perl
|
||||||
|
# dh_python
|
||||||
|
# dh_makeshlibs
|
||||||
|
dh_installdeb
|
||||||
|
dh_shlibdeps
|
||||||
|
dh_gencontrol
|
||||||
|
dh_md5sums
|
||||||
|
dh_builddeb
|
||||||
|
|
||||||
|
binary: binary-indep binary-arch
|
||||||
|
.PHONY: build clean binary-indep binary-arch binary install configure
|
6
debian/watch
vendored
Normal file
6
debian/watch
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Example watch control file for uscan
|
||||||
|
# Rename this file to "watch" and then you can run the "uscan" command
|
||||||
|
# to check for upstream updates and more.
|
||||||
|
# Site Directory Pattern Version Script
|
||||||
|
version=2
|
||||||
|
http://www.hpcalc.org/hp48/pc/emulators/x48-(.*)\.tgz
|
16
doc/CARDS.doc
Normal file
16
doc/CARDS.doc
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
Q: How do you dump the Equation Lib?
|
||||||
|
|
||||||
|
A: Well, I guess you would have to use some sort of Card copying
|
||||||
|
program from the HP48. This should give you an Image of the card.
|
||||||
|
|
||||||
|
You should convert it into an x48 rom-file. Look at dump2rom.c.
|
||||||
|
There should be changes for the size of the Card!!!
|
||||||
|
|
||||||
|
Then you should copy this to "$HOME/.hp48/port1" or "$HOME/.hp48/port2".
|
||||||
|
|
||||||
|
Change the file to read only, use 'chmod 444 $HOME/.hp48/port1'.
|
||||||
|
The emulator will notice, this is a ROM.
|
||||||
|
|
||||||
|
You are mainly on your own here, I don't have such a card, so I can't
|
||||||
|
try, but I hope it helps.
|
||||||
|
|
339
doc/COPYING
Normal file
339
doc/COPYING
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
675 Mass Ave, Cambridge, MA 02139, USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
Appendix: How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) 19yy <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
190
doc/ChangeLog
Normal file
190
doc/ChangeLog
Normal file
|
@ -0,0 +1,190 @@
|
||||||
|
1995/01/16 Version 0.4.0 On the net
|
||||||
|
|
||||||
|
- Implemented CONFIG/UNCNFG more exactly.
|
||||||
|
|
||||||
|
- Added support for different RAM or ROM cards.
|
||||||
|
|
||||||
|
- Added G/GX support (lost of changes)
|
||||||
|
new colors, new labels, ...
|
||||||
|
|
||||||
|
- Rewrote ROMDump for both S/SX and G/GX. Lots faster now.
|
||||||
|
Thanks go to Robert Tiismus <robert@Sneezy.net.ut.ee>
|
||||||
|
|
||||||
|
- Corrected handling of Display and Menu images, fixed number
|
||||||
|
of lines in init_display(), to avoid XShmError on virgin
|
||||||
|
startup
|
||||||
|
|
||||||
|
- Catch SIGPIPE and save state, so everything is saved, when
|
||||||
|
x48 gets terminated by xkill or the window manager
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/12/07 Version 0.3.5 On the net
|
||||||
|
|
||||||
|
- Serial and terminal lines now have the baudrate set
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
. Watch out for the IR (serial) connection: speed is
|
||||||
|
always set to 2400 Baud by the HP
|
||||||
|
. On the wire (terminal) connection speed is set to the
|
||||||
|
selected value
|
||||||
|
|
||||||
|
- Removed stupid rounding in adjtime routine
|
||||||
|
|
||||||
|
. This caused missing of some part of a second when
|
||||||
|
adjusting the time on the HP
|
||||||
|
|
||||||
|
- Suppress adjusting timer2 if this would cause an
|
||||||
|
increase of the timer, slow down the timer instead.
|
||||||
|
|
||||||
|
. Thanks go to Lutz Vieweg (he spotted this bug, while
|
||||||
|
trying to use QED. (lkv@mania.robin.de)
|
||||||
|
|
||||||
|
- Support for contrast control (ON_+, ON_-) added
|
||||||
|
|
||||||
|
|
||||||
|
- Started command line parsing... (see below)
|
||||||
|
|
||||||
|
Changes to the X11 Interface
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
- Implemented color-icon. Show state of HP48 in icon:
|
||||||
|
|
||||||
|
. if 'x48' is displayed, calculator is on.
|
||||||
|
. if 'x48' is blinking, calculator is transfering data.
|
||||||
|
|
||||||
|
- Implemented use of the WM_SAVE_YOURSELF protocol.
|
||||||
|
|
||||||
|
- x48 now uses Xrm...() functions to parse and use
|
||||||
|
Xresources and the command line.
|
||||||
|
|
||||||
|
- Better handling of ButtonPresses and KeyPresses
|
||||||
|
|
||||||
|
- The program now sets the WM_COMMAND property
|
||||||
|
|
||||||
|
- Now colors look well on monochrome and gray
|
||||||
|
|
||||||
|
- A new Colormap is allocated if the standard Colormap is full
|
||||||
|
|
||||||
|
- All possible visuals are supported by the color allocation
|
||||||
|
modell (at least on Linux, I don't really know how to handle
|
||||||
|
DirectColor ...)
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/11/02 Version 0.3.4 On the net
|
||||||
|
|
||||||
|
- Real time support mostly works (uses system time)
|
||||||
|
|
||||||
|
- Stores ROM, RAM, and Ports in 'compressed' format
|
||||||
|
|
||||||
|
- tty lines work on HPUX
|
||||||
|
Thanks go to Lutz Vieweg (lkv@mania.robin.de)
|
||||||
|
|
||||||
|
- debugger now works on operating systems, where timers interrupt
|
||||||
|
the read system call.
|
||||||
|
|
||||||
|
- Debugger now uses Class instruction set
|
||||||
|
|
||||||
|
- Disassembler completed (at least hope so)
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/10/06 Version 0.3.3 On the net
|
||||||
|
|
||||||
|
|
||||||
|
- checkrom, a program to test the ROM CRC included
|
||||||
|
|
||||||
|
- tty lines work on IRIX
|
||||||
|
Thanks go to !!!LOOK AT THE MAIL!!!
|
||||||
|
|
||||||
|
- faster X11 interface
|
||||||
|
Uses Pixmaps now to update changed nibbles.
|
||||||
|
Whenever possible uses XSHM Extension to update
|
||||||
|
the display.
|
||||||
|
|
||||||
|
- Start of debugger implementation
|
||||||
|
|
||||||
|
- Disassembler started (HP & Alonzo)
|
||||||
|
|
||||||
|
- SHUTDN bug fixed (didn't wake on received chars)
|
||||||
|
Thanks go to Lutz Vieweg (lkv@mania.robin.de)
|
||||||
|
|
||||||
|
- Display bit offset implemented
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/10/02 Version 0.3.2 not published
|
||||||
|
|
||||||
|
- Major speed improvement due to scheduling of emulator
|
||||||
|
specific events (timers, adjtime, receive, ...)
|
||||||
|
This *really* speeds up the main emulator loop.
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/09/30 Version 0.3.1 not published
|
||||||
|
|
||||||
|
- Added MAGIC number to ~/.hp48/hp48 file
|
||||||
|
|
||||||
|
- Minor optimizations
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/09/18 Second Release (Version 0.2)
|
||||||
|
|
||||||
|
- Pure X11 interface
|
||||||
|
|
||||||
|
- Start of real time support
|
||||||
|
|
||||||
|
- SHUTDN implemented
|
||||||
|
|
||||||
|
- Keyboard support
|
||||||
|
|
||||||
|
- Compiles better (less warnings) on SunOS, Solaris
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/08/26 Initial Release (Version 0.1)
|
||||||
|
|
||||||
|
- Emulates the HP48sx fairly
|
||||||
|
|
||||||
|
- Compiles well only on Linux
|
||||||
|
|
||||||
|
- Uses XView Panel and Canvas
|
||||||
|
|
||||||
|
- Must be started in source directory
|
||||||
|
|
||||||
|
- No SHUTDN
|
||||||
|
|
||||||
|
- No real time
|
||||||
|
|
||||||
|
- Misses HP48 keyboard interrupts
|
||||||
|
|
||||||
|
- Slow
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/07 Look at em48 by Paul Fox
|
||||||
|
|
||||||
|
- Starts to run like a HP48
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/05 First Versions
|
||||||
|
|
||||||
|
- No Display at all, merely debugging output
|
||||||
|
|
||||||
|
|
||||||
|
**********************************************************************
|
||||||
|
|
||||||
|
1994/04 Fed up with stupid Desktop Calculators
|
||||||
|
|
34
doc/INSTALLING
Normal file
34
doc/INSTALLING
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
INSTALLATION
|
||||||
|
============
|
||||||
|
|
||||||
|
I improved handling of differences in Solaris, SunOS, HP/UX, and Linux.
|
||||||
|
Things are not perfect, anyway.
|
||||||
|
|
||||||
|
To configure some things for the Makefiles, edit 'config.h' in the
|
||||||
|
directory 'x48-0.4.0'. There you can set the compiler, flags to
|
||||||
|
pass to the compiler, and some other stuff.
|
||||||
|
|
||||||
|
To build the emulator do the following in the directory 'x48-0.4.0':
|
||||||
|
|
||||||
|
1. xmkmf
|
||||||
|
2. make
|
||||||
|
|
||||||
|
This should give you the programs 'x48', 'dump2rom', and 'checkrom'
|
||||||
|
'mkcard' in the directory 'x48-0.4.0/bin'.
|
||||||
|
|
||||||
|
To get the serial line working, you should set up your .Xdefaults for
|
||||||
|
x48. The resources concerning the serial line are:
|
||||||
|
|
||||||
|
x48*useSerial: True
|
||||||
|
x48*serialLine: /dev/ttyS0 ; your serial device here, this
|
||||||
|
; looks good for Linux.
|
||||||
|
|
||||||
|
Run 'x48 -help' for a list of command line options.
|
||||||
|
|
||||||
|
Look at 'x48-0.4.0/src/X48.ad' for the whole set of Xresources the
|
||||||
|
program uses.
|
||||||
|
|
||||||
|
To use RAM cards (128K or 32K on the SX, up to 4M on the GX), use the
|
||||||
|
program 'mkcard', and put the resulting file in the directory ~/.hp48/
|
||||||
|
in a file called 'port1' or 'port2'.
|
||||||
|
|
36
doc/ROMDump.doc
Normal file
36
doc/ROMDump.doc
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
This is ROMDump, a utility to dump the ROM of ANY HP48
|
||||||
|
======================================================
|
||||||
|
|
||||||
|
|
||||||
|
Usage: (2:hxs, 1:hxs --> ) pop start address from level 2,
|
||||||
|
pop end address from level 1, and dump
|
||||||
|
ROM to the serial at 9600 baud using
|
||||||
|
lines of form "aaaaa:hhhhhhhhhhhhhhhh\n\r"
|
||||||
|
with 16 nibbles ROM data hhhhhhhhhhhhhhhh
|
||||||
|
at address aaaaa.
|
||||||
|
|
||||||
|
|
||||||
|
- Download the file ROMDump to your HP.
|
||||||
|
|
||||||
|
- To capture a complete ROM, start kermit on your computer,
|
||||||
|
set the line so that it fits your HP (use speed == 9600)
|
||||||
|
and type 'log session', then 'connect'.
|
||||||
|
|
||||||
|
- On your HP48 S/SX type '#0h #7FFF0h ROMDump' or on the G/GX
|
||||||
|
'#0h #FFFF0h ROMDump'. This will give you a complete ROM dump.
|
||||||
|
This will take about 15 minutes on the S/SX, 30 minutes on the G/GX.
|
||||||
|
|
||||||
|
- When done, type the kermit-Escape (usually CTRL-\) followed
|
||||||
|
by 'C' on your Computer. Say 'quit' to the kermit.
|
||||||
|
|
||||||
|
- Your ROM should now be in the file 'session.log'.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- To dump a certain range of ROM, enter the start-address in hex
|
||||||
|
and the end address in hex, and press 'ROMDump'.
|
||||||
|
|
||||||
|
(For example: '#7FFF0h #7FFFFh' ROMDump will output
|
||||||
|
"7FFF0:84054383D21467BC\n\r" on a Version A S/SX.)
|
||||||
|
|
||||||
|
|
35
doc/TODO
Normal file
35
doc/TODO
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
TODO -- HP48sx Emulator x48
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Write an MMU. Will increase speed significantly.
|
||||||
|
|
||||||
|
Contact Eric Bryntse:
|
||||||
|
- ask for description of his Gateway-48 library
|
||||||
|
to trace down the following bug:
|
||||||
|
When an alarm wakes up x48, it is not starting
|
||||||
|
the exec without being given a password.
|
||||||
|
|
||||||
|
Find a way to handle NumLock on those Solaris OpenWindows machines...
|
||||||
|
(take a look at xterm source)
|
||||||
|
|
||||||
|
There should be a menu popping up when the HP Logo in the top left is
|
||||||
|
hit. It should contain some useful things like
|
||||||
|
|
||||||
|
- RESET BUTTON
|
||||||
|
- Configuration (Serial, start kermit automatically, ...)
|
||||||
|
- Port configuration (pull card, insert ROM/RAM card, etc.)
|
||||||
|
- Pop up a window with debug outputs (speed, cpu usage, PC, ...)
|
||||||
|
- The 'About x48' field
|
||||||
|
|
||||||
|
!!! Implement an Instruction Cache ... !!! <- SPEED
|
||||||
|
|
||||||
|
Speed up register arithmetic. +- SPEED
|
||||||
|
|
||||||
|
Implement a function "load file (filename)":
|
||||||
|
|
||||||
|
- Read a file starting with "HPHP48-%c"
|
||||||
|
- try putting it on the stack as HP Object
|
||||||
|
- should not be hard to store it in a variable called 'filename' then
|
||||||
|
|
||||||
|
--> Here we got a fast bypass to the kermit protocol.
|
||||||
|
|
4
romdump/Makefile.am
Normal file
4
romdump/Makefile.am
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
EXTRA_DIST = ROMDump.s ROMDump
|
||||||
|
|
||||||
|
|
63
romdump/README
Normal file
63
romdump/README
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
This file is part of ROMDump, a ROM dump utilty for the HP48sx Calculator.
|
||||||
|
Copyright (C) 1994 Eddie C. Dost (ecd@dressler.de)
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This is ROMDump, a utility to dump the ROM of ANY HP48
|
||||||
|
======================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Usage: (2:hxs, 1:hxs --> ) pop start address from level 2,
|
||||||
|
pop end address from level 1, and dump
|
||||||
|
ROM to the serial at 9600 baud using
|
||||||
|
lines of form "aaaaa:hhhhhhhhhhhhhhhh\n\r"
|
||||||
|
with 16 nibbles ROM data hhhhhhhhhhhhhhhh
|
||||||
|
at address aaaaa.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- Download the file ROMDump to your HP.
|
||||||
|
|
||||||
|
- To capture a complete ROM, start kermit on your computer,
|
||||||
|
set the line so that it fits your HP (use speed == 9600)
|
||||||
|
and type 'log session', then 'connect'.
|
||||||
|
|
||||||
|
- On your HP48 S/SX type '#0h #7FFF0h ROMDump' or on the G/GX
|
||||||
|
'#0h #FFFF0h ROMDump'. This will give you a complete ROM dump.
|
||||||
|
This will take about 15 minutes on the S/SX, 30 minutes on the G/GX.
|
||||||
|
|
||||||
|
- When done, type the kermit-Escape (usually CTRL-\) followed
|
||||||
|
by 'C' on your Computer. Say 'quit' to the kermit.
|
||||||
|
|
||||||
|
- Your ROM should now be in the file 'session.log'.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- To dump a certain range of ROM, enter the start-address in hex
|
||||||
|
and the end address in hex, and press 'ROMDump'.
|
||||||
|
|
||||||
|
(For example: '#7FFF0h #7FFFFh' ROMDump will output
|
||||||
|
"7FFF0:84054383D21467BC\n\r" on a Version A S/SX.)
|
||||||
|
|
||||||
|
|
||||||
|
I have included the assembler source (class version) for those
|
||||||
|
interested in fiddling with the hidden ROM...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Eddie C. Dost (ecd@dressler.de)
|
BIN
romdump/ROMDump
Normal file
BIN
romdump/ROMDump
Normal file
Binary file not shown.
464
romdump/ROMDump.s
Normal file
464
romdump/ROMDump.s
Normal file
|
@ -0,0 +1,464 @@
|
||||||
|
;
|
||||||
|
; $Id: ROMDump.s,v 1.4 1995/01/11 18:21:36 ecd Exp ecd $
|
||||||
|
;
|
||||||
|
; This file is part of ROMDump, a ROM dump utility for the HP48 Calculator.
|
||||||
|
; Copyright (C) 1994 Eddie C. Dost (ecd@dressler.de)
|
||||||
|
;
|
||||||
|
; This program is free software; you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation; either version 2 of the License, or
|
||||||
|
; (at your option) any later version.
|
||||||
|
;
|
||||||
|
; This program is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
; GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; You should have received a copy of the GNU General Public License
|
||||||
|
; along with this program; if not, write to the Free Software
|
||||||
|
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
;
|
||||||
|
; Usage:
|
||||||
|
;
|
||||||
|
; (2: hxs, 1: hxs --> ) pop start address from level 2,
|
||||||
|
; pop end address from level 1, and dump
|
||||||
|
; ROM to the serial at 9600 baud using
|
||||||
|
; lines of form "aaaaa:hhhhhhhhhhhhhhhh\n\r"
|
||||||
|
; with 16 nibbles ROM data hhhhhhhhhhhhhhhh
|
||||||
|
; at address aaaaa.
|
||||||
|
;
|
||||||
|
; machine independent addresses (supported by HP)
|
||||||
|
;
|
||||||
|
AllowIntr equ $010e5
|
||||||
|
DisableIntr equ $01115
|
||||||
|
DOBINT equ $02911
|
||||||
|
DOCOL equ $02d9d
|
||||||
|
DOCODE equ $02dcc
|
||||||
|
SEMI equ $0312b
|
||||||
|
GETPTRLOOP equ $05143
|
||||||
|
SAVPTR equ $0679b
|
||||||
|
GETPTR equ $067d2
|
||||||
|
CK2NOLASTWD equ $18a8d
|
||||||
|
CKandDISPATCH1 equ $18fb2
|
||||||
|
VERSTRING equ $30794
|
||||||
|
PopASavptr equ $3251c
|
||||||
|
;
|
||||||
|
; machine independent addresses (NOT supported by HP)
|
||||||
|
;
|
||||||
|
POPHXS equ $53f8d
|
||||||
|
|
||||||
|
;
|
||||||
|
; machine dependent addresses
|
||||||
|
;
|
||||||
|
sx_GosubHidC equ $026bf
|
||||||
|
sx_prog_low equ $700f1 ; IRAMBUFF
|
||||||
|
sx_prog_high equ $f00f1 ; IRAMBUFF when RAM configured high
|
||||||
|
|
||||||
|
gx_GosubHidC equ $026ca
|
||||||
|
gx_prog_low equ $800f5 ; IRAMBUFF
|
||||||
|
gx_prog_high equ $c00f5 ; IRAMBUFF when RAM configured high
|
||||||
|
gx_LINECOUNT equ $8069a
|
||||||
|
|
||||||
|
;
|
||||||
|
; flags used
|
||||||
|
;
|
||||||
|
sGX equ 0
|
||||||
|
sHIGH equ 1
|
||||||
|
|
||||||
|
;
|
||||||
|
; begin off assembler code
|
||||||
|
;
|
||||||
|
textr "HPHP48-R"
|
||||||
|
|
||||||
|
dcr.5 DOCOL
|
||||||
|
dcr.5 CK2NOLASTWD
|
||||||
|
dcr.5 CKandDISPATCH1
|
||||||
|
dcr.5 DOBINT
|
||||||
|
dcr.5 $000bb
|
||||||
|
|
||||||
|
;
|
||||||
|
; only executed when (2: hxs, 1: hxs)
|
||||||
|
;
|
||||||
|
dcr.5 DOCOL
|
||||||
|
dcr.5 VERSTRING
|
||||||
|
|
||||||
|
dcr.5 DOCODE
|
||||||
|
code_start
|
||||||
|
dcr.5 code_end-code_start
|
||||||
|
|
||||||
|
jsr DisableIntr
|
||||||
|
|
||||||
|
;
|
||||||
|
; figure out version
|
||||||
|
;
|
||||||
|
jsr PopASavptr
|
||||||
|
move.1 #0, p
|
||||||
|
move.5 #24, c.p
|
||||||
|
add.a c, a
|
||||||
|
move.a a, d1
|
||||||
|
move.b (d1), a
|
||||||
|
move.2 #$4a, c.p ; 'J' == last version for S/SX
|
||||||
|
bclr #sGX, st
|
||||||
|
ble.b a, c, got_version
|
||||||
|
bset #sGX, st
|
||||||
|
got_version
|
||||||
|
bclr #sHIGH, st
|
||||||
|
|
||||||
|
;
|
||||||
|
; get arguments
|
||||||
|
;
|
||||||
|
jsr GETPTR
|
||||||
|
jsr POPHXS
|
||||||
|
move.1 #0, p
|
||||||
|
move.5 #$ffff0, c.p
|
||||||
|
and.a c, a
|
||||||
|
move.a a, r4
|
||||||
|
|
||||||
|
jsr GETPTR
|
||||||
|
jsr POPHXS
|
||||||
|
move.1 #0, p
|
||||||
|
move.5 #$ffff0, c.p
|
||||||
|
and.a c, a
|
||||||
|
move.a a, r3
|
||||||
|
|
||||||
|
;
|
||||||
|
; open IO
|
||||||
|
;
|
||||||
|
move.5 #$00110, d1
|
||||||
|
move.1 #8, a.p
|
||||||
|
move.1 a, (d1)
|
||||||
|
|
||||||
|
;
|
||||||
|
; set speed to 9600 baud
|
||||||
|
;
|
||||||
|
move.2 #$0d, d1
|
||||||
|
move.1 #6, a.p
|
||||||
|
move.1 a, (d1)
|
||||||
|
|
||||||
|
;
|
||||||
|
; dump ROM $00000 - $6ffff
|
||||||
|
;
|
||||||
|
dump_rom_0
|
||||||
|
move.a r3, a
|
||||||
|
move.5 #$6fff0, c.p
|
||||||
|
bgt.a a, c, dump_rom_7
|
||||||
|
move.a a, r1
|
||||||
|
|
||||||
|
move.a r4, c
|
||||||
|
move.a c, b
|
||||||
|
move.5 #$6fff0, c.p
|
||||||
|
ble.a b, c, end_addr_0
|
||||||
|
move.a c, b
|
||||||
|
end_addr_0
|
||||||
|
subr.a b, a
|
||||||
|
bcc continue_0
|
||||||
|
bra.3 dump_done
|
||||||
|
continue_0
|
||||||
|
move.a a, r2
|
||||||
|
|
||||||
|
bsr.3 prog_start
|
||||||
|
|
||||||
|
move.5 #$70000, a.p
|
||||||
|
move.a a, r3
|
||||||
|
|
||||||
|
;
|
||||||
|
; dump ROM $70000 - $7ffff
|
||||||
|
;
|
||||||
|
dump_rom_7
|
||||||
|
move.a r3, a
|
||||||
|
move.5 #$7fff0, c.p
|
||||||
|
bgt.a a, c, dump_done_7
|
||||||
|
bra.3 continue_7
|
||||||
|
dump_done_7
|
||||||
|
bbs #sGX, st, continue_8
|
||||||
|
bra.3 dump_done
|
||||||
|
continue_8
|
||||||
|
bra.3 dump_rom_8
|
||||||
|
continue_7
|
||||||
|
move.a a, r1
|
||||||
|
|
||||||
|
move.a r4, c
|
||||||
|
move.a c, b
|
||||||
|
move.5 #$7fff0, c.p
|
||||||
|
ble.a b, c, end_addr_7
|
||||||
|
move.a c, b
|
||||||
|
end_addr_7
|
||||||
|
subr.a b, a
|
||||||
|
bcc continue_7_2
|
||||||
|
bra.3 dump_done
|
||||||
|
continue_7_2
|
||||||
|
move.a a, r2
|
||||||
|
|
||||||
|
bbs #sGX, st, gx_dump_rom_7
|
||||||
|
bsr.3 copy_prog
|
||||||
|
move.5 #sx_prog_high, c.p
|
||||||
|
jsr sx_GosubHidC
|
||||||
|
bsr.3 copy_prog
|
||||||
|
bra.3 dump_done
|
||||||
|
|
||||||
|
gx_dump_rom_7
|
||||||
|
;
|
||||||
|
; unconfigure devices at 7e000 - 7ffff
|
||||||
|
;
|
||||||
|
move.5 #$7f000, c.p
|
||||||
|
uncnfg
|
||||||
|
move.5 #$7e000, c.p
|
||||||
|
uncnfg
|
||||||
|
|
||||||
|
bsr.3 prog_start
|
||||||
|
|
||||||
|
;
|
||||||
|
; reconfigure devices at 7e000 - 7ffff
|
||||||
|
;
|
||||||
|
move.5 #$ff000, c.p
|
||||||
|
config
|
||||||
|
move.5 #$7f000, c.p
|
||||||
|
config
|
||||||
|
move.5 #$ff000, c.p
|
||||||
|
config
|
||||||
|
move.5 #$7e000, c.p
|
||||||
|
config
|
||||||
|
|
||||||
|
move.5 #$80000, a.p
|
||||||
|
move.a a, r3
|
||||||
|
|
||||||
|
;
|
||||||
|
; dump ROM $80000 - $bffff
|
||||||
|
;
|
||||||
|
dump_rom_8
|
||||||
|
move.a r3, a
|
||||||
|
move.5 #$bfff0, c.p
|
||||||
|
bgt.a a, c, dump_rom_c
|
||||||
|
move.a a, r1
|
||||||
|
|
||||||
|
move.a r4, c
|
||||||
|
move.a c, b
|
||||||
|
move.5 #$bfff0, c.p
|
||||||
|
ble.a b, c, end_addr_8
|
||||||
|
move.a c, b
|
||||||
|
end_addr_8
|
||||||
|
subr.a b, a
|
||||||
|
bcc continue_8_2
|
||||||
|
bra.3 dump_done
|
||||||
|
continue_8_2
|
||||||
|
move.a a, r2
|
||||||
|
|
||||||
|
bsr.3 copy_prog
|
||||||
|
move.5 #gx_prog_high, c.p
|
||||||
|
jsr gx_GosubHidC
|
||||||
|
bsr.3 copy_prog
|
||||||
|
|
||||||
|
move.5 #$c0000, a.p
|
||||||
|
move.a a, r3
|
||||||
|
|
||||||
|
;
|
||||||
|
; dump ROM $c0000 - $fffff
|
||||||
|
;
|
||||||
|
dump_rom_c
|
||||||
|
move.a r3, a
|
||||||
|
move.a a, r1
|
||||||
|
|
||||||
|
move.a r4, c
|
||||||
|
move.a c, b
|
||||||
|
move.5 #$ffff0, c.p
|
||||||
|
ble.a b, c, end_addr_c
|
||||||
|
move.a c, b
|
||||||
|
end_addr_c
|
||||||
|
subr.a b, a
|
||||||
|
bcs dump_done
|
||||||
|
move.a a, r2
|
||||||
|
|
||||||
|
bsr.3 copy_prog
|
||||||
|
bset #sHIGH, st
|
||||||
|
jsr gx_prog_low
|
||||||
|
bsr.3 copy_prog
|
||||||
|
|
||||||
|
dump_done
|
||||||
|
;
|
||||||
|
; close IO
|
||||||
|
;
|
||||||
|
bsr.3 send_crnl
|
||||||
|
move.5 #$00110, d1
|
||||||
|
move.1 #0, a.p
|
||||||
|
move.1 a, (d1)
|
||||||
|
|
||||||
|
;
|
||||||
|
; back to RPL
|
||||||
|
;
|
||||||
|
jsr AllowIntr
|
||||||
|
jmp GETPTRLOOP
|
||||||
|
|
||||||
|
;
|
||||||
|
; exchange program with memory at address prog_low
|
||||||
|
;
|
||||||
|
copy_prog
|
||||||
|
move.a pc, c
|
||||||
|
prog_offset
|
||||||
|
move.5 #prog_start-prog_offset, a.p
|
||||||
|
add.a a, c
|
||||||
|
move.a c, d0
|
||||||
|
bbs #sGX, st, gx_addr
|
||||||
|
move.5 #sx_prog_low, d1
|
||||||
|
bra.3 sx_addr
|
||||||
|
gx_addr
|
||||||
|
move.5 #gx_prog_low, d1
|
||||||
|
sx_addr
|
||||||
|
move.5 #prog_end-prog_start, a.p
|
||||||
|
lsr.a #4, a
|
||||||
|
move.a a, b
|
||||||
|
|
||||||
|
copy_word
|
||||||
|
move.w (d0), a
|
||||||
|
move.w (d1), c
|
||||||
|
move.w c, (d0)
|
||||||
|
move.w a, (d1)
|
||||||
|
add.a #16, d0
|
||||||
|
add.a #16, d1
|
||||||
|
dec.a b
|
||||||
|
bcc copy_word
|
||||||
|
rtn
|
||||||
|
|
||||||
|
;
|
||||||
|
; this is the start of the actual dump routine
|
||||||
|
;
|
||||||
|
prog_start
|
||||||
|
bbc #sHIGH, st, skip_uncover_c
|
||||||
|
;
|
||||||
|
; uncover ROM at c0000 - fffff
|
||||||
|
;
|
||||||
|
move.5 #$7f000, d0
|
||||||
|
move.b (d0), c
|
||||||
|
move.5 #gx_LINECOUNT, d0
|
||||||
|
move.b (d0), c
|
||||||
|
bset #7, c
|
||||||
|
move.b c, (d0)
|
||||||
|
move.5 #$00128, d0
|
||||||
|
move.b c, (d0)
|
||||||
|
move.5 #$c0000, c.p
|
||||||
|
uncnfg
|
||||||
|
uncnfg
|
||||||
|
|
||||||
|
skip_uncover_c
|
||||||
|
;
|
||||||
|
; get start address and number of words
|
||||||
|
;
|
||||||
|
move.a r1, a
|
||||||
|
move.a a, d0
|
||||||
|
move.a r2, a
|
||||||
|
|
||||||
|
;
|
||||||
|
; dump the ROM
|
||||||
|
;
|
||||||
|
loop
|
||||||
|
move.a a, r0
|
||||||
|
bsr.3 send_addr
|
||||||
|
move.2 #$3a, c.p
|
||||||
|
bsr.3 send_char
|
||||||
|
move.w (d0), c
|
||||||
|
bsr.3 send_data
|
||||||
|
bsr.3 send_crnl
|
||||||
|
|
||||||
|
add.a #16, d0
|
||||||
|
move.a r0, a
|
||||||
|
sub.a #16, a
|
||||||
|
bcc loop
|
||||||
|
|
||||||
|
bbc #sHIGH, st, skip_cover_c
|
||||||
|
;
|
||||||
|
; reconfigure memory ports at c0000
|
||||||
|
;
|
||||||
|
move.5 #$c0000, c.p
|
||||||
|
config
|
||||||
|
config
|
||||||
|
config
|
||||||
|
config
|
||||||
|
move.5 #gx_LINECOUNT, d0
|
||||||
|
move.b (d0), c
|
||||||
|
bclr #7, c
|
||||||
|
move.b c, (d0)
|
||||||
|
move.5 #$00128, d0
|
||||||
|
move.b c, (d0)
|
||||||
|
move.5 #$7f040, d0
|
||||||
|
move.b (d0), c
|
||||||
|
|
||||||
|
skip_cover_c
|
||||||
|
rtn
|
||||||
|
|
||||||
|
;
|
||||||
|
; send data in C.W as hex characters
|
||||||
|
;
|
||||||
|
send_data
|
||||||
|
move.w c, b
|
||||||
|
move.2 #$0f, c.p
|
||||||
|
move.b c, d
|
||||||
|
bra.3 send_all
|
||||||
|
|
||||||
|
;
|
||||||
|
; send addr in D0 as hex characters
|
||||||
|
;
|
||||||
|
send_addr
|
||||||
|
exg.a a, d0
|
||||||
|
move.a a, c
|
||||||
|
exg.a a, d0
|
||||||
|
exg.1 p, c.4
|
||||||
|
exg.1 p, c.0
|
||||||
|
exg.1 p, c.4
|
||||||
|
exg.1 p, c.3
|
||||||
|
exg.1 p, c.1
|
||||||
|
exg.1 p, c.3
|
||||||
|
move.a c, b
|
||||||
|
move.2 #$04, c.p
|
||||||
|
move.b c, d
|
||||||
|
|
||||||
|
;
|
||||||
|
; send D.B many nibbles from B.W
|
||||||
|
;
|
||||||
|
send_all
|
||||||
|
clr.b c
|
||||||
|
move.p b, c
|
||||||
|
bsr.3 send_hex_nib
|
||||||
|
lsr.w #4, b
|
||||||
|
dec.b d
|
||||||
|
bcc send_all
|
||||||
|
rtn
|
||||||
|
|
||||||
|
;
|
||||||
|
; send "\n\r"
|
||||||
|
;
|
||||||
|
send_crnl
|
||||||
|
move.2 #$0d, c.p
|
||||||
|
bsr.3 send_char
|
||||||
|
move.2 #$0a, c.p
|
||||||
|
bsr.3 send_char
|
||||||
|
rtn
|
||||||
|
|
||||||
|
;
|
||||||
|
; send nibble in C.B as hex character
|
||||||
|
;
|
||||||
|
send_hex_nib
|
||||||
|
move.2 #$30, a.p
|
||||||
|
add.b a, c
|
||||||
|
move.2 #$39, a.p
|
||||||
|
ble.b c, a, send_char
|
||||||
|
move.2 #$07, a.p
|
||||||
|
add.b a, c
|
||||||
|
;
|
||||||
|
; send character in C.B
|
||||||
|
;
|
||||||
|
send_char
|
||||||
|
move.5 #$00112, d1
|
||||||
|
xmtrdy
|
||||||
|
move.1 (d1), a
|
||||||
|
bbs #0, a, xmtrdy
|
||||||
|
move.2 #$16, d1
|
||||||
|
move.b c, (d1)
|
||||||
|
rtn
|
||||||
|
|
||||||
|
prog_end
|
||||||
|
dcr.8 $00000000
|
||||||
|
dcr.8 $00000000
|
||||||
|
|
||||||
|
code_end
|
||||||
|
|
||||||
|
dcr.5 SEMI ; end of DISPATCH
|
||||||
|
dcr.5 SEMI ; end of program object
|
45
rpm/x48.spec.in
Normal file
45
rpm/x48.spec.in
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
Summary: x48 is an HP 48 GX emulator
|
||||||
|
Name: x48
|
||||||
|
Version: @VERSION@
|
||||||
|
Release: 1
|
||||||
|
License: GPL
|
||||||
|
Group: Applications/Math
|
||||||
|
URL: http://developer.berlios.de/projects/x48/
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||||
|
Requires: libX11 libXext readline
|
||||||
|
BuildRequires: autoconf libX11-devel libXext-devel readline-devel
|
||||||
|
BuildRequires: libXt-devel
|
||||||
|
|
||||||
|
Source: http://download.berlios.de/x48/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
%description
|
||||||
|
This is an emulator of the HP 48 SX and GX calculator.
|
||||||
|
Romdumps are available from http://x48.berlios.de/
|
||||||
|
|
||||||
|
%define x11_app_defaults_dir %(pkg-config --variable appdefaultdir xt)
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
%build
|
||||||
|
%configure \
|
||||||
|
--prefix=/usr
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
%install
|
||||||
|
make DESTDIR=$RPM_BUILD_ROOT install
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%doc README
|
||||||
|
%{_bindir}/x48
|
||||||
|
%{_bindir}/dump2rom
|
||||||
|
%{_bindir}/checkrom
|
||||||
|
%{_bindir}/mkcard
|
||||||
|
%{_mandir}/man1/*
|
||||||
|
%{x11_app_defaults_dir}/X48
|
||||||
|
|
||||||
|
|
68
src/Makefile.am
Normal file
68
src/Makefile.am
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
bin_PROGRAMS = x48 dump2rom mkcard checkrom
|
||||||
|
|
||||||
|
BITMAPS = bitmaps/A.h bitmaps/B.h bitmaps/C.h bitmaps/D.h bitmaps/E.h bitmaps/F.h \
|
||||||
|
bitmaps/G.h bitmaps/H.h bitmaps/I.h bitmaps/J.h bitmaps/K.h \
|
||||||
|
bitmaps/L.h bitmaps/M.h bitmaps/N.h bitmaps/O.h bitmaps/P.h \
|
||||||
|
bitmaps/Q.h bitmaps/R.h bitmaps/S.h bitmaps/T.h bitmaps/U.h \
|
||||||
|
bitmaps/V.h bitmaps/W.h bitmaps/X.h bitmaps/Y.h bitmaps/Z.h \
|
||||||
|
bitmaps/alpha.h bitmaps/angle.h bitmaps/angle_gx.h \
|
||||||
|
bitmaps/ann_alpha.h bitmaps/ann_battery.h bitmaps/ann_busy.h \
|
||||||
|
bitmaps/ann_io.h bitmaps/ann_left.h bitmaps/ann_right.h \
|
||||||
|
bitmaps/arrow.h bitmaps/arrow_gx.h bitmaps/blank.h \
|
||||||
|
bitmaps/bracket_gx.h bitmaps/bs.h bitmaps/colon.h \
|
||||||
|
bitmaps/colon_gx.h bitmaps/comma.h bitmaps/comma_gx.h \
|
||||||
|
bitmaps/curly_gx.h bitmaps/diff.h bitmaps/div.h bitmaps/down.h \
|
||||||
|
bitmaps/equal.h bitmaps/equal_gx.h bitmaps/exp.h \
|
||||||
|
bitmaps/exp_gx.h bitmaps/gx_128K_ram.h bitmaps/gx_green.h \
|
||||||
|
bitmaps/gx_silver.h bitmaps/hash.h bitmaps/hash_gx.h \
|
||||||
|
bitmaps/hp.h bitmaps/hp48_blue.h bitmaps/hp48_bottom.h \
|
||||||
|
bitmaps/hp48_disp.h bitmaps/hp48_green_gx.h \
|
||||||
|
bitmaps/hp48_icon.h bitmaps/hp48_keys.h bitmaps/hp48_logo.h \
|
||||||
|
bitmaps/hp48_logo_gx.h bitmaps/hp48_on.h bitmaps/hp48_orange.h \
|
||||||
|
bitmaps/hp48_text.h bitmaps/hp48_text_gx.h bitmaps/hp48_top.h \
|
||||||
|
bitmaps/hp48_top_gx.h bitmaps/hp48gx.h bitmaps/hp48sx.h \
|
||||||
|
bitmaps/integral.h bitmaps/inv.h bitmaps/last.h \
|
||||||
|
bitmaps/lbrace.h bitmaps/lbracket.h bitmaps/lcurly.h \
|
||||||
|
bitmaps/left.h bitmaps/menu_label.h bitmaps/minus.h \
|
||||||
|
bitmaps/mul.h bitmaps/neg.h bitmaps/nl.h bitmaps/nl_gx.h \
|
||||||
|
bitmaps/parens_gx.h bitmaps/pi.h bitmaps/pi_gx.h \
|
||||||
|
bitmaps/plus.h bitmaps/pow10.h bitmaps/pow10_gx.h \
|
||||||
|
bitmaps/power.h bitmaps/prog.h bitmaps/prog_gx.h \
|
||||||
|
bitmaps/quote_gx.h bitmaps/rbrace.h bitmaps/rbracket.h \
|
||||||
|
bitmaps/rcurly.h bitmaps/right.h bitmaps/root.h \
|
||||||
|
bitmaps/root_gx.h bitmaps/science.h bitmaps/shl.h \
|
||||||
|
bitmaps/shr.h bitmaps/sigma.h bitmaps/slash.h \
|
||||||
|
bitmaps/small_colon.h bitmaps/sqr.h bitmaps/sqr_gx.h \
|
||||||
|
bitmaps/sqrt.h bitmaps/string.h bitmaps/three.h bitmaps/two.h \
|
||||||
|
bitmaps/under.h bitmaps/under_gx.h bitmaps/up.h
|
||||||
|
|
||||||
|
x48_SOURCES = actions.c debugger.c device.c \
|
||||||
|
disasm.c emulate.c errors.c init.c \
|
||||||
|
lcd.c main.c memory.c options.c register.c \
|
||||||
|
resources.c romio.c rpl.c serial.c timer.c \
|
||||||
|
x48_x11.c \
|
||||||
|
annunc.h append.h buttons.h constants.h debugger.h \
|
||||||
|
device.h disasm.h errors.h global.h hp48char.h hp48_emu.h \
|
||||||
|
hp48.h hp.h icon.h mmu.h options.h resources.h romio.h rpl.h \
|
||||||
|
small.h timer.h version.h X48.ad.h x48_x11.h \
|
||||||
|
$(BITMAPS)
|
||||||
|
|
||||||
|
|
||||||
|
dump2rom_SOURCES = dump2rom.c
|
||||||
|
|
||||||
|
mkcard_SOURCES = mkcard.c
|
||||||
|
|
||||||
|
checkrom_SOURCES = checkrom.c romio.c
|
||||||
|
|
||||||
|
man1_MANS = x48.man
|
||||||
|
|
||||||
|
EXTRA_DIST = $(man1_MANS) X48.ad
|
||||||
|
|
||||||
|
INCLUDES = $(X_CFLAGS)
|
||||||
|
|
||||||
|
x48_LDADD = $(X_LIBS)
|
||||||
|
|
||||||
|
|
68
src/X48.ad
Normal file
68
src/X48.ad
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
!
|
||||||
|
! This file is part of x48, an emulator of the HP-48sx Calculator.
|
||||||
|
! Copyright (C) 1994 Eddie C. Dost <ecd@dressler.de>.
|
||||||
|
!
|
||||||
|
! This program is free software; you can redistribute it and/or modify
|
||||||
|
! it under the terms of the GNU General Public License as published by
|
||||||
|
! the Free Software Foundation; either version 2 of the License, or
|
||||||
|
! (at your option) any later version.
|
||||||
|
!
|
||||||
|
! This program is distributed in the hope that it will be useful,
|
||||||
|
! but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
! GNU General Public License for more details.
|
||||||
|
!
|
||||||
|
! You should have received a copy of the GNU General Public License
|
||||||
|
! along with this program; if not, write to the Free Software
|
||||||
|
! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
!
|
||||||
|
! $Id: X48.ad,v 1.2 1994/12/07 20:27:35 ecd Exp ecd $
|
||||||
|
!
|
||||||
|
|
||||||
|
!
|
||||||
|
! X11 related stuff
|
||||||
|
!
|
||||||
|
*iconic: False
|
||||||
|
*visual: Default
|
||||||
|
*mono: False
|
||||||
|
*gray: False
|
||||||
|
*monoIcon: False
|
||||||
|
|
||||||
|
*useXShm: True
|
||||||
|
|
||||||
|
*smallLabelFont: -*-fixed-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
|
||||||
|
*mediumLabelFont: -*-fixed-bold-r-normal-*-15-*-*-*-*-*-iso8859-1
|
||||||
|
*largeLabelFont: -*-fixed-medium-r-normal-*-20-*-*-*-*-*-iso8859-1
|
||||||
|
*connectionFont: -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-1
|
||||||
|
|
||||||
|
!
|
||||||
|
! informative stuff
|
||||||
|
!
|
||||||
|
*verbose: False
|
||||||
|
*quiet: False
|
||||||
|
|
||||||
|
*printVersion: False
|
||||||
|
*printCopyright: False
|
||||||
|
*printWarranty: False
|
||||||
|
|
||||||
|
!
|
||||||
|
! resources controlling the connections
|
||||||
|
!
|
||||||
|
*useTerminal: True
|
||||||
|
*useSerial: False
|
||||||
|
*serialLine: /dev/ttyS0
|
||||||
|
|
||||||
|
!
|
||||||
|
! stuff controlling initialization
|
||||||
|
!
|
||||||
|
*completeInitialize: False
|
||||||
|
*resetOnStartup: False
|
||||||
|
*romFileName: rom.dump
|
||||||
|
*homeDirectory: .hp48
|
||||||
|
|
||||||
|
!
|
||||||
|
! resources controlling the debugger
|
||||||
|
!
|
||||||
|
*useDebugger: True
|
||||||
|
*disassemblerMnemonics: class
|
||||||
|
|
24
src/X48.ad.h
Normal file
24
src/X48.ad.h
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
"*iconic: False",
|
||||||
|
"*visual: Default",
|
||||||
|
"*mono: False",
|
||||||
|
"*gray: False",
|
||||||
|
"*monoIcon: False",
|
||||||
|
"*useXShm: True",
|
||||||
|
"*smallLabelFont: -*-fixed-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
|
||||||
|
"*mediumLabelFont: -*-fixed-bold-r-normal-*-15-*-*-*-*-*-iso8859-1",
|
||||||
|
"*largeLabelFont: -*-fixed-medium-r-normal-*-20-*-*-*-*-*-iso8859-1",
|
||||||
|
"*connectionFont: -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-1",
|
||||||
|
"*verbose: False",
|
||||||
|
"*quiet: False",
|
||||||
|
"*printVersion: False",
|
||||||
|
"*printCopyright: False",
|
||||||
|
"*printWarranty: False",
|
||||||
|
"*useTerminal: True",
|
||||||
|
"*useSerial: False",
|
||||||
|
"*serialLine: /dev/ttyS0",
|
||||||
|
"*completeInitialize: False",
|
||||||
|
"*resetOnStartup: False",
|
||||||
|
"*romFileName: rom.dump",
|
||||||
|
"*homeDirectory: .hp48",
|
||||||
|
"*useDebugger: True",
|
||||||
|
"*disassemblerMnemonics: class",
|
1087
src/actions.c
Normal file
1087
src/actions.c
Normal file
File diff suppressed because it is too large
Load diff
55
src/annunc.h
Normal file
55
src/annunc.h
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
/*
|
||||||
|
* This file is part of x48, an emulator of the HP-48sx Calculator.
|
||||||
|
* Copyright (C) 1994 Eddie C. Dost (ecd@dressler.de)
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* $Log: annunc.h,v $
|
||||||
|
* Revision 1.4 1995/01/11 18:20:01 ecd
|
||||||
|
* major update to support HP48 G/GX
|
||||||
|
*
|
||||||
|
* Revision 1.3 1994/11/02 14:51:27 ecd
|
||||||
|
* minor fix
|
||||||
|
*
|
||||||
|
* Revision 1.3 1994/11/02 14:51:27 ecd
|
||||||
|
* minor fix
|
||||||
|
*
|
||||||
|
* Revision 1.2 1994/10/06 16:28:03 ecd
|
||||||
|
* changed char to unsigned
|
||||||
|
*
|
||||||
|
* Revision 1.1 1994/09/07 12:53:20 ecd
|
||||||
|
* Initial revision
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* $Id: annunc.h,v 1.4 1995/01/11 18:20:01 ecd Exp ecd $
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _ANNUNC_H
|
||||||
|
#define _ANNUNC_H 1
|
||||||
|
|
||||||
|
#include "bitmaps/ann_alpha.h"
|
||||||
|
|
||||||
|
#include "bitmaps/ann_battery.h"
|
||||||
|
|
||||||
|
#include "bitmaps/ann_busy.h"
|
||||||
|
|
||||||
|
#include "bitmaps/ann_io.h"
|
||||||
|
|
||||||
|
#include "bitmaps/ann_left.h"
|
||||||
|
|
||||||
|
#include "bitmaps/ann_right.h"
|
||||||
|
|
||||||
|
#endif /* !_ANNUNC_H */
|
45
src/append.h
Normal file
45
src/append.h
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* This file is part of x48, an emulator of the HP-48sx Calculator.
|
||||||
|
* Copyright (C) 1994 Eddie C. Dost (ecd@dressler.de)
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* $Log: append.h,v $
|
||||||
|
* Revision 1.3 1995/01/11 18:20:01 ecd
|
||||||
|
* major update to support HP48 G/GX
|
||||||
|
*
|
||||||
|
* Revision 1.2 1994/12/07 20:16:41 ecd
|
||||||
|
* deleted empty line at top of file
|
||||||
|
*
|
||||||
|
* Revision 1.2 1994/12/07 20:16:41 ecd
|
||||||
|
* deleted empty line at top of file
|
||||||
|
*
|
||||||
|
* Revision 1.1 1994/12/07 10:16:15 ecd
|
||||||
|
* Initial revision
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* $Id: append.h,v 1.3 1995/01/11 18:20:01 ecd Exp ecd $
|
||||||
|
*/
|
||||||
|
#ifndef _APPEND_H
|
||||||
|
#define _APPEND_H 1
|
||||||
|
|
||||||
|
#include "global.h"
|
||||||
|
|
||||||
|
extern char * append_str __ProtoType__((char *buf, char *string));
|
||||||
|
extern char * append_tab __ProtoType__((char *buf));
|
||||||
|
extern char * append_tab_16 __ProtoType__((char *buf));
|
||||||
|
|
||||||
|
#endif /* !_APPEND_H */
|
5
src/bitmaps/A.h
Normal file
5
src/bitmaps/A.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define A_width 5
|
||||||
|
#define A_height 7
|
||||||
|
static unsigned char A_bits[] = {
|
||||||
|
0x0e, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11};
|
||||||
|
|
5
src/bitmaps/B.h
Normal file
5
src/bitmaps/B.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define B_width 5
|
||||||
|
#define B_height 7
|
||||||
|
static unsigned char B_bits[] = {
|
||||||
|
0x0f, 0x11, 0x11, 0x0f, 0x11, 0x11, 0x0f};
|
||||||
|
|
5
src/bitmaps/C.h
Normal file
5
src/bitmaps/C.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define C_width 5
|
||||||
|
#define C_height 7
|
||||||
|
static unsigned char C_bits[] = {
|
||||||
|
0x0e, 0x11, 0x01, 0x01, 0x01, 0x11, 0x0e};
|
||||||
|
|
5
src/bitmaps/D.h
Normal file
5
src/bitmaps/D.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define D_width 5
|
||||||
|
#define D_height 7
|
||||||
|
static unsigned char D_bits[] = {
|
||||||
|
0x0f, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0f};
|
||||||
|
|
5
src/bitmaps/E.h
Normal file
5
src/bitmaps/E.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define E_width 5
|
||||||
|
#define E_height 7
|
||||||
|
static unsigned char E_bits[] = {
|
||||||
|
0x1f, 0x01, 0x01, 0x0f, 0x01, 0x01, 0x1f};
|
||||||
|
|
5
src/bitmaps/F.h
Normal file
5
src/bitmaps/F.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define F_width 5
|
||||||
|
#define F_height 7
|
||||||
|
static unsigned char F_bits[] = {
|
||||||
|
0x1f, 0x01, 0x01, 0x0f, 0x01, 0x01, 0x01};
|
||||||
|
|
5
src/bitmaps/G.h
Normal file
5
src/bitmaps/G.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define G_width 5
|
||||||
|
#define G_height 7
|
||||||
|
static unsigned char G_bits[] = {
|
||||||
|
0x0e, 0x11, 0x01, 0x01, 0x19, 0x11, 0x0e};
|
||||||
|
|
5
src/bitmaps/H.h
Normal file
5
src/bitmaps/H.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define H_width 5
|
||||||
|
#define H_height 7
|
||||||
|
static unsigned char H_bits[] = {
|
||||||
|
0x11, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11};
|
||||||
|
|
5
src/bitmaps/I.h
Normal file
5
src/bitmaps/I.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define I_width 1
|
||||||
|
#define I_height 7
|
||||||
|
static unsigned char I_bits[] = {
|
||||||
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01};
|
||||||
|
|
5
src/bitmaps/J.h
Normal file
5
src/bitmaps/J.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define J_width 4
|
||||||
|
#define J_height 7
|
||||||
|
static unsigned char J_bits[] = {
|
||||||
|
0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x06};
|
||||||
|
|
5
src/bitmaps/K.h
Normal file
5
src/bitmaps/K.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define K_width 5
|
||||||
|
#define K_height 7
|
||||||
|
static unsigned char K_bits[] = {
|
||||||
|
0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11};
|
||||||
|
|
5
src/bitmaps/L.h
Normal file
5
src/bitmaps/L.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define L_width 4
|
||||||
|
#define L_height 7
|
||||||
|
static unsigned char L_bits[] = {
|
||||||
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0f};
|
||||||
|
|
5
src/bitmaps/M.h
Normal file
5
src/bitmaps/M.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define M_width 5
|
||||||
|
#define M_height 7
|
||||||
|
static unsigned char M_bits[] = {
|
||||||
|
0x11, 0x1b, 0x15, 0x11, 0x11, 0x11, 0x11};
|
||||||
|
|
5
src/bitmaps/N.h
Normal file
5
src/bitmaps/N.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define N_width 5
|
||||||
|
#define N_height 7
|
||||||
|
static unsigned char N_bits[] = {
|
||||||
|
0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11};
|
||||||
|
|
5
src/bitmaps/O.h
Normal file
5
src/bitmaps/O.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define O_width 5
|
||||||
|
#define O_height 7
|
||||||
|
static unsigned char O_bits[] = {
|
||||||
|
0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e};
|
||||||
|
|
5
src/bitmaps/P.h
Normal file
5
src/bitmaps/P.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define P_width 5
|
||||||
|
#define P_height 7
|
||||||
|
static unsigned char P_bits[] = {
|
||||||
|
0x0f, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x01};
|
||||||
|
|
5
src/bitmaps/Q.h
Normal file
5
src/bitmaps/Q.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define Q_width 5
|
||||||
|
#define Q_height 7
|
||||||
|
static unsigned char Q_bits[] = {
|
||||||
|
0x0e, 0x11, 0x11, 0x11, 0x15, 0x09, 0x16};
|
||||||
|
|
5
src/bitmaps/R.h
Normal file
5
src/bitmaps/R.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define R_width 5
|
||||||
|
#define R_height 7
|
||||||
|
static unsigned char R_bits[] = {
|
||||||
|
0x0f, 0x11, 0x11, 0x0f, 0x05, 0x09, 0x11};
|
||||||
|
|
5
src/bitmaps/S.h
Normal file
5
src/bitmaps/S.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define S_width 5
|
||||||
|
#define S_height 7
|
||||||
|
static unsigned char S_bits[] = {
|
||||||
|
0x0e, 0x11, 0x01, 0x0e, 0x10, 0x11, 0x0e};
|
||||||
|
|
5
src/bitmaps/T.h
Normal file
5
src/bitmaps/T.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define T_width 5
|
||||||
|
#define T_height 7
|
||||||
|
static unsigned char T_bits[] = {
|
||||||
|
0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04};
|
||||||
|
|
5
src/bitmaps/U.h
Normal file
5
src/bitmaps/U.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define U_width 5
|
||||||
|
#define U_height 7
|
||||||
|
static unsigned char U_bits[] = {
|
||||||
|
0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e};
|
||||||
|
|
5
src/bitmaps/V.h
Normal file
5
src/bitmaps/V.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define V_width 5
|
||||||
|
#define V_height 7
|
||||||
|
static unsigned char V_bits[] = {
|
||||||
|
0x11, 0x11, 0x11, 0x11, 0x0a, 0x0a, 0x04};
|
||||||
|
|
5
src/bitmaps/W.h
Normal file
5
src/bitmaps/W.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define W_width 5
|
||||||
|
#define W_height 7
|
||||||
|
static unsigned char W_bits[] = {
|
||||||
|
0x11, 0x11, 0x11, 0x11, 0x15, 0x1b, 0x11};
|
||||||
|
|
5
src/bitmaps/X.h
Normal file
5
src/bitmaps/X.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define X_width 5
|
||||||
|
#define X_height 7
|
||||||
|
static unsigned char X_bits[] = {
|
||||||
|
0x11, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x11};
|
||||||
|
|
5
src/bitmaps/Y.h
Normal file
5
src/bitmaps/Y.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define Y_width 5
|
||||||
|
#define Y_height 7
|
||||||
|
static unsigned char Y_bits[] = {
|
||||||
|
0x11, 0x11, 0x0a, 0x04, 0x04, 0x04, 0x04};
|
||||||
|
|
5
src/bitmaps/Z.h
Normal file
5
src/bitmaps/Z.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define Z_width 5
|
||||||
|
#define Z_height 7
|
||||||
|
static unsigned char Z_bits[] = {
|
||||||
|
0x1f, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1f};
|
||||||
|
|
6
src/bitmaps/alpha.h
Normal file
6
src/bitmaps/alpha.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define alpha_width 12
|
||||||
|
#define alpha_height 10
|
||||||
|
static unsigned char alpha_bits[] = {
|
||||||
|
0x78, 0x00, 0x84, 0x08, 0x82, 0x09, 0x83, 0x05, 0x83, 0x05, 0x83, 0x03,
|
||||||
|
0x83, 0x01, 0x83, 0x01, 0x46, 0x09, 0x3c, 0x06};
|
||||||
|
|
5
src/bitmaps/angle.h
Normal file
5
src/bitmaps/angle.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define angle_width 8
|
||||||
|
#define angle_height 7
|
||||||
|
static unsigned char angle_bits[] = {
|
||||||
|
0x40, 0x20, 0x10, 0x28, 0x44, 0x42, 0xff};
|
||||||
|
|
6
src/bitmaps/angle_gx.h
Normal file
6
src/bitmaps/angle_gx.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define angle_gx_width 12
|
||||||
|
#define angle_gx_height 12
|
||||||
|
static unsigned char angle_gx_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0xc0, 0x00, 0xe0, 0x01,
|
||||||
|
0xb0, 0x03, 0x18, 0x03, 0x0c, 0x03, 0x06, 0x03, 0xff, 0x0f, 0xff, 0x0f};
|
||||||
|
|
6
src/bitmaps/ann_alpha.h
Normal file
6
src/bitmaps/ann_alpha.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define ann_alpha_width 15
|
||||||
|
#define ann_alpha_height 12
|
||||||
|
static unsigned char ann_alpha_bits[] = {
|
||||||
|
0xe0, 0x03, 0x18, 0x44, 0x0c, 0x4c, 0x06, 0x2c, 0x07, 0x2c, 0x07, 0x1c,
|
||||||
|
0x07, 0x0c, 0x07, 0x0c, 0x07, 0x0e, 0x0e, 0x4d, 0xf8, 0x38, 0x00, 0x00};
|
||||||
|
|
6
src/bitmaps/ann_battery.h
Normal file
6
src/bitmaps/ann_battery.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define ann_battery_width 15
|
||||||
|
#define ann_battery_height 12
|
||||||
|
static unsigned char ann_battery_bits[] = {
|
||||||
|
0x04, 0x10, 0x02, 0x20, 0x12, 0x24, 0x09, 0x48, 0xc9, 0x49, 0xc9, 0x49,
|
||||||
|
0xc9, 0x49, 0x09, 0x48, 0x12, 0x24, 0x02, 0x20, 0x04, 0x10, 0x00, 0x00};
|
||||||
|
|
6
src/bitmaps/ann_busy.h
Normal file
6
src/bitmaps/ann_busy.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define ann_busy_width 15
|
||||||
|
#define ann_busy_height 12
|
||||||
|
static unsigned char ann_busy_bits[] = {
|
||||||
|
0xfc, 0x1f, 0x08, 0x08, 0x08, 0x08, 0xf0, 0x07, 0xe0, 0x03, 0xc0, 0x01,
|
||||||
|
0x40, 0x01, 0x20, 0x02, 0x10, 0x04, 0xc8, 0x09, 0xe8, 0x0b, 0xfc, 0x1f};
|
||||||
|
|
6
src/bitmaps/ann_io.h
Normal file
6
src/bitmaps/ann_io.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define ann_io_width 15
|
||||||
|
#define ann_io_height 12
|
||||||
|
static unsigned char ann_io_bits[] = {
|
||||||
|
0x0c, 0x00, 0x1e, 0x00, 0x33, 0x0c, 0x61, 0x18, 0xcc, 0x30, 0xfe, 0x7f,
|
||||||
|
0xfe, 0x7f, 0xcc, 0x30, 0x61, 0x18, 0x33, 0x0c, 0x1e, 0x00, 0x0c, 0x00};
|
||||||
|
|
6
src/bitmaps/ann_left.h
Normal file
6
src/bitmaps/ann_left.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define ann_left_width 15
|
||||||
|
#define ann_left_height 12
|
||||||
|
static unsigned char ann_left_bits[] = {
|
||||||
|
0xfe, 0x3f, 0xff, 0x7f, 0x9f, 0x7f, 0xcf, 0x7f, 0xe7, 0x7f, 0x03, 0x78,
|
||||||
|
0x03, 0x70, 0xe7, 0x73, 0xcf, 0x73, 0x9f, 0x73, 0xff, 0x73, 0xfe, 0x33};
|
||||||
|
|
6
src/bitmaps/ann_right.h
Normal file
6
src/bitmaps/ann_right.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define ann_right_width 15
|
||||||
|
#define ann_right_height 12
|
||||||
|
static unsigned char ann_right_bits[] = {
|
||||||
|
0xfe, 0x3f, 0xff, 0x7f, 0xff, 0x7c, 0xff, 0x79, 0xff, 0x73, 0x0f, 0x60,
|
||||||
|
0x07, 0x60, 0xe7, 0x73, 0xe7, 0x79, 0xe7, 0x7c, 0xe7, 0x7f, 0xe6, 0x3f};
|
||||||
|
|
5
src/bitmaps/arrow.h
Normal file
5
src/bitmaps/arrow.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define arrow_width 7
|
||||||
|
#define arrow_height 7
|
||||||
|
static unsigned char arrow_bits[] = {
|
||||||
|
0x00, 0x08, 0x18, 0x3f, 0x18, 0x08, 0x00};
|
||||||
|
|
7
src/bitmaps/arrow_gx.h
Normal file
7
src/bitmaps/arrow_gx.h
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#define arrow_gx_width 18
|
||||||
|
#define arrow_gx_height 12
|
||||||
|
static unsigned char arrow_gx_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x3c, 0x00,
|
||||||
|
0x00, 0xfc, 0x00, 0xff, 0xff, 0x03, 0xff, 0xff, 0x03, 0x00, 0xfc, 0x00,
|
||||||
|
0x00, 0x3c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
|
5
src/bitmaps/blank.h
Normal file
5
src/bitmaps/blank.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define blank_width 4
|
||||||
|
#define blank_height 7
|
||||||
|
static unsigned char blank_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
|
6
src/bitmaps/bracket_gx.h
Normal file
6
src/bitmaps/bracket_gx.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define bracket_gx_width 12
|
||||||
|
#define bracket_gx_height 12
|
||||||
|
static unsigned char bracket_gx_bits[] = {
|
||||||
|
0x0f, 0x0f, 0x03, 0x0c, 0x03, 0x0c, 0x03, 0x0c, 0x03, 0x0c, 0x03, 0x0c,
|
||||||
|
0x03, 0x0c, 0x03, 0x0c, 0x03, 0x0c, 0x03, 0x0c, 0x03, 0x0c, 0x0f, 0x0f};
|
||||||
|
|
6
src/bitmaps/bs.h
Normal file
6
src/bitmaps/bs.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define bs_width 11
|
||||||
|
#define bs_height 11
|
||||||
|
static unsigned char bs_bits[] = {
|
||||||
|
0x20, 0x00, 0x30, 0x00, 0x38, 0x00, 0xfc, 0x07, 0xfe, 0x07, 0xff, 0x07,
|
||||||
|
0xfe, 0x07, 0xfc, 0x07, 0x38, 0x00, 0x30, 0x00, 0x20, 0x00};
|
||||||
|
|
5
src/bitmaps/colon.h
Normal file
5
src/bitmaps/colon.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define colon_width 2
|
||||||
|
#define colon_height 10
|
||||||
|
static unsigned char colon_bits[] = {
|
||||||
|
0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
|
5
src/bitmaps/colon_gx.h
Normal file
5
src/bitmaps/colon_gx.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define colon_gx_width 8
|
||||||
|
#define colon_gx_height 12
|
||||||
|
static unsigned char colon_gx_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3, 0x00, 0x00, 0xc3, 0xc3, 0x00};
|
||||||
|
|
5
src/bitmaps/comma.h
Normal file
5
src/bitmaps/comma.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define comma_width 3
|
||||||
|
#define comma_height 7
|
||||||
|
static unsigned char comma_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x03};
|
||||||
|
|
5
src/bitmaps/comma_gx.h
Normal file
5
src/bitmaps/comma_gx.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define comma_gx_width 3
|
||||||
|
#define comma_gx_height 12
|
||||||
|
static unsigned char comma_gx_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x04, 0x04, 0x02};
|
||||||
|
|
6
src/bitmaps/curly_gx.h
Normal file
6
src/bitmaps/curly_gx.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define curly_gx_width 14
|
||||||
|
#define curly_gx_height 12
|
||||||
|
static unsigned char curly_gx_bits[] = {
|
||||||
|
0x0c, 0x0c, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x03, 0x30,
|
||||||
|
0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x06, 0x18, 0x0c, 0x0c};
|
||||||
|
|
5
src/bitmaps/diff.h
Normal file
5
src/bitmaps/diff.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define diff_width 5
|
||||||
|
#define diff_height 7
|
||||||
|
static unsigned char diff_bits[] = {
|
||||||
|
0x0e, 0x10, 0x10, 0x1e, 0x11, 0x11, 0x0e};
|
||||||
|
|
6
src/bitmaps/div.h
Normal file
6
src/bitmaps/div.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define div_width 10
|
||||||
|
#define div_height 10
|
||||||
|
static unsigned char div_bits[] = {
|
||||||
|
0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0xff, 0x03,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00};
|
||||||
|
|
6
src/bitmaps/down.h
Normal file
6
src/bitmaps/down.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define down_width 11
|
||||||
|
#define down_height 11
|
||||||
|
static unsigned char down_bits[] = {
|
||||||
|
0xff, 0x07, 0xfe, 0x03, 0xfe, 0x03, 0xfc, 0x01, 0xfc, 0x01, 0xf8, 0x00,
|
||||||
|
0xf8, 0x00, 0x70, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20, 0x00};
|
||||||
|
|
5
src/bitmaps/equal.h
Normal file
5
src/bitmaps/equal.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define equal_width 5
|
||||||
|
#define equal_height 7
|
||||||
|
static unsigned char equal_bits[] = {
|
||||||
|
0x00, 0x1f, 0x00, 0x00, 0x1f, 0x00, 0x00};
|
||||||
|
|
5
src/bitmaps/equal_gx.h
Normal file
5
src/bitmaps/equal_gx.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define equal_gx_width 8
|
||||||
|
#define equal_gx_height 12
|
||||||
|
static unsigned char equal_gx_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00};
|
||||||
|
|
6
src/bitmaps/exp.h
Normal file
6
src/bitmaps/exp.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#define exp_width 11
|
||||||
|
#define exp_height 9
|
||||||
|
static unsigned char exp_bits[] = {
|
||||||
|
0x80, 0x04, 0x00, 0x03, 0x00, 0x01, 0x8c, 0x02, 0x52, 0x02, 0x09, 0x00,
|
||||||
|
0x07, 0x00, 0x21, 0x00, 0x1e, 0x00};
|
||||||
|
|
5
src/bitmaps/exp_gx.h
Normal file
5
src/bitmaps/exp_gx.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define exp_gx_width 13
|
||||||
|
#define exp_gx_height 12
|
||||||
|
static unsigned char exp_gx_bits[] = {
|
||||||
|
0x00, 0xfb, 0x00, 0xf6, 0x00, 0xe6, 0x00, 0xf6, 0x80, 0xed, 0x18, 0xe0,
|
||||||
|
0x36, 0xe0, 0x36, 0xe0, 0x1f, 0xe0, 0x03, 0xe0, 0x13, 0xe0, 0x0e, 0xe0};
|
20
src/bitmaps/gx_128K_ram.h
Normal file
20
src/bitmaps/gx_128K_ram.h
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#define gx_128K_ram_width 43
|
||||||
|
#define gx_128K_ram_height 31
|
||||||
|
static unsigned char gx_128K_ram_bits[] = {
|
||||||
|
0xfe, 0xdf, 0xff, 0xff, 0x03, 0x00, 0xfe, 0xdf, 0xff, 0xff, 0x03, 0x00,
|
||||||
|
0xfe, 0xdf, 0xff, 0xff, 0x03, 0x00, 0xe2, 0xdf, 0xff, 0xff, 0x03, 0x00,
|
||||||
|
0x9c, 0xdf, 0xff, 0xff, 0x03, 0x00, 0x7e, 0xdf, 0xff, 0xff, 0x01, 0x00,
|
||||||
|
0x7e, 0xdf, 0xff, 0xff, 0x01, 0x00, 0xfe, 0xde, 0xff, 0xff, 0x02, 0x00,
|
||||||
|
0xfe, 0xde, 0xff, 0xff, 0x02, 0x00, 0xfe, 0xdd, 0xff, 0x7f, 0x03, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xdd, 0xff, 0xbf, 0x03, 0x00,
|
||||||
|
0xfe, 0xdb, 0xff, 0xdf, 0x03, 0x00, 0xfe, 0xdb, 0xff, 0xef, 0x03, 0x00,
|
||||||
|
0xfe, 0xd7, 0xff, 0xf7, 0x03, 0x00, 0xfe, 0xcf, 0xff, 0xfb, 0x03, 0x00,
|
||||||
|
0xfe, 0xcf, 0xff, 0xfc, 0x03, 0x00, 0xfe, 0x1f, 0x3f, 0xff, 0x03, 0x00,
|
||||||
|
0xfe, 0xdf, 0xc0, 0xff, 0x03, 0x00, 0xfe, 0xdf, 0xff, 0xff, 0x03, 0x00,
|
||||||
|
0xfe, 0xdf, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x30, 0x12, 0x1c, 0x44, 0x04,
|
||||||
|
0x27, 0x49, 0x0a, 0x24, 0x46, 0x04, 0x84, 0x39, 0x06, 0x24, 0xc9, 0x06,
|
||||||
|
0x62, 0x24, 0x07, 0x9e, 0xaf, 0x06, 0x12, 0x24, 0x09, 0x92, 0xa8, 0x05,
|
||||||
|
0xf2, 0x18, 0x11, 0x52, 0x28, 0x05};
|
||||||
|
|
14
src/bitmaps/gx_green.h
Normal file
14
src/bitmaps/gx_green.h
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#define gx_green_width 34
|
||||||
|
#define gx_green_height 22
|
||||||
|
static unsigned char gx_green_bits[] = {
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00,
|
||||||
|
0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00,
|
||||||
|
0xf0, 0x03, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xf0, 0x03,
|
||||||
|
0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00,
|
||||||
|
0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xf0,
|
||||||
|
0x03, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00,
|
||||||
|
0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00,
|
||||||
|
0xf0, 0x03};
|
||||||
|
|
13
src/bitmaps/gx_silver.h
Normal file
13
src/bitmaps/gx_silver.h
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#define gx_silver_width 35
|
||||||
|
#define gx_silver_height 21
|
||||||
|
static unsigned char gx_silver_bits[] = {
|
||||||
|
0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40,
|
||||||
|
0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x00, 0x00, 0xc4, 0x40, 0x00, 0x00,
|
||||||
|
0x00, 0x02, 0x41, 0x00, 0x00, 0x04, 0x02, 0x41, 0x00, 0x00, 0x04, 0x02,
|
||||||
|
0x42, 0x00, 0x00, 0x02, 0x01, 0x42, 0x00, 0x00, 0x02, 0x01, 0x44, 0x00,
|
||||||
|
0x00, 0x01, 0xfd, 0xff, 0xff, 0xff, 0x07, 0x01, 0x44, 0x00, 0x80, 0x00,
|
||||||
|
0x01, 0x48, 0x00, 0x40, 0x00, 0x01, 0x48, 0x00, 0x20, 0x00, 0x00, 0x50,
|
||||||
|
0x00, 0x10, 0x00, 0x00, 0x60, 0x00, 0x08, 0x00, 0x00, 0x60, 0x00, 0x06,
|
||||||
|
0x00, 0x00, 0xc0, 0x81, 0x01, 0x00, 0x00, 0x40, 0x7e, 0x00, 0x00, 0x00,
|
||||||
|
0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00};
|
||||||
|
|
5
src/bitmaps/hash.h
Normal file
5
src/bitmaps/hash.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define hash_width 5
|
||||||
|
#define hash_height 7
|
||||||
|
static unsigned char hash_bits[] = {
|
||||||
|
0x00, 0x0a, 0x1f, 0x0a, 0x0a, 0x1f, 0x0a};
|
||||||
|
|
5
src/bitmaps/hash_gx.h
Normal file
5
src/bitmaps/hash_gx.h
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define hash_gx_width 8
|
||||||
|
#define hash_gx_height 12
|
||||||
|
static unsigned char hash_gx_bits[] = {
|
||||||
|
0x00, 0x00, 0x48, 0x48, 0xfe, 0x24, 0x24, 0x7f, 0x12, 0x12, 0x00, 0x00};
|
||||||
|
|
28
src/bitmaps/hp.h
Normal file
28
src/bitmaps/hp.h
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
#define hp_width 96
|
||||||
|
#define hp_height 24
|
||||||
|
static unsigned char hp_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xf8, 0x9f, 0xfd, 0x3f, 0x60, 0xcc, 0x6f, 0x66, 0x83, 0xdf, 0xff, 0x3f,
|
||||||
|
0xfc, 0x9f, 0xf1, 0x7f, 0x60, 0xcc, 0x60, 0x66, 0x83, 0x01, 0x06, 0x06,
|
||||||
|
0xfc, 0xc7, 0xc0, 0x7f, 0x60, 0xcc, 0x60, 0x66, 0x83, 0x01, 0x06, 0x06,
|
||||||
|
0xfc, 0xc3, 0x80, 0x7f, 0x60, 0xcc, 0x40, 0x26, 0x83, 0x01, 0x06, 0x06,
|
||||||
|
0xfc, 0x61, 0x00, 0x7f, 0xe0, 0xcf, 0xcf, 0x36, 0x83, 0x1f, 0x06, 0x06,
|
||||||
|
0xfc, 0x60, 0x00, 0x7e, 0x60, 0xcc, 0xc0, 0x36, 0x83, 0x01, 0x06, 0x06,
|
||||||
|
0xfc, 0x30, 0x00, 0x7e, 0x60, 0xcc, 0x80, 0x19, 0x83, 0x01, 0x06, 0x06,
|
||||||
|
0x7c, 0xb0, 0x68, 0x7c, 0x60, 0xcc, 0x80, 0x19, 0x83, 0x01, 0x06, 0x06,
|
||||||
|
0x7c, 0xf8, 0xf9, 0x7c, 0x60, 0xcc, 0x8f, 0x19, 0xbf, 0x1f, 0x06, 0x06,
|
||||||
|
0x7c, 0x98, 0xcd, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x7c, 0xcc, 0xcc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x7c, 0xcc, 0x66, 0x7c, 0xe0, 0x87, 0x81, 0x67, 0x0c, 0xc3, 0xcf, 0x0f,
|
||||||
|
0x7c, 0x66, 0x66, 0x7c, 0x60, 0xcc, 0xc3, 0x6c, 0x86, 0xc7, 0xd8, 0x18,
|
||||||
|
0x7c, 0x66, 0x3f, 0x7e, 0x60, 0x4c, 0x62, 0x60, 0x83, 0xc4, 0xd8, 0x30,
|
||||||
|
0xfc, 0x00, 0x03, 0x7e, 0x60, 0x6c, 0x66, 0xe0, 0xc1, 0xcc, 0xd8, 0x30,
|
||||||
|
0xfc, 0x80, 0x01, 0x7f, 0xe0, 0x67, 0x66, 0xe0, 0xc1, 0xcc, 0xcf, 0x30,
|
||||||
|
0xfc, 0x81, 0x81, 0x7f, 0x60, 0xe0, 0x67, 0x60, 0xc3, 0xcf, 0xcc, 0x30,
|
||||||
|
0xfc, 0xc3, 0xc0, 0x7f, 0x60, 0x30, 0x6c, 0x60, 0x66, 0xd8, 0xd8, 0x30,
|
||||||
|
0xfc, 0xcf, 0xf0, 0x7f, 0x60, 0x30, 0xcc, 0x6c, 0x6c, 0xd8, 0xd8, 0x18,
|
||||||
|
0xf8, 0x6f, 0xfe, 0x3f, 0x60, 0x30, 0x8c, 0x67, 0x78, 0xd8, 0xd8, 0x0f,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
|
9
src/bitmaps/hp48_blue.h
Normal file
9
src/bitmaps/hp48_blue.h
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#define hp48_blue_width 5
|
||||||
|
#define hp48_blue_height 57
|
||||||
|
static unsigned char hp48_blue_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c};
|
||||||
|
|
26
src/bitmaps/hp48_bottom.h
Normal file
26
src/bitmaps/hp48_bottom.h
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#define hp48_bottom_width 32
|
||||||
|
#define hp48_bottom_height 64
|
||||||
|
static unsigned char hp48_bottom_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0x63, 0x8c, 0x31, 0xc6, 0x63, 0x8c, 0x31, 0xc6,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0x8c, 0x31, 0xc6,
|
||||||
|
0x63, 0x8c, 0x31, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x63, 0x8c, 0x31, 0xc6, 0x63, 0x8c, 0x31, 0xc6, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0x03, 0x8c, 0x31, 0xc6, 0x03, 0x8c, 0x31, 0xc6,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x30, 0x0c, 0xc3,
|
||||||
|
0xe3, 0x30, 0x0c, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xe3, 0x30, 0x0c, 0xc3, 0xe3, 0x30, 0x0c, 0xc3, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xe3, 0x30, 0x0c, 0xc3, 0xe3, 0x30, 0x0c, 0xc3,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x30, 0x0c, 0xc3,
|
||||||
|
0xe3, 0x30, 0x0c, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff};
|
||||||
|
|
11
src/bitmaps/hp48_disp.h
Normal file
11
src/bitmaps/hp48_disp.h
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#define hp48_disp_width 29
|
||||||
|
#define hp48_disp_height 21
|
||||||
|
static unsigned char hp48_disp_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f,
|
||||||
|
0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f,
|
||||||
|
0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f,
|
||||||
|
0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f,
|
||||||
|
0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f};
|
||||||
|
|
23
src/bitmaps/hp48_green_gx.h
Normal file
23
src/bitmaps/hp48_green_gx.h
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#define hp48_green_gx_width 29
|
||||||
|
#define hp48_green_gx_height 57
|
||||||
|
static unsigned char hp48_green_gx_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
|
||||||
|
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00};
|
||||||
|
|
26
src/bitmaps/hp48_icon.h
Normal file
26
src/bitmaps/hp48_icon.h
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#define hp48_icon_width 32
|
||||||
|
#define hp48_icon_height 64
|
||||||
|
static unsigned char hp48_icon_bits[] = {
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff,
|
||||||
|
0x07, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x07, 0xff, 0x01, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0,
|
||||||
|
0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0,
|
||||||
|
0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0,
|
||||||
|
0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0,
|
||||||
|
0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x63, 0x8c, 0x31, 0xc6, 0x63, 0x8c, 0x31, 0xc6, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0x63, 0x8c, 0x31, 0xc6, 0x63, 0x8c, 0x31, 0xc6,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0x8c, 0x31, 0xc6,
|
||||||
|
0x63, 0x8c, 0x31, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x63, 0x8c, 0x31, 0xc6, 0x63, 0x8c, 0x31, 0xc6, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0x03, 0x8c, 0x31, 0xc6, 0x03, 0x8c, 0x31, 0xc6,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x30, 0x0c, 0xc3,
|
||||||
|
0xe3, 0x30, 0x0c, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xe3, 0x30, 0x0c, 0xc3, 0xe3, 0x30, 0x0c, 0xc3, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xe3, 0x30, 0x0c, 0xc3, 0xe3, 0x30, 0x0c, 0xc3,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x30, 0x0c, 0xc3,
|
||||||
|
0xe3, 0x30, 0x0c, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff};
|
||||||
|
|
25
src/bitmaps/hp48_keys.h
Normal file
25
src/bitmaps/hp48_keys.h
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#define hp48_keys_width 30
|
||||||
|
#define hp48_keys_height 61
|
||||||
|
static unsigned char hp48_keys_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x9c, 0x73, 0xce, 0x39, 0x9c, 0x73, 0xce, 0x39, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x9c, 0x73, 0xce, 0x39, 0x9c, 0x73, 0xce, 0x39,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x73, 0xce, 0x39,
|
||||||
|
0x9c, 0x73, 0xce, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x9c, 0x73, 0xce, 0x39, 0x9c, 0x73, 0xce, 0x39, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xfc, 0x73, 0xce, 0x39, 0xfc, 0x73, 0xce, 0x39,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xcf, 0xf3, 0x3c,
|
||||||
|
0x1c, 0xcf, 0xf3, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xcf, 0xf3, 0x3c, 0x00, 0xcf, 0xf3, 0x3c, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xf3, 0x3c, 0x00, 0xcf, 0xf3, 0x3c,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xcf, 0xf3, 0x3c,
|
||||||
|
0x1c, 0xcf, 0xf3, 0x3c};
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue