{{{  notes
@if-using (FOO) @if-using not(FOO)
 This is my favorite binding for Origami. I use it for  my  daily  work  on  a
 Sun-workstation. You should compile them with

    keybind -s -r$HOME/.origamihelp modeori.keys

 The generated file help can be used as Origami-helpfile .origamirc  or  as  a
 overview for this binding. My basic ideas while creating this binding were:

    the cursor-keypad is used for all move and linehandling

    some wordstar-bindings are used, respectively the cursormotions.

    all other commands are bound to 'speaking' esc-sequences.

  Change the personal things, if you want.

    Wolfgang Stumvoll




------------------------------------------------------------------------------
 modifying this binding

 you can add new commands simply by including this binding in your file:

    ...F modeori.keys
    ...  your edit-macros
    ...  your move-macros
    {{   edit-binds
    ( mode edit
       ...  your bindings
    }}
    ...  move-binds

 The semantic of { and ; in for C and PASCALL can be changed by adding
 the following befor you include modeori.keys:

    @use (MY-L-SEMICOLON)
    ( deffun my-l-semicolon ( ... ) )
    @use (MY-C-CB)
    ( deffun my-c-cb ( ... ) )
    @use (MY-P-CB)
    ( deffun my-p-cb ( ... ) )
    ...F modeori.keys

 Defining the tag NO-STANDARDS gives you the possibility to define your own
 set of used tags.

    @use (NO-STANDARDS)
    @use ( 'your tags' )
    ...F modeori.keys

 The new-file macro can do an additionbal macro-call, if you define the macro
 add-new-file and set the ocl-tag ADD-NEWFILE
@fi @fi
}}}
{{{  useful @use
@if-using not(NO-STANDARDS)
   @use
    (
      control     ;  enable the binding of some control keys (wordstar)
      ; NO_STAT     ;  statusline isn't displayed is standard
      ; BUFF-SAVE   ;  enable buffer-save-mode at startup
      c-help      ;  enable Precedence and associativity of C operators
                  ;  printed to reference-file
      doc         ;  enable the commandlist printed to the reference-file
      L-EXT       ;  enable some folding-language-dependent extensions
                  ;  occam,c and pascal: { ( [ ; and tab-stops
      SCR-OFF     ;  some macros switch display off during their work
      ; FILEREQUEST ;  enables the filerequester, to come up automatically.
                  ; therefor you have to define a macro file-requester, which
                  ; activates this in the fileprompts.
    )
   @if-using not(BASE)
      @use
       (
         sun         ;  enable compilation of sun-specific terminal-keys
         SUN         ;  enable the sun-Rxx-keymap (xterm -sf too)
         PC          ;  enable the compilation of pc-keymap
         xterm       ;  enable the compilation of xterm-keymap
         vt100       ;  enable the compilation of vt100-keymap
         mgr         ;  enable the compilation of mgr-keymap
         hpterm      ;  enable the compilation of hpterm-keymap
                     ;    function keys and tab cannot be used. They send
                     ;    escape-sequences needed for other things!
         ; ATARI       ;  enable the compilation of atari-st keybindings.
                     ;  The atari-st bindings will be the default binding and the
                     ;  other terminals won't be used.
       )
   @fi
   @if-using (ATARI)
      @use not( sun SUN PC xterm vt100 mgr hpterm control )
   @fi
@fi
}}}
{{{  marktypes
{{{  pascal
(defmark pascal ( ("< "< "<)
                  (". ". ".)
                  (": ": ":)
                  ("> "> ">)
                )
)
}}}
{{{  script
(defmark script  ( ("# "# "@)
                   (". ". ".)
                   ("# "# ":)
                   ("# "# "$)
                 )
)
}}}
}}}
{{{  I call these bindings ModeOri
( defbinding ModeOri )
}}}
{{{  aliases
( alias space ( "  ) )
@if-using not( ATARI )
   {{{  terminal sun
   ( terminal ( sun )
      ( alias backspace ( C-H ) )
      ( alias delete ( C-? ) )
      ( alias tab ( C-I ) )
      ( alias down ( C-[ "[ "B ) )
      ( alias left ( C-[ "[ "D ) )
      ( alias right ( C-[ "[ "C ) )
      ( alias up ( C-[ "[ "A ) )
      ( alias f1 ( C-[ "[ "2 "2 "4 "z ) )
      ( alias f2 ( C-[ "[ "2 "2 "5 "z ) )
      ( alias f3 ( C-[ "[ "2 "2 "6 "z ) )
      ( alias f4 ( C-[ "[ "2 "2 "7 "z ) )
      ( alias f5 ( C-[ "[ "2 "2 "8 "z ) )
      ( alias f6 ( C-[ "[ "2 "2 "9 "z ) )
      ( alias f7 ( C-[ "[ "2 "3 "0 "z ) )
      ( alias f8 ( C-[ "[ "2 "3 "1 "z ) )
      ( alias f9 ( C-[ "[ "2 "3 "2 "z ) )
   )
   }}}
   {{{  terminal SUN
   ( terminal ( SUN )
      ( alias backspace ( C-H ) )
      ( alias delete ( C-? ) )
      ( alias tab ( C-I ) )
      ( alias f1 ( C-[ "[ "2 "2 "4 "z ) )
      ( alias f2 ( C-[ "[ "2 "2 "5 "z ) )
      ( alias f3 ( C-[ "[ "2 "2 "6 "z ) )
      ( alias f4 ( C-[ "[ "2 "2 "7 "z ) )
      ( alias R1 ( C-[ "[ "2 "0 "8 "z ) )
      ( alias R2 ( C-[ "[ "2 "0 "9 "z ) )
      ( alias R3 ( C-[ "[ "2 "1 "0 "z ) )
      ( alias R4 ( C-[ "[ "2 "1 "1 "z ) )
      ( alias R5 ( C-[ "[ "2 "1 "2 "z ) )
      ( alias R6 ( C-[ "[ "2 "1 "3 "z ) )
      ( alias R7 ( C-[ "[ "2 "1 "4 "z ) )
      ( alias R8 ( C-[ "[ "2 "1 "5 "z ) )
      ( alias R9 ( C-[ "[ "2 "1 "6 "z ) )
      ( alias R10 ( C-[ "[ "2 "1 "7 "z ) )
      ( alias R11 ( C-[ "[ "2 "1 "8 "z ) )
      ( alias R12 ( C-[ "[ "2 "1 "9 "z ) )
      ( alias R13 ( C-[ "[ "2 "2 "0 "z ) )
      ( alias R14 ( C-[ "[ "2 "2 "1 "z ) )
      ( alias R15 ( C-[ "[ "2 "2 "2 "z ) )
      ( alias up ( C-[ "[ "A ) )
      ( alias left ( C-[ "[ "D ) )
      ( alias right ( C-[ "[ "C ) )
      ( alias down ( C-[ "[ "B ) )
   )
   }}}
   {{{  terminal PC
   ( terminal ( PC )
      @if-using not($ext)
         ( alias ext ( C-@ ) )
      @fi
      ( alias backspace ( C-H ) )
      ( alias delete ( $ext "S ) )
      ( alias tab ( C-I ) )
      ( alias dos-left ( $ext "K ) )
      ( alias dos-right ( $ext "M ) )
      ( alias dos-up ( $ext "H ) )
      ( alias dos-down ( $ext "P ) )
      ( alias dos-prev-page ( $ext "I ) )
      ( alias dos-next-page ( $ext "Q ) )
      ( alias dos-home ( $ext "G ) )
      ( alias dos-end ( $ext "O ) )
      ( alias dos-ins ( $ext "R ) )
   )
   }}}
   {{{  terminal xterm
   ( terminal ( xterm )
      ( alias backspace ( C-H ) )
      ( alias delete ( C-? ) )
      ( alias tab ( C-I ) )
      ( alias down ( C-[ "O "B ) )
      ( alias left ( C-[ "O "D ) )
      ( alias right ( C-[ "O "C ) )
      ( alias up ( C-[ "O "A ) )
      ( alias f1 ( C-[ "[ "1 "1 "~ ) )
      ( alias f2 ( C-[ "[ "1 "2 "~ ) )
      ( alias f3 ( C-[ "[ "1 "3 "~ ) )
      ( alias f4 ( C-[ "[ "1 "4 "~ ) )
   )
   }}}
   {{{  terminal vt100
   ( termalias vt100 ( vt102 vt200 ) )
   ( terminal ( vt100 )
      ( alias backspace ( C-H ) )
      ( alias delete ( C-? ) )
      ( alias tab ( C-I ) )
      ( alias down ( C-[ "O "B ) )
      ( alias left ( C-[ "O "D ) )
      ( alias right ( C-[ "O "C ) )
      ( alias up ( C-[ "O "A ) )
      ( alias f1 ( C-[ "O "P ) )
      ( alias f2 ( C-[ "O "Q ) )
      ( alias f3 ( C-[ "O "R ) )
      ( alias f4 ( C-[ "O "S ) )
   )
   }}}
   {{{  terminal mgr
   ( terminal ( mgr )
      ( alias backspace ( C-H ) )
      ( alias delete ( C-? ) )
      ( alias tab ( C-I ) )
      ( alias down ( C-[ "[ "B ) )
      ( alias left ( C-[ "[ "D ) )
      ( alias right ( C-[ "[ "C ) )
      ( alias up ( C-[ "[ "A ) )
      ( alias f1 ( C-[ "[ "2 "2 "4 "z ) )
      ( alias f2 ( C-[ "[ "2 "2 "5 "z ) )
      ( alias f3 ( C-[ "[ "2 "2 "6 "z ) )
      ( alias f4 ( C-[ "[ "2 "2 "7 "z ) )
      ( alias f5 ( C-[ "[ "2 "2 "8 "z ) )
      ( alias f6 ( C-[ "[ "2 "2 "9 "z ) )
      ( alias f7 ( C-[ "[ "2 "3 "0 "z ) )
      ( alias f8 ( C-[ "[ "2 "3 "1 "z ) )
      ( alias f9 ( C-[ "[ "2 "3 "2 "z ) )
   )
   }}}
   {{{  terminal hpterm
   (terminal (hpterm)
     (alias backspace ( C-H ))
     (alias delete ( C-[ "P ))
     (alias down ( C-[ "B ))
     (alias left ( C-[ "D ))
     (alias right ( C-[ "C ))
     (alias up ( C-[ "A ))
   )
   }}}
@fi
@if-using ( ATARI )
   {{{  st aliases
   {{{F st-termalias
   :::F st-termalias
   }}}
   ( alias R1 ( $KP_openbr ))
   ( alias R2 ( $KP_closebr ))
   ( alias R3 ( $KP_slash ))
   ( alias R4 ( $KP_7 ))
   ( alias R5 ( $KP_8 ))
   ( alias R6 ( $KP_9 ))
   ( alias R7 ( $KP_4 ))
   ( alias R8 ( $KP_5 ))
   ( alias R9 ( $KP_6 ))
   ( alias R10 ( $KP_1 ))
   ( alias R11 ( $KP_2 ))
   ( alias R12 ( $KP_3 ))
   ( alias R13 ( $KP_0 ))
   ( alias R14 ( $KP_point ))
   ( alias R15 ( $KP_enter ))
   }}}
@fi
{{{  default-pseudo-fx
( alias EF1 ( $esc "F "1 ) )
( alias EF2 ( $esc "F "2 ) )
( alias EF3 ( $esc "F "3 ) )
( alias EF4 ( $esc "F "4 ) )
}}}
}}}
{{{  multiple mode stuff (declaration and Modestrings)
( defmodes edit moves para )
{{{  modestrings
( defmodestring ED   "Edit "E )
( defmodestring MV   "Move "M )
( defmodestring EX   "Ext. "X )
( defmodestring STEP "%    "% )
( defmodestring AI   ">    "> )
( defmodestring BS   "BuSa "B )
}}}
{{{  no statusline
@if-using (NO_STAT)
 ( status-line-off )
@fi
}}}
}}}
{{{  character-classes
( defset word-char     ( alpha digit "_ )              )
( defset opening-fence ( "{ "[ "( )                    )
( defset closing-fence ( "} "] ") )                    )
( defset fence         ( opening-fence closing-fence ) )
}}}
{{{  macros
{{{  vars
( defvar
   ( moving           ; move-mode is activ
     stepping         ; line-movement display or file-based?
     status-line      ; display status-line in edit-mode?
     buff-saving      ; is buffer-save-mode activ?
     command          ; left move-mode after succesful command?
     fold-activ       ; started a folding in not-extended mode?
     was-changed      ; store-chnage-status for complex commands
     edit-view        ; store old view-status for complex commands
     edit-over        ; store old overwrite-status for complex commands
     startup          ; 1, if startup-code was executed
     hard-tab         ; size of hard-tabs
     irsx             ; block-edges for indenting
     irsy
     irex
     irey
     enable-move-para ; which mode should be reactivated after leaving mode para
     @if-using (L-EXT)
        extended      ; use the X-mode?
        x_pos_1       ; local help for {[(..
        x_pos_3       ; local help for {[(..
     @fi
   )
)
}}}
{{{  user macros
( defusermacros 10 )
{{{  user-macro-x
( defmac user-macro-0 ( execute-number-macro 1 ) )
( defmac user-macro-1 ( execute-number-macro 2 ) )
( defmac user-macro-2 ( execute-number-macro 3 ) )
( defmac user-macro-3 ( execute-number-macro 4 ) )
( defmac user-macro-4 ( execute-number-macro 5 ) )
( defmac user-macro-5 ( execute-number-macro 6 ) )
( defmac user-macro-6 ( execute-number-macro 7 ) )
( defmac user-macro-7 ( execute-number-macro 8 ) )
( defmac user-macro-8 ( execute-number-macro 9 ) )
( defmac user-macro-9 ( execute-number-macro 10 ) )
}}}
{{{  def-user-macro
( defvar ( u-m-no ) )
( deffun def-user-macro
   ( para
     prompt-counter u-m-no ( "user-macro "  "? )
     if not(and(counter>0 -(u-m-no 9) not(counter>0 u-m-no)))
      ( save-keyboard-macro counter u-m-no newline-and-indent )
     fi
     edit
   )
)
( undeclare ( u-m-no ) )
}}}
}}}
{{{  forward declarations
( forward read-newfile-macro-exe )
( forward switch-to-move-mode    )
( forward switch-to-edit-mode    )
( forward switch-status-line-on  )
( forward switch-status-line-off )
( forward abort-hook             )
( forward begin-prompt           )
( forward end-prompt             )
}}}
{{{  macro-hooks
( abort-macro         abort-hook             )
( read-newfile-macro  read-newfile-macro-exe )
( key-not-bound-macro abort-hook             )
( view-macro          abort-hook             )
( begin-prompt-macro  begin-prompt           )
( end-prompt-macro    end-prompt             )
}}}
{{{F standard macros
:::F modeori-fun/stdmac
}}}
{{{F edit-mode
:::F modeori-fun/edtmac
}}}
{{{F move-mode
:::F modeori-fun/movmac
}}}
{{{  switches and hooks
{{{  switch-to-move-mode
( deffun switch-to-move-mode
   ( if in-prompt ( return-from-macro ) fi
     reset-user-mode ED
     set-user-mode MV
     set-start-mark
     set-end-mark
     moves
     set-counter moving 1
     {{{  store old view-status and switch view-mode on
     if test-view
      ( set-counter edit-view 1 )
     else
      ( set-counter edit-view 0 add-mode-view )
     fi
     }}}
     {{{  store old overwrite-status and switch insert-mode on
     if test-overwrite
      ( set-counter edit-over 1 delete-mode-overwrite )
     else
      ( set-counter edit-over 0 )
     fi
     }}}
     status-line-on
     set-counter command 0
   )
)
}}}
{{{  switch-to-edit-mode
( deffun switch-to-edit-mode
   ( if in-prompt ( return-from-macro ) fi
     clear-marks
     reset-user-mode MV
     set-user-mode ED
     edit
     set-counter moving 0
     set-counter enable-move-para 0
     {{{  maybe delete view-mode
     if counter-0 edit-view ( delete-mode-view ) fi
     }}}
     {{{  maybe delete insert-mode
     if counter>0 edit-over ( add-mode-overwrite ) fi
     }}}
     {{{  maybe bell (exit without correct ended command)
     if counter-0 command ( bell visible-bell ) fi
     }}}
     {{{  maybe switch statusline off
     if counter-0 status-line ( status-line-off ) fi
     }}}
     {{{  maybe redraw
     if counter>0 command ( redraw-display ) fi
     }}}
     set-counter command 0
   )
)
}}}
{{{  switch-status-line-off
( deffun switch-status-line-off
   ( if in-prompt ( return-from-macro ) fi
     if counter>0 status-line ( set-counter status-line 0 status-line-off ) fi
   )
)
}}}
{{{  switch-status-line-on
( deffun switch-status-line-on
   ( if in-prompt ( return-from-macro ) fi
     if counter-0 status-line ( set-counter status-line 1 status-line-on ) fi
   )
)
}}}
@if-using (L-EXT)
   {{{  add-mode-extended
   ( deffun add-mode-extended ( set-counter extended 1 set-user-mode EX ) )
   }}}
   {{{  delete-mode-extended
   ( deffun delete-mode-extended
      ( switch-to-edit-mode
        set-counter extended 0
        reset-user-mode EX
      )
   )
   }}}
@fi
{{{  read-newfile-macro-exe
( deffun read-newfile-macro-exe
   (
     {{{  startup-stuff
     if counter-0 startup
      ( @if-using not(NO_STAT)
           set-counter status-line 1
        @fi
        @if-using (NO_STAT)
           set-counter status-line 0
        @fi
        set-user-mode ED
        @if-using (L-EXT)
           set-user-mode EX
           set-counter extended 1
        @fi
        @if-using (BUFF-SAVE)
           add-mode-buffer-save
        @fi
        add-mode-auto-indent
        set-counter hard-tab read-tab-width
        {{{  handle ocl-argument
        if not(counter>0 -ocl-argument)
         ( set-counter ocl-argument modulo(ocl-argument 8)
           {{{  handle bit 4, 0=buff-save off
           if counter>0 -(ocl-argument 3)
            ( set-counter ocl-argument -(ocl-argument 4)
              add-mode-buffer-save
            )
           else
            ( delete-mode-buffer-save )
           fi
           }}}
           {{{  handle bit 2, 0=extended
           if counter>0 -(ocl-argument 1)
            ( set-counter ocl-argument -(ocl-argument 2)
              delete-mode-extended
            )
           else
            ( add-mode-extended )
           fi
           }}}
           {{{  handle bit 1, 0=statusline off
           if counter>0 ocl-argument
            ( switch-status-line-on )
           else
            ( switch-status-line-off )
           fi
           }}}
         )
        fi
        }}}
        if buff-saving ( get-buffers-from-file ) fi
      )
     fi
     }}}
     @if-using (L-EXT)
        {{{  maybe switch on wrap
        if or(test-language "r,test-language "t)
         ( add-mode-wrap )
        else
         ( delete-mode-wrap )
        fi
        }}}
        {{{  correct fill-mode
        case
         ( test-language "r
            ( set-counter single-blank 0
              set-counter fill-column 72
            )
         )
         ( test-language "t
            ( set-counter single-blank 0
              set-counter fill-column 72
            )
         )
        default
         ( set-counter single-blank 1
           set-counter fill-column 79
         )
        esac
        }}}
        {{{  set tabs
        set-counter tab-width read-tab-width
        set-counter tab-count -1
        if counter-0 tab-width ( set-counter tab-width 8 ) fi
        case
         ( or(test-language "p,test-language "o,test-language "i)
            ( set-counter tab-width 2 )
         )
         ( test-language "c
            ( set-counter tab-width    2
              set-counter tab-count    1
              set-counter tab-width-1  3
              set-counter tab-count-1 -1
            )
         )
        esac
        }}}
     @fi
     @if-using ( ADD-NEWFILE )
        add-new-file
     @fi
     new-file-make-hook
     {{{  startup stuff
     if counter-0 startup
      ( set-counter startup 1
        message-exit ("Have "  "a "  "nice "  "day! )
      )
     fi
     }}}
   )
)
}}}
{{{  abort-hook
( deffun abort-hook
   (
     {{{  x=1, if abort
     case
      ( last-message M_ABORTED ( set-counter x 1 ))
      ( and(last-message M_VIEW counter-0 moving)
         ( set-counter x -1)
      )
     default
      ( set-counter x 0 )
     esac
     }}}
     if counter-0 moving
      ( redraw-display edit)
     else
      ( switch-to-edit-mode )
     fi
     case
      ( counter>0 x ( message-exit ( M_ABORTED )))
      ( counter-0 x ( message-exit ( M_NOT_BOUND )))
     default
      ( message-exit ( M_VIEW ))
     esac
   )
)
}}}
{{{  begin-prompt
( deffun begin-prompt
   ( if counter>0 enable-move-para ( para ) fi )
)
}}}
{{{  end-prompt
( deffun end-prompt
   ( if counter>0 enable-move-para ( moves ) fi )
)
}}}
}}}
{{{  redefine save/exits for buffer-save
{{{  save-file-
( deffun save-file-
   ( if buff-saving ( dumb-buffers-to-file ) fi
     save-file
   )
)
}}}
{{{  exit-origami-
( deffun exit-origami-
   ( if buff-saving ( dumb-buffers-to-file ) fi
     exit-origami
   )
)
}}}
{{{  save-and-exit-origami-
( deffun save-and-exit-origami-
   ( if buff-saving ( dumb-buffers-to-file ) fi
     save-and-exit-origami
   )
)
}}}
}}}
}}}
{{{  bindings
{{{  abort-key
@if-using not(ATARI)
   ( keybind abort ( C-C ) )
@fi
}}}
{{{F edit
:::F modeori-fun/edtkey
}}}
{{{F moves
:::F modeori-fun/movkey
}}}
{{{  para
( mode para
  ( keybind newline-and-indent ( C-M ) )
  ( keybind newline-and-indent ( C-J ) )
  ( keybind backward-character ( $esc "l "e ) )
  ( keybind forward-character ( $esc "r "i ) )
  ( keybind previous-line- ( $esc "u "p ) )
  ( keybind next-line- ( $esc "d "n ) )
  ( keybind newline-and-indent ( $EF1 ) )
  @if-using (control)
     {{{  some control keys (wordstar like?)
     ( keybind backward-character ( C-S ) )
     ( keybind forward-character ( C-D ) )
     ( keybind previous-line- ( C-E ) )
     ( keybind next-line- ( C-X ) )
     }}}
  @fi
  @if-using ( sun SUN PC mgr hpterm xterm vt100 ATARI )
     {{{  delete-maps
     @if-using not(ATARI)
        ( terminal
           ( @if-using ( sun ) sun @fi
             @if-using ( SUN ) SUN @fi
             @if-using ( PC ) PC @fi
             @if-using ( xterm ) xterm @fi
             @if-using ( vt100 ) vt100 @fi
             @if-using ( mgr ) mgr @fi
             @if-using ( hpterm ) hpterm @fi
           )
     @fi
     @if-using not(ATARI) ) @fi
     }}}
  @fi
  @if-using ( sun SUN PC mgr hpterm xterm vt100 ATARI )
     {{{  backspace-maps
     @if-using not(ATARI)
        ( terminal
           ( @if-using ( sun ) sun @fi
             @if-using ( SUN ) SUN @fi
             @if-using ( PC ) PC @fi
             @if-using ( xterm ) xterm @fi
             @if-using ( vt100 ) vt100 @fi
             @if-using ( mgr ) mgr @fi
             @if-using ( hpterm ) hpterm @fi
           )
     @fi
        ( keybind delete-previous-character ( $backspace ) )
     @if-using not(ATARI) ) @fi
     }}}
  @fi
  @if-using ( sun mgr hpterm xterm vt100 )
     {{{  cursor-maps
     ( terminal
        ( @if-using ( sun ) sun @fi
          @if-using ( xterm ) xterm @fi
          @if-using ( vt100 ) vt100 @fi
          @if-using ( mgr ) mgr @fi
          @if-using ( hpterm ) hpterm @fi
        )
        ( keybind backward-character ( $left ) )
        ( keybind forward-character ( $right) )
        ( keybind next-line- ( $down ) )
        ( keybind previous-line- ( $up ) )
     )
     }}}
  @fi
  @if-using ( sun SUN PC mgr xterm vt100 ATARI )
     {{{  tab-maps
     @if-using not(ATARI)
        ( terminal
           ( @if-using ( sun ) sun @fi
             @if-using ( SUN ) SUN @fi
             @if-using ( PC ) PC @fi
             @if-using ( xterm ) xterm @fi
             @if-using ( vt100 ) vt100 @fi
             @if-using ( mgr ) mgr @fi
           )
     @fi
     @if-using not(ATARI) ) @fi
     }}}
  @fi
  @if-using ( sun SUN mgr xterm vt100 ATARI)
     {{{  fx-maps
     @if-using not(ATARI)
        ( terminal
           ( @if-using ( sun ) sun @fi
             @if-using ( SUN ) SUN @fi
             @if-using ( xterm ) xterm @fi
             @if-using ( vt100 ) vt100 @fi
             @if-using ( mgr ) mgr @fi
           )
     @fi
        ( keybind newline-and-indent ( $f1 ) )
     @if-using not(ATARI) ) @fi
     }}}
  @fi
  @if-using ( SUN ATARI )
     {{{  SUN-terminal R-keys
     @if-using ( SUN ) ( terminal ( SUN ) @fi
     ( keybind backward-character ( $R10 ) )
     ( keybind backward-character ( $left ) )
     ( keybind forward-character ( $R12 ) )
     ( keybind forward-character ( $right ) )
     ( keybind previous-line- ( $R8 ) )
     ( keybind previous-line- ( $up ) )
     ( keybind next-line- ( $R14 ) )
     ( keybind next-line- ( $down ) )
     @if-using ( SUN ) ) @fi
     }}}
  @fi
  @if-using ( PC )
     {{{  pc-terminal
     ( terminal ( PC )
       ( keybind backward-character ( $dos-left ) )
       ( keybind forward-character ( $dos-right ) )
       ( keybind previous-line- ( $dos-up ) )
       ( keybind next-line- ( $dos-down ) )
     )
     }}}
  @fi
)
}}}
{{{  mouse
@if-using not(ATARI)
   @if-using (MOUSY)
      ( mouse-buttons
        go-and-open-mouse
        go-and-close-mouse
        go-mouse-and-center
      )
   @fi
@fi
@if-using (ATARI)
   @if-using (MOUSY)
      ( mouse-buttons
        go-and-open-mouse
        go-mouse-and-center
        go-and-close-mouse
        go-and-close-mouse
      )
   @fi
@fi
}}}
}}}
{{{F references c-help
:::F modeori-fun/chelp
}}}
{{{F the reference-card
:::F modeori-fun/refcard
}}}
