Category : Word Processors
Archive   : UE310.ZIP
Filename : OPAGE.CMD

 
Output of file : OPAGE.CMD contained in archive : UE310.ZIP
; OPAGE.CMD: COBOL language MENU Page
; for MicroEMACS 3.10 and above
; (C)opyright 1988 by Daniel Lawrence
;

; set up the "clean" procedure
store-procedure clean
delete-buffer "[Macro 10]"
delete-buffer "[Macro 11]"
delete-buffer "[Macro 12]"
delete-buffer "[Macro 13]"
delete-buffer "[Macro 14]"
delete-buffer "[Macro 15]"
delete-buffer "[Macro 16]"
delete-buffer "[Macro 17]"
delete-buffer "[Macro 18]"
delete-buffer "[Macro 19]"
bind-to-key handle-tab ^I
delete-buffer "[cobol-tab]"
set $cmode %oldmode
set $gmode %oldgmode
0 handle-tab
!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 Make IDENT division F2 UPPERcase buffer "
next-line
set $curcol 25
overwrite-string " F3 Make ENVIR division F4 while "
next-line
set $curcol 25
overwrite-string " F5 REPEAT F6 switch "
next-line
set $curcol 18
overwrite-string "COBL"
set $curcol 25
overwrite-string " F7 VALUE F8 Reserved words UP "
next-line
set $curcol 25
overwrite-string " F9 chk comment matching F10 Shell to DOS "
unmark-buffer
beginning-of-file
!force restore-window
update-screen

;

10 store-macro
beginning-of-file

set %rctemp @"Program Name: "
insert-string " IDENTIFICATION DIVISION.~n"
insert-string &cat &cat " PROGRAM-ID. " %rctemp ".~n"
update-screen
set %rctemp @"Author: "
insert-string &cat &cat " AUTHOR. " %rctemp ".~n"
insert-string &cat &cat " DATE-WRITTEN. " $time ".~n"
insert-string " DATE-COMPILED.~n"
insert-string " REMARKS.~n~n"
!endm
bind-to-key execute-macro-10 S-FN1

; Function
11 store-macro
9 set-mark
beginning-of-file
set-mark
end-of-file
case-region-upper
9 goto-mark
!endm
bind-to-key execute-macro-11 S-FN2

;

12 store-macro
insert-string " ENVIRONMENT DIVISION.~n"
insert-string " CONFIGURATION SECTION.~n"
insert-string " SOURCE-COMPUTER. IBM-3090.~n"
insert-string " OBJECT-COMPUTER. IBM-3090.~n"
insert-string " SPECIAL-NAMES.~n"
insert-string " INPUT-OUTPUT SECTION.~n"
insert-string " FILE-CONTROL.~n"
!endm
bind-to-key execute-macro-12 S-FN3

;

13 store-macro
set %cond @"Condition Expr: "
;set $debug TRUE
insert-string &cat &cat "while (" %cond ") {"
newline-and-indent
newline-and-indent
insert-string &cat &cat "} /* while (" %cond ") */"
1 previous-line
end-of-line
handle-tab
!endm
bind-to-key execute-macro-13 S-FN4

14 store-macro
set %cond @"Condition Expr: "
;set $debug TRUE
set %curcol $curcol
insert-string &cat &cat "REPEAT~n"
%curcol insert-string " "
set $curcol %curcol
!if &EQUal %curcol 3
insert-string &cat &cat "UNTIL " %cond ";"
!else
insert-string &cat "UNTIL " %cond
!endif
beginning-of-line
open-line
%curcol insert-string " "
insert-string " "
!force set $debug FALSE
!endm
bind-to-key execute-macro-14 S-FN5

15 store-macro
set %expr @"Switch Expr: "
;set $debug TRUE
set %curcol $curcol
insert-string &cat &cat "switch (" %expr ") {"
newline-and-indent
insert-string "}"
previous-line
end-of-line
newline-and-indent
handle-tab
insert-string "case "
!force set $debug FALSE
!endm
bind-to-key execute-macro-15 S-FN6

16 store-macro
; set $debug TRUE
set %curcol $curcol
set %value @"Value: "
insert-string &cat %value " : {~n"
%curcol insert-string " "
insert-string " };~n"
%curcol insert-string " "
previous-line
beginning-of-line
open-line
%curcol insert-string " "
insert-string " "
!force set $debug FALSE
!endm
bind-to-key execute-macro-16 S-FN7

17 store-macro
; set $debug TRUE
set %curcol $curcol
;save-file
set-mark
beginning-of-file
write-message "[Replacing 'begin']
replace-string "begin" "BEGIN"

beginning-of-file
write-message "[Replacing 'end']
replace-string "end" "END"

beginning-of-file
write-message "[Replacing ' if']
replace-string " if" " IF"

beginning-of-file
write-message "[Replacing ' else']
replace-string " else" " ELSE"

beginning-of-file
write-message "[Replacing ' repeat']
replace-string " repeat" " REPEAT"

beginning-of-file
write-message "[Replacing ' while']
replace-string " while" " WHILE"

exchange-point-and-mark
!force set $debug FALSE
!endm
bind-to-key execute-macro-17 S-FN8

18 store-macro
beginning-of-file
source findcom.cmd
!endm
bind-to-key execute-macro-18 S-FN9

19 store-macro
i-shell
!endm
bind-to-key execute-macro-19 S-FN0

; This macro assumes we are on an 01 entry line and
; moves all the datanames to the DATANAMES buffer

store-procedure getrecnames
set %orbuf $cbufname
!force delete-buffer DATANAMES
9 set-mark
*grn beginning-of-line
next-line
8 forward-character
!if ¬ &equ $curchar 32
9 goto-mark
write-message "[data names recorded]"
!return
!endif

!endm

; modify the tabbing behavior to match COBOL

store-procedure cobol-tab
!if &less $curcol 7
set %rctmp &sub 7 $curcol
!else
set %rctmp &sub &add 3 &band 252 &add 1 $curcol $curcol
!endif
%rctmp insert-space
%rctmp forward-character
!endm
macro-to-key cobol-tab ^I

; Set up CMODE
set %oldmode $cmode
set %oldgmode $gmode
add-mode CMODE
add-global-mode CMODE
4 handle-tab

write-message "[COBOL MENU page loaded]"


  3 Responses to “Category : Word Processors
Archive   : UE310.ZIP
Filename : OPAGE.CMD

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/