The emu48 history made from iterating over the versions listed at https://www.hpcalc.org/details/3644 https://hp.giesselink.com/emu48.htm
Find a file
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
BITMAP1.BMP 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
DUMP.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
DUMP2ROM.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
dump2rom.exe 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
dump2rom.obj 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
EMU48.H 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
EMU48.ICO 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
EMU48.MAK 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
EMU48.RC 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
EMU48_ID.BMP 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
emu48w32.exe 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
FETCH.H 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
HARDWARE.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
HARDWARE.H 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
INSTR.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
KEYBOARD.BMP 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
LST2C.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
MAIN.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
MAKEFILE 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
MEM2.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
MEMORY.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
OPCODES.H 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
PCPDBG.H 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
pcpdebug.h 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
PIX4.BMP 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
ram 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
README 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
RESOURCE.H 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
ROM 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
ROMDUMP 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
RUNME.BAT 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
SATURN.C 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00
SAVE.BAT 1996-02-01: Historic version 0.37 2024-03-19 22:11:59 +01:00

    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