                      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 Suárez
============================================================

Atención: Las tildes y eñes del texto en Español 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 código de programa de los módulos insertables asociados.
Casi todos los módulos comunes están incluidos en el subdirectorio MOD.
Presione con el ratón sobre "Info" para ver la tabla de direcciones de las
funciones y los archivos ROM que están en el archivo MOD.
Mover un módulo hacia arriba o hacia abajo lo posicionará más arriba o más 
abajo en la memoria.
Algunos módulos están 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 multiplicación.
   A-Z, 1-9 están asociadas directamente a las teclas correspondientes,
   independientemente del estado de la tecla SHIFT. 
   Esto significa que en modo ALPHA , las teclas de números no producen
   números.

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

Si usted presiona el botón izquierdo del ratón sobre la pantalla de la
calculadora, el contenido de la pantalla será copiado y puede ser pegado
en cualquier otra aplicación.

V41 atrapa las teclas presionadas y liberadas sin ejecutar ningún proceso.
El núcleo de la HP41 interpreta las teclas pero no existe un histórico de las
teclas presionadas. El resultado es que algunas veces una tecla se pierde
si el evento es demasiado rápido. Este problema podría 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 código de usuario en formato .RAW 

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

Utilidad para código de usuario de Leo Durán (Convierte/Compila/Descompila/
Genera código de barras).

Interfaz gráfica para el utilitario anterior creada por Ulisse Quadri.

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

Un archivo de carga contiene directivas de configuración para V41.

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

Estas directivas pueden digitarse en mayúsculas o minúsculas:

$MODULE : Directiva para la carga de archivos MOD 
    $MODULE <Archivo MOD>
    El archivo MOD es cargado automáticamente en el próximo 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 extensión del archivo.
    Normalmente el orden de carga no importa pero es posible que se
    produzcan configuraciones no usuales.

$PAGE : Directiva para cargar imágenes ROM  -OBSOLETA- NO SE SOPORTA MAS


$COMMENT : Directiva para comentarios.
    Cualquier línea que comience con punto y coma o asterisco será
    ignorada.

$GET : Directiva para cargar código de usuario
    $GET <Archivo RAW con código de Usuario>
    donde <Archivo RAW con código 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 extensión.
    
    Si un programa es cargado y ya hay un programa en memoria que no está
    terminado con un END, el código 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 
    perderán. Todos los programas de usuario serán preservados en los
    registros. Todos los archivos cargados con $GET serán 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 extensión del archivo. 
    Un archivo REG contiene una instantánea de todos los registros del
    Sistema y los programas con código de usuario.

    Esto es obsoleto a partir de la version 6 de V41, la cual leerá archivos
    creados por versiones más 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 cómo
    está documentado en el código fuente (HP41.h).  Esto incluye CPU,
    Pantalla, registros de tiempo y RAM, también cómo variables especiales
    V41. Estos valores son procesados antes que cualquier directiva $GET.
    Se recomienda resistir la tentación de cambiar estos valores al azar.

Ejemplo de carga de Archivo LOD:
;Carga comandos para la HP-41C mínima
$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 cómo parámetro desde la 
línea 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 característica es activada o desactivada seleccionando en "Options...
Trace menu option". Cada instrucción 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 instalación
de V41. 
El contenido previo de este archivo se pierde cuando se activa
la opción TRACE.

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

El sonido tipo onda debería 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 múltiples fuentes
de sonido. Esto significa que usted puede tocar canciones y simultáneamente
oir tonos de la HP41. Otras tarjetas soportan unicamente una sola fuente de
sonido y usted debe salir primero de todas las demás aplicaciones que usan
la tarjeta de sonido antes de poder oir los tonos de la 41. Usted podría oir
unos cuantos pequeños sonidos (clicks) y el emulador no simulará el producido
por la tecla OFF cuando el sonido tipo onda está activado.

--------------------------------------
IMPRESORA
--------------------------------------
La impresora térmica 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 Edición
- Windows 2000 SP2, SP3, SP4
- Windows XP, SP1

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

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

Esta versión 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 código para control de tiempo (timer) para corregir
  problemas.
- Añadido formato de archivo MOD, eliminado formato de archivo ROM.
- Añadido teclado "Tiny" (muy pequeño).
- Adicionada la funcion COPY LCD oprimiendo el botón del ratón.
  sobre el LCD o presionando la tecla CTRL.
- Adicionada la opción de Salto a Primer Plano (unicamente trabaja
  con NT 4.0).
- Añadida la opción de escoger color para la fuente (font).
- Corregidos algunos problemas con Archivos de Entrada y Salida (I/O).
- Añadido modo de ejecución TURBO mediante una opción del Menú o
  presionando TAB.
- Eliminado el soporte para archivos .REG antiguos (SDK41).
- Añadido 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 versión 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 versión cambia un solo archivo: (V41.exe)
----------------------------------------------
- Hallado otro error de aritmética TEF el cual impedía que funcionaran
  SOLVE e INTEG .
- Reemplazado el código TEF con la implementación NSIM de Eric Smith.
- Añadida caja de diálogo para editar la configuración 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 módulo
  de Servicio.
- El control de volúmen está desactivado cuando está seleccionado 
  "ninguno" (None).
- Añadido un botón 'X' para cerrar la ventana de consola.

--------------------------------------
VERSION 7 (5/6/2002)
--------------------------------------
- Añadida fuente TrueType (S.E. Vincent).
- Mejorados los gráficos tipo .BMP para el teclado (S.E. Vincent)
- Cambiadas algunas características preestablecidas.
- Eliminadas las gráficas .BMP de 16 colores.
- Ahora el Menú se puede accesar presionando el botón derecho del
  ratón y se añadió una opción para esconder el menú.
- Implementada la consola de MCODE.
- Adicionado sonido tipo onda (wave) . (Frank Bauernoeppel)
- Removidas algunas opciones en la línea de comandos debido a que
  ahora pueden controlarse desde el Registro de Windows.
- Añadida la opción de una sola instancia.
- Corregidas algunas anomalías 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 emulación del "timer" (Zharkoi Oleg).
- Añadido 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 más pequeño.
- Añadido el teclado extra grande.
- Adicionadas dos nuevas fuentes (fonts) para los mensajes anunciadores.
- Añadida 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 
  pequeña diferencia visible con respecto a las imágenes 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 aún puede ser 
  leído por compatibilidad hacia atrás. 
- La velocidad predeterminada de emulación fue incrementada para
  reducir la pérdida de teclas presionadas.
- Corregido error TEF en medio del código de adición. El ROM de 
  Servicio ahora informa "CPU OK".
- Hay problemas conocidos con la emulación del ROM CCD especialmente 
  con las posibilidades mejoradas del CCD (halfnut).
- Añadida la opción de Ventana "Siempre por encima".
- Adicionada emulación 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 código de usuario
  (con ayuda de Leo Durán).

--------------------------------------
VERSION 4 (4/17/00)
--------------------------------------
- Primera versión GNU GPL 

