;
; Program:  PCMOUSE.MSC
;           Source for PCMOUSE.COM
;           - Mouse Systems PC Mouse Driver for DS Ver 4.00
;           - 1 May 1990
;
; Author:   Nat Martino  
;           501 W. Vineyard Ave #514
;           Oxnard, CA 93030
;           (805) 485-6340
;
; Instructions:
;     1.  Modify mouse menu driver as desired.
;     2.  Compile program with "msc" (ie: msc pcmouse).
;         The "msc.exe" compiler program is located on one of the disks
;         that came with your Mouse Systems Mouse.
;     3.  Step 2 creates the "pcmouse.com" file.
;     4.  Prior to starting DS ensure the Mouse driver and Mouse Menu
;         programs are executed.
;           ie:  MOUSESYS <ENTER>      ... loads Mouse Driver
;                PCMOUSE  <ENTER>      ... loads PopUp Mouse Menus for DS
;                DS <ENTER>            ... loads DS
;
; Mouse Operation Notes (as currently configured):
;      1. The Mouse can be configured to work on Directories or Files.
;         To switch the mouse configuration from directories to files
;         or visa versa, depress the rightmost button.
;      2. File-Mouse
;           (see DEF #1 below)
;      3. Directory-Mouse - this is the default on startup
;           (see DEF #2 below)
;
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Comment        ("Configured for DS - Directory Scanner Ver 4.00")

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;       GLOBAL PARAMETERS
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ReverseVideo    (Yes)           ; Menu is displayed in reverse video
FixedMenu       (No)            ; Menu is floating (centered on cursor)
EnableBeep      (No)            ; Allows menu switching rather than beep
ExpertMode      (Yes)
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;       CURSOR DEFINITIONS
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

File_Cursor: Cursor
(
                 Left         ([Left])
                 Right        ([Right])
                 Up           ([Up])
                 Down         ([Down]) 
                 Sensitivity  (30, 10)   
                 Hysteresis   (2, 2)     
)
; DEF #1         Definitions When Working With FILES
; ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³        ³      UP      ³  ³           ³     Left        Middle      Right   ³
; ³ Mouse  ³      |       ³  ³  Button   ³                                     ³
; ³Movement³LEFT--|--RIGHT³  ³Definitions³     Tag          Untag     Switch   ³
; ³        ³      |       ³  ³           ³     File         File        to     ³
; ³        ³     DOWN     ³  ³           ³                            DEF #2   ³
; ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Dir_Cursor: Cursor
(
                 Left         ([F1])
                 Right        ([F2])
                 Up           ([F1])
                 Down         ([F2]) 
                 Sensitivity  (10, 10)
                 Hysteresis   (2, 2)  
)
; DEF #2         Definitions When Working With DIRECTORIES
; ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿     ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³        ³     F1    ³     ³           ³     Left        Middle      Right   ³
; ³ Mouse  ³     |     ³     ³  Button   ³                                     ³
; ³Movement³ F1--|--F2 ³     ³Definitions³     <CR>          F5        Switch  ³
; ³        ³     |     ³     ³           ³               (Root Dir)      to    ³
; ³        ³     F2    ³     ³           ³                             DEF #1  ³
; ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÙ     ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Macro_Cursor: Cursor
(
                 Left         ([Left])
                 Right        ([Right])
                 Up           ([Up])
                 Down         ([Down]) 
                 Sensitivity  (10, 10)  
                 Hysteresis   (10, 2)   
)
; DEF #3         Definitions When Working With MACROS
; ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³        ³      UP      ³  ³           ³     Left        Middle      Right   ³
; ³ Mouse  ³      |       ³  ³  Button   ³                                     ³
; ³Movement³LEFT--|--RIGHT³  ³Definitions³     <CR>        <Esc>       TAB     ³
; ³        ³      |       ³  ³           ³                                     ³
; ³        ³     DOWN     ³  ³           ³                                     ³
; ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Link1_Cursor: Cursor
(
                 Left         ([Up])
                 Right        ([Down])
                 Up           ([Up])
                 Down         ([Down]) 
                 Sensitivity  (10, 10)
                 Hysteresis   (2, 2)  
)
; DEF #4         Definitions When Working With DIR LINKS (RIGHT DISPLAY)
; ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³        ³      UP      ³  ³           ³     Left        Middle      Right   ³
; ³ Mouse  ³      |       ³  ³  Button   ³                                     ³
; ³Movement³  UP--|--DOWN ³  ³Definitions³     <CR>        <Esc>       Switch  ³
; ³        ³      |       ³  ³           ³                               to    ³
; ³        ³     DOWN     ³  ³           ³                             DEF #5  ³
; ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Link2_Cursor: Cursor
(
                 Left         ([F1])
                 Right        ([F2])
                 Up           ([F1])
                 Down         ([F2]) 
                 Sensitivity  (10, 10)
                 Hysteresis   (2, 2)  
)
; DEF #5         Definitions When Working With DIR LINKS (LEFT DISPLAY)
; ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿     ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³        ³     F1    ³     ³           ³     Left        Middle      Right   ³
; ³ Mouse  ³     |     ³     ³  Button   ³                                     ³
; ³Movement³ F1--|--F2 ³     ³Definitions³     <CR>        <Esc>       Switch  ³
; ³        ³     |     ³     ³           ³                               to    ³
; ³        ³     F2    ³     ³           ³                             DEF #4  ³
; ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÙ     ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;       BUTTON DEFINITIONS 
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Tag_it:          Button  (Keys("t"))        
UnTag_it:        Button  (Keys("u"))        

Top_Dir:         Button  (Keys([F5]))
CR:              Button  (Keys([Enter]))
ESC_Key:         Button  (Keys([Esc]))
TAB_Key:         Button  (Keys([Tab]))
Page_Up:         Button  (Keys([PgUp]))
Page_Dn:         Button  (Keys([PgDn]))
Up_Key:          Button  (Keys([Up]))
HOME_Key:        Button  (Keys([Home]))
END_KEY:         Button  (Keys([End]))

Dir_Buttons:     Button  (Cursor  (Dir_Cursor)
                          Button  (Left=CR)
                          Button  (Middle=Top_Dir)
                          Button  (Right=File_Buttons))

File_Buttons:    Button  (Cursor  (File_Cursor)
                          Button  (Left=Tag_it)
                          Button  (Middle=UnTag_it)
                          Button  (Right=Dir_Buttons))

Esc_File_Buttons:Button  (Cursor  (File_Cursor)
                          Keys    ([Esc])
                          Button  (Left=Tag_it)
                          Button  (Middle=UnTag_it)
                          Button  (Right=Dir_Buttons))

Rtn_File_Buttons:Button  (Cursor  (File_Cursor)
                          Keys    ([Enter])
                          Button  (Left=Tag_it)
                          Button  (Middle=UnTag_it)
                          Button  (Right=Dir_Buttons))

Link1_Buttons:   Button  (Cursor  (Link1_Cursor)
                          Button  (Left=Rtn_File_Buttons)
                          Button  (Middle=Esc_File_Buttons)
                          Button  (Right=Link2_Buttons))

Link2_Buttons:   Button  (Cursor  (Link2_Cursor)
                          Button  (Left=Rtn_File_Buttons)
                          Button  (Middle=Esc_File_Buttons)
                          Button  (Right=Link1_Buttons))

LM_CHORD:        Button  (Menu(LM_MENU))

LR_CHORD:        Button  (Menu(LR_MENU))        

MR_CHORD:        Button  (Menu(MR_MENU))         

LMR_CHORD:       Button  (Menu(MISC_MENU))         

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;       MENU DEFINITIONS
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

DRIVES:   Menu(
            Title   ("DRIVES")
            Position(UpperLeft(1,1))
            Item    (" ",              )
            Item    ("A",              Keys("da" [Enter]))
            Item    ("B",              Keys("db" [Enter]))
            Item    ("C",              Keys("dc" [Enter]))
            Item    ("D",              Keys("dd" [Enter]))
            Item    ("E",              Keys("de" [Enter]))
            Item    ("F",              Keys("df" [Enter]))
            Item    ("G",              Keys("dg" [Enter])))

FREE_SPACE: Menu(
            Title   ("DRIVES")
            Position(UpperLeft(1,1))
            Item    (" ",              )
            Item    ("A",              Keys([a-f] "a" ))
            Item    ("B",              Keys([a-f] "b" ))
            Item    ("C",              Keys([a-f] "c" ))
            Item    ("D",              Keys([a-f] "d" ))
            Item    ("E",              Keys([a-f] "e" )))

MR_MENU: Menu(
            Title   ("File Commands")
            Position(UpperLeft(0,1))
            Item    ("  List File  ",  Keys("l")
                                       Cursor(Link1_Cursor)
                                       Button  (Left=Page_Up)
                                       Button  (Middle=Esc_File_Buttons)
                                       Button  (Right=Page_Dn))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("  Edit File  ",  Keys("e"))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Execute File",  Keys("x" [Enter]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Copy Files  ",  Keys("k"))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Delete Files",  Keys([a-d]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Move Files  ",  Keys("m"))
            Item    (" Rename File ",  Keys("r"))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" PageUp Files",  Keys([PgUp]))
            Item    (" PageDn Files",  Keys([PgDn]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("   Tag All   ",  Keys([a-t]))
            Item    ("  Untag All  ",  Keys([a-u])))

LR_MENU:  Menu(
            Title   ("File Commands")
            Position(UpperLeft(0,1))
            Item    ("             ",  Keys([Esc]))
            Item    (" Split Screen",  Keys("s"))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Switch/Flip ",  Keys("+"))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("25  43/50 Tog",  Keys([a-m]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Select & Sort",  Keys([a-s]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Control Tags",  Keys([c-t]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("  Find File  ",  Keys("f"))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Enter Command",  Keys("c")
                                       Cursor(File_Cursor)
                                       Button  (Left=Rtn_File_Buttons)
                                       Button  (Middle=ESC_Key)
                                       Button  (Right=Up_Key))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Attrib Files",  Keys("a"))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Print Tagged",  Keys("p")))

