xW [0+8+FQ(+4)[1 0FO10F"G+Q1' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) ]. m5 m< xDxLGXd"s:zrm ~" 2+ p7 3B'iJ"vT"v^#h$t%%c#a-q:J"Vma_m0|! /+(p& CBL Mode& COB Mode& COBOL PIC& COBOL VALUE& Goto COBOL Column& Setup COBOL LibraryCOBOL Library DescriptionCOBOL Mode^R COBOL Comment^R COBOL Level Number^R COBOL OCCURS^R COBOL PIC^R COBOL VALUE^R COBOL VALUE SPACE^R COBOL VALUE ZERO~DIRECTORY~~DOC~ & CBL Mode~DOC~ & COB Mode~DOC~ & COBOL PIC~DOC~ & COBOL VALUE~DOC~ & Goto COBOL Column~DOC~ & Setup COBOL Library#~DOC~ COBOL Library Description~DOC~ COBOL Mode~DOC~ ^R COBOL Comment~DOC~ ^R COBOL Level Number~DOC~ ^R COBOL OCCURS~DOC~ ^R COBOL PIC~DOC~ ^R COBOL VALUE~DOC~ ^R COBOL VALUE SPACE~DOC~ ^R COBOL VALUE ZERO~DOC~ ~FILENAME~~FILENAME~ ~INVERT~0M(M.MDescribe)COBOL Library Description pM(M.M& Init Buffer Locals) 1,(M.M^R Tab to Tab Stop)M.QI -1UIndent Tabs Mode QCOBOL Tab Stop DefinitionsM.LTab Stop Definitions 1,(M.M^R COBOL Comment)M.Q..; 1M.VCOBOL Level Number Increment 1,(M.M^R COBOL Level Number)M.Q...L 45M.VCOBOL OCCURS Column 1M.VCOBOL OCCURS New Line 1,(M.M^R COBOL OCCURS)M.Q...O 29M.VCOBOL PIC Column 1M.VCOBOL PIC New Line 1,(M.M^R COBOL PIC)M.Q..P 1,(M.M^R COBOL PIC)M.Q...P 10M.VCOBOL VALUE Offset 1,(M.M^R COBOL VALUE)M.Q...V 1,(M.M^R COBOL VALUE SPACE)M.Q...S 1,(M.M^R COBOL VALUE ZERO)M.Q..Z Q.0,1M(M.M& Set Mode Line)COBOL =0L 5F=* "E 5C' 3F=* "E CI ' I*  9FS^REXPT"N FS^REXPT-1"E %COBOL Level Number Increment' FS^REXPT-2"E QCOBOL Level Number Increment-1UCOBOL Level Number Increment' ODisplay' FF"N UCOBOL Level Number Increment' "# 1UCOBOL Level Number Increment' !Display! QCOBOL Level Number Increment-1"L 1UCOBOL Level Number Increment' QCOBOL Level Number Increment:\[0 :I*CFSECHODISPLAY @FTCOBOL Level Number Increment = 0 0FSECHOACTIVE 0"FS^REXPT"N FS^REXPT-1"E FSHPOSITIONUCOBOL OCCURS Column' FS^REXPT-2"E QCOBOL OCCURS New Line*(-1)UCOBOL OCCURS New Line' QCOBOL OCCURS Column+7:\[C QCOBOL OCCURS New Line"G :I*Yes' "# :I*No' :I*CFSECHODISPLAY @FTCOBOL OCCURS Column = C  FSECHOLINES-1"N@FT ' @FTCOBOL OCCURS New Line = N 0FSECHOACTIVE 0' FF"N [A' "# 0[A' FSHPOSITION-QCOBOL OCCURS Column"G -@F  K' .[F QCOBOL OCCURS New Line,QCOBOL OCCURS ColumnM(M.M& Goto COBOL Column) IOCCURS  QA"G GAI.' QF,.hFS^REXPT"N FS^REXPT-1"E FSHPOSITIONUCOBOL PIC Column' FS^REXPT-2"E QCOBOL PIC New Line*(-1)UCOBOL PIC New Line' QCOBOL PIC Column+7:\[C QCOBOL PIC New Line"G :I*Yes' "# :I*No' :I*CFSECHODISPLAY @FTCOBOL PIC Column = C  FSECHOLINES-1"N@FT ' @FTCOBOL PIC New Line = N 0FSECHOACTIVE 0' F:M(M.M& COBOL PIC)|FS^REXPT"N0' .[F [T FF&1"N QF,M(M.M& COBOL PIC)UTUTQF,QTFUFUF' QF,M(M.M& COBOL VALUE)UTUTQF,QTFUFUF QF,.FS^REXPT"N0' .[F [T FF&1"N QF,M(M.M& COBOL PIC)UTUTQF,QTFUFUF' QF,M(M.M& COBOL VALUE)UTUTQF,QTFUFUF ISPACE. QF,.u.[F [T FF&1"N QF,M(M.M& COBOL PIC)UTUTQF,QTFUFUF' QF,M(M.M& COBOL VALUE)UTUTQF,QTFUFUF IZERO. QF,.:M(M.MCOBOL Mode)FF&3"N [A' "# 0[A' FSHPOSITION-QCOBOL PIC Column"G -@F  K' FF&2"E .[F' "# [F' QF,.FUFUF QCOBOL PIC New Line,QCOBOL PIC ColumnM(M.M& Goto COBOL Column) IPIC  QA"N QA"G IX' "# IS9' QAUA QA-1"G I(GAI)'' QF,.FF&2"E .[F' "# [F' QF,.FUFUF QCOBOL PIC Column+QCOBOL VALUE Offset-FSHPOSITION QSF"G,40.I'' 0A-40."N 0A-11."N 40.I'' IVALUE  QF,.[O[C FSHPOSITION QH-QC"L QH,QCM(M.M& XINDENT)' QH-QC"E (0A-32)*(0A-9)"E'' QO"G M(M.M^R CRLF) 0,QC-1M(M.M& XINDENT)' 32I91M.CCOBOL Level Number IncrementAdd this number for new Level Number. 45M.CCOBOL OCCURS ColumnCOBOL Column for OCCURS clause (default 52). 1M.CCOBOL OCCURS New Line=pos New Line if past column; else, same line. 29M.CCOBOL PIC ColumnCOBOL Column for PIC clause (default 36). 1M.CCOBOL PIC New Line=pos New Line if past column; else, same line. 10M.CCOBOL VALUE OffsetNumber of columns away from PIC to aim for. :FO..QCOBOL Tab Stop Definitions"L [T :IT : : : : : : : : QTM.VCOBOL Tab Stop Definitions'  COBOLgC EMACS macros for COBOL (version 2). Do a Meta-X COBOL Library Description for more information.}C Miscellaneous information about this Library. The documentation for this entire library can be obtained by loading the ABSTR Library, and doing: Meta-X Alphabetical AbstractCOBOL The above command will leave the abstract in your buffer. It is the same documentation that is available on line with EMACS. Comments and suggestions to: STAPLETON at DORA or John T. Stapleton PK3-2/F29 Digital Equipment Corp. 129 Parker St. Maynard, Mass. 01754 (617) 493-9172 DTN: 223-9172 Update History: Ver 1 Original version - not much to say about it. Ver 2 Removed all keypad stuff, so that people may use their favorite keypad library instead. The keypad stuff went to a new library called, appropriately enough, KEYPAD.C Commands to edit COBOL programs Puts: on: ^R COBOL Comment Meta-; ^R COBOL Level Number C-M-L ^R COBOL OCCURS C-M-O ^R COBOL PIC C-M-P ^R COBOL VALUE C-M-V ^R COBOL VALUE SPACE C-M-S ^R COBOL VALUE ZERO Meta-Z$^R Create or go to COBOL Comment?^R Set COBOL Level Number Increment. The COBOL Level Number Increment is for use by other commands, but is set with this command. With no arg - Set to 1 (default). With one ^U - Add 1 to it. With two ^U's - Subtract 1 from it. With arg >0 - Set to . With arg <1 - Set to 1 (default).^R Make OCCURS clause for COBOL. Inserts "OCCURS " clause at COBOL column 52 (default), but can be changed to new column. Will guarnatee that preceding character is space or tab. Inserts "OCCURS " on new line (default) if already past spec- ified column, but tries to back up first. New line option can be changed. With no arg - Inserts "OCCURS " With one ^U - Sets COBOL OCCURS Column to current column With two ^U's - Complements the new line option With >2 ^U's - Shows status of COBOL OCCURS Column and COBOL OCCURS New Line With arg>0 - Inserts "OCCURS arg." With arg<1 - Same as no arg.d^R Make PIC clause for COBOL. Inserts "PIC " clause at COBOL column 36 (default), but can be changed to new column. Will guarnatee that preceding character is space or tab. Inserts "PIC " on new line (default) if already past spec- ified column, but tries to back up first. New line option can be changed. With no arg - Inserts "PIC " With 1 ^U - Sets COBOL PIC Column to current column With 2 ^U's - Complements the new line option With >2 ^U's - Shows status of COBOL PIC Column and COBOL PIC New Line With arg>1 - Inserts "PIC X(arg)" With arg=1 - Inserts "PIC X" With arg=0 - Same as no arg With arg=-1 - Inserts "PIC S9" With arg<-1 - Inserts "PIC S9(arg)""^R Make VALUE for COBOL. Inserts "VALUE " at COBOL PIC column + 10 (default). Will guarantee that preceeding character is space or tab. With no arg - Inserts "VALUE " With any ^U's - Does nothing With arg>0 - Inserts "PIC X(arg) VALUE " With arg=0 - Same as no arg With arg<0 - Inserts "PIC S9(arg) VALUE " Note: If anyone can think of what to do with ^U args, I am willing to listen.R^R Make VALUE SPACE for COBOL. Inserts "VALUE SPACE." at COBOL PIC Column + 10 (default). Will guarantee that preceding character is space or tab. With no arg - Inserts "VALUE SPACE." With any ^U's - Does nothing With arg>0 - Inserts "PIC X(arg) VALUE SPACE." With arg=0 - Same as no arg With arg<0 - Inserts "PIC S9(arg) VALUE SPACE." (certainly useless) Note: If anyone can think of what to do with ^U args, I am willing to listen.:^R Make VALUE ZERO for COBOL. Inserts "VALUE ZERO." at COBOL PIC Column + 10 (default). Will guarantee that preceeding character is space or tab. With no arg - Inserts "VALUE ZERO." With any ^U's - Does nothing With arg>0 - Inserts "PIC X(arg) VALUE ZERO." With arg=0 - Same as no arg With arg<0 - Inserts "PIC S9(arg) VALUE ZERO." Note: If anyone can think of what to do with ^U args, I am willing to listen.S Set-up for COBOL on FN20S Inserts "PIC" clause. This is the routine that actually does the insertion. Called by: ^R COBOL FILLER (not implemented yet) ^R COBOL PIC ^R COBOL REDEFINES (not implemented yet) ^R COBOL VALUE ^R COBOL VALUE SPACE ^R COBOL VALUE ZERO Returns , as part of buffer changed.US Inserts "VALUE". This is the routine that actually does the insertion of "VALUE ". Called by: ^R COBOL VALUE ^R COBOL VALUE SPACE ^R COBOL VALUE ZERO Returns , as part of buffer changed.*S Internal routine used for alignment.S Sets up the COBOL Library Defines variables: to be: COBOL Level Number Increment 1 COBOL OCCURS Column 52 COBOL OCCURS New Line 1 COBOL PIC Column 36 COBOL PIC New Line 1 COBOL Tab Stop Definitions at COBOL columns 12,16,36,40,48,52,56,60 Note: Because there are no sequence numbers, the first 6 columns are not on the screen; therefore the tabs will stop at columns 6,10,30 etc. You can define your own tab stops (see Edit Tab Stops) by defining this variable (string, not buffer) in your Init file. COBOL VALUE Offset 10COBOL Library Description COBOL Mode ^R COBOL Comment ^R COBOL Level Number ^R COBOL OCCURS ^R COBOL PIC ^R COBOL VALUE ^R COBOL VALUE SPACE ^R COBOL VALUE ZERO & CBL Mode & COB Mode & COBOL PIC & COBOL VALUE & Goto COBOL Column & Setup COBOL Library T+8+fq(+4)[20[3 <%3,-q2f2u3q3&1@;q3"l0'> f[BBindq3-1*5,q3*5g2q:..o(0)+q2