==============================================================================================
    ³                                                                                                                                                                                                                                                        ³
    ³           K O K S I = TTK-91 ASSEMBLER SIMULATOR                                                                            
                                             vrs. 2/97                                                                                                                                                                           ³
    ³                                                                                                                                                                                                                                                        ³
    ³                The TTK-91 assembler has been defined                                                                                                                                                         ³
    ³                        for use in the course                                                                                                                                                                                          ³
    ³                    "58123-8 Tietokoneen toiminta"                                                                                                                                                                      ³
    ³                        in the course material.                                                                                                                                                                                      ³
    ³                                                                                                                                                                                                                                                        ³
    ³                      Auvo A Averell Hakkinen                                                                                                                                                                                ³
    ³                                                                                                                                                                                                                                                        ³
    ³        Helsingin yliopisto, Tietojenkasittelytieteen laitos                                                                                                                                                    ³
    ³        PL 26 (Teollisuuskatu 23), 00014 HELSINGIN YLIOPISTO                                                                                                                             ³
    ³
    ==============================================================================================

    THE FILES BELONGING TO THE PROGRAM
 
    The program consists of the following files:

        KOKSI.EXE  The executable.
        KOKSI.CFG  Configuration file, containing the name and path of the editor
                   that's being used.
        KOKSI.TX1  Program manual.
        KOKSI.TX2  The description of the commands of the assembler.

    All these files must be installed in the same directory. That directory can
     be located in a directory path defined with the PATH-variable in order to
    make the  use easier.

    If the user's working directory holds the file KOKSI.CFG, the program will
    use the editor mentioned in it. The name of the editor must be in that file
    with full pathnames and specifications.
 

    STARTING THE PROGRAM
 
    Launch the program from your working directory or your own default drive.
    This way the program will find your old codefiles and the codes you
    create/modify in your own working directory.
 

    SELECTIONS FROM THE MENUS
 
    You can move the selection bar with the cursor keys or by moving your mouse
    pointer over your selection. Select the option with RETURN-key or by clicking
    left mouse button. You can close the menu without making a selection by
    pressing ESC-key or clicking right mouse button.

    Generally in the program, left mouse button equals pressing RETURN-key and
    right mouse button equals ESC.

    In some parts of the program and especially when run in fast computers, the
    mouse behavior might be strange. I recommend using the keyboard.

    CREATING A NEW PROGRAM
 
    You can start an editor for creating a new TTK-91-code by selecting
    EDITOINTI/"luo uusi ohjelma", which loads the editor mentioned in KOKSI.CFG,
    the configuration file that should be located in the working directory of the
    user or in the same directory with the actual program.

    EDITING AN OLD PROGRAM
 
    Selecting EDITOINTI/"muokkaa vanhaa ohjelmaa" starts the editor,
    and the program that has been in simulation is taken to editing. The user is
    returned to the same program after quitting the editor.

    LOADING AN OLD PROGRAM
 
    You can load a TTK-91-program to the code-window by selecting
    SIMULOINTI/"lataa ohjelma".

    PREFERENCES
 
    Defaults:  EI Riveittain         (NOT by lines)
               EI Kommentointia      (NO commenting)
               Suoritusnopeus 8      (Execution speed 8)
               Valikoiden vari       (Menu colour)
               Pohjan vari           (Base colour)

    Compiling and execution is thus done by default from beginning to end
    without any special notifications.

    With the setting "ON Riveittain" program execution is halted after each line.
    At that time you can scroll through the code in code-window with the browsing
    keys. The execution continues from the next instruction after the user
    presses any other key.

    You can interrupt the compiling/execution entirely with the ESC-key.

    With the setting "ON Kommentointia" you get some description of the different
    phases of compiling and execution.

    You can affect the execution speed of compiled code by setting the speed from
    the menu or selecting a new speed with the keypad keys 1..9. The number keys
    can also be used to change speed during run-time. 1 is the slowest and 9 is
    the fastest execution speed.

    The memory-window can be divided in two parts (code-window and data-window)
    by grabbing the "two-tipped arrow" (under the memory window) and dragging it
    up or down in the memory-window. When you divide the memory-window into two
    parts, you can monitor both the instructions that are being executed and
    their effects on the data- and stack-areas at the same time. You can browse
    through the code-window's contents with the arrow- and PageUp/PageDown keys,
    but the contents of the data-window can't be browsed.
 

    COMPILING
 
    You can start compiling by selecting SIMULOINTI/"Kaanna ohjelma".

    If there is no code loaded in the simulator's memory when starting to
    compile, the program will ask for the code file's name. In the first
    phase of the compilation the compiler will check the syntax of the
    instructions, form a symbol table and reserve space for static variables.
    In the second phase of the compilation the compiler produces machinecode,
    in which all address parts have been patched to working order.

    You can interrupt compilation with the ESC-key.

    If the compilation flows without errors, the compiled code can still be
    seen in symbolic form in the code-window, but now the instructions are
    preceeded by their address in relation to the beginning of the code.
    The code differs from the 'original' code only so that now empty lines and
    fake instructions designated to the compiler have been removed.
 
    The static space allocation for variables has been made from immediately
    after the code and stack space will start immeadiately after this allocation.

    After compilation the entire memoryspace of the program is available for
    browsing.
 
    EXCUTION
 
    The code can be executed by selecting SIMULOINTI/"suorita koodi".
    The line currently under execution stands out from the rest in different
    color and the changes in the registers' values are seen immediately on the
    screen, and so are those memory changes that are directed to the memory cells
    seen on screen.
 
    Execution can be interrupted with the ESC-key.
 

    SAVING IN NUMERIC FORM
 
    By selecting SIMULOINTI/"talleta numeerisena" you can save compiled
    instructions into a text file. The file (extension .DMP) is always saved to
    the user's working directory.
 
    The instrucions are saved in the file one instruction per line
        - As decimal digits
        - As fields of the assembler: OPER:Rj:M:Ri:ADDR
        - In symbolic form according to the source code
 

    SYMBOLS
 
    - only the first 8 characters are significant
    - legal characters are A-Z, 0-9, _
    - the symbols aren't case sensitive
    - a symbol must not begin with a number
    - there can be a maximum of 50 symbols, but only 25 of them can be
      seen on screen simultaneously
    - the same symbol can be introduced more than once, but only the latest
      introduction stays valid (this does not apply to instruction references)
 

    OTHER RESTRICTIONS / MISSING THINGS
 
    - There are 512 memory cells reserved for the program and the data
      that it uses.
    - The program can't handle functions (for example MAX+1) written in the
      compiler's control instructions (DC, DS and EQU) or in the 2. operand's
      place. However, any labels defined in the program are allowed in there.
    - The directory listing shows only the first 60 filenames in alphabetic
      order.
 

    ================================================
    ³ I kindly ask you to report any errors, missing things, illogical           ³
    ³ actions or requests via e-mail to:                                                            ³
    ³                                                                                                                            ³
    ³      Auvo.Hakkinen@cs.Helsinki.Fi                                                          ³
    =================================================