    KK   KK   11   EEEEEE  LL
    KK  KK   111   EE      LL                                   K1EL Systems
    KKK       11   EEEE    LL     ===> M2M                        Limited 
    KK  KK    11   EE      LL                                       1997
    KK   KK  1111  EEEEEE  LLLLLL                              

    Mouse To Morse - Version 1.5    May 1997           All Rights Reserved.
    Shareware

    Mouse to Morse is a "hidden" utility program which remains "resident" 
    in RAM, as an extension of MSDOS, until the system is re-booted. It's
    purpose is to provide a means of reading an MSDOS text screen by using
    morse code sent out of the PC's speaker. 

    It is aimed at visually or visually and sight impaired persons who would
    like a simple, inexpensive, and convenient means of interactively reading 
    a computer text display without disrupting the application they are 
    running. The interface is designed to allow the user to operate it 
    primarily with one hand. This leaves the other hand free for tactile 
    feedback from a speaker or transducer. 

    This version of M2M is fully functional but displays a sign-on display 
    with a morse code greeting. If you find the program useful please 
    register your version and I will send you the latest copy. Which has
    many new features. 

    Installation:

	There is no special installation required just copy the file to a
    place where your path will find it and that's it. It is necessary that
    you have a Microsoft compatible mouse installed on your PC before 
    starting M2M. If you don't M2M will report an error and not load. After
    the mouse driver has been loaded just type M2M and the TSR will load
    output a morse code greeting and become activated. You may want to add
    M2M to your autoexec.bat file so that it automatically loads at boot
    time. Please note that M2M is meant for MSDOS only and will not operate
    with Microsoft Windows or other bit mapped graphic applications.

    M2M is a tiny model TSR occupying about 8K bytes of memory. When it loads
    it prints out a startup banner and is ready to use. The mouse cursor is
    separate from the normal DOS cursor and is only visible when the mouse
    is moved. After a couple of seconds of mouse inactivity the cursor will
    disappear until the mouse again moves. The initial cursor position is 
    at the bottom left of the screen. By sliding the mouse to the right the 
    mouse block cursor will appear and scan across the text line. Morse code
    output will commence as you move over sendable text. The text is buffered
    which allows you to move ahead without loosing any text you pass over.

    Notice that the mouse cursor is vertically locked to the text line, this
    allows you to comfortably read without worrying about inadvertently 
    jumping up or down a line. Also notice that text will only be picked up 
    as you move from left to right. This allows you to back up and revisit 
    earlier text in the line without acquiring words in reverse character 
    order. To move the mouse cursor up or down you use the mouse buttons. 
    Here is a list of mouse button actions and their result:

	Click Left Button	Move up one line
	Click Right Button      Move down one line
        Click Both, left 1st	Move to top of screen    (Home)
        Click Both, right 1st	Move to bottom of screen (End)

    When you move the mouse cursor up or down it will be set to the left
    most character position and the morse buffer is cleared. You can use
    this to your advantage, if you want to quickly clear the buffer and 
    go to the start of a line press the left button, release, and then the 
    right button. If you try to move above the top line or below the bottom 
    line of the display M2M will output a single 'DIT'. The Home and End 
    movements use a combination of two button clicks. To move home first 
    press the left mouse button and hold it down, then press the right 
    button and the cursor will move the top line. Remember that the 
    MSDOS cursor is never affected by mouse cursor moves, they are completely 
    separate. The mouse cursor is only used by M2M to scan text for morse 
    code output and does this in a transparent, non-obtrusive way.

    There are several hot keys that are assigned to special M2M options:

    SHIFT-CTRL-A     Increase morse output frequency
    SHIFT-CTRL-Z     Decrease morse output frequency
    SHIFT-CTRL-Q     Move mouse cursor to MSDOS cursor
    SHIFT-CTRL-D     Output the MSDOS cursor position col.row in morse
    SHIFT-CTRL-E     Output the Mouse cursor position col.row in morse
    SHIFT-CTRL-S     Toggle morse speed 9/18 WPM
    SHIFT-CTRL-X     Toggle extended character set enable
    SHIFT-CTRL-W     Tone shift on lower case
 
    To activate the function press the left shift key, the control key, and
    the action key (ex. A to increase frequency) all at the same time.       

    Following is the character set assignments:

    !   exclamation point	DI-DI-DI-DAH-DI		extended 
    "   double quote		DAH-DI-DI-DAH-DAH	extended
    #   number sign		DAH-DAH-DAH-DAH		extended
    $   dollar sign		DI-DAH-DAH-DI-DAH	extended
    %   percent sign		DAH-DAH-DAH-DI-DAH	extended
    &   ampersand		DI-DAH-DI-DI-DI		extended
    '   apostrophe		DI-DI-DI-DI-DI-DI	extended
    (   left parenthesis	DAH-DI-DAH-DAH-DI	extended
    )   right parenthesis	DAH-DI-DAH-DI-DAH	extended
    *   asterisk		DI-DI-DI-DAH-DI-DAH	extended
    +   plus sign		DI-DAH-DI-DAH-DI	extended
    ,   comma			DAH-DAH-DI-DI-DAH-DAH	normal
    -   dash bar		DAH-DI-DI-DI-DAH	normal
    .   period			DI-DAH-DI-DAH-DI-DAH	normal
    /   forward slash		DAH-DI-DI-DAH-DIT	normal
    0   zero			DAH-DAH-DAH-DAH-DAH	normal
    1   one		        DI-DAH-DAH-DAH-DAH	normal
    2   two			DI-DI-DAH-DAH-DAH	normal
    3   three			DI-DI-DI-DAH-DAH	normal
    4   four			DI-DI-DI-DI-DAH		normal
    5   five			DI-DI-DI-DI-DIT		normal
    6   six			DAH-DI-DI-DI-DIT	normal
    7   seven			DAH-DAH-DI-DI-DIT	normal
    8   eight			DAH-DAH-DAH-DI-DIT	normal
    9   nine			DAH-DAH-DAH-DAH-DIT	normal
    :   colon			DAH-DI-DAH-DI-DI	extended
    ;   semicolon		DI-DAH-DI-DI-DAH	extended
    <   left arrow		DAH-DAH-DI-DI-DAH	extended
    =   equals			DI-DAH-DI-DAH		extended
    >   right arrow		DAH-DAH-DI-DAH-DAH	extended
    ?   question		DI-DI-DAH-DAH-DI-DIT	normal
    @   at sign			DI-DI-DAH-DAH		normal
    A a				DI-DAH			normal
    B b				DAH-DI-DI-DIT		normal
    C c				DAH-DI-DAH-DIT		normal
    D d				DAH-DI-DIT		normal
    E e				DIT			normal
    F f				DI-DI-DAH-DIT		normal
    G g				DAH-DAH-DIT		normal
    H h				DI-DI-DI-DIT		normal
    I i				DI-DIT			normal
    J j				DI-DAH-DAH-DAH		normal
    K k				DAH-DI-DAH		normal
    L l				DI-DAH-DI-DIT		normal
    M m				DAH-DAH			normal
    N n				DAH-DIT			normal
    O o				DAH-DAH-DAH		normal
    P p				DI-DAH-DAH-DIT		normal
    Q q				DAH-DAH-DI-DAH		normal
    R r				DI-DAH-DIT		normal
    S s				DI-DI-DIT		normal
    T t				DAH			normal
    U u				DI-DI-DAH		normal
    V v				DI-DI-DI-DAH		normal
    W w				DI-DAH-DAH		normal
    X x				DAH-DI-DI-DAH		normal
    Y y				DAH-DAH-DI-DAH		normal
    Z z				DAH-DAH-DI-DIT		normal
    [   left bracket		DAH-DAH-DI-DI-DI-DAH    extended
    \   path slash		DAH-DAH-DAH-DI		extended
    ]   right bracket		DAH-DAH-DI-DI-DI-DAH-DAH extended
    ^   carat			DI-DI-DAH-DAH-DI	extended
    _   underscore		DI-DI-DI-DAH-DAH-DAH-DI extended
    `   tick			DI-DI-DI-DAH-DAH-DI-DI  extended
    {   left brace		DI-DAH-DAH-DAH-DAH-DAH  extended
    |   vertical bar	        DI-DAH-DAH-DAH-DAH-DI   extended
    }   right brace		DAH-DAH-DAH-DAH-DAH-DI  extended
    ~   tilde			DI-DI-DAH-DAH-DAH-DI    extended


    On start-up only the normal character set is activated. The
    extended character set is enabled using the CTL-SHIFT-X hot key.
    This is a toggle, hit it once and it enables extended, hit it 
    again it disables and so on. Note that M2M ignores all characters
    outside the valid range of printable characters, that being any
    characters with values less than hex 20 and greater than hex 7e.

    Only two morse code speeds are supported, 9 wpm and 18 wpm. Speed 
    selection is done via a hot key which is a toggle similar to extended
    character set selection. The hot key is CTL-SHIFT-S for (S)peed.

    A handy feature allows the mouse cursor to be moved to the MSDOS cursor
    position. This is very useful when using an editor or other test entry
    software and you want to move the viewing scope to where you are typing.
    The cursor move is activated by the hot key CTL-SHIFT-Q for (Q)uick move.
    
    The current MSDOS cursor position can be output at any time by hitting
    the CTL-SHIFT-D key. The position will be output in row<e>column format.
    For example if the cursor is on the tenth row and the seventeenth
    character, when you hit CTL-SHIFT-D the morse buffer will be cleared
    and then 10e17 will be sent. The position of the mouse cursor is not
    affected by this hot key. The mouse cursor position is output using the
    CTL-SHIFT-E hot key.

    The hot key CTL-SHIFT-W enables a mode whereby lower case characters will
    be sent at a lower tone frequency. This allows the user to easily
    distinguish between upper and lower case characters. The hot key is
    a toggle similar to extended and speed function select.

    The mouse buttons can be sequenced in a special way to provide a short
    cut to move the mouse cursor to the top or bottom of the display. By 
    pressing and holding the left button and then pressing the right button,
    the mouse cursor will move to the top of the display. The opposite action
    will move the mouse cursor to the bottom of the display.

    The ALT and CTL keys can be used in conjunction with the cursor buttons 
    to provide additional features. If the CTL key is held and the left button
    pressed and held M2M will output a single dit for each character the mouse
    slides over and a dah for spaces. The output will occur for both right and
    left cursor moves. If the CTL key and right button is pressed and held the
    cursor can be moved across a line and morse output is squelched. These two
    functions are provided to help a user move into a line without having to 
    read the whole thing. Note that once the desired mouse button is pressed 
    and held the CTL key can be released and the "sliding" mode will stay in 
    effect as long as the mouse button is pressed.   

    If the ALT key and the left button is pressed the mouse cursor will move
    to the MSDOS cursor position (this acts just like the SHIFT-CTRL-Q hot
    key). If the ALT key and right button is pressed the position of the 
    mouse cursor is output (this acts just like the SHIFT-CTRL-E hot key).

    When M2M loads it takes over the mouse driver and prevents other 
    applications from using the mouse while M2M is loaded. The method used 
    to do this is not foolproof however and I have found several applications
    that reinitialize the mouse so that M2M will stop working. If you plan to 
    use M2M with an application check first to see if there is some way to 
    manually disable its mouse capability in the configuration process. That 
    is the best way to insure M2M will not be disturbed.

    Alternately M2M can be controlled by a small MSDOS executable that can 
    temporarily disable and reenable M2M from the command line. It is also
    possible to control M2M through an MSDOS interrupt. Information on these
    features are provided when you register M2M.

    There is a companion application called M2MTNC that allows a deaf blind 
    amatuer radio operator to use packet radio. This program can be found in 
    the /pub/simtelnet/msdos/hamradio directory.

    If you find this program useful a $5.00 fee is requested to help cover the
    cost of design and testing.  The source in Turbo-C is available upon 
    special request to the author:

                  Steven T. Elliott K1EL
		  7 Carleton Road
		  Mont Vernon, NH 03057 USA
		  tel: 603 673 8092
		  e-mail: k1el@aol.com

    Please feel free to share unmodified copies of this program and
    documentation with others.  Any suggestions or comments can be sent
    to the above address and would be greatly appreciated.

    I would like to express thanks to co-developer Gary C. Stephens WA1ZEM for
    his assistance in testing and designing this software package.

	
    GL de K1EL

