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 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 Where 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 Where 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 : Value(s) Where 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 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 donde 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 en donde 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 : Valor(es) donde 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