; PPAGE.CMD: Programming Macro Page ; for MicroEMACS 3.9d and above ; (C)opyright 1987 by Daniel M Lawrence ; set the clean procedure up store-procedure clean delete-buffer "[Macro 10]" delete-buffer "[Macro 11]" delete-buffer "[Macro 12]" delete-buffer "[Macro 13]" bind-to-key execute-macro-14 FNX bind-to-key execute-macro-15 FNY delete-buffer "[Macro 16]" delete-buffer "[Macro 17]" bind-to-key execute-macro-18 FN\ bind-to-key execute-macro-19 FN] !endm ; make sure the function key window is up set %rcfkeys FALSE execute-macro-1 write-message "Loading..." ; Write out the page instructions save-window 1 next-window beginning-of-file set $curcol 25 overwrite-string " F1 display variable F2 evaluate expression" next-line set $curcol 25 overwrite-string " F3 compile buffer F4 debug mode [OFF]" next-line set $curcol 25 overwrite-string " F5 execute buffer F6 execute macro" next-line set $curcol 18 overwrite-string "PROG" set $curcol 25 overwrite-string " F7 indent region F8 undent region" next-line set $curcol 25 overwrite-string " F9 execute DOS command F10 shell to DOS" unmark-buffer beginning-of-file !force restore-window update-screen ; display a variable 10 store-macro set %rcdebug $debug set $debug FALSE set %rctmp @&cat &cat "Variable to display[" %rcvar "]: " !if ¬ &seq %rctmp "" set %rcvar %rctmp !endif write-message &cat &cat &cat %rcvar " = [" &ind %rcvar "]" set $debug %rcdebug !endm ; evaluate expresion 11 store-macro delete-buffer "[temp]" set %rcbuf $cbufname set %cline $cwline select-buffer "[temp]" insert-string "set %rcval " !force insert-string @"EXP: " execute-buffer "[temp]" unmark-buffer select-buffer %rcbuf delete-buffer "[temp]" %cline redraw-display write-message &cat &cat "Value = [" %rcval "]" !endm ; compile the current buffer 12 store-macro ; here is where to add code to handle compiling the current buffer write-message "[No Compiler module loaded]" !endm ; Toggle debug mode 13 store-macro set $debug FALSE set %cbuf $cbufname set %cline $cwline select-buffer "Function Keys" beginning-of-file next-line 68 forward-character set %rcdebug &equ $curchar 70 delete-previous-character 2 delete-next-character !if %rcdebug insert-string "ON " !else insert-string "OFF" !endif unmark-buffer select-buffer %cbuf %cline redraw-display write-message &cat &cat "[Debug Mode " %rcdebug "]" set $debug %rcdebug !endm bind-to-key execute-buffer FNX bind-to-key execute-macro FNY ; indent region 16 store-macro write-message "[Indenting region]" set %endline $curline set %endpos $cwline exchange-point-and-mark set $discmd FALSE set-mark set $discmd TRUE !while &gre %endline $curline beginning-of-line handle-tab next-line !endwhile beginning-of-line set $cwline %endpos write-message "[Region indented]" !endm ; undent region 17 store-macro write-message "[Undenting region]" set %endline $curline set %endpos $cwline exchange-point-and-mark set $discmd FALSE set-mark set $discmd TRUE !while &gre %endline $curline beginning-of-line !if &gre $lwidth 0 delete-next-character !endif next-line !endwhile beginning-of-line set $cwline %endpos write-message "[Region undented]" !endm bind-to-key shell-command FN\ bind-to-key i-shell FN] set %rcvar "" write-message "[Program page loaded]" d