LM_MENU: Menu(
            Title   ("DIR  COMMANDS")
            Position(UpperCenter(43,1))
            Item    ("             ",  Keys([Esc]))
            Item    ("             ",  Keys([Esc]))
            Item    (" Drive Change",  Menu(DRIVES))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Dir Add/Del ",  Keys([c-d])
                                       Cursor(Dir_Cursor)
                                       Button  (Left=CR)
                                       Button  (Middle=Top_Dir)
                                       Button  (Right=File_Buttons))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Directory Lks",  Keys("0")
                                       Cursor(Link1_Cursor)
                                       Button (Left=Rtn_File_Buttons)
                                       Button (Middle=Esc_File_Buttons)
                                       Button (Right=Link2_Buttons))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Attrib Dir  ",  Keys([c-a]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Rescan Tree ",  Keys([a-r]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Free Space  ",  Menu(FREE_SPACE))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("  Tree Dump  ",  Keys([c-u]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Volume ID Tog",  Keys([c-v]))
            Item    ("             ",  Keys([Esc])))

MISC_MENU: Menu(
            Title   ("MISC COMMANDS")
            Position(UpperRight(79,1))
            Item    ("             ",  Keys([Esc]))
            Item    ("  Dir Mouse  ",  Cursor (Dir_Cursor)
                                       Button (Left=CR)
                                       Button (Middle=Top_Dir)
                                       Button (Right=File_Buttons))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" File Mouse  ",  Cursor (File_Cursor)
                                       Button (Left=Tag_it)
                                       Button (Middle=UnTag_it)
                                       Button (Right=Dir_Buttons))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" 1 Page Help ",  Keys("?"))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Help Expanded",  Keys([F10])
                                       Cursor(File_Cursor)
                                       Button  (Left=HOME_Key)
                                       Button  (Middle=Esc_File_Buttons)
                                       Button  (Right=END_Key))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Refresh Scrn ",  Keys([c-r]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Color Changes",  Keys([a-k]))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Define Macros",  Keys([s-F10])
                                       Cursor(Macro_Cursor)
                                       Button (Left=Rtn_File_Buttons)
                                       Button (Middle=Esc_File_Buttons)
                                       Button (Right=TAB_Key))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    ("Edit Defaults",  Keys([c-e])
                                       Cursor(Macro_Cursor)
                                       Button (Left=HOME_Key)
                                       Button (Middle=Esc_File_Buttons)
                                       Button (Right=Rtn_File_Buttons))
            Item    ("ÄÄÄÄÄÄÄÄÄÄÄÄÄ",  Keys([Esc]))
            Item    (" Prog Limits ",  Keys([c-l])))

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;       MOUSE DEFINITION
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Mouse(
        Cursor           (Dir_Cursor)

        Left             (File_Buttons)   

        Middle           (Top_Dir)       

        Right            (CR)            

        LeftMiddle       (LM_CHORD)      

        LeftRight        (LR_CHORD)      

        MiddleRight      (MR_CHORD)

        LeftMiddleRight  (LMR_CHORD))

