                      Virtual HP-41
                        Release 8

                   http://www.hp41.org

============================================================
                        ENGLISH
============================================================

--------------------------------------
LOADING APPLICATION PACS
--------------------------------------
From the V41 menu, select File... Edit Configuration... to add or remove .MOD
files which contain the program code of the associated plug-in modules.
Almost all common modules are included in the MOD subdirectory.  Click Info to
see the Function Address Table and the ROM files that are in the MOD file.
Moving a module up or down will position it higher or lower in memory.  Some
modules are hardcoded to certain addresses.

-------------------------------------
KEYS
--------------------------------------
The PC Keyboard is mapped to the HP-41 keyboard as follows:
  F1 brings up help file
  F2 maps to ON
  F3 maps to USER
  F4 maps to PRGM
  F5 maps to ALPHA
  F6 maps to SST
  F7 maps to R/S
  ESC and Backspace map to BACKARROW
  CTRL copies the LCD
  TAB activates TURBO mode
  SHIFT maps to SHIFT
  ,< and .> map to .,
  /*-+ keys map to corresponding keys
  '" maps to MULTIPLY
  A-Z, 1-9 are directly mapped to corresponding keys regardless of shift state
  This means in ALPHA mode, the number keys do not produce numbers.

The mouse (or a touchscreen) can be used to press any key.

If you click on the LCD its contents will be copied and may then be pasted into
another application.

V41 catches raw key presses and releases without doing any processing.  The 
HP-41 kernel debounces keys, but does not have key "rollover".  The result is 
that sometimes a keystroke gets missed if the event is too fast.  This problem
should go away if you increase the "processor speed" in V41 (Options... Settings...)

--------------------------------------
GET/PUT USER CODE PROGRAMS
--------------------------------------
From the File menu, select Get or Put to load or save user code programs in 
.RAW format.  This is a binary format compiled by various utilities.  These 
are recommended:

Leo Duran's User Code Utility (Converts/Compiles/Decompiles/Generates Barcode)
Ulisse Quadri's Graphical User Interface for above

--------------------------------------
LOAD FILES (.LOD)
--------------------------------------
A load file contains configuration directives for V41.

If a load file is not specified on the command line when starting V41,
the default "HP-41CX.lod" is loaded.

These directives are case insensitive:

$MODULE Directive for Loading MOD Files
    $MODULE <MOD File>
    The MOD file is automatically loaded into the next available space.
    The MOD file must be in the same directory as the .LOD file or in the MOD
    subdirectory under it and does not include the path or file extension.
    Normally the order of loading does not matter but it is possible it will
    with certain unusual configurations.

$PAGE Directive for Loading ROM Images - NO LONGER SUPPORTED

$COMMENT Directive
    Any line with a semicolon or asterisk will be ignored.

$GET User Code Directive
    $GET <RAW User Code File>
    Where <RAW User Code File> is the name of the .RAW user code file to load.
    This file must be in the same directory as the .LOD file and must not 
    include the path or file extension.

    If a program is loaded and there is already a program in memory that is not
    terminated with an END, the new program will be appended.  This is unlike
    the card reader, which first deletes the existing program.

    When a .LOD file is saved by V41 (using File..Save/As), any $GET directives 
    in an existing LOD file will be lost.  Any user code programs will be 
    preserved in the registers.  Any files loaded with $GET will be appended to
    any programs already preserved in the registers.

$REG file Directive
    $REG <REG File>
    Where <REG File> is the name of the .REG file to load.

    The REG file must be in the same directory as the .LOD file and must 
    not include the path or file extension. A REG file contains a snapshot 
    of all system registers and User Code programs.

    This is obsolete as of Release 6, which will read .REG files created
    by older releases but will not write them.

Register State Directives
    :<REG_NAME> Value(s)

    Where <REG_NAME> can be some or all of the state variables as documented
    in the source code (HP41.h).  This includes CPU, Display, Timer and 
    RAM registers as well as special V41 variables.  These values are 
    processed before any $GET directives.  Resist the temptation to randomly 
    change these values.

LOD File Example:
;Load commands for the minimal HP-41C
$MODULE NUT-C
$GET MyCoolProgram
$GET AnotherProgram
:A_REG 00099999999990
:B_REG 00000000000000
:C_REG DF00C320000002
etc...

--------------------------------------
COMMAND LINE
--------------------------------------
The name of a .LOD file can be passed on the command line (without .LOD file extension).
/console starts the simulator in Mcode Console mode for debugging

--------------------------------------
TRACE DUMP
--------------------------------------
This feature is activated and deactivated by selecting the Options... Trace menu
option.  Every MCODE instruction executed will result in CPU registers being 
written out a dumpfile named trace.log and located in the V41 install directory.
The previous contents of this file are lost when tracing is turned on.

--------------------------------------
SOUND
--------------------------------------
There are two types of sound simulation: speaker and wave.  The speaker only works
on Windows 95/98 systems with a built in speaker.  It also takes control of the
processor speed so these options are not available in the Settings dialog.

Wave sound  should work on any system with a sound board and sounds very realistic.
Some sound boards support multiple sources.  That means you can play songs and 
listen to HP41 tones at the same time.  Others support only a single source and
you must exit any other applications that use the sound board first.  You may hear 
a few small clicks.

--------------------------------------
PRINTER
--------------------------------------
The 82143A Thermal Printer is not supported at this time.

--------------------------------------
OPERATING SYSTEM COMPATIBILITY
--------------------------------------
V41 has been tested on the following:
- Windows NT 4.0 SP6A
- Windows 98 Second Edition
- Windows 2000 SP2, SP3, SP4
- Windows XP, SP1
- Windows ME

V41 has NOT been tested on the following but should work OK:
- Windows 95 (may require two additional Microsoft files: MFC42.DLL, MSVCRT.DLL)
- Windows 98 First Edition
- Windows 2000 SP1 - May have problem with fonts

This release of V41 is NOT compatible with the following:
- Windows CE
- 16 Bit Windows (3.x)
- DOS
- Any variant of UNIX

--------------------------------------
KNOWN PROBLEMS
--------------------------------------
- There is still a problem with the timer code.  SHIFT ON does not switch into clock mode.
  See sequence of clearing perhipheral flags 12 & 13 after timer instructions.
- Get User Code could be improved to read multi LBL programs in .RAW format.
  See code in Christoph Giesselink's Emu42.

Feel free to try to fix these problems!  That is why I made the source code available.

--------------------------------------
RELEASE 8 (10/20/05)
--------------------------------------
- Rewrote timer code to fix problems
- Added MOD file format, removed ROM file format
- Added Tiny keyboard
- Added COPY LCD function by clicking on LCD or pressing CTRL
- Added Jump to Foreground option
- Added font color option
- Fixed some file I/O issues
- Added TURBO execution by pressing TAB
- Took out support for old .REG files (SDK41)
- Added support for HEPAX module
- Revised internal variable names and program structure some
- Help file comes up for first time use
- Redesigned the processor speed management
- Added non-rectangular window option for medium & large (Martin Lafferty)
- Added breakpoints

--------------------------------------
RELEASE 7B (12/5/2003)
This release changes only one file (LCD4.ttf):
--------------------------------------
- Updated LCD4.ttf to fix a problem with Windows 2000 SP4 and XP SP1

--------------------------------------
RELEASE 7A (10/29/2002)
This release changes only one file (V41.exe):
--------------------------------------
- Found another TEF arithmetic bug that was preventing SOLVE and INTEG from working
- Replaced TEF code with Eric Smith's NSIM implementation
- Added dialog to edit ROM configuration
- Implemented CPU bugs as documented in David Assembler manual
- Fixed LCD display bug indicated by service module
- The volume control is grayed when None is selected
- Added an 'X' close button to the console window

--------------------------------------
RELEASE 7 (5/6/2002)
--------------------------------------
- Added TrueType font (S.E. Vincent)
- Improved keyboard bitmaps (S.E. Vincent)
- Changed some default settings
- Removed the 16 color bitmaps
- Made menu accessable by right click and added hide menu option
- Implemented MCODE Console
- Added wave sound (Frank Bauernoeppel)
- Removed some command line options because settings are now in registery
- Added single instance option
- Fixed some display anomalies such as excessive flashing and CATALOG glitches

--------------------------------------
RELEASE 6 (11/14/2001)
--------------------------------------
- Built with Visual Studio 6.0, Install Shield 5.5 Professional and Package for
    the Web 2.0
- Added timer simulation (Zharkoi Oleg).
- Added 256 Color palette support for older 8 bit display adapters.
- Bitmaps moved out of resource file to make .exe smaller
- Added extra large keyboard.
- Added two new annunciator fonts.
- Added large LCD font.
- Replaced shifted alpha bitmap with a better one
- Converted bitmaps to 256 colors (Jim McCarthy).  There is very little visible
  difference from original 24 bit images.
- LOD file enhanced to include plain text dump of all registers.
- REG file is obsolete and will not be written to, but can still be read for 
  backwards compatibility.
- MCODE & CPU Trace output (Zharkoi Oleg).
- Default simulation speed increased to reduce keystroke misses.
- Fixed TEF bug in half adder code.  Service ROM now says "CPU OK".
- There are known problems with CCD ROM simulation especially enhanced LCD 
  features (halfnut).
- Added Always On Top option
- Added sound simulation (Zharkoi Oleg) for BEEP and TONE
  This works on Win9x but not WinNT
- Added menu item check on keyboard selected

--------------------------------------
RELEASE 5 (10/8/00)
--------------------------------------
- User code loading and saving added (with help from Leo Duran).

--------------------------------------
RELEASE 4 (4/17/00)
--------------------------------------
- First GNU GPL Release


============================================================
                        SPANISH
          Translated by: Alvaro Gerardo Surez
============================================================

Atencin: Las tildes y ees del texto en Espaol se pueden leer
correctamente si se abre este archivo con el Bloc de Notas "NOTEPAD".

--------------------------------------
CARGANDO MODULOS DE APLICACIONES
--------------------------------------
Desde el men de V41, seleccione File .... Edit Configuration... y luego los
botones "Add" o "Remove" para adicionar o remover archivos .MOD ,los cuales
contienen el cdigo de programa de los mdulos insertables asociados.
Casi todos los mdulos comunes estn incluidos en el subdirectorio MOD.
Presione con el ratn sobre "Info" para ver la tabla de direcciones de las
funciones y los archivos ROM que estn en el archivo MOD.
Mover un mdulo hacia arriba o hacia abajo lo posicionar ms arriba o ms 
abajo en la memoria.
Algunos mdulos estn fijos a ciertas direcciones de memoria y no pueden ser
movidos.


--------------------------------
TECLADO
--------------------------------
El teclado del PC est asociado con el teclado de la HP-41 de
la siguiente forma:

   F1 trae el archivo de ayuda
   F2 est encadenado con la tecla ON
   F3 est encadenado con USER
   F4 est encadenado a PRGM
   F5 est encadenado con ALPHA
   F6 est encadenado a SST
   F7 est encadenado a R/S  
   ESC y Backspace activan la tecla FLECHA IZQUIERDA
   CTRL copia la pantalla de la 41.
   TAB activa modo TURBO
   SHIFT del PC activa SHIFT de la calculadora. (Tecla amarilla)
   ,< y .> activan .,
   Las teclas /*-+ se corresponden con sus equivalentes en la calculadora.
   '" est asociado con la tecla de multiplicacin.
   A-Z, 1-9 estn asociadas directamente a las teclas correspondientes,
   independientemente del estado de la tecla SHIFT. 
   Esto significa que en modo ALPHA , las teclas de nmeros no producen
   nmeros.

El ratn (o una pantalla sensible al tacto) pueden ser usados para presionar
cualquier tecla.

Si usted presiona el botn izquierdo del ratn sobre la pantalla de la
calculadora, el contenido de la pantalla ser copiado y puede ser pegado
en cualquier otra aplicacin.

V41 atrapa las teclas presionadas y liberadas sin ejecutar ningn proceso.
El ncleo de la HP41 interpreta las teclas pero no existe un histrico de las
teclas presionadas. El resultado es que algunas veces una tecla se pierde
si el evento es demasiado rpido. Este problema podra eliminarse si ud. 
incrementa la "velocidad del procesador" en V41 (Options .. Settings ..
Processor speed).

-------------------------------------
CARGAR Y GUARDAR PROGRAMAS DE USUARIO
-------------------------------------

Desde el men File, seleccione Get o Put para cargar o guardar programas
con cdigo de usuario en formato .RAW 

Este es un formato para los programas de usuario creado por varios utilitarios.
Se recomiendan los siguientes:

Utilidad para cdigo de usuario de Leo Durn (Convierte/Compila/Descompila/
Genera cdigo de barras).

Interfaz grfica para el utilitario anterior creada por Ulisse Quadri.

------------------------------
ARCHIVOS DE CARGA (.LOD)
------------------------------

Un archivo de carga contiene directivas de configuracin para V41.

Si un archivo de carga no es especificado en la lnea de comando cuando se
est iniciando V41, entonces es usado el archivo de carga predeterminado
"HP-41CX.LOD"

Estas directivas pueden digitarse en maysculas o minsculas:

$MODULE : Directiva para la carga de archivos MOD 
    $MODULE <Archivo MOD>
    El archivo MOD es cargado automticamente en el prximo espacio
    disponible.
    El archivo MOD debe estar en el mismo directorio que tiene el archivo
    .LOD file o en un subdirectorio MOD por debajo de l y no debe 
    incluir el sendero o la extensin del archivo.
    Normalmente el orden de carga no importa pero es posible que se
    produzcan configuraciones no usuales.

$PAGE : Directiva para cargar imgenes ROM  -OBSOLETA- NO SE SOPORTA MAS


$COMMENT : Directiva para comentarios.
    Cualquier lnea que comience con punto y coma o asterisco ser
    ignorada.

$GET : Directiva para cargar cdigo de usuario
    $GET <Archivo RAW con cdigo de Usuario>
    donde <Archivo RAW con cdigo de Usuario> es el nombre del archivo RAW
    con el programa de usuario a cargar.

    Este archivo debe estar en el mismo directorio que el archivo .LOD y 
    no debe incluir el sendero o la extensin.
    
    Si un programa es cargado y ya hay un programa en memoria que no est
    terminado con un END, el cdigo cargado se adicionar al final de ese
    programa. Este comportamiento es diferente al que se presenta con la 
    Lectora de Tarjetas, en el cual primero se borra el programa existente.

    Cuando un archivo .LOD es guardado por V41 (usando File .. Save/As), 
    todas las  directivas  $GET que contenga un archivo LOD existente, se 
    perdern. Todos los programas de usuario sern preservados en los
    registros. Todos los archivos cargados con $GET sern adicionados a
    los programas ya preservados en los registros. 

$REG : Directiva de archivos
    $REG <Archivo REG>
    en donde <Archivo REG> es el nombre del archivo .REG a cargar.

    El archivo REG debe estar en el mismo directorio que el archivo .LOD
    y no debe incluir el sendero o la extensin del archivo. 
    Un archivo REG contiene una instantnea de todos los registros del
    Sistema y los programas con cdigo de usuario.

    Esto es obsoleto a partir de la version 6 de V41, la cual leer archivos
    creados por versiones ms antiguas pero no se podr escribir en ellos.

Directivas de Estado de Registros
    :<REG_NAME> Valor(es)

    donde <REG_NAME> puede ser alguna o todas las variables de estado cmo
    est documentado en el cdigo fuente (HP41.h).  Esto incluye CPU,
    Pantalla, registros de tiempo y RAM, tambin cmo variables especiales
    V41. Estos valores son procesados antes que cualquier directiva $GET.
    Se recomienda resistir la tentacin de cambiar estos valores al azar.

Ejemplo de carga de Archivo LOD:
;Carga comandos para la HP-41C mnima
$MODULE NUT-C
$GET MiPrograma
$GET OtroPrograma
:A_REG 00099999999990
:B_REG 00000000000000
:C_REG DF00C320000002
etc...

--------------------------------------
LINEA DE COMANDOS
--------------------------------------

El nombre de un archivo .LOD puede ser pasado cmo parmetro desde la 
lnea de comandos (sin la extension .LOD)
/console inicia el emulador en modo de Consola "Mcode" para rastreo de
errores.

--------------------------------------
VOLCADO DE DATOS (trace dump)
--------------------------------------

Esta caracterstica es activada o desactivada seleccionando en "Options...
Trace menu option". Cada instruccin de MCODE ejecutada resultar en que
los registros de la CPU sean escritos a un archivo de volcado de datos
llamado trace.log el cual est localizado en el directorio de instalacin
de V41. 
El contenido previo de este archivo se pierde cuando se activa
la opcin TRACE.

--------------------------------------
SONIDO
--------------------------------------
Hay dos tipos de emulacin de sonido: parlante (speaker) y onda (wave). La
primera solamente trabaja en sitemas Windows 95/98 con un parlante
disponible. 

El sonido tipo onda debera trabajar en cualquier sistema con
una tarjeta de sonido y los sonidos que se oyen son muy parecidos a los
originales de la HP41. Algunas tarjetas de sonido soportan mltiples fuentes
de sonido. Esto significa que usted puede tocar canciones y simultneamente
oir tonos de la HP41. Otras tarjetas soportan unicamente una sola fuente de
sonido y usted debe salir primero de todas las dems aplicaciones que usan
la tarjeta de sonido antes de poder oir los tonos de la 41. Usted podra oir
unos cuantos pequeos sonidos (clicks) y el emulador no simular el producido
por la tecla OFF cuando el sonido tipo onda est activado.

--------------------------------------
IMPRESORA
--------------------------------------
La impresora trmica 82143A no est soportada en este momento.

-----------------------------------------
COMPATIBILIDAD CON EL SISTEMA OPERACIONAL
-----------------------------------------

V41 ha sido probado sobre las siguientes versiones:
- Windows NT 4.0 SP6A
- Windows 98 Segunda Edicin
- Windows 2000 SP2, SP3, SP4
- Windows XP, SP1

V41 no ha sido probado en las siguientes versiones de Windows,
pero debera trabajar correctamente:

- Windows 95 (podra requerir dos archivos adicionales de Microsoft:
              MFC42.DLL, MSVCRT.DLL)
- Windows 98 Primera Edicion
- Windows ME
- Windows 2000 SP1 - Podra tener problemas con los "fonts"

Esta versin de V41 NO es compatible con los siguientes S.O.:
- Windows CE
- Windows de 16 Bits (3.x)
- DOS
- Cualquier variante de UNIX

--------------------------------------
VERSION 8 (//)
--------------------------------------
- Reescrito el cdigo para control de tiempo (timer) para corregir
  problemas.
- Aadido formato de archivo MOD, eliminado formato de archivo ROM.
- Aadido teclado "Tiny" (muy pequeo).
- Adicionada la funcion COPY LCD oprimiendo el botn del ratn.
  sobre el LCD o presionando la tecla CTRL.
- Adicionada la opcin de Salto a Primer Plano (unicamente trabaja
  con NT 4.0).
- Aadida la opcin de escoger color para la fuente (font).
- Corregidos algunos problemas con Archivos de Entrada y Salida (I/O).
- Aadido modo de ejecucin TURBO mediante una opcin del Men o
  presionando TAB.
- Eliminado el soporte para archivos .REG antiguos (SDK41).
- Aadido soporte para el modulo HEPAX.
- Fueron revisados los nombres internos de las variables
  as como la estructura del programa.

-----------------------------------------------------
VERSION 7B (12/5/2003)
Esta versin cambia unicamente un archivo: (LCD4.ttf):
-----------------------------------------------------
- Actualizada LCD4.ttf para corregir un problema con 2000 SP4 y XP SP1.

----------------------------------------------
VERSION 7A (10/29/2002)
Esta versin cambia un solo archivo: (V41.exe)
----------------------------------------------
- Hallado otro error de aritmtica TEF el cual impeda que funcionaran
  SOLVE e INTEG .
- Reemplazado el cdigo TEF con la implementacin NSIM de Eric Smith.
- Aadida caja de dilogo para editar la configuracin del ROM.
- Implementados los errores de la CPU como est documentado en el
  manual "David Assembler".
- Corregido el problema con la pantalla LCD indicado por el mdulo
  de Servicio.
- El control de volmen est desactivado cuando est seleccionado 
  "ninguno" (None).
- Aadido un botn 'X' para cerrar la ventana de consola.

--------------------------------------
VERSION 7 (5/6/2002)
--------------------------------------
- Aadida fuente TrueType (S.E. Vincent).
- Mejorados los grficos tipo .BMP para el teclado (S.E. Vincent)
- Cambiadas algunas caractersticas preestablecidas.
- Eliminadas las grficas .BMP de 16 colores.
- Ahora el Men se puede accesar presionando el botn derecho del
  ratn y se aadi una opcin para esconder el men.
- Implementada la consola de MCODE.
- Adicionado sonido tipo onda (wave) . (Frank Bauernoeppel)
- Removidas algunas opciones en la lnea de comandos debido a que
  ahora pueden controlarse desde el Registro de Windows.
- Aadida la opcin de una sola instancia.
- Corregidas algunas anomalas de la pantalla tales como parpadeo 
  excesivo y problemas con CATALOG.

--------------------------------------
VERSION 6 (11/14/2001)
--------------------------------------
- Construido con "Visual Studio" 6.0, "Install Shield 5.5" Profesional y
  el Paquete para la Web 2.0
- Adicionada la emulacin del "timer" (Zharkoi Oleg).
- Aadido soporte para paleta de 256 Colores con antiguos adaptadores
  de pantalla de 8 bits.
- Los archivos .BMP (Mapas de Bits) fueron movidos fuera del archivo
  de recursos para hacer el .exe ms pequeo.
- Aadido el teclado extra grande.
- Adicionadas dos nuevas fuentes (fonts) para los mensajes anunciadores.
- Aadida una fuente grande para la pantalla (LCD) de la calculadora.
- Reemplazado el mapa de bits usado con la tecla SHIFT en modo ALPHA,
  con uno mejor.
- Mapas de bits convertidos a 256 colores (Jim McCarthy).  Hay una muy 
  pequea diferencia visible con respecto a las imgenes originales en
  24 bits.
- Archivo LOD mejorado para incluir volcado (dump) a texto plano de
  todos los registros.
- El archivo REG es obsoleto y no ser reescrito, pero an puede ser 
  ledo por compatibilidad hacia atrs. 
- La velocidad predeterminada de emulacin fue incrementada para
  reducir la prdida de teclas presionadas.
- Corregido error TEF en medio del cdigo de adicin. El ROM de 
  Servicio ahora informa "CPU OK".
- Hay problemas conocidos con la emulacin del ROM CCD especialmente 
  con las posibilidades mejoradas del CCD (halfnut).
- Aadida la opcin de Ventana "Siempre por encima".
- Adicionada emulacin de sonido (Zharkoi Oleg) para BEEP y TONE.
  Esto trabaja sobre Windows 9x pero no con Windows NT.
- Adicionada marca de chequeo sobre el teclado seleccionado en el men.

--------------------------------------
VERSION 5 (10/8/00)
--------------------------------------
- Adicionada la posibilidad de cargar y guardar cdigo de usuario
  (con ayuda de Leo Durn).

--------------------------------------
VERSION 4 (4/17/00)
--------------------------------------
- Primera versin GNU GPL 

