



Implementation history:


Release dates:
  Project begining. 2004/06/20


Version 0.01. 2004/09/19 

  First public release


Version 0.02. 2004/09/29 

  Implemented single step execution in normal mode
  Fixed problem with ISG and DSE. Internal accuracy could change their behavior
  Implemented some commands in program mode. The memory and flags windows now 
  have some buttons for interaction with each window


Version 0.03. 2004/10/05 

  Implemented some commands loaded with XEQ
  The interaction between sim41 main window and his child windows has great 
  enhancements.


Version 0.04. 2004/10/11 

  Implemented more commands: DEC OCT HR HMS HMS+ HMS-
  SIM41W was tested with my program 8QUEENS.PRG (look at sim41 for DOS), and his 
  behavior was OK
  Fixed bug with AVIEW


Version 0.05. 2004/10/18 

  Released two new skins: SIM41W2 and SIM41W3
  Fixed entry of ST+ ST- ST* and ST/ in program mode


Version 0.06. 2004/12/05 


  New: Implemented colors in child windows.
  Fixed: GTO.nnn in run mode
  New: Grids in child windows of variable size
  Fixed: flag 01234 refreshing in main window when these are changed
  from child window
  Changed bitmap of skin3


  Current colors in child windows:


  1. Program child window:

      If a row begins with:

      LBL --> Color:   gray
      GTO --> Color:   dark green
      XEQ --> Color:   yellow

      Default: White.


  2. Flags child window

      If a flag has status =1 (YES)   Color:  Dark Green
                    status =0 (NO)    Color:  White

  3. Memory child window

      If a row has alpha data.        Color:  Light red
                   numeric data =  0. Color:  White
                   numeric data <> 0. Color:  Dark Green


     The colors may be either active or inactive. Press upon the
     Color check box in each window.


  4. There are two new buttons for controlling the grid size
     in the child windows Memory, Flags and Program.

     If the grid size is greater than the height of the container
     window you could increment the size of the container
     window draging over the lower boundary of the window.


Version 0.07 2004/12/21


     Included two new child windows: 


   1. [Pr]  :  Virtual Printer. 
      The interaction with this window is through PRX,PRA,ADV,
      PRSTK, PRREG, PRREGX and  PRS.
      Implemented these commands in Programming mode.

      PRX means Print X
      PRA means Print Alpha
      ADV is Advance the print paper a line. 
      PRSTK Print stack
      PRREG Print memory
      PRREGX Print memory by X where X is bbb.eee and bbb is the
             first memory register and eee is the last register to print. 
      PRS  (PRsigma) Print statistical registers

      XEQ PRX, XEQ PRA, XEQ ADV, XEQ PRSTK, XEQ PRREG, XEQ PRREGX,
      XEQ PRS implemented too.  

      The output is directed to the Virtual Printer Window only if
      that window is open.

    2. [Lp] : Last print session.

       This button opens NOTEPAD with the last virtual print session.
       From Notepad you could print to you real Windows printer.

       A virtual print session begins when you open the window Virtual
       Printer and ends when you close it.

       CLOSE THIS WINDOW when you open the basic printer window!
        
       The last virtual printer session is saved in the PRINT41.TXT
       file in the emulator's directory.


    Also included in version 0.07 are the buttons [Search] and [Next]
    in the program child window and a edit box for entry of the
    text to search.


    You could search for any command. Example: Click with the 
    mouse upon the first program step. Enter the text RCL and
    press the button [Search] . The first instance of RCL is found.
    Pressing the button [NEXT] you will go to the following RCL.


    Another example: If you want to search for strings of Alpha 
    characters write " in the edit box and later press [SEARCH].
         

    Fixed a problem with positioning when you delete a row within the
    program child window.


    Until version 0.06 single step execution in run mode does not 
    advance if the stack child window is open. This problem was
    fixed in version 0.07


    Included tooltips shown when you put the mouse upon the buttons
    [P],[M],[S],[F],[Pr],[Lp].In order to view the messages the main
    calculator window must be the active window.


