============================================================ ENGLISH - Original SPANISH - Translated by: Alvaro Gerardo Suárez FRENCH - Translated by: R. Moumaneix ============================================================ ============================================================ ENGLISH ============================================================ Virtual HP-41 Release 9M http://www.hp41.org -------------------------------------- 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. Since Release 9B the keyboard simulation engine has been rewritten. In combination with a change in the PC keyboard interface allowing to press more than one key at the same time a 2-key rollover is now possible. If the key hold down time as single key is too short, it's still possible that sometimes a keystroke gets missed. 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 one or more user code programs in .RAW format. Until Release 8E Put User Code save only the code from the selected global label until the corresponding global END. On Release 9 this behavior has been changed. First, the listbox with the catalog shows only the first global label of each user code now, this prevents saving user code parts twice. Second, the saved user code does not begin with the global label any more, it begins with the byte followed by the END of the previous user code. This allow saving user code constructions like code beginning with a numeric label and the main text label entry, which was chosen for selection, is somewhere inside the code. By selecting more than one label in the listbox, you can put all selected user code into one RAW file. The RAW file format 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. Any line with a semicolon or asterisk first will be ignored. 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 V41.exe 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. $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 V41.exe 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. $TCPIP Directive $TCPIP These are the settings for the Virtual HP-IL interface. is the TCP/IP address and the port number of the next virtual HP-IL device. is the input port for the incoming frames from the last virtual HP-IL device. $UDP Directive $UDP These are the UDP protocol settings for the Thermal or Infrared Printer interface. and are the IPv4 address and the port number of the Printer simulation software. $UDP These are the RS-232C protocol settings for the Thermal or Infrared Printer interface. and are the COM port connector and the baud rate of connected Printer simulation. 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 -------------------------------------- SINGLE INSTANCE -------------------------------------- The Settings option "Single Instance" allows a convenient way to run only one instance of V41. If you try to start a new instance of V41, the new instance recognize the already running instance and switch to this one. Since Release 9A V41 uses an improved version of the "Single Instance" mode. If you start a new instance without a given filename, "Single Instance" operates like usual. But if you start the new V41 instance with a given .LOD filename, the already running instance compare the given .LOD filename with its own one and if they are differ, the new .LOD file is loaded. What's happen with the previous .LOD file? This depends on the "Auto Save on Exit" setting. If this checkbox is checked the previous non "Untitled" file is automatically saved before loading the new one, otherwise all changes are discarded without further notice. -------------------------------------- PAGE VIEW -------------------------------------- Loading a module into the code address space of V41 is an automated process mainly controlled by the settings inside the .MOD file and the order of the modules in the module configuration table. Using .MOD instead of .ROM files should customers keep away from the tiny details installing a module consisting of more than one 4K page or special modules which must be placed on a dedicated page. So plugging a virtual module should be as easy as plugging a real module into a HP41. For experts it's sometimes useful to know on which page which modules are located. This allows to optimize the configuration order for best usage of the limited address space of 16 pages. "Page View..." opens a dialog with rows containing the following information: 1st column: the number of an occupied page in decimal 2nd column: empty if the module has no FAT or the function 0 name has less than 8 characters otherwise the name of FAT function 0 3rd column: the module description used inside the configuration table -------------------------------------- RAM VIEWER -------------------------------------- V41 has an integrated sizable RAM Viewer dialog showing the actual editable register content. The following information is not a description of the HP41 memory structure, you need additional literature to understand the concepts behind. The context menu allows selecting if empty registers or HP41 flags are shown and to copy parts or the complete RAM content to the clipboard dependent on the empty registers setting. The view is separated into memory blocks. Some blocks are always visible, some are only visible if they contain registers. - X-Memory 2 The RAM of the 2nd X-MEMORY module (HP-82181A). - X-Memory 1 The RAM of the 1st X-MEMORY module (HP-82181A). - Data The Data area from "Top of Memory" to the Data curtain address. The "Top of Memory" address depends on the calculator model and the equipped HP-82106A or HP-82170A memory modules. - PRGM The Program Memory area from Data curtain address -1 to the address of the "chain head" (permanent .END. address). - Free Registers The Free Registers area from the "chain head" -1 to "End of Buffer". This must not be the number of free registers calculated by the HP41. The "End of Buffer" is in the HP41 view the first register from "chain head" -1 to address 0C0h which is not completely filled with null bytes. But this maybe wrong in two situations: 1) erroneous filled register with garbage (too less free registers) 2) last register of I/O buffer is filled with null bytes (too much free registers) - Buffer This area contain the "Key assignments" and I/O buffers. The "End of Buffer" is calculated by going through the chain of "Key assignments" and buffer ID's beginning from address 0C0h up to higher addresses. Each buffer ID (byte 6) register contain also the reserved number of registers (byte 5) for this buffer. This "End of Buffer" calculation is different from the calculation by the HP41 described in the "Free Registers" section and is used as end for the "Free Registers" section above. - X-Functions The RAM of the X-FUNCTIONS module (HP-82180A). - IR-Memory The RAM of the Infrared module (HP-82242A). It's always visible here independent from the RAM access state. The register at address 028-02F have only a width of 8 bit, so the upper bits contain always zero. - Status The RAM with the status registers. To enter the register edit mode: 1) Select the register line with a single left mouse button click or by keyboard 2) The line is selected now 3) Select the register line with a single left mouse button click a second time or use the key 4) This activates the edit mode, the line is now enclosed by vertical bars or marked by a rectangle 5) Use the left mouse button or the keyboard to position the input cursor 6) Enter the new register content 7) To accept the changes select a different line with the left mouse button or use the or key, to quit the changes use the key -------------------------------------- MCode Console -------------------------------------- The MCode Console is a dialog for single step machine code debugging. The console can be opened manually or is opened when a breakpoint occur and stops CPU code execution. You regularly see the actual CPU register content in hexadecimal with the exception of the "BK", "FI" and "ST" register. "BK" shows the actual bank switcher state beginning on the left side with page 0 until page 15 on the right side. Each page contains a bank number from bank 1 until bank 4. The "FI" and "ST" register are shown as bitfields, meaning each digit is a bit. For easier reading a bit containing 0 is marked as "-", a bit containing 1 show the bit number beginning with 0. For example "ST: --BA-- 7-------" mean that the ST bits 11 (B), 10 (A) and 7 are set, all others are cleared. So a "?FS 5" in Zencode can easily be answered, the bit is not set in our example. A context menu opens the possibility to modify some selected CPU registers. -------------------------------------- BREAKPOINTS -------------------------------------- The edit control in the Breakpoints dialog allows to enter a breakpoint address in hexadecimal, in octal or in the global name format. Lets make an example, DATE is a known global name and the function entry is located at 5100h, 50400o. 1) Hexadecimal input: 5100 2) Octal input: 50400o 3) Global name input: DATE Press 'Set' and on a HP-41CX you see 5100: 2D9168 [DATE] GSUBNC 5AB6 as bank 1 breakpoint in the breakpoint list. From calculator memory design it is possible that one memory page has up to four banks. So on the HP-41CX for example page 5 bank 1 contain the TIME module ROM and page 5 bank 2 an additional part of XFUNC module ROM. If you want to set a special breakpoint different from bank 1, you have to enter the 'bank no.' followed by the '#' hash character and the breakpoint address in the page. As example whe want to add the breakpoint address 5100h from top in page 5 bank 2. 1) Hexadecimal input: 2#5100 2) Octal input: 2#50400o Press 'Set' and on a HP-41CX you see 2#5100: 0CA C=B WPT -------------------------------------- TRACE DUMP -------------------------------------- This feature is activated and deactivated by selecting the Options/Trace/Enable menu option. When enabled every MCODE instruction is written out to a trace file named in the Options/Trace/Settings... dialog. For "File Mode" select "New" for creating a new empty trace file or select "Append" for appending the new trace output when trace is enabled. If you chosen "Append" and the trace file don't exists, a new trace file is created. "Octal Address" shows the address infront of the disassembled opcode and target address references in octal instead of hexadecimal. This setting is interesting when debugging code with having a VASM reference listing. Depends on the age of this document, the addresses are given in octal or hexadecimal. The "Logging" checkboxes "CPU Register", "Clock Register", "Octal Address", "Opcode" and "HP-IL Frames" determine the output content of the trace file. "CPU Register" enables printing the CPU register content in front of the disassembled opcode. "Clock Register" enables printing the Time Module register content also in front of the disassembled opcode. "IR Register" enables printing the Infrared Module register content also in front of the disassembled opcode. The hexadecimal register name is an alias for the RAM register address of the module. "Opcode" enables the hexadecimal numeric opcode output in the disassembled line. "HP-IL Frames" enables printing the sent and received HP-IL frames. -------------------------------------- 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. -------------------------------------- HP-IL -------------------------------------- Loading the 82160A HP-IL Module ROM Image enables a program interface for connecting so called Virtual HP-IL devices. These virtual devices like a virtual HP9114B disk drive are separated programs connected over a TCP/IP interface. Different devices are available at https://hp.giesselink.com/hpil.htm. The most common device is ILPer combing a generic printer, two disk drives and a special device for transferring RAW data into an all in one solution. Some printer devices are using the AUTO IDY feature of the HP-IL chip generating IDY frames automatically. This feature is also simulated, but deactivated by default to reduce the traffic on the virtual loop. To activate this feature check the item "Auto IDY Frames" in the "More Settings..." dialog. The Virtual HP-IL ecosystem, primary build for Emu71/Win, also allows accessing real hardware devices over Jean-François Garnier PIL-Box, available at http://www.jeffcalc.hp41.eu/hpil/index.html. The TCP/IP interface configuration parameters for Virtual HP-IL can be changed over the "More Settings..." dialog or set manually in the .LOD file. -------------------------------------- .MOD files with QROM -------------------------------------- What is QROM? QROM or Q-ROM stands for Quasi-ROM. In difference to the RAM Memory Modules 82106A and 82170A (to expand the register memory) and the X Memory Modules 82180A and 82181A, QROM is special page memory with a word width of 10 bit which can be used for MCODE program execution or data storage. So QROM is part of such famous modules like the HEPAX or the W&W RAMBOX. In some documents this memory is also called QRAM, don't worry about. The RAM content of the HP41 including Memory Modules and X Memory Modules is saved in the .LOD file. In contrast the content of QROM is stored together with other module data in the corresponding .MOD file. The different storage location of QROM (.MOD instead of .LOD file) takes effect when different .LOD files load the same .MOD file and so may get the QROM content from a different .LOD file session. Even more, when you run two or more instances of V41 all using the same .MOD file, each instance make a copy of the .MOD file content at startup and the last program instance closing, write back its module QROM content. So the modifications of the QROM content of the other instances get lost! So as part of your data backup strategy, you should frequently make backups of your .LOD files and .MOD files with QROM data content. .MOD files with QROM data can easily be detected by watching the file modification date. Every time such a module is unload, the file modification date change to the unload time. Some words updating V41 with the installer. Normally the installer update the current installation by overwriting the installed files. The exception are the .LOD files, the .MOD files in the MOD directory and the .RAW files in the RAW directory. These files are only overwritten when the recent file modification date of the installer file content is newer than the file in the installation directory! -------------------------------------- W&W RAMBOX I & II -------------------------------------- The W&W RAMBOX modules are supported. With the current .MOD files the RAMBOX fills the pages 8-F with RAM. Therefore these pages must be free at module load time. The easiest way to ensure this, is adding the RAMBOX .MOD file directly after loading the operating system file in the Edit Configuration... dialog. Later added .MOD files with a given page number may cover any RAMBOX page, even the RAMBOX OS page. Modules with the module position setting "Any page 8-F" will be located at the first found RAMBOX RAM page. In connection with the default RAMBOX .MOD files this is page 9, because the RAMBOX OS is located at page 8. -------------------------------------- HELIOS & Blinky PRINTER -------------------------------------- The 82143A Thermal Printer implementation has the ability to print data to an external HP82143A, the HP82242A Infrared Printer implementation the ability to print data to an external HP82240A/B printer simulation both over the UDP protocol to port 5025 on the local PC or to a COM port. You can change the protocol settings by modifying the $UDP Directive in the .LOD file. Examples for an UDP or a COM port setting are: $UDP localhost 5025 ;Thermal Printer Settings $UDP COM202 115200 ;Thermal Printer Settings Using the COM port maybe a bit complicated. You may have a printer simulation like Diego Diaz USB 82143A software. This may listen for data on COM2. But you cannot send data directly to COM2 from another application. To do this you need a Null-Modem cable for two physical COM ports or a Null-Modem emulator. I personally use a signed version of the Null-Modem emulator com0com for my x64 Windows and configured a Null-Modem connection between COM2 <-> COM202. Why COM2? Many old software, especially software from HP ACO, is only supporting COM1-COM4. In worst case, like in the HP49G firmware update tool, only COM1 and COM2 are supported. I regular reserve COM1 for a physical COM port and so COM2 is in my humble opinion the best choice for a virtual COM port. I don't have to take care about the other COM port name in the Null-Modem pair, because my written software accepts every installed COM port name. But COM202 as counterpart to COM2 is easily to remember, so my second choice is COM202. The MAN/TRACE/NORM switch of the 82143A printer is simulated by the calculator Flags 15 (1=TRACE) and 16 (0=MAN / 1=NORM) similar to the HP82242A solution. The HP82242A module save some settings like MAPON inside the module RAM. When you unplug the module and close the emulator these settings get lost. A suitable HP82143A printer simulation can be found at Diego Diaz page https://www.clonix41.org/Projects/USB-82143A/USB-82143A.zip or at https://hp.giesselink.com/hp82240b.htm. The HP82240B printer simulation on this page also supports a HP82143A mode. For proper HP82143A printing results in connection with this version of V41 it's recommended to use v1.18 or later. -------------------------------------- OPERATING SYSTEM COMPATIBILITY -------------------------------------- You have to install the VS2005 runtime files. V41 has been tested on the following: - Windows 10 x64 - Windows 7, x86/x64 - Windows XP, SP3 - Windows 98 Second Edition V41 has NOT been tested on the following but should work OK: - Windows XP, SP1, SP2 - Windows 2000 SP2, SP3, SP4 - Windows 2000 SP1 - May have problem with fonts - Windows NT 4.0 SP6A - Windows ME - Windows 98 First Edition - Windows 95 This release of V41 is NOT compatible with the following: - Windows CE - 16 Bit Windows (3.x) - DOS - Any variant of UNIX -------------------------------------- KNOWN PROBLEMS -------------------------------------- - When using a low Processor Speed setting loud sound clicks caused by sample buffer underruns. Feel free to try to fix these problems! That is why I made the source code available. -------------------------------------- RELEASE 9M (11/12/2024) -------------------------------------- - Added 'FileCount' registry entry to set the maximum number of elements in the MRU list - Changed ST and FI register display in trace output - Changed Mcode Console register layout for improved P, Q, ST and FI register output - Changed peripheral command decoder of 1LB6 simulation to a more general approach - Changed Module Info in the Edit Configuration dialog, added page address information to FAT entries for loaded module pages - Fixed Thermal Printer status register copy, an EOL character don't clear the "#06 SCO Special Column Output" bit - Fixed Mcode Console Single- and Multi-Step mode, Infrared Printer timer wasn't updated - Fixed "RAM Viewer..." window position when taskbar is not at the bottom of the desktop - Fixed ROM checksum calculation, calculation introduced in release 9H cannot calculate checksum 001 and fixed checksum verification for failed checksum 000 - Fixed peripheral read for not equipped devices, return 0 in the C[W] register - Updated Infrared Printer simulation to the latest reference implementation -------------------------------------- RELEASE 9L (04/23/2024) -------------------------------------- - Added Infrared Printer simulation - Added disable TIMER_RESOLUTION throttling for Windows 11 and later - Added QUAD relative jumps disassembly as remark to trace output - Added line content to LoadConfig() syntax error messages - Changed "RAM Viewer..." dialog, added context menu item to show HP41 flags, view content of Alpha register in ASCII and changed decoded BCD number exponent output to display view - Changed Tiny background image mode, removed special mainframe menu without Help item - Fixed MOD file loading, when page position "Odd" was defined before page position "Even", the "Odd" page wasn't loaded and using page position "Ordered" caused a configuration error when there are gaps between installed module pages - Fixed class 1 opcodes, a long jump to NOP should only suppressed on GSUBNC or GSUBC and not on GOLNC or GOLC - Fixed A=A-B, A=A-1, A=A-C, C=A-C, C=C-1, ?AG special cases -------------------------------------- RELEASE 8D (7/23/2011) -------------------------------------- - Fixed a bug with long jump which was not working in a special case -------------------------------------- RELEASE 8C (5/27/2010) -------------------------------------- - Fixed a problem with POWOFF reseting banks - caused problems with HEPAX - Updated MOD files -------------------------------------- RELEASE 8B (8/2/2008) -------------------------------------- - Includes several undocumented minor fixes - 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 8 (10/20/2005) -------------------------------------- - 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 -------------------------------------- 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 registry - 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 ============================================================ Virtual HP-41 Release 8 http://www.hp41.org 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 -------------------------------------- RELEASE 8C (5/27/2010) -------------------------------------- - Fixed a problem with POWOFF reseting banks - caused problems with HEPAX - Updated MOD files -------------------------------------- RELEASE 8B (8/2/2008) -------------------------------------- - Includes several undocumented minor fixes - 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 -------------------------------------- VERSION 8 (10/20/2005) -------------------------------------- - 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 ============================================================ FRANÇAIS Traduit par : R. Moumaneix ============================================================ HP-41 virtuelle Version 8 http://www.hp41.org -------------------------------------- CHARGEMENT DES MODULES -------------------------------------- Dans V41 (si la barre des menus n'est pas affichée faire un clic droit sur la calculatrice) sélectionner "File", "Edit...", une fenêtre nommée "Edit Configuration" s'ouvre. Dans cette fenêtre sont présents 7 boutons : - "Add" pour ajouter un module enfichable (fichier ".MOD" dans le sous-répertoire de V41, nommé MOD) - "Remove" pour supprimer le module sélectionné - "Info" pour afficher les informations relatives au composant sélectionné - "Up" pour faire monter, dans la mémoire, le module sélectionné - "Down" pour faire descendre, dans la mémoire, le module sélectionné - "OK" pour valider - "Cancel" pour abandonner Presque tous les modules courants sont inclus dans le sous-répertoire "MOD". En cliquant sur Info, alors qu'un module est sélectionné, le Bloc-notes ouvre un fichier texte, une ligne commence par "PAGE:" (vingtième ligne environ) qui donne la position du module en mémoire. Certains modules sont codés en dur pour certaines adresses (le lecteur de cartes HP 82104A, "Card-rdr.mod", est toujours à la même adresse). Déplacer un module vers le haut ou vers le bas, pour qu'il soit en position supérieure ou inférieure dans la mémoire, permet de résoudre des conflits d'adresses entre les modules (confit signalé lors de la validation). ------------------------------------- Touches -------------------------------------- Le clavier de l'ordinateur est mappé sur le clavier de la HP-41 comme suit : - F1 affiche le fichier d'aide (ce fichier) - F2 touche ON - F3 touche USER - F4 touche PRGM - F5 touche ALPHA - F6 touche SST - F7 touche R/S - ESC et BACKSPACE touche <- (CLX / CLA) - CTRL copie dans le presse-papier l'affichage de l'écran LCD - TAB active le mode "TURBO" - MAJ (anciennement SHIFT) touche SHIFT (touche jaune, doit être utilisée AVANT l'autre touche) - , et . touche ". / ," - les touches /, *, - et + du pavé numérique correspondent aux mêmes touches de la calculatrice - les touches A à Z et 1 à 9 correspondent directement (même en fonction de SHIFT) - en mode ALPHA, les touches numériques ne produisent pas de chiffres. La souris (ou un écran tactile) peut être utilisée pour appuyer sur une touche. Si vous cliquez sur l'écran LCD de la calculatrice, l'affichage sera copié dans le presse-papier et peut être collé dans une autre application. Si la frappe au clavier est trop rapide, la pression d'une touche peut ne pas être prise en compte. Ce problème peut être résolu en déplaçant vers la droite le curseur "Speed" dans V41 ("Options", "More Settings...", "Processor"). REMARQUE V41 se comporte comme la HP41 : pour obtenir le chiffre 1 par exemple, alors que le mode ALPHA est activé, il est nécessaire d'effectuer une séquence de pressions succsessives de touches : appui et relâchement de la touche SHIFT, puis appui et relâchement de la touche "1". Vous pouvez consulter l'aide-mémoire accessible par "Help", "Shifted Alpha Keys...". -------------------------------------- GET/PUT USER CODE PROGRAMS -------------------------------------- À partir du menu "File" vous pouvez charger ("Get User Code...") ou sauvegarder ("Put User Code...") des programmes personnels en format ".RAW". Il est préférable de ne pas les enregistrer dans le sous-répertoire "RAW" mais de les laisser dans le répertoire de "V41.exe". -------------------------------------- LOAD FILES (.LOD) -------------------------------------- Un fichier ".LOD" est un fichier de configuration pour V41.exe. Le fichier "HP-41CX.lod" est pris par défaut si aucun fichier de configuration n'est passé en paramètre lors de l'appel de "V41.exe". Il ne faut pas préciser l'extension ".LOD". Exemple d'appel : "%ProgramFiles%\v41\v41.exe hp-41c" Instructions éventuellement contenues dans un fichier ".LOD" (insensibles à la casse) : - $MODULE chargement des fichiers MOD $MODULE le fichier ".MOD" est automatiquement chargé dans le premier logement libre, le fichier ".MOD" doit être dans le même répertoire que le fichier ".LOD" ou dans le répertoire MOD pour ne pas devoir préciser ni le chemin ni l'extension, normalement l'ordre de chargement des modules n'a pas d'importance mais peut en avoir dans certaines configurations inhabituelles. - $PAGE chargement des images ROM - CETTE INSTRUCTION N'EST PLUS SUPPORTÉE. - $COMMENT précède un commentaire en plus, sur une même ligne, tout ce qui suit un point-virgule ou un astérisque est ignoré. - $GET chargement "User Code" $GET est le nom du fichier "User Code" (".RAW") à charger, ce fichier DOIT être dans le même répertoire que le fichier ".LOD", ni le chemin ni l'extension ne doivent être indiqués. Si un programme, déjà présent en mémoire, n'est pas terminé par l'instruction "END" (ne pas confondre avec ".END."), le nouveau programme est concaténé. Ce n'est pas comme le "Lecteur de Cartes" qui, dans ces conditions, supprimait ce dernier programme. Quand un fichier ".LOD" est sauvegardé par V41 (en utilisant "File", "Save As..."), le nouveau fichier ".LOD" écrase le précédent (ce qui fait disparaître toute instruction $GET). Tout programme présent en mémoire de V41 est sauvé dans les registres. L'ajout d'une instruction $GET dans ce fichier ".LOD" peut éventuellement fusionner deux programmes. - $REG $REG obsolète depuis la version 6 de V41, c'est en fait une partie d'un fichier ".LOD". - : indique un registre d'état : Valeur(s) peut être tout ou partie des variables d'état décrites dans le code source (HP41.h). Cela inclut CPU, écran, alarmes du module "Time", les registres de RAM ainsi que des variables spéciales V41. Ces valeurs sont traitées avant toute instruction $GET. NE MODIFIEZ PAS CES VALEURS PAR HASARD. Exemple partiel de fichier ".LOD" : ;la ligne suivante est est la partie minimale d'un fichier ".LOD" $MODULE NUT-C $GET MonProgrammePréféré $GET AutreProgramme :A_REG 00099999999990 :B_REG 00000000000000 :C_REG DF00C320000002 etc... -------------------------------------- LIGNE DE COMMANDE -------------------------------------- Le nom d'un fichier ".LOD" peut être passé en ligne de commande (SANS l'extension ".LOD"). Le paramètre "/console" démarre le simulateur V41.exe en "Mcode Console mode" pour le débogage, vous pouvez obtenir le même résultat par "Options", "Console...". -------------------------------------- TRACE DUMP -------------------------------------- Cette fonctionnalité est activée et désactivée en sélectionnant la bascule "Options", "Trace Dump". Chaque instruction MCODE exécutée et ses conséquences dans les registres CPU sont écrites dans un fichier nommé "trace.log", situé dans le répertoire d'installation V41. L'éventuel fichier "trace.log" précédent est écrasé. -------------------------------------- SON -------------------------------------- Le son "Wave" devrait fonctionner sur n'importe quel système avec une carte son, avec des sons très réalistes. Certaines cartes son permettent la simultanéïté de plusieurs sources. Cela signifie, qu'avec ces cartes, vous pouvez écouter de la musique et entendre en même temps les sons émis par la V41. D'autres cartes n'acceptent qu'une seule source et vous devrez fermer les applications qui utilisent la carte son. Il se peut qu'il y ait quelques claquements de faible niveau. -------------------------------------- IMPRIMANTE -------------------------------------- Actuellement l'imprimante thermique HP 82143A n'est pas supportée. -------------------------------------- COMPATIBILITÉ AVEC LES SYSTÈMES D'EXPLOITATION -------------------------------------- V41 a été testé avec les systèmes d'exploitation suivants : - Windows NT 4.0 SP6A - Windows 98 Deuxième Édition - Windows 2000 SP2, SP3, SP4 - Windows XP, SP1 - Windows ME. V41 n'a pas été testé sur les systèmes d'exploitation suivants, mais devrait fonctionner correctement : - Windows 95 (peut exiger deux autres fichiers Microsoft MFC42.DLL et MSVCRT.DLL) - Windows 98 Première Édition - Windows 2000 SP1 - Il peut y avoir un problème avec les polices. Cette version de V41 N'EST PAS COMPATIBLE avec : - Windows CE - Les versions 16 bits de Windows (3.x) - DOS - Toute version d'UNIX. -------------------------------------- PROBLÈMES CONNUS -------------------------------------- - Il y a encore un problème avec le code du module "Time". Voir la séquence d'effacemant des "flags" 12 et 13 après l'utilisations de fonctions du module "Time". - L'instruction "Get User Code" pourrait être améliorée pour lire des programmes multi-LBL au format ".RAW". Voir le code de Christoph Giesselink's dans Emu42. N'HÉSITEZ PAS À ESSAYER DE RÉSOUDRE CES PROBLÈMES, C'EST POUR CETTE RAISON QUE LE CODE SOURCE EST DIPONIBLE ! -------------------------------------- VERSION 8C (5/27/2010) -------------------------------------- - Correction d'un problème de réinitialisation des "banks" avec POWOFF - a causé des problèmes avec "HEPAX". - Mise à jour des fichiers ".MOD". -------------------------------------- VERSION 8B (8/2/2008) -------------------------------------- - Inclut plusieurs corrections mineures non documentées. - Le fichier d'aide s'affiche à la première utilisation de V41. - Refonte de la gestion de la vitesse du processeur. - Ajout d'une option fenêtre non-rectangulaire pour les affichages grand et moyen (Martin Lafferty). - Ajout de la possibilité d'utilisation de points d'arrêt. -------------------------------------- VERSION 8 (10/20/2005) -------------------------------------- - Réécriture du code du module "Time" pour régler les problèmes. - Ajout du format de fichier ".MOD", suppression du format de fichier ".ROM". - Ajout du petit clavier. - Ajout de la fonction de copie de l'écran LCD en cliquant desssus ou en appuyant sur la touche CTRL. - Ajout de la possibilité d'affichage au premier plan ("Options", "Jump to Foreground"). - Ajout de l'option de coloration de l'affichage ("Options", "More Settings...", "LCD Fonts"). - Correction de quelques problèmes de fichiers I/O. - Ajout du mode "TURBO" par appui sur la touche TAB. Réglage : "Options", "More Settings...", "Processor" et déplacement du curseur "Turbo". - Abandon de la prise en charge des anciens fichiers ".REG" (SDK41). - Ajout de la prise en charge du module HEPAX. - Révision des noms des variables internes et de quelques structures du programme. -------------------------------------- VERSION 7B (12/5/2003) Cette version ne change qu'un fichier (LCD4.ttf) -------------------------------------- - Mise à jour de LCD4.ttf pour résoudre un problème avec Windows 2000 SP4 et XP SP1. -------------------------------------- VERSION 7A (10/29/2002) Cette version ne change qu'un fichier (V41.exe) -------------------------------------- - Découverte d'un bug arithmétique TEF qui empêchait SOLVE et INTEG de travailler. - Remplacementdu code TEF par celui d'Éric Smith mis en œuvre dans NSIM. - Ajout de dialogues pour la modification de la configuration ROM. - Mise en œuvre bugs CPU comme indiqué dans le manuel David Assembler. - Correction d'un bug d'affichage LCD indiqué par le module de service. - Le contrôle du volume est grisé lorsque "None" est sélectionné ("Options", "More Settings...", "Sond"). - Ajout d'un bouton de fermeture "X" à la fenêtre de V41.exe. -------------------------------------- VERSION 7 (5/6/2002) -------------------------------------- - Ajout d'une police TrueType (S.E. Vincent). - Amélioration du "bitmap" du clavier (S.E. Vincent). - Modification de certains paramètres par défaut. - Abandon du "bitmap" 16 couleurs. - Menu rendu accessible par clic droit et ajout de l'option de montrer/cacher le menu ("Options", "Show Menu"). - Mise en œuvre du MCODE de la console. - Ajout du son Wave (Frank Bauernoeppel). - Suppression de certaines options en ligne de commande car les paramètres sont maintenant dans le registre de Windows. - Ajout d'une option d'instance unique. - Correction de quelques anomalies d'affichage (clignotements excessifs) et de défauts de le fonction CATALOG. -------------------------------------- VERSION 6 (11/14/2001) -------------------------------------- - Construit avec "Visual Studio 6.0", "Install Shield 5.5 Professional" et "Package for the Web 2.0". - Ajout du module "Time" (Zharkoi Oleg). - Ajout de la palette de 256 couleurs pour les vieilles cartes graphiques 8 bits. - Bitmaps déplacés hors du fichier de ressources pour obtenir un exécutable de petite taille. - Ajout d'un grand clavier. - Ajout de deux nouvelles polices d'affichage. - Ajout d'une grande police pour l'écran LCD. - Amélioration du "shifted alpha bitmap". - Bitmaps convertis en 256 couleurs (Jim McCarthy). Peu de différences avec l'original en 24 bits. - Fichiers ".LOD" améliorés afin d'inclure le fichier "dump" de tous les registres. - Les fichier ".REG" sont obsolètes, ils peuvent être lus mais ne peuvent plus être écris (compatibilité ascendante). - Sortie de MCODE & CPU Tracet (Zharkoi Oleg). - Vitesse de simulation par défaut améliorée pour réduire les touches "ratées". - Correction d'un bug dans la moitié du code additionneur. La ROM de Service affiche maintenant "CPU OK". - Il ya des problèmes connus avec la simulation ROM CCD en particulier des fonctionnalités LCD améliorées (halfnut). - Ajout de la bascule "Always On Top" ("Options", "Always On Top"). - Ajout des sons pour BEEP et TONE (Zharkoi Oleg). Ça fonctionne sous Windows 9x mais pas sous Windows NT. - Ajout d'une vérification du menu sur le clavier sélectionné. -------------------------------------- VERSION 5 (10/8/00) -------------------------------------- - Ajout du chargement et de la sauvegarde du code utilisateur (avec l'aide de Léo Duran). -------------------------------------- VERSION 4 (4/17/00) -------------------------------------- - Première version GNU GPL.