Non-standard extensions
SELECT ASSIGN TO
A file may be assigned to a literal file, a file in a variable, or a file in an environment variable.
Literal file.
Assign to a literal file.
Select <file> assign to "/tmp/myfile.txt".
<variable>
Assign to a file which name is read from a variable.
Select <file> assign to my-file.
01 my-file pic x(512).
Move "/tmp/myfile.txt" to my-file.
Open output <file>.
<environment variable>
Assign to a file in an environment variable.
export myfile=/tmp/myfile.txt
Select <file> assign to external myfile.
Indexed file packages
<This section is in progress.>
Extended ACCEPT statement
Extended ACCEPT statements allow for full control of items
accepted from the screen.
Items accept by line and column positioning.
All commands following WITH are optional.
ACCEPT <variable-1>
LINE <variable-2> | <literal-1> COLUMN <variable-3> | <literal-2>
WITH
AUTO-SKIP | AUTO
BACKGROUND-COLOR <variable-4 >| <literal-3>
BELL | BEEP
BLINK
FOREGROUND-COLOR <variable-5> | <literal-4>
LOWLIGHT | HIGHLIGHT
PROMPT
PROTECTED
SIZE [IS] <variable-6> | <literal-5>
UPDATE
ON EXCEPTION
<exception processing>
NOT ON EXCEPTION
<normal processing>
END-ACCEPT.
LINE
The line number of <variable-2> or <literal-1> to accept the field.
COLUMN
The column number of <variable-3> or <literal-2> to accept the field.
AUTO-SKIP
The word AUTO may be used for AUTO-SKIP.
With this option the ACCEPT statement returns after the last
character is typed at the end of the field.
This is the same as if the Enter key were pressed.
Without this option the cursor remains at the end of the field and waits for the user to press Enter.
The Right-Arrow key returns from the end of the field. The Left-Arrow key returns from the beginning. ACCEPT special.
The Alt-Right-Arrow and Alt-Left-Arrow keys never AUTO-SKIP.
BACKGROUND-COLOR
The background color is the color used behind the characters.
<Variable-4> or <literal-3> must be numeric.
See file screenio.cpy for the color assignments to <variable-4>
or <literal-3>.
BELL
The word BEEP may be used for BELL.
The system beeps when the cursor moves to accept from this field. On some systems, there is no sound. Some other method may indicate a beep, such a flashing screen or pop up window.
BLINK
The field blinks while the user enters the data. This can help small menu selection fields to stand out.
FOREGROUND-COLOR
The foreground color is the color used for the characters.
<Variable-5> or <literal-4> must be numeric.
See file screenio.cpy for the color assignments to <variable-5>
or <literal-4>.
LOWLIGHT
The LOWLIGHT and HIGHLIGHT phrases vary the intensity of the field.
LOWLIGHT displays with lower intensity
and HIGHLIGHT displays with higher intensity.
Having neither LOWLIGHT nor HIGHLIGHT displays at normal intensity.
These may have different levels of intensity, if at all, depending on the make and model of the screens.
PROMPT
Display the field with prompt characters as the cursor moves to accept from this field.
PROTECTED
PROTECTED is ignored.
SIZE
The size of <variable-1> to accept from the screen.
<Variable-6> or <literal-5> must be numeric.
SIZE<greater than zero>If <variable-6> or <literal-5> is less than the length of <variable-1> then only the
SIZEnumber of characters accept into the field. <Variable-1> pads with spaces afterSIZEto the end of the field.If <variable-6> or <literal-5> is greater than <variable-1>, then the screen pads with spaces after <variable-1> to the
SIZElength.SIZE ZERO<
SIZEoption not specified>The <variable-1> accepts to its field length.
UPDATE
The contents of variable-1 displays on the screen as the ACCEPT begins.
This allows the user to update the field without having to type it all again.
Without this option, the ACCEPT field is always blank.
ON EXCEPTION
Check the special register cob-crt-status for the special key that was pressed. This includes Escape, Tab, Back-Tab, F-keys, arrows, etc… See screenio.cpy for the values.
NOT ON EXCEPTION
Reset any F-key indicator because no special key was pressed.
ACCEPT special keys
Special keys are available for extended ACCEPT statements.
The COB-CRT-STATUS values are in the screenio.cpy copy file.
Arrow keys
The Left-Arrow key moves the cursor to the left.
Without AUTO-SKIP the cursor stops at the beginning of the field.
With AUTO-SKIP it returns with the COB-SCR-KEY-LEFT value of 2009.
Extended ACCEPT.
The Alt-Left-Arrow key is the same as Left-Arrow except that
it never returns, even for AUTO-SKIP.
The Right-Arrow key moves the cursor to the right.
Without AUTO-SKIP the cursor stops at the end of the field.
With AUTO-SKIP it returns with the COB-SCR-KEY-RIGHT value of 2010.
Extended ACCEPT.
The Alt-Right-Arrow key is the same as Right-Arrow except that
it never returns, even for AUTO-SKIP.
Backspace key
The Backspace key moves the cursor, and the remainder of the text, to the left.
Delete keys
The Delete key deletes the cursor’s character and moves the remainder of the text to the left. The cursor does not move.
The Alt-Delete key deletes all text from the cursor to the end of the field.
End key
The End key moves the cursor after the last non-space character. Pressing the End key again moves the cursor to the end of the field. Repeated pressing moves the cursor back and forth.
Home key
The Home key moves the cursor to the first non-space character. Pressing the Home key again moves the cursor to the beginning of the field. Repeated pressing moves the cursor back and forth.
Insert key
The Insert key changes the insert mode.
The value of the insert mode is used in all following ACCEPTstatements while the program is running.
When the insert mode is on, typed characters move the existing characters to the right until field is full. When it is off, typed characters type over existing characters.
Note: The insert mode is ignored for fields with a size of 1.
The insert mode can also be changed by the COB_INSERT_MODE setting at any time,
Appendix I.
Tab keys
The Tab key returns from the ACCEPT with the COB-SCR-TAB value of 2007.
The Shift-Tab key returns with the COB-SCR-BACK-TAB value of 2008.
Extended DISPLAY statement
Extended DISPLAY statements allow for full control of items that display
on the screen.
Items display by line and column positioning.
DISPLAY <variable-1> | <literal-1> | <figurative constant>
LINE <line> COLUMN <column>
WITH BELL
BLANK LINE | SCREEN
ERASE EOL | EOS
SIZE [IS] <variable-2> | <literal-2>
END-DISPLAY.
BELL
Ring the bell. It is optional.
BLANK
Clear the whole line or screen. It is optional.
BLANK LINEClear the line from the beginning of the line to the end of the line.
BLANK SCREENClear the whole screen.
ERASE
Clear the line or screen from LINE and COLUMN. It is optional.
ERASE EOLClear the line from LINE and COLUMN to the end of the line.
ERASE EOSClear the screen from LINE and COLUMN to the end of the screen.
SIZE
The size of <variable-1>, <literal-1>, or <figurative-constant> to display onto the screen. It is optional.
SIZE<positive-integer>If
SIZEis less than the length of <variable-1> or <literal-1> then only theSIZEnumber of characters display.If
SIZEis greater than the length of <variable-1> or <literal-1>, then the screen pads with spaces after the field to theSIZElength.Figurative constants display repeatedly the number of times in
SIZE. Except thatLOW-VALUESalways positions the cursor (seeSIZEZERO below).SIZE ZERO<
SIZEoption not specified><Variable-1> or <literal-1> displays with the field length.
Figurative Constants
Certain figurative constants and values have special functions. All other figurative constants display as a single character.
SPACEDisplay spaces from LINE and COLUMN to the end of the screen. This is the same as WITH ERASE EOS.
LOW-VALUEPosition the cursor to LINE and COLUMN. The next
DISPLAYstatement does not need a LINE or COLUMN to display at that position.ALL X"01"Display spaces from LINE and COLUMN to the end of the line. This is the same as
WITH ERASE EOL.ALL X"02"Clear the whole screen. This is the same as
WITH BLANK SCREEN.ALL X"07"Ring the bell. This is the same as
WITH BELL.
CONTENT-LENGTH
FUNCTION CONTENT-LENGTH returns the length of NUL byte terminated data given a pointer:
identification division.
program-id. zlen.
data division.
working-storage section.
01 ptr usage pointer.
01 str pic x(4) value z"abc".
*> Testing CONTENT-LENGTH
procedure division.
set ptr to address of str
display content-length(ptr)
goback.
end program hosted.
CONTENT-OF
FUNCTION CONTENT-OF returns an alphanumeric field given a pointer and optional length:
Data from pointer is returned as a COBOL field either by scanning for a NUL byte or using the optional length. Reference modification of result allowed.
identification division.
program-id. contents.
data division.
working-storage section.
01 ptr usage pointer.
01 str pic x(4) value z"abc".
*> Testing CONTENT-OF
procedure division.
set ptr to address of str
display content-of(ptr)
display content-of(ptr, 2)
display content-of(ptr)(2:2)
goback.
end program hosted.