Version 0.08 2005/01/10

    Included four new child windows:

    1. [Tn]: Tones.

       All sound in SIM41 is played using .WAV files.

       The tones database is unlimited. TONE 0 to TONE 9 may be
       played directly. TONE 10 or greater must be played using
       indirect adressing.

       If a delay for a tone is set to a short value, only a part
       of the wav file could be played.

    2. [C]: Configuration.
       
       These settings are read by SIM41 at the beginning. If you
       change something, restart SIM41 for view the changes.

       All delays in SIM41 are counters from 1 to the value set
       in the delay.

    3. [Pc]: Program colors.

       The program colors database could be accessed by the user
       from this version. Each color has three components. Red,
       Green and Blue where each component is a number between
       0 and 255.
       
       Virtually all 41 commands could have a color assigned. 

       Example:
       Assign these colors to the following commands:

             Red Green Blue
       TONE  200   100  200
       RCL   100   100  100
       STO     0   255    0
       ST+     0    50  150
       1     220     0    0  (Color assigned to lines
                              that begin with 1 )
       X<     20    60   20  (Color assigned to lines
                              that begin with X< )

       Tip: Assign to the empty command a color,
            Example: 100 255 255


    4. [A]: Key assignments.
       Implemented ASN, PASN and CLKEYS.


