; EMACS.RC: Standard MicroEMACS Startup program ; for MicroEMACS 3.12 and above ; (C)opyright 1987,92 by Daniel M Lawrence ; Last Update: 12/28/92 set $discmd FALSE write-message "[Setting up....]" ; If you screen "SNOWS", comment this line set $flicker "FALSE" ; To use an IBM-PC EGA card, uncomment the following line ; set $sres "EGA" ; If you hate clocks or position counters, comment these set $timeflag TRUE set $posflag TRUE ; Set Default Global modes add-global-mode "blue" add-global-mode "WHITE" ;bind-to-key meta-prefix ` ;for annoying keyboards with ` at the top left ; Toggle function key window display store-procedure toggle-fkeys !if %rcfkeys !goto rcfoff !endif ; toggle function key window on save-window 1 next-window !if &sequal $cbufname "mewin.hlp" delete-window !endif !if ¬ &sequal $cbufname "Function Keys" 1 split-current-window 1 select-buffer "Function Keys" add-mode "red" !force 5 resize-window 1 goto-line !endif set %rcfkeys TRUE !force restore-window !if &sequal $cbufname "Function Keys" next-window !endif write-message "[Function key window ON]" !return ;Toggle the function key window off *rcfoff save-window 1 next-window !if &sequal "Function Keys" $cbufname delete-window !endif !force restore-window write-message "[Function key window OFF]" set %rcfkeys FALSE !endm ; Bring up Online-help system store-procedure get-help set $discmd FALSE source ehelp.cmd set $discmd TRUE !endm ; Load a new page store-procedure get-page-loader !if &seq &find newpage.cmd "" write-message "[Can not find NEWPAGE.CMD]" !return !endif execute-file newpage.cmd !endm ;procedure to clean out the current page (which is nothing right now) store-procedure clean ; nothing by default !endm ; Set up auto CMODE store-procedure set-default-mode set %rctmp &sin $cfname "." !if &equ %rctmp 0 !return !endif set %rctmp &mid $cfname &add %rctmp 1 5 !if &or &seq %rctmp "c" &seq %rctmp "h" add-mode "cmode" !endif !if &or &seq %rctmp "cpp" &seq %rctmp "hpp" add-mode "cmode" !endif !if &or &seq %rctmp "mss" &seq %rctmp "txt" add-mode "wrap" !endif !endm set $readhook set-default-mode ; This function activates the function key window as ; a legitimate place to call up function keys using the mouse store-procedure mouse-clicks ;remember where we started, and do the mouse movement save-window !force mouse-move-down ;If not in the function key window... leave !if ¬ &sequal $cbufname "Function Keys" !return !endif ;First pos is a screen reposition, let it through !if &and &equ $xpos 0 &equ $ypos 0 restore-window !return !endif ;Find out what function key were gonna do add-mode magic 2 forward-character set %rctmp $search !force search-reverse "[fF][0-9]" !if &seq $status FALSE delete-mode magic set $search %rctmp !return !endif ;we are on the "f" or "F". Get the function key type and number now set $search %rctmp set %fcase lower !if &equ $curchar 70 set %fcase upper !endif 1 forward-character set %fnum &chr $curchar 1 forward-character set %fnum &cat %fnum &chr $curchar set %fnum &add %fnum 0 !if &equ %fnum 10 set %fnum "0" !endif set %fname &cat "FN" %fnum !if &seq %fcase upper set %fname &cat "S-" %fname !endif ;save the function set %rccmd &bind %fname delete-mode MAGIC ;swallow the up-button set %rctmp >c ;restore the window and exit restore-window ;procedures don't need the square brackets !if &seq &left %rccmd 1 "[" set %rccmd &mid %rccmd 2 &sub &len %rccmd 2 %rccmd !return !endif ;and then execute it !force execute-named-command %rccmd !endm macro-to-key mouse-clicks MSa ; ***** Rebind the Function key group bind-to-key search-forward FN1 bind-to-key search-reverse FN2 bind-to-key hunt-forward FN3 bind-to-key hunt-backward FN4 macro-to-key toggle-fkeys FN5 macro-to-key get-help FN6 bind-to-key next-window FN7 macro-to-key get-page-loader FN8 bind-to-key save-file FN9 bind-to-key exit-emacs FN0 bind-to-key execute-macro-10 S-FN1 bind-to-key execute-macro-11 S-FN2 bind-to-key execute-macro-12 S-FN3 bind-to-key execute-macro-13 S-FN4 bind-to-key execute-macro-14 S-FN5 bind-to-key execute-macro-15 S-FN6 bind-to-key execute-macro-16 S-FN7 bind-to-key execute-macro-17 S-FN8 bind-to-key execute-macro-18 S-FN9 bind-to-key execute-macro-19 S-FN0 ; bring up the function key window 1 split-current-window select-buffer "Function Keys" insert-string "f1 search-> f2 <-search Û MicroEMACS: Text Editor~n" insert-string "f3 hunt-> f4 <-hunt Û ~n" insert-string "f5 fkeys f6 help Û Available function key Pages include:~n" insert-string "f7 nxt wind f8 pg[ ] Û Word Box Emacs Pascal C cObol Lisp~n" insert-string "f9 save f10 exit Û [use the f8 key to load Pages]~n" unmark-buffer delete-window set %rcfkeys FALSE !if &seq $os "UNIX" ;Allow mainframes to simulate function ;keys with ^C and ^C shifted- store-procedure emulate-fkeys !if ¬ $pending write-message "FN-" !endif set %rcchar >key set %rcchar &sindex "1234567890!@#$%^&*()" %rcchar !if &equ %rcchar 0 write-message "[Not Bound]" !return !endif clear-message-line set %rctmp "FN" !if &gre %rcchar 10 set %rctmp &cat "S-" %rctmp !endif set %rcchar &mid "12345678901234567890" %rcchar 1 set %rctmp &bind &cat %rctmp %rcchar !if &seq &lef %rctmp 1 "[" set %rctmp &mid %rctmp 2 &sub &len %rctmp 2 run %rctmp !return !endif !force execute-named-command %rctmp !endm macro-to-key emulate-fkeys ^C !endif !if &seq $os "MSWIN" source "mewin.cmd" !else toggle-fkeys !endif set $discmd TRUE ; LaTeX write-message "[Loading LaTeX macros...]" execute-file "latex.cmd"