emu48-mirror/README
Gwenhael Le Moine c3ab4004ad
1996-02-01: Historic version 0.37
Signed-off-by: Gwenhael Le Moine <gwenhael.le.moine@gmail.com>
2024-03-19 22:11:59 +01:00

239 lines
7.9 KiB
Text

Emu48 - an HP48 emulator
Copyright (C) 1995 Sebastien Carlier (sebc@cybera.anet.fr)
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.
Emu48 - an HP48 emulator
========================
This is Emu48, another HP48 CPU emulator. This is Version 0.37
It's at least 25% faster than a real HP48GX on an Intel DX2-66,
and it's very small. Though I did nothing to allow that, Emu48
can emulate BOTH HP48G/GX and HP48S/SX. You've just to give it
the proper rom dump file.
Emu48 is now compatible with Emul48 rom and ram files, but it
will always write them in its own style.
NOTE (from x48 by Eddie C. Dost, 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
=======
Thanks to all these friendly guys I met on the #hp48 channel on IRC :
alonzo (Alonzo Gariepy - helped a lot in optimizing Emu48)
fin (Mika Heiskanen - his Jazz is great)
moyer |
BeeF | helpful ideas, documentations, testing programs...
hideki |
and the others I might have forgotten.
Some parts of this README come from x48 README by Eddie C. Dost.
COMPILING THE SOURCES
=====================
Copy the proper makefile into the main directory and run 'make'.
Supported plateforms :
Linux/svgalib
MsDos/go32
MsDos/PharLap
Windows 95/NT
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
==================
* Press the RIGHT Control key to quit the emulator.
* Press the RIGHT Alt key to quit the emulator WITHOUT SAVING its state.
* If(When?) the emulator crashes, quit it with [RightCtrl], and run
emu48 -W
If it doesn't work, try using -WC instead of -W.
If this fails, delete the file named 'saturn' and run emu48.
USING RAM CARDS
===============
To get a RAM card, just create files named 'port1' and 'port2' with
something like this :
echo > port1
or echo > port2
You can now create files named 'port2.1', 'port2.2'...'port2.31' to have
a card bigger than 128k in port 2.
KEYBOARD SUPPORT
================
ON = Esc
A = A, Insert B = B, Home
C = C, PageUp D = D, Delete
E = E, End F = F, PageDown
G,MTH = G H,PRG = H
I,CST = I J,VAR = J
K,UP = K, Up Arrow L,NXT = L
M,' = M, ' N,STO = N
O,EVAL = O P,LEFT = P, Left Arrow
Q,DOWN = Q, Down Arrow R,RIGHT= E, Right Arrow
S,SIN = S T,COS = T
U,TAN = U V,SQRT = V
W,Y^X = W X,1/X = X
ENTER = ENTER Y,+/- = Y
Z,EEX = Z DEL = Keypad Del
<= = BackSpace ALPHA = Left Shift, Right Shift
<~| = Left Crtl |~> = Left Alt
0 = 0, Keypad 0 1 = 1, Keypad 1
2 = 2, Keypad 2 3 = 3, Keypad 3
4 = 4, Keypad 4 5 = 5, Keypad 5
6 = 6, Keypad 6 7 = 7, Keypad 7
8 = 8, Keypad 8 9 = 9, Keypad 9
. = . SPC = Space
/ = /, Keypad / * = Keypad *
- = -, Keypad - + = Keypad +
TALKING TO THE OUTSIDE WORLD
============================
* To load a kermit file from disk, name it as 'port1' in the directory
in which the emulator is. Then run the emulator, type the following
program and store it as 'GET1' :
<< GROB 8 3 0100C0 #4017h SYSEVAL #56B6h SYSEVAL DROP NEWOB >>
When you execute this program, it will put on the stack the content
of the file you renamed as 'port1'.
This works only for binary files.
* Serial ports aren't emulated. Instead, the XMIT command will write
its output to a file named 'wire'. You can use the 'SND.PRG' file
along with the DEV library (download them 'GET1') to send an object
on the stack to the file 'wire', which will be exactly like a kermit
binary file. You must quit the emulator and rename 'wire' before
sending another file, otherwise you'll only be able to recover the
first file.
KNOWN BUGS
==========
Timer handling isn't really good. I'm fixing that.
I must also provide different keyboard mappings.
Someone told me Emu48 didn't display anything on his computer. This should
be checked.
ACCESS TO THE AUTHOR
====================
Please send any bug reports, context-diffs or suggestions to
sebc@cybera.anet.fr
Sebastien Carlier
10, Allee des bergeronnettes
35340 LIFFRE
FRANCE