Version 0.09 2005/01/27 

    Sim41 keyboard was linked to PC keyboard.
    Turbo mode was implemented.
    New Child Window: Trace.

  --------------------------------------
   KEYS
  --------------------------------------
  The PC Keyboard is mapped to the Sim41 keyboard as follows:
  F1 maps to SHIFT
  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
  F8 maps to SPACE  
  F9 : hide/show menu keys 
  END maps to ENTER
  ENTER maps to ENTER and SPACE maps to SPACE in skin3 if the
        menu keys are hidden.
  ESC breaks a running program
  Backspace maps to BACKARROW
  You can switch TURBO mode on/off using TAB.
  /*-+ keys map to corresponding keys
  A-Z, 1-9 and . are directly mapped to corresponding keys regardless of
  shift state.
  This means in ALPHA mode, the number keys do not produce numbers.

  NOTE: If the current active window is a child window and you want
  to use these links to the PC keyboard , activate the main calculator
  window first! (left click with the mouse upon that window)

  Also, some child windows move the focus from the main window to
  those windows. In this case you must close these windows in order
  to use the links to the PC keyboard.


  In TURBO mode the delay after GTO is 1 and the delay number in the
  config file is ignored.

  In this version I worked in stability of USER mode in PRGM mode too.


  New: Trace Child Window. (Button Tr)
  This window allows to follow the behavior of a program executed.

  In this version you can inspect the values  of X,Y,Z,T and ALPHA
  after each step executed.

  In order to trace these variables you must press upon the "Active"
  checkbox in this child window.

  Also, press the button NEW before run the program.

  Look at the example TRACE1.PRG. The debug session for this program
  is loaded in the trace child window. I put the program in the
  program child window. Open both windows and review the variables.

  Try the second example: TRACE2.PRG .  Load the program, open the
  trace and the program child windows. Check out "Active" and press
  the NEW button. Be sure that you are in the first program step.
  Then go to the calculator window and press RUN.

  In this example there is a STOP within the loop. You can
  view how the TRACE child window is filled with new steps in each
  cycle. Press RUN again and again and you will view more steps
  in the trace window.

  Tricks: All grids in child windows have columns of variable
  length. Go with the mouse upon the boundary between the titles
  of two columns. When the cursor changes to <-|-> you can drag
  at left or right and the size of the two columns change.

  Also , the order of columns in a grid could be changed. Go with
  the mouse until  the title of a column. The cursor changes to a
  down arrow. Then you may to move the complete column at left or
  at right draging the column. (While you drag the column title
  changes to black color)

Version 0.10 2005/02/12

  1. Some little bugs fixed as usual in each version.
  2. The configuration child window was expanded. Now you could
     assign a .BMP picture to each child window.
  3. Included skin4.
  4. New child window: Subroutines. (Button Sb)
     With this window you may watch the contents of each return
     address in each subroutine level.

     Important: Before you work with this child window , execute
     the command PACK first in SIM41.

     This is needed because if you delete some steps in a program,
     Visual Fox maintain the steps deleted hidden to the user and
     the return address in a subroutine could not be the step
     calling the subroutine.
     In this case the return address is the database record in
     Visual Fox. The program is executed right if you have deleted
     steps hidden but the data in this child window could not be
     traced.
     The command PACK deletes the hidden steps.


     Example of use:
     I included the program TESTSUB1.PRG for testing this window.
     a. Load the program.
     b. XEQ PACK
     c. Open the child program window and the Subroutines window.
     d. Run the program in single step mode using the key SST in
        Sim41.
     e. Watch the return address of the subroutine levels when
        XEQ 10 and XEQ 11 are reached.

    5. There are new buttons for FONT management in some child
       windows.
    6. In the config Window there is a new button "Back Pictures"
       This button allows to choose a back picture for child
       windows. Open the child windows first and you will see
       the changes.


Version 0.11 2005/02/22

    Included button FONT in skin4 main window.
    Button "program colors" translated to program child window.
    Included three new back pictures in back pict. window. (Load
    this window from a button in Config Child window) 
    Fixed problem with FS?C and FC?C
    Fixed behavior of "LBL a" to "LBL e" using mixed lowercase and
    uppercase.
    Fixed SCI and ENG commands within a program.

    New:
    The calculator display in skin4 has variable height from 30 to
    54 pixels. There are two buttons at left and right of the display
    for change this. Choose a greater display font. Example: Arial 28 
    or "Times New Roman 26" and increment the display height.

    Default: Height 36 pixels.  Font: Arial 14.
    

    Tip: The default PC key for the 41 [Enter] key is the [End] PC key.
     If you want to use the [Enter] PC key for the 41 [enter] key,
     in skin3 press F9 in order to hide de upper menu keys. Then the key
     will be active.

     In other skins put the focus first in some key from the upper menu
     pressing with the mouse upon the key. This action open a
     child window. Exit from the child window and press F9.
     The Pc [Enter] key will be the 41 [Enter] key while you use only
     the Pc keyboard.


Version 0.11.2 2005/02/27 - Bug Fix Release.
Version 0.11.3 2005/03/10 - Bug Fix Release and:

     Implemented:
     -----------
     OFF in PRGM mode.
     Data entry flags.
     Auto execution Flag
     Audible tone flag
     User mode flag
     Program mode Flag
     Alpha mode flag
     Changed code for FRC due to accuracy problem running
     the game 41PEGS.PRG written by me.
     Fixed problem running program AV1.PRG , (prog. included.)
     If you are in USER mode and press OFF and later ON, USER is
     not shown : Fixed

Version 0.12 2005/03/24

    Implemented: The same LBL xx may be used in several places
    within a program.
    Implementing the last change generated a new error:
    A program with GTO nn where LBL nn does not exist crash the
    calculator. Fixed
    When you have the following three consecutive steps:
    AON
    PROMPT
    AOFF
    behavior of ALPHA annunciator is not right . Fixed 

Commands implemented:


   HP41CV instruction set.
   HP41CX instruction set will be implemented soon.


Commands not implemented yet:

  
  CATALOGs greater than 1.
  LN1+X , E^X-1 for values very near to 0.
  DEL, COPY
  XEQ [alpha]something[alpha] in PRGM mode with internal
      commands.
      (Workaround: Write the command
      directly in the child program window.)
   



Known problems


  Installing the Visual Fox runtime under Windows XP freezes the installation
  at the end. Don't worry. The runtime has been installed OK.
  Now, you can proceed to install sim41w in another directory different to 
  c:\runtime, or in the same directory if you want so.


  Break a running program using the ESC key in your PC (The mouse must be
  not used for this task).
